Jump to content

Photo

SFR - RECRUITING SCRIPTERS!!!


  • Please log in to reply
5 replies to this topic

#1 Bayta

Bayta

    Follower of Destiny

  • Members
  • Real Name:Robin Evans
  • Gender:Female
  • Location:Suffolk County, NY

Posted 08 April 2009 - 04:09 PM

Well, I've been working a bit on Star Fox: Retribution for the past few days. I've gotten (most of?) the Arwing-related scripts done, but I've still got tons of enemy-movement scripts to do. Right now, here's the scripts I've already gotten done:


Arwing scripts: Movement, Blaster, Nova Bombs
Background scripts: Animated Starfield, Animated background ala Xevious
Team member Arwing scripts: Enter from bottom, Enter from side
Enemy scripts: All sorts of different formations/movement patterns

Key: Done, Not done, Not tested

So anyone who wants to help with scripts of any kind, specifically the ones mentioned above, please, say something! I can't really do much without enemy scripts except try to come up with new story-based ideas and plot twists, work on cutscenes, and recruit some other people for voice acting. icon_wink.gif

Edited by Beta Link, 20 April 2009 - 04:23 PM.


#2 lucas92

lucas92

    Defender

  • Members
  • Gender:Unspecified

Posted 08 April 2009 - 04:15 PM

I can help. Just tell us what the scripts should do with a picture or something. icon_biggrin.gif

#3 Joe123

Joe123

    Retired

  • Members
  • Gender:Male

Posted 08 April 2009 - 04:40 PM

So what do Nova Bombs do exactly?

#4 Bayta

Bayta

    Follower of Destiny

  • Members
  • Real Name:Robin Evans
  • Gender:Female
  • Location:Suffolk County, NY

Posted 08 April 2009 - 08:41 PM

Alright, detail time.

- Nova Bombs: I take it you've never played the original Star Fox, Joe? It should be an item script that spawns a projectile bomb at the same location as FFC 32 (the Arwing), and moves upward until it reaches a certain Y value, at which point it will explode.
- Animated background: a fullscreen image that moves in a downward direction, and each tile/combo in the image goes back to the top when it reaches the bottom, and continues to move downward. Come to think of it, I could make this myself by slightly editing the starfield script I already made.
- Allies: an FFC that is spawned outside the screen, but moves onto the screen either via the side, or via the bottom, depending on where it was spawned. When it's inside the screen, within a certain area, it will either A - move around randomly, firing LWeapons upward, and after some number of frames, move back out of the screen. B - It stays in one position, and shoots upward, and then moves back off the screen... Yeah, kinda complicated. >_> I really do need ZQuest open to explain it in detail.
- Enemies: This part's worse. FFC that has an enemy attached to it. They are spawned slightly above the screen. They fire some kind of EWeapon downward every... I dunno, 20 frames? Maybe that should be a D variable. While some of these FFCs will just move downward at a slight angle, some will have some sort of complicated movement pattern. Some, when they are spawned, will move downward until it reaches a certain y value, at which point it will start moving in a sort of zigzag pattern downward. Some will move in from the side, and home in on FFC 32 (or Link, they're both at the same location). And some, will move in a sort of circular/figure-8 pattern, and after x frames, will move downward off the screen. Ever played the challenge stages in Galaga? I'm trying to go for something like that, but you can actually get hurt, and it's not quite as fast.

I'm capable of doing most of these scripts myself, but it's an extremely daunting task, I'm sure everyone knows, to have to script an entire shooting system like this one yourself. >_< And to be quite honest, I haven't yet done graphics for enemies, although I'll have a sort of generic enemy fighter done in a bit. The allies' ships are all Arwings, so I've already done all their graphics.

Also, here's the current quest file. In the area I've given you to move around in, you can... Well, move, shoot, and look at the pretty stars. But it'll give you more of an idea of what I'm talking about when I describe some of these scripts.



#5 lucas92

lucas92

    Defender

  • Members
  • Gender:Unspecified

Posted 10 April 2009 - 10:05 AM

I'm not quite sure if that's what you wanted but there's the nova bomb...
Haven't tested it out, I'm lazy. icon_razz.gif

CODE
import "std.zh"
//The LW_SCRIPT1 is used by novaBombs

