Jump to content

Ai4rei

Members
  • Posts

    425
  • Joined

  • Last visited

  • Days Won

    37

Everything posted by Ai4rei

  1. So far I know WDG plug-ins have no means to add new sections and the default all-purpose section is limited to 4096 (would have to modify WeeDiff), needed by other plug-ins for code. Also finding all references is only easy when you have to deal with direct PUSH, only. String arrays (MOV R32,[R32+R32*4]) for example would need a disassembly of the entire code and could still be missed. I don't think it's worth to implement an entire disassembler for just translating the client (among others also beyond my free time and skills). Since most of the strings use address references rather than function calls (ex. MsgStr for msgstringtable.txt), inserting a function for each string reference is even more complicated. To get space inside the code, you have to steal some code, at least 5 bytes for a 4 byte JMP. Each string would add about 20~22 bytes of overhead (JMP, PUSH, CALL, optionally ADD ESP,4 depending on the lua function, JMP). In short, even worse than the above.
  2. The max. length can be calculated for most of the strings with (length + 1) aligned to be multiple of 4 (again without 1 byte for the zero-termination). Some strings may have (depending on placement) more space, though. For example "asdf" uses 4+1 bytes which is 8 bytes when aligned, minus 1 for zero-termination gives 7 bytes available for the string itself. Someone might make a front-end for editing that file then, that could restrict the text entered with above rule.
  3. The WDGTranslateClientIntoEnglish could be accompanied by some text file, that contains to-be-translated korean text and respective translations, such as ÆÄƼ°á¼º Create Party ÆÄƼÃÊ´ë Add to Party which could be edited freely without having to compile the plugin.
  4. Added: WDGRemoveLoginErrorCode exp-bar queued
  5. I have obsoleted the 'restore login window' diff in favor of packet 0x825. Dropped. I think there already is an answer from me.
  6. Added: WDGExtendedNPCDialog Updated: WDGUseCustomAuraSprites Updated/fixed to support latest clients. Thx to @pnew. binary builds, sources http://rathena.org/board/topic/53421-weediffgen/page__st__120#entry136603
  7. What does not work about it? The match is found. Challenge accepted.
  8. This weekend's emission... Updated WDGDisableMultipleWindows Added support for clients that do no longer have the disable code by themselves (I hope I'll never ever have to look at this plug-in again). binary builds, sources Other: thanks for reply!! and,I was really helped me a detailed explanation!! This is how I've tried   1, diff "Use Custom Aura Sprites"   2,"aurafloat.tga" and "auraring.bmp" put in effect folder (→stored grf)   3, set breakpoint "6990C7" and "6990D9" with olly   4, run (and login Lv99-Swordman)   5, not stop at breakpoint and displayed "ring_blue.tga" "pikapika2.bmp" yet...... then,I tried to fix in order to place both string reference. In my environment, Instead images doesnt appear even after diffing.... I'll try in a way that was taught! I have to admit, that you were right; I have got confused by dead code, my fault.
  9. Lack of skill timers in newest clients is lack of proper server-side support. Old packets default to zero total-duration, thus do not show the timer.
  10. Well, WDGTranslateClientIntoEnglish could be changed to use a back-end file that contains korean+respective translation strings. That would allow you to add translations without having to deal with the source. Just post the desired file format.
  11. UseSSOLoginPacket was a request from malufett, forces packet 0x825 on all langtypes. Each plugin displays what it is for in the patcher, column 'description'.
  12. I was under the impression that it was there when I posted... either way, I have re-upped it. Edit: Works for me with said client, even with 2012-07-02aRagexeRE. Edit: The feature to save a list of diffs is actually in there already. Just do Ctrl+C inside the window and you get a list of all selected diffs stored in the clipboard.
  13. The diff might be incomplete or broken for that client, I'll look into it.
  14. For new clients, where WDGAllowMultipleWindows does not work, it has become obsolete, because Gravity made the client allow multiple windows on all langtypes (basically removed the entire code responsible).
  15. Make sure you use the latest version of the WDGSkipPacketHeaderObfuscation plugin. WDGRemoveSerialDisplay will have to be re-coded, as it is missing from r25.
  16. Hm, the kRO-variants of the patcher are supposed to forward the command-line, and if there is no command-line, to open the kRO website. Edit: Confirmed, it does not work. Stupid me, the command-line forwarding is in the 3.x branch of the patcher ;;
  17. Note, that there are multiple occurrences of both ring_blue.tga and pikapika2.bmp, among others the latter being also used for "First Aid" skill effect. Running "Find all referenced strings" and picking the first match won't get you to the actual reference required. You will notice that the correct references are inside EF_LEVEL99* cases.
  18. Last time I checked, there was no implementation for it in the RE exe. unit.c case MO_EXTREMITYFIST: if (sc && sc->data[sC_COMBO] && (sc->data[sC_COMBO]->val1 == MO_COMBOFINISH || sc->data[sC_COMBO]->val1 == CH_TIGERFIST || sc->data[sC_COMBO]->val1 == CH_CHAINCRUSH)) casttime = 0; temp = 1; + if( !casttime ) + casttime = 1; break; Should do the trick. temp is actually supposed to force the cast, but since a zero casttime is supplied, the client ignores it. Is the thing you suggested a few pages back; avoiding the need for '1sak1 /account:sci.xml' and the like.
  19. Updated: WDGUseCustomAuraSprites binary builds, sources Other stuff: Enable /showname is supposed to be enabled via WDGAlwaysCallSelectKoreaClientInfo. To fix instant asura strike skill effect, doing so server-side seems far easier (sending a cast-time of 1ms to the client) than to rig it in the client. Allow Multiple Windows is considered obsolete in newest clients, because Gravity removed the code that prevented multiple instances to run. Disable Multiple Windows will be reimplemented for newest clients (almost done), see Allow Multiple Windows why. Rigging the command-line faces some technical difficulties, but those will be sorted out.
  20. I will. I'll test it at occasion, but the diff changes only the name, no rendering code involved. Edit: Tested, shared palettes do not work for me with renamed official files. Though it seems to be a data problem, as the palette files themselves are read correctly.
  21. The headless-error pops up everytime the sprite is loaded (like with palettes) and ignore errors should remove it.
  22. Added: WDGEnable64kHairstyles binary builds, sources In advance, I don't know how WDGEnable127Hairstyles works and I did not bother to figure out, because the assembly has changed significantly anyway. So the following issues might or might not be the same as with the old plugin: IDs 0~12 do not correspond to the IDs defined in the client hair style table (that means, they are mixed up). While the diff allows for up to 4.29bil hair styles, some packet layouts limit the valid range to 0~65535. It might be possible to enable the full range (not that someone would need it anyway) with a few packet hacks on the server-side, though. If you specify a hair style that does not exist you get a bunch of errors, but instead of a crash, the character just turns up head-less.
  23. It occurs when you run the patcher outside a kRO client folder. It will not download the entire kRO client data, but starts patching at zero which is 2008-11-26rdata for the sakray patcher. So you have to fetch a client if you do not already have one, as Emistry said.
  24. Remaining simple stuff might come during the week. More complicated (custom hair styles) probably next weekend.
×
×
  • Create New...