31.05.2011, 19:30 | #21 (permalink) |
Hello Vienna!
Ich hatte es schon heute früh versucht auch wenn der Spielder was als client synchronisiert wurde, hatte keinen zugriff! Dadurch dachte ich mir schon das das Modul nicht Mp fähig sei, leider kann ich aber die pob datein nicht mehr öffnen seit ich das Arma2 Reinforcements installiert habe, und beim Arma2 3D editor gibt es keine Module dass ich mal sehen konnte wie man es bei skript erstellt!!
__________________
Ghost_AUT |
|
01.06.2011, 02:31 | #23 (permalink) |
Ja du sagst es Vienna! Nun ja leider theslyder!! Auser du machst, eine SP Mission, dann geht das beispiel problemlos!! Lg. Ghost [AUT]
__________________
Ghost_AUT |
|
02.06.2011, 06:01 | #24 (permalink) |
Hello Vienna!
So das Problem habe ich gelöst, jetzt lauft es auch auf dedicated Server und der Clint bekommt die addactin für das UAV intervet! Wenn es dich nicht stört, nähme ich die Kommandierte Version von dir und schreibe als Überschrift : UAV_MP_Script By: Ghost [AUT] & Kommandierte By: Vienna !! LG. Ghost [AUT]
__________________
Ghost_AUT |
|
02.06.2011, 18:55 | #26 (permalink) |
ja werd ich nuch etwas verfeinern, dann gebe ich es frei die zeile ist für Version: Arma2 &OA [_manager] execVM "Code für das Module uav.sqf"
__________________
Ghost_AUT |
|
03.06.2011, 13:14 | #29 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Dann war der "Trick" also für Clients das Manager-Skript zu aktivieren, weil es sichtlich nur für den Host/Server ausgelegt ist.
Ich habe versucht dein Skript zu "optimieren". Jede überflüssige Routine kostet nur Prozessorttakte = Zeit. zB.: _UAV_Array = _UAV_Array + [_UAV_gruppe]; Es gibt nur eine Gruppe, wozu dann in Array speichern? if (true) then{...} Eine solche Abfrage ist Unsinn, weil der Inhalt von then hier immer ausgeführt wird. if (true) exitWith {}; Darum ist auch das überflüssig und nach der letzten Skriptzeile wird das Programm automatisch beendet. Die Drohne sollte erst nach einer Minute gelöscht werden. Sieht nicht gut aus, wenn sie sich gleich nach einem Abschuss oder Absturz in Luft auflöst. Für eine neue Drohne wird ja das Skript neu aufgerufen und in diesem eigene lokale Variablen initialisiert. Im Hintergrund kann somit ohne Probleme noch das alte Skript mit den dortigen Variablen laufen. Lokale Variable mit gleichen Namen in den Skripts beeinflussen sich nicht. Um mit Sicherheit Komplikationen von lokalen Variablen zu vermeiden, sollte man sie immer mit Private=[...]; deklarieren. Als "Terminal" kann man jedes Objekt nehmen. z.B. auch den Rucksack UAV-Terminal. Code:
////////////////////////////////////////////////////////////////// // Function file for Armed Assault // Created by: UAV_Für_MP_V1.02! Ghost [AUT] ////////////////////////////////////////////////////////////////// private ["_UAV_Terminal","_UAV_player","_UAV_manager","_UAV_gruppe","_UAV_drohne","_UAV_timeout"]; _UAV_Terminal = _this select 0; //Drohnen-Terminal _UAV_player = _this select 1; //Spieler für die Drohnen-Kontrolle _UAV_manager = Manager; //Globaler Name des Drohnen-Managers UAV = true; //Globale Variable, sperrt weiteren Zugriff auf die Aktion des Terminals publicVariable "UAV"; //Drohne erstellen _UAV_drohne = createVehicle ["MQ9PredatorB_US_EP1", _UAV_Terminal, [], 200, "FLY"]; _UAV_gruppe = createGroup West; "US_Soldier_Pilot_EP1" createUnit [getMarkerpos "UAV_Spawn", _UAV_gruppe, "this moveindriver _UAV_drohne", 1,"FROM"]; //Dummy-Pilot für Drohne "US_Soldier_Pilot_EP1" createUnit [getMarkerpos "UAV_Spawn", _UAV_gruppe, "this moveingunner _UAV_drohne", 1,"FROM"]; //Dumme-Gunner für Drohne _UAV_drohne flyInHeight 350; //Drohnen Flughöhe //Manager Skript für Client laden (wenn Spieler nicht Host) If (!isServer) then {[_UAV_manager] execVM "ca\modules_e\uav\data\scripts\uav.sqf"}; sleep 2; //Synchronisation mit dem Drohnen-Manager _UAV_manager synchronizeObjectsAdd [_UAV_player,_UAV_Terminal,_UAV_drohne]; TitleText[localize "STR_UAV_1","plain down"]; _UAV_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 _UAV_drohne OR !alive _UAV_player OR _UAV_timeout < time}; //Synchronisation beenden _UAV_manager synchronizeObjectsRemove [_UAV_player,_UAV_Terminal,_UAV_drohne]; //Dummys löschen {deleteVehicle _x} forEach units _UAV_gruppe; TitleText[localize "STR_UAV_2","plain down"]; sleep 20; UAV = false; // Zugriff auf die Drohnen-Aktion wieder freigeben publicVariable "UAV"; sleep 40; //Drohne löschen (erst in Summe nach 60 Sekunden) deleteVehicle _UAV_drohne; |
03.06.2011, 17:35 | #30 (permalink) |
1.)
Ja das if (true) then {Sollte ja immer 100% ausgeführt werden da ich beim test manchmal probleme hatte wenn es nicht davorstand!}; 2.) if (!isserver) then {Clint}else{Host} das steht noch bei mir noch dadurch das ich eine hint meldung hatte obs host oder der clint jetzt verbindet! Ist sicher so besser wie dein Vorschlag! 3.) Mit der Array dachte ich nur, da wenn man das skript öffter als 144 mal aufruft das es keine Probleme erzeugt! ob es sinnvoll ist weiß ich selbst nicht wirklich! 4.) das mit dem if (true) exitWait {da schreibe ich meist eine hint meldung rein die ich dann am schluß entferne!}; Ja das mit der Drohne löschen ist schon richtig aber!
__________________
Ghost_AUT Geändert von Ghost_Aut (03.06.2011 um 17:50 Uhr). |
|
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 |