Beiträge von Templer

    Ah sry.. Du hast ja ein GF ^^ Nagut hoffe du kannst den Anweisungen folgen..


    public OnPlayerConnect(playerid)
    {
    SetPVarInt(playerid, "IstInArena", 0);
    return 1;
    }


    public OnPlayerDisconnect(playerid)
    {
    RemovePVar(playerid, "IstInArena");
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == arenaenter1)
    {
    SetPVarInt(playerid, "IstInArena", 1);
    //Der andere restliche Code,
    //also einfach nur den Code einfügen ober dieser Zeile ^^
    return 1;
    }
    return 1;
    }


    public SetPlayerSpawn(playerid)
    {
    //Diese Abfrage so weit wie möglich nach oben!
    if(GetPVarInt(playerid, "IstInArena") == 1)
    {
    SetPlayerPos(playerid,2722.9504, 2126.5295, -1.1362);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerHealth(playerid, 100.0);
    SetPlayerArmour(playerid, 100.0);
    GivePlayerWeapon(playerid,24,99999);
    GivePlayerWeapon(playerid,31,99999);
    GivePlayerWeapon(playerid,33,99999);
    GivePlayerWeapon(playerid,18,99999);
    GivePlayerWeapon(playerid,16,99999);
    GivePlayerWeapon(playerid,42,99999);
    return 1; //Gaaanz Wichtig ^^
    }
    //Restlicher Code...
    return 1;
    }


    Was besonders wichtig ist, dass wenn der Spieler die Arena verlässt du folgende Zeile dorthin schreibst, also das der Wert von IstInArena deaktiviert wird!


    SetPVarInt(playerid, "IstInArena", 0);


    Achja und zu deinem 5., wegen dem Warning, den kannste sowas von Ignorieren xD


    //Wichtiger Edit:


    Hab in der PN gesehen, dass dein Krankenhaus doch unter OnPlayerSpawn ist ^^, also bitte den Krankenhausteil so verändern...


    public OnPlayerSpawn(playerid)
    {
    if(PlayerInfo[playerid][pTot] == 1)
    {
    if(PlayerPaintballing[playerid] == 0 && GetPVarInt(playerid, "IstInArena") == 0)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_GREEN, "----------------Im Krankenhaus----------------");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Durch deine schweren Verletzungnen liegst du im Koma!");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du bist nun für ca. 60Sec. in Behandlug.");
    ResetPlayerWeapons(playerid);
    }
    return 1;
    }
    return 1;
    }

    Ajjjj, er will es doch ohne Timer ^^ Also am besten so bitte:


    new bool:gGateStatus[MAX_OBJECTS];


    if(strcmp(cmd, "/open", true) == 0)
    {
    if(!IsPlayerConnected(playerid)) return 1;
    if(IsPlayerInRangeOfPoint(playerid, 15.0, 1642.9480, -1714.6055, 20.4862))
    {
    if(gGateStatus[ziviGates] == false)
    {
    MoveObjectToStream(ziviGates, 1642.8143310547, -1715.0423583984, 19.004592895508, 2.0);
    gGateStatus[ziviGates] = true;
    }
    else
    {
    MoveObjectToStream(ziviGates, 1642.8143310547, -1715.0423583984, 20.204593658447, 2.0);
    gGateStatus[ziviGates] = false;
    }
    }
    return 1;
    }


    dann noch wegen deinem Random Spawn hier:


    new Float:gRandomPlayerSpawn[][4] = {
    {1234.0, 1234.0, 1234.0, 1234.0}, //Die Formatierung ist easy, einfach {x, y, z, angle},
    {1234.0, 1234.0, 1234.0, 1234.0}, //Das sind Beispiele wie es dann ausschaut
    {1234.0, 1234.0, 1234.0, 1234.0},
    {1234.0, 1234.0, 1234.0, 1234.0},
    {1234.0, 1234.0, 1234.0, 1234.0} //Beim letzten darf am Ende kein Beistrich sein!
    };


    public OnPlayerSpawn(playerid)
    {
    new rand = random(sizeof(gRandomPlayerSpawn));
    SetPlayerPos(playerid, gRandomPlayerSpawn[rand][0], gRandomPlayerSpawn[rand][1], gRandomPlayerSpawn[rand][2]);
    SetPlayerFacingAngle(playerid, gRandomPlayerSpawn[rand][3]);
    return 1;
    }


    und wegen deinem Krankenhaus, zeig uns deinen ganzen OnPlayerSpawn, danke!

    Sollte funktionieren


    stock Stadtteil(playerid)
    {
    new Float:X, Float:Y, Float:Z; //We use this to store player position
    GetPlayerPos(playerid, X, Y, Z); //Here we are storing the player position on the variables X, Y, and Z defined previously
    for(; zoneid < sizeof(zones); zoneid++)
    {
    if (X <= zones[zoneid][zone_maxx] && X >= zones[zoneid][zone_minx] && Y <= zones[zoneid][zone_maxy] && Y >= zones[zoneid][zone_miny])
    {
    return zones[zoneid][zone_name];
    }
    }
    return false;
    }

    Mom.. Ich erwürge mich mal kurz schnell, gleich wieder da...


    .....*hörende Schritte weg vom PC*......*KRÄÄÄÄCHZ*....*HEUL*......*hörende Schritte zum PC zurück*....


    So, wieder da und hier dein Code, man oh mann xD


    if(strcmp(x_take,"mats",true) == 0)
    {
    new mats[256];
    mats = strtok(cmdtext, idx);//16775
    if(!strval(mats)) return SendClientMessage(playerid,COLOR_GREEN,"Benutze /car take mats [menge]");//es komt immer diese message egal was ich bei "Menge" eingebe
    else if (CarInfo[car][cMats] >= strval(mats))
    {
    CarInfo[car][cMats]-=strval(mats);
    PlayerInfo[playerid][pMats]+=strval(mats);
    format(string, sizeof(string), "Du hast %d Materialien aus dem Auto geholt",strval(mats));
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    else SendClientMessage(playerid,COLOR_RED,"So viele Materialien sind nicht im Auto");
    return 1;
    }

    *hust* Aus bestimmten Gründen kann ich dir diesen Link nicht öffentlich zeigen, denn ich dir geben will deshalb poste ich es dir per PN. Ein Tipp für die anderen: Airbreak :P


    Edit: Habs dir per EMail geschickt

    naja das gate musst neben einem CreateObject stehen und dann auch verwendet verwenden z.B.:


    gate = CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ);


    und dann so verwenden in einem Befehl, als Beispiel:


    MoveObject(gate, Float:X, Float:Y, Float:Z, Float:Speed);

    Bitte ^^


    if(strcmp(cmd,"/respawnazteca",true) == 0)
    {
    if(PlayerInfo[playerid][pLeader] >= 4)
    {
    for(new v=0; v<sizeof(AztecasVehs); v++)
    {
    SetVehicleToRespawn(AztecasVehs[v]);
    }
    }
    else SendClientMessage(playerid,COLOR_RED," Du bist kein Admin! oO ");
    return 1;
    }

    Ah Sry.. Die hItze macht mich echt zu schaffen, dass passt nun...


    if(strcmp(x_take,"mats",true) == 0)
    {
    new mats[256];
    mats = strtok(cmdtext, idx);//16775
    if(!strval(tmp)) return SendClientMessage(playerid,COLOR_GREEN,"Benutze /car take mats [menge]");//es komt immer diese message egal was ich bei "Menge" eingebe
    else if (CarInfo[car][cMats] >= strval(mats))
    {
    CarInfo[car][cMats]-=strval(mats);
    PlayerInfo[playerid][pMats]+=strval(mats);
    format(string, sizeof(string), "Du hast %d Materialien aus dem Auto geholt",strval(mats));
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    else SendClientMessage(playerid,COLOR_RED,"So viele Materialien sind nicht im Auto");
    return 1;
    }

    Dann halt so.. :P


    if(strcmp(x_take,"mats",true) == 0)
    {
    new mats[128];
    mats = strtok(cmdtext, idx);
    if(!strval(tmp)) return SendClientMessage(playerid,COLOR_GREEN,"Benutze /car take mats [menge]");//es komt immer diese message egal was ich bei "Menge" eingebe
    else if (CarInfo[car][cMats] >= mats)
    {
    CarInfo[car][cMats]-=mats;
    PlayerInfo[playerid][pMats]+=mats;
    format(string, sizeof(string), "Du hast %d Materialien aus dem Auto geholt",mats);
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    else SendClientMessage(playerid,COLOR_RED,"So viele Materialien sind nicht im Auto");
    return 1;
    }

    Nene ^^ Wenn da return 0; stehen würde, würde er in Scripts weiterfragen ob es noch Befehle vorhanden sind, ansonsten Spuckt er Unknown Command aus, also return 1; passt schon ^^

    Oder man scriptet es um ^^


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new string[128];
    if(dialogid == 12346 || dialogid == 12347)
    {
    if(!response) return Kick(playerid);
    if(strlen(inputtext))
    {
    new tmppass[64];
    strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
    Encrypt(tmppass);
    OnPlayerLogin(playerid,tmppass);
    }
    else
    {
    new loginstring[128];
    new loginname[64];
    GetPlayerName(playerid,loginname,sizeof(loginname));
    format(loginstring,sizeof(loginstring),"Falsches Passwort!",loginname);
    ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Unlimited Reallife",loginstring,"Login","abbrechen");
    gPlayerLogTries[playerid] += 1;
    if(gPlayerLogTries[playerid] == 4) { Ban(playerid); }
    }
    return 1;
    }
    if(dialogid == 12345)
    {
    if(!response) return Kick(playerid);
    if(strlen(inputtext))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "Spieler/%s.ini", sendername);
    new File: hFile = fopen(string, io_read);
    if (hFile)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Dieser Benutzer wird bereit verwendet!");
    fclose(hFile);
    return 1;
    }
    new tmppass[64];
    strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
    Encrypt(tmppass);
    OnPlayerRegister(playerid,tmppass);
    }
    else
    {
    new regstring[128];
    new regname[64];
    GetPlayerName(playerid,regname,sizeof(regname));
    format(regstring,sizeof(regstring),"Welcome, %s",regname);
    ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Unlimited",regstring,"Register","abbrechen");
    }
    return 1;
    }
    return 1;
    }

    Hier Bitte, habe Spaß damit ^^


    if(strcmp(cmd, "/fenter", true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 22)
    {
    if(!IsPlayerInRangeOfPoint(playerid,3.0,1753.3104,-1894.1432,13.557)) return 1;
    SetPlayerPos(playerid,1494.325195,1304.942871,1093.289062);
    SetPlayerInterior(playerid,3);
    SetPlayerVirtualWorld(playerid,1);
    }
    return 1;
    }

    Versuchs damit..


    if(strcmp(x_take,"mats",true) == 0)
    {
    new mats[128] = strtok(cmdtext, idx);
    if(!strval(tmp)) return SendClientMessage(playerid,COLOR_GREEN,"Benutze /car take mats [menge]");//es komt immer diese message egal was ich bei "Menge" eingebe
    else if (CarInfo[car][cMats] >= mats)
    {
    CarInfo[car][cMats]-=mats;
    PlayerInfo[playerid][pMats]+=mats;
    format(string, sizeof(string), "Du hast %d Materialien aus dem Auto geholt",mats);
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    else SendClientMessage(playerid,COLOR_RED,"So viele Materialien sind nicht im Auto");
    return 1;
    }