Yo're dead.. (that's your que!)
Does anybody know why this script isn't fully working? It runs up to Dink saying "Now what?" But then just stops. Please help! (I realise Dink is saying all that)
VOID DIE(VOID)
{
freeze(1);
say_stop("Okay, now what??",1);
wait(500);
say_stop("`#Hmmm...",1);
wait(500);
say_stop("`#I'll try to make a plan here, you just, uh... wander around a bit",&1);
wait(500);
say_stop("(ehh.. She'll make the plan... like we'll ever get outta here with her in charge...) OK!",1);
screenlock(0);
&story == 1;
}
VOID DIE(VOID)
{
freeze(1);
say_stop("Okay, now what??",1);
wait(500);
say_stop("`#Hmmm...",1);
wait(500);
say_stop("`#I'll try to make a plan here, you just, uh... wander around a bit",&1);
wait(500);
say_stop("(ehh.. She'll make the plan... like we'll ever get outta here with her in charge...) OK!",1);
screenlock(0);
&story == 1;
}
You have a &1 when it should just be 1.
ohh... *clubs himself with rusty knife, with nails sticking out of it* How can I be so careless...
You have a too long die() procedure, I think. Really it can ork for a very short time, so your first wait() is the end of it
Too long? Now I feel slightly less humiliated, can I have it trigger different scripts before it gets too long?
Thanks!
Thanks!
It's not the actual length that matters. The thing is you can't have any kind of deley in a die procedure (including say_stop) or by the time it's done waiting the thing is dead and the script is killed.
Try something like this:
//a new script deadnow.c
void main( void )
{
freeze(1);
say_stop("Okay, now what??",1);
wait(500);
say_stop("`#Hmmm...",1);
wait(500);
say_stop("`#I'll try to make a plan here, you just, uh... wander around a bit", 1);
wait(500);
say_stop("(ehh.. She'll make the plan... like we'll ever get outta here with her in charge...) OK!",1);
screenlock(0);
&story = 1;
kill_this_task();
//Don't forget that part.
}
Then in the die procedure, just do:
spawn("deadnow");
Try something like this:
//a new script deadnow.c
void main( void )
{
freeze(1);
say_stop("Okay, now what??",1);
wait(500);
say_stop("`#Hmmm...",1);
wait(500);
say_stop("`#I'll try to make a plan here, you just, uh... wander around a bit", 1);
wait(500);
say_stop("(ehh.. She'll make the plan... like we'll ever get outta here with her in charge...) OK!",1);
screenlock(0);
&story = 1;
kill_this_task();
//Don't forget that part.
}
Then in the die procedure, just do:
spawn("deadnow");
Or just
void die ()
{
goto dead;
}
void dead ()
{
dead:
stuffhere;
say_morestuffhere;
UNFREEZE!;
Its true you must use another script. Either spawn one or have a room sript look for the &story change in a loop. But don't forget to unfreeze.
}
void die ()
{
goto dead;
}
void dead ()
{
dead:
stuffhere;
say_morestuffhere;
UNFREEZE!;
Its true you must use another script. Either spawn one or have a room sript look for the &story change in a loop. But don't forget to unfreeze.
}
I don't think that's gonna solve anything, cause the problem is that when the sprite dies, so does the script (after die has started), so that would just be cut off as well. I believe.
The script dies and its life is just enough for 1-2 lines (no wait(), of course)
Look at en-mog.c and at his death procedure in the "original" Dink.
("original", since I really hate that expression.)
("original", since I really hate that expression.)
So, nobody notice?
Its
&story = 1;
NOT NOT NOT
&story == 1;
when you want to change it...
Its
&story = 1;
NOT NOT NOT
&story == 1;
when you want to change it...
OOOHNOOO EasyDinkC sux0rs because it has the same problem. It puts &crap = 69; instead of &crap == 69;.
Well alright, I'll admit that EDC rulezzzz...
