• All, I am currently in the process of migrating domain registrations. During this time there may be some intermittent outages or slowdowns. Please contact staff if you have any questions.

Hit flashes assistance needed.

Grit

Active member
So it when the fire ball connect the hitflash goes in the opposite direction.
I need to know how to fix this.
I would like to know how to make it so the fire hit the floor?
I'm messing with cancel and Shoryuken special. First one is when the attack is press once, second is when it's pressed twice.
 
So it when the fire ball connect the hitflash goes in the opposite direction.
I need to know how to fix this.
I would like to know how to make it so the fire hit the floor?
I'm messing with cancel and Shoryuken special. First one is when the attack is press once, second is when it's pressed twice.
Maybe the toflip command is what you need, use it at the hitflash entity header.

1713472787027.png
 
Maybe the toflip command is what you need, use it at the hitflash entity header.

View attachment 7708
@Kratus Thanks a lot, I hope this work since I have much to learn still when it come to projectiles.
You perhaps know how to make it so it don't pass through through the ground?
If I may ask.
How do create multiple hits with a projectile?
I want to emulate Shin Akuma's air fireball special from SVC chaos but I'm going to use Ken's fireball from MVC?
 
Thanks a lot, I hope this work since I have much to learn still when it come to projectiles
I suggest to look my SF vs KOF, there's some examples for Ryu and Akuma.

You perhaps know how to make it so it don't pass through through the ground?
You can use landframe for that.

How do create multiple hits with a projectile?
In the SF vs KOF I use followanim/followcond for projectiles with multiple hits.
 
Last edited:
You can use landframe for that.
How does Landframe work in a projectile?
I managed to pull it off but I'm still not happy with it.
Land frame works well in freespecials but Just have to mess with it until I get the results I'm looking for.
I want Ryu throwing each fireball from his hands and not like in MVC.
I will add sound and the other effects at a later stage, I'm focusing on moveset which can be troublesome since I got so much ideas on how I think a character should play.
 
How does Landframe work in a projectile?
The way landframe works is that the entity is off the ground, and you have landframe with a given frame to skip for landing. When the entity lands, it skips to a specific frame number.

Read at the frame count in comments here.

Example:
Code:
anim    follow1 #Jump straight
    #cancel 0 99 0 d f a freespecial11
    offset    23 121
    delay    25
    landframe    9 # STAY ON AIR BEFORE LANDING TO A GIVEN SPECIFIC FRAME
    bbox        6 7 44 92
    frame        data/chars/ryu/0004100000.gif # 0
    offset        19 112
    delay    3
    bbox 2 4 46 84
    frame    data/chars/ryu/0004100001.gif # 1
    offset    21 105
    bbox 2 2 46 64
    frame    data/chars/ryu/0004100002.gif # 2
    offset    21 102
    bbox 2 2 48 56
    frame    data/chars/ryu/0004100003.gif # 3
    offset    24 101
    delay    11
    bbox 6 2 46 54
    frame    data/chars/ryu/0004100004.gif # 4
    offset    21 102
    delay    3
    frame    data/chars/ryu/0004100003.gif # 5
    offset    21 105
    bbox 2 2 46 64
    frame    data/chars/ryu/0004100002.gif # 6
    offset    19 112
    bbox 2 4 46 84
    frame    data/chars/ryu/0004100001.gif # 7
    offset    23 121
    delay    100
    bbox 6 7 44 92
    frame    data/chars/ryu/0004100000.gif # 8
    bbox 6 7 44 92
    delay    2
    @cmd attack0 openborconstant("ANI_JUMPLAND") # START CHANGING ANIMATION
    frame    data/chars/ryu/0004100000.gif # 9
    frame    data/chars/ryu/0004100000.gif # 10

Code:
anim    jumpland #Land after jumping
    #bbox    4 0 46 95
    offset    24 91
    delay    3
    @cmd    makeOpponentUnblock
    frame    data/chars/ryu/0001000000.gif
    frame    data/chars/ryu/0001000000.gif
    #offset    22 72
    #frame    data/chars/ryu/0001000001.gif
    #offset    24 91
    frame    data/chars/ryu/0001000000.gif

It skips to the 10th frame.

If you're curious about what animation script to use for changing animation, you can use this to not only change animation, but also make something like attacking or anything. If you don't have this, you can copy this script and paste it in your animation script in a .c file for animations. Check it inside the .c file that's declared as "animationscript" from your character header you're using and press Ctrl + F to search for that name like "attack0" in one word.

C:
void attack0(void Ani)
{// Attack interruption
    void self = getlocalvar("self");
    performattack(self, Ani); //Attack!
}

