Users browsing this thread: 1 Guest(s)
Black Belt Counterattack
02-13-2014, 04:00 AM
Have just found out that counterattack using black belt is handled in
903D0 (command)
903D6 (additional value i.e. spell type)
(FF VI Advance)
1. Is it possible for each character to have it's own counterattack?
2. When I change counterattack method into Throw, the name and damage is always the last ever thrown item (or Dagger before I throw anything). That is not happened when I use spell as counterattack (i.e. set it as Death, Ultima, or even Hyper drive, and the spell will counter the attacker as normal ST spell).
Is there any method to handle them?
Thanks.
903D0 (command)
903D6 (additional value i.e. spell type)
(FF VI Advance)
1. Is it possible for each character to have it's own counterattack?
2. When I change counterattack method into Throw, the name and damage is always the last ever thrown item (or Dagger before I throw anything). That is not happened when I use spell as counterattack (i.e. set it as Death, Ultima, or even Hyper drive, and the spell will counter the attacker as normal ST spell).
Is there any method to handle them?
Thanks.
02-13-2014, 07:09 PM
1. Definitely, and I don't think it would be terribly complicated ASM coding -- it's actually not a bad idea, and I may take a look at trying it myself. What you'd want to do is jump to a subroutine that checks which character is acting/counterattacking and returns the relevant command/ability rather than a fixed one.
2. What I suspect is happening is that you're not setting a specific Thrown item as part of the counterattack, so it's using the existing state of the variable -- #00 before you've otherwise Thrown anything, and then the #ID of whatever was thrown last once you have -- to determine which item is being Thrown. It's not Throw itself that's broken, it's the way it interacts with the counterattack function.
There'd be a way to fix Throw-as-counterattack however you want it to work; the degree of complexity depends on what you want it to do. If you have a specific Thrown item in mind, that's much simpler; you'd just need to set it during the command process. (I'd need to look at the code to figure out exactly how/where you'd do that, which I don't have time for now but may look at later.) If you want a random Thrown item, it becomes increasingly complex, and moreso depending on whether you're checking existing inventory vs. all-Throwable-items (which would be interesting if Shadow randomly counterattacked with a Thrown, IDK, Illumina or something); you'd need to write code that checks through the Throwable items in the inventory. Although you may be able to cannibalise that from the function that builds the Throw menu.
2. What I suspect is happening is that you're not setting a specific Thrown item as part of the counterattack, so it's using the existing state of the variable -- #00 before you've otherwise Thrown anything, and then the #ID of whatever was thrown last once you have -- to determine which item is being Thrown. It's not Throw itself that's broken, it's the way it interacts with the counterattack function.
There'd be a way to fix Throw-as-counterattack however you want it to work; the degree of complexity depends on what you want it to do. If you have a specific Thrown item in mind, that's much simpler; you'd just need to set it during the command process. (I'd need to look at the code to figure out exactly how/where you'd do that, which I don't have time for now but may look at later.) If you want a random Thrown item, it becomes increasingly complex, and moreso depending on whether you're checking existing inventory vs. all-Throwable-items (which would be interesting if Shadow randomly counterattacked with a Thrown, IDK, Illumina or something); you'd need to write code that checks through the Throwable items in the inventory. Although you may be able to cannibalise that from the function that builds the Throw menu.
For now, it's possible for general counterattack. The thrown item is read from 030036D0 (have just found it), which is unmodified by counterattack (must be modified when choosing thrown item). Luckily, only 17 modified bytes (and still under counterattack only).
This is what I've changed
For personal counterattack and inventory based-Throw, still haven't found the related subroutine (still need help for it).
Anyway, Thanks.
This is what I've changed
Code:
903D0 2008
903D4 2043
903D6 7060
903D8 4B04
903DA 7018
903DC F000
903DE FD05
903EC 36D0
903EE 0300
Anyway, Thanks.
« Next Oldest | Next Newest »
Users browsing this thread: 1 Guest(s)