Thank you @
Eliana Gherbaz
Merry Christmas
and by the way , is it possible that we can add more items in TantraParam and Clientres ?
I never said that it is not possible, I just said that when adding things to xml have to be aware on which ID will be used, and if the range of the ID is drained, is better to add a new range instead of extending one that already exist, probably I did not explain why in the correct way and probably Im not able to explain it in a way that every one can understand me.
as I say in my previous post when hanbitsoft drained some declared ID ranges, they did not extended in a linear way, they did not took the limit and added values (like converting 3999 to 4999), what they did was to add a new range starting with a number they didn't used before, and the reason they had to do that way is because when they did the code for the game they declared the ranges w/o leaving spaces between them.
so for example this:
#define HT_PARAMTYPE_ITEM_DEFENCE_ARMOR_START 5001
#define HT_PARAMTYPE_ITEM_DEFENCE_ARMOR_END 5150
#define HT_PARAMTYPE_ITEM_DEFENCE_PANTS_START 5151
#define HT_PARAMTYPE_ITEM_DEFENCE_PANTS_END 5250
As you may see Armors items ends on 5150 and Pants start on 5151, so when they used the last ID for defense armor they was not able to take that 5150 and convert it to 6000 for example, because if they do that then they mess up with pants, etc. If you go to your GM TOOL and open armor section, you will see that it start with 5001, and pants section starts on 5151. So imagine that in a post you ask for the offset to change the limit of the Armors, and heterogeneo gives you the one which stores the 5150, and then you, who do not know about the ID ranges restriction, go to that offset and change it to xxxx, what you think will happen?
So of course if you dont know which is the range IDs for an Armor and you decided to add a new one using a x ID (that you find by searching the last id used on param or GM Tool, that is what all ppl I know do) then you may have an id for an armor if you did not already used the limit one.
When I gave those IDs values for the 1 hand weapons, I didnt invent them, I took them from the same code I took the ones above, and I found them because I added a new Item that was not working as expected even it was copy paste form another that was working right, the only thing that was changed was the ID, so at that time I understand that have to be the ID which makes that item working wrong, and yes it was the ID.
what i did after that was to make an Excel file in which I divided all existing items in their corresponding worksheet and leaving in blank lines the IDs of the range that I didnt used yet, that way I know exactly the next ID i need to use if for example i want to add a new rare pant and I now too when im going out of ID. And where did I found those ID ranges? I found them by digging on the ASM code i got from dumping with Olly server and client .exe files, because the sources files I have are from 2007 and does not have the new ranges.
If you ran out of ID, you have to 2 choices: follow my recommendation to add new range or follow the others which is just to change the limit value to a higher one, it is your choice which one follow.
Probably some of you will be thinking "OK but how do I add a new range", the answer is simple, on both client and server .exe files there are blank spaces that can be used to add new code , you can use those spaces to add new ranges by copy pasting the code that hanbit used to add the new ranges and replacing in the pasted code the new range, or do what I did: link to both a new .dll made by you that replace or add code. By linking a new library is the better way I found to not be limited by spaces remaining on the .exe files.