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.
/auf für mehrere Tore
- PizzaHaus
- 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
-
-
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:
Codetor[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:
Code
Alles anzeigenocmd: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; }
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)
-
Code
Alles anzeigenocmd: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; }
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
-
breadfish.de
Hat das Thema geschlossen.