How to spawn fireballs and allow multi hits?

Grit

Well-known member
Hi guys, hope you all well?
I'm currently I'm limited to making only basic attacks, I haven't been at it for months and forgot the little I know.

So I like to know how to go about having a Hadoken that do multiple hits?
Basically the things seen in Fight Forever like screen pause and zoom since most played that game.

Spawn in certain sprites for a moment like
The flame from Ken's Shoryuken or Terry's Power Geyser.

Thanks in advance.
 
Hi there :)
First of all, you need to spawn or rather shoot fireball first. I believe there's a tutorial for this already.
As for making fireball or Hadoken, if you will, do multiple hits, you'd need to set couple things:
1. fastattack 1 in the animation header.
2. Set attackbox to be on and off alternatively. Like this:
attack ... # attackbox on
frame ...
attack 0 # attackbox off
frame ...
attack ... # attackbox on
frame ...
attack 0 # attackbox off
frame ...
attack ... # attackbox on
frame ...
attack 0 # attackbox off
frame ...
3. remove 0 in header, if you're using knife throwing mechanic.

Power Geyser is static but Hadoken might need some tricks to ensure it could hit multiple times. I'll tell that trick later but for now, apply those things above first.
 
So I like to know how to go about having a Hadoken that do multiple hits?
Basically the things seen in Fight Forever like screen pause and zoom since most played that game.
Isn't it with Shinku(u) Hado(u)ken? You can make the projectile to hit the target using followanim and followcond together, as well as fastattack 1.

Example:
Code:
anim freespecial31
@cmd shadow 10 5 40 0 2 100 100 250
    energycost    57
    mponly        1
    delay         4
    offset        96 181
    bbox        0 0 0 0
    load            ngbg
    load        lvl1sup
    custentity    lvl1sup
    spawnframe    2 0 0 50 0
load    shink1
throwframe 0 40
sound   data/chars/BIRDSR/ryushinku.wav
@cmd spawn044 "ngbg" 174 0 228
    frame        data/chars/BIRDSR/wk01.gif
    frame        data/chars/BIRDSR/hado01.gif
sound   data/sounds/super07.wav
    frame        data/chars/BIRDSR/hado02.gif
    frame        data/chars/BIRDSR/hado03.gif
    delay         3
@cmd shadow 0
    frame        data/chars/BIRDSR/hado05.gif
    delay         2
    frame        data/chars/BIRDSR/hado05.gif
sound   data/chars/BIRDSR/ryuhado.wav
    delay           75
@cmd spawn001 "kibla" "kibla" 0 0 0 -1 0
@cmd vPro001 "shink1" 0 10 51 0 5 0 0  #map x y z sx sy sz
    frame        data/chars/BIRDSR/hado05.gif
@cmd shadow 0 0 0
    delay           8
    frame        data/chars/BIRDSR/a101.gif

Projectile:
Code:
name        shink1
health      1
type        npc
shootnum    1
remove      0
nomove         1 1
candamage   enemy obstacle npc
noquake        1 1
subject_to_gravity 0
no_adjust_base    0
subject_to_hole 1
subject_to_wall 1
subject_to_basemap 1
subject_to_obstacle 0
subject_to_platform 0

animationscript data/scripts/lib001.c
script      data/scripts/bounce3.c

anim idle
    loop     1
    offset   15 50
    delay    4
    bbox     0
    followcond 3
    followanim 2
    fastattack 1
    hitflash    s1flash
hitfx   data/sounds/beatsf301.wav
    attack   30 34 33 31 20 1 1 0 8 10
    forcedirection -1
    dropv    0.5 0.2 0
    nokill     1
    frame    data/chars/0misc/birds/shink01.gif
    frame    data/chars/0misc/birds/shink02.gif
    frame    data/chars/0misc/birds/shink03.gif
    frame    data/chars/0misc/birds/shink04.gif
    frame    data/chars/0misc/birds/shink05.gif
    frame    data/chars/0misc/birds/shink06.gif

