dcmd , sscanf problem

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
  • Hi, wie ihr an meinem Filterscript sicher bemwerkt habt, arbeite ich z.z mit dcmd und sscanf.


    Jetzt wollte ich den befehl slap machen, der aber nicht funktioniert.. Es kommt immer "Kein Spieler mit angegebener ID Online"


    der Code


    //====="slap"========
    dcmd_slap(playerid,params[]) {
    new
    pID;
    if(sscanf(params, "s",pID)) {
    if(IsPlayerAdmin(playerid))
    return SendClientMessage(playerid,COLOR_RED,"Benutze: /slap [playerid]");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    {
    GetPlayerPos(pID);
    }
    SetPlayerPos(pID,x,y+15,z);
    SendClientMessage(pID, COLOR_RED, "Ein Admin hat dich geslapt!");
    return 1;
    }


    mfg

  • "s" steht für einen String. Du musst entweder "u" wenn du Player Name oder Player ID oder "d" bzw. "i" wenn du nur Player ID verwenden willst, hernehmen.
    Hier mal eine überarbeitete Version:
    dcmd_slap(playerid, params[]) {
    new target;
    if(sscanf(params,"u",target)) {
    if(IsPlayerAdmin(playerid)) {
    return SendClientMessage(playerid, 0xFF0000FF, "Benutzung: /slap [PlayerID/Name].");
    }
    else {
    return SendClientMessage(playerid, 0xFF0000FF, "Du bist kein Admin!");
    } }
    if(!IsPlayerConnected(target)) {
    return SendClientMessage(playerid, 0xFF0000FF, "Der angegebene User ist nicht online!");
    }
    new Float:x, Float:y,Float:z;
    GetPlayerPos(target, x, y, z);
    SetPlayerPos(target, x, y, z+25);
    SendClientMessage(target, 0xFF0000FF, "Ein Admin hat dich geslapt!");
    return 1;
    }