ent_remove(me); is giving me a crash
function remove_eball()
{
if (event_type == event_entity || event_type == event_block)
{
ent_remove(me);
}
}
function energy_ball()
{
my.enable_entity = on;
my.enable_block = on;
my.event = remove_eball;
my.pan = camera_pan;
my.tilt = camera_tilt;
my.lightred = 250;
my.lightgreen = 150;
my.lightrange = 200;
eball_speed.x = 20;
eball_speed.y = 0;
eball_speed.z = 0;
eball_speed *= time;
while (1)
{
my.roll += 20 * time;
c_move(me,eball_speed,nullvector,ignore_you + ignore_passable | glide | use_box);
wait (1);
}
}
//action SpellInit
//{
// while (me != null)
// {
// mana = -1;
// ent_animate(my,"attack_a",my.animate,0);
// my.animate += 20 * time;
// eball_pos.x = my.x;
// eball_pos.y = my.y;
// eball_pos.z = my.z + 25; // the energy ball appears betwen wizard's hands
// ent_create (energyball_mdl, eball_pos, energy_ball);
// snd_play (energy_snd, 70, 0);
// wait (32);
// }
//}
Function SpellInit
{
mana = -1;
ent_animate(my,"attack_a",my.animate,0);
my.animate += 20 * time;
eball_pos.x = my.x + 40; // Change the X position where the ball will appear
eball_pos.y = my.y;
eball_pos.z = my.z + 15; // Change the Z position where the ball will appear
ent_create (energyball_mdl, eball_pos, energy_ball);
snd_play (energy_snd, 70, 0);
wait (1);
}
function aim()
{
spell_panel.VISIBLE = ON;
}
function fire()
{
if(mana != 0)
{
spellinit();
}
else
{
return;
}
}
function spell()
{
WHILE(1)
{
aim();
if(mana > max_mana)
{
mana = max_mana;
}
if(mana <= 0)
{
mana = 0;
}
if(key_t)
{
fire();
}
WAIT(1);
}
}
Last edited by Mythran; 12/15/07 19:24.