HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Weapon Respawn Script (https://hx3.de/editing-scripting-167/weapon-respawn-script-19273/)

Anemia 10.07.2010 21:46

Weapon Respawn Script
 
Ich suche nach einer möglichkeit dem Spieler nach dem respawn wieder die möglichkeit zu geben Luftunterstützung zu rufen.

Dabei dachte ich an das Weapon Respawn Script was ich benutze.

Code:

_unit = _this select 0;
_weapons = weapons _unit;
_magazines = magazines _unit;

waituntil {alive player};

_unit = player;
removeallweapons _unit;
{_unit addmagazine _x} foreach _magazines;
{_unit addweapon _x} foreach _weapons;

if (player == s1) then {nul = [s1,"lgb","helo","trans"] execVM "airSup\airSupInit.sqf"};

Die Einheiten Respawnen mit der ausrüstung mit der sie gestorben sind. Allerdings wird beim Spieler s1 die Actionmenü zeile "Luft Unterstützung" mehrfach angezeigt. Wie kann ich das unterbinden ?! Ich hätte sie gerne einfach nur ein mal im actionmenü.

Cyborg11 10.07.2010 21:57

Die Action wird auch auf jedem Client der s1 Einheit zugewiesen.
Probier das hier:

Code:

_unit = _this select 0;
_weapons = weapons _unit;
_magazines = magazines _unit;

waituntil {alive player};

_unit = player;
removeallweapons _unit;
{_unit addmagazine _x} foreach _magazines;
{_unit addweapon _x} foreach _weapons;

if (player == s1 && local s1) then {nul = [s1,"lgb","helo","trans"] execVM "airSup\airSupInit.sqf"};


Anemia 10.07.2010 22:17

Dankeschöööön ....

Scheint einwandfrei zu funktionieren.


Edit:
Irgendwie doch nicht ... hatte schon wieder mehrere einträge

Anemia 11.07.2010 09:31

Sorry kann es oben nicht mehr ändern.

Ich glaube ich habe das Prob gefunden.

wenn die luftunterstützung noch aktiv ist, wird nach beendung das menü wieder aktiviert, so das man nicht 5 unterstützungsanfragen aufeinmal laufen lässt.

Kann man irgendwie sicherstellen das es nicht zweimal hinzugefügt wird ?!


So sieht die addmenue sqf von dem airsupport script aus.

Code:

_man = _this select 0;
_id = _this select 2;

_man removeAction _id;

if(jadam or lgb or cbuap or cbuat or cas or cbumine) then {as1 = _man addAction [localize "STR_MENUFXD","airSup\callFixed.sqf",[], 40, false, false, "", ""];};
if(helo or trans) then {as2 = _man addAction [localize "STR_MENUHEL","airSup\callHelo.sqf",[], 30, false, false, "", ""];};
as4 = _man addAction [localize "STR_MENUEXT","airSup\exitMenu.sqf",[], 10, false, false, "", ""];

if(true)exitWith{};


Cyborg11 11.07.2010 11:01

Mach mal in deine ganzen Then Bedingungen ein globalchat/sidechat rein, damit du siehst wie oft und ob die Bedingungen true sind.

Sowas macht man eigentlich immer, wenn ein Skript nicht funktioniert und man wissen möchte, warum bzw. wo es hängt. :oh:

Cyborg11 12.07.2010 10:36

Wie werden eigentlich die Variablen auf true gesetzt?


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