|
||
|
|
#1 (permalink) |
|
P3'c Orion Aviator
Join Date: Sep 2004
Age: 30
Posts: 1,272
|
Skills.mul/Skills.idx in the Uo client have 3 values.
(string)SkillName (bool (well 1 or 0)HasButton and (some interger) what the heck does that third interger do? I have no idea. Help is appreciated. If i posted this in the wrong spot please forgive me |
|
|
|
|
|
#3 (permalink) |
|
P3'c Orion Aviator
Join Date: Sep 2004
Age: 30
Posts: 1,272
|
Im sorry phantom I thought I made myself quite clear,
The skills.MUL/IDX files of the UO client list each skill with 2 numbers. one number is if it has a skill button or not, Like magery isnt used dirrectly, but inscription is by clicking the button in the skill gump. But the other number is kind of randomly assigned to a skill and it is an interger from 0 to 15. What does that second number do? At first I thought it was the value that the skill holds when displaying the title. (Like if all skills are 100,. it says GM alchemist because alchemist holds more weight) But I looked in the source and that is handled by the RunUO emulator. -Jamie |
|
|
|
|
|
#5 (permalink) |
|
P3'c Orion Aviator
Join Date: Sep 2004
Age: 30
Posts: 1,272
|
I most certainly can, this is the Skills.Mul decompiled
Code:
15 0 Alchemy 13 1 Anatomy 13 1 Animal Lore 13 1 Item Identification 13 1 Arms Lore 13 0 Parrying 13 1 Begging 13 0 Blacksmithy 13 0 Bowcraft/Fletching 13 1 Peacemaking 15 0 Camping 13 0 Carpentry 13 1 Cartography 13 0 Cooking 13 1 Detecting Hidden 14 1 Discordance 13 1 Evaluating Intelligence 13 0 Healing 13 0 Fishing 13 1 Forensic Evaluation 13 0 Herding 13 1 Hiding 13 1 Provocation 13 1 Inscription 13 0 Lockpicking 14 0 Magery 13 0 Resisting Spells 13 0 Tactics 13 0 Snooping 13 0 Musicianship 13 1 Poisoning 13 0 Archery 13 1 Spirit Speak 14 1 Stealing 13 0 Tailoring 13 1 Animal Taming 13 1 Taste Identification 13 0 Tinkering 13 1 Tracking 13 0 Veterinary 13 0 Swordsmanship 13 0 Mace Fighting 13 0 Fencing 13 0 Wrestling 2 0 Lumberjacking 2 0 Mining 1 1 Meditation 1 1 Stealth 1 1 Remove Trap 1 0 Necromancy 3 0 Focus 1 0 Chivalry 0 0 Bushido 0 0 Ninjitsu (X) (Y) (Z) Z is the Name of the skill Y is a true or false boolean in the form of 0 or 1 that determines if the skill has a button to use dirrectly from the clients skill gump. The skill Magery is NOT used dirrectly it must be used via another method, such as casting spells from the spellbook. So Magery's Y value is 0. Where as Remove Trap is used Dirrectly, To use Remove trap you open the skill gump (or set a macro) and press a button next to the skill, So Remove Traps's Y value is 1.(for true). Now the X value I have no idea what it could be? That is what I am asking, what is the number in the X value field of the format. I have considered it to be the order in which profession-titles show up when skills are equal, Suppose magery and Alchemy are both at 100.0. Your profession title would be Alchemist because Alchemy has a X value of 15 and magery has an X value of 14. But I found in the arguments in the RunUO core that this ordering system is handled by the Server and Not the client. So I ask this, What is this value in the "X" field refer to? It has nothing to do with the order of the skills, because the Server handles how they show in the skills gump when they are catagorized by CombatSkills MiscSkills and Actions. It has nothing to do with how the client catagorizes or orders the skills because that is handled by the Skills Index file. You can rewrite these skills in ANY order in the skills.MUL and it has no effect on the client as the IDX is where the skills are ordered and refered to by skillname(Zvalue). So what does this seemingly random number partain to?? Thank you for your patience and help. -Jamie |
|
|
|
|
|
#9 (permalink) |
|
Join Date: Jan 2004
Posts: 90
|
just to make sure what you are asking.
you have two files, Skills.idx and .mul Skills.idx structure is: DWORD (offset to a skills structure in skills.mul) DWORD (length of entry in skills.mul in bytes) DWORD (unknown) skills.mul structure is: BYTE (bool for button) BYTE[] (name of skill, null terminated) you mean the 3rd DWORD of skills.idx right? edit: ps: if you find some oddities in skills.mul don't worry. that file is completly screwed up. you'll even find several non-referenced entries in it. edit2: by checking the client's asm (2.0.0) I found no use for it... so go figure. maybe its useless indeed. didnt do a very good search, I only checked the routine that loads the skills files. |
|
|
|
|
|
#10 (permalink) |
|
P3'c Orion Aviator
Join Date: Sep 2004
Age: 30
Posts: 1,272
|
I understand the index file no problem. Was only inquiring about the MUL file as you said it has a BYTE for the has button boolean and a BYTE[] for the skillname string. There is a second BYTE however which i cant seem to figure out, Its probably usless junk anyway. You did provide a nice answer and I thank you for that, someone finally understood me :"P
-Jamie |
|
|
|
|
|
#11 (permalink) |
|
Join Date: Jan 2004
Posts: 90
|
nah buddy I think you got me wrong about the .mul file
I'll give you an example idx: 0x32d (the entry) 0x09 (the length) 0x0F (unknown value, unused also) in the mul, at the 0x32d offset: 0000032d: \0x01 A l c h e m y \0x00 think of the ASCII as bytes heh... if you notice I actually wrote an ascii text instead of bytes... anyway. the last byte, the one after the 'y' is the string null terminator. all strings are nulled at the end to identify the end of the string the null terminator is also known by '\0' in C now, I noticed you meant the "15" value by "Alchemy" in the table you created. that 15 value is actually the unknown 0x0F I mentioned above. its usage is unknown and for what I could tell, unused. then again, that value is in skills.idx, not in the mul. now, let's say the length was 10 and after the 0x00 you found another byte... well, thats just cause skills.mul is really malformed. I can only wonder why. anyway, I hope you understood []'s edit: ps: dont mind people like phantom or anyone else. people on this forum aren't used to real coding or reverse engineering. I doubt they even know what that is. krrios is good at it though. |
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|