12.05.2011, 14:43 | #1 (permalink) |
Registriert seit: 03.05.2011
Beiträge: 9
|
Fahrzeug Respawn mit KI
Hallo,
ich habe das ULB und wollte den "AH-6X" Respawnen Inklusive KI. Zusätzlich wollte ich noch das der "AH-6X" nach dem Respawnen mit dem ULB Modul Syncronisiert wird. Ich habe einen Auslöser gemacht und das "Funktionsmodul" auf die Karte geplantzt. Im Auslöser steht dass: Bediengung: Alive Player INIT: [getMarkerPos "MARKERNAME", Random 360, "AH6X_EP1", West] call BIS_fnc_spawnVehicle; Wie stelle ich es ein dass der "AH-6X" Erst Respawnt wird mit dem Auslöder wenn er Zerstört ist und Anschließend wieder Respawnt mit dem Selben Namen. Wie stelle ich es ein das er immer den Gleichen namen hat. Huch... ich hoffe ihr könnt mir Helfen |
13.05.2011, 04:13 | #3 (permalink) |
Hallo du könntest dir mal das vehiclerespawn Skript anschauen, das Skript übernimmt auch den Namen des Zerstörten Fahrzeuges! Vielleicht hilft es dir weiter !! http://www.armaholic.com/page.php?id=6080
__________________
Ghost_AUT |
|
13.05.2011, 12:54 | #5 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Du möchtest ja, dass das Fahrzeug nach dem Respawn den gleichen Namen hat. Dazu das 1. Beispiel aus dem Link entsprechend abgeändert. Fz1 ist dabei der Name des Fahrzeuges, den du gleichfalls dem Fahrzeug als Name eingeben musst.
So hat das Respawn Fahrzeug den gleichen Namen. Auch im Multiplayermodus. Den Code kopierst du so in die Initzeile der Fahrzeuge. Dabei sind die beiden Fz1 durch den jeweiligen Fahrzeugnamen zu ersetzen. Code:
if (isServer) then { this spawn { private ["_t","_p"]; _t = typeOf _this; _p = position _this; while{true}do { Fz1 = _this; publicVariable "Fz1"; waitUntil{!alive _this}; sleep 10; deleteVehicle _this; sleep 10; _this = _t createVehicle _p } } } |
13.05.2011, 14:08 | #6 (permalink) |
Registriert seit: 03.05.2011
Beiträge: 9
|
Hey,
daaaanke Klapt wunderbar. Das Vehicle Respawnt. Wie stelle ich es an dann beim Respawn Einheiten im Fahrzeug sind es geht um die MQ-9 damit gleich einheiten drin sitzen. Ich habe es per auslöser gemacht funktioniert aber so nicht: Bediengung: alive MQ-9 Init...: Soldatenname moveindriver MQ-9 Beim Soldaten in der Init habe ich stehen: if (isServer) then { this spawn { private ["_t","_p"]; _t = typeOf _this; _p = position _this; while{true}do { Soldatenname = _this; publicVariable "Soldatenname"; waitUntil{!alive _this}; sleep 1; deleteVehicle _this; sleep 1; _this = _t createVehicle _p } } } Der Soldate wird zwar respawn bleibt aber stehen rührt sich nicht und ist auch nicht in der MQ-9 drin Heeeelp! Geändert von theslyder (13.05.2011 um 15:11 Uhr). Grund: Korrigiert |
13.05.2011, 16:22 | #7 (permalink) |
Registriert seit: 03.05.2011
Beiträge: 9
|
Hmmm,
wenn ich das Hier im Auslöser eingebe [getMarkerPos "MARKERNAME", Random 360, "Fahrzeugname", West] call BIS_fnc_ wird zwar das Fahrzeug Respawn mit KI aber es respawnt nach dem Zerstören nicht mehr und der Fahrzeug Name Verschwindet ebenfalls... Also ich verzweifle.......... Habe schon das Forum durchstöbert aber ich bein eben nur ein NEULING.... |
14.05.2011, 13:59 | #9 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Zum Respawn für Soldaten musst du in die Initzeile diesen Code reinkopieren. Beachte auch dabei den jeweiligen Namen (hier z.B. So1):
Code:
if (isServer) then { this spawn { private ["_t","_p","_g"]; _t = typeOf _this; _p = position _this; while{true}do { So1 = _this; publicVariable "So1"; _g = group _this; waitUntil{!alive _this}; sleep 10; deleteVehicle _this; sleep 10; _this = _g createUnit [_t, _p, [], 0, "FORM"]; } } } So1 moveInDriver Fz1; So2 moveInGunner Fz1; Damit ist es aber noch nicht getan. Nun fehlen der KI noch die Befehle. z.B. mit Wegpunkten. |
25.05.2011, 15:27 | #10 (permalink) |
Registriert seit: 03.05.2011
Beiträge: 9
|
Testmap Funktioniert Nicht
Hallo,
danke nochmals Habe bisher alle Funktionen eingebaut ohne Marker Funktioniert auch bloß leider selten. Meistens Steht UAV (ULB) Zerstört. Ich wäre Froh wenn jemand sich mal die map Anschauen könnte wo ich den Fehler drin habe. Wie gesagt ULB Funktioniert nicht immer. |
29.05.2011, 23:13 | #13 (permalink) |
Hello ich hätte hir eine kleine test Version erstellt,
ich glaube aber das sie nicht Multyplayer fähig ist da ich beim testen mit den 2 Player nicht synchronisieren konnte!! vielleicht weiss jemand anders wie mann das hin bekommt! Das skript wird über eine Addaction aufgerufen! Der Manager ist das Modul! Das Terminal ist das Drohnen_Terminal UAV.sqf Code: private ["_terminal","_player","_manager","_Mq","_pilot "]; _terminal = _this select 0; _player = _this select 1; _Manager = Manager; UAV = true; publicVariable "UAV"; _Mq = createVehicle ["MQ9PredatorB_US_EP1", position _Terminal, [], 0, "FLY"]; _Bravo = createGroupWest; "US_Soldier_Pilot_EP1" createUnit [_terminal, _Bravo, "this moveindriver _Mq", 1,"FROM"]; "US_Soldier_Pilot_EP1" createUnit [_terminal, _Bravo, "this moveingunner _Mq", 1,"FROM"]; _pilot = Leader_Bravo; _Mq flyInHeight 250; sleep 2; if (alive _player) then { if (true) then {_Manager synchronizeObjectsAdd [_player]}; sleep 1; if (true) then {_Manager synchronizeObjectsAdd [_terminal]}; sleep 1; if (true) then {_Manager synchronizeObjectsAdd [_pilot]}; playersideChat "Die UAV Übertragung ist nun Aktive!"; _timeout = time + 300; waitUntil {sleep 2; !alive_pilot or !alive_Mq or! alive_player or _timeout < time}; if (true) then {deleteVehicle_Mq; {deleteVehicle_x} forEachunits_Bravo}; if (true) then {_Manager synchronizeObjectsRemove [_player]}; if (true) then {_Manager synchronizeObjectsRemove [_terminal]}; if (true) then {_Manager synchronizeObjectsRemove [_pilot]}; UAV = false; publicVariable "UAV"; }; if (true) exitWith {playersideChat "Die UAV Übertragung wurde Unterbrochen!"};
__________________
Ghost_AUT |
|
30.05.2011, 18:58 | #14 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Funktioniert recht gut. Müsste auch in MP klappen.
Der Namen Manager könnte man noch als Parameter in der Aktion übergeben. Ich habe das Skript in eine kommentierte Form umgeschrieben: Code:
////////////////////////////////////////////////////////////////// // Function file for Armed Assault // Created by: UAV_Test_Für_Host Ghost [AUT] ////////////////////////////////////////////////////////////////// private ["_terminal","_player","_manager","_gruppe","_drohne","_timeout"]; _terminal = _this select 0; //Drohnen-Terminal _player = _this select 1; //Spieler für die Drohnen-Kontrolle _manager = Manager; //Globaler Name des Drohnen-Managers UAV = true; //Globalae Variable, sperrt weiteren Zugriff auf die Aktion des Terminals publicVariable "UAV"; //Drohne erstellen _drohne = createVehicle ["MQ9PredatorB_US_EP1", position _Terminal, [], 0, "FLY"]; _gruppe = createGroup West; "US_Soldier_Pilot_EP1" createUnit [_terminal, _gruppe, "this moveindriver _drohne", 1,"FROM"]; //Dummy-Pilot für Drohne "US_Soldier_Pilot_EP1" createUnit [_terminal, _gruppe, "this moveingunner _drohne", 1,"FROM"]; //Dumme-Gunner für Drohne _drohne flyInHeight 250; //Drohnen Flughöhe sleep 2; //Synchronisation mit dem Drohnen-Manager _manager synchronizeObjectsAdd [_player,_terminal,_drohne]; TitleText["Die UAV Übertragung ist nun Aktiv!\n\nSicht-Aktion beim UVA-Terminal vorhanden!","plain down"]; _timeout = time + 300; //Zeit in Sekunden bis zur Zerstörung der Drohne //Warten auf Ereignis (ohne sleep 2; spinnt das Programm) waitUntil {sleep 2;!alive _drohne OR !alive _player OR _timeout < time}; //Synchronisation beenden _manager synchronizeObjectsRemove [_player,_terminal,_drohne]; //Dummys löschen {deleteVehicle _x} forEach units _gruppe; TitleText["Die Drohne ist zerstört!","plain down",2]; sleep 2; UAV = false; // Zugriff auf die Drohnen-Aktion wieder freigeben publicVariable "UAV"; //Drohne nach 60 Sekunden löschen sleep 60; deleteVehicle _drohne; |
30.05.2011, 20:20 | #15 (permalink) |
Hello Vienna!
Ich habe mal dass Skript jetzt von dir getestet, ist leider das gleiche problem in Mp, wie ich mit dem 2 Pc verbunden hatte, und das skript gestartet habe was sich ja problemlos machen lässt, es erzeugt sich auch die Drohne und bei der überprüfung von, If (true) then {hint "Ja"; _ManagersynchronizeObjectsAdd [_player]}else{hint "Nein"}; If (true) then {hint "Ja"; _ManagersynchronizeObjectsAdd [_terminal]}else{hint "Nein"}; If (true) then {hint "Ja"; _ManagersynchronizeObjectsAdd [_pilot]}else{hint "Nein"}; Wird mir eigentlich alles mit Ja bestätigt, aber leider kommt dann nich die UAV addachtion! beim Client. Bei dem spieler als Host klappt alles so wie es sein soll auch nach dem Respawn, aber vielleicht liegt es wirklich an der addaction was auf der karte Plaziert wurde!! LG. Ghost
__________________
Ghost_AUT |
|
30.05.2011, 22:30 | #16 (permalink) |
Na ja ich hätte es mal mit einem normalen Auslöser zum test versucht
leider geht es auch nicht! Bedingung: Local player Akt: nul=[terminal, vehicle player, Manager] execVM "UAV.sqf"; vielleicht wenn man das Modul bei skript mit erzeugt, aber bis jetzt habe ich unter google noch nichts gefunden wie man es erstellen könnte!! Aber so schaut das skript gleich professional aus wie du es erstellt hast Vienna!
__________________
Ghost_AUT |
|
31.05.2011, 01:07 | #17 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Verstehe ich das richtig bei mehreren Spielern.
a) Ein Spieler, der nicht Host ist, bekommt nach dem Aufruf des Skripts keinen Zugang zur Sicht des UAV-Terminal? b) Oder haben nur andere Spieler, welche das Skript nicht aufgerufen, keinen Zugang zum UAV-Terminal? Was willst du mit dieser Zeile prüfen? If (true) then {hint "Ja"; _ManagersynchronizeObjectsAdd [_player]}else{hint "Nein"}; Hier kann bei dem Spieler, der das Skript aufruft, immer nur Ja angezeigt werden. Spieler, bei denen das Skript nicht aufgerufen wurde, sehen gar keine Anzeige. Die Abfrage if (true)then{..} ergibt immer "Wahr". Darum kann man sie weglassen und immer gleich den Inhalt von then als Zeile ohne Abfrage belassen. |
31.05.2011, 01:27 | #18 (permalink) |
Ja die frage A ist korrekt! aber im skript wird der Client, erkannt! if (alive _player) then {hint "player ja"}else{hint "player Nein"}; bei dieser abfrage kommt auch JA, also erkannt wird er! Denke ich mal! Dann habe ich noch mit alive die anderen Obj. überprüft das Modul & UAV-Terminal & Pilot! auch bei dieser Abfrage kommt das Ja! Achso wusste ich nicht das es bei der Abfrage automatisch zu JA kommt! if (true)then{..}
__________________
Ghost_AUT Geändert von Ghost_Aut (31.05.2011 um 01:42 Uhr). |
|
31.05.2011, 10:55 | #19 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Ein Spieler, der nicht Host ist, ruft am UAV-Terminal das Skript auf, bekommt aber dann nicht die Aktion um am UAV-Terminal in die Drohnensicht einzusteigen. Richtig???
Wenn Richtig, dann würde das bedeuten, dass das Skript unbedingt beim Server/Host auszuführen ist. Wenn der Client das Skript aufruft, dann wird er im Skript natürlich erkannt. Falls das Skript aber zwingend beim Server/Host laufen muss, dann ist es dort aufzurufen. Wobei der Name des aufrufenden Spielers als Parameter zu übergeben ist, um ihn in die Synchronisierung einzubinden. Kann sein, dass die Synchronisierung dabei auch beim aufrufenden Spieler erfolgen muss. Dazu müsste man den Namen der Drohne mit Globaler Variable und publicVariable diesem Spieler mitteilen, damit auch auf seinem PC die Synchronisierung erfolgen kann. |
31.05.2011, 18:30 | #20 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
In der Config.bin des UAV-Moduls steht folgende Zeile:
if (isServer) then {private ["_ok"];_ok = _this execVM "ca\modules\uav\data\scripts\uav.sqf"}; Was sichtlich darauf hinweist, dass das Modul nur auf dem Server/Host läuft. Teste einmal ob das UAV-Modul überhaupt MP fähig ist. Dazu einfach direkt im Editor einem spielbaren Soldaten eine Drohne zur Steuerung zuweisen. Dazu: .) Besetzte Drohne erstellen. .) UAV-Terminal erstellen. .) UAV-Modul erstellen. .) Dann das Modul mit Drohne, Terminal und dem Soldaten synchronisieren. Der Spieler der diesen Soldaten besetzt darf nicht Host sein. |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
fahrzeug respawn mit anderen waffen | Bierchen | Editing & Scripting | 8 | 27.01.2011 14:13 |
Respawn mit besitmmten Namen | burns | Editing & Scripting | 6 | 12.10.2010 20:45 |
Probleme bei Norrin Revive Script 0.49b | Jekko | Editing & Scripting | 24 | 21.09.2010 19:39 |
Fahrzeug in Godmode setzen | Baraka | Editing & Scripting | 11 | 13.08.2010 20:37 |
Weapon Respawn Script | Anemia | Editing & Scripting | 5 | 12.07.2010 10:36 |