anim follow2
    loop     0
    offset   15 50
    delay    9
    fastattack 1
    attack   0
    hitflash    s1flash
@cmd velo001 0.8 0 0
    frame    data/chars/0misc/birds/shink01.gif
    delay    4
hitfx   data/sounds/beatsf301.wav
    attack   30 34 33 31 20 1 1 0 8 10
    forcedirection -1
    dropv    0.3 0 0
    nokill     1
    frame    data/chars/0misc/birds/shink02.gif
    attack   0
    frame    data/chars/0misc/birds/shink03.gif
    attack2  30 34 33 31 20 1 1 0 8 10
    forcedirection -1
    dropv    0.2 0.1 0
    frame    data/chars/0misc/birds/shink04.gif
    attack2  0
    frame    data/chars/0misc/birds/shink05.gif
    attack   30 34 33 31 20 1 1 0 8 10
    forcedirection -1
    dropv    0.1 0 0
    frame    data/chars/0misc/birds/shink06.gif
    attack   0
    frame    data/chars/0misc/birds/shink01.gif
    attack   30 34 33 31 20 1 1 0 8 10
    forcedirection -1
    dropv    2.3 1.5 0
    nokill     0
    frame    data/chars/0misc/birds/shink02.gif
    attack   0
    frame    data/chars/0misc/birds/shink05.gif
    frame    data/chars/0misc/birds/shado08.gif
    frame    data/chars/0misc/birds/shado09.gif
    frame    data/chars/0misc/birds/shado10.gif
@cmd killentity getlocalvar("self")
    frame    data/chars/0misc/birds/hado01.gif


anim follow1
@script
    void self = getlocalvar("self");

    if(frame==0){
      changeentityproperty(self, "velocity", 0, 0, 0);
      changeentityproperty(self, "subject_to_gravity", 1);
    }
@end_script
    loop     0
    offset   15 50
    delay    3
    frame    data/chars/0misc/birds/shink05.gif
    frame    data/chars/0misc/birds/shado08.gif
    frame    data/chars/0misc/birds/shado09.gif
    frame    data/chars/0misc/birds/shado10.gif
@cmd killentity getlocalvar("self")
    frame    data/chars/0misc/birds/hado01.gif

anim fall
@script
    void self = getlocalvar("self");

    if(frame==0){
      changeentityproperty(self, "subject_to_gravity", 1);
    }
@end_script
       frame     data/chars/0misc/empty.gif
@cmd killentity getlocalvar("self")
       frame     data/chars/0misc/empty.gif

The flame from Ken's Shoryuken
Are you trying to have his flame stick to his arm while doing Shoryuken like in this shot? For Ryu receiving red colors on him enitrely, notice I'm using tintmode, but I'm not using script with this.

My Mod - 0895.png
 
Thanks you guys
I'll post my results here.
Even though I seen it done in a few games I prefer doing it myself from the ground up to grasp it better and you guys are an tremendous help.
I'll tell that trick later but for now, apply those things above first.
Will do👍
Are you trying to have his flame stick to his arm while doing Shoryuken like in this shot?
Yes, this is exactly what I need to spawn into the game.
As much as I did not want to add it in the demo.
It will look infinitely better especially when you see the Supers I got in store and how it works in game.
A beat up that is does specials well in this regard is Sengoku 3 and Golden Axe.
Thanks again.
 
To bind his flame to his arm, I use spawnBind to have it stick to a certain entity. Since there are 2 separate flames for Ken, I made 2 flame entities for him, as well as his dark hand for sticking to his Shoryuken. Now that's three.

Code:
anim    freespecial16 #Shoryuken HP
    offset    336 292
    delay    8
    loop    1 9 11
    landframe    11
    @cmd    spawnBind "fsrk1" 0 2 2 0 0 #spawnBind {name} {x} {y} {z} {dir} {flag}
    bbox 318 233 48 61
    sound data/chars/ken/kshoryu.wav
    hitflash specflash
    frame    data/chars/ken/cvs2_ken_427.png # 0 - 8 ; frame - delay
    bbox 328 214 46 77
    frame    data/chars/ken/cvs2_ken_428.png # 1 - 16
    @cmd spawnBind "shoryukenh" 0 1 1 0 0
    bbox 332 191 38 100
    attack23 351 205 31 38 11 1 0 0 0 0
    frame    data/chars/ken/cvs2_ken_429.png # 2 - 24
    delay 1
    attack23 0
    frame    data/chars/ken/cvs2_ken_429.png # 3 - 25
    delay 8
    @cmd leaper 1 4 0
    @cmd    spawnBind "fsrk2" 0 2 2 0 0 #spawnBind {name} {x} {y} {z} {dir} {flag}
    attack23 345 144 31 78 11 18 0 0 0 0
    bbox 332 173 31 111
    frame    data/chars/ken/cvs2_ken_430.png # 4 - 33
    attack23 0
    bbox 329 173 35 111
    frame    data/chars/ken/cvs2_ken_431.png # 5 - 41
    bbox 327 173 35 111
    frame    data/chars/ken/cvs2_ken_432.png
    frame    data/chars/ken/cvs2_ken_433.png # 6 - 49
    bbox 323 176 37 111
    frame    data/chars/ken/cvs2_ken_434.png # 7 - 57
    frame    data/chars/ken/cvs2_ken_435.png # 8 - 65
    frame    data/chars/ken/cvs2_ken_436.png # 9 - 73
    bbox 323 192 37 103
    frame    data/chars/ken/cvs2_ken_437.png # 10 - 81

When I put both @cmd spawnBind "fsrk1" 0 2 2 0 0 and @cmd spawnBind "shoryukenh" 0 1 1 0 0 here, this means that one that's 2 pixels lifted up in Y axis and downwards in Z axis, covers the one that's 1 pixel away in both axes. How do I/you/we know that? It's the Z axis that does the covering like any entity type that walks down or stays in that position.

Spawn-bound flames and "charcoaled" hand:

Fire/Flaming Shoryuken 1:
Code:
name fsrk1
type none
hostile player enemy
candamage enemy player
health  1
speed   10
alpha 1
animationscript data/scripts/script.c

anim    idle
    offset    336 292
    delay    5
    frame    data/chars/misc/kenf/cvs2_ken_0.png #5
    frame    data/chars/misc/kenf/cvs2_ken_1.png #10
    frame    data/chars/misc/kenf/cvs2_ken_2.png #15
    frame    data/chars/misc/kenf/cvs2_ken_3.png #20
    frame    data/chars/misc/kenf/cvs2_ken_4.png #25
    frame    data/chars/misc/kenf/cvs2_ken_5.png #30
    frame    data/chars/misc/kenf/cvs2_ken_6.png #35
    frame    data/chars/misc/kenf/cvs2_ken_7.png #40
    frame    data/chars/misc/kenf/cvs2_ken_8.png #45
    frame    data/chars/misc/kenf/cvs2_ken_9.png #50
    frame    data/chars/misc/kenf/cvs2_ken_10.png #55
    frame    data/chars/misc/kenf/cvs2_ken_11.png #60
    frame    data/chars/misc/kenf/cvs2_ken_12.png #65
    frame    data/chars/misc/kenf/cvs2_ken_13.png #70
    frame    data/chars/misc/kenf/cvs2_ken_14.png #75
    frame    data/chars/misc/kenf/cvs2_ken_15.png #80
    @cmd    suicide
    frame    data/chars/misc/kenf/cvs2_ken_15.png #85
       
#|edited by openBor Stats v 0.67

Fire/Flaming Shoryuken 2:
Code:
name  fsrk2
type none
hostile player enemy
candamage enemy player
health  1
speed   10
alpha 1
animationscript data/scripts/script.c


