------------------- server -------------------
Open libtask.so in IDA Pro
Go to function ATaskTempl:CheckMarriage(Task Interface*)
in IDA View-A
search for this
cmp al, [ebp+m2.m_bMale]
click on jnz
Go to Menu > Edit > Patch Program > Change Byte
change the first byte 75 to EB
Go to Menu > Edit > Patch Program > Apply Patches to input file.
------------------- client -------------------
this is the hardest part since client doesnt have debug symbols, we have to find using strings and things to be used as reference.
i have looked at source code from client leaked by scena, and we can find a function called CheckMarriage inside TaskTempl.inl, then i check where this function is called, and i find one that has a string to be tracked, so lets start this part.
first you gonna press on IDA View, then press CTRL + T and search for this string "CheckPrerequisite: ret"
press F5 so you will find a giant IF Else code, this code will looks like this.
then you will need to find the function checkmarriage, i have set a comentary block in picture down bellow but you can find yourself looking for a function that first return is value 51 and next returns is 20 until return 0.
after you click on function, it will looks like this
select the last IF that return 20 code, press tab to return on IDA Pro View with the jz selected,
Go to Menu > Edit > Patch Program > Change Byte
change the first byte 74 to EB ( maybe can be 75, it depends on the compiler decision, replace by EB anyway )
Go to Menu > Edit > Patch Program > Apply Patches to input file.
-----------------------------------------
Create box with quest mission,
use in party and complete in NPC.
-----------------------------------------------------------
credits to @Scena that shares source code from perfect world to the public that could make this guide possible.
here the source code references for the client code above.
![]()









Reply With Quote![[Tutorial] Same-sex marriage in perfect world properly done](http://ragezone.com/hyper728.png)


