Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 23.04.2012, 04:00   #1 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 29.07.2008
Ort: Wien
Alter: 42
Beiträge: 189
Ghost_Aut eine Nachricht über MSN schicken
Standard setVehicleInit

Hello HX3 Team!
Ich bräuchte mal etwas Professionelle Hilfe!
Und zwar würde ich gerne in die setVehicleinit
bei einer AI Einheit einem addactions Befehl hinzufügen, was so weit
Auch ganz gut funktioniert, nur habe ich das Problem so bald
Ein neuer Player Verbinden würde bekommt er die addaction
Nicht mehr angezeigt die AI wird über ein Skript erzeugt und anschließend
mit!

Code:
[_unit] call Follow;
In die init.sqf gerufen!
Code:
Follow = 
{                                                             
   private ["_unit","_alpha","_index"];                                    
   _unit = _this select 0;                                              
   _alpha = group _unit;  sleep 2;      
  _unit removeAction  0;    
  clearVehicleinit _unit;
  _unit removeAllMPEventHandlers "mpkilled";
  Sleep 2;
   _index = _unit addMPEventHandler ["mpkilled", {Null = _this execVM     "Team_West\Body_dead.sqf";}];                                        
   _unit setVehicleInit "this addAction [' Follow  Me,'team_west\Follow.sqf']";                       
   processInitCommands;                                                  
};
Ich hätte auch schon versucht das ich die units in eine Area hinzufüge und sie anschließend
Noch mal in die init.sqf rufe funktioniert soweit auch ganz gut nur habe ich anschließend
Bei dem Player der schon vorher im Game wahr einen doppelten addactions Eintrag!

Code:
{[_x] call Follow}foreach Westunits;
Irgendwie komme ich nicht mehr weiter, dass ich den ersten Eintrag entfernen könnte
Vielleicht könnte mir jemand einen Tipp geben?
__________________
Ghost_AUT

Geändert von Ghost_Aut (23.04.2012 um 04:43 Uhr).
Ghost_Aut ist offline   Mit Zitat antworten
Alt 23.04.2012, 08:54   #2 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Die inti.sqf darfst du nicht bei allen Spielern neu aufrufen. Beim Neueinsteiger wird sie ohnehin automatisch aufgerufen. Du musst nur dafür sorgen, dass er dass Array mit den Units hat, welche die Aktion haben sollen.

Dieses Array soll der Server verwalten und über onPlayerConnected mit publicVariable senden. Im Skript beim Client, welches die Aktionen einfügt und von der init.sqf aufgerufen wird, muss eine Pause vorhanden sein, damit das Array sicher vorhanden ist.
Vienna ist offline   Mit Zitat antworten
Alt 23.04.2012, 11:05   #3 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Lester
 
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 50
Beiträge: 3.010
Standard

Zitat von Vienna Beitrag anzeigen

Dieses Array soll der Server verwalten und über onPlayerConnected mit publicVariable senden. Im Skript beim Client, welches die Aktionen einfügt und von der init.sqf aufgerufen wird, muss eine Pause vorhanden sein, damit das Array sicher vorhanden ist.

Wenn eine Serververwaltete Variable einmal publicvariable'd worden ist, braucht man diese nicht nocheinmal via OnPlayerConnected extra zu publizieren, das geschieht dann immer ganz automatisch mit dem aktuellem Inhalt bei allen JIP Clients !
__________________
Nur ein Beispiel das zeigt wie BI "support" definiert: https://feedback.bistudio.com/T75547
Lester ist offline   Mit Zitat antworten
Alt 23.04.2012, 12:18   #4 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Tolle Sache!

Um nichts misszuverstehen:

Wenn beim Server/Host einmal eine Variable mit publicVariable übertragen wurde, dann wird diese (auch ohne onPlayerConnected) automatisch beim JIP Client mit dem Wert vom Server initialisiert.

Kann es da ein Problem geben, wenn diese Variable z.B. auch in der init.sqf beim Client initialisiert wird?
Vienna ist offline   Mit Zitat antworten
Alt 23.04.2012, 14:23   #5 (permalink)
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 77
Beiträge: 6.547
Standard

*deleted*

Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels.

Geändert von Xeno (08.12.2013 um 16:37 Uhr).
Xeno ist offline   Mit Zitat antworten
Alt 23.04.2012, 16:09   #6 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Es ist also angebracht alle publiken Variablen mit dem isNil-Check zu initialisieren. Diese Automatik erspart natürlich für JIP einiges an Programmierung.

Falls der isNil-Check vor der Initialisierung durch den Server erfolgt, ist anzunehmen dass der Inhalt der Variablen dann vom Serverwert überschrieben wird.


Es wird vermutlich der Inhalt übertragen den der Server hat. Diese "Automatik" vom Server gilt nur bei JIP? Sonst muss der Server publicVariable verwenden?

Wird diese Automatik nur beim JIP-Client wirksam, oder erfolgt eine "Auffrischung" der Variablen dadurch auch bei den anderen Clients?

Falls das unklar ist, sollten publike Variable nur als solche verwendet und immer übertragen werden.
Vienna ist offline   Mit Zitat antworten
Alt 23.04.2012, 16:37   #7 (permalink)
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 77
Beiträge: 6.547
Standard

*deleted*

Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels.

Geändert von Xeno (08.12.2013 um 16:37 Uhr).
Xeno ist offline   Mit Zitat antworten
Alt 23.04.2012, 17:15   #8 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.724
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

Zitat von Xeno Beitrag anzeigen

*deleted*

...die allerdings sehr kompliziert sein können und bestimmt nicht für den "normalen" Scripter/Missionsbastler anwendbar sind. Und bei Missionen ohne JIP/respawn oder einer Missionslänge von 60min eben sch***egal ist.
Das ist nur was für Domi und Co.

Und zum Thema: da steht ein sleep in der Funktion.

Grüße
__________________
Niemand hat die Absicht eine Tüte zu bauen!

Geändert von Xeno (03.01.2014 um 08:37 Uhr).
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 23.04.2012, 18:55   #9 (permalink)
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 77
Beiträge: 6.547
Standard

*deleted*

Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels.

Geändert von Xeno (08.12.2013 um 16:37 Uhr).
Xeno ist offline   Mit Zitat antworten
Alt 27.04.2012, 17:42   #10 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 29.07.2008
Ort: Wien
Alter: 42
Beiträge: 189
Ghost_Aut eine Nachricht über MSN schicken
Standard

Danke für denn einen oder anderen Tipp, ich habe es
Jetzt mal so hinbekommen, dass ich damit leben kann gg!

Beim Start des Scripts mit den AI, rufe ich sie mal in die init.sqf
dadurch bekommt jeder Player im Game die Action!
Falls Jemand später neu verbindet, werden die Aktionen durch eine abfrage
Des Bestehens der Units, lokal hinzugefügt ohne setvehicleinit Code!
(units publike erstellt)

MFG.
__________________
Ghost_AUT
Ghost_Aut ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116