Users browsing this thread: 1 Guest(s)
"Instant Death" over-rides "Miss if prot. from ailments"

#1
Posts: 32
Threads: 4
Thanks Received: 0
Thanks Given: 0
Joined: Mar 2012
Reputation: 0
Status
None
Hello,

In the mod I am working on, I want to make Cyan more useful, which of course requires some re-thinking on his Swdtech/Bushido skills. The one I currently have my eye on most is, of course, Cleave/Oblivion, a skill whose usefulness is hampered by A.) the long time it takes to charge, and B.) the fact that so many enemies are immune to Instant Death attacks.

Removing the "Spell miss if Death prot." check in FF3usME will, of course, allow the skill to bypass this and kill anything, but it also makes the ability *way* overpowered, as you can imagine! I attempted to bypass this by having the skill inflict a status effect which doesn't really seem to play any role in battle for enemies (Magitek, Near Death), set the skill to miss if the enemy is immune to such effects, and of course making choice enemies immune to them, while leaving most enemies (Death protection or not) vulnerable to said ailment, allowing the skill to slice them. However, even if an enemy is immune to this status effect, the skill still hits, killing them. Can anyone think of a way to bypass this?

One thing I am considering is looking at the Suplex skill's code for guidance, and combining it somehow with a version of the X-Zone/Odin/Cleave's code in a different section of that bank, but I'm not sure if this will work, and I certainly don't want Oblivion to just check for Suplex immunity! Any advice or solutions?
  Find
Quote  

#2
Posts: 290
Threads: 3
Thanks Received: 40
Thanks Given: 1
Joined: Apr 2012
Reputation: 9
Status
None
Regarding SwdTech, the crux of the issue with its usefulness is how slowly it charges. There's a patch that fixes that, which I've found helps tremendously in re-balancing the skill: http://slickproductions.org/ff6patch.php...ch%20Gauge

Regarding your issue, one option is to utilize unused bits in special byte 3 and somewhere in the monster properties. This method would require you to interrupt the hit calculation to perform a check for these two bits, but it would work. Someone else may be able to come up with a more elegant solution, though.


GET A SILK BAG FROM THE GRAVEYARD DUCK TO LIVE LONGER.

Brave New World
  Find
Quote  

#3
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
Your best bet is to write a custom Extra effect that takes everything you want into consideration, You should start with the "Cancel Enemy desparation attacks" code as a base (since I'm assuming you don't want the enemy to be unable to counter before dying) and copy it elsewhere, then modify the code to include everything you need. Then you add a pointer to the location of the code to a "blank" space in the pointer list starting at C2/3DCD, replace one of the lines with "8C 38" which is just a return, just not the one at C2/3DCD since thats the default that all spells with no extra effect have set. If you haven't made changes here before, you can put it at C2/3DD1 then set your extra effect to (0x02) in FF3usME.

Code:
Table for special effects code pointers 1 (abilities)

C2/3DCD: 8C 38
C2/3DCF: 8C 38
C2/3DD1: ?? ?? ($02) (Pointer to your code!)
C2/3DD3: 43 3D ($03)
C2/3DD5: F2 38 ($04)
C2/3DD7: 8C 38 ($05)
C2/3DD9: 8C 38
C2/3DDB: 8C 38
  Find
Quote  
[-] The following 1 user says Thank You to B-Run for this post:
  • ReturnerScum (01-18-2016)

#4
Posts: 32
Threads: 4
Thanks Received: 0
Thanks Given: 0
Joined: Mar 2012
Reputation: 0
Status
None
I'm aware of the patch that fixes the speed of SwdTech, but my goal has been to work within the current boundaries given by the game, regarding SwdTech's speed, and make each successive technique worth the long wait; or as worth it as I can make it. I'm very satisfied with what I've done for SwdTech skills 1-7; I just need something to make the level 8 skill satisfactory.

I think I'll try what Edrin has suggested, and report back my findings, whether they're successful, failure, or otherwise.
  Find
