Reply to Re: Multiple Brains?
If you don't have an account, just leave the password field blank.
You don't have to do that. I've done this sort of thing in my dmods before including with echoes. Look at some of the scripts such as ghost1.c below.
It is even simpler for a non-directional sprite.
void main(void)
{
preload_seq(876);
int &crap = random(3, 3);
sp_speed(¤t_sprite, &crap);
sp_brain(¤t_sprite, 9);
sp_base_walk(¤t_sprite, -1);
sp_touch_damage(¤t_sprite, 6);
sp_hitpoints(¤t_sprite, 12);
sp_defense(¤t_sprite, 3);
sp_exp(¤t_sprite, 8);
//sp_target(¤t_sprite, &enemy_sprite);
int &dir;
int &fr = 0;
int &x1 = 1;
int &ct1 = 0;
toploop:
&dir = sp_dir(¤t_sprite, -1);
&fr = 0;
if(&dir == 1)
{
&fr = 0;
}
if(&dir == 4)
{
&fr = 0;
}
if(&dir == 3)
{
&fr = 2;
}
if(&dir == 2)
{
&fr = 2;
}
if(&dir == 7)
{
&fr = 4;
}
if(&dir == 8)
{
&fr = 4;
}
if(&dir == 9)
{
&fr = 6;
}
if(&dir == 6)
{
&fr = 6;
}
&fr += &x1;
sp_pframe(¤t_sprite, &fr);
&ct1 += 1;
if(&ct1 > 2)
{
&ct1 = 0;
&x1 += 1;
}
if(&x1 > 2)
{
&x1 = 1;
}
wait(33);
wait(99);
goto toploop;
}
void die( void )
{
int &hold = sp_editor_num(¤t_sprite);
if (&hold != 0)
editor_type(&hold, 6);
&save_x = sp_x(¤t_sprite, -1);
&save_y = sp_y(¤t_sprite, -1);
int &junk = create_sprite(&save_x, &save_y, 0, 876, 9);
sp_que(&junk, 1);
external("emake","small");
}
It is even simpler for a non-directional sprite.
void main(void)
{
preload_seq(876);
int &crap = random(3, 3);
sp_speed(¤t_sprite, &crap);
sp_brain(¤t_sprite, 9);
sp_base_walk(¤t_sprite, -1);
sp_touch_damage(¤t_sprite, 6);
sp_hitpoints(¤t_sprite, 12);
sp_defense(¤t_sprite, 3);
sp_exp(¤t_sprite, 8);
//sp_target(¤t_sprite, &enemy_sprite);
int &dir;
int &fr = 0;
int &x1 = 1;
int &ct1 = 0;
toploop:
&dir = sp_dir(¤t_sprite, -1);
&fr = 0;
if(&dir == 1)
{
&fr = 0;
}
if(&dir == 4)
{
&fr = 0;
}
if(&dir == 3)
{
&fr = 2;
}
if(&dir == 2)
{
&fr = 2;
}
if(&dir == 7)
{
&fr = 4;
}
if(&dir == 8)
{
&fr = 4;
}
if(&dir == 9)
{
&fr = 6;
}
if(&dir == 6)
{
&fr = 6;
}
&fr += &x1;
sp_pframe(¤t_sprite, &fr);
&ct1 += 1;
if(&ct1 > 2)
{
&ct1 = 0;
&x1 += 1;
}
if(&x1 > 2)
{
&x1 = 1;
}
wait(33);
wait(99);
goto toploop;
}
void die( void )
{
int &hold = sp_editor_num(¤t_sprite);
if (&hold != 0)
editor_type(&hold, 6);
&save_x = sp_x(¤t_sprite, -1);
&save_y = sp_y(¤t_sprite, -1);
int &junk = create_sprite(&save_x, &save_y, 0, 876, 9);
sp_que(&junk, 1);
external("emake","small");
}