Enemy Script Requests
#1
Posted 12 September 2011 - 01:17 PM
2. Could anyone make a script for the Oracle of Seasons version of Mothula?
3. Would it be possible to make a script for Dark Link?
4. Could anyone make a Beamos script, if there isn't one in the database already?
#2
Posted 12 September 2011 - 01:41 PM
For the other scripts, I've learned to be very specific. How exactly do these enemies behave? The more precise, the better.
#3
Posted 12 September 2011 - 01:55 PM
Here is how Mothula fights in Oracle of Seasons:
In any game that Dark Link appears in, he generally goes towards Link tries to hit him with his sword and his shield blocks any frontal attacks. Perhaps, Dark Link could use a spiraling death animation like Link. Also, step speed should be applicable so that you can make him move at the same speed as Link.
And I'm not sure whether or not the existing Beamos Script is even compatible with RC2.
Edited by XMuppetSB, 12 September 2011 - 02:01 PM.
#4
Posted 12 September 2011 - 02:40 PM
#5
Posted 15 September 2011 - 02:31 PM
void run(int enemyID){
npc ghost = Ghost_InitAutoGhost(this, enemyID, GHF_NORMAL);
//Movement variables.
int counter = -1;
int step = ghost->Step;
int rate = ghost->Rate;
int homing = ghost->Homing;
int hunger = ghost->Attributes[3];
int zheight = ghost->Attributes[4];
while(true){
counter = Ghost_ConstantWalk4(counter, step, rate, homing, hunger);
ghost->Dir = Ghost_Dir;
if(Link->Jump < 0 && Link->Z <= zheight){
if(XYCollision(ghost)){
ghost->CollDetection = false;
ghost->OriginalTile = ghost->Attributes[0];
Ghost_WaitframesLight(ghost->Attributes[1]);
ghost->ItemSet = ghost->Attributes[2];
Ghost_HP = 0;
}
}
Ghost_Waitframe(this, ghost, true, true);
}
}
bool XYCollision(npc n){
int ax = Link->X + Link->HitXOffset;
int bx = n->X + Link->HitXOffset;
int ay = Link->Y + Link->HitYOffset;
int by = n->Y + Link->HitYOffset;
return RectCollision(ax, ay, ax + Link->HitWidth, ay + Link->HitHeight, bx, by, bx + n->HitWidth, by + n->HitHeight);
}
}
Type is Other.
Uses HP, Damage, Step, Random Rate, and Homing.
Attributes used are 1-5, 11, and 12.
1. Stomp Original Tile. The enemies original tile, will be changed to this when he is stomped.
2. Number of frames stomp animation is to be displayed for.
3. Stomp Item Set, The enemies drop set will be changed to this when he is stomped.
4. The enemies' hunger, legal values 0 - 4.
5. This should be higher then the normal hitzheight of the enemy.
11. Set this to 1.
12. Set this to the ffc slot number you put the script in.
[/list]
Let me know if that works for you, and if not I'll go back and try again. ^_^
#6
Posted 15 September 2011 - 03:43 PM
Edited by XMuppetSB, 15 September 2011 - 04:03 PM.
#7
Posted 15 September 2011 - 04:09 PM
This isn't working at all! Every time I try to stomp it, Link gets hurt and its stomp tile is never displayed, and the alternate item drop set is never used! Also, you forgot to include an attribute for the stomp sound. And technically, this is not even ghosted at all. Maybe we should ask Saffith about this one.
What do you have attribute 5 set to? And yes it's very ghosted. It uses the ghost walk function ConstantWalk4.
Edited by blackbishop89, 15 September 2011 - 04:10 PM.
#8
Posted 15 September 2011 - 04:16 PM
Perhaps there should be a revised setup, like this:
--- COMBOS ---
1: Walking
2: Stomped
--- ENEMIES ---
Main enemy: Goomba
- Type: Other
- Step speed, halt rate, random rate, and homing factor are used
Attributes
1. Sound to use when stomped
2. Number of frames stomp animation is to be displayed for.
3. Stomp Item Set, The enemies drop set will be changed to this when he is stomped.
4. Stomp Boots required- 1- yes; 0- no
5. This should be higher then the normal hitzheight of the enemy.
6. Whether or not Link bounces off if it. 0- no; 1- yes
11. Combo used for walking animation.
12. Set this to the ffc slot number you put the script in.
Edited by XMuppetSB, 15 September 2011 - 04:42 PM.
#10
Posted 15 September 2011 - 04:48 PM
It should be higher then the enemies ZHeight. Try 4 which is what I used.
I tried setting it to 10, and it worked. But I stated a few other problems in my post above:
1. It seems to be lacking a stomp sound
2.In Link's Awakening, it didn't use the normal death sprite or the normal death sound when stomped, it just displayed the stomped tile for a few seconds before it disappeared
3. Link should bounce off of it when he stomps on it.
4. It seems to be ignoring Sideview Gravity, even though it is set to Other, which is supposed to fall when used on Sideview screens.
Perhaps there should be a revised setup, like this:
--- COMBOS ---
1: Walking
2: Stomped
--- ENEMIES ---
Main enemy: Goomba
- Type: Other
- Step speed, halt rate, random rate, and homing factor are used
Attributes
1. Sound to use when stomped
2. Number of frames stomp animation is to be displayed for.
3. Stomp Item Set, The enemies drop set will be changed to this when he is stomped.
4. Stomp Boots required- 1- yes; 0- no
5. This should be higher then the normal hitzheight of the enemy.
6. Whether or not Link bounces off if it. 0- no; 1- yes
11. Combo used for walking animation.
12. Set this to the ffc slot number you put the script in.
Edited by XMuppetSB, 15 September 2011 - 08:11 PM.
#11
Posted 16 September 2011 - 08:30 AM
void run(int enemyID){
npc ghost = Ghost_InitAutoGhost(this, enemyID, GHF_NORMAL);
int counter = -1;
int step = ghost->Step;
int rate = ghost->Rate;
int homing = ghost->Homing;
int haltrate = ghost->Haltrate;
int zheight = ghost->Attributes[4];
while(true){
counter = Ghost_HaltingWalk4(counter, step, rate, homing, 0, haltrate, 48);
if(Link->Jump < 0 && Link->Z <= zheight){
if(XYCollision(ghost) && CanSquash(ghost->Attributes[3])){
Game->PlaySound(ghost->Attributes[0]);
ghost->CollDetection = false;
Ghost_Data++;
if(ghost->Attributes[5]) Link->Jump = 3;
Ghost_Waitframes(this, ghost, true, true, ghost->Attributes[1]);
ghost->ItemSet = ghost->Attributes[2];
Ghost_HP = HP_SILENT;
}
}
Ghost_Waitframe(this, ghost, true, true);
}
}
bool XYCollision(npc n){
int ax = Link->X + Link->HitXOffset;
int bx = n->X + Link->HitXOffset;
int ay = Link->Y + Link->HitYOffset;
int by = n->Y + Link->HitYOffset;
return RectCollision(ax, ay, ax + Link->HitWidth, ay + Link->HitHeight, bx, by, bx + n->HitWidth, by + n->HitHeight);
}
bool CanSquash(bool boots){
if(Link->Item[I_STOMPBOOTS]) return true;
else return !boots;
}
}
Hopefully I got it right this time. Let me know if I missed something or somethings not working. Oh and the value of attribute 11 is the combo the ffc will use. And the one after it must be the stomped combo. Make sense?
#12
Posted 16 September 2011 - 05:38 PM
Edited by XMuppetSB, 16 September 2011 - 06:05 PM.
#13
Posted 17 September 2011 - 09:44 AM
Okay, the misc properties have me completely confused! Please give me more details. And the Goomba still floats in sideview gravity when it should be falling in sideview gravity, since it is set to other, not other (floating).
What confuses you about it? Just use the attribute set up you gave me which is what I used.
2. Number of frames stomp animation is to be displayed for.
3. Stomp Item Set, The enemies drop set will be changed to this when he is stomped.
4. Stomp Boots required- 1- yes; 0- no
5. This should be higher then the normal hitzheight of the enemy.
6. Whether or not Link bounces off if it. 0- no; 1- yes
11. Combo used for walking animation.
12. Set this to the ffc slot number you put the script in.
Also I'll take a look at the sideview bug and see if I can fix it somehow.
#14
Posted 17 September 2011 - 12:32 PM
Edited by XMuppetSB, 17 September 2011 - 01:01 PM.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users