Hilfe beim PaynSpray System

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
  • Hay,
    wie mache ich das, dass wenn man bei einer stelle steht, das man wohin mit dem fahrzeug geportet wird, das fahrzeug repairt wird dann dem spieler 500$ Abgezogen werden und man zurück an die alte stelle geportet wird?
    Ich weiß ich muss mit timern und so weiter arbeiten nur ich weiß nicht wie...



    hier ein z.b. befehl
    if(strcmp(cmd, "/rep", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,8.0,1547.7292,-1609.7852,12.9977))
    {
    if(!IsACop(playerid) || !IsPlayerInFrac(playerid, 7))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Cop!");
    return 1;
    }
    if(IsPlayerInAnyVehicle(playerid))
    {
    RepairVehicle(GetPlayerVehicleID(playerid));
    SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
    SendClientMessage(playerid, COLOR_GREY, "Dein Auto wurde auf kosten des Staates repariert!");
    }
    }
    return 1;
    }
    danke für jede hilfe

  • danke für jede hilfe


    Meinst du sowas?


    if(!strcmp(cmd, "/rep", true)) {
    if(!IsPlayerInRangeOfPoint(playerid,8.0,1547.7292,-1609.7852,12.9977)) return SendClientMessage(playerid,COLOR_GRAD1,"Du befindest dich nicht am Repair-Point!");
    if(!IsACop(playerid) || !IsPlayerInFrac(playerid, 7)) return SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Cop!");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,COLOR_GRAD1,"Du bist nicht der Fahrer eines Wagens!");
    new vID = GetPlayerVehicleID(playerid),Float:p[4];
    GetVehiclePos(vID,p[0],p[1],p[2]),GetVehicleZAngle(vID,p[3]);
    SetVehiclePos(vID, newX, newY, newZ),SetVehicleZAngle(vID, newA); //Hier natürlich neue Koordinaten einsetzen, wo das auto hin soll
    RepairVehicle(vID),SetVehicleHealth(vID, 1000.0);
    SendClientMessage(playerid, COLOR_GREY, "Dein Auto wurde auf kosten des Staates repariert!");
    return SetTimerEx("@reSET",1000*5,0,"dffff",vID,p[0],p[1],p[2],p[3]); //Der Timer portet das Auto in 1000*5ms zurück ->das sind 5 Sekunden
    }


    //Unten im Script
    @reSET(vID,Float:x,Float:y,Float:z,Float:a);
    @reSET(vID,Float:x,Float:y,Float:z,Float:a) return SetVehiclePos(vID,x,y,z),SetVehicleZAngle(vID,a);


    Achte auf meine Kommentare ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kaliber:
    return SetTimerEx("@reSET",1000*5,0,"dffff",vID,p[0],p[1],p[2],p[3]); //Der Timer portet das Auto in 1000*5ms zurück ->das sind 5 Sekunden


    Hättest du doch auch einfach 5000 eintragen können :P

  • Hättest du doch auch einfach 5000 eintragen können


    Ja...und? Macht doch keinen Unterschied, da das vom Compiler schon ausgerechnet wird und ich es so übersichtlicher finde :p


    Denn 1000*60*60 ist ja wohl übersichtlicher als 3600000? :D Da hat man immer einen schönen Überblick, wie lange das ist ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ja, war auch nicht böse gemeint oder so, nur als Hinweis ;)

  • Ja, war auch nicht böse gemeint oder so, nur als Hinweis ;)


    Hast du meinen Text gelesen? :huh:
    Denn dann wüsstest du, dass es besser so ist, wie ich es gemacht habe.


    Nur so als Hinweis :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Beitrag von FileZilla ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Danke. Das ist Perfekt, nur es wird kein Geldabgezogen :x ?

  • Beitrag von FileZilla ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • wie arbeite ich dort mit else if? wenn ich noch mehrere machen will??

  • Wenn man das an mehreren orten machen kann anstatt nur da.


    Also an einem Anderen PNS auch

  • if(!IsPlayerInRangeOfPoint(playerid,8.0,1547.7292,-1609.7852,12.9977)) return SendClientMessage(playerid,COLOR_GRAD1,"Du befindest dich nicht am Repair-Point!");
    Ist ja die Zeile in der das abgefragt wird. Dann halt so:
    if(!IsPlayerInRangeOfPoint(playerid,8.0,1547.7292,-1609.7852,12.9977)&&!IsPlayerInRangeOfPoint(playerid,8.0,1547.7292,-1609.7852,12.9977)&&IsPlayerInRangeOfPoint(playerid,8.0,1547.7292,-1609.7852,12.9977)) return SendClientMessage(playerid,COLOR_GRAD1,"Du befindest dich nicht am Repair-Point!");
    Musst halt die Positionen ändern.

  • Ja aber das überschreibt sich doch wenn ich das unten auch mache? da ich will das sie alle in einem Anderen PNS Geportet werden sollen anstatt alle in dem Gleichen

  • enum repposi{
    Float:newX,
    Float:newY,
    Float:newZ,
    Float:newA,
    Float:rX,
    Float:rY,
    Float:rZ
    }
    new RepSys[][repposi] = {
    {0.0,0.0,0.0,0.0,1547.7292,-1609.7852,12.9977},
    {0.0,0.0,0.0,0.0,0.0,0.0,0.0}
    };


    if(!strcmp(cmd, "/rep", true)) {
    if(!IsACop(playerid) || !IsPlayerInFrac(playerid, 7)) return SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Cop!");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,COLOR_GRAD1,"Du bist nicht der Fahrer eines Wagens!");
    for(new i = 0; i < RepSys; i++){
    if(!IsPlayerInRangeOfPoint(playerid,8.0,RepSys[i][rX],RepSys[i][rY],RepSys[i][rZ]))continue;
    new vID = GetPlayerVehicleID(playerid),Float:p[4];
    GetVehiclePos(vID,p[0],p[1],p[2]),GetVehicleZAngle(vID,p[3]);
    SetVehiclePos(vID, RepSys[i][newX],RepSys[i][newY],RepSys[i][newZ]),SetVehicleZAngle(vID, RepSys[i][newA]); //Hier natürlich neue Koordinaten einsetzen, wo das auto hin soll
    RepairVehicle(vID),SetVehicleHealth(vID, 1000.0);
    SendClientMessage(playerid, COLOR_GREY, "Dein Auto wurde auf kosten des Staates repariert!");
    return SetTimerEx("@reSET",1000*5,0,"dffff",vID,p[0],p[1],p[2],p[3]); //Der Timer portet das Auto in 1000*5ms zurück ->das sind 5 Sekunden
    }
    return SendClientMessage(playerid, COLOR_GRAD1, "Du befindest dich an keinem Repair-Point!");
    }


    Ungetestet und nicht auf Errors etc. geprüft. Teste es einfach mal^^


    //EDIT:
    Musst halt die Coords im Enum eintragen


    EDIT2:
    Kann sein das new RepSys zu new Float:RepSys muss, grad keine Ahnung :D


    //EDIT 3:


    Helfe ihm jz schon per TV