Title: [Advanced] Aerial Taunting Post by: KingJigglypuff 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) (http://i.imgur.com/FVjhcn4.png) -Depending on which character you want to edit; PSA (https://www.dropbox.com/s/2msd86co64ujdfb/PSA%20v1.3%20%28Sammi%20Husky%29.zip?dl=0), a Hex Editor (https://mh-nexus.de/en/downloads.php?product=HxD), and Tabuu (https://www.dropbox.com/s/iymz8d0ja9bie4i/Tabuu%20Alpha%203.zip?dl=0), or BrawlBox v0.68b (http://forums.kc-mm.com/Gallery/BrawlView.php?Number=31974). -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) (http://forums.kc-mm.com/index.php?topic=74266.0) (Check this Open SA page to see which Variables the game already uses) (http://tinyurl.com/p4ojsod) 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) (http://i.imgur.com/NP7uNQa.png)], but if your character can't be edited in BrawlBox, you'll have to use the other tutorial for adding new Overrides. (Link) (http://forums.kc-mm.com/index.php?topic=65585.0) 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 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) (http://i.imgur.com/JyOWFPa.png)], 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) (http://forums.kc-mm.com/index.php?topic=75336.0) 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 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 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 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. Title: Re: [Advanced] Aerial Taunting Post by: Bush on July 24, 2016, 10:01:34 PM I'd love to see a example :0
Title: Re: [Advanced] Aerial Taunting Post by: KingJigglypuff on July 25, 2016, 05:41:26 AM I'd love to see a example :0 Here you go then. :Phttps://gfycat.com/SimplisticSomeBeardeddragon Title: Re: [Advanced] Aerial Taunting Post by: Bush on July 25, 2016, 11:03:44 AM Here you go then. :P https://gfycat.com/SimplisticSomeBeardeddragon 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 :D |