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 |
Soll das für Einzel- oder Mehrspielermodus sein. Dann musst du deine Codezeilen angeben, um den Fehler finden zu können.
|
Sorry, ist für Multiplayer gedacht, ich versuch das aber überhaupt erstmal im Editor zum laufen zu kriegen.
|
Den Code hab ich 1 zu 1 vom Link benutzt, keine Veränderung. Funktioniert aber nicht.
|
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"; |
Danke Vienna für deine Mühe :daumen:, funktioniert wunderbar.
Ich hab das ganze jetzt in eine SQF gepackt: INIT.sqf: Code:
xplane = -1; "Zufallskiste.sqf": Code:
_box = _this select 0; |
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 |
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 |
Bei den Befehlen war ich mir nicht sicher ob sie auch für Munikisten sind. Weiters benötigen sie Arma2 OA.
|
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. |
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) |
Warum wartest du auf die Initialisierung eigentlich 5 sek?
|
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. |
Wenns ein wenig länger dauert, ist es nicht so schlimm. Diese Zufallskisten erreicht die Spielmannschaft erst im späteren Spielverlauf.
Danke nochmal für deinen Einsatz! >Ich jetzt glücklich :ugly:< |
Zitat:
|
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. |
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 |
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.ä.) |
Da scheint in der Initialisierungszeile ein "Befehlsteil" falsch zu sein.
Teil1; Teil2; Teil3; usw. Gib einmal die einzelnen "Teile" allein ein und schau welcher nicht ausgeführt wird. |
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? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr. |
Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias