The Dink Network

Reply to Re: Picking stuff up so it never comes back

If you don't have an account, just leave the password field blank.
Username:
Password:
Subject:
Antispam: Enter Dink Smallwood's last name (surname) below.
Formatting: :) :( ;( :P ;) :D >( : :s :O evil cat blood
Bold font Italic font hyperlink Code tags
Message:
 
 
October 3rd 2010, 09:41 AM
custom_iplaydink.gif
iplaydink
Peasant He/Him Sweden
Hmm.. 
void talk(void)
{
freeze(1);
if (&story < 7)
{
say("Hey, a skull! I wonder what it's doing here...", 1);
}

if (&story == 7)
{
say_stop("A skull is a type of bone, right?", 1);
wait(500);
//following line will make the sprite invisible for now
//you are still able to talk to it though
//so we will have to remove it later. (If we do it now the script will crash as
//it's attached to that sprite.)
sp_nodraw(&current_sprite, 1);
//now increese the global
&wdbone += 1;
//And let's make sure it doesn't come back
int &hold = sp_editor_num(&current_sprite);
if (&hold != 0)
{
      editor_type(&hold, 1); 
}
//That will make it stay gone..

say_stop("`%<Got Skull>", 1);
wait(500);
say_stop("That brought my total number of bones up to &wdbone", 1);
unfreeze(1);
//Now.. the sprite is still here, even though it's invisible and wont come back.
//let's remove it.
//but first make sure it's not hard, if it was before.
sp_hard(&current_sprite, 1);
draw_hard_map();
sp_kill(&current_sprite, 1);
}

unfreeze(1);
}


Another way would be adding a void main with:
if(&wdbone > 1)
{
sp_hard(&current_sprite, 1);
draw_hard_map();
sp_kill(&current_sprite, 1);
}


NOTE: I haven't tested those scripts so you might wanna read them through for typos.

EDIT: I also thought the editor_type(&current_sprite, 1); would work at first but appearntly sp_editor_num isn't the same as the sprite number. Weird.