MoveObject für jedes tor...

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 Liebe Com,
    Ich habe eine frage wenn ich ein MoveObject mache mit timer muss ich dann für jedes tor ein neuen timer ertellen oder kann man alles zusammen machen irgend wie ?

    Mit freundlichen Grüßen

    26552

  • enum TTollGate
    {
    GateID,
    GateStatus,
    Float:OpenX,
    Float:OpenY,
    Float:OpenZ,
    Float:RotX,
    Float:RotY,
    Float:RotZ,
    TimeToClose
    }
    new ATollGates[MAX_TOLLS][TTollGate];


    Dazu dieser Stock:


    stock AddTollGate(GateModel, Float:OX, Float:OY, Float:OZ, Float:RX, Float:RY, Float:RZ)
    {
    for (new TollGate;TollGate<MAX_TOLLS;TollGate++)
    {
    if (ATollGates[TollGate][GateID] == 0)
    {
    ATollGates[TollGate][GateID] = CreateDynamicObject(GateModel, OX, OY, OZ, RX, RY, RZ,-1,-1,-1,250);
    ATollGates[TollGate][GateStatus] = 0;
    ATollGates[TollGate][OpenX] = OX;
    ATollGates[TollGate][OpenY] = OY;
    ATollGates[TollGate][OpenZ] = OZ;
    ATollGates[TollGate][RotX] = RX;
    ATollGates[TollGate][RotY] = RY;
    ATollGates[TollGate][RotZ] = RZ;
    break;
    }
    }
    }


    Dann das Object mit AddTollGate ganz normal wie CreateDynamicObject verwenden.


    Beispiel:


    #define MAX_TOLLS 100


    forward GateCheck(playerid);


    public OnGameModeInit()
    {
    AddTollGate(968,1751.79700, 521.95441, 27.55070, -3.00000, -90.00000, 341.42651);
    SetTimer("GateCheck",1000,1);
    return 1;
    }


    public GateCheck(playerid)
    {
    for (new TollGate; TollGate < MAX_TOLLS; TollGate++)
    {
    if (ATollGates[TollGate][GateID] != 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,ATollGates[TollGate][OpenX], ATollGates[TollGate][OpenY], ATollGates[TollGate][OpenZ])) //hier wird abgefragt ob der Spieler in der Nähe des kreierten Gates ist!
    {
    if(ATollGates[TollGate][GateStatus]==0) //Gate/Tor ist geschlossen
    {
    MoveDynamicObject(öffnen);
    }
    }
    }
    if(ATollGates[TollGate][GateStatus]==1)
    {
    if(ATollGates[TollGate][TimeToClose]==DEINE_ZEIT_HIER)
    {
    MoveDynamicObject(schliessen);
    ATollGates[TollGate][TimeToClose]=0;
    ATollGates[TollGate][GateStatus]=0;
    }
    else
    {
    ATollGates[TollGate][TimeToClose]++;
    }
    }
    }
    return 1;
    }


    Nun nutzt ihr nur einen Timer und könnt weitere Tore simple mit der Funktion unter OnGameModeInit oder OnFilterScriptInit einfügen.


    Credits: PowerPC aus dem Gamemode PPC_Trucking. ^^