[PSX/PC] General editor - Hades Workshop (0.50b)

  • Thread starter Thread starter Tirlititi
  • Start date Start date
Status
Not open for further replies.
Yeah, there is one version of Russian fan-translation for Steam, but not everyone satisfied with it, cause many things different from ENG and JAP version.
 
Thank you very much Satoh :)
I'll need names for the animations but knowing with which animation code they are used will be of a great help! Not to mention which model(s) use them.
As I said some time ago, there is a database for animations inside the game's source code, but I need mostly naming them. You can find that database here (search for "AnimationDB"):
https://www.dropbox.com/s/71ban3ghh589nag/Source_Database.cs?dl=0

@TW_Bear: For changing the dialogs, it's in the "Environment -> Texts" panel. You need to double-click on a text to edit it.
However, there is already a russian translation out there, using Albeoris's tool, as Fraggoso said ^^'
https://vk.com/club598031?w=wall-598031_6136/all
 
Apologies. Been quite some time since I checked the thread, still haven't caught up 100%.
Looking at that DB, I can already see that some of these should be easy to name. There's a number of patterns to the strings, such as ZDN being an obvious Zidane.

I'll spend some time looking at this and see if I can't hack something together for... some of it at least.

EDIT: Ok, a lot of this looks pretty easily deciphered, but is there something specific you need from the list? Character names, super short animation names, or any specific formatting?

The animationDB strings are labeled in a {ANH, what type of object uses, what part of the game used, who specifically uses, name of animation}
Some of the generic NPC names might be annoying to decipher but it should be something that can be cross referenced with models.
I'll get to work reformatting the strings for now, but if there's a specific format you want for the names, do mention it.


EDIT2:
Ok, fair warning, this file is 472 kb, which can take a while to load in pastebin, I'm sorry for that.
But this is the only way I can see to upload it...
These names aren't fully resolved, but they should be at least understandable at now.
I can remove any data from it if you want, like the NPC/Important NPC/Main category, and the Field_V# category. I believe the Field Version is something to do with quality, as higher numbers appear to correlate with being closer to the camera in fields... that's a guess, it's probably NOT important, but I left it in just in case.
There's also a list for Battle and World animations, but I separated those out because I figured most of the usage would be for field scripts. (and they would make the file larger than I could upload.)

Second warning, it will take a while to load and may stall some browsers while it does.
https://pastebin.com/D0cMB7B1


Unreleated EDIT:
I've noticed a few scripting foibles while playing with the steam version...

the IsButton family of commands do not universally work with directions and other buttons. They seem to work fine with OK, Cancel, and Card, but other things like Select may not always work. I believe this is because the Steam game has some of those functions hard coded, rather than emulating PSX controller input.

I was trying to write an animation test script, where you'd control the animation ID with key inputs to increase or decrease... it worked to a degree, but only the OK, Cancel, and Card buttons actually registered in the field, so I've been revising it and haven't quite gotten it to work yet.

