Seen January 10th, 2017
Posted April 21st, 2016
180 posts
5.3 Years
Sorry for the double post, but I actually have a contribution as well as a question

These are my Close Combat Effect scripts:

Method 1:

Emerald:
Spoiler:
#dynamic 0xXXXXXX
#freespacebyte 0xFF

#include moves.bsh

#org @start
attackcanceler
accuracycheck 0x82D8A5E 0x0
attackstring
ppreduce
calculatedamage
attackanimation
waitanimation
missmessage
cmd5c 0x0
waitstate
graphicalhpupdate 0x0
datahpupdate 0x0
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
jumpifstat 0x1 0x3 0x2 0x0 @next
jumpifstat 0x1 0x0 0x5 0x0 @end

#org @next
setbyte 0x202448F 0x0
playstatchangeanimation 0x1 0xE 0x1
setbyte 0x202448E
statbuffchange 0x41 TRUE @next2
jumpifbyte 0x0 0x2024337 0x2 @next2
printfromtable 0x85CC89C
waitmessage 0x40

#org @next2
setbyte 0x202448E 0x95
statbuffchange 0x41 TRUE @end
jumpifbyte 0x0 0x2024337 0x2 @end
printfromtable 0x85CC89C
waitmessage 0x40

#org @end
goto 0x82D8A4E


Fire Red:
Spoiler:
#dynamic 0xXXXXXX
#freespacebyte 0xFF

#include moves.bsh

#org @start
attackcanceler
accuracycheck 0x81D695E 0x0
attackstring
ppreduce
calculatedamage
attackanimation
waitanimation
missmessage
cmd5c 0x0
waitstate
graphicalhpupdate 0x0
datahpupdate 0x0
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
jumpifstat 0x1 0x3 0x2 0x0 @next
jumpifstat 0x1 0x0 0x5 0x0 @end

#org @next
setbyte 0x2023FDF 0x0
playstatchangeanimation 0x1 0xE 0x1
setbyte 0x2023FDE 0x92
statbuffchange 0x41 TRUE @next2
jumpifbyte 0x0 0x2023E87 0x2 @next2
printfromtable 0x83FE57C
waitmessage 0x40

#org @next2
setbyte 0x2023FDE 0x95
statbuffchange 0x41 TRUE @end
jumpifbyte 0x0 0x2023E87 0x2 @end
printfromtable 0x83FE57C
waitmessage 0x40

#org @end
goto 0x81D694E


Method 2:
I'll just post one version of this:

Fire Red:
Spoiler:
#dynamic 0xXXXXXX
#freespacebyte 0xFF

#include moves.bsh

#org @start
attackcanceler
accuracycheck 0x81D695E
attackstring
ppreduce
calculatedamage
attackanimation
waitanimation
missmessage
cmd5c 0x0
waitstate
graphicalhpupdate 0x0
datahpupdate 0x0
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
setbyte 0x2023E85 0xD7
seteffectwithchancetarget
setbyte 0x2023E85 0xDA
seteffectwithchancetarget
goto 0x81D6947


While both of these can be used fine, they have their problems.

Method 1 has an animation which is consistent with the rest of the game: 1 grey downwards anmation for both stats. However, if, say, the user Has -4 in Defense and -6 (maximum, - 3 and - 5 works fine) in Sp. Def at one point, neither will be lowered. It only works if the stats are lowered at the same phase.

Method 2 has good functionality as it treats both stats seperately. However, it has 1 animation for each stat so you have to go through two "lower stats animation" every time you use the move (which is inconsistent with the rest of the game).

So yeah, feel free to use whichever you want. I would love if someone else could help me see what I miss in the first animation to make it have 1 animation for lowering the stats but treat Sp. Def and Def separately.