HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   Ausrüstung nach respawn (https://hx3.de/editing-scripting-187/ausruestung-respawn-24311/)

Hannibal1612 05.10.2014 12:38

Ausrüstung nach respawn
 
Hallo Community,

ich habe ein Problem mit dem Respawn der Ausrüstung. Ich habe hier schon einiges gefunden, aber es hat bis jetzt noch nicht geklappt.

Ich habe eine MP-Mission für 4 Spieler.

Mein Vorgehen:

Nachdem man sich an der Munitionskiste bewaffnet hat, wird das Spiel gespeichert + die Ausrüstung. Hier für Player 1:

//Player 1
waffePlayer_1 = weapons Player_1;
waffeitemsPlayer_1 = primaryWeaponItems Player_1;
magazinPlayer_1 = magazines Player_1;
rucksackPlayer_1 = backpack Player_1;
rucksackAusruestungPlayer_1 = backpackItems Player_1;
itemsPlayer_1 = items Player_1;

Danach habe ich 4 Auslöser als Prüfer, ob einer der Spieler gestorben ist. Wenn ja wird folgendes Skript ausgeführt:

waitUntil {alive Player_1};
removeAllWeapons Player_1;

Player_1 addBackpack rucksackPlayer_1;
{Player_1 addItemToBackpack _x} forEach rucksackAusruestungPlayer_1;
{Player_1 addItem _x} forEach itemsPlayer_1;
{Player_1 addMagazine _x} forEach magazinPlayer_1;
{Player_1 addWeapon _x} forEach waffePlayer_1;
{Player_1 addPrimaryWeaponItem _x} waffeitemsPlayer_1;

Mein Problem ist nun, dass die Ausrüstung nicht richtig regespawnt wird. Anstatt 4 First Aid Kids habe ich 13 oder anstatt 6 Magazine habe ich nur noch 2 usw., da First Aid Kids den Rucksack schon zu sehr belasten. Darüber hinaus werden die Items auf der Primärwaffe nicht gespeichert.

Kann mir jemand erklären, wo mein Fehler liegt?
Ich wäre sehr dankbar :).

Viele Grüße
Hannibal 1612

Drunken Officer 05.10.2014 13:37

Es gibt definitiv 3 x threads dazu die genau das behandeln. Und Vienna seine Version funktioniert.

Deswegen SuFu benutzen

Außerdem musst du Westen und Rucksack erst leeren, bevor du sie mit deinem Array füllst

Hannibal1612 05.10.2014 16:43

Hallo Drunken Officer,

ich weiß, dass Vienna dies schon gelöst hat, für Arma2 glaube ich. Seine Lösung hat bei mir aber nie geklappt und außerdem wollte ich die Ausrüstung einmal am Anfang speichern und nicht erst bei Tod. Deshalb habe ich es ja so getrennt.

Nokman 05.10.2014 18:18

Wie es aber schon gesagt wurde dein Problem ist das du die Magazine Ausrüstung nicht aus denn Taschen Rucksack ETC löschst genauso die Items am Player.

Nun Addest du wieder die Alten hinzu und dann ist er voll bei 13 Medipacks und 2 Mags passt eben nicht mehr rein.

Drunken Officer 05.10.2014 18:44

Dann mußt du das Script von Vienna nur so anpassen, dass das Script wartet
waituntil {player == player};
auslesen...
array füllen ....
waituntil {!alive player};
sleep 1;
waituntil {alive player};
alle Waffen entfernen
alle Magazine entfernen

Weste laden - weste leeren
uniform laden - uniform leeren
Rucksack laden - Rucksack leeren

Westeninhalt laden
Rucksackinhalt laden
Unitforminhalt laden
Waffen hinzufügen //Waffen nach Mag, sonst ist sie nicht geladen

//bei diesem Weg verlierst du aber immer ein Mag. Ansonsten mußt du die aktuellen Magazine der Waffe zusätzlich auslesen.

Du darfst nicht Magazine auslesen UND die Inhalte der Weste und Rucksäcke, da du sonst doppelst!

Edit:
Komme ich jetzt erst drauf. Der Spieler hat eine durch die Config vorgegebene Ausrüstung. respawnitems[] = {}; usw.
Wenn du die Ausrüstung gleich zu Beginn speicherst, macht das alles keinen Sinn. Oder speicherst du es an der Kiste, via Addaction wie damals zu Dominationzeiten bei ArmA 2 ?

Jekko 06.10.2014 20:17

Schau dir das mal an:

GET/SET Loadout (saves and loads pretty much everything)

funktioniert prima bei Arma 3... :daumen:

Hannibal1612 07.10.2014 09:14

Hallo zusammen,

vielen Dank für die vielen Tipps. Ich werde es mal probieren.

@ Drunken Officer, ich habe einen Auslöser um meine Munitionskisten, der dann auslöst, sobald man diesen Bereich verlässt. Dann werden die Arrays so befüllt:

//Player 1
waffePlayer_1 = weapons Player_1;
waffeitemsPlayer_1 = primaryWeaponItems Player_1;
magazinPlayer_1 = magazines Player_1;
rucksackPlayer_1 = backpack Player_1;
rucksackAusruestungPlayer_1 = backpackItems Player_1;
itemsPlayer_1 = items Player_1;

Ich hatte angenommen, dass dieser Befehl (removeAllWeapons Player_1; ) komplett alles löscht.

Kannst du mir bitte erklären, was du mit Addaction meinst?

Bin gerade erst frisch in die Skriptwelt von Arma eingetaucht und kenne daher noch nicht so viel ;)

Drunken Officer 09.10.2014 08:10

mit AddAction meine ich, dass du wie bei der Domi einfach an die Kiste ein "SPEICHER INVANTAR" dran hängst.
https://community.bistudio.com/wiki/addAction

Dies führt dann das Script aus, welches du über deine Trigger laufen läßt. Du kannst das alles mit einem Script realisieren, so wie es Vienna aufgezeigt hat.

Du läßt das Script local ausführen. Allerdings setzt die Variablen nicht lokal sondern global (nicht pubilc!)
lokal = _variable
global = variable

Dann gibst du jedem Spieler eine Killed-Eventhandler. Wenn dieser logischerweise bei Tod triggert, dann führst du ein Script aus, welches die Ausrüstung läd und auch den Eventhandler.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 Uhr.

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 117 118 119