MOVE_INTERVALL 4000 // selber setzen ,wenns nötig ist ;)
enum hstruk
{
Float:stx,
Float:sty,
Float:stz,
Float:dtx,
Float:dty,
Float:dtz,
bool:statex,
idstate
}
new GateStruktur[][hstruk] = {
{...}, // Werte ergänzen ( X,Y,Z , Ziel X, Ziel Y, Ziel Z, false,-1 )
{...}
};
if (strcmp(cmdtext, "/tor", true)==0)
{
for(new i = 0;i<sizeof(GateStruktur);i++)
{
if(!IsPlayerInRangeOfPoint(playerid,4.5,GateStruktur[i][stx],GateStruktur[i][sty],GateStruktur[i][stz]))continue;
if(!GateStruktur[i][statex])
{
MoveObject(GateStruktur[i][idstate],GateStruktur[i][dtx],GateStruktur[i][dty],GateStruktur[i][dtz]);
GateStruktur[i][statex] = true;
SetTimerEx("GateTimer",MOVE_INTERVALL,0,"i",i);
}
else
{
MoveObject(GateStruktur[i][idstate],GateStruktur[i][stx],GateStruktur[i][sty],GateStruktur[i][stz]);
GateStruktur[i][statex] = false;
}
}
return 1;
}
forward GateTimer(gt);
public GateTimer(gt)
{
MoveObject(GateStruktur[gt][idstate],GateStruktur[gt][stx],GateStruktur[gt][sty],GateStruktur[gt][stz]);
return 1;
}
Sollte einfacher sein, so lässt sich mit tor das jeweilige Tor in der nähe je nach dem ob es zu ist oder offen wieder schließen & Öffnen.