anim    idle
    offset    336 292
    delay    1
    frame    data/chars/misc/kenf/cvs2_ken_16.png
    frame    data/chars/misc/kenf/cvs2_ken_17.png
    frame    data/chars/misc/kenf/cvs2_ken_18.png
    frame    data/chars/misc/kenf/cvs2_ken_19.png
    frame    data/chars/misc/kenf/cvs2_ken_20.png
    frame    data/chars/misc/kenf/cvs2_ken_21.png
    frame    data/chars/misc/kenf/cvs2_ken_22.png
    frame    data/chars/misc/kenf/cvs2_ken_23.png
    frame    data/chars/misc/kenf/cvs2_ken_24.png
    frame    data/chars/misc/kenf/cvs2_ken_25.png
    frame    data/chars/misc/kenf/cvs2_ken_26.png
    frame    data/chars/misc/kenf/cvs2_ken_27.png
    frame    data/chars/misc/kenf/cvs2_ken_28.png
    frame    data/chars/misc/kenf/cvs2_ken_29.png
    frame    data/chars/misc/kenf/cvs2_ken_30.png
    frame    data/chars/misc/kenf/cvs2_ken_31.png
    frame    data/chars/misc/kenf/cvs2_ken_32.png
    frame    data/chars/misc/kenf/cvs2_ken_33.png
    frame    data/chars/misc/kenf/cvs2_ken_34.png
    frame    data/chars/misc/kenf/cvs2_ken_35.png
    frame    data/chars/misc/kenf/cvs2_ken_36.png
    frame    data/chars/misc/kenf/cvs2_ken_37.png
    frame    data/chars/misc/kenf/cvs2_ken_38.png
    @cmd    suicide
    frame    data/chars/misc/kenf/cvs2_ken_38.png
       
#|edited by openBor Stats v 0.67

Shoryuken hand:
Code:
name shoryukenh
type none
health  1
speed   10
#alpha 1
#offscreenkill 80
animationscript data/scripts/script.c

anim    idle
    offset    336 292
    delay    9
    frame    data/chars/ken/cvs2_ken_438.png
    delay    8
    frame    data/chars/ken/cvs2_ken_439.png
    frame    data/chars/ken/cvs2_ken_440.png
    @cmd    suicide
    #move 10000
    frame    data/chars/ken/cvs2_ken_440.png

C:
void spawnBind(void Name, float dx, float dy, float dz, int Dir, int Flag)
{ // Spawn entity and bind it
   void self = getlocalvar("self");
   void Spawn;

   Spawn = spawn01(Name, dx, dy, dz);
   bindentity(Spawn, self, dx, dz, dy, Dir, Flag);
}
 
Last edited:
Hi guys,
So @Bloodbane and @maxman.
I'm able to create the projectile but I ran into an issue.

So Kof 97 Terry's Power power wave hit different compared to the one that travel full screen since it go through the enemy.
The fireball does not disapate after impact. Same goes for the Power geyser.

What's happening is that the Power Geyser does not play it's full animation.
As soon as attack box touch the enemy it then play the hit flash animation.

I want it to hit like seen below
I think I figure out away to implement it after watching this video though but would appreciate a way for the animation to play even after hitting.

I don't like projectiles in a beat em up that focus on mainly on melee combat since aint Cadillacs or DnD where range combat is a thing.
So I figure I relagate fireballs to some extent for each character. Terry's power wave seen above fits nicely.

Ryu won't do his basic hadoken, I instead want to have him throw a fireball as a super.
Think of Shin Akuma's fireball super in SVC chaos.
Kratus actually created this type of super for Ryu in STFvsKOF.
The anime and movie treated the Hadoken as if it was a something special like a death blow.
Street fighter 2 animated movie where Ryu beat Sagat and the anime STF II V.
 
As soon as attack box touch the enemy it then play the hit flash animation.

I can't tell how actually you've spawned Power Wave but from your post, I guess that you're using knife or shot spawning method. If you do use that, then I suggest setting remove 0 in power wave's text to prevent it from disappearing on contact.
 
