Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/01/15 in all areas

  1. "keep em coming^^ I haven't tried if the client reads the effects from the packet yet, if it doesn't I'll need a wide variety of enchants, to map all the different stats, checks, etc =/" well then again... some only have upgrades tho... OK last batch
    2 points
  2. Zemyna acts as a kind of proxy, it makes the client connect to a special local server that forwards all packets from the client to the actual server. This way it's able to read every single packet that gets sent or received. These packets can then be passed to other applications, so they can work with them, e.g. loggers like PaleTree. If you're familiar with Morrighan, you will feel right at home here. Download Remember to regularly update PaleTree and Zemyna whenever one is available, as they need to be up-to-date to work with the latest client. How to use For Zemyna to be able to read packets, it needs control over the starting process, as it temporarily adjusts your client, to tunnel its connection. It does so by making a backup of your client.xml, that contains information about where to connect to, and creates a new one. This change is reverted once Zemyna closes, this way you don't have to fiddle with any files yourself. To tell Zemyna where to connect the client to, you use command line parameters. For example, let's say you wanted to log packets on the international server Laima, you would simply start it like this from the command line, after moving Zemyna to your game folder: Zemyna.exe host:54.88.25.242 port:2000 The IP and port are of the login server for Laima. For easier reusability, you should create a link or bat file. Zemyna will then take the necessary steps to be able to read packets from the network, and start the client. A small window in the upper left corner will show you that Zemyna is running, it closes automatically when the client gets closed. You can also double click it to quickly close Zemyna and the client. Since you can only have one server in the server list this way, the one you specify in the parameters, you could create multiple links/bats, one for each server. If you want to use Zemyna on a server that doesn't use the Steam auto-login, but a login interface, you have to tell it, with another parameter. For example, connecting to a local server: Zemyna.exe host:127.0.0.1 port:2000 nosteam How to connect to Zemyna Zemyna uses the same API as the tool it was inspired by, "Alissa". It uses WM_COPY messages to communicate between Zemyna's and the subscriber's window. To subscribe to Zemyna, to receive packets, you send the "op" (dwData) 100 to Zemyna's window (window name: "mod_Tossa"), to unsubscribe, you send 101. While you're subscribed, you receive all incoming (op 0x10101012) and outgoing (op 0x10101011) packets via the same method. For an actual example on how this works, I suggest looking at the corresponding functions in Pale. Alternatively you can also create a plug-in for Pale, which will be easier. Restrictions Zemyna currently only supports the Login and Channel servers. Due to ToS's protocol, Zemyna needs to be updated regularly, or there's a high chance for it not to function correctly. Check for updates after each game patch and report potential issues. Korean TOS If you click on Download, you will find multiple versions, one of them being for kTOS (notice the "k" prefix). Choose that one if you want to log packets on the Korean server. Due to kTOS using a web login, we had to do things a little differently for the Korean version of Zemyna. You need an additional argument, "kr", which activates certain KR only options. Example: Zemyna.exe host:54.88.25.242 port:2000 kr After you started Zemyna like that, the client won't start automatically, but it will still modify the client files, so when you finally start the client via the web login, the connection will still go through Zemyna, allowing you to log packets using PaleTree.
    1 point
  3. Enchants are apparently saved as structs inside the item data, similar to ItemInfo and ItemOptionInfo, and by the looks of it, every enchant effect might actually be its own struct. You can clearly see the values as a short, at the end of the first line, and the short before that is probably the stat. I wondered where the increased repair fee is for a moment, but then I remembered that the fee is based on the item's price, so the enchant most likely simply increased the price. Reforges seem to work the same way, with one struct inside this list for every effect. From what I can tell they start with 07, instead of 01, so the first int (?) is probably the type. Unfortunately I don't have a clue what the other values mean, which is why we need more data. Much more. We need logs of many different enchants, with different stats, different values, and different effects. For example, I have no clue where it would store the "Level >= X" checks. If you want to help out, get your enchanted items, drop one, pick it back up, log the packet with the op ItemNew, and post it here, or send it to me via PM, with a note, of which enchants the item has, so I can compare the information. Posting here would be better though. Don't worry about the data, if you exclude or mask the packet id and the first long in ItemNew, there shouldn't be anything that could lead back to you.
    1 point
  4. PaleTree is a packet logger that utilizes data coming from packet providers, like Zemyna. Just like its cousin MabiPale, PaleTree allows you to log packets, and save, load, and modify the logs. However, unlike MabiPale, you won't see clear, separated variables here, as ToS's protocol doesn't communicate this information. Instead, PaleTree features a hex editor on the right side, and it has a plugin to show which values might hide behind a bunch of random bytes, starting at the selected index. For deeper analysis, a tool like 010 Binary Editor is recommended. Another difference to MabiPale, is that due to the availability of op codes, there are no unknown ops, and in case of changes, the ops are saved inside the logs, so you never have to worry about incorrect op names. But you should update PaleTree regularly, since any change in an op could result in confusing data. Download Remember to regularly update PaleTree and Zemyna whenever one is available, as they need to be up-to-date to work with the latest client. Features Logging packets Saving logs Log management (deleting, filtering) Plugin system Official plugins: Variable Preview: Displays what values could be read from a packet, starting at the selected byte. How to use Put Zemyna.exe into your ToS folder Create a link to Zemyna.exe, using parameters for the appropriate server. For example to connect to the international server Laima, you would use Laima's login server IP and port: Zemyna.exe host:54.88.25.242 port:2000 And to connect to a local server, without Steam auto-login, but with a login form, you would use this: Zemyna.exe host:127.0.0.1 port:2000 nosteam Start the client with that link whenever you want to log packets. Click connect in Pale to subscribe to Zemyna's packet broadcast and to start logging packets. Packet data The packet data in the hex editor is always the raw data received/sent by the client, incl. packet header. This means the actual values don't start at the first byte. Packets from the client to the server have a 10 byte header: short op; int sequence; int checksum; Packets from the server to the client are the same, just without the checksum, so it's 6 bytes in total. Additionally, packets that don't have a fixed size have another short (2 byte) before the actual data, the length of the entire packet. Packets that have a fixed length will say something like "Size: 50 (Table: 50, Garbage: 0)" in the packet information on the right side, after the op, while dynamic packets don't say this (dynamic packets are ones that include lists or variable sized strings, where you can't define a fixed size). The last thing of note is the potential "garbage" at the end of packets from the client to the server. Because of how the packet encryption works, the length of packets from the client to the server is always a multiple of 8. Packets that have a fixed size will be able to determine that X byte are "garbage", because they don't belong to the actual data, but are a left-overs from the encryption process. The garbage bytes can generally be ignored, the only reason we don't truncate them is that we could potentially lose data if the ops are outdated.
    1 point
  5. Unfortunatly im not playing that much ToS anymore. Still I logged in and logged all the skills I have. 1. File is me running in town Blacksmith repairing all Auctionhouse collecting 99000 moneyz Adventure Jurnal girl, getting some iCoins or whatever thats called Oracle Trainer, learning Change:Win attribute lvl 19 or 20 dun remember :< 2. File is me using all the cleric and oracle skill I have as well as autoattacking with secondary weapon and proccing the effect of my primary weapon the "Toy Hammer" assploding on every 10th attack. (5 Hits with sacrament as it makes 1 attack to 2 hits). As I dont remember the order of the skills fully, I will just try to guess and write down every skill I used. attacking some stuff without buffs buffing sacrament and attacking some stuffs buffing monastry and attacking some stuffs (sacrament still active) buffing blessing and attacking some stuffs (sacrament and monastry still active) ---have to guess now--- Using 3 skills in some order: Change (changes the monster to a different +/- 5 level) 2charges, Clairvoyance (lets you see the item that a monster is going to drop), Reset (lets you change the item that a monster is going to drop) 2charges ---have to guess now--- Using Divine Might (Increases all skills by 1 level for x charges depending on skill lvl) ---have to guess now--- Step 1 to 4 again with Divine Might ---have to guess now--- Using Dievdirby's skills "Statue of Goddess Laima" (carves a prop and places an aura at the same place as the prop (- %cd aura) prop/statue can be pushed away by mobs while the aura stays at the same place, prop/statue has hp depending on level and aggroes mobs) and "Statue of Goddess Zemyna" failed caus tos cannot fix bugs I really have no clue anymore. Some point I am changing a attribute allowing my heal to damage enemies. Healing everywhere and alot. Using Revive somehwere and proccing it (character that drops under 1hp does not die and instead "revives" at 20ish% hp). Using cure (dmg on enemies and cures status debuffs and stuffs depending on level of the skill. Using Aspersion (direct buff and attack in a cone in front of the caster). Using Resurrect to attack an enemy. Using SafetyZone which is like SafetyWall but it actually does only give you a buff if you stand inside (which complicates things with the buff limits etc) makes you imune to 99,9% of all dmg (one boss can somehow bypass this with a section of his hit?) magic melee and ranged. Pushbacks can still occur. Using carve (skill that attacks 4 times and has a chance to produce wood when hitting a plant mob). Using Forecast (makes enemies attacks visible (you get aoe indicators on the ground). Green for allies, red for enemies. Even normal attacks can be seen that way. Using Mass Heal like all the time... nothing special -> big aoe circle in front of the caster that heals (also heals caster). Also there should be a successful "Statue of Goddess Zemyna" somewhere. I failed 2 times and 1 time I succeeded. Not sure what else. Some weapon swapping but thats nothing special. Also im using controller for 95% of the game. usingalotofskillsoracle.txt repair auction wingsofsomething oracleattributelearning warping to next map.txt
    1 point
×
×
  • Create New...