PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausrüstung nach respawn anpassen [Fehlersuche]


tonkgul
27.06.2014, 14:54
Hallo!

Ich habe ein script das abfragen soll ob eine einheit tot ist geht soweit ganz gut nur Klappt es mit der ausrüstung zuweisen nicht

Meine alte version


while {true} do {
if (!alive player) then {
titletext ["Wait for Respawn", "BLACK", 0];
sleep 10;
player addmagazine "16Rnd_9x21_Mag";
player addweapon "hgun_Rook40_F";
player additem "firstaidkit";
Hunger = 100;
Thirsty = 100;
titletext ["", "BLACK IN", 5];
};
sleep 1;
};


Klappt,

meine Neue version

while {true} do {

if ((!alive player) && (rating player < 1500) && (rating player < -2999)) then {
titletext ["Wait for Respawn", "BLACK", 0];
sleep 10;
player addmagazine "16Rnd_9x21_Mag";
player addweapon "hgun_Rook40_F";
player additem "firstaidkit";
Hunger = 100;
Thirsty = 100;
titletext ["", "BLACK IN", 5];
};

if ((!alive player) && (rating player > 1500)) then {
titletext ["Wait for Respawn", "BLACK", 0];
sleep1 10;
removeheadgear player;
removeuniform player;
player addmagazine "6Rnd_45ACP_Cylinder";
player addweapon "hgun_Pistol_heavy_02_F";
player addheadgear ""H_Cap_headphones"";
player addvest "V_PlateCarrier1_blk";
player adduniform "U_I_G_Story_Protagonist_F";
player additem "firstaidkit";
player additem "firstaidkit";
Hunger = 100;
Thirsty = 100;
titletext ["", "BLACK IN", 5];
};

if ((!alive player) && (rating player > -2999)) then {
titletext ["Wait for Respawn", "BLACK", 0];
sleep 10;
removeheadgear player;
removeuniform player;
player addmagazine "16Rnd_9x21_Mag";
player addweapon "hgun_P07_snds_F";
player addheadgear "H_Shemag_olive";
player adduniform "U_O_GhillieSuit";
player addvest "V_Chestrig_khk";
Hunger = 100;
Thirsty = 100;
titletext ["", "BLACK IN", 5];
};




sleep 1;


};


In der Neuen version soll Beim tot einer spielbaren einheit abgefragt Werden welches rating er hat um die dem endsprächende ausrüstung zuzufügen.

Leider bekomme ich GARKEINE ausrüstung mehr...

Seht ihr da einen fehler?

Buliwyf
27.06.2014, 15:50
Das is hier alles voller Fehler... aber A L L E S! :zahn:

Und im Script steht folgendes:
sleep1 10;

Sollte sicher heißen:
sleep 10;

...das aber nur mal so auf die Schnelle.

Sajiki
27.06.2014, 19:08
Mal n Tipp am rande ;) Ich baue immer einen art Debug Modus mit ein der mir Hilft fehler zu finden an gewissen stellen.

Ganz Oben:
_debug = true;

Bei dienen Wunschstellen:
if (_debug) then { hintsilent "Wunschtext"; sleep 1; };


Zum Topic:
Wäre es nicht Sinnvoller hier mit else zu arbeiten?

mfg
Sajiki

Drunken Officer
27.06.2014, 20:53
RPT anschauen

Vienna
28.06.2014, 08:00
Ich würde die Abfragen so ausführen:


while {true} do
{
waitUntil {sleep 1; !alive player};
titletext ["Wait for Respawn", "BLACK", 0];
waitUntil {alive player};

if (rating player < 1500 && rating player < -2999) then
{
...
};

if (rating player > 1500) then
{
...
};

if (rating player > -2999) then
{
...
};

titletext ["", "BLACK IN", 5];
};

Dann sollte dir auch leichter auffallen, dass die erste Abfrage nur dann true wird, wenn das Rating < -2999 ist.

Bei den weiteren Abfragen ist > -2999 auch immer > 1500. So wird der Inhalt von > 1500 immer von > -2999 überschrieben.