Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - aidolu12

Pages: [1]
1
Awesome, already followed what you told me before you fixed the link.. I did it! I added a formula bases on speed!, i just finished the testing.

First thing was to add a method, cause I saw the STR and MAG formulas also had one, and then had to put it on CalcMain for this to have effect. I took the "unused" ones that appears on the Hades Worskhop list ("unused 78" and so on).

Now I need to mix it with the weapon attack. I know there are formulas for weapon attacks, the issue with them is that they do not count the power on the spell, so it does not matter how much power I add, the damage is about the same.

I was looking into the programming on drain, it seems that they equal the calculated amount for damage to the absorbed caster hp, that way they could put in on one line. I would experiment a little bit to make the same, but instead of absorbing the damage, it just recovers 5% of the caster max hp.

2
I think I understand. Thanks.

BTW, when i open the link you sent me, it says that the folder "Public/FinalFantasyIXCode" does not exist.

3
As always, thanks Tirlititi for Hades Workshop.

I am not an expert on programming, I have been trying to modify formulas, so there is already two for strenght and magic based attacks:

( (power-defense) * random[str or mg, str or mg + (level + str or mg)/8]

I would like to add (or replace) a formula like this but based on speed. I tried using dnSpy, but when I compiled i got multiple errors on btl_calc... I saw the error list and the errors comes from others lines completely different from the ones i was modifying, so I though it might be compatibility issues or it is me who is commiting the mistake.

Would anybody help me on this topic to see if is it possible to do this modification?

4
@aidolu12: Yes, it's extremely difficult to do CIL changes by only looking at the CIL code. It's way better to look at the C# code to at least understand how the engine works before guessing how you can tweak it (it requires reading C# but that's always better than CIL).
You can see the C# code in Memoria's Github page, or using a tool like dnSpy or dotPeek.

For your particular question, it's not particulary easy in CIL, but you might change the method "BattleHUD::GoToBattleResult" and add this kind of lines:
Code: [Select]
call 0x6000F5D // FF9StateSystem::get_Battle
ldfld 0x4002267 // BattleState::FF9Battle
ldfld 0x4002230 // FF9StateBattleSystem::btl_list
ldfld 0x4000226 // BTL_DATA::next
ldfld 0x400022A // BTL_DATA::cur
ldfld 0x4000809 // POINTS::hp
call 0x6000F5D // FF9StateSystem::get_Battle
ldfld 0x4002267 // BattleState::FF9Battle
ldfld 0x4002230 // FF9StateBattleSystem::btl_list
ldfld 0x4000226 // BTL_DATA::next
ldfld 0x4000229 // BTL_DATA::max
ldfld 0x4000809 // POINTS::hp
ldc.i4.4
div
add
call 0x6000F5D // FF9StateSystem::get_Battle
ldfld 0x4002267 // BattleState::FF9Battle
ldfld 0x4002230 // FF9StateBattleSystem::btl_list
ldfld 0x4000226 // BTL_DATA::next
ldfld 0x400022A // BTL_DATA::cur
stfld 0x4000809 // POINTS::hp
This only restores 25% of max HP of the 1st character only (and doesn't even check if it goes over the max HP limit)...
Best is to use Memoria for that and add these lines instead, since you can surely use local variables when replacing C# code:
Code: [Select]
for (BTL_DATA next = FF9StateSystem.Battle.FF9Battle.btl_list.next; next != null; next = next.next)
if (next.bi.player != 0 && next.cur.hp>0)
next.cur.hp = min(next.cur.hp + next.max.hp / 4, next.max.hp);
Much simpler indeed ^^'

@Gordo98: What you want to do is not related to AI but to the battle system, so CIL code or C# again :/
And increasing the duration of status effects is not possible with HW, as explained here. The best you can do is to change the tick for poison/venom/regen.

Tirlititi, thanks, I have not try it yet, I have been busy, but as soon, will let you know.

5
Hi Tirlititi, hope you are doing great, once again thank you for working on this tool! have been wonderful.

May I ask, since you told me to check the CIL codes to modify some parts of the game engine results (not sure how to put that), have been quite difficult for me to understand the language, even though I got a little bit more use to it.

I wanted to ask, and I am quite sure will be possible, but not sure how to put it inside the coding. Can the party HP and MP be recovered after a battle? or 25% of current hp and mp? If anybody know how to put it, will be awesome for letting me know.

6
Hi Aidolu ! Welcome back :D
Unfortunatly, while it is surely possible to do it, I don't know how... The MIPS code could certainly access to the AP and exp of the characters (in battle - it wouldn't be usable in menu anyway -), but it would require the expertise of a good person who does RAM analysis to find which sequences to use to retrieve these values.

There's a list of known fields in the MIPS help that you can access in the spell effect codes. There are HP, stats, trance gauge, level and activate supporting abilities, among others, but there's no exp nor AP (and I think it's not in the same structure so you wouldn't find them even by trying every possible figures).

In order to increase the level, that's this sequence :
lbu:     $1 = $19[122] & 0xFF
addiu: $1 = $1 + 1
sb:      $19[122] = $1 & 0xFF

However, I would bet that it would have only a twisted effect to directly change the level value :
1) Max HP/MP will most likely increase, but not the other stats (strength...),
2) The exp doesn't change so it will need more time to level up once again after that,
3) It may even be possible that the level gets reverted back to normal at the end of the battle. In this case, the only noticeable difference will be the effectiveness of spells like Lvl 5 death or so...

Sorry, I kind of deserted the PSX version for the Steam version now... Well, when something can be done for both, I do it (copy/paste the spells of enemies, for instance), but MIPS is just too related to the PSX version to get improved.


Oh though MIPS where for both, I was thinking on passing to STEAM version when you just released the tool for it, but I had these problems with the tags for the colors and text filling, then I move from my country to another so until now I did not have time for it. Is it possible to edit the effects for the STEAM version, I will download it again (I bought it but it was installed on my PC from my hometown.)

Further than that, just to thank you again, this tool has improvised to impressive levels, and my mind to, to make better mods.

7
Hi Tirlititi, seems the tool has really advanced since i used (Final Fantasy Formula IX).

I am on the start of a new project, and interested on asking if was it possible to create a MIP CODE that let an item give exp or ap to the characters.

Thank you for all your work.

Pages: [1]