For your character, you can use shooter2 to shoot enemies with how many times you want within the current animation.

Code:
anim    jumpattack2
    bbox    20 6 22 60
    offset    32 65
    loop    1 10 12
    frame    data/chars/max/asd00.png
    frame    data/chars/max/asd01.png
    frame    data/chars/max/asd02.png
    frame    data/chars/max/asd03.png
    @cmd    shooter2 "Power2" 15 25 0 2 -4 0 # Shoot diagonally down-forward
    sound    data/chars/max/beam2.wav
    frame    data/chars/max/asd04.png
    frame    data/chars/max/asd05.png
    frame    data/chars/max/asd06.png
    frame    data/chars/max/asd07.png
    frame    data/chars/max/asd08.png
    frame    data/chars/max/asd09.png
    offset    49 95
    frame    data/chars/max/jump08.png
    frame    data/chars/max/jump09.png
    frame    data/chars/max/jump10.png
    frame    data/chars/max/jump11.png

C:
void shooter2(void vName, float fX, float fY, float fZ, float Vx, float Vy, float Vz)
{//Spawns projectile next to caller
 //vName: Model name of entity to be spawned in
 //fX: X location adjustment
 //fZ: Y location adjustment
 //fY: Z location adjustment
 //Vx: X speed
 //Vy: Y speed
 //Vz: Z speed

   void self = getlocalvar("self"); //Get calling entity
   int Direction = getentityproperty(self, "direction");
   void vSpawn; //Spawn object.
    
   vSpawn = spawn01(vName, fX, fY, fZ); //Spawn in projectile
   if (Direction == 0){ //Is entity facing left?                 
      Vx = -Vx; //Reverse Vx direction to match facing
   }

   changeentityproperty(vSpawn, "velocity", Vx, Vz, Vy);
   changeentityproperty(vSpawn, "speed", Vx);
//   changeentityproperty(vSpawn, "owner", self);
}

To declare it, put it in the character header and list it as "animationscript" and then the path of where it's located, just like inserting your character icon.

Code:
name    Max
type player
health    40
speedf    1.6
shadow    0
diesound data/chars/max/death.wav
falldie 1
jumpheight 6.75
script    data/scripts/player.c
atchain 1
icon    data/chars/max/maxicon.png
palette data/chars/max/idle00.png
alternatepal data/chars/max/yellow.png
alternatepal data/chars/max/white.png
alternatepal data/chars/max/dblupowa.png
alternatepal data/chars/max/blupowa.png
com    s    freespecial5
weapons        JJ Max
weaploss    3
animationscript data/chars/max/shoot.c
keyscript    data/chars/max/xkey.c
mp 80

As for the projectile landing, there are 2-3 ways you can do this. The first two examples of this are just single animation scripts. The last one (3rd below) requires animation script for better action.

First one, you can do this to change to a different animation.

C:
anim    idle
    followanim    1 # Changing to which anim follow?
    followcond    1
    landframe    16
    fastattack    1
    attack    0 0 26 24 5 0 0 1 0 0
    loop    1 0 15
    delay    5
    offset    13 12
    frame    data/chars/misc/lightningball/ball000.png #0
    attack    0 0 27 27 5 0 0 1 0 0
    offset    13 13
    frame    data/chars/misc/lightningball/ball001.png #1
    attack    0 0 27 27 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball002.png #2
    attack    0 0 28 28 5 0 0 1 0 0
    offset    14 14
    frame    data/chars/misc/lightningball/ball003.png #3
    attack    0 0 29 29 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball004.png #4
    attack    0 0 30 30 5 0 0 1 0 0
    offset    15 15
    frame    data/chars/misc/lightningball/ball005.png #5
    attack    0 0 33 31 5 0 1 0 0 0
    offset    16 16
    frame    data/chars/misc/lightningball/ball006.png #6
    attack    0 0 33 32 5 0 0 1 0 0
    frame    data/chars/misc/lightningball/ball007.png #7
    attack    0 0 26 24 5 0 0 1 0 0
    offset    13 12
    frame    data/chars/misc/lightningball/ball000.png #8
    attack    0 0 27 27 5 0 0 1 0 0
    offset    13 13
    frame    data/chars/misc/lightningball/ball001.png #9
    attack    0 0 27 27 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball002.png #10
    attack    0 0 28 28 5 0 0 1 0 0
    offset    14 14
    frame    data/chars/misc/lightningball/ball003.png #11
    attack    0 0 29 29 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball004.png #12
    attack    0 0 30 30 5 0 0 1 0 0
    offset    15 15
    frame    data/chars/misc/lightningball/ball005.png #13
    attack    0 0 33 31 5 0 1 0 0 0
    offset    16 16
    frame    data/chars/misc/lightningball/ball006.png #14
    attack    0 0 33 32 5 0 0 1 0 0
    frame    data/chars/misc/lightningball/ball007.png #15
    attack    0
    offset    1 1
    @cmd performattack getlocalvar("self") openborconstant("ANI_FOLLOW2") # Fire the animation like an attack for change to land. Look at the spaces carefully. performattack {entity} {animation}
    frame    data/chars/misc/empty.gif #16


