Jump to content

Ai4rei

Members
  • Posts

    418
  • Joined

  • Last visited

  • Days Won

    36

Everything posted by Ai4rei

  1. Only kRO Main Server clients from around xmas work. Edit: A new plug-in, 7 years later. For the sake of completeness, without necro-posting. Added WDGAllowUnknownSlashCommands. Description:
  2. You have to replace two icon groups. - Icon group 1: Icon as seen in windows explorer (on desktop and in folders) and in Alt+Tab (can be of any common sizes). - Icon group 2: Icon as seen in the ROCred title bar (should be 16x16).
  3. This is bad, thanks for noticing. Setting "sound mode" to "no sound" really disables this feature.
  4. You do not need to edit the client to add a DLL, the functionality is available out-of-the-box.
  5. You can, if you find the respective functions in the client. You can also mess with the RO Window by using GetWindowThreadProcessId and EnumWindows functions from your DLL. The only limitation is, that you cannot alter client code, that ran before your DLL was loaded (such as 1rag1 check).
  6. You can use the rsu.merge tool to repack a grf by "merging" the archive into a non-existing grf.
  7. Non-intrusive was meant in that way, that you do not need to patch the client to load your DLL. You are still free to hot-patch* any client-code at will. To make the client call your DLL functions, you have to hot-patch* the client when your DLL is loaded. *) basically applying hexes/patches in client's memory.
  8. Simple DLL Loader for RO Clients About If you expect some super simple application, let me disappoint you, there is none; everything is already part of the RO client. Consider this post as a proof-of-concept. There are also certain catches that you should be aware of, before you start jumping for joy. All you need to do, is to give your library a .asi, .m3d or .flt extension instead of .dll and it will miraculously get loaded by the client when it starts up and is unloaded once it shuts down. While you can load pretty much any dynamic library this way, there is a major catch: when your DLL gets loaded, most of the initialization is already complete and the window is already visible, DirectX is not initialized at that point. So while this might be ideal for a client plug-in, that messes with the window or the client runtime, it's probably less usable for hot-patching of the initialization code. Another catch is, that the client will load fine when your DLL is deleted. Summary: While the process of loading a DLL with the extensions .asi, .m3d and .flt is simple, the point at which it gets loaded might be unsuitable for certain uses. Since it's not intrusive, it might be of use for client plug-ins. Demo: The linked demo consists of a pre-build DLL with source, that displays a message when loaded and unloaded for convenience of testing this PoC. Edit: Another issue noticed by @Cataclysm: If "Sound Mode" in RO setup is set to "No Sound", DLLs will not be loaded. Download demo QA How does this work? Your DLL is loaded as a driver for the Miles Sound System (mss32.dll), but since it does not register with it, it does not interfere with it in any way. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  9. Version 1.7.0 Per request, added support for custom buttons with four actions to select from and skin-able as well. Version 1.7.1 ! Fixed a crash when starting a client with unchecked "Save" (from 1.7.0). ! Fixed a memory leak in MAC address retrieving code (from 1.6.0).
  10. Updated to 2.4.3 Fixed an issue, that would prevent the launched RO client from elevating.
  11. Your OS decides what language it picks, depending on the regional settings control panel. OpenSetup currently ships with traditional (default) Spanish (0x01) and Chile (0x0d). 0x03 is supposed to be modern Spanish. I have no idea about the differences, the LANG/SUBLANG pair is decided by the respective translation-author.
  12. - Make sure, there is no "OptionInfo.<strong>lub</strong>" in your "savedata" folder. There may be a "OptionInfo.<strong>lua</strong>", which should not be write protected.<br />- Make sure, that there is a "OptionInfo.<strong>lub</strong>" in your "System\LuaFiles514" folder. If you have one in "System" copying/moving won't help.<br />- Make sure, you have the latest version of OpenSetup.<br />- Make sure, you read all message boxes that may occur when saving settings.<br />- Note that the setting saving process requires Administrator privileges (you will be prompted automatically for consent/credentials).
  13. From the log I see, that the setup found old (pre-Lua514) Lua settings template. If you use a recent client, you need the .lub in the other folder. If you have a OptionInfo.lub file in your savedata folder, it overrides any settings saved by the setup (and the client itself).
  14. Menu "Action" -> "Add a new resource..." Button "Open file with new resource" -> select your background bitmap (.bmp) Field "Resource Type" should turn into BITMAP. Field "Resource Name": Enter BGSKIN Field "Resource Language": Enter 0 Button "Add Resource" Menu "File" -> "Save"
  15. Updated to 2.9.1, updates Japanese and Spanish translation. No functional changes.
  16. Updated to 2.4.2 Maintenance and refresh release. Updates iRO patch information and refreshes core libraries.
  17. Use Resource Hacker to edit the String Table. Yes, Resource Hacker only. For the button names, see the example INI shipped with rocred (ex. filename: btnreplay.bmp / resource: IDB_REPLAY). It's called "focus", because it occurs when the button gains focus (tab or mouse-button pressed), if it would react to mouse-over, it would be called as such; mouseover/mouseout tracking is painful to add with the methods I know (TrackMouseEvent function), that's why i choose focus instead.
  18. Make sure you created the folder as following: .\WeeDiff.exe .\plugins\WeeDiffGen.dll .\plugins\WeeDiffGen\<your WDG plugins go here>
  19. https://sourceforge.net/projects/atwl/files/WeeDiffGen/
  20. Version 1.6.0 Per request, added support for providing the server with miscellaneous user information (requires user consent once). When enabled, requires modification of the login packet code on server-side to extract the url-style parameters from the t1 (token) field.
  21. What do you mean? If you do not like the option, just do not use it?
×
×
  • Create New...