// the minimum delay to wait before using an another
const int NOVABMB_COUNTER = 60;
// the speed of the NovaBomb
const int NOVABMB_VY = -1;
// the starting tile of the NovaBomb
const int NOVABMB_TILE = 0;
// the animation speed of the NovaBomb
const int NOVABMB_ANIM = 5;
// the number of frames
const int NOVABMB_FRAMES = 2;
// the CSET of the novaBomb
const int NOVABMB_CSET = 5;
// the delay of the novaBomb explosion in frames
const int NOVABMB_DELAY = 600;
// the growing speed of the circle
const int EXPLOSION_SPEED = 2;
// the max Radius of the explosion in pixels
const int EXPLOSION_MAXRADIUS = 200;
// the animation speed of the colors of the explosion in frames
const int EXPLOSION_ANIMSPEED = 240;

int NovaBombCounter = NOVABMB_COUNTER;

int framesCounter;

//Enlarge the index if there is need to. This one is to determine the radius of the novaBomb explosions
int Radius[32];

//the colours of the explosion
int Color[4];
Color[0] = 0;
Color[1] = 1;
Color[2] = 2;
Color[3] = 3;
int CurrentColor = 0;

item script NovaBomb
{
    void run()
    {
        if(NovaBombCounter<=0)
        {
            CreateNovaBomb(NOVABMB_VY);
            NovaBombCounter = NOVABMB_COUNTER;
        }
    }
}
global script slot2
{
    void run()
    {
        while(true)
        {
            for(int i = 0;i < Screen->NumLWeapons();i++)
            {
                lweapon novaBomb = Screen->LoadLWeapon(i);
                if(novaBomb->ID == LW_SCRIPT1)
                    novaBomb->Misc[0] --;
                if(novaBomb->Misc[0]<=0)
                    EraseNovaBomb(i);
                if(Radius[i]>0)
                    Explode(novaBomb->X,novaBomb->Y,i);
            }
            Waitframe();
        }
    }
}
void CreateNovaBomb(float vy)
{
    ffc airWing = Screen->LoadFFC(32);
    lweapon novaBomb = Screen->CreateLWeapon(LW_SCRIPT1);
    novaBomb->X = airWing->X+airWing->TileWidth/2;
    novaBomb->Y = airWing->Y - 16;
    novaBomb->Vy = vy;
    novaBomb->OriginalTile = NOVABMB_TILE;
    novaBomb->OriginalCSet = NOVABMB_CSET;
    novaBomb->ASpeed = NOVABMB_ANIM;
    novaBomb->NumFrames = NOVABMB_FRAMES;
    novaBomb->Misc[0] = NOVABMB_DELAY;
}
void EraseNovaBomb(int l)
{
    lweapon explosion = Screen->LoadLWeapon(l);
    lweapon->Vy = 0;
    lweapn->OriginalTile = 0;
    radius[l] = 1;
}
void Explode(int x,int y,int l)
{
    lweapon Explosion = Screen->LoadLWeapon(l);
    Screen->DrawCircle(5, Explosion->X, Explosion->Y, Radius[l], Color[CurrentColor],1, 0, 0, 0, true,64);
    Radius[l]+=EXPLOSION_SPEED;
    if(Radius[1]>=EXPLOSION_MAXRADIUS)
    {
        Radius[l] = 0;
        Explosion->X = 400;
        for(int i=0;i<Screen->NumNPCs();i++)
        {
            npc enemy = Screen->LoadNPC(i);
            if(Distance(Explosion->X,Explosion->Y,enemy->X,enemy->Y)<= EXPLOSION_MAXRADIUS)
                enemy->HP = 0;
        }
    }
    framesCounter++;
    if(framesCounter > EXPLOSION_ANIMSPEED)
    {
        framesCounter = 0;
        CurrentColor ++;
        if(CurrentColor>3)
            CurrentColor = 0;
    }
}

Edited by lucas92, 10 April 2009 - 04:54 PM.


#6 Bayta

Bayta

    Follower of Destiny

  • Members
  • Real Name:Robin Evans
  • Gender:Female
  • Location:Suffolk County, NY

Posted 10 April 2009 - 05:43 PM

Ah, thank you so much, Lucas! I'll test it out as soon as I'm able. Looks like I've now got all the Arwing-related scripts done. icon_biggrin.gif I think I may credit you when I release a demo. Maybe. icon_razz.gif


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users