anim    follow1 # Hit the target
    delay    5
    offset    12 13
    frame    data/chars/misc/empty.gif
    frame    data/chars/misc/empty.gif


anim    follow2 #Start landing
    delay    5
    offset    12 13
    frame    data/chars/misc/empty.gif
    frame    data/chars/misc/empty.gif

Second one:
C:
anim    idle
@script
void self = getlocalvar("self");
if(frame == 16){ // Is it in the last frame?
    performattack(self, openborconstant("ANI_FOLLOW2");
}
@end_script
    followanim    1 # Changing to which anim follow?
    followcond    1
    landframe    16
    fastattack    1
    attack    0 0 26 24 5 0 0 1 0 0
    loop    1 0 15
    delay    5
    offset    13 12
    frame    data/chars/misc/lightningball/ball000.png #0
    attack    0 0 27 27 5 0 0 1 0 0
    offset    13 13
    frame    data/chars/misc/lightningball/ball001.png #1
    attack    0 0 27 27 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball002.png #2
    attack    0 0 28 28 5 0 0 1 0 0
    offset    14 14
    frame    data/chars/misc/lightningball/ball003.png #3
    attack    0 0 29 29 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball004.png #4
    attack    0 0 30 30 5 0 0 1 0 0
    offset    15 15
    frame    data/chars/misc/lightningball/ball005.png #5
    attack    0 0 33 31 5 0 1 0 0 0
    offset    16 16
    frame    data/chars/misc/lightningball/ball006.png #6
    attack    0 0 33 32 5 0 0 1 0 0
    frame    data/chars/misc/lightningball/ball007.png #7
    attack    0 0 26 24 5 0 0 1 0 0
    offset    13 12
    frame    data/chars/misc/lightningball/ball000.png #8
    attack    0 0 27 27 5 0 0 1 0 0
    offset    13 13
    frame    data/chars/misc/lightningball/ball001.png #9
    attack    0 0 27 27 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball002.png #10
    attack    0 0 28 28 5 0 0 1 0 0
    offset    14 14
    frame    data/chars/misc/lightningball/ball003.png #11
    attack    0 0 29 29 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball004.png #12
    attack    0 0 30 30 5 0 0 1 0 0
    offset    15 15
    frame    data/chars/misc/lightningball/ball005.png #13
    attack    0 0 33 31 5 0 1 0 0 0
    offset    16 16
    frame    data/chars/misc/lightningball/ball006.png #14
    attack    0 0 33 32 5 0 0 1 0 0
    frame    data/chars/misc/lightningball/ball007.png #15
    attack    0
    offset    1 1
    frame    data/chars/misc/empty.gif #16

Third one:
Code:
name Power2
type    none
subject_to_gravity 0
candamage enemy obstacle
setlayer 1
lifespan    2
animationscript data/scripts/script.c

anim    idle
    followanim    1 # Changing to which anim follow?
    followcond    1
    landframe    16
    fastattack    1
    attack    0 0 26 24 5 0 0 1 0 0
    loop    1 0 15
    delay    5
    offset    13 12
    frame    data/chars/misc/lightningball/ball000.png #0
    attack    0 0 27 27 5 0 0 1 0 0
    offset    13 13
    frame    data/chars/misc/lightningball/ball001.png #1
    attack    0 0 27 27 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball002.png #2
    attack    0 0 28 28 5 0 0 1 0 0
    offset    14 14
    frame    data/chars/misc/lightningball/ball003.png #3
    attack    0 0 29 29 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball004.png #4
    attack    0 0 30 30 5 0 0 1 0 0
    offset    15 15
    frame    data/chars/misc/lightningball/ball005.png #5
    attack    0 0 33 31 5 0 1 0 0 0
    offset    16 16
    frame    data/chars/misc/lightningball/ball006.png #6
    attack    0 0 33 32 5 0 0 1 0 0
    frame    data/chars/misc/lightningball/ball007.png #7
    attack    0 0 26 24 5 0 0 1 0 0
    offset    13 12
    frame    data/chars/misc/lightningball/ball000.png #8
    attack    0 0 27 27 5 0 0 1 0 0
    offset    13 13
    frame    data/chars/misc/lightningball/ball001.png #9
    attack    0 0 27 27 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball002.png #10
    attack    0 0 28 28 5 0 0 1 0 0
    offset    14 14
    frame    data/chars/misc/lightningball/ball003.png #11
    attack    0 0 29 29 5 0 1 0 0 0
    frame    data/chars/misc/lightningball/ball004.png #12
    attack    0 0 30 30 5 0 0 1 0 0
    offset    15 15
    frame    data/chars/misc/lightningball/ball005.png #13
    attack    0 0 33 31 5 0 1 0 0 0
    offset    16 16
    frame    data/chars/misc/lightningball/ball006.png #14
    attack    0 0 33 32 5 0 0 1 0 0
    frame    data/chars/misc/lightningball/ball007.png #15
    attack    0
    offset    1 1
    @cmd attack0 openborconstant("ANI_FOLLOW2")
    frame    data/chars/misc/empty.gif #16


anim    follow1 # Hit the target
    delay    5
    offset    12 13
    frame    data/chars/misc/empty.gif
    frame    data/chars/misc/empty.gif


anim    follow2
    delay    5
    offset    12 13
    frame    data/chars/misc/empty.gif
    frame    data/chars/misc/empty.gif
 
How does Landframe work in a projectile?
@Grit The SF VS KOF game has some examples in Akuma's projectiles.
Simply declare the landframe command in the animation header, put in what frame the projectile must change and then you can add any other action as soon as it touchs the ground. You can change to another animation, or kill it directly.

C:
anim idle
    followanim 1
    followcond 1
    fastattack 1
    jugglecost 5
    forcedirection -1
    loop 1 1 11
    landframe 11
    delay    1
    offset    120 187
    hitfx   data/sounds/sf/HighPunch.wav
    attack 124 90 40 40 12 1 0 0 10 12
    @cmd spawnbind "shingouki_zankuS_" 0 0 0
    frame    data/chars/shingouki/zanku/zanku00.gif
    frame    data/chars/shingouki/zanku/zanku00.gif
    frame    data/chars/shingouki/zanku/zanku01.gif
    frame    data/chars/shingouki/zanku/zanku02.gif
    frame    data/chars/shingouki/zanku/zanku03.gif
    frame    data/chars/shingouki/zanku/zanku04.gif
    frame    data/chars/shingouki/zanku/zanku05.gif
    frame    data/chars/shingouki/zanku/zanku06.gif
    frame    data/chars/shingouki/zanku/zanku07.gif
    frame    data/chars/shingouki/zanku/zanku08.gif
    frame    data/chars/shingouki/zanku/zanku09.gif
    @cmd anichange "ANI_FOLLOW1"
    frame    data/chars/shingouki/zanku/empty.gif

anim follow1
    loop    0
    delay    2
    offset    120 187
    @cmd stop2 0
    frame    data/chars/shingouki/zanku/zanku10.gif
    frame    data/chars/shingouki/zanku/zanku11.gif
    frame    data/chars/shingouki/zanku/zanku12.gif
    frame    data/chars/shingouki/zanku/zanku13.gif
    frame    data/chars/shingouki/zanku/zanku14.gif
    frame    data/chars/shingouki/zanku/zanku15.gif
    frame    data/chars/shingouki/zanku/zanku16.gif
    frame    data/chars/shingouki/zanku/zanku17.gif
    frame    data/chars/shingouki/zanku/zanku18.gif
    frame    data/chars/shingouki/zanku/zanku19.gif
    frame    data/chars/shingouki/zanku/zanku20.gif
    frame    data/chars/shingouki/zanku/zanku21.gif
    frame    data/chars/shingouki/zanku/zanku22.gif
    frame    data/chars/shingouki/zanku/zanku23.gif
    frame    data/chars/shingouki/zanku/zanku24.gif
    frame    data/chars/shingouki/zanku/zanku25.gif
    @cmd suicide
    frame    data/chars/shingouki/zanku/empty.gif
 
The SF VS KOF game has some examples in Akuma's projectiles.
Trust me I have gone over your Akuma prior to uploading the video of my reattempt.

Every other anim that uses landframe work like it suppose to but I since moved on from this move and will revisit it when I completed the character.
Here is enough example to work from.
Thanks guys.
 
Last edited:
Back
Top Bottom