Reply to Re: emake
If you don't have an account, just leave the password field blank.
I use scripts that are almost equal to the original game for this, and Cedit says they are ok. So I think it isn't in the scripts...
but for the scripts:
[a pillbug (en-pill0)]
//pillbug brain
void main( void )
{
sp_brain(¤t_sprite, 9);
sp_speed(¤t_sprite, 1);
sp_exp(¤t_sprite, 5);
sp_base_walk(¤t_sprite, 130);
sp_base_death(¤t_sprite, 140);
sp_touch_damage(¤t_sprite, 1);
sp_hitpoints(¤t_sprite, 8);
preload_seq(131);
preload_seq(133);
preload_seq(141);
preload_seq(143);
if (random(2,1) == 1)
{
sp_target(¤t_sprite, 1);
}
}
void hit( void )
{
sp_target(¤t_sprite, &enemy_sprite);
playsound(30, 21050, 4000, ¤t_sprite, 0);
//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","small");
}
[emake]
//make, contains info on making items given after a monster dies
void medium( void )
{
int &mcrap = random(20,1);
if (&mcrap == 1)
{
//lets give 'em a small heart
int &crap = create_sprite(&save_x, &save_y, 6, 54, 1);
sp_script(&crap, "sheart");
return;
}
if (&mcrap == 2)
{
//lets give 'em a large heart
int &crap = create_sprite(&save_x, &save_y, 0, 54, 1);
sp_script(&crap, "heart");
return;
}
if (&mcrap == 3)
{
&mcrap = random(3,1);
if (&mcrap == 1)
{
//give them food type 1
int &crap = create_sprite(&save_x, &save_y, 6, 421, 1);
sp_script(&crap, "sfood");
}
if (&mcrap == 2)
{
//give them food type 2
int &crap = create_sprite(&save_x, &save_y, 6, 421, 2);
sp_script(&crap, "sfood");
}
if (&mcrap == 3)
{
//give them food type 3
int &crap = create_sprite(&save_x, &save_y, 6, 421, 7);
sp_script(&crap, "sfood");
}
if (&mcrap == 4)
{
//give them food type 4
int &crap = create_sprite(&save_x, &save_y, 6, 421, 8);
sp_script(&crap, "sfood");
}
return;
}
//all others lets give 'em a random amount of gold
int &crap = create_sprite(&save_x, &save_y, 0, 178, 4);
sp_script(&crap, "mgold");
debug("exiting medium emake after creating gold");
return;
}
void large( void )
{
int &mcrap = random(20,1);
if (&mcrap == 2)
{
//lets give 'em a large heart
int &crap = create_sprite(&save_x, &save_y, 6, 54, 1);
sp_script(&crap, "heart");
return;
}
if (&mcrap == 3)
{
&mcrap = random(3,1);
if (&mcrap == 1)
{
//give them food type 1
int &crap = create_sprite(&save_x, &save_y, 6, 421, 1);
sp_script(&crap, "sfood");
}
if (&mcrap == 2)
{
//give them food type 2
int &crap = create_sprite(&save_x, &save_y, 6, 421, 2);
sp_script(&crap, "sfood");
}
if (&mcrap == 3)
{
//give them food type 3
int &crap = create_sprite(&save_x, &save_y, 6, 421, 7);
sp_script(&crap, "sfood");
}
if (&mcrap == 4)
{
//give them food type 4
int &crap = create_sprite(&save_x, &save_y, 6, 421, 8);
sp_script(&crap, "sfood");
}
return;
}
//lets give 'em a random amount of gold
int &crap = create_sprite(&save_x, &save_y, 6, 178, 4);
sp_script(&crap, "lgold");
}
void xlarge( void )
{
int &mcrap = random(20,1);
if (&mcrap == 2)
{
//lets give 'em a large heart
int &crap = create_sprite(&save_x, &save_y, 6, 54, 1);
sp_script(&crap, "heart");
return;
}
if (&mcrap == 3)
{
&mcrap = random(3,1);
if (&mcrap == 1)
{
//give them food type 1
int &crap = create_sprite(&save_x, &save_y, 6, 421, 1);
sp_script(&crap, "sfood");
}
if (&mcrap == 2)
{
//give them food type 2
int &crap = create_sprite(&save_x, &save_y, 6, 421, 2);
sp_script(&crap, "sfood");
}
if (&mcrap == 3)
{
//give them food type 3
int &crap = create_sprite(&save_x, &save_y, 6, 421, 7);
sp_script(&crap, "sfood");
}
if (&mcrap == 4)
{
//give them food type 4
int &crap = create_sprite(&save_x, &save_y, 6, 421, 8);
sp_script(&crap, "sfood");
}
return;
}
debug("Making silver");
if (&story == 5)
{
//lets give 'em a random amount of silver
int &crap = create_sprite(&save_x, &save_y, 0, 195, 29);
sp_script(&crap, "lsilver");
} else
{
//give 'em gold
int &crap = create_sprite(&save_x, &save_y, 6, 178, 4);
sp_script(&crap, "gold200");
}
}
void small( void )
{
int &mcrap = random(3,1);
if (&mcrap == 1)
{
//lets give 'em a small heart
int &crap = create_sprite(&save_x, &save_y, 6, 54, 1);
sp_script(&crap, "sheart");
return;
}
return;
}
void lheart( void )
{
//lets give 'em a large heart
int &crap = create_sprite(&save_x, &save_y, 6, 54, 1);
sp_script(&crap, "heart");
return;
}
void xlgold( void )
{
//lets give 'em a large heart
int &crap = create_sprite(&save_x, &save_y, 0, 178, 4);
sp_script(&crap, "xlgold");
return;
}
[sheart]
//this script fills life up, touch_damage must be set to -1. (run script mode)
void main( )
{
sp_seq(¤t_sprite, 54);
sp_frame(¤t_sprite, 1); //so the seq will start
sp_brain(¤t_sprite, 6);
sp_touch_damage(¤t_sprite, -1);
sp_nohit(¤t_sprite, 1);
}
void touch( void )
{
&life += 3;
if (&life > &lifemax)
{
&life = &lifemax;
}
Playsound(10,22050,0,0,0);
sp_brain_parm(¤t_sprite, 10);
sp_brain(¤t_sprite, 12);
sp_touch_damage(¤t_sprite, 0);
sp_timing(¤t_sprite, 0);
//kill this item so it doesn't show up again for this player
int &hold = sp_editor_num(¤t_sprite);
if (&hold != 0)
editor_type(&hold, 1);
}
Also, debug says it loads the script sheart when a monster dies, but I don't see it on the screen. maybe it is in the graphics or something?
but for the scripts:
[a pillbug (en-pill0)]
//pillbug brain
void main( void )
{
sp_brain(¤t_sprite, 9);
sp_speed(¤t_sprite, 1);
sp_exp(¤t_sprite, 5);
sp_base_walk(¤t_sprite, 130);
sp_base_death(¤t_sprite, 140);
sp_touch_damage(¤t_sprite, 1);
sp_hitpoints(¤t_sprite, 8);
preload_seq(131);
preload_seq(133);
preload_seq(141);
preload_seq(143);
if (random(2,1) == 1)
{
sp_target(¤t_sprite, 1);
}
}
void hit( void )
{
sp_target(¤t_sprite, &enemy_sprite);
playsound(30, 21050, 4000, ¤t_sprite, 0);
//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","small");
}
[emake]
//make, contains info on making items given after a monster dies
void medium( void )
{
int &mcrap = random(20,1);
if (&mcrap == 1)
{
//lets give 'em a small heart
int &crap = create_sprite(&save_x, &save_y, 6, 54, 1);
sp_script(&crap, "sheart");
return;
}
if (&mcrap == 2)
{
//lets give 'em a large heart
int &crap = create_sprite(&save_x, &save_y, 0, 54, 1);
sp_script(&crap, "heart");
return;
}
if (&mcrap == 3)
{
&mcrap = random(3,1);
if (&mcrap == 1)
{
//give them food type 1
int &crap = create_sprite(&save_x, &save_y, 6, 421, 1);
sp_script(&crap, "sfood");
}
if (&mcrap == 2)
{
//give them food type 2
int &crap = create_sprite(&save_x, &save_y, 6, 421, 2);
sp_script(&crap, "sfood");
}
if (&mcrap == 3)
{
//give them food type 3
int &crap = create_sprite(&save_x, &save_y, 6, 421, 7);
sp_script(&crap, "sfood");
}
if (&mcrap == 4)
{
//give them food type 4
int &crap = create_sprite(&save_x, &save_y, 6, 421, 8);
sp_script(&crap, "sfood");
}
return;
}
//all others lets give 'em a random amount of gold
int &crap = create_sprite(&save_x, &save_y, 0, 178, 4);
sp_script(&crap, "mgold");
debug("exiting medium emake after creating gold");
return;
}
void large( void )
{
int &mcrap = random(20,1);
if (&mcrap == 2)
{
//lets give 'em a large heart
int &crap = create_sprite(&save_x, &save_y, 6, 54, 1);
sp_script(&crap, "heart");
return;
}
if (&mcrap == 3)
{
&mcrap = random(3,1);
if (&mcrap == 1)
{
//give them food type 1
int &crap = create_sprite(&save_x, &save_y, 6, 421, 1);
sp_script(&crap, "sfood");
}
if (&mcrap == 2)
{
//give them food type 2
int &crap = create_sprite(&save_x, &save_y, 6, 421, 2);
sp_script(&crap, "sfood");
}
if (&mcrap == 3)
{
//give them food type 3
int &crap = create_sprite(&save_x, &save_y, 6, 421, 7);
sp_script(&crap, "sfood");
}
if (&mcrap == 4)
{
//give them food type 4
int &crap = create_sprite(&save_x, &save_y, 6, 421, 8);
sp_script(&crap, "sfood");
}
return;
}
//lets give 'em a random amount of gold
int &crap = create_sprite(&save_x, &save_y, 6, 178, 4);
sp_script(&crap, "lgold");
}
void xlarge( void )
{
int &mcrap = random(20,1);
if (&mcrap == 2)
{
//lets give 'em a large heart
int &crap = create_sprite(&save_x, &save_y, 6, 54, 1);
sp_script(&crap, "heart");
return;
}
if (&mcrap == 3)
{
&mcrap = random(3,1);
if (&mcrap == 1)
{
//give them food type 1
int &crap = create_sprite(&save_x, &save_y, 6, 421, 1);
sp_script(&crap, "sfood");
}
if (&mcrap == 2)
{
//give them food type 2
int &crap = create_sprite(&save_x, &save_y, 6, 421, 2);
sp_script(&crap, "sfood");
}
if (&mcrap == 3)
{
//give them food type 3
int &crap = create_sprite(&save_x, &save_y, 6, 421, 7);
sp_script(&crap, "sfood");
}
if (&mcrap == 4)
{
//give them food type 4
int &crap = create_sprite(&save_x, &save_y, 6, 421, 8);
sp_script(&crap, "sfood");
}
return;
}
debug("Making silver");
if (&story == 5)
{
//lets give 'em a random amount of silver
int &crap = create_sprite(&save_x, &save_y, 0, 195, 29);
sp_script(&crap, "lsilver");
} else
{
//give 'em gold
int &crap = create_sprite(&save_x, &save_y, 6, 178, 4);
sp_script(&crap, "gold200");
}
}
void small( void )
{
int &mcrap = random(3,1);
if (&mcrap == 1)
{
//lets give 'em a small heart
int &crap = create_sprite(&save_x, &save_y, 6, 54, 1);
sp_script(&crap, "sheart");
return;
}
return;
}
void lheart( void )
{
//lets give 'em a large heart
int &crap = create_sprite(&save_x, &save_y, 6, 54, 1);
sp_script(&crap, "heart");
return;
}
void xlgold( void )
{
//lets give 'em a large heart
int &crap = create_sprite(&save_x, &save_y, 0, 178, 4);
sp_script(&crap, "xlgold");
return;
}
[sheart]
//this script fills life up, touch_damage must be set to -1. (run script mode)
void main( )
{
sp_seq(¤t_sprite, 54);
sp_frame(¤t_sprite, 1); //so the seq will start
sp_brain(¤t_sprite, 6);
sp_touch_damage(¤t_sprite, -1);
sp_nohit(¤t_sprite, 1);
}
void touch( void )
{
&life += 3;
if (&life > &lifemax)
{
&life = &lifemax;
}
Playsound(10,22050,0,0,0);
sp_brain_parm(¤t_sprite, 10);
sp_brain(¤t_sprite, 12);
sp_touch_damage(¤t_sprite, 0);
sp_timing(¤t_sprite, 0);
//kill this item so it doesn't show up again for this player
int &hold = sp_editor_num(¤t_sprite);
if (&hold != 0)
editor_type(&hold, 1);
}
Also, debug says it loads the script sheart when a monster dies, but I don't see it on the screen. maybe it is in the graphics or something?