|
You last visited: Today at 09:31
Advertisement
dbo.skills
Discussion on dbo.skills within the Shaiya Private Server forum part of the Shaiya category.
03/12/2011, 22:32
|
#1
|
elite*gold: 0
Join Date: Jun 2009
Posts: 30
Received Thanks: 19
|
dbo.skills
ok, as i am not getting the ep5 skills work correctly(Doesn't level past lv3 and leaves the image that it should level more, and sometimes i manage to get it last level but i cant use the skill  ), i have decided to import ep4 dbo.skills to ep5, but is it possible cause i cant seem to figure it out? Could someone post step by step tutorial?  I would be extremly thankful.....
ps: i only need to import/export the dbo.skills, not the entire PS_gamedefs.....
Thnx
|
|
|
03/13/2011, 01:09
|
#2
|
elite*gold: 0
Join Date: Mar 2010
Posts: 2,334
Received Thanks: 1,777
|
You can always use the quick fix bud.
|
|
|
03/13/2011, 04:26
|
#3
|
elite*gold: 0
Join Date: Oct 2009
Posts: 942
Received Thanks: 1,066
|
its possible to put ep4 skills in ep5
its just you will have those 10 levels without skills
so you might want to edit them a bit :/
|
|
|
03/13/2011, 06:54
|
#4
|
elite*gold: 0
Join Date: Jun 2010
Posts: 539
Received Thanks: 193
|
Im not sure if this can work but you can take the shStudio and edit how much each skill gives and what not. Again, not sure, havnt tried it and have no server at the moment to try it (yet). But if this works, more credits to castor then.
|
|
|
03/13/2011, 22:14
|
#5
|
elite*gold: 0
Join Date: Dec 2010
Posts: 717
Received Thanks: 3,367
|
Quote:
Originally Posted by Linxis172
Im not sure if this can work but you can take the shStudio and edit how much each skill gives and what not. Again, not sure, havnt tried it and have no server at the moment to try it (yet). But if this works, more credits to castor then.

|
After 2 days spent exclusively on these skills, I can only have doubts that my tool generate a correct skill table for the server part. (client skill.sdata seems fine).
regarding client - and thus the skill.sdata file - several posts indicate the need of 10 lines per skill; BUT the korean & us AGE clients use 9 levels per skills. (and no reliable info on their DB content)
either it can be any number, or only 9 or 10 or we are using a patched game.exe file without any knowledge of possible modifications of its skills management (may be AGE game.exe loops on 9 lines and our game.exe on 10) - if someone knows what we are using thank to comment.
regarding server side DB, it's the total mess !, none of table released there seem to work. I had asked several times for a valid table in order to check and understand its format - does it contains only valid skills ? or block of 9 lines ? or 10 ? do reserved skills have a level or a SkillID or both or something else set to '00' ???
if someone is able to extract and post there a part of a valid [PS_GameDefs].[dbo].[Skills] table - the 50 first lines are enough (I don't care about your own customization and nobody wanna steal your job) - it will be helpful.
|
|
|
03/14/2011, 06:59
|
#6
|
elite*gold: 0
Join Date: Dec 2010
Posts: 717
Received Thanks: 3,367
|
OK, I'm back to a config with 90% of working skills.
But still a few locked w/o obvious reasons.
The town skill resists to my effort; it has an ID of 1006 (and my understanding is that 'SkillID' is solely used to find the right icon (the 'icon' column is never used)) and a 'TypeDetail' (the internal pre-settled action) of 125.
If someone can confirm that figure (125 = town) ... or (let me dream) have a full list of actions. Thank in advance.
Edit:
adding the skills in DB (CharSkills) does not enable them in client side
I haven't double-check every not working skills but it looks like they all have a SkillID of 1001+ (at least all those present in CharSkills are in the first range 1..255).
Is there a byte, we have to change in (client) game.exe or (svr) ps_game.exe to have these skills with ID 1001+ working ??
|
|
|
03/14/2011, 22:40
|
#7
|
elite*gold: 0
Join Date: Dec 2010
Posts: 69
Received Thanks: 49
|
I suggest doing the following (I don't have the time to do it now):
-Go to your database and set a skill with ID higher than 1000 (idk, for example Body protector)
-Start your server.
-Attach with ollydbg to ps_game.exe and search the memory for your skill name (Body protector in this example. Note that the skill name in database has to be in English for this to work)
-When you find the skill name in memory have a look at the numbers before it because they represent the skillID
-Set a memory breakpoint at the skillID
-Log to game and try to cast your skill. Then olly should stop at the breakpoint, then go step by step by step till you see a comparison of the skillID with 1000 (3E8 in hex) or whatever other number is set as limit.
If someone manages to do this, the last step is to change that comparison instruction to the desired value (Im not 100% sure it works this way but makes sense to me)
Will try it myself as soon as I find the time (**** exams xD)
PS:why you need to set SkillID above 1000?
|
|
|
03/14/2011, 23:08
|
#8
|
elite*gold: 0
Join Date: Dec 2010
Posts: 717
Received Thanks: 3,367
|
Thank Nevak.
I already spent hours with Olly w/o success 
I'm not very fluent with that debugger and may be I processed the wrong way but the ps_game.exe console was redirected (by Olly apparently) and prevent me to easily perform several runs. I put breakpoints on the calls to usp_Read_Skills_R and usp_Read_Skills_R2, the later is called by ps_game when one uses the "reskill" console cmd, the issue was that the console didn't work once Olly attachs to the process.
I "need" skills with ID greather than 1000 simply because some are defined like that in OS, the skills with ID 1 up to 255 use icons from interface/icon/icon_skill.dds (or tga), those with ID >= 1001 use the icon_skill2.dds file.
So if i renum some skills (throwing away some useless ones - which are useless, no good answer) I will also have to use tailored set of icons.
My ps_game.exe is 1.323.008 bytes long in case that's give an info.
|
|
|
03/14/2011, 23:15
|
#9
|
elite*gold: 0
Join Date: Aug 2010
Posts: 136
Received Thanks: 343
|
Quote:
Originally Posted by nevak
I suggest doing the following (I don't have the time to do it now):
-Go to your database and set a skill with ID higher than 1000 (idk, for example Body protector)
-Start your server.
-Attach with ollydbg to ps_game.exe and search the memory for your skill name (Body protector in this example. Note that the skill name in database has to be in English for this to work)
-When you find the skill name in memory have a look at the numbers before it because they represent the skillID
-Set a memory breakpoint at the skillID
-Log to game and try to cast your skill. Then olly should stop at the breakpoint, then go step by step by step till you see a comparison of the skillID with 1000 (3E8 in hex) or whatever other number is set as limit.
If someone manages to do this, the last step is to change that comparison instruction to the desired value (Im not 100% sure it works this way but makes sense to me)
Will try it myself as soon as I find the time (Damn exams xD)
PS:why you need to set SkillID above 1000?
|
I'm not sure you can set breakpoints in the data section that way. Have you done this before? (I could be mistaken though)
You can set breakpoints in code that executes but the type of data you are talking about does not execute, it is referenced.
Unfortunatly I have not found a way to 'snoop' a memory location in Olly. For this I am still using CheatEngine.
1. Use Olly to located the memory location instructed above.
2. Close Olly and start cheat engine. (You have to close Olly because you can not attach two debuggers to the same process)
3. Manually input the address you want to snoop on.
4. Right click that address and select "See what accesses this address"
5. Go in game and do the desired action.
6. Notice you get several addresses in the Cheat Engine box.
6a. If you get no results then you are snooping the wrong address
7. Copy all the addresses hit into notepad.
8. Close Cheat Engine and open Olly again.
9. Now set breakpoints on those addresses that were snooped with Cheat Engine
10. Repeat your action in game and notice you get a debug break.
Note: Often what needs to be changed is not where you break on but before. You have to understand how to debug and such.
Debug +2
|
|
|
03/14/2011, 23:18
|
#10
|
elite*gold: 0
Join Date: Dec 2010
Posts: 69
Received Thanks: 49
|
I would forget about the SP since it doesnt seem to limit the ID, just check that all skills (ID above 1000) are in memory when the server is running. For this, onece attached to ps_game, go to View->Memory map and there right click -> Search and in ASCII field write the skill name to search and look at the data structure for the skills (which is the same that in database). Now it should be easy to find the ID for that skill that you set above 1000 and put a memory breakpoint.
|
|
|
03/14/2011, 23:27
|
#11
|
elite*gold: 0
Join Date: Dec 2010
Posts: 69
Received Thanks: 49
|
Earthcrush, yes, you can set memory breakpoints (when read, write or both). In fact is more or less like the "Find what access this address" feature in Cheat Engine.
The method that you explain is a good idea also, I use it sometimes, but for this case I think it is easier doing it my way =P
|
|
|
03/14/2011, 23:39
|
#12
|
elite*gold: 0
Join Date: Aug 2010
Posts: 136
Received Thanks: 343
|
Quote:
Originally Posted by nevak
Earthcrush, yes, you can set memory breakpoints (when read, write or both). In fact is more or less like the "Find what access this address" feature in Cheat Engine.
The method that you explain is a good idea also, I use it sometimes, but for this case I think it is easier doing it my way =P
|
I think this was a limitation of my understanding of break points. I never even considered it would work.
I will keep this in mind next time I am debugging. This will be nice so I don't have to switch debugger, but CE is still good to find all the addresses at once. I wish Olly supported that.
|
|
|
03/14/2011, 23:43
|
#13
|
elite*gold: 0
Join Date: Dec 2010
Posts: 69
Received Thanks: 49
|
Yea I agree, CE is a must for me also xD I think olly1.1 has a plugin for memory scanning. A shame that olly2.0 doesn't support plugings -.-!
|
|
|
03/15/2011, 01:16
|
#14
|
elite*gold: 0
Join Date: Dec 2010
Posts: 717
Received Thanks: 3,367
|
Quote:
Originally Posted by EarthCrush
I'm not sure you can set breakpoints in the data section that way.
|
really?
as a "low level" debugger, Olly has all required search function to locate the code that load a specific address into a register.
I put bp on code of course at locations where the address of the SQL request strings are loaded. but I failed to be able to debug that way.
the code that runs an "exec usp_Read_Skills_R" is called at the "begining" of the launch process (when it manages all its setup), and since it's a service (not an appl.) I failed to attach to it before it done all these init.
the code that runs an "exec usp_Read_Skills_R2" is called on demand when the "reskill" (reset skill) command is used from the console, but Olly apparently redirect the low I/O services and thus sending commands from the console failed 90+% of times once Olly is attached.
I don't know CheatEngine, and don't plan to try it (miss time to).
I will certainly try with a "high level" (symbolic) debugger.
Meantime I want to keep a little hope that someone could post a ps_game.exe that does manage these skills - it's obviously the case for 100% of the running 5.0+ servers, so ...
|
|
|
03/15/2011, 01:37
|
#15
|
elite*gold: 0
Join Date: Aug 2010
Posts: 136
Received Thanks: 343
|
Quote:
Originally Posted by castor4878
really?
as a "low level" debugger, Olly has all required search function to locate the code that load a specific address into a register.
I put bp on code of course at locations where the address of the SQL request strings are loaded. but I failed to be able to debug that way.
the code that runs an "exec usp_Read_Skills_R" is called at the "begining" of the launch process (when it manages all its setup), and since it's a service (not an appl.) I failed to attach to it before it done all these init.
the code that runs an "exec usp_Read_Skills_R2" is called on demand when the "reskill" (reset skill) command is used from the console, but Olly apparently redirect the low I/O services and thus sending commands from the console failed 90+% of times once Olly is attached.
I don't know CheatEngine, and don't plan to try it (miss time to).
I will certainly try with a "high level" (symbolic) debugger.
Meantime I want to keep a little hope that someone could post a ps_game.exe that does manage these skills - it's obviously the case for 100% of the running 5.0+ servers, so ...
|
I never used breakpoints in that way and was not sure, hence the "I'm not sure...".
Fixing the skills shouldn't require the use of CE, you can do it just using Olly.
I loaded up the debug symbols also, but they didn't show me anything I didn't already know.
If you plan on modifying ps_game.exe, using the CE method is super useful and there is no learning curve to it. Only do the steps I suggested and you can collect all the points that access a specific address.
What debugger are you planning on using?
|
|
|
 |
|
Similar Threads
|
Cabal Files, Sword Skills, Magic Skills, Buffs, and Weapons
01/31/2016 - Cabal Guides & Templates - 65 Replies
New Discovered Files ^_^
These Files which i discovered came from other people but sword skill files are my works cause im a melee type character
Sword skills ^_^
For Force Bladders And Force Shileders FB /FS
skil_1h_001.efx - FlashDraw
skil_1h_002.efx - Impact Stab
skil_1h_005.efx - Force Stab (FB, FS)
|
[HowTo+Erklärung]Skills einfügen mit Icon+Korea Skills
02/15/2012 - Metin2 PServer Guides & Strategies - 195 Replies
ACHTUNG: 23878 Buchstaben, die ihr hier lest xD
Nachdem ich gesehen habe, dass es bereits ein paar Tutorials gibt, aber keinerlei Erklärungen, habe ich mich mal entschlossen euch es kurz zu erklären und eben nebenbei das HowTo zu machen^^
Btw die Erklärung+HowTo für die Korea Skills+Icons kommt am Ende^^
Und hier gibts ein paar neue Skills, Vorschau:
http://www.youtube.com/watch?v=icuQLlUXBGM
Download
Da ich diese Dateien selber geschrieben habe und sie nicht von Ymir rechtlich...
|
All times are GMT +1. The time now is 09:33.
|
|