/arrest

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
  • Moin Brotfische..
    ich bräuchte einen /arrest befehl für mein GNE Script.Da ich leider überhaupt keine vorstellung davon habe wir ich das mache bitte ich euch um hilfe.Der Befehl sollte die Wanteds von dem Verbrecher prüfen und ihn dann für jeden Wanted 2 Minuten lang einsperren.Also sollte das ungefähr so aussehen:


    /arrest [SpielerID/Name]


    Mehr nicht..Der bisherige /arrest Befehl ist so:


    if(strcmp(cmd, "/arrest", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gTeam[playerid] == 2 || IsACop(playerid) || PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
    {
    if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist nicht im Dienst!");
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,6.0, 218.8988,114.1459,999.0156) || IsPlayerInRangeOfPoint(playerid,6.0,1530.1338,-1676.9119,5.4657))
    {// Jail spot
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Befehl: /arrest [preis] [zeit (minuten)] [kaution (0=nein 1=ja)] [kationspreis]");
    SendClientMessage(playerid, COLOR_GRAD2, "Tipp: Beim Normalfall 2.000$ + 3 Minuten pro Wanted und beim Stellen 1.000$ + 2 Minuten pro Wanted");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 1 || moneys > 10000) { SendClientMessage(playerid, COLOR_GREY, " Das Bußgeld muss zwischen 1 und 10.000$ betragen!"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /arrest [preis] [zeit (minuten)] [kaution (0=nein 1=ja)] [kationspreis]");
    SendClientMessage(playerid, COLOR_GRAD2, "Tipp: Beim Normalfall 2.000$ + 3 Minuten pro Wanted und beim Stellen 1.000$ + 2 Minuten pro Wanted");
    return 1;
    }
    new time = strval(tmp);
    if(time < 1 || time > 60) { SendClientMessage(playerid, COLOR_GREY, " Die Minuten der Haftzeit dürfen nicht unter 1 oder über 60 liegen !"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /arrest [preis] [zeit (minuten)] [kaution (0=nein 1=ja)] [kationspreis]");
    SendClientMessage(playerid, COLOR_GRAD2, "Tipp: Beim Normalfall 2.000$ + 3 Minuten pro Wanted und beim Stellen 1.000$ + 2 Minuten pro Wanted");
    return 1;
    }
    new bail = strval(tmp);
    if(bail < 0 || bail > 1) { SendClientMessage(playerid, COLOR_GREY, " Die Möglichkeit einer Kaution kann entweder mit 0 abgelehnt-, oder mit 1 erlaubt werden !"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /arrest [preis] [zeit (minuten)] [kaution (0=nein 1=ja)] [kationspreis]");
    SendClientMessage(playerid, COLOR_GRAD2, "Tipp: Beim Normalfall 2.000$ + 3 Minuten pro Wanted und beim Stellen 1.000$ + 2 Minuten pro Wanted");
    return 1;
    }
    new bailprice = strval(tmp);
    if(bailprice < 0 || bailprice > 10000) { SendClientMessage(playerid, COLOR_GREY, " Der Kautionspreis darf nicht unter 1$ oder über $10.000$ liegen !"); return 1; }
    new suspect = GetClosestPlayer(playerid);
    if(IsACop(suspect))
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Du kannst keinen Beamten einsperren!");
    return 1;
    }
    if(IsPlayerConnected(suspect))
    {
    if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
    {
    GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(WantedLevel[suspect] < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, " Der Spieler ist nicht gesucht!");
    return 1;
    }
    GivePlayerMoney(playerid, moneys/2);
    FraktionsKasse[0] += moneys/2;
    format(string, sizeof(string), "* Du hast %s eingesperrt für $%d!", giveplayer,moneys);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    GivePlayerMoney(suspect, -moneys);
    format(string, sizeof(string), "Eingesperrt von %s ~n~ fuer $%d", sendername, moneys);
    GameTextForPlayer(suspect, string, 5000, 5);
    ResetPlayerWeapons(suspect);
    if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)
    {
    format(string, sizeof(string), "INFO: Officer %s hat den gesuchten %s eingesperrt", sendername, giveplayer);
    OOCNews(COLOR_YELLOW, string);
    }
    else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
    {
    format(string, sizeof(string), "INFO: Agent %s hat den Verdächtigen %s eingesperrt", sendername, giveplayer);
    OOCNews(COLOR_YELLOW, string);
    }
    else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3)
    {
    format(string, sizeof(string), "INFO: Soldat %s hat den Verdächtigen %s eingesperrt", sendername, giveplayer);
    OOCNews(COLOR_LIGHTRED, string);
    }
    else if(PlayerInfo[playerid][pMember]==22||PlayerInfo[playerid][pLeader]==22)
    {
    format(string, sizeof(string), "INFO: SWAT Agent %s hat den gesuchten %s eingesperrt", sendername, giveplayer);
    OOCNews(COLOR_YELLOW, string);
    }
    if(LSPDZellen == 0)//zelle1
    {
    SetPlayerInterior(suspect, 3);
    SetPlayerPos(suspect,215.0419,110.2922,999.0156);
    LSPDZellen += 1;
    }
    if(LSPDZellen == 1)//zelle2
    {
    SetPlayerInterior(suspect, 3);
    SetPlayerPos(suspect,227.8457,110.7000,999.0156);
    LSPDZellen += 1;
    }
    if(LSPDZellen == 2)//zelle3
    {
    SetPlayerInterior(suspect, 3);
    SetPlayerPos(suspect,223.2922,110.6890,999.0156);
    LSPDZellen = 0;
    }
    /*if(LSPDZellen == 0)//zelle4
    {
    SetPlayerPos(suspect,197.8290,161.8141,1003.0300);
    LSPDZellen += 1;
    }
    if(LSPDZellen == 0)//zelle5
    {
    SetPlayerPos(suspect,197.8290,161.8141,1003.0300);
    LSPDZellen += 1;
    }
    if(LSPDZellen == 0)//zelle6
    {
    SetPlayerPos(suspect,197.8290,161.8141,1003.0300);
    LSPDZellen += 1;
    }*/
    PlayerInfo[suspect][pJailTime] = time * 60;
    if(bail == 1)
    {
    JailPrice[suspect] = bailprice;
    format(string, sizeof(string), "Du bist für %d Sekunden eingesperrt. Kaution: $%d", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    }
    else
    {
    JailPrice[suspect] = 0;
    format(string, sizeof(string), "Du bist für %d Sekunden eingesperrt. Kaution: nicht möglich", PlayerInfo[suspect][pJailTime]);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    }
    PlayerInfo[suspect][pJailed] = 1;
    PlayerInfo[suspect][pArrested] += 1;
    SetPlayerInterior(suspect, 6);
    SetPlayerFree(suspect,playerid, "Verhaftet");
    WantedPoints[suspect] = 0;
    WantedLevel[suspect] = 0;
    SetPlayerWantedLevel(suspect,0);
    }//distance
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Niemand zum Verhaften in deiner Nähe.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Beamter !");
    return 1;
    }
    }//not connected
    return 1;
    }


    Leider garnicht das was ich haben will.Desweiteren sollte gecheckt werden wo sie sich befinden (FBI Arrest Punkt, LSPD)


    Hier die Koordinaten für die Arrest Points und die Zellen:


    LSPD Arrest Punkt: 1564.5737,-1694.0496,5.8906
    LSPD Zelle 1: 263.9675,86.6190,1001.0391 FacingAngle: 269.0201
    LSPD Zelle 2: 264.2247,82.2584,1001.0391 FacingAngle: 269.4179
    LSPD Zelle 3: 264.2914,77.6033,1001.0391 FacingAngle: 274.2478


    FBI Arrest Punkt: -2442.5898,523.3867,29.9120
    FBI Zelle 1: 198.2139,161.9310,1003.0300 FacingAngle: 175.5056
    FBI Zelle 2: 197.9860,175.1709,1003.0234 FacingAngle: 0.4111
    FBI Zelle 3: 193.8562,175.4015,1003.0234 FacingAngle: 2.7987


    //Edit: Der Polizist sollte pro Wanted noch 200$ bekommen,sie sollten in einem Fahrzeug sitzen & der Verbrecher sollte gefesselt sein


    Wäre Super wenn das einer für mich Scripten könnte oder eventuell sogar ein Tutorial dazu machen könnte ;)


    MFG. Jadeclon

    3 Mal editiert, zuletzt von Jadeclon ()

  • Omg...


    wieso probierst du es nicht selber?
    dieser Scripting Bereich ist nicht dafür da copy & paste zu machen.
    proboer es doch selber, wenn es nicht klappt stelle deine Frage hier. Dann macht es uns mehr Spaß dir bei deinem Fehler zu helfen und du lernst daraus.


    Lg

  • Zitat

    Der Befehl sollte die Wanteds von dem Verbrecher prüfen und ihn dann für jeden Wanted 2 Minuten lang einsperren.

    Das ist ein anfang, ich gehe mal davon aus das du deinen jetzigen /arrest Befehl überarbeiten möchtest.
    Zunächst einmal wäre es vorteilhaft zu wissen, wie die Wanteds in deinem Script gespeichert werden.

    ((Falls du nicht weist wo du suchen must, vielleicht man in den Befehl /su schauen^^))