[Frage] /duty Befehl für Cops

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
  • Also ich habe einen halben Duty befehl erstellt,
    aber ich will,
    das der Spieler nicht überall /duty machen kann,
    sondern nur an diesem Punkt im LSPD.


    Ich weiß nicht wie das geht,
    kann mir das einer zeigen/sagen?


    Wäre echt cool von euch.


    /duty Befehl:
    ocmd:duty(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,Gelb,"Du bist kein Cop!");
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    GivePlayerWeapon(playerid,24,500);
    GivePlayerWeapon(playerid,31,300);
    GivePlayerWeapon(playerid,3,1);
    GivePlayerWeapon(playerid,25,30);
    GivePlayerWeapon(playerid,42,500);
    format(string,sizeof(string),"%s nimmt seine Waffen aus dem Waffenschrank, und meldet sich bereit zum Dienst!",name);
    return 1;
    }



    Danke im Voraus.



    Mfg

    Mit unfreundlichen Grüßen
    Buschmensch

  • Jo kein Problem, am besten fügst du in deinen Befehl ein IsPlayerInRangeOfPoint, nachdem er abgefragt hat, ob er ein Cop ist. Nähere Infos zu IPIROF kannst du im Wiki finden. :)


    ocmd:duty(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,Gelb,"Du bist kein Cop!");
    if(!IsPlayerInRangeOfPoint(playerid, [Dein gewünschter Radius], X, Y, Z))return SendClientMessage(playerid, Gelb, "Du bist nicht am /duty - Punkt!"); // Hier einfügen :)
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    GivePlayerWeapon(playerid,24,500);
    GivePlayerWeapon(playerid,31,300);
    GivePlayerWeapon(playerid,3,1);
    GivePlayerWeapon(playerid,25,30);
    GivePlayerWeapon(playerid,42,500);
    format(string,sizeof(string),"%s nimmt seine Waffen aus dem Waffenschrank, und meldet sich bereit zum Dienst!",name);
    return 1;
    }


    MfG Bossa


    /Edit: Befehl

  • Das wäre jetzt ein /arrest Befehl ohne Kaution und Timer


    ocmd:arrest(playerid,params[])
    {
    new pID;
    if(isPlayerInFrakt(playerid,1))//Fraktionsabfrage
    {
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,lila,"Benutzung: /arrest [ID/Name]");
    if(IsPlayerInRangeOfPoint(pID,3,x,y,z))//ob er in der Nähe eines Punktes ist x,y,z durch die Positionen ersetzen
    {
    SetPlayerPos(pID,x,y,z);//Wohin er soll(Knast,Zelle) x,y,z durch die Positionen ersetzen
    SendClientMessage(pID,rot,"Du wurdest eingesperrt.");
    }
    }
    return 1;
    }


    nicht getestet,farben ändern,wenn etwas falsch ist, bin selbst ein Neuling....... ;)

    Back to the roots!

    Einmal editiert, zuletzt von >> Andre << () aus folgendem Grund: pID

  • Kleine Verbesserung gibt es. Hier müsste es anstatt

    Zitat

    SendClientMessage(playerid,rot,"Du wurdest eingesperrt.");

    so lauten:

    Zitat

    SendClientMessage(pID,rot,"Du wurdest eingesperrt.");

    , denn sonst wird dem, der den Befehl ausführ die Nachricht zu gesandt.


  • Jep, stimmt. Habe das übersehen ;)

    Back to the roots!

  • Kein Problem :)


    Bei dem Arrest mit Zeit, würde ich dir empfehlen, einige "Arrests" zu definieren, welche dann bei bestimmten Wanteds angewendet werden. Somit musst du die Zeit nicht extra einstellen und missbrauch durch Spieler ist auch vorgebeugt.


    MfG Bossa

  • Zitat

    Warum formatierst du einen string, aber gibts ihn nicht aus?

    Welchen meinst du?


    MfG Bossa