I can't tell how actually you've spawned Power Wave but from your post, I guess that you're using knife or shot spawning method. If you do use that, then I suggest setting remove 0 in power wave's text to prevent it from disappearing on contact.
You on the money, I actually found a work around but this is better.
I'm still undecided on the sprites that I'm to use for his specials.
The Geyser take a chunk out the screen.
I'll drop later in the day.
Thanks again.
 
If you want the projectile to disappear after unleashing it, you can either use a trick from Pierwolf to make it move far away from being on screen or you have it kill itself.

I think this is Pierwolf's trick when it comes to no scripts and the entity to disappear at the last frame with move.
Code:
name PGeyser
type none
candamage obstacle enemy
offscreenkill 1000
remove 1
score 1 5

anim idle

    offset 187 195
    delay 4
    move 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_0.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_1.png
    dropv 5 3 0
    hitfx data/sounds/klunk.wav
    attack 153 140 88 60 21 1 0 0 0 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_2.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_3.png
    attack 153 87 83 114 21 1 0 0 0 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_4.png
    attack 139 54 100 147 21 1 0 0 0 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_5.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_6.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_7.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_8.png
    attack 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_9.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_10.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_11.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_12.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_13.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_14.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_15.png
    delay 2
    move 500000
    frame data/chars/misc/empty.gif

Code:
# Hit Dust01

name    Dust01
type none
nomove 1 1
shadow    0
#setlayer 1000
antigravity 100

palette data/chars/misc/Dust/Dust01/Dust01.gif #1

anim idle
    loop        0
    offset        240 238
    delay        4
        frame        data/chars/misc/Dust/Dust01/101.gif
        frame        data/chars/misc/Dust/Dust01/102.gif
        frame        data/chars/misc/Dust/Dust01/103.gif
        frame        data/chars/misc/Dust/Dust01/104.gif
        frame        data/chars/misc/Dust/Dust01/105.gif
        frame        data/chars/misc/Dust/Dust01/106.gif
        frame        data/chars/misc/Dust/Dust01/107.gif
        frame        data/chars/misc/Dust/Dust01/108.gif
        frame        data/chars/misc/Dust/Dust01/109.gif
        frame        data/chars/misc/Dust/Dust01/110.gif
        frame        data/chars/misc/Dust/Dust01/111.gif
        frame        data/chars/misc/Dust/Dust01/112.gif
        frame        data/chars/misc/Dust/Dust01/113.gif
        frame        data/chars/misc/Dust/Dust01/114.gif
        frame        data/chars/misc/Dust/Dust01/115.gif
        frame        data/chars/misc/Dust/Dust01/116.gif
        frame        data/chars/misc/empty.gif

    delay        5
    move        1000
        frame        data/chars/misc/empty.gif
        frame        data/chars/misc/empty.gif
        frame        data/chars/misc/empty.gif
        frame        data/chars/misc/empty.gif
        frame        data/chars/misc/empty.gif
        frame        data/chars/misc/empty.gif
        frame        data/chars/misc/empty.gif
        frame        data/chars/misc/empty.gif
        frame        data/chars/misc/empty.gif
        frame        data/chars/misc/empty.gif

offscreenkill {value}

  • Determines how far an entity could go offscreen before removed or killed instantly. For your information, OpenBoR kills entities which are too far offscreen to reduce number of active entities.
  • For example, projectiles and arrows are removed automatically by OpenBoR when they are 200 pixels offscreen. Doesn't matter which side they go offscreen to.
  • In levels which don't allow scrolling back, this is useful to remove unused entities which are left offscreen. However, in levels which allow scrolling back, you might need to set this to avoid entities being killed while you still need it.
  • {value} is distance in pixels measured from screen edges (left, right, up and down).
  • Default value for normal entities is 1000, for arrows and projectiles it’s 200 and for bikers it’s 300. Steam default offscreenkill value is 80.
If I summon one effect, I use spawnframe. However, if I want to summon more than one, I have to use an animation script to spawn multiple depending on how many I want to summon in one animation.

