What's wrong??!!
//Bonca..medium strength
void main( void )
{
int &mcounter;
int &mtarget;
int &mcrap;
int &assault;
int &mlife;
sp_brain(¤t_sprite, 9);
sp_speed(¤t_sprite, 1);
sp_distance(¤t_sprite, 50);
sp_timing(¤t_sprite, 33);
sp_exp(¤t_sprite, 30);
sp_base_walk(¤t_sprite, 530);
sp_base_death(¤t_sprite, 550);
sp_base_attack(¤t_sprite, 540);
sp_defense(¤t_sprite, 3);
sp_strength(¤t_sprite, 8);
sp_touch_damage(¤t_sprite, 4);
sp_hitpoints(¤t_sprite, 20);
preload_seq(531);
preload_seq(533);
preload_seq(537);
preload_seq(539);
preload_seq(551);
preload_seq(553);
preload_seq(557);
preload_seq(559);
preload_seq(542);
preload_seq(544);
preload_seq(546);
preload_seq(548);
set_callback_random("assault", 10, 0);
void hit( void )
{
playsound(29, 22050,0,¤t_sprite, 0);
sp_target(¤t_sprite, &enemy_sprite);
&assault = 1;
sp_speed(¤t_sprite,5);
//lock on to the guy who just hit us
//playsound
}
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);
external("emake","medium");
}
void attack( void )
{
playsound(31, 22050,0,¤t_sprite, 0);
&assault = 0;
sp_speed(¤t_sprite,1);
&mcounter = random(4000,0);
sp_attack_wait(¤t_sprite, &mcounter);
}
void assault(void)
{
if (&assault = 1)
{
&mtarget = sp_target(¤t_sprite,-1);
if (&mtarget > 0)
{
say("<Quick raid>",¤t_sprite);
sp_speed(¤t_sprite,5);
&mcrap = random(7,1);
if (&mcrap < 4)
{
&life = sp_hitpoints(¤t_sprite,-1);
&mlife -= 1;
sp_hitpoints(¤t_sprite,&mlife);
}
return;
}
}
}
This guy won't attack!And something else is wrong...
void main( void )
{
int &mcounter;
int &mtarget;
int &mcrap;
int &assault;
int &mlife;
sp_brain(¤t_sprite, 9);
sp_speed(¤t_sprite, 1);
sp_distance(¤t_sprite, 50);
sp_timing(¤t_sprite, 33);
sp_exp(¤t_sprite, 30);
sp_base_walk(¤t_sprite, 530);
sp_base_death(¤t_sprite, 550);
sp_base_attack(¤t_sprite, 540);
sp_defense(¤t_sprite, 3);
sp_strength(¤t_sprite, 8);
sp_touch_damage(¤t_sprite, 4);
sp_hitpoints(¤t_sprite, 20);
preload_seq(531);
preload_seq(533);
preload_seq(537);
preload_seq(539);
preload_seq(551);
preload_seq(553);
preload_seq(557);
preload_seq(559);
preload_seq(542);
preload_seq(544);
preload_seq(546);
preload_seq(548);
set_callback_random("assault", 10, 0);
void hit( void )
{
playsound(29, 22050,0,¤t_sprite, 0);
sp_target(¤t_sprite, &enemy_sprite);
&assault = 1;
sp_speed(¤t_sprite,5);
//lock on to the guy who just hit us
//playsound
}
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);
external("emake","medium");
}
void attack( void )
{
playsound(31, 22050,0,¤t_sprite, 0);
&assault = 0;
sp_speed(¤t_sprite,1);
&mcounter = random(4000,0);
sp_attack_wait(¤t_sprite, &mcounter);
}
void assault(void)
{
if (&assault = 1)
{
&mtarget = sp_target(¤t_sprite,-1);
if (&mtarget > 0)
{
say("<Quick raid>",¤t_sprite);
sp_speed(¤t_sprite,5);
&mcrap = random(7,1);
if (&mcrap < 4)
{
&life = sp_hitpoints(¤t_sprite,-1);
&mlife -= 1;
sp_hitpoints(¤t_sprite,&mlife);
}
return;
}
}
}
This guy won't attack!And something else is wrong...
With just a brief glance, I can see that
is making the script run the "assault" function every 10 milliseconds and probably interrupting everything else in the script from happening, including attacking.
set_callback_random("assault", 10, 0);
is making the script run the "assault" function every 10 milliseconds and probably interrupting everything else in the script from happening, including attacking.
But I have to make the "assault" function run often,what can I do with it?
Yes, try increasing it. You could probably even set it to 1000 or 2000 milliseconds without anyone noticing.
No,it doesn't work...
set sp_range
need } at end of main
&life should be &mlife in assault()
ps: i don't think dinkc can interrupt internal code
need } at end of main
&life should be &mlife in assault()
ps: i don't think dinkc can interrupt internal code
GOD!I made THIS mistake!This is a guilt for myself!
Still don't work...
This is the new one...
//Bonca..medium strength
void main( void )
{
int &mcounter;
int &mtarget;
int &mcrap;
int &assault;
int &mlife;
sp_brain(¤t_sprite, 9);
sp_speed(¤t_sprite, 1);
sp_distance(¤t_sprite, 50);
sp_timing(¤t_sprite, 33);
sp_exp(¤t_sprite, 30);
sp_base_walk(¤t_sprite, 530);
sp_base_death(¤t_sprite, 550);
sp_base_attack(¤t_sprite, 540);
sp_defense(¤t_sprite, 3);
sp_strength(¤t_sprite, 8);
sp_touch_damage(¤t_sprite, 4);
sp_hitpoints(¤t_sprite, 20);
preload_seq(531);
preload_seq(533);
preload_seq(537);
preload_seq(539);
preload_seq(551);
preload_seq(553);
preload_seq(557);
preload_seq(559);
preload_seq(542);
preload_seq(544);
preload_seq(546);
preload_seq(548);
set_callback_random("assault", 6000, 1);
}
void hit( void )
{
playsound(29, 22050,0,¤t_sprite, 0);
sp_target(¤t_sprite, &enemy_sprite);
&assault = 1;
sp_speed(¤t_sprite,5);
//lock on to the guy who just hit us
//playsound
}
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);
external("emake","medium");
}
void attack( void )
{
playsound(31, 22050,0,¤t_sprite, 0);
&assault = 0;
sp_speed(¤t_sprite,1);
&mcounter = random(4000,0);
sp_attack_wait(¤t_sprite, &mcounter);
}
void assault(void)
{
if (&assault == 1)
{
&mtarget = sp_target(¤t_sprite,-1);
if (&mtarget > 0)
{
say("<Quick raid>",¤t_sprite);
&mcrap = random(7,1);
if (&mcrap < 4)
{
&mlife = sp_hitpoints(¤t_sprite,-1);
&mlife -= 1;
sp_hitpoints(¤t_sprite,&mlife);
}
return;
}
}
}
This is the new one...
//Bonca..medium strength
void main( void )
{
int &mcounter;
int &mtarget;
int &mcrap;
int &assault;
int &mlife;
sp_brain(¤t_sprite, 9);
sp_speed(¤t_sprite, 1);
sp_distance(¤t_sprite, 50);
sp_timing(¤t_sprite, 33);
sp_exp(¤t_sprite, 30);
sp_base_walk(¤t_sprite, 530);
sp_base_death(¤t_sprite, 550);
sp_base_attack(¤t_sprite, 540);
sp_defense(¤t_sprite, 3);
sp_strength(¤t_sprite, 8);
sp_touch_damage(¤t_sprite, 4);
sp_hitpoints(¤t_sprite, 20);
preload_seq(531);
preload_seq(533);
preload_seq(537);
preload_seq(539);
preload_seq(551);
preload_seq(553);
preload_seq(557);
preload_seq(559);
preload_seq(542);
preload_seq(544);
preload_seq(546);
preload_seq(548);
set_callback_random("assault", 6000, 1);
}
void hit( void )
{
playsound(29, 22050,0,¤t_sprite, 0);
sp_target(¤t_sprite, &enemy_sprite);
&assault = 1;
sp_speed(¤t_sprite,5);
//lock on to the guy who just hit us
//playsound
}
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);
external("emake","medium");
}
void attack( void )
{
playsound(31, 22050,0,¤t_sprite, 0);
&assault = 0;
sp_speed(¤t_sprite,1);
&mcounter = random(4000,0);
sp_attack_wait(¤t_sprite, &mcounter);
}
void assault(void)
{
if (&assault == 1)
{
&mtarget = sp_target(¤t_sprite,-1);
if (&mtarget > 0)
{
say("<Quick raid>",¤t_sprite);
&mcrap = random(7,1);
if (&mcrap < 4)
{
&mlife = sp_hitpoints(¤t_sprite,-1);
&mlife -= 1;
sp_hitpoints(¤t_sprite,&mlife);
}
return;
}
}
}
Er...Although I hope it would work,but it failed again...
How about adding
EDIT: Hmmm... I might have understood your problem wrong. Well, you could still try this.
sp_target(¤t_sprite, 1);
EDIT: Hmmm... I might have understood your problem wrong. Well, you could still try this.
You seems do.My bonca doesn't do its attack animation,and it wasn't running its "assault" procedure...