Home Gallery Resources The Team Rules chat Login Register
Pages: [1]
Author Topic: [Advanced] Aerial Taunting  (Read 2175 times)
0 Members and 1 Guest are viewing this topic.
KingJigglypuff
Meme Machine
Moderator
****
Offline Offline

Posts: 7206


  • Awards RAGE!! >9000 Hyperactive Contributor Heart Container

  • View Profile Awards
    « on: July 23, 2016, 12:42:00 PM »


    After toying around with a bunch of coding, I've figured out Aerial Taunting, and I'm here to show you what I did.

    What's needed:
    -A FitFighter.pac that has Action Overrides. (Example Image)
    -Depending on which character you want to edit; PSA, a Hex Editor, and Tabuu, or BrawlBox v0.68b.
    -On the coding side of things, you'll need 1 to 3 Sub Routines and 1 LA-Bit Variable. (Check out this thread to see which Variables you can use) (Check this Open SA page to see which Variables the game already uses)

    Now that you have everything you need, let's move onto the tutorial.

    Part 1
    1a.) Setting up the Override Coding.
    Here, we'll start with the coding for the Action Override itself. We'll be making an Action Override for the Taunt Action, which is Action 268 (BB)/10C (PSA). In BrawlBox, it's as easy as right-clicking on the entry and adding a new Override [(Example Image)], but if your character can't be edited in BrawlBox, you'll have to use the other tutorial for adding new Overrides. (Link)

    After you have your Override added, insert the following coding into the newly created Override.
    A: Grounded Up Taunt (Facing Right)
    B: Aerial Up Taunt (Facing Right)
    AA: Grounded Up Taunt (Facing Left)
    BB: Aerial Up Taunt (Facing Left)
    C: Grounded Down Taunt (Facing Right)
    D: Aerial Down Taunt (Facing Right)
    CC: Grounded Down Taunt (Facing Left)
    DD: Aerial Down Taunt (Facing Left)
    E: Grounded Side Taunt (Facing Right)
    F: Aerial Side Taunt (Facing Right)
    EE: Grounded Side Taunt (Facing Left)
    FF: Aerial Side Taunt (Facing Left)
    Change Action action=0, requirement=Animation End
    Additional Change Action Requirement On Ground
    Change Action action=14, requirement=Animation End
    Additional Change Action Requirement In Air
    Controller 02
    If Button Pressed: 6
       If Facing Right:
          Basic Variable Set: RA-Basic[0] = A
          Basic Variable Set: RA-Basic[1] = B
       Else
          Basic Variable Set: RA-Basic[0] = AA
          Basic Variable Set: RA-Basic[1] = BB
       End If
       Character Specific 0A: Value-0,
    Else If Button Pressed: 7
       If Facing Right:
          Basic Variable Set: RA-Basic[0] = C
          Basic Variable Set: RA-Basic[1] = D
       Else
          Basic Variable Set: RA-Basic[0] = CC
          Basic Variable Set: RA-Basic[1] = DD
       End If
       Character Specific 0A: Value-1,
    Else If Button Pressed: 8
       If Facing Right:
          Basic Variable Set: RA-Basic[0] = E
          Basic Variable Set: RA-Basic[1] = F
       Else
          Basic Variable Set: RA-Basic[0] = EE
          Basic Variable Set: RA-Basic[1] = FF
       End If
       If Button Pressed: 9
          Character Specific 0A: Value-2,
       Else If Button Pressed: 10
          Character Specific 0A: Value-3,
       Else
          If Compare: IC-Basic[8] < 0
             Character Specific 0A: Value-2,
          Else
             Character Specific 0A: Value-3,
          End If
       End If
    End If
    Set Loop Infinite
       If On Ground:
          Set Air/Ground: On Ground
          Set Edge Slide: Can't drop off side of stage
          If Bit is Set: RA-Bit[16]
             Change Subaction: sub action=RA-Basic[0], pass frame=true
          Else
             Change Subaction: sub action=RA-Basic[0]
             Bit Variable Set: RA-Bit[16] = true
          End If
          Additional Subaction Change Requirement: In Air
       Else
          Set Air/Ground: Undefined(10)
          Set Edge Slide: In Air; Can leave stage vertically
          If Bit is Set: RA-Bit[16]
             Change Subaction: sub action=RA-Basic[1], pass frame=true
          Else
             Change Subaction: sub action=RA-Basic[1]
             Bit Variable Set: RA-Bit[16] = true
          End If
          Additional Subaction Change Requirement: On Ground
       End If
       Loop Rest
    Execute Loop
    What this coding does is change the Taunt Action to be able to be used in the air, but we're not done yet. We still need to ensure Up Taunt can even be used in the air, as Actions have their own Flags that allow them to be used in the air or not. What we need to do now is edit the Action Flags and Unknown Action Flags (also known as Unknown7 in BB).

    1b). Action Flags and Unknown Action Flags
    Like Action Overrides, editing Action Flags is easy with BrawlBox. You just need to open the dedicated folders, navigate to the given Action (in this case, it's Action 268), and edit them to match the values the Common Action Flags and Unknown7 Jigglypuff's Rest (Action 277) uses. You'll have to open both your moveset and Jigglypuff's file, and compare the values of Action 268 of your file to Jigglypuff's Action 275 (you'll have to open Action Flags, rather than Common Action Flags for this one).

    It's unfortunately not that easy with the PSA side of things, but it's not as difficult as you think. You just need to open your character and Jigglypuff in Tabuu, navigate to Action ??? and Common/Special Action Flags [(Example Image)], and make your character's Action 10C match Jigglypuff's Action 115, but you need to right click, and click on Hex View, then edit to match. After that, scroll up, right click, and save.
    NOTICE: Tabuu will crash when you save your edits. This is supposed to happen. Your edits still saved, so don't panic.

    Part 2: Button Input Coding
    This is the part where you insert the coding needed to even activate the Aerial Taunts. Now, depending on whether or not you want to use an external gct code, your coding will be built around what you chose. The said gct code is Independent Sub Routines. (Thread Link)

    This is also the part in which you make a new Sub Routine. After you've made your Sub Routine, insert the following coding into it.
    XX: LA-Bit Variable
    If Button Press: 6
    Or Button Press: 7
    Or Button Press: 8
    Or Button Press: 9
    Or Button Press: 10
       Change Action action=268, requirement=In Air
       Additional Change Action Requirement Value Not Bit is Set: LA-Bit[XX]
       Additional Change Action Requirement Not Is in Water
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 16
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 33
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 61
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 62
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 63
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 66
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 69
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 71
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 72
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 75
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 76
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 86
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 98
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 100
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 112
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 171
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 172
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 173
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 204
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 205
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 206
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 207
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 208
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 209
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 210
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 211
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 218
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 213
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 214
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 215
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 216
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 217
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 226
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 227
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 230
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 231
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 232
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 233
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 234
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 235
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 236
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 237
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 238
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 239
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 240
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 258
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 259
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 263
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 264
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 265
       Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 266
    End If
    What this coding does is check the following things if the DPad is pressed: Which Action the character isn't in, if they're in the air, if the Bit is not set, and if they're not in water. If all requirements are met, then pressing the D-Pad will put the character into the Aerial Taunt Action. The Actions listed in the coding are Actions in which the character can't interrupt with anything, and the Bit check is there, so you don't go spamming the D-Pad in the air.

    If you're not going to use the gct code, then you'll need to place the coding inside an infinite loop as such.
    Set Loop Infinite
       If Button Press: 6
       Or Button Press: 7
       Or Button Press: 8
       Or Button Press: 9
       Or Button Press: 10
          Change Action action=268, requirement=In Air
          Additional Change Action Requirement Value Not Bit is Set: LA-Bit[XX]
          Additional Change Action Requirement Not Is in Water
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 16
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 33
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 61
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 62
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 63
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 66
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 69
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 71
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 72
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 75
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 76
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 86
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 98
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 100
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 112
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 171
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 172
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 173
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 204
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 205
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 206
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 207
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 208
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 209
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 210
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 211
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 218
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 213
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 214
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 215
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 216
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 217
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 226
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 227
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 230
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 231
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 232
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 233
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 234
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 235
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 236
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 237
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 238
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 239
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 240
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 258
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 259
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 263
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 264
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 265
          Additional Change Action Requirement Comparison Not Compare: IC-Basic[20001] == 266
       End If
       Synchronous Timer: frames=1
    Execute Loop

    Next, you'll need to insert the following coding into the DamageFall Sub Action:
    If Compare: IC-Basic[20003] == 69
    Or Compare: IC-Basic[20003] == 117
       Bit Variable Clear: LA-Bit[68] = false
    Else
       Bit Variable Set: LA-Bit[68] = true
    End If
    What this coding does is check to see if the character was previously in hitstun or hanging on a ledge before entering the tumble Action. If the previous Action was either of those, then the Bit will be cleared. Otherwise, the Bit will be set. This is to prevent the character from taunting out of Final Smashes, such as Ike's and Kirby's Final Smashes.

    Inside the Wait1 Sub Action, you'll place the following coding if you chose to use the External Sub Routines code.
    X=Offset of the first Sub Routine made in this step.
    Bit Variable Clear: LA-Bit[68] = false
    If 60: 8
       D070200: Value-8, Value-16,
       D050200: Value-8, Offset-SubRoutineX in the SubRoutines list,
    End If
    This will clear the Bit used for the Bit check, alongside establishing the start of the Independent Sub Routine

    If you didn't choose to use the gct code, you'll just insert the Bit Variable Clear command and a Sub Routine command that directs to the newly created Sub Routine, but you'll also have to insert this Sub Routine into every aerial Sub Action that can be acted out of at one point or another. Since it's an infinitely looped string of coding, you'll need to merge Sub Action coding to make room for inserting the Sub Routine.

    Part 3: Misc
    To finish things off, you'll need to insert a Bit Variable Set command into the beginning of Aerial Sub Actions (including the Taunt Sub Actions) that can be acted out of (with the exception of the Falling Sub Actions) to prevent Taunting out of the move early. At the end of the Sub Action, you'll insert a Bit Variable Clear command to allow it to be acted out of normally, but only if the Sub Action has an Allow Interrupt command (in which you would place the Bit Variable Clear before it). To optimize things, you can use Sub Routines for the Bit Variable Set and Bit Variable Clear parts.

    Even though not many people will use this, I'm making this to share what I did, while also throwing this out for those who would use this. Thanks for reading.

    If you come across any issues, make sure you inserted the coding correctly, and are also able to consecutively trigger the issue. If you can, then let me know what's wrong. Otherwise, I'll have to dismiss your issue as you doing it wrong.
    Logged

    I don't take requests.

    My PSA Thread

    Bush
    ALL YOUR PLANT ARE BELONG TO BUSH
    Special Access
    *****
    Offline Offline

    Posts: 994


  • Awards 2011 SSBB Tournament Winner Pin Collector Staff Helper Cookie Clicker!

  • View Profile WWW Awards
    « Reply #1 on: July 24, 2016, 10:01:34 PM »


    I'd love to see a example :0
    Logged

    KingJigglypuff
    Meme Machine
    Moderator
    ****
    Offline Offline

    Posts: 7206


  • Awards RAGE!! >9000 Hyperactive Contributor Heart Container

  • View Profile Awards
    « Reply #2 on: July 25, 2016, 05:41:26 AM »


    I'd love to see a example :0
    Here you go then. Tongue
    https://gfycat.com/SimplisticSomeBeardeddragon
    Logged

    I don't take requests.

    My PSA Thread

    Bush
    ALL YOUR PLANT ARE BELONG TO BUSH
    Special Access
    *****
    Offline Offline

    Posts: 994


  • Awards 2011 SSBB Tournament Winner Pin Collector Staff Helper Cookie Clicker!

  • View Profile WWW Awards
    « Reply #3 on: July 25, 2016, 11:03:44 AM »



    Holy Bushes, that's pretty neat and I really appreciate the fact you figured this out on your own

    Maybe in the future you could apply the same to to Smash4 Cheesy
    Logged

    Pages: [1]
    Print
    Jump to: