Parameter wirkt sich immer auf mich aus

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 habe in meinem Selfmade mehrere Parameter (/ban , /kick , /makeleader). Immer wenn ich jetzt z.B
    /kick andererspieler bugusing. Dann kick ich mich immer selber. Dann kommt: "BigB wurde von BigB gekickt. Grund: Bugusing.


    Das ist auch mit "/makeleader" so. Wenn ich mit Admin1 alleine online bin und "/makeleader admin1 2" Dann kommt: "Du wurdest zum Leader der Sanitäter ernannt." Wenn ich jetzt mit Admin1 und Admin2 zu zweit online bin, und ich gebe als ADMIN1 "/makeleader admin2 3" Dann wird ADMIN1 zum Leader der Fraktion Hitman ernannt. Wenn Admin2 alleine online ist und "/makeleader admin2 3" Dann wird er zum Leader der Hitmans ernannt.


    Also immer wenn mehr als ein Spieler online ist, funktionieren meine Parameter nicht mehr.


    /kick:



    if(!strcmp(strget(cmdtext,0),"/kick")) {


    if(isPlayerAnAdmin(playerid,1))


    {


    if(!strlen(strget(cmdtext,1)))


    return


    SendClientMessage(playerid,grau,"Benutze: /kick [ID] [Grund]");


    new grund[128];


    new string[128];


    new id = strval(strget(cmdtext,1));


    new spieler[MAX_PLAYER_NAME];


    new admin[MAX_PLAYER_NAME];


    grund = strget(cmdtext,2);


    GetPlayerName(id,admin,sizeof(admin));


    GetPlayerName(playerid,spieler,sizeof(spieler));


    format(string, sizeof(string), "AdmCmd: %s wurde von %s gekickt. Grund: %s", admin, spieler, grund);


    SendClientMessage(playerid, rot, string);


    Kick(id);


    }


    return 1;


    }






    if(!strcmp(strget(cmdtext,0),"/makeleader"))


    {


    if(isPlayerAnAdmin(playerid,4)) {


    if(strlen(strget(cmdtext,1))) {


    new typ=strval(strget(cmdtext,1));//der erste Parameter wird ausgelesen (die Spieler ID (in diesem Fall 1))


    if(IsPlayerConnected(typ)) {//es wird überprüft, ob der Spieler (in diesem Fall 1) connected ist


    if(strlen(strget(cmdtext,2))) {


    new team=strval(strget(cmdtext,2)), s[100], js[20], skin;//das zweite Parameter (die Jobid) wird ausgelsen


    SetPVarInt(typ, "Leader", team);


    SetPVarInt(typ, "Fraktion", team);


    if(team==0) { format(js,sizeof(js),"Penner"); skin=78; }


    SetPlayerColor(playerid, weiß);


    if(team==1) { format(js,sizeof(js),"Präsidenten"); skin=166; }


    SetPlayerColor(playerid, lila);


    if(team==2) { format(js,sizeof(js),"Sanitäter"); skin=70; }


    SetPlayerColor(playerid,türkis);


    if(team==3) { format(js,sizeof(js),"Hitman"); skin=294; }


    SetPlayerColor(playerid,weiß);


    if(team==4) { format(js,sizeof(js),"Polizei"); skin=265; }


    SetPlayerColor(playerid,blau);


    format(s,sizeof(s),"Du wurdest zum Leiter der %s gemacht",js);


    SendClientMessage(typ,grün,s);


    SetPlayerSkin(typ,skin); }


    else { SendClientMessage(playerid, rot,"Benutze: /makeleader [ID] [Fraktion]"); }}


    else { SendClientMessage(playerid, rot,"Spieler ist nicht online"); }}


    else { SendClientMessage(playerid, rot,"Benutze: /makeleader [ID] [Fraktion]"); }}


    else { SendClientMessage(playerid, rot,"Du bist kein Admin!"); }


    return 1;


    }


    }







    PS: Arbeite mit PVar von MrMonat


    Edit 1: Eingerückt
    Edit 2: Rechtschreibung
    Edit 3: /makeleader hinzugefügt

    2 Mal editiert, zuletzt von bigb ()

  • Ich arbeite nie mit strcmp, aber ich bemerkte einen kleinen Fehler:


    AdmCmd: %s wurde von %s gekickt. Grund: %s", admin, spieler
    heißt also soviel wie:
    AdmCmd: admin wurde von spieler gekickt. Grund: %s

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25