Hallo zusammen,
ich hab mal wieder ein Problem.
Ich habe ein Modell gemacht an dem an Vertex #109 Rauch aufsteigen soll.
Effekt wurde mit EP3 an Vertex #109 erstellt und angehängt.
Es funktioniert wenn ich nur "Rauch();" schreibe.
Ich möchte aber das rauch dann aufsteigt, wenn der Gegner 15 Health und weniger hat, so dachte ich mir müsste das doch hiermit gehen "if(my._health <= 15){Rauch(); }
Aber dem scheint nicht so zu sein.
Beispiel, unten im Code ersetze ich meine Zeile durch "Rauch();" gehts, mit dem Nachteil das der Rauch die ganze Zeit besteht.
Was mache ich hier falsch?
Folgend der Code der actor_walk_fight Aktion
Code:
action actor_walk_fight
{
// Health-
if (MY._HEALTH <= 0)
{
MY._HEALTH = 20;
} // default 50 health
// Armor-
if (MY._ARMOR <= 0) { MY._ARMOR = 0; } // default 0 armor
// Force-
if (MY._FORCE == 0) { MY._FORCE = 1.5; } // default force
if (MY._HEALTH < 15) { Rauch(); } // Das ist meine Meinung, schreibe ich hier nur Rauch(), dann gehts zwar aber der Dauerhaftigkeitsnachteil besteht
// Alertness-
MY._I_ALERTNESS = MY._ALERTNESS;
// Cowardice-
MY._I_COWARDICE = MY._COWARDICE;
// Firemode-
if (MY._FIREMODE == 0)
{ MY._FIREMODE = DAMAGE_SHOOT+FIRE_PARTICLE+HIT_FLASH+0.10; } // use default
// Accuracy-
if (MY._ACCURACY > 0)
{
MY._I_ACCURACY = MY._ACCURACY; // positive value given, use specified accuracy
}
else
{
if (MY._ACCURACY < 0)
{ MY._I_ACCURACY = 0; } // negative value given, use perfect accuracy
else // MY._ACCURACY == 0
{ MY._I_ACCURACY = 5; } // no value given, use default accuracy
}
// Hitmode-
//--MY._HITMODE = MY._HITMODE; // zero is the default, no extra checking needed
// Muzzle Vertex-
MY._MUZZLE_VERT = int(MY._MUZZLEATTACH);
// uses same advanced animation packing as player (dont let the function name fool you)
player_anim_pack();
// Other setup
MY._WALKSOUND = _SOUND_ROBOT;
anim_init(); // setup animation a bit
drop_shadow(); // attach shadow to robot
actor_fight(); // start simple AI state machine
}
Danke
Lg Sticky