Comments (2)
Turns out this was client based restriction that's referenced in an old HeavenMS issue.
I've short circuited the SP check on the client and it's removed the requirement to spend all your points, but it means that the player can spend them on the next job so if you want to have this fixed you'd have to also update the job advancement NPCs (if they aren't already).
To fix the client, I followed the instructions here.
Some details I found along the way:
- There are 3 popups for having too many skill points remaining, for first second and third job.
- Each popup is handled by an assembly
cmp
, so you can swap the outcome from ajl
to ajmp
to skip the comparison and go straight to the success case.
Process:
- Retrieved the ID of the message using STREDIT and searching for
Content LIKE '%lacking%'
- Located the ID within IDA using a search for immediate value (Alt+i) on the ID and double clicked to go to the usage
- Located what called the method in IDA gaph view
- Clicked on the JL that lead to that graph block, swapped to text view, copied the memory address
- Opened ollydbg, went to the memory address, updated from a
JL
instruction toJMP
- Created a new localhost as a result, and tested it out
- Successfully added skills
Notes that lead me to the solution:
# Client popup message (id 3510): You're lacking Level 1 Skills.
___:008AD21A sub_8ACF1A push 0DB6h
change jl at location 008AD20C to a jmp
# Client popup message (id 3509): You're lacking Level 1 or 2 Skills.
___:008AD175 sub_8ACF1A push 0DB5h
change jl at location 008AD163 to a jmp
# Client popup message (id 3511): You are lacking in either 1st, 2nd, or 3rd level skills.
___:008AD0CA sub_8ACF1A push 0DB7h
change jl at location 008AD0B8 to a jmp
Note that the failure cases on the left have no inputs attached to them in the second picture, and those that previously pointed to the the failure function location(s) now bypass them and go straight to their success cases.
I'd offer the exe but without the server updates it is incomplete. I personally am not fussed since my server is for personal use, so I thought it best to post the method instead. If you want the exe let me know.
from cosmic.
Thank you so much for this, I am going to use this to learn how to do client editing, this really helps!
from cosmic.
Related Issues (20)
- Realize the problem of swiping money through negative value of items or props HOT 3
- monsterstatus not consistent
- multiple buff effect?
- Implement iTCG codes HOT 2
- cannot connect to any account from website HOT 1
- Quest "Friendship with Yeti" does not reward Red Jade on completion
- Deleting Quests server side does not "delete"
- PlayerNPC command broken due to server initialization order
- Deadlocks Encountered
- Adding script to !playernpc breaks the game
- Some Monsters Have no Dead Sound HOT 2
- Mushroom Kingdom - Prime Minister not spawning HOT 2
- Crash/DC when character making any map change
- Gain infinite slots with clean slate scroll
- A question about Autoban distance calculation HOT 2
- Homun of Closed Laboratory is not Dropping Magic Device
- Missing Beholder buff animation
- Item reward abusable by leaving space in inventory HOT 1
- Merchant item duping
- Vicious Does Not Give Proccessed Wood HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cosmic.