PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Classname Ansprechen


Dunkelmesser
24.01.2016, 20:10
Hallo Leute :)

Ich habe jetzt einiege zeit gesucht bin aber noch nicht fündig geworden...:(
Ich habe ein kleines Script für die anpassung meines Gears geschrieben:


_unit = _this select 0;
_caller = _this select 1;
_action = _this select 2;

comment "Remove existing items";
removeAllWeapons _caller;
removeAllItems _caller;
removeAllAssignedItems _caller;
removeUniform _caller;
removeVest _caller;
removeBackpack _caller;
removeHeadgear _caller;
removeGoggles _caller;

comment "Add containers";
_caller forceAddUniform "rhs_uniform_flora_patchless_alt";
_caller addItemToUniform "FirstAidKit";
for "_i" from 1 to 2 do {_caller addItemToUniform "rhs_30Rnd_545x39_AK";};
_caller addVest "rhs_vydra_3m";
for "_i" from 1 to 7 do {_caller addItemToVest "rhs_30Rnd_545x39_AK";};
_caller addHeadgear "rhs_6b27m_green_bala";

comment "Add weapons";
_caller addWeapon "rhs_weap_ak74m";
_caller addWeapon "Binocular";

comment "Add items";
_caller linkItem "ItemMap";
_caller linkItem "ItemCompass";
_caller linkItem "ItemWatch";
_caller linkItem "ItemRadio";

Jetzt möchte ich aber das Gear aller einheiten einer bestimmten Klasse anpassen z.B. "O_Soldier_F".
Ich weiß nicht ob es wichtig ist, aber das ganze wird durch ein "addAction" Befehl ausgelöst.

Kann mir da jemand helfen ?? :rolleyes:
Ich bin Dankbar für jeden Brauchbaren vorschlag :)


L.g.: Dunkelmesser

Nokman
24.01.2016, 22:11
du kanst abfragen mit

Objekt iskindof "O_Soldier_F";

abfragen ob es einer ist dies einfach für allunits

{_x iskindof "O_Soldier_F"}foreach allunits

Dunkelmesser
24.01.2016, 22:43
Wenn ich das richtig verstanden habe wird nur abgefragt ob der caller ein O_Soldier_F ist oder nicht ?? Richtig ?? :)

Nokman
25.01.2016, 08:31
allunits - Alle einheiten die es auf der map gibt in eine array

foreach nimt nun jeden einzelnen punkt der array nacheinander

Dies ist _x (der Punkt weche gerade ausgelesen wird)

iskindof Fragt nach ob das Objekt zu den clasnamen passt


als beispiel

{
if (_x iskindof "O_Soldier_F") then {
_x setdamage 1;
};
}foreach allunits

somit wird jeder getötete der ein O_Soldier_f ist


---

Wie Rufst du deinen Script Oben denn auf?

Dunkelmesser
25.01.2016, 18:03
Vielen dank...:daumen:
endlich funktioniert alles :D

ich rufe das script so auf:

Trigger:
ON ACT. _null = [] execVM "Units\Test.sqf"

Drunken Officer
25.01.2016, 18:09
Aha, und wieso durch einen Trigger? Du weißt, dass JEDER das Script dann lädt.
Ausrüstung ist global, also lasse es nur durch den Server ausführen.

Du willst es doch sofort zum Spielbeginn auf alles anwenden, wenn ich das richtig verstanden habe. Warum läßt du das script nicht in der ServerInit ausführen?

Dunkelmesser
25.01.2016, 18:25
Gute idee :daumen:

Dann habe ich aber nochmal eine fragen:(:

Wie bekomme ich es hin das das script in bestimmten abständen erneut ausgefürt wird ??

Wäre gut wenn ihr mir nochmal helfen würdet ??

Mfg.: Dunkelmesser :)

Drunken Officer
25.01.2016, 20:06
siehe spawn script zombie

Dunkelmesser
25.01.2016, 21:39
Danke :D
Funktioniert :)

Einmal muss ich euch noch nerven:(:
Ich habe jetzt folgendes in meinem script stehen:
{
if (_x iskindof "O_Soldier_F") then {

};
}foreach allunits

Klappt jetzt auch alles :D
nun möchte ich aber nicht nur O_Soldier_F sondern auch noch O_soldier_M_F ansprechen...
könnt ihr mir da weiter helfen ??
habe jetzt vieles ausprobiert aber es funktioniert einfach nicht ??

Danke für eure hilfe:daumen:

Mfg.: Dunkelmesser

Buliwyf
25.01.2016, 21:59
if (_x iskindof "O_Soldier_F" OR _x iskindof "O_soldier_M_F") then {