Beiträge von Jeffry

    Wird es nicht angezeigt, oder stimmt der Text nicht, oder stürzt das Spiel ab, oder was passiert? Ich kann dir nicht sagen was falsch ist, wenn du mir nicht sagst, was der Fehler ist (nicht der Fehler im Code, sondern den Fehler im Spiel, also die Auswirkung).
    Theoretisch kann es ja alles mögliche sein, daher musst du das Problem erst mal schildern.

    if(!IsNumeric(inputtext) || !strlen(inputtext)) return SendClientMessage(playerid, 0xFF0000FF, "Error: Nur Zahlen!");
    new pID = strval(inputtext);
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000FF, "Error: Spieler nicht online!");

    Das kannst du dann so machen, angenommen, dass das neue DM die ID 7 hat (das letzte in der Reihe hatte ja 6).


    public OnPlayerSpawn(playerid)
    {
    //Wenn du 7 DMs hast, dann >muss< bei "Dm" eine 8 (oder höher) rein:
    new String[128],Dm[8]; //<- Hier
    for(new i = 0; MAX_PLAYERS > i; i++)
    {
    if(IsPlayerConnected(i) && DM[i] >= 0)
    {
    Dm[DM[i]]++;
    }
    }
    SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
    format(String,sizeof(String),"/DEAGLE: %d - /DM: %d - /Test Arena: %d - /SNIPER: %d - /TEAMDM: %d - /INSEL: %d - /NEU %d - KEIN MODUS: %d",Dm[1],Dm[2],Dm[3],Dm[4],Dm[5],Dm[6],Dm[7],Dm[0]);
    TextDrawSetString(Textdraw[3],String);
    if(DM[playerid] == 0)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    else if(DM[playerid] == 1)
    {
    new rand = random(4);
    SetPlayerInterior(playerid,1);
    GivePlayerWeapon(playerid,24,500);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 2)
    {
    new rand = 4+random(4);
    SetPlayerInterior(playerid,10);
    GivePlayerWeapon(playerid,24,500);
    GivePlayerWeapon(playerid,25,500);
    GivePlayerWeapon(playerid,34,500);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 3)
    {
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,24,500);
    SetPlayerPos(playerid,-2223.0037,1217.4150,87.2109);
    SetPlayerFacingAngle(playerid,0);
    for(new i = 0; 4 > i;i++)
    {
    if(one[playerid][i] == 1)
    {
    SetPlayerVirtualWorld(playerid,i+1);
    }
    }
    }
    else if(DM[playerid] == 5)
    {
    new rand = 12+random(6);
    SetPlayerInterior(playerid,3);
    GivePlayerWeapon(playerid,24,1337);
    GivePlayerWeapon(playerid,25,1337);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 4)
    {
    new rand = 8+random(4);
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,34,500);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 6)
    {
    new rand = 18+random(4);
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,24,250);
    GivePlayerWeapon(playerid,25,250);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 7) //Angenommen das neue DM hat die Nummer 7
    {
    new rand = 22+random(4); //Im Array, Position 23 bis 26 (entsprechend Array-Index 22 - 25)
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,16,250);
    GivePlayerWeapon(playerid,17,250);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    return 1;
    }


    Und:
    new RandomSpawn[][rpos] = {
    //Deagle Arena
    {2170.1455,1619.1500,999.9766,268.7325},
    {2173.8379,1578.2926,999.9676,355.0020},
    {2206.3252,1551.2097,1008.0002,275.0152},
    {2197.7476,1611.7670,999.9689,270.7063},
    //Deathmatch Arena
    {-973.5314,1098.0420,1344.9725,152.0461},
    {-1069.3160,1094.3376,1343.0927,114.9785},
    {-1134.2878,1020.9984,1345.7385,331.2432},
    {-1032.9974,1082.2256,1343.1140,253.8179},
    //Sniper Arena
    {2258.8872,1013.1470,79.5547,40.021},
    {2319.2756,1112.1581,79.5546,107.0825},
    {2240.9902,1152.4130,79.5547,204.9767},
    {2184.8640,1044.0034,79.5547,270.9966},
    //teamdm Arena
    {362.0883,184.5245,1008.3828,179.6812},
    {370.6522,185.8935,1014.1797,194.5972},
    {367.1571,158.4084,1014.1875,14.6715},
    {365.9490,158.6305,1019.9844,57.1881},
    {371.4884,172.9320,1019.9844,31.9283},
    {355.1946,188.9884,1019.9844,276.3385},
    //insel Arena
    {-2472.5017,1928.1299,1.8585,230.6389},
    {-2476.0938,1860.8207,3.1238,313.5476},
    {-2406.3843,1856.7988,2.7644,39.0885},
    {-2404.9927,1933.2521,2.8361,136.2540},
    //NEU
    {-2472.5017,1928.1299,1.8585,230.6389},
    {-2476.0938,1860.8207,3.1238,313.5476},
    {-2406.3843,1856.7988,2.7644,39.0885},
    {-2404.9927,1933.2521,2.8361,136.2540} //Nur die letzte Zeile im ganzen Array hat kein Komma!
    };


    Die Koordinaten im Array unter NEU musst du natürlich entsprechend zu den Koordinaten in der NEU-Area ändern.

    Poste bitte den Server Log, wenn du das crashdetect Plugin eingefügt hast.
    Das crashdetect Plugin musst du im Plugins Ordner einfügen, und in der server.cfg unter plugins eintragen.

    Dann kannst du es auch so machen:
    public OnPlayerSpawn(playerid)
    {
    new String[128],Dm[9];
    for(new i = 0; MAX_PLAYERS > i; i++)
    {
    if(IsPlayerConnected(i) && DM[i] >= 0)
    {
    Dm[DM[i]]++;
    }
    }
    SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
    format(String,sizeof(String),"/DEAGLE: %d - /DM: %d - /1O1: %d - /Test Arena: %d - /SNIPER: %d - /TEAMDM: %d - /INSEL: %d - KEIN MODUS: %d",Dm[1],Dm[2],Dm[3],Dm[4],Dm[5],Dm[6],Dm[7],Dm[0]);
    TextDrawSetString(Textdraw[3],String);
    if(DM[playerid] == 0)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    else if(DM[playerid] == 1)
    {
    new rand = random(4);
    SetPlayerInterior(playerid,1);
    GivePlayerWeapon(playerid,24,500);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 2)
    {
    new rand = 4+random(4);
    SetPlayerInterior(playerid,10);
    GivePlayerWeapon(playerid,24,500);
    GivePlayerWeapon(playerid,25,500);
    GivePlayerWeapon(playerid,34,500);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 3)
    {
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,24,500);
    SetPlayerPos(playerid,-2223.0037,1217.4150,87.2109);
    SetPlayerFacingAngle(playerid,0);
    for(new i = 0; 4 > i;i++)
    {
    if(one[playerid][i] == 1)
    {
    SetPlayerVirtualWorld(playerid,i+1);
    }
    }
    }
    else if(DM[playerid] == 5)
    {
    new rand = 12+random(6);
    SetPlayerInterior(playerid,3);
    GivePlayerWeapon(playerid,24,1337);
    GivePlayerWeapon(playerid,25,1337);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 4)
    {
    new rand = 8+random(4);
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,34,500);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 6)
    {
    new rand = 18+random(4);
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,24,250);
    GivePlayerWeapon(playerid,25,250);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    return 1;
    }

    SetTimerEx("FindPlayer",1000,true,"u",playerid);
    zu:
    findTimer[playerid] = SetTimerEx("FindPlayer",1000,true,"dd",playerid, pID);


    Und:
    forward FindPlayer(playerid, pID);
    public FindPlayer(playerid, pID)
    {
    return 1;
    }


    Dann kannst du direkt in diesem public den Checkpoint neu setzen.


    Unter den Includes:
    new findTimer[MAX_PLAYERS] = {-1,...}; //Setzt alle Werte auf -1


    So kannst du dann über
    KillTimer(findTimer[playerid]);
    findTimer[playerid] = -1;
    den Timer killen.

    Weil du ihn erst mit SetPlayerPos aus dem Fahrzeug teleportierst, und danach erst GetPlayerVehicleID machst (das gibt dann 0 aus, du bist ja in keinem Fahrzeug mehr).
    Auf Grund des Lags geht es manchmal.

    public OnPlayerDisconnect(playerid, reason)
    {
    SavePlayer(playerid);
    ResetPlayer(playerid);
    DM[playerid]= 0;
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new String[128];
    //Hier geht's weiter nehme ich an...


    Schreibe es so (ja bei OnPlayerSpawn den ganzen Teil weg, der bringt nichts).

    Ahh, alles klar. Gut erklärt!
    Ändere den Fahrzeug-Teil zu:
    else if(IsPlayerInAnyVehicle(playerid))
    {
    new id = GetPlayerVehicleID(playerid);
    SetPlayerPos(playerid, PedX, PedY, PedZ);
    SetVehiclePos(id, VehX, VehY, VehZ);
    SetVehicleZAngle(id, VehA);
    PutPlayerInVehicle(playerid, id, 0);
    }


    Das lag daran, weil du nach SetPlayerPos (= er ist aus dem Fahrzeug) GetPlayerVehicleID machst.

    Das kann ich dir nicht direkt sagen, weil ich zum einen nicht weiß was buggt, und zum anderen der Code ziemlich verwirrend geschrieben ist, mit dem zweidimensionalen Array. Ändere das zu dem was ich dir gegeben habe, dann kann ich dir sagen, wie du weiter machen musst, damit du auch neue hinzufügen kannst. Aber schau erst mal, dass du es so kompiliert bekommst, ohne an sich ein neues DM hinzuzufügen.

    if(DM[playerid] == 0)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    else if(DM[playerid] == 1)
    {
    new rand = random(4);
    SetPlayerInterior(playerid,1);
    GivePlayerWeapon(playerid,24,500);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 2)
    {
    new rand = 4+random(4);
    SetPlayerInterior(playerid,10);
    GivePlayerWeapon(playerid,24,500);
    GivePlayerWeapon(playerid,25,500);
    GivePlayerWeapon(playerid,34,500);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 3)
    {
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,24,500);
    SetPlayerPos(playerid,-2223.0037,1217.4150,87.2109);
    SetPlayerFacingAngle(playerid,0);
    for(new i = 0; 4 > i;i++)
    {
    if(one[playerid][i] == 1)
    {
    SetPlayerVirtualWorld(playerid,i+1);
    }
    }
    }
    else if(DM[playerid] == 5)
    {
    new rand = 12+random(6);
    SetPlayerInterior(playerid,3);
    GivePlayerWeapon(playerid,24,1337);
    GivePlayerWeapon(playerid,25,1337);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 4)
    {
    new rand = 8+random(4);
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,34,500);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    else if(DM[playerid] == 6)
    {
    new rand = 18+random(4);
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,24,250);
    GivePlayerWeapon(playerid,25,250);
    SetPlayerPos(playerid,RandomSpawn[rand][rX],RandomSpawn[rand][rY],RandomSpawn[rand][rZ]);
    SetPlayerFacingAngle(playerid,RandomSpawn[rand][rA]);
    }
    return 1;
    }


    if(!strcmp("/deagle",cmdtext,true))
    {
    if(DM[playerid] != 0) return SendClientMessage(playerid,COLOR_YELLOW,"Du bist bereits in einer Arena. Benutze /leave");
    DM[playerid] = 1;
    format(text,sizeof(text),"Spieler %s ist der Deagle Arena beigetreten!",PlayerName(playerid));
    SendClientMessageToAll(COLOR_ORANGE,text);
    SpawnPlayer(playerid);
    return 1;
    }


    Außerdem sieht das new zu DM dann so aus:
    new DM[MAX_PLAYERS];


    Überall wo du dann einen Error bekommst, musst du die zweiten [ ] Klammern entfernen, und anstatt = 1; eben die ID des DMs eintrage (Deagle = 1).


    Dann kannst du wesentlich leichter neue hinzufügen, ohne alles zu ändern.
    DM verlassen => DM[playerid] zu 0 setzen.