14.02.2012, 00:30 | #1 (permalink) |
Registriert seit: 22.11.2010
Beiträge: 74
|
Waffenkiste mit zufälligen Inhalt
Hallo,
ich möchte gerne Zufallskisten mit in eine Mission bauen und habe diesen Link gefunden: Random weapons crate on MP Nur leider funktioniert das bei mir nicht, es wird immer nur die erste Pistole created (M9). Kann mir da jemand mal bitte helfen? Gruß spaccy |
15.02.2012, 11:15 | #5 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Ganz klar ist der Code nicht. Aber du willst das ja eigentlich im Editor anlegen.
Hier ein Beispiel wie du das mit 3 Auslösern verwirklichen kannst. Dabei haben alle Spieler die selbe Waffe in der Munikiste. Einmalauslöser Bedingung: true Bei Akt.: xplane = -1; handguns = ["M9","Colt1911","glock17_EP1","revolver_EP1","UZI_ EP1"]; mags = ["15Rnd_9x19_M9","7Rnd_45ACP_1911","17Rnd_9x19_gloc k17","6Rnd_45ACP","30Rnd_9x19_UZI"]; Einmalauslöser Bedingung: xplane > -1 Bei Akt.: clearweaponcargo MunikistenName; clearmagazinecargo MunikistenName; MunikistenName addweaponcargo [handguns select xplane, 1]; MunikistenName addmagazinecargo [mags select xplane, 10]; Einmalauslöser (auf den spricht nur der Server an) Zeitverzögerung: 3mal 1 Sekunde Bedingung: isServer Bei Akt.: xplane = floor random (count handguns); publicVariable "xplane"; |
16.02.2012, 18:27 | #6 (permalink) |
Registriert seit: 22.11.2010
Beiträge: 74
|
Danke Vienna für deine Mühe , funktioniert wunderbar.
Ich hab das ganze jetzt in eine SQF gepackt: INIT.sqf: Code:
xplane = -1; handguns = ["M9","Colt1911","glock17_EP1","revolver_EP1","UZI_EP1"]; mags = ["15Rnd_9x19_M9","7Rnd_45ACP_1911","17Rnd_9x19_glock17","6Rnd_45ACP","30Rnd_9x19_UZI"]; "Zufallskiste.sqf": Code:
_box = _this select 0; clearweaponcargo _box; clearmagazinecargo _box; if (!isserver) exitwith {}; xplane = floor random (count handguns); publicVariable "xplane"; _box addweaponcargo [handguns select xplane, 1]; _box addmagazinecargo [mags select xplane, 10]; |
16.02.2012, 21:05 | #7 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
So wie du das meinst wird nur der Server was in der Kiste haben.
init.sqf Code:
[NameMunikiste] execVM "Zufallskiste.sqf"; Code:
//Skript Zufallskiste.sqf für Server und Clients // //Aufruf in der Init.sqf: [NameMunikiste] execVM "Zufallskiste.sqf"; //Lokale Variable private ["_box","_handguns","_mags"]; //Parameter übernehmen _box = _this select 0; //Variable Initialisieren xplane = -1; //Publike Variable //Waffen- und Munitionsliste _handguns = ["M9","Colt1911","glock17_EP1","revolver_EP1","UZI_EP1"]; _mags = ["15Rnd_9x19_M9","7Rnd_45ACP_1911","17Rnd_9x19_glock17","6Rnd_45ACP","30Rnd_9x19_UZI"]; //Munikiste leeren clearweaponcargo _box; clearmagazinecargo _box; //Server bestimmt zufällig die Waffe if (isserver) then { sleep 5; //allgemeine Initialisierung abwarten xplane = floor random(count _handguns); publicVariable "xplane"; }; //Warten bis Server die Waffe bestimmt hat waitUntil {xplane > -1}; _box addweaponcargo [_handguns select xplane, 1]; _box addmagazinecargo [_mags select xplane, 10]; |
16.02.2012, 22:31 | #8 (permalink) |
Er kann auch sein eigenes Script nehmen und muss nur addmagazionecargo & addweapon cargo durch addmagazinecargoglobal & addweaponcargoglobal ersetzen. Ist sogar etwas eleganter und stellt selben Content für alle Spieler sicher.
Grüße
__________________
Niemand hat die Absicht eine Tüte zu bauen! ___<<<A3 Wounding System>>>___ |
|
16.02.2012, 23:50 | #10 (permalink) |
Registriert seit: 22.11.2010
Beiträge: 74
|
Also Arma 2 oa ist vorhanden, ich dachte ich weise die Werte für die Kisten an die Clients schon mit publicVariable zu.
Vienna könntest du bitte nochmal diesen Private Befehl erklären, ich kapier die Funtion trotz Bohemia-Wiki nicht wirklich. |
17.02.2012, 15:46 | #11 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Wenn man eine Globale-Variable auf einem PC ändert, dann gilt das nur für diesen PC. Mit publicVariable überträgt man den Inhalt dieser Variablen dann zu den anderen PCs.
Du hast mit publicVariable nur den Wert der "Schalter-Variablen" xplane übertragen. Mach die Munikiste in der Initialisierungszeile der Kiste so leer: clearweaponcargo this; clearmagazinecargo this; Dann brauchst du keine globale Variable und den Befehl publicVariable, wenn du die Kiste mit addWeaponCargoGlobal und addMagazineCargoGlobal füllst. Das Skript läuft dann nur beim Server. Code:
//Skript Zufallskiste.sqf (Arma2 OA) // //Munikiste leeren in deren Initalisierungszeile der Kiste mit: // clearweaponcargo this; clearmagazinecargo this; // //Aufruf in der Init.sqf: [NameMunikiste] execVM "Zufallskiste.sqf"; if (!isserver) exitwith {}; //Skript nur für den Server //Lokale Variable private ["_box","_handguns","_mags","_wahl"]; //Parameter übernehmen _box = _this select 0; //Variable Initialisieren //Waffen- und Munitionsliste _handguns = ["M9","Colt1911","glock17_EP1","revolver_EP1","UZI_EP1"]; _mags = ["15Rnd_9x19_M9","7Rnd_45ACP_1911","17Rnd_9x19_glock17","6Rnd_45ACP","30Rnd_9x19_UZI"]; sleep 5; //allgemeine Initialisierung abwarten _wahl = floor random(count _handguns); //Waffe wählen // Kiste global mit Waffe und Munition bestücken _box addWeaponCargoGlobal [_handguns select _wahl, 1]; _box addMagazineCargoGlobal [_mags select _wahl, 10]; |
17.02.2012, 17:31 | #13 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Das betrifft nur Skripte welche Daten zu den anderen PCs senden. Wenn der Server den neuen Inhalt sendet und ein Client noch nicht mit seiner Initialisierung fertig ist, dann wird er die Sendung nicht erhalten. Bei sehr schlechter Internetverbindung könnten sogar 5 Sekunden zu gering sein.
Darum ist ein "Vorspann" (z.B. eine Kamerafahrt über die eigene Basis) beim Missionsstart anzuraten, und solche Skripte erst kurz vor Beendigung des Vorspanns starten. Dann kannst du in diesen Skripten so eine Initialisierungs-Pause weglassen. |
18.02.2012, 15:35 | #15 (permalink) |
Registriert seit: 08.01.2011
Beiträge: 41
|
Macht es Sinn hier mit 'waitUntil' auf das Setzen von xplane bei den Clients zu warten? |
18.02.2012, 16:38 | #16 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Das ist bei der Version ohne die globalen Befehle notwendig. Dort soll ja der Server die Waffe bestimmen und in xplane ist der Index für die Arrays auf den die Clients warten. Andernfalls hätten nicht alle die selbe Waffe in der Kisten.
Bei der Version mit den globalen Befehlen ist die publike Variable xplane nicht notwendig. |
17.10.2012, 00:55 | #17 (permalink) |
Registriert seit: 17.10.2012
Beiträge: 7
|
Servus ich bin neu hier und habe diesen thread hier gefunden ...
ich bin momentan dabei eine map für dayz mit RMod zu basteln, will dort ein paar boxen verstecken und diese befüllen (was auch bis jetzt super funktioniert hat) läuft bist jetzt auch alles super bis auf das ich halt die kisten zufällig füllen will, das funktioniert irgendwie nicht mit dem script hier (vieleicht mache ich einen fehler) mein vorgehen bisher : *Zufallsskiste.sqf erstellt inhalt aus dem post von Vienna vom 17.02.2012 15:46 *[NameMunikiste] execVM "Zufallskiste.sqf" in init.sqf eingefügt *im map editor [this,1] execVM "Zufallskiste.sqf" bei denn boxen eingefügt. würde gehn wissen wo mein feher ist, Vielen dank im vorraus für eure hilfe |
17.10.2012, 13:57 | #18 (permalink) |
Registriert seit: 17.10.2012
Beiträge: 7
|
so hab es nun so halb zumindest zum laufen bekommen !
jetzt gibt es nur noch ein fehler, kisten die z.b. "this setpos [5501.6597, 1906.6729, -0.43265706];" in der ini zeile haben reagieren dannach nicht mehr auf das script ... wie kann man das lösen? (die positions angaben sind weil manche kisten auf gebäuden stehen o.ä.) |
17.10.2012, 18:39 | #20 (permalink) |
Registriert seit: 17.10.2012
Beiträge: 7
|
so danke für deine antwort hatte damit zu tun das irgendwie durch denn 3d editor die boxen immer 3 mal übereinander lagen ...
so nun nen neuen problem ... ich kann keine waffen aus der kiste nehmen?! ... woran könnte das liegen? |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Ultimative Waffenkiste | Moerderhoschi | Editing & Scripting | 13 | 08.08.2012 15:08 |
Waffenkiste (Alle Waffen Skript)? | Piratenschiff | Editing & Scripting | 4 | 11.10.2011 21:56 |
Wie macht Man eine Waffenkiste unmittelbar nach dem Spawn nutzbar? | Moerderhoschi | Editing & Scripting | 5 | 04.03.2011 13:39 |
Waffenkiste | KSKfreak | Editing & Scripting | 3 | 23.01.2011 18:15 |
[OA] Co04/SP "Simple Instant Action" mit zufälligen Aufgaben | Wiggum | Usermade Missions | 17 | 26.08.2010 12:39 |