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 ?
MoveObject für jedes tor...
- N3xiz
- Geschlossen
- Erledigt
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
-
-
Ich Glaube ja
-
Ich kenne es auch nur so das man für jedes Tor einen eigenen Timer braucht. So würde ich es auch machen (weil mir nichts anderes bekannt ist ).
-
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.
-
breadfish.de
Hat das Thema geschlossen.