PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler in Verstärkungsscript


pspsps91
09.12.2006, 09:42
Guten Morgen,

Jetzt bin ich auch mal auf ein kleines Problem gestoßen. Ich hab ein Script geschrieben, mit dem man jederzeit einen Helikopter rufen kann, welcher neue Truppen abwirft. Also erstmal das Script:
_hel = uh60_1
_player = player
_dummy = dummy
_pos = getpos _player
_typ = TypeOf _player
_startpos = getpos _hel

_player sidechat "Ich brauche hier Verstärkung. KOMMEN"
~3
? !(alive _hel):goto "tot"
? pspsps91_aktiv:goto "warten"
pspsps91_aktiv = true
_hel sidechat "ROGER, Geschaetzte Ankunft: 30sek"

_leader = "SoldierWMedic" createunit [[0,0,0],_dummy,"",0.5,"SERGANT"]
_i = 0
#loop1
"SoldierWMedic" createunit [[0,0,0],_leader,"",0.5,"SERGANT"]
_i = _i + 1
? _i < 6:goto "loop1"

_units = units _leader
_count = count _units

_i = 0
#loop4
_s = _units select _i
_s moveincargo _hel
_i = _i + 1
~0.01
? _i < 6:goto "loop4"

_hel setpos [(_pos select 0) - 500,(_pos select 1) - 500,getpos _hel select 2]
_hel flyinheight 80

#loop2
_hel domove _pos
_x1 = getpos _hel select 0
_y1 = getpos _hel select 1
_x2 = _pos select 0
_y2 = _pos select 1
_a = _x1 - _x2
_b = _y1 - _y2
_c = Sqrt (_a * _a + _b * _b)
? _c < 0: _c = _c * -1
~0.1
?_c > 30: goto "loop2"

@ (speed _hel) < 10
? _player distance _hel > 500:goto "suchen"
_i = 0

#loop3
_s = _units select _i
_i = _i + 1
_s action ["eject",_hel]
unassignvehicle _s
~2
? _count > _i:goto "loop3"
(units _leader) join _player

#back
_hel domove [(_pos select 0) - 500,(_pos select 1) - 500,getpos _hel select 2]

@ _hel distance player > 450
_hel setpos _startpos
pspsps91_aktiv = false
exit

#warten
_hel sidechat "NEGATIV, wir haben noch zu tun. ENDE"
exit

#tot
~5
_player groupchat "Verdammt, wiso kriegen wir keine Antwort?!"
exit

#suchen
_hel sidechat "Hey wo seid ihr denn?"
goto "loop2"

Auf der Map gibts dann einen Soldaten(dummy) und einen Helikopter(uh60_1) und den Spieler natürlich. Soweit funktioniert auch alles ganz gut, aber wenn ich das Script ein zweites Mal aufrufe, lande ich als Spieler mit meiner alten Gruppe und der neuen Verstärkung im Helikopter, kann mir aber nicht erklären, wiso das so ist :stupid: :stupid:

finde irgendwer den Fehler!...

Cyclone83
16.04.2009, 09:47
Sorry, dass ich diesen alten Thread wieder rauskrame, aber mich würde interessieren ob es bereits eine bugfreie Version dieses Scripts gibt, genau so etwas suche ich nämlich seit längerer Zeit schon händeringend :anbet:
Habe einen Unterstützungstrupp neben einen Heli platziert. Der Trupp steigt per Auslöser in den Heli, sobald der primäre Trupp weniger als 8 Personen aufweist. Dann soll der Heli sic zur aktuellen Player-Position begeben, den Unterstützungstrupp dort absetzen und wieder zurück fliegen.
Wenn also jemand so ein funktionierendes Script hat, bitte Bescheid sagen ;)
Thx,
Gruß Cyclone

Krakuscha
16.04.2009, 10:20
_s = _units select _i
_s moveincargo _hel_i = _i + 1
~0.01
? _i < 6:goto "loop4"

_hel setpos [(_pos select 0) - 500,(_pos select 1) - 500,getpos _hel select 2]
_hel flyinheight 80

Vielleicht liegt da der Grund?

Cyclone83
16.04.2009, 15:28
Mim Scripten hab ich´s leider ned so. Seh da jetz garnix :confused:

Cyclone83
20.04.2009, 17:12
Update:
Script sieht jetzt ganz unspektakulär so aus:

_heli = heli;
_man = Player;
_support = LeaderSupport;

_heligrp = group _heli;
_pgrp = group _man;
_sgrp = group _support;
~4
_helih = "HeliHEmpty" createVehicle position _man;
_wpi = _heligrp addwaypoint [position _heli, 1];
[_heligrp, 1] setwaypointtype "MOVE";
_wph = _heligrp addwaypoint [position _helih, 2];
[_heligrp, 2] setwaypointtype "TR UNLOAD";
_wpm = _pgrp addwaypoint [position _helih, 3];
[_sgrp, 3] setWaypointType "GETOUT";
[_sgrp, 3] synchronizeWaypoint [[_heligrp, 2]];

_h3 = "HeliHEmpty" createVehicle [0,0,0];
_h3 setpos getmarkerpos "helimovep";
_wpu = _heligrp addwaypoint [position _h3, 2];
_wpu setwaypointtype "TR UNLOAD";
~5
"HeliMoveP" setMarkerPos [0,0];
~1000
deleteVehicle heli;
exit;



In Game sieht das Ganze dann volgender Maßen aus:
Das Script MUSS in der Init-Zeile des Helis gestartet werden. Versucht man es irgendwann später per Auslöser, zeigt es keine Wirkung.
Mein Supporttrupp steigt also ein, der Heli erhält Sprit und fliegt los. Leider immer genau an die Position, wo man sich als Spieler bei Missionsbeginn befindet. Das heißt, wenn ich mich irgendwo anders hin bewege, fliegt der Heli trotzdem an meinen Anfangspunkt.
Weiß dafür vielleicht jemand eine Lösung?
Thx Cyclone