Was ist dran 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
  • Hey ich hab nen /kill befehl aber was kommt ist das



    /edit
    Wo steht Du hast gekillt das ist falsch da müsste der Name der pID sein .
    ocmd:kill(playerid,params[])
    {
    new pID,reason,string[128];
    if(!IstSpielerAdmin(playerid,1)) return ErrorA
    if(!IsPlayerConnected(pID)) return ErrorC
    if(sscanf(params,"us",pID,reason)) return SCM(playerid,Blau,"Benutze:/kill [ID/NAME] [GRUND]");
    SetPlayerHealth(pID,0);
    format(string,sizeof(string),"Admin %s hat dich %s aus dem Grund (%s) gekillt!",SpielerName(playerid),SpielerName(pID),reason);
    SCM(pID,Rot,string);
    format(string,sizeof(string),"Du hast %s gekillt aus dem Grund % (Abuse es nicht es wird gelogt)",SpielerName(pID),reason);
    SCM(playerid,hblau,string);
    return 1;
    }

    Einmal editiert, zuletzt von Grashalm ()

  • Zitat


    if(sscanf(params,"us",pID,reason)) return SCM(playerid,Blau,"Benutze:/kill [ID/NAME] [GRUND]");

    ändere mal das um in:


    if(sscanf(params,"is",pID,reason)) return SCM(playerid,Blau,"Benutze:/kill [ID/NAME] [GRUND]");


    weil die pID ja eine Zahl ist daher Integer also "i"


  • ocmd:kill(playerid,params[])
    {
    new pID,reason,string[128], name[128], name2[128];
    if(!IstSpielerAdmin(playerid,1)) return ErrorA
    if(!IsPlayerConnected(pID)) return ErrorC
    if(sscanf(params,"us",pID,reason)) return SCM(playerid,Blau,"Benutze:/kill [ID/NAME] [GRUND]");
    SetPlayerHealth(pID,0);
    GetPlayerName(playerid, name2, sizeof(name2));
    GetPlayerName(pID, name, sizeof(name));
    format(string,sizeof(string),"Admin %s hat dich %s aus dem Grund (%s) gekillt!",name2,name,reason);
    SCM(pID,Rot,string);
    format(string,sizeof(string),"Du hast %s gekillt aus dem Grund %s (Abuse es nicht es wird gelogt)",name,reason);
    SCM(playerid,hblau,string);
    return 1;
    }


    Probier es mal so.

  • "u" ist in dem Fall besser als "i", da es für einen User steht - man kann also sowohl Name als auch ID eingeben und es kommt immer die ID zurück.


    In der Zeile
    format(string,sizeof(string),"Du hast %s gekillt aus dem Grund % (Abuse es nicht es wird gelogt)",SpielerName(pID),reason);
    fehlt hinter dem % vom Grund das s, so wäre also richtig:
    format(string,sizeof(string),"Du hast %s gekillt aus dem Grund %s (Abuse es nicht es wird gelogt)",SpielerName(pID),reason);
    Das fehlende s "verwirrt" sscanf vermutlich und es haut die Parameter in eine andere Reihenfolge. Ist aber nur eine Vermutung, ist ungetestet.


    //edit: Menno, da war wer schneller :<

    Ich bin Dittis Signatur.