Su Befehl ändern das man su befehl geben kann in anzahl

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
  • dcmd_su(playerid,params[]){
    if(SpielerInfo[playerid][sFraktion] == TEAM_POLIZEI || SpielerInfo[playerid][sFraktion] == TEAM_FBI || SpielerInfo[playerid][sFraktion] == TEAM_SFPD || SpielerInfo[playerid][sFraktion] == TEAM_Bundeswehr){
    new ID,Verbrechen[64];
    if(!sscanf(params,"us[64]",ID,Verbrechen)){
    if(IsPlayerConnected(ID) && SpielerInfo[playerid][sEingeloggt]){
    if(IsAStateFaction(SpielerInfo[ID][sFraktion]))
    return SendClientMessage(playerid,Farbe_Grau,"Du kannst keine Staatsdiener Gesuchtenlevel geben.");
    if(SpielerInfo[ID][sGefangen] == 1)
    return SendClientMessage(playerid,Farbe_Grau,"Dieser Spieler ist bereits im Knast.");
    if(SpielerInfo[ID][sWantedlevel] >= 25)
    return SendClientMessage(playerid,Farbe_Grau,"Der Spieler hat die maximal anzahl an Wantedlevel bereits erreicht.");
    SpielerInfo[ID][sWantedlevel]++;
    SpielerInfo[ID][sVerbrechen]++;
    if(SpielerInfo[ID][sWantedlevel] <= 6)
    SetPlayerWantedLevel(ID,SpielerInfo[playerid][sWantedlevel]);
    new Text[255];
    format(Text,sizeof(Text),"Du hast ein Verbrechen begangen ( %s ). Reporter: [%s].",Verbrechen,SpielerInfo[playerid][sName]);
    SendClientMessage(ID,Farbe_Leuchtrot,Text);
    SetPlayerWantedLevel(ID,SpielerInfo[ID][sWantedlevel]);
    format(Text,sizeof(Text),"Derzeitiges Wantedlevel: %d",SpielerInfo[ID][sWantedlevel]);
    SendClientMessage(ID,Farbe_Gelb,Text);
    format(Text,sizeof(Text),"%s hat %s ein Wanted gegeben, Grund: %s.",SpielerInfo[playerid][sName],SpielerInfo[ID][sName],Verbrechen);
    EnterToLog("Wanted",Text);
    ForAllPlayers(i){
    if(SpielerInfo[i][sEingeloggt]){
    if(SpielerInfo[i][sFraktion] == TEAM_POLIZEI || SpielerInfo[i][sFraktion] == TEAM_FBI || SpielerInfo[i][sFraktion] == TEAM_SFPD || SpielerInfo[i][sFraktion] == TEAM_Bundeswehr){
    format(Text,sizeof(Text),"** [Zentrale] | An alle Einheiten: Reporter: %s, over. **",SpielerInfo[playerid][sName]);
    SendClientMessage(i,0x8D8DFF00,Text);
    format(Text,sizeof(Text),"** [Zentrale] | Verbrechen: %s, Gesuchter: %s, Neues Wantedlevel: %d, over **", Verbrechen, SpielerInfo[ID][sName], SpielerInfo[ID][sWantedlevel]);
    SendClientMessage(i,0x8D8DFF00,Text);
    }
    }
    }
    }else SendClientMessage(playerid,Farbe_Grau,"Der gewählte Spieler ist nicht online.");
    }else SendClientMessage(playerid,Farbe_Grau,"Benutze: '/su(spect) [Playerid/Name] [Verbrechen]'");
    }else SendClientMessage(playerid,Farbe_Grau,"Das darfst du nicht!");
    return true;
    }


    Moin Leute habe das Problem kapiere es gerade nicht ganz wie mache ich das man /Su [Playerid] [Anzahl] machen kann

  • Willst du es so haben, dass man das verbrechen auch noch als Parameter angeben muss also:
    Benutze: '/su(spect) [Playerid/Name] [Verbrechen] [Anzahl]'


    oder das ganze ohne die Begründung, also [Verbrechen] weg:
    Benutze: '/su(spect) [Playerid/Name] [Anzahl]'

    Wenn ich dir geholfen haben sollte, würde ich mich extremst freuen, wenn du dir kurz Zeit nehmen würdest und mir helfen könntest:


    Unterstütze mich bitte hier und vote für mich:


    Ihr müsst nur oben links auf Vote klicken und bestätigen! Vielen Dank dafür

  • Welches jetzt? Das erste oder das zweite?
    1. '/su(spect) [Playerid/Name] [Verbrechen] [Anzahl]'


    2. '/su(spect) [Playerid/Name] [Anzahl]'

    Wenn ich dir geholfen haben sollte, würde ich mich extremst freuen, wenn du dir kurz Zeit nehmen würdest und mir helfen könntest:


    Unterstütze mich bitte hier und vote für mich:


    Ihr müsst nur oben links auf Vote klicken und bestätigen! Vielen Dank dafür

  • Das Problem ist, dass dein Script zwei "Wantedlevels" vergibt.
    Einmal ein selbsterstelltes, dass bis 25 geht. Und das von GTA, dass bis 6 Sterne geht.


    Ich bearbeite es dir mal so, dass das Selbsterstellte auch nur noch bis 6 geht und immer dem "GTA-WantedLevel" entspricht.


    dcmd_su(playerid,params[]){
    if(SpielerInfo[playerid][sFraktion] == TEAM_POLIZEI || SpielerInfo[playerid][sFraktion] == TEAM_FBI || SpielerInfo[playerid][sFraktion] == TEAM_SFPD || SpielerInfo[playerid][sFraktion] == TEAM_Bundeswehr)
    {
    new ID,Verbrechen[64],wLevel;
    if(!sscanf(params,"uis[64]",ID, wLevel, Verbrechen))
    {
    if(IsPlayerConnected(ID) && SpielerInfo[playerid][sEingeloggt])
    {
    if(IsAStateFaction(SpielerInfo[ID][sFraktion]))
    return SendClientMessage(playerid,Farbe_Grau,"Du kannst keine Staatsdiener Gesuchtenlevel geben.");

    if(SpielerInfo[ID][sGefangen] == 1)
    return SendClientMessage(playerid,Farbe_Grau,"Dieser Spieler ist bereits im Knast.");

    //if(SpielerInfo[ID][sWantedlevel] >= 25)
    // return SendClientMessage(playerid,Farbe_Grau,"Der Spieler hat die maximal anzahl an Wantedlevel bereits erreicht.");


    if(wLevel > 6 || wLevel < 0)
    return SendClientMessage(playerid,Farbe_Grau,"Das Wantedlevel muss zwischen 0 und 6 sein.");


    SpielerInfo[ID][sWantedlevel] = wLevel;
    SpielerInfo[ID][sVerbrechen]++;


    SetPlayerWantedLevel(ID,SpielerInfo[ID][sWantedlevel]);

    new Text[255];
    format(Text,sizeof(Text),"Du hast ein Verbrechen begangen ( %s ). Reporter: [%s].",Verbrechen,SpielerInfo[playerid][sName]);
    SendClientMessage(ID,Farbe_Leuchtrot,Text);
    SetPlayerWantedLevel(ID,SpielerInfo[ID][sWantedlevel]);
    format(Text,sizeof(Text),"Derzeitiges Wantedlevel: %d",SpielerInfo[ID][sWantedlevel]);
    SendClientMessage(ID,Farbe_Gelb,Text);
    format(Text,sizeof(Text),"%s hat das Wantedlevel von %s auf %d Wanteds gesetzt, Grund: %s.",SpielerInfo[playerid][sName],SpielerInfo[ID][sName],SpielerInfo[ID][sWantedlevel],Verbrechen);
    EnterToLog("Wanted",Text);


    ForAllPlayers(i)
    {
    if(SpielerInfo[i][sEingeloggt])
    {
    if(SpielerInfo[i][sFraktion] == TEAM_POLIZEI || SpielerInfo[i][sFraktion] == TEAM_FBI || SpielerInfo[i][sFraktion] == TEAM_SFPD || SpielerInfo[i][sFraktion] == TEAM_Bundeswehr)
    {
    format(Text,sizeof(Text),"** [Zentrale] | An alle Einheiten: Reporter: %s, over. **",SpielerInfo[playerid][sName]);
    SendClientMessage(i,0x8D8DFF00,Text);
    format(Text,sizeof(Text),"** [Zentrale] | Verbrechen: %s, Gesuchter: %s, Neues Wantedlevel: %d, over **", Verbrechen, SpielerInfo[ID][sName], SpielerInfo[ID][sWantedlevel]);
    SendClientMessage(i,0x8D8DFF00,Text);
    }
    }
    }

    }
    else SendClientMessage(playerid,Farbe_Grau,"Der gewählte Spieler ist nicht online.");
    }
    else SendClientMessage(playerid,Farbe_Grau,"Benutze: '/su(spect) [Playerid/Name] [Wantedlevel] [Verbrechen]'");
    }
    else SendClientMessage(playerid,Farbe_Grau,"Das darfst du nicht!");
    return true;
    }


    Falls, es durch die Änderung des höchsten Wantedlevels (25) zu Problemen kommen sollte, meld dich einfach nochmal, dann könnte man es auch anders lösen.

    Wenn ich dir geholfen haben sollte, würde ich mich extremst freuen, wenn du dir kurz Zeit nehmen würdest und mir helfen könntest:


    Unterstütze mich bitte hier und vote für mich:


    Ihr müsst nur oben links auf Vote klicken und bestätigen! Vielen Dank dafür

    2 Mal editiert, zuletzt von Martin08 ()

  • Habe das ganze nicht getestet, sollte aber so klappen :)
    Du musst eig nur bei sscanf erweitern...


    dcmd_su(playerid,params[]){
    if(SpielerInfo[playerid][sFraktion] == TEAM_POLIZEI || SpielerInfo[playerid][sFraktion] == TEAM_FBI || SpielerInfo[playerid][sFraktion] == TEAM_SFPD || SpielerInfo[playerid][sFraktion] == TEAM_Bundeswehr){
    new ID,Anzahl,Verbrechen[64];
    if(!sscanf(params,"uis[64]",ID,Anzahl,Verbrechen)){
    if(IsPlayerConnected(ID) && SpielerInfo[playerid][sEingeloggt]){
    if(IsAStateFaction(SpielerInfo[ID][sFraktion]))
    return SendClientMessage(playerid,Farbe_Grau,"Du kannst keine Staatsdiener Gesuchtenlevel geben.");
    if(SpielerInfo[ID][sGefangen] == 1)
    return SendClientMessage(playerid,Farbe_Grau,"Dieser Spieler ist bereits im Knast.");
    if(SpielerInfo[ID][sWantedlevel] >= 25)
    return SendClientMessage(playerid,Farbe_Grau,"Der Spieler hat die maximal anzahl an Wantedlevel bereits erreicht.");
    SpielerInfo[ID][sWantedlevel]++;
    SpielerInfo[ID][sVerbrechen]++;
    if(SpielerInfo[ID][sWantedlevel] <= 6)
    SetPlayerWantedLevel(ID,SpielerInfo[playerid][sWantedlevel]);
    new Text[255];
    format(Text,sizeof(Text),"Du hast ein Verbrechen begangen ( %s ). Reporter: [%s].",Verbrechen,SpielerInfo[playerid][sName]);
    SendClientMessage(ID,Farbe_Leuchtrot,Text);
    SetPlayerWantedLevel(ID,SpielerInfo[ID][sWantedlevel]);
    format(Text,sizeof(Text),"Derzeitiges Wantedlevel: %d",SpielerInfo[ID][sWantedlevel]);
    SendClientMessage(ID,Farbe_Gelb,Text);
    format(Text,sizeof(Text),"%s hat %s %i Wanted(s) gegeben, Grund: %s.",SpielerInfo[playerid][sName],SpielerInfo[ID][sName],Anzahl,Verbrechen);
    EnterToLog("Wanted",Text);
    ForAllPlayers(i){
    if(SpielerInfo[i][sEingeloggt]){
    if(SpielerInfo[i][sFraktion] == TEAM_POLIZEI || SpielerInfo[i][sFraktion] == TEAM_FBI || SpielerInfo[i][sFraktion] == TEAM_SFPD || SpielerInfo[i][sFraktion] == TEAM_Bundeswehr){
    format(Text,sizeof(Text),"** [Zentrale] | An alle Einheiten: Reporter: %s, over. **",SpielerInfo[playerid][sName]);
    SendClientMessage(i,0x8D8DFF00,Text);
    format(Text,sizeof(Text),"** [Zentrale] | Verbrechen: %s, Gesuchter: %s, Neues Wantedlevel: %d, over **", Verbrechen, SpielerInfo[ID][sName], SpielerInfo[ID][sWantedlevel]);
    SendClientMessage(i,0x8D8DFF00,Text);
    }
    }
    }
    }else SendClientMessage(playerid,Farbe_Grau,"Der gewählte Spieler ist nicht online.");
    }else SendClientMessage(playerid,Farbe_Grau,"Benutze: '/su(spect) [Playerid/Name] [Verbrechen]'");
    }else SendClientMessage(playerid,Farbe_Grau,"Das darfst du nicht!");
    return true;
    }

  • Enrico ;)
    sscanf fragt hab ob der spieler auch alles eingegen hat
    also die ID,Verbrechen und da tust du dann einfach Anzahl hinzufürgen ;)


    mfg:iOwnedyou :D


    /edit meld dich skype


    wenn dus immer nochnet Checkst

  • Besser gesagt zerlegt sscanf einen String in seine Einzelteile.


    if(!sscanf(params,"uis",ID,Anzahl,Verbrechen))


    Du gibst ja zum Beispiel "/su 8 3 Autodiebstahl" ein. sscanf splittet jetzt die "8", die "3" und das "Autodiebstahl" auf und speichert sie in die variablen "ID","Anzahl" und "Verbrechen".



    Aber was hast du gegen meine Lösung? Funktioniert sie nicht oder was?

    Wenn ich dir geholfen haben sollte, würde ich mich extremst freuen, wenn du dir kurz Zeit nehmen würdest und mir helfen könntest:


    Unterstütze mich bitte hier und vote für mich:


    Ihr müsst nur oben links auf Vote klicken und bestätigen! Vielen Dank dafür