Project X Forums
http://px.worms2d.info/forum/

Is it possible to make a script that....
http://px.worms2d.info/forum/viewtopic.php?f=15&t=494
Page 1 of 1

Author:  Twicken [ Tue Oct 02, 2012 1:30 pm ]
Post subject:  Is it possible to make a script that....

is it possible to make a script that overrides sprites in game? what i mean is, is it possible to make the script check weapon of current worm "sticky bomb" then if true over ride sprite 700 with image "sb.png" in real time? we are fast running out of sprites to override and ive been getting some weird glitches. so if you can override sprites constantly in game when a weapon is changed only 1 sprite number would ever be needed, eg "700"

Author:  Twicken [ Tue Oct 02, 2012 1:44 pm ]
Post subject:  Re: Is it possible to make a script that....

this doesnt work lol

//List of sprites
CSprite* stick;


void SPRITES::InitGraphic()
{
//Loading picture data
CFile *f;
f = GetAttachment("sb.png");
stick = LoadSprite(f, 12, 0);


}
//Let's override the sprites!
override void CWorm::FireFinal(CWeapon* Weap,CShootDesc* Desc)
{
if(Weap->CheckName("Sticky Bomb"))
{
SetSpriteOverride(999, stick);
}
super;
}

Author:  StepS [ Tue Oct 02, 2012 3:05 pm ]
Post subject:  Re: Is it possible to make a script that....

SetSpriteOverride works only once... We can't override the Index otherwise.

Author:  Resurrection [ Sun Jul 31, 2016 11:42 pm ]
Post subject:  Re: Is it possible to make a script that....

StepS wrote:
SetSpriteOverride works only once... We can't override the Index otherwise.


Why is this? I've come to a halt because i'm not sure how i can have two version of mole bomb in game.
It works only one time, BUT IT WORKS WHENEVER. For example if you wait 10 turns and then call Override before the sprite is in memory it will be overwritten. If there was some way to remove the sprite from memory and allow another override..


Code:
override void CWorm::FireFinal(CWeapon* Weap, CShootDesc* Desc)
{
   if(Weap->CheckName("Mole Bomb"))
   {
      SetSpriteOverride(158 , mfn);
        SetSpriteOverride(159 , mn1);
        SetSpriteOverride(160 , mn2);
        SetSpriteOverride(161 , mn3);
        SetSpriteOverride(166 , mwn);
       
   }
   else if(Weap->CheckName("Super Mole Bomb"))
   {
        SetSpriteOverride(158 , mfk);
        SetSpriteOverride(159 , mk1);
        SetSpriteOverride(160 , mk2);
        SetSpriteOverride(161 , mk3);
        SetSpriteOverride(166 , mwk);
   }
   
      super;
   
}

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/