Wie Erstellt man ein /su Befehl mit Wanted Punkte

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 Liebe User ,


    Ich habe eine frage wie kann man ein /su Befehl erstellen mit Wanted Punkte die nur bis zu 69 gehen.


    mit den eigenschaften :


    • dcmd


    Verwendung /su [ID] [Wanted Punkte] [Grunde]


    Wanted Punkte: 1 - 12 = 1 Stern
    Wanted Punkte:13 - 22 = 2 Stern
    Wanted Punkte:23 - 32 = 3 Stern
    Wanted Punkte:33- 42 = 4 Stern
    Wanted Punkte:43 - 52 = 5 Stern
    Wanted Punkte:53- 69 = 6 Stern


    und mehr Wanted Punkte kann man nicht bekommen also 69 ist das Max.. an Wanted Punkten


    Bitte um Hilfe


    MFG


    Sam Cooper

  • Mysql (Strickendkind)




    enum UserInfoData
    {
    Admin,
    Sex,
    Alter,
    Level,
    Geld,
    BGeld,
    Leader,
    Member,
    Rank,
    Skin,
    ASkin,
    Job,
    BID,
    HID,
    tots,
    kills,
    Versichert,
    Float:PosX,
    Float:PosY,
    Float:PosZ,
    Float:PosA,
    BikeLic,
    CarLic,
    Perso,
    //Wanted-sache
    Wantedpunkte,
    }


    new SpielerInfo[MAX_PLAYERS][UserInfoData];


    //edit: (new) vergessen

    Einmal editiert, zuletzt von Sam Cooper ()

  • Hi


    Ich schreibe leider zurzeit über mein handy also werde ich nur kleine
    Stichwörter nennen.


    Setpvarint
    Getpvarint
    D
    Setplayerwanted oder giveplayerwanted
    Davor halt abfragen ob er in der fraktion ist !


    Mfg fishtime9


  • Das ist mir Klar ich will aber den / su Befehl so haben :



    mit den eigenschaften :




    • dcmd




    Verwendung /su [ID] [Wanted Punkte] [Grunde]




    Wanted Punkte: 1 - 12 = 1 Stern


    Wanted Punkte:13 - 22 = 2 Stern


    Wanted Punkte:23 - 32 = 3 Stern


    Wanted Punkte:33- 42 = 4 Stern


    Wanted Punkte:43 - 52 = 5 Stern


    Wanted Punkte:53- 69 = 6 Stern

  • Ich werde es heute (is ja 0:25 uhr^^) mal probieren und dir das system zeigen da ich nicht mit MySql arbeite musst du das dann noch einfügen

    La Cosa Nostra ♥

  • hier hab ichs für dich mal kurz gemacht :) , aber ist mit ocmd und sscanf geschrieben :( , du
    kannst ja die includes trozdem dir ja holen von ocmd und sscanf oder sie umschreiben sprich in Dcmd:).


    code:
    enum pInfo
    {
    WantedPunkte,
    Wanted,
    }
    new PlayerInfo[MAX_PLAYER_NAME][pInfo];


    public OnPlayerSpawn(playerid)
    {
    if(PlayerInfo[pInfo][WantedPunkte] == 5) //z.b.
    {
    GivePlayerWanted(playerid,1); // oder 2 oder 3 ;)
    SendClientMessage(playerid,ROT,"Dein Wanted ist um eins gestiegen da du 5 Wanted punkte hattest!");
    return 1;
    }
    else
    if(PlayerInfo[pInfo][WantedPunkte] == 10) //noch ein beispiel
    {
    GivePlayerWanteD(playerid,2); //oder 3 oder 4 oder 5....
    SendClientMessage(playerid,ROT,"Deine Wanted-Punkte haben soeben die 10er Grenze überschritten und du erhälst 2 Wanteds deshalb!");
    return 1;
    }
    return 0;
    }


    ocmd:su(playerid,params[])
    if(IsPlayerInTeam(LSPD)) //oder == true zwischen ))
    {
    if(sscanf(params,"ui",pID,Grund)) return SendClientMessage(playerid,GRAU,"/su ID Grund");
    ShowPlayerDialog(playerid,DIALOG_PUNKTE,DIALOG_STYLE_INPUT,"Punkte Vergeben","Bitte trage hier ein , wie viele punkte der Tätter bekommt!","Geben","Abrechen");
    return 1;
    }
    else
    SendClientMessage(playerid,ROT,"Du bist nicht ein Member der Fraktion!");
    return 0;


    public OnDialogResponse(playerid,inputext[]..)
    {
    new pID;
    new PunkteAnzahl;
    new string[150];
    if(dialogid == DIALOG_PUNKTE)
    {
    if(!response)
    {
    format(string,sizeof(string),"Du hast soeben punkte vom Officer %s erhalten!",Name(playerid))
    inputtext == PunkteAnzahl;
    PlayerInfo[pInfo][WantedPunkte] == PunkteAnzahl;
    SendClientMessage(pID,ROT,string);
    //hier dein mysql oder dini save reinhaun das er es speichert seine punkte sogesagt!
    }
    else
    SendClientMessage(playerid,ROT,"Versuche es nochmal!");
    return 0;
    }
    }


    stock Name(playerid)
    {
    new xname[MAX_PLAYER_NAME];
    GivePlayerName(playerid,xname,sizeof(xname); // oder )
    return Name(playerid); // oder Name bloss;)
    }


    //kann sein das ein paar kleine fehler enthalten sind :)
    // aber ich habe mein bestes gegeben!
    8)


    Viel glück noch mit dein SCript! :thumbup:

  • So ich schreib das mal in dini wie versprochen^^


    Beim enum:


    enum
    SpielerDaten
    {
    ...
    WantedPunkte
    }


    bitte in dcmd umschreiben!!!


    ocmd:su(playerid,params[])
    {
    new pID[32],pid,copname[32],text[128],Wanteds;
    new string[128],string2[128];
    if(!IstSpielerInFraktion(playerid,LSPD); return SendClientMessage(playerid,FARBE,"Du bist kein Cop/LSPD/was weis ich");//UMSCHREIBEN!!!
    else if(sscanf(params,"uds",pid,Wanteds,text)) return SendClientMessage(playerid,FARBE,"Nutzung: /su [ID] [Wantedpunkte] [Grund]!");//u=user d=zahl s=string
    GetPlayerName(playerid,copname,sizeof(copname));
    GetPlayerName(pid,pID ,sizeof(pID));
    format(string,sizeof(string),"Du hast %d Wantedpunkte von %s bekommen.",Wanteds,copname);
    format(string2,sizeof(string2),"Du hast %s %d Wantedpunkte gegeben.",pID,Wanteds);
    SetPVarInt(pid,"WantedPunkte",GetPVarInt(pid,"WantedPunkte")+Wanteds); SendClientMessage(playerid,FARBE,string); SendClientMessage(pid,FARBE,string2);
    SendClientMessage(playerid,FARBE,string);
    SendClientMessage(pid,FARBE,string);
    return 1;
    }


    Dann bei OnPlayerUpdate:



    new Spieler[64];//auf MySQL umschreiben!!!
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    if(GetPVarInt(playerid,"Banned")==>0 || GetPVarInt(playerid,"Banned")==<13)
    {
    SetPlayerWantedLevel(playerid,1);
    }
    }


    So und dass dann alles weiter schreiben und dann ist das fertig^^
    mfG xSonYx

    La Cosa Nostra ♥

    2 Mal editiert, zuletzt von xSonYx ()

  • dcmd_anzeigen(playerid,params[])
    {
    new pID,anzahl,grund[252],name[MAX_PLAYER_NAME],opfer[MAX_PLAYER_NAME],string[252];
    //
    if(SpielerInfo[playerid][pIstTot] == 1)
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Tote können keine Befehle nutzen!");
    }
    if(SpielerInfo[playerid][pKnastZeit] != 255)
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Gefangene können keine Befehle nutzen!");
    }
    if(!IstEinCop(playerid))
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du bist in keiner Staatsfraktion!");
    }
    if(Duty[playerid] == 0)
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du bist nicht im Dienst!");
    }
    //
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
    {
    if(!IsFactionCar(playerid,GetPlayerVehicleID(playerid)))
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du bist in keinem Fraktionsfahrzeug!");
    }
    }
    else
    {
    if(GetPlayerFaction(playerid) == 1)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2.0, 228.7623,165.5172,1003.0234))
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du bist nicht an der Zentrale!");
    }
    }
    if(GetPlayerFaction(playerid) == 2)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2.0, 326.7906,305.5945,999.1484))
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du bist nicht an der Zentrale!");
    }
    }
    if(GetPlayerFaction(playerid) == 3)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2.0, 212.4265,1822.9480,6.4141))
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du bist nicht an der Zentrale!");
    }
    }
    }
    //
    if(sscanf(params,"uds",pID,anzahl,grund))
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Benutze: /anzeigen [ID] [Wanteds] [Grund]");
    }
    //
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Dieser Spieler ist nicht online!");
    }
    if(anzahl > 69)
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du kannst nur maximal 69 Wantedpunkte vergeben!");
    }
    if(IstEinCop(pID))
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du kannst keinen Polizisten anzeigen!");
    }
    if(Maske[pID] == 1)
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du kannst keinen Maskierten anzeigen!");
    }
    if(SpielerInfo[pID][pKnastZeit] != 255)
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du kannst keinen Inhaftierten anzeigen!");
    }
    if(SpielerInfo[pID][pIstTot] == 1)
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du kannst keinen Toten anzeigen!");
    }
    if(IsPlayerNPC(pID))
    {
    return SendClientMessage(playerid,COLOR_ERROR,"Du kannst keinen Bot anzeigen!");
    }
    GetPlayerName(pID,opfer,sizeof(opfer));
    GetPlayerName(playerid,name,sizeof(name));
    //Wanted Nachricht
    format(string,sizeof(string),"%s hat %s %d Wantedpunkt(e) gegeben, Grund: %s",name,opfer,anzahl,grund);
    WantedMessage(COLOR_WANTEDMESSAGE,string);
    //Wanteds geben
    if(SpielerInfo[pID][pWanteds] + anzahl > 69)
    {
    SpielerInfo[pID][pWanteds] = 69;
    }
    else
    {
    SpielerInfo[pID][pWanteds] += anzahl;
    }
    SpielerInfo[pID][pVerbrechen] += 1;
    new test = SpielerInfo[pID][pWanteds]/10;
    SetPlayerWantedLevel(pID,test);
    format(string,sizeof(string),"Du hast ein Verbrechen begangen (%s), Reporter: %s.",grund,name);
    SendClientMessage(pID,COLOR_ERROR,string);
    format(string,sizeof(string),"Vergebene Wantedpunkte: %d || Aktuelle Wantedpunkte: %d",anzahl,SpielerInfo[pID][pWanteds]);
    SendClientMessage(pID,COLOR_WHITE,string);
    //
    return 1;
    }


    Hier mal aus meinem Script.