ocmd: Scripting fehler

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 ein kleines Problem:


    bei Nr. 1:
    Ich schreibe etwas nach /a aber es erscheint nichts ;(


    Also es erscheint nur ADMIN ... :
    Und der Text kommt nicht


    bei Nr. 2:
    ich gib z.b. /slap hundekadaver ein aber trotzdem werde ich geslappt


    Nr.1
    ocmd:a(playerid,params[])
    {
    new MSG[80] ;
    if(!isPlayerAdmin(playerid,1))return SendClientMessage(playerid,ROT, "Du darfst diesen Befehl nicht nutzen !");
    format(MSG,sizeof(MSG),"ADMIN %s: %s",SpielerName(playerid), MSG);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(isPlayerAdmin(i,1))
    {
    SendClientMessage(i,GELB,MSG);
    }
    }
    return 1;
    }


    Nr.2
    ocmd:slap (playerid,params[])
    {
    new MSG[50],TargetID, AdminMSG[50];
    if(!isPlayerAdmin(playerid,1))return SendClientMessage(playerid, ROT, "Du darfst diesen Befehl nicht nutzen !");
    if(sscanf(params,"u",SpielerName(TargetID)))return SendClientMessage(playerid,GRAU,"Fehler: /slap [Username/ID]");
    new Float:x,y,z;
    GetPlayerPos(TargetID,Float:x,Float:y,Float:z);
    SetPlayerPos(TargetID,Float:x+15,Float:y,Float:z);
    format(MSG,sizeof(MSG),"Du wurdest von %s geslappt !", SpielerName(playerid));
    SendClientMessage(TargetID,ROT, MSG);
    format(AdminMSG,sizeof(AdminMSG),"ADMIN %s hat %s geslappt !", SpielerName(playerid), SpielerName(TargetID));
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(isPlayerAdmin(i,1))
    {
    SendClientMessage(i,ROT,AdminMSG);
    }
    }
    return 1;
    }


    MfG,
    iAIR

  • Zitat

    Bei Nummer 1 benutzt du gar keine Parameter...


    Bitte erläutere das ein wenig, kenn mich in bereich scripting noch nicht allzu gut aus, und deine Aussagen versteh ich nicht zu 100%


    ich denk du meinst mit Parameter i-was mit sscanf und willst abrufen ob er überhaupt was eingegeben hat

  • Bei Nummer 2 hast du ja das:


    if(sscanf(params,"u",SpielerName(TargetID)))return SendClientMessage(playerid,GRAU,"Fehler: /slap [Username/ID]");


    Die "params" sind sogenannte Parameter.
    Das ist jedoch hier falsch, muss zu:


    if(sscanf(params,"u",TargetID))return SendClientMessage(playerid,GRAU,"Fehler: /slap [Username/ID]");


    Und das hast du bei Nr.1 nicht gemacht ;)


    Mein Schatz:*