Beiträge von Tround

    probier doch einfach mal einen debug und suche nach dem fehler..
    z.b:
    if(!dini_Exists(Autodatei)) continue;
    print(Autodatei);
    oder
    printf("model %i posx %f posy %f posz %f posa %f farbe1 %i farbe2 %i",Autos[playerid][i][modelid],Autos[playerid][i][posx],Autos[playerid][i][posy],Autos[playerid][i][posz]+1.5,Autos[playerid][i][posa],Autos[playerid][i][Farbe1],Autos[playerid][i][Farbe2]);
    einfach mal überprüfen was so geladen wird und ob alles stimmt..


    if(GetPVarInt(playerid,"Adminlevel")=rang))return 1;

    Du musst immer alle Klammern auch schließen.


    hat er doch ? zähl nochmal genau nach.. fällt dir vielleicht schwer aber probiers trotzdem nochmal
    abragen sind immer mit ==
    if(GetPVarInt(playerid,"Adminlevel")==rang)return 1;

    ajo ich wollts nur mal sagen dass wenn der stock IsVehicleEmpty heißt will man doch eine 1 returnt bekommen falls es wahr ist und 0 falls es falsch ist oder nicht?


    Indirekt wenn man MAX_PLAYERS nutzt dann versteh ich es aber bei GetMaxPlayers.. ist es eh whayne von meiner sicht aus


    naja ob man jetzt MAX_PLAYERS auf 100 stellt oder die slot zahl auf 100 stellt ist das gleich da geb ich dir recht.. aber warum soll die schleife den spieler überprüfen der nicht connected ist.. das verursacht lags..
    for(new i =0;i<GetMaxPlayers();i++)
    oder
    for(new i=0;i<MAX_PLAYERS;i++)
    oder
    for(new i=0;i<100;i++)
    das ist alles das gleiche..


    zudem liest GetMaxPlayers(); die zahl der slots aus der server.cfg aus was auch wiederrum mehr resourcen frisst wie einfach MAX_PLAYERS abzufrage..


    du hast isplayerconnected gelöscht? das ist ziemlich wichtig in einer schleife..
    zudem hast du die returns vertauscht.. wenn jemand in dem auto sitzt returnst du 1 ?? genau falschrum wenn man sich den namen vom dem stock anschaut...



    hier mal mein vorschlag:
    ocmd:respawnfw(playerid,params[])
    {
    if(SpielerInfo[playerid][Leader] == 0)return SendClientMessage(playerid,COLOR_WHITE,"Du bist kein Leader!");
    if(SpielerInfo[playerid][Leader] == 2)
    {
    for(new i; i < sizeof(FactionCars); i++)
    {
    if(FactionCars[i][fFaction][0] == GetPlayerFaction(playerid))//vlcht liegt auch hier der fehler
    {
    if(!IsVehicleEmpty(FactionCars[i][fCarid]))continue;
    DestroyAndCreateFactionCar(FactionCars[i][fCarid]);
    }
    }
    }
    return 1;
    }

    public ScoreUpdate()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i))continue;
    new textstring[41];
    format(textstring, sizeof(textstring), "Score: %d",GetPlayerScore(i));
    TextDrawSetString(textdraw[i], textstring);
    TextDrawShowForPlayer(i, textdraw[i]);
    }
    return 1;
    }


    so müsste es funktionieren.. aber das scheint ziemlich resourcenunfreundlich zu sein.. könnte man besser lösen (z.b nur dann updaten wenn auch wirklich ein level vergeben wird)

    ganz einfach.. du frägst zwar ab ob mats über 500 liegt aber nicht ob mats unter 1 liegt..
    if(mats<1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du kannst minimal 1 Fraktions-Materialien kaufen!");
    return 1;
    }

    hast du es unter onplayerconnect auch gefixxt? da es fast überall falsch war


    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))


    und für die warnings .. ohne code kann keiner helfen