HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   Keine Initialisierung nach Respawn?! (https://hx3.de/editing-scripting-187/keine-initialisierung-respawn-22371/)

DerFlamer 14.03.2013 20:22

Keine Initialisierung nach Respawn?!
 
Hallo,

in einer Mission soll der Marksman des Teams einen Schalldämpfer bekommen. Das funktioniert über eine Codezeile in seiner Init. Wenn der Marksman respawnt erhält er keinen Schalldämpfer. Meine Schlussfolgerung ist dass keine erneute Initialisierung stattfindet. Kann man diese irgendwie triggern?

Für den Fall dass es nicht gehen sollte habe ich mir ein Skript überlegt, welches allerdings viele Fehler enthalten könnte ;) Außerdem ist mir unklar wie man die Klasse eines Spieler abfragt und ob "primaryWeaponItem" (in der zweiten Schleife) die richtige Klasse ist.

Code:

_snds= false;
{ if{_x == class "Marksman" } then {
{ if{_x == "muzzle_snds_B"} then { _snds= true; }; } forEach primaryWeaponItem (primaryWeaponItems _this);
} } forEach units group player;
_snds

Es handelt sich hierbei um eine MP-Mission.

Gruß,
DerFlamer

Marscl 14.03.2013 20:26

Nach Respawn Standardausrüstung haben ist leider noch ein Alpha-Bug. :(

Vienna 14.03.2013 20:56

Erstelle folgenden Auslöser, der führt dann für den Soldaten beim Spielstart und nach jedem Respawn deine Anweisungen aus.
Code:

Auslöser:
Achse A und B: 0
Aktivierung  : Keiner | Mehrfach
Bedingung    : alive SoldatName
Bei Akt.    : hier deine Befehl für SoldatName anführen

Fürs Skripten mache dich vorerst damit http://community.bistudio.com/wiki/Control_Structures vertraut!

DerFlamer 14.03.2013 21:53

@Marcelinho Freue mich schon auf die ganzen neuen Waffen, Fahrzeuge und fehlenden Bugs :)

@Vienna
Dankeschön :)

Falls es jemanden interessiert, der Code:
Code:

if (!("muzzle_snds_B" in (PrimaryWeaponItems marksman))) then { marksman addPrimaryWeaponItem "muzzle_snds_B"; };
Gruß,
DerFlamer

Vienna 14.03.2013 23:27

Zur Bedingung ist noch was zu sagen. Im Editer angelegte Auslöser laufen in MP auf allen PCs. Wird die Spielfigur erstellt, dann reagiert der Auslöser auf allen PCs, wenn die Bedingung lautet:

alive SoldatName

Das ist so korrekt, wenn man allen Spielern darüber einen Text ausgeben will. Ist ein Teil der Befehle des Auslöser aber nur für SoldatName bestimmt, dann ist dieser Teil "Bei Akt." einzugrenzen und zwar mit (fetter Teil):

hint "Mitteilung an alle: SoldatName wurde erstellt!"; if (player == SoldatName) then {hint "Text nur für SoldatName"};

Ist alles nur für SoldatName bestimmt, so wird das gleich in der Bedingung eingegrenzt:

alive SoldatName and player == SoldatName

Sol.LrMartyn 17.03.2013 14:21

Skript welches ich verwende
 
Hallo,

also ich verwende nettes folgende Skript:

PHP-Code:

// Weist der neuen Spielfigur nach dem Respawn die vorherige Bewaffnung zu
// (keine volle Neubestückung, sondern exakt die vorhanden gewesene Munition!)
//
// Das Skript ist in der Init.sqf aufzurufen: player execVM "RespawnWaffen.sqf"

