Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


curiosity last won the day on April 24 2023

curiosity had the most liked content!

Profile Information

  • Gender
    Not Telling
  • Github: curio-r

Recent Profile Visitors

10432 profile views

curiosity's Achievements

  1. sir, i have seen your post "[WIP] Native Ragnarok Client"

    do you serve an service for that?

    please contact me..



  2. Thanks for sharing the video. What I'm the most impressed with is how authentic you've managed to keep the graphics to the original game's artwork. Not bad, but let's not hijack this topic.
  3. Try this and report the result: Start rAthena Start Ragnarok in windowed mode and enter the game Open Resource Monitor (Win+R -> resmon.exe) Go to the "Memory" tab Find your client exe in the list Watch the numbers in the column "Hard Faults/sec" while playing a little bit Edit: Another thought: try going into your BIOS/UEFI settings and preallocate 512MB or so for the graphics card and see if this changes anything.
  4. Looking great, @MaterialBlade. If the client starts getting unstable, keep in mind that clients made before the new Prontera update have a hard limit of 3000 vertices per RSM node. More than that and things go haywire pretty fast. Also RGBA sprites are really bad for the client in comparison to indexed sprites, although I don't think there are any memory leaks. Props for sticking with this. I wanted to make a little Paper Mario demo (I even built OBJ to RSM and spritesheet to SPR converters), but working with BrowEdit made me want to throw my computer out the window pretty fast.
  5. Yeah, I noticed it would occasionally stop seemingly for no reason. Should be fixed now. Though I haven't fixed recovery in situations where it wants to kill something on-screen that it can't reach. E.g. a lone pupa on top of a cliff is currently very dangerous. There are also certain situations where the atrocious path finding of the Ragnarok client can't find calculate a path to enemies that not far away. If it works with some - but not all - 2015 clients then it may be because the sections (or simply the section names) weren't restored by whoever unpacked the client (i.e. removed the Themida protection).
  6. I made a couple of bug fixes, updated the download. Worked for me. It worked with a 2015 client? I expected maybe late 2013 at most in it's current state
  7. About [Only tested with 2012-04-10aRagExeRE - will likely currently be broken on new clients (though it won't hurt to try)] With this extension installed, players can use the new chat command /auto (alias /idle) to initiate a simple auto pilot mode. When activated, the message [AUTO MODE] will appear above the player's head, and the player will proceed to attack any visible enemy and otherwise roam around on the map. The mode is deactivated by typing the command again. One use case could be to make grinding less tiresome on low rate servers without allowing full bots. Please note that you can't access any GUI elements while /auto is active, except for typing in the chat window. In contrast with bots, this: Works through the client, rather than as a separate layer between the client and server Is limited in terms of functionality (e.g. no item farming) and can be further restricted by modifying the source code (e.g. if you want to exclude certain maps) Easy to use, and can be switched on and off through the chat window This release is the culmination of a few experiments modding the client. If you can program, you might want to consider using the source code as a base for other projects. One idea could be to use the code to easily swap packet headers as to make life harder for bots and similar tools. Installation Download the binary below and put rextensions.asi in your main Ragnarok folder. Files with the .asi extension will automatically be loaded by the client if sound is enabled. The DLL can also be added as a static dependency to the client by using a patcher such as NEMO. Download Source code Binary download
  8. Looks like it loads the correct texture, but the composition is wrong as if it's using the wrong blend mode. Graphics card drivers will occasionally have issues with old versions of Direct3D. Try running the same client on another PC and see if you get different results. Or you could perhaps try changing settings in your graphics controls panel.
  9. Guys, I'm still working on the project on my own phase. If you are desperate to get access right now and happen to be a reputable member around here, PM me your GitLab user. Note that you gain nothing from code access at this point unless you're comfortable with C++ development. It's not a ready client replacement for your server.
  10. Looking good. Maybe we can get you some custom UI once my client is ready.
  11. You can add a command handler like this: ACMD_FUNC(mypoints) { int points = pc_readaccountreg(sd, add_str("your-script-variable-here")); char buffer[32]; sprintf(buffer, "You have %d points.", points); clif_displaymessage(fd, buffer); return 0; }
  12. Alright. Here are patches for main and Sakray service. Not that much interesting in them. I think kRO runs a pretty tight ship compared to other regions.
  13. Anything specific? For kRO I have mid 2004 to end of 2008. Missing 2009, 2010 and first half of 2011.
  14. Load times are probably only slightly better than the regular client, since it's the same approach. The ground mesh is built on the main thread and must be completed before the map is displayed, while model loading runs on a separate thread and finishes later. On mobile phones it takes a couple of seconds to load a map, and on my PC a typical map loads in under one second. I believe map loading is mostly bound by I/O. No problems with FPS so far and so I haven't bothered to measure it. As mentioned I have both Direct3D or OpenGL implementations to support the renderer. I believe OpenGL is the most performant one since I've made some adjustments to heavily batch render calls. Effects are for the most part identical to their originals effect. I can't quite copy-paste from the original client, but I can borrow the approach. Here's an example of how a simple effect is implemented: void CRagEffect::IncAgility(void) { matrix vtm; tlvertex3d vert; vector3d src; src = m_master->m_pos; vtm = g_modeMgr.GetGameMode()->m_view->m_viewMatrix; g_renderer->ProjectVertex(src, vtm, &vert); m_tlvertX = vert.x; m_tlvertY = vert.y; m_pos = m_master->m_pos; if (m_stateCnt == 0) { auto player = g_modeMgr.GetGameMode()->m_world->m_player; float z = m_pos.z - player->m_pos.z; float x = m_pos.x - player->m_pos.x; PlayWave("effect\\EF_IncAgility.wav", x, 0.0f, z, 250, 40, 1.0f); g_prim = LaunchEffectPrim(PP_2DTEXTURE, { 0, 0, 0 }); g_prim->m_duration = m_duration; g_prim->m_longitude = 0; g_prim->m_speed = 1.5f; g_prim->m_accel = g_prim->m_speed / g_prim->m_duration * -1.2f; g_prim->m_widthSize = 40.0f; g_prim->m_heightSize = 20.0f; g_prim->m_alpha = 0; g_prim->m_maxAlpha = 200.0f; g_prim->m_alphaSpeed = g_prim->m_maxAlpha * 0.06666667f; g_prim->m_fadeOutCnt = g_prim->m_duration - 15; g_prim->m_texture = new CTexture*[g_prim->m_totalTexture](); g_prim->m_texture[0] = g_texMgr.GetTexture("effect\\agi_up.bmp", false); } if ((m_stateCnt % 2) == 0) { g_prim = LaunchEffectPrim(PP_3DCROSSTEXTURE, { 0, 0, 0 }); g_prim->m_duration = 50; g_prim->m_matrix.MakeYRotation(GetRadian(rand() % 360)); g_prim->m_deltaPos2 = vector3d(0.0f, 0.0f, (float)(rand() % 7 + 2)) * g_prim->m_matrix; g_prim->m_matrix.MakeXRotation(GetRadian(90)); g_prim->m_speed = (rand() % 50 + 20) * 0.01f; g_prim->m_widthSize = (rand() % 60 + 30) * 0.1f; g_prim->m_heightSize = 0.18f; g_prim->m_alpha = 0; g_prim->m_maxAlpha = 200.0f; g_prim->m_alphaSpeed = g_prim->m_maxAlpha * 0.05f; g_prim->m_fadeOutCnt = g_prim->m_duration - 20; g_prim->m_texture = new CTexture*[g_prim->m_totalTexture](); g_prim->m_texture[0] = g_texMgr.GetTexture("effect\\ac_center2.tga", false); } }
  15. It's very helpful that Athena developers have attempted to keep backwards compatibility with older clients -- all despite an increasing pile of spaghetti code as seen in functions such as clif_set_unit_idle. With rAthena you can ostensibly compile the server for any given version network protocol. Of course, as people move on to newer clients, the old clients aren't really tested anymore and many things can go wrong. The result is that rAthena supports a lot of strange packet versions that are something of a mix between old and new. But in the end, the only thing that matters is that the server and client understands each other. Luckily it didn't take too much effort to get my client working with the latest trunk revision. Renewal seems to work also, although I got resource crashed from some new monster called "little poring" or something?? Below: me battling it out @ glast with rAthena pre-RE
  • Create New...