Quote  

#5
Posts: 32
Threads: 4
Thanks Received: 0
Thanks Given: 0
Joined: Mar 2012
Reputation: 0
Status
None
A crude code did get some results, however...

Code:
B9 80 3C     LDA $3C80,Y
89 04        BIT #$04       (Is Can't Suplex set in Misc/Special enemy byte?)
F0 04        BEQ $3C5A      (If not, branch)
4C 1B 3B     JMP $3B1B      (flag Miss)
60           RTS
4C 8c 3c     JMP $3C8C        Jump to X-Zone effect

...it seems that missing the opponent by these means is also over-riden by the skill causing instant death. In other words, Oblivion is successfully missing enemies marked "Can't Suplex", but Death is still being inflicted. I tried flagging the Death stat to the actual Suplex skill (whose code is untouched) to see if there was anything wrong with my coding, and I got the same results: Sabin failed to Suplex his opponent, and his opponent perished.

It seems I will have to pursue other options. I could fumble around with Reflect???'s code (in which invalid targets are simply not targetted) or I could try a code which sets the Death stat itself on condition that the attack hits (Metamorph seems a healthy launching point), but I'm not sure how status effects work.
  Find
Quote  

#6
Posts: 36
Threads: 12
Thanks Received: 0
Thanks Given: 7
Joined: Apr 2013
Reputation: 0
Status
None
I have än Idea for Obilivion which i am trying to implement myself, But dont know if it is possible.
What if it has the same effect as normal, But if One or more enemies are immune to death, they just get mayor damage instead.
And they split the damage. So vs bosses they get all the damage alone!
Huh? Huh huuuuuuuh!?
  Find
Quote  

#7
Posts: 52
Threads: 5
Thanks Received: 24
Thanks Given: 0
Joined: Jun 2010
Reputation: 6
Status
None
Code:
C2/224B: AD A2 11     LDA $11A2
C2/224E: 89 02        BIT #$02      (Check for spell miss if death prot.)
C2/2250: F0 07        BEQ $2259     (Branch if not ^)
C2/2252: B9 A1 3A     LDA $3AA1,Y
C2/2255: 89 04        BIT #$04
C2/2257: D0 5C        BNE $22B5     (Always miss if Prot. from death)

Replace LDA $3AA1,Y with a JSR to some free space and put the following code there:

Code:
AD A7 11       LDA $11A7    (Attack's Special Byte 3)
89 08          BIT #$08
D0 05          BNE $--
B9 95 3C       LDA $3C95,y    (Target's Special Byte 3)
4A             LSR
60             RTS

B9 A1 3A       LDA $3AA1,y    (Special Properties)
60             RTS

With this change you can set the first ? bit of Special 3 (Right under "If hits, text") in a spell's data which will signal to check the ? bit between "No Name" and "Human" in the monster's data instead of checking for Death Prot.
Quote  
[-] The following 3 users say Thank You to Drakkhen for this post:
  • Gi Nattak (07-29-2013), ReturnerScum (01-18-2016), Warrax (09-08-2022)

#8
Posts: 32
Threads: 4
Thanks Received: 0
Thanks Given: 0
Joined: Mar 2012
Reputation: 0
Status
None
That sounds like it could work, except I don't want this to affect other spells and skills which regularly miss when the enemy is protected against Instant Death; I only want Oblivion to be affected. In other words, I want this to be a separate entity from Instant Death protection, and not replace it.
  Find
Quote  

#9
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
So copy the code he has to a new location and add it as an extra effect with the method I gave you earlier.
  Find
Quote  

#10
Posts: 32
Threads: 4
Thanks Received: 0
Thanks Given: 0
Joined: Mar 2012
Reputation: 0
Status
None
I tried Drakken's code, exactly, to see if it worked, and unless I've done something wrong, it simply doesn't. Not only does the attack hit the enemy, with no exceptions, but it negates the Vanish + Doom bugfix for Death spells, as well as the nature of Stamina being involved in defense.
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite