/kidnap Befehl im OCMD?

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
  • Serwus Breadfish!


    Ich wollte mich mal informieren, wie ich am besten einen /kidnap Befehl mit OCMD machen kann.
    Also mit allen Features ( /kidnap [ID] [ 0 Sitz hinten links ..... ] ) und so.
    Wäre cool wenn mir jemand den Befehl geben/zeigen könnte.


    Mfg :)

    Mit unfreundlichen Grüßen
    Buschmensch

  • Das mit dem Sitz gilt glaub ich nur für Beifahrer... ich mach dir mal einen /kidnap befehl nur mit ID


    Editier ich gleich hier rein.




    ocmd:kidnap(playerid,params[])
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid, rot, "Du musst Fahrer sein!");
    new pID, veh, seat;
    if(sscanf(params,"di",pID,seat))return SendClientMessage(playerid, orange, "Benutzung: /kidnap [ID] [SitzID]");
    veh = GetPlayerVehicleID(playerid);
    PutPlayerInVehicle(pID, veh, seat);
    TogglePlayerControllable(pID, 0);
    return 1;
    }


    Ungetestet, müsste aber gehn. Brauchst halt noch /eject oder so.


    Achja Sitz geht doch :)

    Wer ist der Mensch hinter der Uniform? Ist euch das bekannt?
    Es ist der selbe der noch eben in Zivil neben euch stand.
    Warum wird er gehasst und so selten respektiert?
    Warum ist er derjenige der seinen Hals für euch riskiert?
    Trägt der Bulle eine Weste, das hat er früher nie gemacht,
    die Zeiten haben sich geändert und jeder Dienst ist ein Kampf!
    Warum gibt’s das SEK und warum sind sie so brutal?
    Und wieso hat wieder einer mit seinem Leben bezahlt?

    4 Mal editiert, zuletzt von Sonny Moore ()

  • Wie wärs noch mit Abfragen, ob er in der Nähe von pID ist, sonst wäre es... naja... sagen wir "unfair".

    Nur wenn man das Unmögliche versucht kann man das absolut Mögliche erreichen
    Hermann Hesse


    „Was manche Menschen sich selber vormachen, das macht ihnen so schnell keiner nach.”
    Gerhard Uhlenbruck

  • Stimmt gute idee kriegst du das hin Hamster? Wenn nicht kann ich dirs machen

    Wer ist der Mensch hinter der Uniform? Ist euch das bekannt?
    Es ist der selbe der noch eben in Zivil neben euch stand.
    Warum wird er gehasst und so selten respektiert?
    Warum ist er derjenige der seinen Hals für euch riskiert?
    Trägt der Bulle eine Weste, das hat er früher nie gemacht,
    die Zeiten haben sich geändert und jeder Dienst ist ein Kampf!
    Warum gibt’s das SEK und warum sind sie so brutal?
    Und wieso hat wieder einer mit seinem Leben bezahlt?

  • Ich hab es jetz so aber es ist falsch :
    ocmd:kidnap(playerid,params[])
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,Rot,"Du musst in einem Auto sein!");
    new pID, veh, seat, string[128], string2[128];
    if(sscanf(params,"di",pID,seat))return SendClientMessage(playerid,Hellblau, "Benutzung: /kidnap [ID] [0 = Rechts ; 1 = Links]");
    if(!IsPlayerInRangeOfPoint(playerid,5,pID))return SendClientMessage(playerid,Lila,"Du bist zu weit weg!");
    veh = GetPlayerVehicleID(playerid);
    PutPlayerInVehicle(pID, veh, seat);
    format(string,sizeof(string),"%s hat dich ins Auto gezogen und dich gefesselt!",SpielerName(playerid));
    SendClientMessage(pID,Hellblau,string);
    format(string2,sizeof(string2),"Du hast %s ins Auto gezogen und gefesselt!",SpielerName(pID));
    TogglePlayerControllable(pID, 0);
    return 1;
    }



    Wie kann ich dass noch machen das nur Frakktionen dies machen dürfen also das gleich alle in diesem Befehl aufgelistet werden?


    Mfg

    Mit unfreundlichen Grüßen
    Buschmensch

  • Sollte so gehen:


    ocmd:kidnap(playerid,params[])
    {
    if(isPlayerInFrakt(playerid,8) || isPlayerInFrakt(playerid,3)) // einfach in deine Fraktabfrage ändern mit [if(isPlayerInFrakt(playerid,1) || isPlayerInFrakt(playerid,2) || isPlayerInFrakt(playerid,3)) /*wenn du weitere Fraks einfügen willst, einfach die letze klammer wegmachen, neue Fraks reinsetzen und dam ende die Klammer wieder setzen.*/
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,Rot,"Du musst in einem Auto sein!");
    new pID, veh, seat, string[128], string2[128];
    if(sscanf(params,"di",pID,seat))return SendClientMessage(playerid,Hellblau, "Benutzung: /kidnap [ID] [0 = Rechts ; 1 = Links]");
    if(!IsPlayerInRangeOfPoint(playerid,5,pID))return SendClientMessage(playerid,Lila,"Du bist zu weit weg!");
    veh = GetPlayerVehicleID(playerid);
    PutPlayerInVehicle(pID, veh, seat);
    format(string,sizeof(string),"%s hat dich ins Auto gezogen und dich gefesselt!",SpielerName(playerid));
    SendClientMessage(pID,Hellblau,string);
    format(string2,sizeof(string2),"Du hast %s ins Auto gezogen und gefesselt!",SpielerName(pID));
    TogglePlayerControllable(pID, 0);
    }
    return 1;
    }

    Back to the roots!

  • Das würde nicht gehen bzw. ging bei mir früher nicht ;):
    if(!IsPlayerInRangeOfPoint(playerid,5,pID))return SendClientMessage(playerid,Lila,"Du bist zu weit weg!");


    Hier mal einen public:
    oben ins Script =
    forward Float:GetDistanceBetweenPlayers(p1,p2);


    Irgendwo im Script =
    public Float:GetDistanceBetweenPlayers(p1,p2)
    {
    new Float:x12,Float:y12,Float:z12,Float:x22,Float:y22,Float:z22;
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
    return -1.00;
    }
    GetPlayerPos(p1,x12,y12,z12);
    GetPlayerPos(p2,x22,y22,z22);
    return floatsqroot(floatpower(floatabs(floatsub(x22,x12)),2)+floatpower(floatabs(floatsub(y22,y12)),2)+floatpower(floatabs(floatsub(z22,z12)),2));
    }


    Und hier ein kleines Beispiel:
    if(GetDistanceBetweenPlayers(playerid, pID) < 8)
    {
    }
    else
    {
    SendClientMessage(playerid,FARBE,"zu weit weg.");
    }
    return 1;
    Gruß, Bunny

  • Wow danke es klappt,
    und wie wäre es beim /f Befehl?


    Muss man da für jede Frakktion einen erstellen?
    Weil wenn ich if(!isPlayerInFrakt(playerid,1) || isPlayerInFrakt(playerid,2) || .....


    Dann reden doch alle gemeinsam und jeder könnte bei jedem mitlesen also wie kann ich das am besten machen?

    Mit unfreundlichen Grüßen
    Buschmensch