/setskin

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
  • Wie kann ich in den Befehl eine if Abfrage einbauen ob er den Skin 1-299 gewählt hat,
    und falls nicht sollte er eine Meldung bekommen. Ich bin mir im klaren wie ich das mache,
    aber bin dann an der Umsetzung gescheitert.


    if(strcmp(cmd, "/setskin", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Hilfe : /setskin [playerid/PartOfName] [skin model]");
    return 1;
    }
    new playa;
    new health;
    playa = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    health = strvalEx(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 4)
    {
    if(IsPlayerConnected(playa))
    {
    if(playa != INVALID_PLAYER_ID)
    {
    new name[20];
    new victim[20];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(playa, victim, sizeof(victim));
    PlayerInfo[playa][pModel] = health;
    PlayerInfo[playa][pChar] = health;
    SetPlayerSkin(playa, PlayerInfo[playa][pChar]);
    format(string, 256, "AdmWarning: [%s] Skin was just set to %d by %s!",victim,health,name);
    ABroadCast(COLOR_YELLOW,string,6);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Command nutzen,schäm dich!");
    }
    }
    return 1;
    }

  • Solche Befehle sind doch eigentlich nicht so gut, als wenn man das so macht
    ocmd:skin(playerid,params[])
    {
    new skin,pID;
    if(sscanf(params,"ui",pID,skin))return SendClientMessage(playerid,-1,"Benutze: /skin [playerid] [SkinID]");
    if(skin > 299 || skin < 0))return SendClientMessage(playerid,-1," Die SkinID muss zwischen 0-299 sein!");
    SetPlayerSkin(pID,skin);
    return 1;
    }


    Dann halt noch die Nachricht rein.
    Ist jetzt eine allgemeine Frage, interessiert mich wohl.

  • Nein. Warum? Nur weil es etwas mehr Code ist? Das hat damit nichts zu tun, das ist Ansichtssache. Ich persönlich bevorzuge die strtok Methode, da ich da mehr Freiheiten habe, außerdem weiß ich da was mein Code macht.


    Wie gesagt: Ansichtssache.

  • Vorteil ist, man muss nicht immer das Plugin updaten:p
    Außerdem kann man so Fehler vermeiden, die von sscanf aus kommen


    Endlich jemand der meine Meinung teilt!


    Und man hat schlichtweg mehr scripttechnische Freiheiten, die sscanf einem wegnimmt. Wer wirklich scripten will, der nutzt sscanf nicht, das hätte er/sie gar nicht nötig.



    (Auch wenn das etwas Off-Topic ist, aber das musste gesagt werden.)