Example:
One spawn of Power Geyser:
Code:
anim freespecial21 #Power Geyser
    delay 9
    offset 140 188
    load pgeyser
    subentity pgeyser
    spawnframe 5 64 0 0 0
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_0.png
    delay 87
    @cmd paus0001 1 174
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_1.png
    delay 9
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_2.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_3.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_4.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_5.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_6.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_7.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_8.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_9.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_10.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_11.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_12.png

Multiple spawns for Power Geyser:
Code:
anim freespecial25
# Multiple Power Geyser
    delay 9
    offset 140 188
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_0.png
    delay 87
    @cmd paus0001 1 174
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_1.png
    delay 9
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_2.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_3.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_4.png
    @cmd spawn01 "pgeyser" 64 0 0 # One
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_5.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_2.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_3.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_4.png
    @cmd spawn01 "pgeyser" 128 0 0 # Two
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_5.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_2.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_3.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_4.png
    @cmd spawn01 "pgeyser" 192 0 0 # Three
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_5.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_6.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_7.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_8.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_9.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_10.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_11.png
    frame data/chars/heroes/KOF_2K3_Terry_Sprite.7z/148_12.png

This is one animation script if I want to spawn multiple entities in a single animation.
C:
void spawn01(void vName, float fX, float fY, float fZ)
{
    //spawn01 (Generic spawner)
    //Damon Vaughn Caskey
    //07/06/2007
    //
    //Spawns entity next to caller.
    //
    //vName: Model name of entity to be spawned in.
    //fX: X location adjustment.
    //fY: Y location adjustment.
      //fZ: Z location adjustment.

    void self = getlocalvar("self"); //Get calling entity.
    void vSpawn; //Spawn object.
    int  iDirection = getentityproperty(self, "direction");

    clearspawnentry(); //Clear current spawn entry.
      setspawnentry("name", vName); //Acquire spawn entity by name.

    if (iDirection == 0){ //Is entity facing left?                 
          fX = -fX; //Reverse X direction to match facing.
    }

      fX = fX + getentityproperty(self, "x"); //Get X location and add adjustment.
      fY = fY + getentityproperty(self, "a"); //Get Y location and add adjustment.
      fZ = fZ + getentityproperty(self, "z"); //Get Z location and add adjustment.
    
    vSpawn = spawn(); //Spawn in entity.

    changeentityproperty(vSpawn, "position", fX, fZ, fY); //Set spawn location.
    changeentityproperty(vSpawn, "direction", iDirection); //Set direction.
    
    return vSpawn; //Return spawn.
}
 
If you want the projectile to disappear after unleashing it, you can either use a trick from Pierwolf to make it move far away from being on screen or you have it kill itself.
Hi there and thanks for getting back to me on this, I think I'd prefer to have it kill itself.

I actually found a rather simple way for me to the Power Geyser without a animation script as seen above.

I'm currently messing with spawnbind.
If I can't get it to flow the way I want then I'll just combine the sprites with a sprite editor.
If I can just grasp projectiles,bind,slam amongst others then I'll finally be able to complete character creation.
 
I think I'd prefer to have it kill itself
When I said that, I was referring to using a script called killentity. The engine kills a none type entity when it's too far away without script, I think.

Here's an example of having it killing itself.

Code:
name PGeyser
type none
candamage obstacle enemy
remove 0

anim idle

    offset 187 195
    delay 4
    move 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_0.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_1.png
    dropv 5 3 0
    hitfx data/sounds/klunk.wav
    attack 153 140 88 60 21 1 0 0 0 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_2.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_3.png
    attack 153 87 83 114 21 1 0 0 0 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_4.png
    attack 139 54 100 147 21 1 0 0 0 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_5.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_6.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_7.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_8.png
    attack 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_9.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_10.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_11.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_12.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_13.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_14.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_15.png
    delay 2
    @cmd killentity getlocalvar("self")
    frame data/chars/misc/empty.gif

