[Question] String, Enum oder wie ?

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 zusammen,


    ich versuche gerade einen Setadmin Befehl zu basteln, der einen User jedoch persönlich anspricht. Ich glaube ich mache da was verkehrt, kann mir Jemand einen Tipp geben ?


    Zudem, ich Suche eine Erklärung für die Verwendung von %i, %s, %d, %e und so weiter. Was steht genau für was und ist wie anzuwenden ?


    Danke :)


    ocmd:setadmin(playerid, params[])
    {
    new query[256];
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Rot, "[AdmMsg]: %s, Du bist nicht befugt diesen Befehl zu benutzen!");
    new pID;
    if(sscanf(params, "ui", pID, rang)) return SendClientMessage(playerid, Blau, "Benutze: /setadmin [SpielerID][Rang 0 - 5]");
    SetPVarInt(playerid, "Adminlevel", rang);
    SendClientMessage(pID, Blau ,"Der Vorgang war erfolgreich");
    mysql_format(Handle, query, sizeof(query), "UPDATE `samp_database`.`users` SET `Adminlevel`='%i' WHERE `username`='%s'", Spielername(playerid));
    mysql_pquery(Handle, query);
    return 1;
    }

  • ocmd:setadmin(playerid, params[])
    {
    new query[256];
    if(!IsPlayerAdmin(playerid))
    {
    format(query,sizeof query,"[AdmMsg]: %s, Du bist nicht befugt diesen Befehl zu benutzen!",Spielername(playerid));
    return SendClientMessage(playerid, Rot, query);
    }
    new pID,rang;
    if(sscanf(params, "ui", pID, rang)) return SendClientMessage(playerid, Blau, "Benutze: /setadmin [SpielerID][Rang 0 - 5]");
    SetPVarInt(playerid, "Adminlevel", rang);
    SendClientMessage(pID, Blau ,"Der Vorgang war erfolgreich");
    mysql_format(Handle, query, sizeof(query), "UPDATE `users` SET `Adminlevel`='%i' WHERE `username`='%s'",rang,Spielername(playerid));
    mysql_pquery(Handle, query);
    return 1;
    }
    So sollte das passen.


    EDIT:
    ChristianW:
    Oh, peinlich.. :wacko:
    Danke ;)

    Einmal editiert, zuletzt von AirM4X ()

  • Dank deine Antwort bin ich auf das hier gestoßen :)


    [ SCRIPTING ] sscanf 2.0


    Besten Dank !


    new pID,rang;


    Das hatte ich absichtlich weggelassen, da die Ränge aus einem Stock enstehen :)


    stock Adminrang(playerid)
    {
    new rang[54];
    switch(SpielerInfo[playerid][pAdminlevel])
    {
    case 0 : rang = "Zivilist";
    case 1 : rang = "Probe Supporter";
    case 2 : rang = "Supporter";
    case 3 : rang = "Moderator";
    case 4 : rang = "Admin";
    case 5 : rang = "FullAdmin";
    case 6 : rang = "Inhaber";
    }
    return rang;
    }


    Dafür nochmals besten Dank an @seegran und ChristianW wegen die Hilfe gestern Abend im TS³ !

    Einmal editiert, zuletzt von LoomaR ()

  • Wenn ich mich richtig erinnere sollte


    case 0: return "Zivilist";
    ohne Probleme möglich sein.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • @BlackAce: Wir reden gerade hier drüber:
    if(!IsPlayerAdmin(playerid))
    {
    format(query,sizeof query,"[AdmMsg]: %s, Du bist nicht befugt diesen Befehl zu benutzen!",Spielername(playerid));
    return SendClientMessage(playerid, Rot, query);
    }
    8)

  • 8|?( :wacko:


    Und ich suche doch nur eine Erklärung für :


    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Rot, "[AdmMsg]: [u]'%s[/u]', Du bist nicht befugt diesen Befehl zu benutzen!");


    Nicht wegen einem case oder return oder wie auch immer, und warum dass so sein muss, damit ich auch einen grund und nicht nur eine Vorlage habe ! :/