simple stupid question.
when using variables to make people say differnt things, my script makes them imediatly say the next thing on the list, without stopping the conversation whn i want the conversation to stop in the middle. thanks.
Sounds like you need to use say_stop(""); instead of say("");
sometimes a wait(500); after looks more natural too.
sometimes a wait(500); after looks more natural too.
October 2nd 2004, 09:12 AM
spacehoggy
sorry, i was unclear. what i meant was this;
void talk(void)
{
if (&ultrabeaver == 1)
{
say_stop("wow, that sure was one episode of beaver smiting.", &cuurent_Sprite);
&ultrabeaver = 2;
}
}
}
*this is were the problem is, i want the conversation to stop, until you go back to the man and talk to him, but it just continues along the script like some biligarent turd.
{
{
if (&ultrabeaver == 2)
{
say_stop("i've already said the thingy", &cuurent_Sprite);
}
}
}
void talk(void)
{
if (&ultrabeaver == 1)
{
say_stop("wow, that sure was one episode of beaver smiting.", &cuurent_Sprite);
&ultrabeaver = 2;
}
}
}
*this is were the problem is, i want the conversation to stop, until you go back to the man and talk to him, but it just continues along the script like some biligarent turd.
{
{
if (&ultrabeaver == 2)
{
say_stop("i've already said the thingy", &cuurent_Sprite);
}
}
}
You set &ultrabeaver to 2, so yes the next compare (if) would run too.
If you reverse them, the logic will be right.
Also you had too many brackets(unless you had other stuff in there you didn't want to post)
And it may help to keep the variable name to less than 8 charecters.
void talk(void)
{
if (&ultbv == 2)
{
say_stop("i've already said the thingy", ¤t_sprite);
}
if (&ultbv == 1)
{
say_stop("wow, that sure was one episode of beaver smiting.", &cuurent_Sprite);
&ultbv = 2;
}
}
If you reverse them, the logic will be right.
Also you had too many brackets(unless you had other stuff in there you didn't want to post)
And it may help to keep the variable name to less than 8 charecters.
void talk(void)
{
if (&ultbv == 2)
{
say_stop("i've already said the thingy", ¤t_sprite);
}
if (&ultbv == 1)
{
say_stop("wow, that sure was one episode of beaver smiting.", &cuurent_Sprite);
&ultbv = 2;
}
}
Though jedisecret's message didn't quite come out as intended due to the loveliness of how this board interprets some things, he is correct on one count; "&cuurent_Sprite" is a typo.
ahh, thanks ric. it was a bracket error, the script i just made is'nt in my dmod, its just an example of some sort of wierd twisted script id make. thanks again.
actualy, another question if you guys dont mind. how do you make it so when people die thet are permanently dead? thanks.
If he should dissapear when &story is above a certain #, then you could start your script like this:
void main ()
{
if(&story > 3)
{
sp_active(¤t_sprite,0);
}
ect...
or you could use the room script to set the vision one without that sprite.
or if he is there independant of variables, copy the die procedure used it the original scripts. eg;
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");
}
note* editor type 6 lets that sprite come back in 5 minutes, type 1 will kill it completely.
The external proc. puts a bit of treasure there (located by &save_x and &save_y), so you could delete those last 3 lines if you don't want treasure there.
void main ()
{
if(&story > 3)
{
sp_active(¤t_sprite,0);
}
ect...
or you could use the room script to set the vision one without that sprite.
or if he is there independant of variables, copy the die procedure used it the original scripts. eg;
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");
}
note* editor type 6 lets that sprite come back in 5 minutes, type 1 will kill it completely.
The external proc. puts a bit of treasure there (located by &save_x and &save_y), so you could delete those last 3 lines if you don't want treasure there.
thanks very much. but actualy, just there now i was testing my dmod, and i could walk on all the tables with a depth que other than 0. they have to have a depth que, to fit papers on them, but you can just walk over them. is there any way to fix this?
Just let the table's depth que be 0. Check what is the tables Y coordinate. And then if you want to put a paper on the table, put the paper's depth dot to be the table's y coord + 1.
E.g if table's Y coord is 150, then the paper's depth dot would be 151.
E.g if table's Y coord is 150, then the paper's depth dot would be 151.
I knw it was like that, I have always wondered about how you find an objects depth que, I knew that it were with the y Coor, but didnt know much more. Thanks madstalker Heh I didn`t care so much so The thing I did was to put the depth que to 500 or so. Haha I`m stupid sometimes