
So wie es dann ist, können beide Tore nur geöffnet werden, wenn du Fraktion 1 bist.
Außerdem musst du für die Tore jeweils eigene Tore definieren, also andere Variablen bei dem CreaeteObject vom Tor.

So wie es dann ist, können beide Tore nur geöffnet werden, wenn du Fraktion 1 bist.
Außerdem musst du für die Tore jeweils eigene Tore definieren, also andere Variablen bei dem CreaeteObject vom Tor.
Kommt die ClientMessage unten, dass du nicht in der Nähe eines Tores bist, oder passiert einfach garnichts?
Wenn zweiteres:
Überprüfe ob es die richtigen Koordinaten sind auf die das Tor gesetzt werden soll.
So wie es dann ist, können beide Tore nur geöffnet werden, wenn du Fraktion 1 bist.
Außerdem musst du für die Tore jeweils eigene Tore definieren, also andere Variablen bei dem CreaeteObject vom Tor.
Ich habe bei CreateObject == auf gemacht, und bei public close MoveObject(auf,x,y,z) etc
Ja, aber die beiden Tore sind ja nich die gleichen, du kannst nicht für 2 Objekte 1 Variable nehmen.
Beispiel von mir:
Kommt die ClientMessage unten, dass du nicht in der Nähe eines Tores bist, oder passiert einfach garnichts?
Wenn zweiteres:
Überprüfe ob es die richtigen Koordinaten sind auf die das Tor gesetzt werden soll.
bei ongamemodeinit? oder bei public close ?
Okey. ich glaube mal du hast den Code nicht selber geschrieben?
Kurze Erklärung:
Der Erste Teil ist bei OnGameModeInit das Objekt zu erstellen, z.B:
tor[0] = CreateObject(971, 1588.92334, -1638.00989, 12.97296, 0.00000, 0.00000, 0.00000); //Tor LSPD
tor[1] = CreateObject(968, 1544.67944, -1630.88037, 13.14428, 0.0, -269.69992, 89.67996);//Schranke LSPD
Für Jedes Tor, beziehungsweise jedes Objekt, welches du später steuern willst, musst du eine Variable vergeben, ich mache das ganze mit einem Array, du kannst aber auch einzelne Variablen nehmen.
Dann haben wir den Befehl um die Schranken zu öffnen, ich nehme hier wieder das Beispiel aus meinem Code:
ocmd:ftor(playerid,params[])
{
if(IsPlayerInRangeOfPoint(playerid,20,1588.92334, -1638.00989, 12.80731))//LSPD GaragenTor
{
if(PI[playerid][pFrak] != 1 && PI[playerid][pAdmin] < 3)return SCM(playerid,frot,"[FEHLER]: Du darfst dieses Tor nicht öffnen!");
if(torstat[0] == 1)
{
MoveObject(tor[0],1588.92334, -1638.00989, 8.0,5,0,0,0);
torstat[0] = 0;
SCM(playerid,iblau,"[INFO]: Tor geöffnet");
return 1;
}
MoveObject(tor[0],1588.92334, -1638.00989, 12.80731,5,0,0,0);
torstat[0] = 1;
SCM(playerid,iblau,"[INFO]: Tor geschlossen");
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid,20,1544.67944, -1630.88037, 13.14428))
{
if(PI[playerid][pFrak] != 1 && PI[playerid][pAdmin] < 3)return SCM(playerid,frot,"[FEHLER]: Du darfst dieses Tor nicht öffnen!");
if(torstat[1] == 0)return SCM(playerid,frot,"[FEHLER]: Schranke ist derzeit in Bewegung!");
MoveObject(tor[1],1544.67944, -1630.88037, 13.14429,schrankespeed, 0.0, 25, 89.67996);
SCM(playerid,iblau,"[INFO]: Schranke geöffnet, Wird in 2 Sekunden geschlossen");
SetTimerEx("SchrankeClose",2000,0,"dffffff",1,1544.67944, -1630.88037, 13.14427,0.0, -269.69992, 89.67996);
torstat[1] = 0;
return 1;
}
return 1;
}
Alles anzeigen
Du kannst das natürlich nicht 1 zu 1 kopieren, es soll dir nur veranschaulichen wie es funktioniert.
So, du brauchst jetzt aber auch noch die Koordinaten des Objektes wo es sein soll, wenn es offen/verschoben ist, entweder du besorgst dir diese direkt beim Mappen aus dem Editor, oder wenn du es nach unten verschiebst reicht es auch die z Koordinate (die 3.) kleiner zu machen, als dort wo das Objekt ursprünglich erzeugt wird.
Hoffe es ist einigermaßen verständlich.
(Btw: Zeig uns bitte noch dein public close)
ocmd:auf(playerid,params[])
{
if(IsPlayerInRangeOfPoint(playerid,10.0,246.3300,71.9613,1003.6406))
{
if(SpielerInfo[playerid][Fraktion]==1)
MoveObject(Tore[0],246.58043, 72.39567, 1008.55176, 5);
SetTimer("close", 5000,0);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid,10.0, 1547.5786,-1627.8486,13.3828))
{
if(SpielerInfo[playerid][Fraktion]==1)
MoveObject(Tore[1],1588.11206, -1638.19910, 14.91731, 5);
SetTimer("close", 5000,0);
return 1;
}
else
{
SendClientMessage(playerid,RR,"Du bist nicht in der Nähe des Tores!");
}
return 1;
}
Alles anzeigen
so und dann bei OnGameModeInit
Tore[0] == CreateObject x y z
Tore[1] == CreateObject x y z
Sag Bescheid, wenn dich die Bilder stören, ich denke aber es ist so besser verständlich für dich ![]()
Die Roten Klammern sollen { und } darstellen, diese Zeichen fehlen an den Stellen noch ![]()

Und nun musst du noch für die Tore eigene "Close"-Funktionen machen, für jedes Tor extra ![]()