Wie frage ich folgendes ab?

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
  • Hallöle
    Ich habe mir ein ganz kleines Script zusm gebastelt für das es unnötig wäre ein ganzes ADm. System zu basteln (bzw. ich cheks einfach nich :O). So nun wollte ich gerne einen Befehl machen den aber nur ein Rcon Admin ausführen kann. als z.b /kick player.
    Jetzt wollte ich kurz fragen wie ich das am blödsten anstelle :)
    Und da ich schon nen fred öffne wollt ich auch noch fragen wie ein kick befehl aussieht und funktioniert.
    Ich freue mich auf eure antworten.
    MfG
    Niklas

  • Mein befehl sieht nun so aus:
    if(strcmp(cmdtext, "/aod", true, 10) ==0)
    {
    IsPlayerAdmin(playerid);
    SetPlayerColor(playerid, COLOR_RED);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Admin!");
    return 1;
    }

    return 0;
    So nun habe ich aber das problem das wenn ich /aod eingebe kommt Server:Unknown Comand brauche eure hilfe, und danke für alle bisherigen antworten :)

  • if IsPlayerAdmin(playerid))



    if(strcmp(cmdtext, "/aod", true, 10) ==0)
    {
    if(IsPlayerAdmin(playerid)) SetPlayerColor(playerid, COLOR_RED);
    else SendClientMessageToAll(playerid, COLOR_RED, "Du bist kein Admin");
    return 1;
    }
    edit: Text.
    edit: Frage, wozu ein Semikolon nach IsPlayerAdmin ?

    Einmal editiert, zuletzt von Onizuka ()

  • Ich dachte halt hinter jede funktion muss zum abschluss ein ";"


    Code
    C:\Users\Niklas\Documents\SA-Mp Server\gamemodes\Niklas.pwn(461) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.


    Kommt jetzt dabei raus :S
    edit: habe das agument missmatch jetzt beheben können.


    HAbe jetzt aber ein weiteres Problem:

    Code
    C:\Users\Niklas\Documents\SA-Mp Server\gamemodes\Niklas.pwn(470) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.


    in zeile 470 steht lediglich return 0; :S

    Einmal editiert, zuletzt von Spider ()

  • Bei If Abfragen nicht, bei allem anderen schon...


    (Als Anfänger solltest Klammern nutzen und nicht so zusammgengeschachtelt wie Shukaz)

    if(strcmp(cmdtext, "/aod", true) == 0)
    {
    if(IsPlayerAdmin(playerid))
    {
    SetPlayerColor(playerid, COLOR_RED);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Admin");
    }
    return 1;
    }

  • Wow danke :)
    Ich verstehe nun das mit dem kiken noch nicht so ganz. Also wenn ich den Befehl /kick anlege und in ihn dann reinschreibe kick(playerid) kicke ich mich ja logischer weise selbst, das ist aber natürlich nicht sinn der sache :D Also wie kann ich es so machen das ich hinter /kick die zu kickende id eingeben muss?

  • Zitat

    Bei If Abfragen nicht, bei allem anderen schon...


    Bei Switch-Anweisungen auch nicht ^^


    edit: Bei einem Befehl gibt es auch noch den Text der nach dem Befehl eingegeben wird. Dieser wird bei OnPlayerCommandText in der Variable cmdtext gespeichert. Am leichtesten (finde ich) geht das mit DCMD + sscanf. Such mal hier im Forum nach Command mit Parametern

  • Kurz in DCMD.
    Da ich finde, das für Neulinge ein "System" mit strcmp + Parameter etwas Brainfucked ist.


    dcmd_kick(playerid,params[])
    {
    new Reason[256], pID;
    if(IsPlayerAdmin)) SendClientMessage(playerid,grau,"Kein Admin");
    if(sscanf(params,"us",pID,Reason)) return SendClientMessage(playerid,grau,"USAGE: /kick [playerid] [Grund]");
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID,name,sizeof(name));
    new Aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Aname,sizeof(Aname));
    format(string,sizeof(string)," %s hat %s gekickt, Grund: %s",Aname,name,Reason);
    SendClientMessageToAll(farbe,string);
    Kick(pID);
    return 1;
    }


    Tut mir leid wenn was Falsch ist, es ist spät^^
    /edit: Quelltext

  • Zitat

    new Reason[256],

    ressourcenfressend :/ Im Chat können eh nur 128 Zeichen geschrieben werden und der Befehl /kick hat mir Leerzeichen schon 6 ^^ Dann wären es noch 122 (wenn ich richtig gerechnet habe :D ist schon ein bisschen spät).