Punkte System was ist falsch?

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
  • Guten Tag,
    ich finde den Fehler einfach nicht.


    ocmd:stats(playerid)
    {
    new string[2049],stats[2049];
    format(string,2049,"[Stats]");
    format(string,2049,"Name: %s",GetPlayerName);
    format(string,2049,"Level: %s",GetPlayerScore);
    format(string,2049,"Fraktion: %s",GetPVarInt(playerid,"Fraktion"));
    format(string,2049,"Rank: %s",GetPVarInt(playerid,"Rank"));
    format(string,2049,"Strafpunkte: %s",GetPVarInt(playerid,"Punkte"));
    format(string,2049,"Kills/Tode: %s/%s",GetPVarInt(playerid,"Kills"),GetPVarInt(playerid,"Tode"));
    format(string,2049,"Warns: %s",GetPVarInt(playerid,"Warns"));
    return
    }

    Einmal editiert, zuletzt von The Sensei ()

  • Beitrag von Fernando_Jizuya ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Ehrlich gesagt, alles falsch ;)
    Du liest Intergers in Strings :wacko:


    ocmd:stats(playerid,params[]){
    new string[300],name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(string,300,"%s\n[Stats]\nName: %s\nLevel: %d\nFraktion: %d\nRank: %d\nStrafpunkte: %d\nKills/Tode: %d/%d\nWarns: %d",
    name,GetPlayerScore(playerid),GetPVarInt(playerid,"Fraktion"),GetPVarInt(playerid,"Rank"),GetPVarInt(playerid,"Punkte"),GetPVarInt(playerid,"Kills"),GetPVarInt(playerid,"Tode"),GetPVarInt(playerid,"Warns"));
    return 1;
    }
    Fernando.: Das ist ebenfalls falsch ;)

  • Beitrag von The Sensei ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • und weiß einer wie ich bei einem Strafpunkte System die Punkte selber angeben kann die ich ihm geben will?
    Hab es nur geschafft das er immer nur 1 Punkt bekommt
    Code : ocmd:punkte(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,2))return SendClientMessage(playerid,ROT,"Du bist nicht beim Ordnungsamt.");
    new pID, reason[128],string[128],name[MAX_PLAYER_NAME];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,GELB,"/punkte [ID] [Grund]");
    format(string,128,"Ordnungsbeamter %s hat dir Strafpunkte eingetragen. Grund: %s",SpielerName(playerid),reason);
    SendClientMessage(pID,BLUTROT,string);
    format(string,128,"Du hast %s Strafpunkte eingetragen. Grund: %s",SpielerName(pID),reason);
    SendClientMessage(playerid,BABYBLAU,string);
    GetPlayerName(playerid,name,MAX_PLAYER_NAME),format(string,128,"(( HQ: %s hat %s Strafpunkte eingetragen. Grund: %s ))",SpielerName(playerid),SpielerName(pID),reason);
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || GetPVarInt(i,"Fraktion") != GetPVarInt(playerid,"Fraktion")) continue;
    SendClientMessage(i,BLAU,string);
    SetPVarInt(pID, "Punkte", GetPVarInt(pID, "Punkte")+1);
    SpielerSpeichern(pID);
    }
    return 1;
    }

  • ocmd:punkte(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,2))return SendClientMessage(playerid,ROT,"Du bist nicht beim Ordnungsamt.");
    new pID, reason[128],string[128],name[MAX_PLAYER_NAME],punkte;
    if(sscanf(params,"usi",pID,reason,punkte))return SendClientMessage(playerid,GELB,"/punkte [ID] [Grund] [Anzahl]");
    format(string,128,"Ordnungsbeamter %s hat dir %i Strafpunkte eingetragen. Grund: %s",SpielerName(playerid),punkte,reason);
    SendClientMessage(pID,BLUTROT,string);
    format(string,128,"Du hast %s %i Strafpunkte eingetragen. Grund: %s",SpielerName(pID),punkte,reason);
    SendClientMessage(playerid,BABYBLAU,string);
    GetPlayerName(playerid,name,MAX_PLAYER_NAME),format(string,128,"(( HQ: %s hat %s %i Strafpunkte eingetragen. Grund: %s ))",SpielerName(playerid),SpielerName(pID),punkte,reason);
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || GetPVarInt(i,"Fraktion") != GetPVarInt(playerid,"Fraktion")) continue;
    SendClientMessage(i,BLAU,string);
    SetPVarInt(pID, "Punkte", GetPVarInt(pID, "Punkte")+punkte);
    SpielerSpeichern(pID);
    }
    return 1;
    }


    So kannst ihn mehrere Punkte eintragen, je nachdem was du für "Anzahl" eingibst.



    MfG ;)

  • Beitrag von The Sensei ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von Fernando_Jizuya ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Habe einen Klammerfehler aber wo?
    ocmd:stats(playerid,params[])
    {
    new string[300],name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(string,300,"\n[Stats]\nName: %s\nLevel: %d\nFraktion: %d\nRank: %d\nStrafpunkte: %d\nKills/Tode: %d/%d\nWarns: %d");
    name,GetPlayerScore(playerid),GetPVarInt(playerid,"Fraktion"),GetPVarInt(playerid,"Rank"),GetPVarInt(playerid,"Punkte"),GetPVarInt(playerid,"Kills"),GetPVarInt(playerid,"Tode"),GetPVarInt(playerid,"Warns"));
    SendClientMessage(playerid,-1,string);
    return 1;
    }
    ocmd:punkte(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,2))return SendClientMessage(playerid,ROT,"Du bist nicht beim Ordnungsamt.");
    new pID, reason[128],string[128],name[MAX_PLAYER_NAME],punkte;
    if(sscanf(params,"usi",pID,reason,punkte))return SendClientMessage(playerid,GELB,"/punkte [ID] [Grund] [Anzahl]");
    format(string,128,"Ordnungsbeamter %s hat dir %i Strafpunkte eingetragen. Grund: %s",SpielerName(playerid),punkte,reason);
    SendClientMessage(pID,BLUTROT,string);
    format(string,128,"Du hast %s %i Strafpunkte eingetragen. Grund: %s",SpielerName(pID),punkte,reason);
    SendClientMessage(playerid,BABYBLAU,string);
    GetPlayerName(playerid,name,MAX_PLAYER_NAME),format(string,128,"(( HQ: %s hat %s %i Strafpunkte eingetragen. Grund: %s ))",SpielerName(playerid),SpielerName(pID),punkte,reason);
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || GetPVarInt(i,"Fraktion") != GetPVarInt(playerid,"Fraktion")) continue;
    SendClientMessage(i,BLAU,string);
    SetPVarInt(pID, "Punkte", GetPVarInt(pID, "Punkte")+punkte);
    SpielerSpeichern(pID);
    }
    return 1;
    }
    ocmd:clearpunkte(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,2))return SendClientMessage(playerid,ROT,"Du bist nicht beim Ordnungsamt.");
    if(!isPlayerRank(playerid,5))return SendClientMessage(playerid,ROT,"Du bist nicht Rank 5.");
    new pID, reason[128],string[128],name[MAX_PLAYER_NAME],punkte;
    if(sscanf(params,"usi",pID,reason,punkte))return SendClientMessage(playerid,GELB,"/clearpunkte [ID] [Grund] [Anzahl]");
    format(string,128,"Ordnungsbeamter %s hat dir %i Strafpunkte gelöscht. Grund: %s",SpielerName(playerid),punkte,reason);
    SendClientMessage(pID,BLUTROT,string);
    format(string,128,"Du hast %s %i Strafpunkte gelöscht. Grund: %s",SpielerName(pID),punkte,reason);
    SendClientMessage(playerid,BABYBLAU,string);
    GetPlayerName(playerid,name,MAX_PLAYER_NAME),format(string,128,"(( HQ: %s hat %s %i Strafpunkte gelöscht. Grund: %s ))",SpielerName(playerid),SpielerName(pID),punkte,reason);
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || GetPVarInt(i,"Fraktion") != GetPVarInt(playerid,"Fraktion")) continue;
    SendClientMessage(i,BLAU,string);
    SetPVarInt(pID, "Punkte", GetPVarInt(pID, "Punkte")-punkte);
    SpielerSpeichern(pID);
    }
    return 1;
    }

  • Klammer mal jeden Befehl einzeln aus, und teste bis der Fehler mit den 26 Errors weg ist.
    Dann kannst du ja sehen an welchem Befehl es liegt.

  • 1. Kopier das was du zuletzt gescriptet hast.
    2. Füge das Kopierte in einen leere PWN Datei nachdem du alles unnötige gelöscht hast. (pawno -> pawno.exe -> New -> Edit(Zweite Ganz oben Links)
    3. bei Edit auf -> Select All -> Delete
    4. Und zu allerletzt das Kopierte einfügen mit STRG+V oder RMB -> Einfügen
    5. Ins richtige Script reingehen und die ganze Zeit edit -> undo und manchmal compilen.


    Ich hoffe ich konnte dir helfen.