/setscore Buggt

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • und nun zu /setscore
    Der macht das level auf 5z.B. aber wen ich Rellog mache ist das Level wider 0!
    ocmd:setscore(playerid,params[])
    {
    new pID, score, string[128], am[128];
    if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,rot,"Du bist nicht der Server Owner!");
    if(sscanf(params,"ud",pID,score))return SendClientMessage(playerid,hellblau,"Benutzung: /setscore [ID] [Score]");
    if(score < 1 || score > 50)return SendClientMessage(playerid,orange,"Dieses Level ist ungültig!");
    SetPVarInt(pID,"Level",score);
    GivePlayerScore(pID,score);
    format(string,sizeof(string),"Admin %s hat dein Score auf %d hoch gesettet.",SpielerName(playerid),score);
    SendClientMessage(pID,gruen,string);
    format(am,sizeof(am),"Admin %s hat den Score von %s auf %d gesettet.",SpielerName(playerid),SpielerName(pID),score);
    SendAdminMessage(gelb,am);
    format(string,sizeof(string),"Du hast den Score von %s auf %d gesettet.",SpielerName(pID),score);
    SendClientMessage(playerid,gruen,string);
    return 1;
    }


    Hoffe mir kan Jemald Helfen..


    //edit Punkt ist Fertig

    Einmal editiert, zuletzt von BangaLP ()

  • ?
    Kannst du mir eins ocmd machen wie es richtig geht?
    Kapiere gerade nicht was sie meine :(

  • Na du hast GivePlayerMoney(pID, Geld); vor ResetPlayerMoney(pID); das sieht dann am Ende so aus:

    • Du gibts "pID" das "Geld", wenn du den Command ausgeführt hast. Allerdings wird anschließend das Geld wieder resettet (durch ResetPlayerMoney(pID);)

    Also setze ResetPlayerMoney(pID); einfach vor GivePlayerMoney(pID, Geld);.



    Und zum 2ten Problem müsste man wissen, wie du den Spieler speicherst.
    Aber eigentlich müsste er bei einem Disconnect gespeichert werden, wenn du das richtig eingesetzt hast.


    Schick uns am besten mal dein OnPlayerDisconnect und deinen Code, wie du speicherst.

    PN Support? Kannste knicken!

  • OnPlayerDisconect
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/Accounts/%s.ini", pname);
    dini_IntSet(path, "geld", GetPlayerMoney(playerid));
    DeleteTicket(playerid);


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"Eingeloggt")==1)
    {
    new PlayerData[64];
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(PlayerData,sizeof(PlayerData),"Accounts/%s.ini",playername);
    dini_IntSet(PlayerData,"Level",GetPlayerScore(playerid));
    dini_IntSet(PlayerData,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(PlayerData,"Skin",GetPlayerSkin(playerid));
    dini_IntSet(PlayerData,"Health",GetPlayerHealth(playerid));
    dini_IntSet(PlayerData,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(PlayerData,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(PlayerData,"Jailed",GetPVarInt(playerid,"Jailed"));
    dini_IntSet(PlayerData,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(PlayerData,"PayDay",GetPVarInt(playerid,"PayDay"));
    dini_IntSet(PlayerData,"Monate",GetPVarInt(playerid,"Monate"));
    dini_IntSet(PlayerData,"Nummer",nummer[playerid]);
    dini_IntSet(Spielerdatei,"Premium",GetPVarInt(playerid,"Premium"));
    }
    return 1;
    }

  • Setz mal unter OnPlayerDisconnect SpielerSpeichern(playerid); und evtl zur Sicherheit, musst du aber nicht, bei dem Command ocmd:setscore ans Ende auch nochmal SpielerSpeichern(playerid);

    PN Support? Kannste knicken!

  • Wow, trotzdem habe ich noch nicht die Sicherheit dass es wirklich entgültig von deinem PC verschwunden ist.


    Ausserdem, du hast es garnicht nötig diesen "Bösen Smiley" zu benutzen, bin ich nicht derjenige der sich aufregen sollte?


    BTT, wie sieht die GivePlayerScore Funktion aus?

  • SetPlayerScore
    ocmd:setscore(playerid,params[])
    {
    new pID, score, string[128], am[128];
    if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,rot,"Du bist nicht der Server Owner!");
    if(sscanf(params,"ud",pID,score))return SendClientMessage(playerid,hellblau,"Benutzung: /setscore [ID] [Score]");
    if(score < 1 || score > 50)return SendClientMessage(playerid,orange,"Dieses Level ist ungültig!");
    GivePlayerScore(pID,score);
    SetPlayerScore(pID,score);
    format(string,sizeof(string),"Admin %s hat dein Score auf %d hoch gesettet.",SpielerName(playerid),score);
    SendClientMessage(pID,gruen,string);
    format(am,sizeof(am),"Admin %s hat den Score von %s auf %d gesettet.",SpielerName(playerid),SpielerName(pID),score);
    SendAdminMessage(gelb,am);
    format(string,sizeof(string),"Du hast den Score von %s auf %d gesettet.",SpielerName(pID),score);
    SendClientMessage(playerid,gruen,string);
    return 1;
    }


    Ist der ganze Befehl
    und hier noch SpielerSpeichern
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"Eingeloggt")==1)
    {
    new PlayerData[64];
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(PlayerData,sizeof(PlayerData),"Accounts/%s.ini",playername);
    dini_IntSet(PlayerData,"Level",GetPlayerScore(playerid));
    dini_IntSet(PlayerData,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(PlayerData,"Skin",GetPlayerSkin(playerid));
    dini_IntSet(PlayerData,"Health",GetPlayerHealth(playerid));
    dini_IntSet(PlayerData,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(PlayerData,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(PlayerData,"Jailed",GetPVarInt(playerid,"Jailed"));
    dini_IntSet(PlayerData,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(PlayerData,"PayDay",GetPVarInt(playerid,"PayDay"));
    dini_IntSet(PlayerData,"Monate",GetPVarInt(playerid,"Monate"));
    dini_IntSet(Spielerdatei,"Premium",GetPVarInt(playerid,"Premium"));
    }
    return 1;
    }


    Und der Load Account stock
    stock PlayerDataLaden(playerid)
    {
    new PlayerData[64];
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(PlayerData,sizeof(PlayerData),"Accounts/%s.ini",playername);
    SetPlayerScore(playerid,dini_Int(PlayerData,"Level"));
    SetPlayerSkin(playerid,dini_Int(PlayerData,"Skin"));
    GivePlayerMoney(playerid,dini_Int(PlayerData,"Geld"));
    SetPlayerHealth(playerid,dini_Int(PlayerData,"Health"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(PlayerData,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(PlayerData,"Fraktion"));
    SetPVarInt(playerid,"Jailed",dini_Int(PlayerData,"Jailed"));
    SetPVarInt(playerid,"PayDay",dini_Int(PlayerData,"PayDay"));
    SetPVarInt(playerid,"Monate",dini_Int(PlayerData,"Monate"));
    SetPVarInt(playerid,"Premium",dini_Int(PlayerData,"Premium"));
    SetPVarInt(playerid,"Level",dini_Int(PlayerData,"Level"));
    SetPVarInt(playerid,"Geld",dini_Int(PlayerData,"Geld"));
    SetPVarInt(playerid,"Skin",dini_Int(PlayerData,"Skin"));
    SetPVarInt(playerid,"Health",dini_Int(PlayerData,"Health"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,rot,"Du bist vom Server gebannt!");
    Kick(playerid);
    }
    SetPVarInt(playerid,"Eingeloggt",1);
    return 1;
    }