ocmd:jail erstellen, nur wie ?

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
  • Guten Abend,


    ich möchte mit ocmd ein command erstellen was nur für das LSPD zur Verfügung steht, nähmlich "/jail" .
    Der Befehl sollte ungefähr so sein dass man in der nähe von den Zellen des LSPD sein muss um "/jail [ID] [ZEIT] [Grund] [Kaution]" eingeben zu können.
    Mein Problem hierbei ist, dass ich nicht weiß wie der Polizist das schreiben kann um einen anderen einzusperren, weil wenn man "/jail" mit SetPlayerPos(playerid) macht,
    kommt man ja selbst in die Zelle. Desweiteren weiß ich leider nicht wie die Zeit festlegen kann und wie ich es einstelle, dass dem Spieler wenn er die Kaution bezahlen will,
    ihm diese Abgezogen wird und er wieder in Freiheit gelangt.


    Ich besitze ein Grundwissen was das Scripten angeht, und wäre für eine hilfreiche Antwort sehr Dankbar.


    P.S. Ich habe die Suchfunktion bereits genutzt und nichts gefunden, was mir hilft.

  • Hey,
    zb so:


    ocmd:jail(playerid,params[])
    {
    new pID,zeit;
    new grund[64];
    new string[128];
    new string2[128];
    if(IsPlayerInFrakt(playerid,1) || IsPlayerInFrakt(playerid,2) || IsPlayerInFrakt(playerid,3) || IsPlayerInFrakt(playerid,14))
    {
    if(!IsPlayerInRangeOfPoint(playerid,3.0,1561.8386,-1693.8148,5.8906))return SCM(playerid,FARBE_ROT,"Du bist an keinem Jail Pickup");
    if(sscanf(params,"uzi",pID,grund,zeit))return SCM(playerid,FARBE_ROT,"Tippe: /jail <pID> <Grund> <Zeit>");
    if(!IsPlayerInRangeOfPoint(pID,12.0,1561.8386,-1693.8148,5.8906))return SCM(playerid,FARBE_ROT,"Der Spieler den du Verhaften willst, ist nicht in der Nähe von einem Pickup!");
    if(GetPlayerWantedLevel(pID) == 0)return SCM(playerid,FARBE_ROT,"Der Spieler hat keine Wanteds!");
    SetPlayerPos(pID,knast);
    SetPlayerFacingAngle(pID,264.8201);
    SetPlayerInterior(pID,0);
    SetPlayerWantedLevel(pID,0);
    ResetPlayerWeapons(pID);
    SetPlayerVirtualWorld(pID,0);
    TogglePlayerControllable(pID,1);
    SetPVarInt(pID,"Verhaftet",1);
    SetTimerEx("verhaftet",zeit*60000,false,"i",pID);
    format(string,sizeof(string),"Officer %s hat dich Verhaftet. Grund: [%s], Zeit: [%d] Minuten.",Spielername(playerid),grund,zeit);
    format(string2,sizeof(string2),"Du hast %s Verhaftet. Grund: [%s], Zeit: [%d] Minuten.",Spielername(pID),grund,zeit);
    SCM(pID,FARBE_ROT,string);
    SCM(playerid,FARBE_ROT,string2);
    }
    else SCM(playerid,FARBE_WARNING,"Du bist kein Staatsbeamter!");
    return 1;
    }


    MfG
    Freestyyler

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

  • C:\Program Files (x86)\Rockstar Games\gamemodes\ASDF.pwn(519) : error 017: undefined symbol "Spielername"
    C:\Program Files (x86)\Rockstar Games\gamemodes\ASDF.pwn(520) : error 017: undefined symbol "Spielername"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    Hier ist die Zeile dazu :


    format(string,sizeof(string),"Officer %s hat dich Verhaftet. Grund: [%s], Zeit: [%d] Minuten.",Spielername(playerid),grund,zeit);
    format(string2,sizeof(string2),"Du hast %s Verhaftet. Grund: [%s], Zeit: [%d] Minuten.",Spielername(pID),grund,zeit);


    //Edit: muss ich das #definen oder was soll Spielername bedeuten ?

  • Funktioniert soweit.
    Danke !


    Hallo nochmal ich habe 2 Fragen.
    1. Wie Kann ich die Verbliebende Knastzeit im "SpielerSpeichern" speichern lassen und beim "SpielerLaden" die Restzeit auslesen?
    2. WIe kann ich die LSPD Befehle auch für's FBI, LVPD und SFPD freigeben ohne den ganzen Befehl zu Kopieren und nur die LSPD Fraktionsnummer mit einer anderen zu ersetzen ?


    Wäre für schnelle Antwort sehr Dankbar.

    Einmal editiert, zuletzt von Eriik_Cartman () aus folgendem Grund: Weitere Frage

  • Funktioniert soweit.
    Danke !


    Hallo nochmal ich habe 2 Fragen.
    1. Wie Kann ich die Verbliebende Knastzeit im "SpielerSpeichern" speichern lassen und beim "SpielerLaden" die Restzeit auslesen?
    2. WIe kann ich die LSPD Befehle auch für's FBI, LVPD und SFPD freigeben ohne den ganzen Befehl zu Kopieren und nur die LSPD Fraktionsnummer mit einer anderen zu ersetzen ?


    Wäre für schnelle Antwort sehr Dankbar.


    if(IsPlayerInFrakt(playerid,1) || IsPlayerInFrakt(playerid,2) || IsPlayerInFrakt(playerid,3) || IsPlayerInFrakt(playerid,14))


    Einfach || und dann die nächste Fraktion!


    && heißt zb ob er in Fraktion FBI und Lspd ist
    || heißt zb ob er in Fraktion FBI oder Lspd ist



    MfG

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

  • Cool Danke !


    Wenn mir jetzt noch jemand sagen könnte, wie ich die Gefängniszeit Speichere und Auslese wäre das sehr nett.
    Und sollte ein Spieler im Knast sterben, die Restknastzeit ausgelesen wird und der Spieler ggf. wieder in den Knast kommt,
    wäre ich sehr Dankbar!


    MfG
    -Eriik