Problem bei meinem /su Befehl

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
  • Hallo allerseits.


    Ich habe mir einen /su Befehl gemacht damit Cops Spielern Wanteds geben können. Das sieht so aus:



    Wenn ich den Befehl eingebe, passiert folgendes:



    Was hab ich falsch gemacht? :/

  • CMD:su(playerid,params[])
    {
    new Ziel,Grund;
    if(IsPlayerConnected(Ziel))
    {
    if(!sscanf(params,"us[10]",Ziel,Grund))
    {
    if(IstEinCop(playerid))
    {
    if(IstImDienst[playerid]==1)
    {
    if(!IstEinCop(Ziel))
    {
    new Wantedsterne=GetPlayerWantedLevel(playerid);
    new string[128];
    new PlayeridName[MAX_PLAYER_NAME],ZielName[MAX_PLAYER_NAME];
    SetPlayerWantedLevel(Ziel,Wantedsterne+1);
    GetPlayerName(playerid,PlayeridName,sizeof(PlayeridName));
    GetPlayerName(Ziel,ZielName,sizeof(ZielName));
    format(string,sizeof(string),"%s hat dir einen Wantedstern gegeben. Grund: %s",PlayeridName,Grund);
    SendClientMessage(Ziel,HELLBLAU,string);
    format(string,sizeof(string),"Du hast %s einen Wantedstern gegeben. Grund: %s",ZielName,Grund);
    SendClientMessage(playerid,HELLBLAU, string);
    format(string,sizeof(string),"Aktuelles Wantedlevel: %d",SpielerInfo[Ziel][Wantedlevel]);
    SendClientMessage(Ziel,GELB,string);
    return 1;
    }
    else return SendClientMessage(playerid,ROT,"Dieser Spiel ist ein Beamter!");
    }
    else return SendClientMessage(playerid,ROT,"Du bist nicht im Dienst!");
    }
    else return SendClientMessage(playerid,ROT,"Du bist kein Beamter im Dienst!");
    }
    else return SendClientMessage(playerid,GRAU,"Benutze: /su(spect) [Spielername/ID] [Grund]");
    }
    else return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online!");
    }


    Das return unten war nutzlos, das wurde unter keinen Umständen aufgerufen, dafür hat in der Mitte eins gefehlt ;)

  • CMD:su(playerid,params[])
    {
    new Ziel,Grund;
    if(IsPlayerConnected(Ziel))
    {
    if(!sscanf(params,"us[10]",Ziel,Grund))
    {
    if(IstEinCop(playerid))
    {
    if(IstImDienst[playerid]==1)
    {
    if(!IstEinCop(Ziel))
    {
    new Wantedsterne=GetPlayerWantedLevel(playerid);
    new string[128];
    new PlayeridName[MAX_PLAYER_NAME],ZielName[MAX_PLAYER_NAME];
    SetPlayerWantedLevel(Ziel,Wantedsterne+1);
    GetPlayerName(playerid,ZielName,sizeof(ZielName));
    GetPlayerName(Ziel,PlayeridName,sizeof(PlayeridName));
    format(string,sizeof(string),"%s hat dir einen Wantedstern gegeben. Grund: %s",PlayeridName,Grund);
    SendClientMessage(Ziel,HELLBLAU,string);
    format(string,sizeof(string),"Du hast %s einen Wantedstern gegeben. Grund: %s",ZielName,Grund);
    SendClientMessage(playerid,HELLBLAU, string);
    format(string,sizeof(string),"Aktuelles Wantedlevel: %d",SpielerInfo[Ziel][Wantedlevel]);
    SendClientMessage(Ziel,GELB,string);
    return 1;
    }
    else return SendClientMessage(playerid,ROT,"Dieser Spiel ist ein Beamter!");
    }
    else return SendClientMessage(playerid,ROT,"Du bist nicht im Dienst!");
    }
    else return SendClientMessage(playerid,ROT,"Du bist kein Beamter im Dienst!");
    }
    else return SendClientMessage(playerid,GRAU,"Benutze: /su(spect) [Spielername/ID] [Grund]");
    }
    else return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online!");
    }


    Dem Ziel musst du dein Namen [PlayeridName] ausgeben und dir selbst den Namen des Ziels [ZielName]
    Man kann es aber auch mit nur einer Variable machen, wenn die andere vorher genutzt wurde.
    mfG

  • CMD:su(playerid,params[])
    {
    new Ziel,Grund;
    if(sscanf(params,"us[10]",Ziel,Grund))return SendClientMessage(playerid,GRAU,"Benutze: /su(spect) [Spielername/ID] [Grund]");
    if(IsPlayerConnected(Ziel))
    {
    if(IstEinCop(playerid))
    {
    if(IstImDienst[playerid]==1)
    {
    if(!IstEinCop(Ziel))
    {
    new Wantedsterne=GetPlayerWantedLevel(playerid);
    new string[128];
    new PlayeridName[MAX_PLAYER_NAME],ZielName[MAX_PLAYER_NAME];
    SetPlayerWantedLevel(Ziel,Wantedsterne+1);
    GetPlayerName(playerid,PlayeridName,sizeof(PlayeridName));
    GetPlayerName(Ziel,ZielName,sizeof(ZielName));
    format(string,sizeof(string),"%s hat dir einen Wantedstern gegeben. Grund: %s",PlayeridName,Grund);
    SendClientMessage(Ziel,HELLBLAU,string);
    format(string,sizeof(string),"Du hast %s einen Wantedstern gegeben. Grund: %s",ZielName,Grund);
    SendClientMessage(playerid,HELLBLAU, string);
    format(string,sizeof(string),"Aktuelles Wantedlevel: %d",SpielerInfo[Ziel][Wantedlevel]);
    SendClientMessage(Ziel,GELB,string);
    return 1;
    }
    else return SendClientMessage(playerid,ROT,"Dieser Spiel ist ein Beamter!");
    }
    else return SendClientMessage(playerid,ROT,"Du bist nicht im Dienst!");
    }
    else return SendClientMessage(playerid,ROT,"Du bist kein Beamter im Dienst!");
    }
    else return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online!");
    }

  • Ich hab ein wenig mit den Lösungen varriiert und es klappt soweit :D.
    Allerdings wird mir die Meldung "Aktuelles Wanted Level: X" nicht angezeigt....
    Warum nicht? :huh:


    //Edit: Außerdem kommt wenn mein "Grund" länger als 3 Buchstaben ist wieder die Meldung Server Unkown Command

    3 Mal editiert, zuletzt von Kisuke ()