I did learn two other things while doing this.
1. It may be tempting to try to assign a new model to an object that has one already, but it results in a partial soft lock. (the Exit menu still works, but the rest of the game is frozen)
2. Animations may not look very nice when played on the wrong model, but it is safe(the game won't lock) to assign the wrong animation to a model.
 
Last edited:
Thanks you Satoh for this other animation list :D

I think the "IsButton" worked well for directions in the PSX version. That'd be a shame if they don't work anymore :/
Here's a list of the buttons :
Code: [Select]
Code:
0 : Select3 : Start4 : Up5 : Right6 : Down7 : Left8 : L29 : R210 : L111 : R112 : Triangle13 : Circle14 : Cross15 : Square16 : Cancel17 : Confirm19 : Moogle20 : L1 Ex21 : R1 Ex22 : L2 Ex23 : R2 Ex24 : Menu25 : Select Ex
Use the power of 2 for the number in the script.
For instance, "8" corresponds to 2^3 -> Start button. "40" corresponds to 2^3 + 2^5 -> Start or Right button.

You see that there seems to be duplicates: there is "Square" but also "Moogle". In fact, the first will always react to a square button input while the second one will react depending on the player's settings (in FF9 config menu). Same for the L/R buttons and there "Ex" counterpart.
Maybe you can try both "Select Ex" and "Select". However, I know that my controller's select button has trouble with several games and FF9 is part of them.

The "Start" button, at least in PSX, is triggered if the player pauses the game and then unpause it, but it triggers only once.
 
Well, I was trying to put it all inside the Zidane_Loop function... which maybe is too much code for that and won't work...
I noticed that a lot of stuff prefers to call synchronous code inside the Loop function, instead of letting the code be inside it...

Maybe I just need to rethink everything I was doing from the ground up.

Although, I didn't know about the Ex versions of the buttons... I wonder why there are two copies.
 
The copies are for the remapping of the buttons: you can remap them in FF9 config menu just like the others. I think the "Ex" version is the remapped button while the normal is the controller button ignoring the remapping.
I don't think there's any limit on the code you can put/execute in a loop function. However, I thought that maybe "IsButton" doesn't work with the directional arrows and only "IsButtonDown" works with them.

The theoritical difference can be seen in this kind of loops:
Code: [Select]
Code:
while (1) {    if (IsButton(16)) {        AddItem( 1, 1 ) // Add 1 Dagger everytime the player presses "Up"    }    if (IsButtonDown(16)) {        AddGil( 1 ) // Add 1 gil every frame as long as the button "Up" is pressed    }    Wait(1)}
In practice, maybe they disabled the check of "IsButton" on the arrows for some reason. They use "IsButtonDown" for sure for special windows such as the Treno Action bidding (for selecting the amount of gil you want to bid).
 
This is an unrelated comment to my previous ones, but I have a suggestion to help with editing.

Show the ID numbers somewhere in the Strings and Fields lists so they can be easily compared with the numbered text file exports.

The Fields especially take a really long time to load in the editor when it first opens, so opening the editor to check one small detail can actually take some time
(I clocked it at about 5 minutes to load all the fields, during which time the editor was busy and couldn't be used, so I had to wait for it to finish. Also each field in the list seems to take about 2 times as long to load as the previous one, which gets quite slow after going through 817 fields twice. I'm assuming that's a limitation of how they're stored, and can't be fixed.)

Having the Field names and ID numbers export to text would be helpful, and so would being able to see the ID numbers in the editor, so the names would match up.

I often use the text dump to do a mass text search to find the code I want to inspect, but once I find the right text file in the scripts, I have to figure out which field it is in the editor by counting from the top of the list.

Simply listing ' 1 Prima Vista/Cargo Room ' instead of only ' Prima Vista/Cargo Room ' in the list box or somewhere on the editor panel would help a lot.
I'm sure the same is true with Strings, but I haven't looked far into those yet.


Back on the subject of animations, it seems like some characters Jump animations might not work in every field. I'm still trying to figure out if that's the case or if I'm just doing something wrong. This is why I started the animation tester in the first place, funny enough, if only I could get it to work haha.
 
About the ID, I'll do things like that if I think about it.

About the jump animation, they are very special: the script code "SetJumpAnimation" is the only one that doesn't check if the animation is loaded in the RAM. In case that the animation was not loaded, it bugs instead of loading it. You can use things like:
Code: [Select]
Code:
SetStandAnimation( JUMP_ANIM )SetStandAnimation( STAND_ANIM )SetJumpAnimation( JUMP_ANIM )
This will force the jump animation to load up in the RAM so it can be used.

The "Preloading" data should be the one that preloads the animations if things were done in a clean way. But preloading data for Steam is not very good for now (you can't add a model and its animations to the preloading list).
 
About the ID, I'll do things like that if I think about it.

About the jump animation, they are very special: the script code "SetJumpAnimation" is the only one that doesn't check if the animation is loaded in the RAM. In case that the animation was not loaded, it bugs instead of loading it. You can use things like:
Code: [Select]
Code:
SetStandAnimation( JUMP_ANIM )SetStandAnimation( STAND_ANIM )SetJumpAnimation( JUMP_ANIM )
This will force the jump animation to load up in the RAM so it can be used.
I see! That is helpful advice, thank you for sharing. I'll have to try that.

EDIT:
That worked perfectly, thank you so much for that tip.
 
Last edited:
Hi there !

I'm working on a Final Fantasy IX modding tool called Hades Workshop. It is aiming to allow to edit most of Final Fantasy IX's content. Quite a big project and I don't know if I will ever decide when it's finished  ;D

//============== THE TOOL =================//

The features so far :
- Can open Final Fantasy IX PSX files, in .bin format and in any language version,
- Now works with the Steam version,
- Read and edit datas about :
--- Spells the party can cast,
--- Supporting abilities the party can use,
--- Commands the party has,
--- Default stats of the party members,
--- Items' features,
--- Items sold in shops,
--- Statistics, attacks and AI of enemies,
--- Tetra Master cards,
--- Text, dialogs and charmap,
--- Game's script,
--- MIPS script and CIL script,
--- Model exporting (Battle Scenes only for PSX, more for Steam),
--- Backgrounds (view only in PSX, view/replace in Steam),
--- Steam resources exporter/importer,
--- Spell animation sequencing.
- Works under Windows only (you may recompile the source code I redistribute or use wine under linux).

It may be a good idea to have a look at the help (F2).

Also, I recommend to the new Steam users to go easy with this tool. Several features are easy to get familiar with, but due to the power of this program and the complexity of FF9, there are subtilities and traps to avoid.
You should read this post to get to know some of them.
Important : Hades Workshop doesn't work if Albeoris's Memoria tool was used. The other tool called Memoria (seriously Albeoris...) by gjoerulv works just fine.

Credits :
I made the program, obviously, but I got helped a lot by your wiki (http://wiki.qhimm.com/view/FF9) for cluster datas format and by http://finalfantasy.wikia.com/ occasionally.

Other than that, LandonRay and Zande made quiet an useful work in data finding, Zidane_2 wrote most of the other tools about FFIX before me.

The background image has been drawn by Maxa'. You can check his Deviant-Art page here.

Please tell me if you get any suggestion/bug report/feedback to share ^^

Here are the download links :

HADES WORKSHOP

Github project

The older versions can be found here

Thank you for your attention  :)

//=============== THE MODS =================//

Here are Final Fantasy IX mods made using Hades Workshop. I won't speak of LandonRay's mod because it is not related to it, but it's also worth a look ^^
Difficulty Tweak : Made by Iamthehorker, this mod increases the MP cost of the abilities and make the battles tougher. The gameplay itself is preserved, so it really is an increase of difficulty for an augmented playthrough. If you think that the boss battles end too quickly or if you never saw the use of the ethers/elixirs, this mod is a way to go. It also allows Steiner to equip the Save of the Queen in the end-game.
Final Fantasy Formula IX : A mod made by Aidolu with completly different spells and commands. I particulary like how commands have been re-invested to make spells like Songs or Cooking moves. The new spells are mostly taken from other Final Fantasy with few changes sometimes because of the limitation of my program or of FFIX battle mechanics.
Save The Queen : A mod made by ThisGuyAreSick2. It allows Steiner to use the allmighty Save The Queen. It also changes the way you synthesize it (it's made in the Black Mage Village in disc 4).
FF9.2.2 : A mod made by Vir to improve the Perfect Stats challenge balancing. It removes the forced exp battle so a true lvl 1 game can be made. It also fixes the Thunder Slash glitch. Vir also made a Fixed Stats Mod which removes the primary stat variations from games to games and have a normalized stat progression.
Alternate Fantasy : My own mod. It modifies a bit of everything in the game but mostly change the abilities and the gameplay in battles.

Also, you can find here the different tiny mods I made over the years.

//============== HELP AND TIPS =================//

This topic is now more than 30 pages long. Different people asked for help at different points and I always tried to give a complete answer. You can thus find details in this topic about subtilities of the game, or how a feature of HW works, or how to do some precise thing. Since I don't want everyone to read the whole topic thoroughly, here are links to answers to these kind of questions.

Side effects of Initial/Auto-statuses
A list of spells specially handled by the engine
Bypass the enemies' Max HP limit
Checking if a character is in the team in-battle
Enabling an enemy attack depending on the party stats
Make Zorn & Thorn battle more difficult
About the random encounter rate
Removing Dagger's depression effect in-battle
About Ragtime Mouse quizz and reward script
Unlocking manually a few of the "Hidden Scenes"
Skipping the script that makes Dagger unlearn her summons
Make Mini-Theater Ship obtainable as a key item
Removing Excalibur II time condition manually
Making temporary characters available in the party menu (1)
Making temporary characters available in the party menu (2)
Changing properly the content of a chest
Ensure that characters enter the party at level 1
How to use "GetRandom" to generate a random number in a range
List of animation IDs and who use them
Declaring local and global variables in scripts
Typical NPC dialog script
Add NPC and PC on the field
Manually extracting a Beatrix mod out of Alternate Fantasy
How to mix some of the standard mods
A word about background and walkmeshes
HW format for text file batching
Helping with the development of HW
Bug when making a multi-hit spell animation (PSX)
Adding custom text font (PSX)
Using Memory card saves after modding (PSX)
Fixing "The Collector" Tetra Master bug (PSX)
Change the initial items + hex-hack to give supporting abilities to Beatrix (PSX)
MIPS editing + controlling someone else than Zidane in fields for PSX
Grudge's MIPS spell formula (PSX)
Using the Background Editor (Steam)
Properly adding a new enemy to a battle (Steam)
Removing (some of) the bubbles appearing when you get close to NPC on Steam
Removing the stat growth of characters (Steam)
Modding Magic Stone growth of characters (Steam)
Modding spell effect: explanation (Steam)
Modding Supporting Abilities: HP/MP +X% (Steam)
Modding Supporting Abilities: Auto-status and Immunes (Steam)
Skipping the last two cinematics of the game (Steam)

//================ BONUS =================//

Simplified Game Scripts

Here are some scripts of systems or mini-games that are of some interest if you wish to know how the game works in-depth.
FFIX Code Folder

Hidden dialogs

Here are some few interesting secret dialogs, never used in the game.
I've also made a patch to enable some of them in-game :
Hidden Dialogs (PSX)
Hidden Dialogs (PC)
And a video showing the patch's content.

Don't hesitate to tell me if you find more unused dialogs : I'll add them to the list ^^

Alexandria [Over the roofs...] :
Puck “So, Vivi... Is this your first time in Alexandria?”
Vivi “Uh...  Um...  Yeah. I bought my ticket from a moogle wearing a hat...”
Puck “Bad luck!  If I ever find that moogle, I'll hurt him plenty!”
Vivi “Uh... Thanks...”
Puck “Alright!  Just a little farther 'til we can see the stage!”

Ruined Prima Vista [Steiner's bitterness] :
[1/3]
Steiner “Those bastards... If they plan to demand a ransom, they're wasting their time.  I'll see to it that they receive nothing!”
[2/3]
Steiner “Wretched thieves... I'll see them all hanged!”
[3/3]
Steiner “Those bastards... They will never get away with this!”

Observatory Mountain [Good and Evil with Grampa Morrid] :
Steiner “Alexandria, off course! Burmecia started the war, and we lost our king as a result.”
Morrid “Many wars were fought before the Lindblum Airship Revolution.”
Morrid “Alexandria intiated some of the wars against Burmecia. Now, can you tell me who was right or wrong?”
Steiner “I-I am not talking about the past! I am talking about the future!”
Morrid “What will you do if Alexandria starts a war?”
Steiner “When will the cargo ship arrive!?”

Gizamaluke's Grotto [Entering Burmecia] :
Burmecian Soldier “This is the Gizamaluke's Grotto. It is Burmecia's border.”
Burmecian Soldier “No one is allowed inside without the king's permission.”

Cleyra [Meeting with the King and the High Priest] translated from japanese by luksy :
Freya “It has been some time, Your Majesty.”
King of Burmecia “Ah, Freya, well met.”
King of Burmecia “The High Priest and I welcome you.”
High Priest of Cleyra “My Lady.”
High Priest of Cleyra “It would appear that this predicament no longer concerns Burmecia alone.”
Freya “I understand, Your Holiness.”
Freya “And yet...”
Freya “I fear my strength alone may not suffice.”
King “Freya...I know what troubles you.”
King “I must apologize for earlier.”
King “Can you ever forgive me?”
King “No! off course you cannot.”
King “But the fate of the people of Burmecia now hangs by but a thread.”

Occupied Lindblum Castle [Reaching Cid] :
Don't get caught by the enemy!
Jump out when she looks away!
Man “The regent is waiting for you at the Base Level.”
Man “The enemy is busy loading supplies. Go down on the lift, now!”
Man “Once you get on the lift, my comrades will take care of the rest.”
Zidane “So, I just take the lift to the Base Level without getting caught?”
Yeah...
Zidane “Piece o' cake! Leave everything to me.”
Huh?
Is anybody there...?
A tail?
Meeow!
Oh, it's only a cat...
Zidane (Wow, that was a close one.)
Man “(You idiot!)”
Man “Whatever you do, don't get caught!”
Man “What's wrong? The regent is waiting at the Base Level.”
Man “Go now, or you'll get caught!”
Zidane “I gotta run while she's looking away.”

Occupied Lindblum Castle [The Ancient World Map] :
Regent Cid “That is a national treasure of Lindblum!”
Regent Cid “It was passed down through my ancestors, since the days of the first regent.”
Regent Cid “It was probably made before our continent was covered in the Mist...”
Regent Cid “That is an ancient map of the entire world!”

Alexandria [Balloon Mini-game] translated from french by me :
Girl “You want to play with us?”
Girl “You've got some time to gather balloons and give them to the boys behind us!”
Girl “You get more time depending on the color of the balloon that you bring.”
Green → 5 more seconds
Yellow → 10 more seconds
Blue → 15 more seconds
Red → 30 more seconds
Girl “All the three of us have a balloon and we are somewhere on the square.”
Girl “Well... Start!”
Boy “X more seconds! You have Y points!”

Final [The 2 worlds' fusion] :
The Iifa Tree could not be stopped...
Gaia and Terra's fusion
caused global chaos,
destroying many cities and
taking many lives...

dude , i thank you for how efficient is this program , but in the lutest version of hadesworkshop the bosses aren't editable , they don't show up in the list of enemies , please , fix that , but maybe this bug only occur wen hadesworkshop open the psx version of the game , the italian version in my case
 
Last edited:
Yes it does. However, for the PSX version, not all the battles are present in all the discs. So if you opened disc 1 you only have the bosses of disc 1. Same for the other discs with a few exceptions (Gizamaluke is present on all the discs because the Grotto fields are still there as well).

Also, no need to quote a whole message of 215 lines (yeah, I checked that) for a 3 lines long reply. That's like subcontracting your speech, somehow :p
 
Yes it does. However, for the PSX version, not all the battles are present in all the discs. So if you opened disc 1 you only have the bosses of disc 1. Same for the other discs with a few exceptions (Gizamaluke is present on all the discs because the Grotto fields are still there as well).

Also, no need to quote a whole message of 215 lines (yeah, I checked that) for a 3 lines long reply. That's like subcontracting your speech, somehow :p
lol , and is true , i checked the disk 4 just now and both ozma and kuja are there in the list , thanks for the clarification , also , i hope that the successive versions of hades workshop will include also : the auto-status of the equipment ( like reflex ring ) so we could even get all the good status at once and permanently :D  , and the modofication of the support abilities , so we can finally chose to have a proper ribbon that make us immune from every negative status
 
Last edited:
Yes it does. However, for the PSX version, not all the battles are present in all the discs. So if you opened disc 1 you only have the bosses of disc 1. Same for the other discs with a few exceptions (Gizamaluke is present on all the discs because the Grotto fields are still there as well).

Also, no need to quote a whole message of 215 lines (yeah, I checked that) for a 3 lines long reply. That's like subcontracting your speech, somehow :p
come to think about it , there is also another thing that hadesworkshop need to make possible : set at 255 the stats of the cards , since for now you set the maximum at 127 while it can reach 255 :D
 
No, that's not really possible. These numbers are divided by 2 for the minimal randomized stat. I didn't add a limit for fun.
 
No, that's not really possible. These numbers are divided by 2 for the minimal randomized stat. I didn't add a limit for fun.
i see , but i noticed that the save editor always allow to set 255 for every parameter for every card , maybe this information can show you how the problem can be solved  :o , but besides that , i hope that the next version of hadesworkshop will allow to modify\select the effect of the auto stat , so for example , instead of have haeste in an equipment , we can have the effect of vanish or banish i don't remember witch is the useful one , but you got what i mean lol , and as i said in the previous message , even the modification of the auto abilities would be great , so one singe auto ability will finally grant the immunity to all the negative status  :D , you know , your program is more precious than it may appear , since the so called " pro gamers " are mostly listened to from developers , most of the games are essentially a bunch of limitations and restrictions rather than something to have fun with , so the only possibility of solve all the problems caused by the pro-gaming epidemy are software who allow stable modifications that allow even us to enjoy a game , because is not like everyone are supposed to give a fuck about be pro gamers , for me for example , is just stupid , i sometimes watch some pro gaming sessions , well , they completely forgot that video games are made to have fun , and not something that cause rage , hysteria , and that put a person against the other one , and certainly isn't something to take seriousely , and of course isn't some kind of matter of honor , still , their tragic way to play wouldn't be a problem if they were not so bossy and intrusive , nowdays , some games have a lot more protections to prevent gameplay modifications rather than any form of interest in make the game stable and well functioning , i mean , sometimes developers put more effort to prevent us to play like we want ( and that should be considered our inviolable right ) rather than prevent bugs , for example , i purchased a game recently , and guess what ? the game is bugged , despite the fact that i updated it with official stuff , but wen i try to modify it in order to play like i want , i immediately get errors and crashed , is just unfair and also stupid , be bossy and intrusive isn't a good way to keep the purchasers
 
Last edited:
The latest tool crash on Environment

Prima vista, when you click on Received 0 gil, sure is the dark..., etc
 
Tirlititi, I'm really looking forward to the model importer, again you're doing great work here.
 
Last edited:
(I apologize for Google translation). There is somewhere a MOD for changing the combat system without a delayed ABT? To characters executed orders without delay as in 8 FF, or at all without ABT as in 10 FF. Or in the extreme case, that the characters and enemies attacked simultaneously and most importantly without DELAY as in 10-2 FF?
The main thing is that your orders are due to a pile of animations not a minute later.
 
Hello! I've been reading a few things here and there. I'd very much like to change the magic stones growth curve, but I'm having some trouble figuring out how. I've located the CIL script that handles the function, but I can't figure what to change in order to increase how fast stones are gained...

Perhaps if I changed one of the values in bold below?

Does anyone here have a clue?

The Magic Stone progression is defined in the CIL Code, so it's a bit tedious to change. It's the method "ff9level::FF9Level_GetCap" :
Code: [Select]
Code:
 public static int FF9Level_GetCap(int slot_id, int lv, bool lvup) {  PLAYER pLAYER = FF9StateSystem.Common.FF9.player[slot_id];  FF9LEVEL_BONUS bonus = pLAYER.bonus;  FF9LEVEL_BASE fF9LEVEL_BASE = ff9level._FF9Level_Base[ff9play.FF9Play_GetCharID((int)pLAYER.info.menu_type)];  if (lvup) {   int num = (pLAYER.cur.capa != 0) ? 0 : 5;   int num2 = 0;   FF9LEVEL_BONUS expr_53 = bonus;   expr_53.cap += (ushort)(num + num2);  }  int num3 = (int)fF9LEVEL_BASE.cap + lv * 4 / 10 + (bonus.cap >> 5);  if (num3 > 99) {   num3 = 99;  }  return num3; }
In term of CIL Code, the main operation ("int num3 = ...") is those lines:
Code: [Select]
Code:
ldloc.3  // fF9LEVEL_BASEldfld 0x4000890 // FF9LEVEL_BASE::capldarg.1  // lv[b]ldc.i4.4  // Multiply by 4[/b]mul[b]ldc.i4.s 10  // Divide by 10[/b]divadd[b]ldloc.2  // bonus[/b]ldfld 0x400088B // FF9LEVEL_BONUS::cap[b]ldc.i4.5  // Right-shift by 5 ( = Divide by 32)[/b]shraddstloc.0
I have no idea of where the font used is defined.
 
Last edited:
@savokgear: You ask for changing the battle engine in-depth. Hades Workshop cannot do that. Albeoris's Memoria tool is more suited for that but it is unfortunatly not compatible with HW yet.
http://steamcommunity.com/groups/ff-modding/discussions/13/357284131804133221/

@Loseless: The important line, defining the Magic Stone progression, is this C# line:
Code: [Select]
Code:
int num3 = (int)fF9LEVEL_BASE.cap + lv * 4 / 10 + (bonus.cap >> 5);
"fF9LEVEL_BASE.cap" is the base number at lvl 1 that you can set in the "Party->Stats" panel.
"lv * 4 / 10" means that you'll get +0.4 Magic Stone every level (so +1 after 3 levels and +1 after the next 2 levels).
"bonus.cap >> 5" is useless. It may add 5/32 = 0 Magic Stone (since it is an integer division) in certain situation (I think that's when your character has 0 available Magic Stone but I'm not sure). For info, "X >> n" is the same as "X/(2^n)" mathematically.

So in term of CIL Code that you can see and edit in HW, the easy way is to change those "4" and "10" numbers:
Code: [Select]
Code:
ldc.i4.4 -> Change it to ldc.i4.s 9 for instanceldc.i4.s 10 -> Change it to ldc.i4.s 2 for instance
With these figures, you would get +4.5 Magic Stone every level (so +4 Magic Stone on odd levels and +5 on even levels).
 
Status
Not open for further replies.
Back
Top