if (! local playerexitWith {};

private [
"_alterSpieler","_weapons","_magazines","_primW","_muzzles",""];
 
while {
true} do {
 
    
_alterSpieler player;     //Sichert die ID der momentanen Spielerfigur
 
    
waitUntil {!alive player};  //wartet bis Spielerfigur tot
 
    
_weapons   weapons   _alterSpieler//speichert die Waffen der toten Spielfigur
    
_magazines magazines _alterSpieler//speichert die Magazine der toten Spielfigur
 
    
waitUntil {alive player};  //wartet bis Spieler neue Figur hat

    //removeAllItems player;  // entfernt Karte, Kompass usw. des Spielers (deaktiviert)
    
removeAllWeapons player;  // entfernt Waffen und Magazine des Spielers
 
    
{player addMagazine _x} forEach _magazines//lädt die gespeicherten Magazine
    
{player addWeapon   _x} forEach _weapons;   //lädt die gespeicherten Waffen 
 
    //primäre Waffe aktivieren
    
_primW primaryWeapon player;
    if (
_primW != ""then {
        
player selectWeapon _primW;
        
// Falls Waffe einen Granatwerfer hat
        
_muzzles getArray(configFile>>"cfgWeapons" >> _primW >> "muzzles");
        
player selectWeapon (_muzzles select 0);
    };
 
}; 


TeRp 17.03.2013 15:09

Zitat:

Zitat von Marcelinho (Beitrag 445515)
Nach Respawn Standardausrüstung haben ist leider noch ein Alpha-Bug. :(

Ähm, das ist das Standardverhalten seit OFP: man respawnt immer mit seiner der Klasse zugeordneten Bewaffnung.
Also ausnahmsweise mal kein Bug :zahn:

Marscl 17.03.2013 15:26

Zitat:

Zitat von TeRp (Beitrag 445799)
Ähm, das ist das Standardverhalten seit OFP: man respawnt immer mit seiner der Klasse zugeordneten Bewaffnung.
Also ausnahmsweise mal kein Bug :zahn:

Terp, das ist mir schon klar :zahn:

Nur wenn ich im Editor einer Spielfigur einen Atombombenwerfer gebe will ich auch, dass die Spielfigur den Atombombenwerfer nach dem Spawn auch noch hat. :D

burns 17.03.2013 15:31

Na das is dir offenbar nicht klar, Terp hat doch gesacht die können nur mit Zeuch respawnen von dem ArmA aus der Config schon weiss das sies mal hatten! :confused:


Für nach dem Respawn könnte, evtl. vielleicht bei Vollmond, das da klappen:
Code:

deinMännchen "this addweapon "atombombenwerfer";";
processInitCommands;


Kiezbengel 18.03.2013 23:20

Nabend.
Blicke bei dem Respawn mit dem gleichen Equipment wie vor dem Tod nicht mehr so ganz durch.
Wenn meine Spieler die Namen Sn1 und Sn2 haben. Und ich in der Init Line im Editor jeweils den Befehl
["sn1",1] exec"weapons_respawn.sqs" bzw. Für den zweiten mit sn2.....
Was muss ich dann in der selbsterstellten Datei weapons_respawn.sqs im missions ordner eintragen? Der eigentliche Respawn funktioniert schon mal aber halt nach dem tod mit der jeweils voreingestellten Waffe von Arma.
Hoffe jemand versteht was ich damit meine ;-) Danke vorab für hilfreiche Tips.

Vienna 19.03.2013 20:08

Lies dir den folgenden Thread durch: http://hx3.de/editing-scripting-167/...ehalten-22268/

Kiezbengel 19.03.2013 22:12

Danke für den Tip. Ich glaube nun meinen Fehler erkannt zu haben. Habe immer den Universal Weapons Respawn Script aus Armaholic genommen. Bin aber davon ausgegangen das dieser Skript mein Kommplettes gear wieder dem respawn herstellt. Nun gehe ich davon aus das ich die weapons_respawn.sqs für mein eigenes hergestelltes gear umändern muss. Oohh ohh...
War schon super zufrieden gestern nach 1 Std. Youtuben mich im Editor relativ gut zurecht zu finden und meinen Spielern eigenes Gear in der Initline anzupassen und ne kleine Mission zu erstellen. Doch ohne Skripting kenntnisse ist wohl nun schluss.. Dürfen wir halt nicht sterben wärend der Mission oder mit dem Standard gear weiter spielen.

Euch erstmal vielen Dank für die Hilfe.

Edit : Geistesblitz.. Nun weiß ich wohl doch wie ich jedes teil in die sqs datei einfügen kann. Werd es morgen ausprobieren und berichten. Wer lesen kann ist klar im Vorteil hehe...

Sol.LrMartyn 20.03.2013 19:10

Was ist mit dem Skript was ich Dir gepostet habe. Du brauchst nichtmal verschiedene Einheiten einzubinden. Sobald Du stirbst, respawnst Du mit demselber Ausrüstung, ganz locker.

Kiezbengel 21.03.2013 20:42

@Sol.LrMartyn Danke mein "Geistesblitz" hatte doch nicht gefruchtet :-) Mit deinem Skript läuft alles wie geschmiert.
Bin schon wieder etwas weiter und beschäftige mich nun mit den Tasks. Bekomme auch schön den Task angezeigt und die entfernung zum Ziel. Wenn das Ziel erledigt ist bekomme ich auch ein Task Succeeded angezeigt, nur leider wird mir beim nächsten Ziel nicht die Distanz angezeigt sondern nur den Task auf der Map..

Sol.LrMartyn 26.03.2013 10:01

Hm, freut mich zu hören, dass das Skript auch bei Dir funktioniert ;-)

Poste doch mal die Sachen mit dem task...

AreaGamer 27.03.2015 14:46

Gibt es das Respawnskript auch für alle alle Items, Headgear, Uniform, Vests ... die an einer Einheit ausgetauscht wurden?

Drunken Officer 27.03.2015 15:27

ja. Suche hier im Forum oder bei Armaholic. Vienna hat im ArmA 2 Forum ein solches Beispielscript gebracht

Oder wie wäre es, sich mal langsam mit den Befehlen auseinander zu setzen und selber schreiben???? Man wird nicht dümmer.

Du benötigst einen Killed-Eventhandler. Du liest die gesamten Dinge des Spielers aus.
Magazine, Waffen, Weste, Items. Diese Befehle findet man hier:
https://community.bistudio.com/wiki/...ommands_Arma_3

Soweit so gut.
Dann wartest du mit einer waitUntil {alive player} Bedingung, bis der Spieler wieder lebt.

Dannach machst du die Puppe naggisch und leer. Im Anschluß überschreibst du die Waffen, Westen, Magazine.

Bei mir funzt es wunderbar, außer wenn AGM im Spiel ist. Der Mod kollidiert irgendwie mit meinem Killed-EH.

Dies Prinzip erstellt eine Ausrüstung, wie sie zum Todeszeitpunkt war.

Willst du eine vorgefertigte Ausrüstung haben, ist das noch einfacher. Dann definierst du in einem Script was der Soldate haben soll. z.b.
[player,"MX_Rifle_F",2] call bis_fnc_addweapon
player additem "ITEM_GPS";
player addVest "keineAhnung";
player addUniform "keineAhnungwelche";
usw.
Hier kannst du mit Player arbeiten, da ein EH Lokal läuft

Nutze dann ein Respawn-EH. Nach erfolgreichem Respawn das Script laden und färtsch.
https://community.bistudio.com/wiki/...Event_Handlers

Einfach mal ranprobieren und test. EH sind kein Hexenwerk


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 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