Jump to content

CORKY

Premium
  • Posts

    85
  • Joined

  • Last visited

  • Feedback

    0%

About CORKY

Informations

  • Gender
    Male
  • Country
    South Korea
  • Nationality
    Nigerian

Social Networks

  • Discord
    corky7412

Recent Profile Visitors

1297 profile views

CORKY's Achievements

Community Regular

Community Regular (8/16)

  • Very Important Person Rare
  • Very Popular Rare
  • Reacting Well
  • Dedicated
  • Collaborator

Recent Badges

234

Reputation

  1. You need to handle manually the min/max/close buttons. You can do it like the following: case WM_NCLBUTTONDOWN: { switch (wParam) { case HTMINBUTTON: ShowWindow(hWnd, SW_MINIMIZE); return 0; case HTMAXBUTTON: case HTSYSMENU: return 0; case HTCLOSE: RunPressExitKey(); return 0; case HTCAPTION: if (!IsUserMovingMainWindow()) SetUserMovingMainWindow(true); return 0; } break; } Additionally, I've also blocked the HTSYSMENU param, otherwise, the players can click on the application icon that's in the non-client area and it'll pop up the system menu, which will, again, freeze the application.
  2. I've fixed it entirely by creating a separate detached thread for the process function. I've tested it for about 1 hour doing duels/killing mobs, trying to fuck it up. If you want to try this method, revert the changes done from the main post and do the following: PythonApplication.cpp // Add #include <thread> if you don't have it already. // Replace CPythonApplication:Loop() with the following: void CPythonApplication::Loop() { static bool m_started = false; while (true) { if (IsMessage()) { if (!MessageProcess()) break; } else { if (!m_started) { std::thread process_thread([this]() { while (1) { if (!Process()) break; } }); m_started = true; process_thread.detach(); } } } } The result (I've spammed clicks on the window bar, moved it, constantly calling the message):
  3. Check if your granny is added to linker inside the input field or if there's any pragma comment that adds the lib (such as #pragma comment(lib, "granny2_static.lib").
  4. Here's a proof of concept that does what you showed in the gif when using the cloak of courage (70038). You can remove the poly effect from the SetPolymorph function or add an argument so you can control when to spawn it or not. char_battle.cpp
  5. It might be from LOD models. You might've deleted the _lod granny models for the specific armour but you've kept the LOD loading enabled from the client's binary. Check the following topic first if it doesn't solve your problem, disable LOD models from the client's source:
  6. In your db (you'll enter from navicat for example) you'll have a table inside player called "skill_proto". Search your desired skill from it's vnum (In my example we'll modify Aura of Sword which is the vnum 4) and modify the szDurationPoly column value. In some special cases, you'll need to modify szDurationPoly2, so keep that in mind if it doesn't work for your skill. Open it up and modify the cooldown values like it: Save the table, then go into your locale folder from the client and sync the skill_table with the new values like the following: skill_table
  7. input_main.cpp if (ch->GetLastPMPulse() < thecore_pulse()) ch->ClearPMCounter(); if (ch->GetPMCounter() > 3 && ch->GetLastPMPulse() > thecore_pulse()) { ch->GetDesc()->SetPhase(PHASE_CLOSE); return -1; } Modify the "3" with your desired limiter, or just remove it if you don't want any kind of limitation.
  8. Download Center Download Example of usage is provided in the files. You can extend it and call it from server when a event starts for example, I'm sure you can find a usage for it. Don't forget to also replace the MSS.H from extern/include, it contains a different name for the C8 define to not interfere with windows's "implements.h" header's templates For more details, check out WinToast's official repo: [Hidden Content]
  9. Indeed, but this is a trivial method. The one which you can buy has probably a better implementation and you have more control over the distance
  10. Wanted to point out that on device reset, you might get your whole client frozen. That happens because the imgui's objects aren't invalidated & created again. To fix it, use Imgui's own implementations inside CGraphicDevice::Reset: bool CGraphicDevice::Reset() { HRESULT hr; if (FAILED(hr = ms_lpd3dDevice->TestCooperativeLevel())) { if (hr == D3DERR_DEVICELOST) return false; if (hr == D3DERR_DEVICENOTRESET) { __DestroyPDTVertexBufferList(); ImGui_ImplDX9_InvalidateDeviceObjects(); if (FAILED(hr = ms_lpd3dDevice->Reset(&ms_d3dPresentParameter))) { TraceError("Failed to reset device"); return false; } m_pStateManager->SetDefaultState(); if (!__CreatePDTVertexBufferList()) return false; ImGui_ImplDX9_CreateDeviceObjects(); } } return true; } Don't forget to include imgui.h and imgui_impl_dx9.h (or imgui_impl_dx8.h depending on what you're using)
  11. These two videos will help a lot, pay attention to every step and practice in the same time you watch. Don't just copy the code but also try to understand it.
  12. You might find what you seek inside this topic:
  13. What Intel was saying is that if you're holding the left/right click on the bar without moving the mouse at all, the game will still freeze for around 300-500ms. My post was only related to the context menu (because it was freezing the client while it was opened) so it just removes that option since no one was using it anyway.
  14. Add OFFLINESHOP_EDIT_SHOPNAME_TOOLTIP inside your locale_interface.txt
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.