Or what's better is with animation script.

Code:
name PGeyser
type none
candamage obstacle enemy
remove 0
animationscript data/scripts/your_animation_script.c

anim idle

    offset 187 195
    delay 4
    move 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_0.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_1.png
    dropv 5 3 0
    hitfx data/sounds/klunk.wav
    attack 153 140 88 60 21 1 0 0 0 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_2.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_3.png
    attack 153 87 83 114 21 1 0 0 0 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_4.png
    attack 139 54 100 147 21 1 0 0 0 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_5.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_6.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_7.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_8.png
    attack 0
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_9.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_10.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_11.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_12.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_13.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_14.png
    frame data/chars/heroes/kof_2k3_terry_sprite.7z/effects/920_15.png
    delay 2
    @cmd suicide
    frame data/chars/misc/empty.gif

C:
void suicide(){
    void self = getlocalvar("self");
    killentity(self);
}

From your video, I think you need to use alpha 1 for making the dark color go transparent. It's what I did with Ryu's Hadoken.
alpha {int}

  • If set to 1, this entity will be displayed with alpha transparency.
  • If set to 2, this entity will use negative alpha transparency (the darker colors are stronger, like shadows).
  • If set to 3, this entity will overlay transparency. It's described in the engine as being a combination of alpha and negative alpha, and the formula is "bg<128 ? multiply(bg*2,fg) : screen((bg-128)*2,fg)".
  • If set to 4, this entity will use hardlight transparency. Seems to be the opposite of overlay. The formula is "fg<128 ? multiply(fg*2,bg) : screen((fg-128)*2,bg)".
  • If set to 5, this entity uses dodge transparency. Described in the code as being "Very nice for a colourful boost of light."
  • If set to 6, this entity will use 50% transparency. The entire entity will be 50% transparent: every pixel will be averaged with the pixel right behind it.
  • In 8bit colormode, this setting DOES NOT work with remaps. You need 16bit or 32bit color mode to use this together with remaps.

I'm currently messing with spawnbind.
I'm looking forward on how you use spawnbind.

If I can't get it to flow the way I want then I'll just combine the sprites with a sprite editor.
If you think you can't get it going as you want, let me/us know.
 
From your video, I think you need to use alpha 1 for making the dark color go transparent. It's what I did with Ryu's Hadoken.
Thanks again, I can't wait to see it in action once
I'm looking forward on how you use spawnbind.
I can honestly say that I'd be able to pull off some crazy ideas, impossible without the good folk here.
If you think you can't get it going as you want, let me/us know.
I'll be honest, I down played scripting and custom scripts, never bothered with the ins and outs of it and was able to get more or less the results I thought I wanted but now I'm convinced I have to learn it.
Can't half ass my way through this like I been doing if I want it to be as good as I think it can be.
Appreciate the support
 
NP. I'm quite sure I posted a video showing Ryu's Hadoken, along with Ken's.
Apologies, I didn't finish the sentence.
I meant to say "I cant wait to see it once I've implement it."
I did and the move look like it suppose to.
Guess I'll have to use spawnBind since alpha 1 is a game changer in that department.
 
Guess I'll have to use spawnBind since alpha 1 is a game changer in that department.
Which effect are you referring to when it comes spawnbind? Ken's flaming Shoryuken or Terry's Power Geyser? Don't get confused with spawn01 with spawnbind. spawn01 is like spawnframe but you're allowed to spawn any entity how many times you want in one animation. spawnbind is used for binding a spawned entity.

Apologies, I didn't finish the sentence.
I meant to say "I cant wait to see it once I've implement it."
Ohhhhh...I see. Yeah. You can do it!
 
So I'm finally able to bind entities but there are still a few hiccups here and there but this is where the creativity starts as seen in the last special but still a ton to learn.
The actual specials will have follow for the second part of Buster Wolf and Rock(WIP)
I actually want to use the SFX from Garou for those 2 specials.
 
Last edited:
Back
Top Bottom