![]() |
#1 (permalink) |
![]() Registriert seit: 09.06.2009
Beiträge: 40
|
![]()
Das brennt mir schon eine ganze Weile: Ist es möglich, den KI Fahrzeugen und Flugzeugen per Script endlosen Sprit zu geben? Ich hab das Problem, dass alle meine durch die Luft kreisenden Helikopter nach einer Weil vom Himmel fallen und ich denke nicht, dass das an beschissener Wegfindung liegt.
Als Alternative könnte ich die Dinger ja immer mal zwischenlanden und auftanken lassen, aber für meine Zwecke wäre das wohl etwas zu over the top, denke ich... |
![]() |
![]() |
![]() |
#2 (permalink) |
![]() Registriert seit: 12.06.2009
Beiträge: 53
|
![]()
Naja, per Loop geht das schon. Allerdings könnte ich mir vorstellen, dass es etwas auf die Performance schlägt, wenn zu viele Endlos-Loops laufen...
Code:
if (alive heli01) then {goto "startover"} else {EXIT} #startover if (getfuel heli01 < 0.1) then {heli01 setfuel 1} else {~60} goto "startover" EXIT Code:
if (alive heli01) then {goto "startover"} else {EXIT} #startover heli01 setfuel 1 ~60 goto "startover" EXIT Geändert von Hath Kull (18.06.2009 um 13:59 Uhr). |
![]() |
![]() |
![]() |
#3 (permalink) |
![]() |
![]()
Problem beim ersten ist wenn er genau 0.1 oder etwas mehr hat wird erst wieder die Wartezeit durchlaufen und in dieser kann er leerlaufen denke das da das 2. einfach besser ist
__________________
Ikolium für einen armen Mann Wer zu erst schießt verrät seine Position an die anderen ![]() |
![]() |
![]() |
![]() |
#4 (permalink) |
![]() Registriert seit: 12.06.2009
Beiträge: 53
|
![]()
deralky hat natürlich recht! Die 0.1 war etwas unüberlegt gewählt...
Das mit dem Zwischenlanden und Auftanken ist auch nicht viel komplizierter. Du brauchst am besten ein "unsichtbares H" (refuelpoint) und daneben nen Fueltruck oder so - einfach damits glaubhaft aussieht. Code:
#Start if (alive heli01) then {goto "CheckIfLanded"} else {EXIT} #CheckIfLanded if (heli01 distance refuelpoint < 5) then {heli01 setfuel 1} else {goto "startover"} ~30 heli01 flyinheight 50 #StartOver if (getfuel heli01 < 0.3) then {heli01 land "refuelpoint"} else {goto "Start"} EXIT Geändert von Hath Kull (18.06.2009 um 14:01 Uhr). |
![]() |
![]() |
![]() |
#5 (permalink) |
![]() Registriert seit: 09.06.2009
Beiträge: 40
|
![]()
Da fällt mir auch noch eine möglichkeit ein... Der Hubschrauber fliegt Wegpunkte in einer Schleife ab. Demzufolge müsste es doch auch ausreichen, wenn ich bei einem Wegpunkt sage, "heli01 setfuel 1;" ? Sprich, jedesmal, wenn der Heli den Wegpunkt erreicht, wird der Tank wieder voll gemacht.
|
![]() |
![]() |
![]() |
#6 (permalink) |
![]() |
![]()
Jo das dürfte Funktionieren und ist auch nicht so Performance lasstig wie eine Endlosschleife
__________________
Ikolium für einen armen Mann Wer zu erst schießt verrät seine Position an die anderen ![]() |
![]() |
![]() |
![]() |
#9 (permalink) |
![]() |
![]()
Wieso eigentlich so kompliziert mit Loop & Co!?
Einen globalen Auslöser Mehrfach Größe 0/0 Bedingung: getfuel Fahrzeug1 < 0.9 Aktivierung: Fahrzeug1 setFuel 1 Viele Grüße Mr-Murray
__________________
MR-MURRAY presents ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#11 (permalink) |
![]() ![]() Registriert seit: 19.06.2009
Beiträge: 181
|
![]() Irgendwie funktioniert das bei mir nicht... Er sagt mir immer "Fehlendes ;", dabei habe ich schon ein Fahrzeug erstellt mit dem Namen Fahrzeug1. Es könnte allerdings daran liegen das ich nicht sicher bin wie genau ich einen "globalen Auslöser" erstelle. Gruß Wiggum PS: Danke für deine Guides Mr-Murray, hab ich damals schon für OFP genutzt ! ![]() |
![]() |
![]() |
![]() |
#12 (permalink) |
![]() ![]() ![]() Registriert seit: 02.04.2003
Ort: San Francisco
Beiträge: 1.919
|
![]() Das ist im Prinzip ja nichts anderes als ein Loop, nur das diese Bedingung so wie hier deutlich öfter getestet wird als in einem Script; dort kann man ja die Zeitintervalle einstellen. ![]() Nimm anstatt getFuel --> fuel. getFuel gibt es nicht als Befehl. ![]() --- allgemein würde ich das den aktuellen Benzinstand garnicht abfragen, sondern einfach alle 5 Minuten das Fuel automatisch wieder auf 1 setzen. Das ist insofern möglich, da kein Fahrzeug innerhalb von 5 Minuten seinen kompletten Benzinvorrat verbraucht; es dürften sogar ein deutlich größeres Zeitintervalle ausreichen. Das spart Rechnenzeit, auch wenn die paar Endlosschleifen kein allzugroßes Performanceproblem darstellen dürften. Um es mal als Script zu formulieren: Code:
while { true } do { fhz1 setFuel 1; fhz2 setFuel 1; ... sleep 300; }; ![]() Geändert von TeRp (29.06.2009 um 19:07 Uhr). |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Erstellter Einheit einen namen geben??? | GER_CJ-187 | Editing | 14 | 05.05.2009 12:17 |
Wird es wieder Zombies geben? | Suffzwerg | Mods & Addons | 11 | 28.12.2006 10:23 |