Car Zone?

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
  • Hallo liebe Community.


    Ich erstelle gerade ein script für unserem Server.


    Jetzt habe ich ein Problem.


    Ich möchte eine Carzone erstellen, wo die Auto´s nicht kaputt gehen können z.w. wieder repariert werden, wenn dies fast kaputt ist.


    Wie würde das funktionieren?


    mit CreateZone erstelle ich ja nur ein ganggebiet.


    wer mir helfen kann sollte bitte schreiben.


    MfG Mario2323

  • sry wegen doppel post.


    ich habe jetzt was gemacht, was auch klappen müsste. nur ich mein problem wie rufe ich diese funktion auf?




    public carzone(playerid)
    {
    new carx;
    new cary;
    new carz;
    new vehid = GetPlayerVehicleID(playerid);
    GetVehiclePos(vehid, Float:carx, Float:cary, Float:carz);
    new carx1 = -2322;
    new carx2 = -1618;
    new cary1 = -2322;
    new cary2 = -1617;
    new carz1 = -2319;
    new carz2 = -1613;
    new caru1 = -2319;
    new caru2 = -1612;
    if(carx < carx1 && cary < carx2)
    {
    if(carx < cary1 && cary < cary2)
    {
    if(carx > carz1 && cary > carz2)
    {
    if(carx > caru1 && cary > caru2)
    {
    SetVehicleHealth(vehid, 100);
    }
    }
    }
    }
    }


    diese funktion soll ausgeführt werden ohne auf ein ereigniss zu reagieren.


    sprich der server soll checken ob sich jemand in diesen cords befindet und das auto heilen.

  • sry wegen doppel post haber ich habe immernoch das problem, womit ich nicht weiter komme.


    wie gesagt habe ich diesen script erstellt:


    public carzone(playerid)
    {
    new carx;
    new cary;
    new carz;
    new vehid = GetPlayerVehicleID(playerid);
    GetVehiclePos(vehid, Float:carx, Float:cary, Float:carz);
    new carx1 = -2322;
    new carx2 = -1618;
    new cary1 = -2322;
    new cary2 = -1617;
    new carz1 = -2319;
    new carz2 = -1613;
    new caru1 = -2319;
    new caru2 = -1612;
    if(carx < carx1 && cary < carx2)
    {
    if(carx < cary1 && cary < cary2)
    {
    if(carx > carz1 && cary > carz2)
    {
    if(carx > caru1 && cary > caru2)
    {
    SetVehicleHealth(vehid, 1000);
    }
    }
    }
    }
    }

    nur wenn ich in dieser zone bin funktioniert das nicht.


    ich habe bereits ne forward deklaration gemacht und n timer gesetzt (alle 100 milisekunden checkt er.)


    ich glaube das die if bedingungen falsch sind.


    kann mir einer helfen?


    MfG Mario2323


    PS: hier nochmal ein bild mit einer test zone:


  • versuchs mal hier mit , vllt hilfts dir :s,


    SpielerImGebiet(spielerid,Float:minimal_x,Float:minimal_y,Float:maximal_x,Float:maximal_y){
    new Float:x,Float:y,Float:z;
    GetPlayerPos(spielerid,x,y,z);
    if(x >= minimal_x && X <= maximal_x && Y >= minimal_y && Y <= maximal_y) { return 1; }
    }

    if(SpielerImGebiet(playerid,x,y,x,y))
    {


    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • danke für deine hilfe nur kommt immer nur die player id 0, obwohl andere ids gefragt werden


    script:




    public SpielerImGebiet(playerid,Float:minimal_x,Float:minimal_y,Float:maximal_x,Float:maximal_y){
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    if(x >= minimal_x && x <= maximal_x && y >= minimal_y && y <= maximal_y) {return 1;}
    return 0;
    }
    public carzone(playerid)
    {
    if(SpielerImGebiet(playerid,-2344,-1647,-2303,-1620))
    {
    printf("%d",playerid);
    new vehid = GetPlayerVehicleID(playerid);
    SetVehicleHealth(vehid, 1000);
    }
    }
    forward für beide funktionen habe ich gemacht


    edit: und der set timer sieht so aus SetTimer("carzone", 100, 1);

    2 Mal editiert, zuletzt von Mario2323 ()