The amount of Server's on which this works should be like 40~60% of all pserver's arround. (Just a guessing.) So you still can have some fun arround.
Primary-Note: This is possible with several methods. Today I'm going to explain the Cheat-Engine version. (You could use a Packet Editor aswell, or recode the function which we use into a c++ app)
Secondary-Note: If the Server has no PK Server OR no PK-NPC's for the Angel Exchange, your way end's here (for this tutorial, you can still use this Tut for a base of your c++ funcs as we're going to inspect them.)
So let's begin:
1.) Go to the NPC, open the Interface and put in 3 Suns or 3 Moons (only one of the, either suns or moons, and the amount shoudl stay 3 as it's easier for us this way, will explained in another step)
2.) In CE open Memory Viewer and 'Search for referenced strings' (ctrl+alt+R), wait for the Dissect to finnish and show you a list of strings.
3.) Inside the list search for "%dD%dDD" (this is the string format of the string used in the function)
To understand it:
the big D's are identifiers which is in code later noticed so the game knows what values are stored in the packetarray
For example:
10D3DD - Slot 10, Amount of items to 'take' from the player: 3 (our moons or suns) [the slots are not in logical order!!!!!!!!!! Do not try to understand it, you'll break your brain. Its Flyff logic, and we all know it makes not alot sense ;P]
So we can say:
YDXDD:
Y - Slot ID
D - First Identifier to stop
X - Amount of Items to delete from Inventory
DD - Second Identifier to end the array
4.) Now follow the referenced string we found by double clicking the adress on the right, not the string itself.
5.) You should be in Dissasm now and see the instruction with the comment "%dD%dDD". Now scroll down until you find an Instruction which is:
ecx, Neuz.exe+SOMEVALUES
(inbetween this could be one other instruction, but its not on all servers!)
call Neuz.exe+SomeOtherValues
6.) Now click the call and hit F5 to set a breakpoint.
7.) On the Angel Interface, hit Start so it will create an Angel for you
8.) The game will pause since we hit a breakpoint.
9.) Go to usual CE main window and search for a string: D3DD (Because we set 3 Sun or Moons, it will be D3DD allways)
10.) now you should find 2 black adresses, ignore green ones if they occur. If you find a few more, just check next step.
11.) Add all black adresses to list and rightblick - view in memory
12.) Scroll one line up and you will the the slot of your suns/moons in front of the D3DD on the right side of Memory viewer
13.) Let's say you found 40D3DD in the Memory Viewer, not search this string and you should find 2 exact adresses showing your string.
14.) Add adresses and modify them to: 1D-999DD apply with OK and go back to Disassembler/MemoryView window
15.) Press F9 to continue the game.
16.) If the Server hasnt fixed it, it will create 999x Items of the item on slot 1.
17.) "Nothing happend, did I do it wrong or is it fixed?" You need to do some Trial and error on this part to find the slot ID you wish to dupe on, so I'd go from 1D-999DD to 50D-999DD. If you dont find anythign duped inside your inventory, it's most likely being fixed. Also an angel will be created in your Inventory, since we use that function.
18.) Now that you know how it works, you can create a c++ app, or just do it this way.
Last Note: This Function Call create's logs! As many other dupe methods does. So keep in mind to use it discretly, or they'll find your ass quick!
Allrite, if you like the Tut, or got another reason to thank me, dont forget to hit the THANKS Button!
Cheer's netHox
PS: If you knew this method, and are annoyed by this Release: Shit happens, im annoyed of several stuff too, Deal with it ;P
Also: If you dont understand this guide, please dont ask for support here, only if something on my Tutorial was unclear. I will not help you dupe. I will only clearify how it works by my tutorial.







