Leaderboard
Popular Content
Showing most liked content since 10/31/2024 in Posts
- 
	Let me give you a little more hope. .. .. I actually built the client from scratch, and it wasn’t that complicated. I’m running it on DirectX 9 right now, but honestly it’d be even better to bump it up to DirectX 10 or higher. That way you’re not stuck with the old fixed-pipeline stuff, and you could build an even cleaner client .. the code you’ve got is from 2001, maybe older.4 likes
- 
	So this is my latest project, feel free to give feedback and/or contribute to the project. Project DVN is a free open-source visual novel engine written in the D programming language. The purpose of Project DVN is to provide an easy-to-use and flexible engine. Github: https://github.com/ProjectDVN/dvn Example:4 likes
- 
	Simple find pattern: uintptr_t findPattern(uintptr_t start, size_t length, const std::vector<int>& pattern) { auto patternLength = pattern.size(); auto data = reinterpret_cast<const uint8_t*>(start); for (size_t i = 0; i <= length - patternLength; ++i) { bool found = true; for (size_t j = 0; j < patternLength; ++j) { if (pattern[j] != -1 && pattern[j] != data[i + j]) { found = false; break; } } if (found) { return start + i; } } return 0; } Then get the base: auto d3d9Module = reinterpret_cast<uintptr_t>(GetModuleHandleA("d3d9.dll")); std::vector<int> pattern = { 0xC7, 0x06, -1, -1, -1, -1, 0x89, 0x86, -1, -1, -1, -1, 0x89, 0x86 }; auto d3dBase = findPattern(d3d9Module, 0x128000, pattern); auto d3dVMT = *reinterpret_cast<uintptr_t**>(d3dBase + 2); And you can use it normally: oDrawIndexedPrimitive = reinterpret_cast<tDrawIndexedPrimitive>(d3dVMT[82]); oEndScene = reinterpret_cast<tEndScene>(d3dVMT[42]); oReset = reinterpret_cast<tReset>(d3dVMT[16]); Check out d3d9 indexes here: https://pastebin.com/raw/QbPhkCKh Note: you'll need to grab d3d9 Device from EndScene You can use this to properly render imgui. - Check out how DrawIndexedPrimitive could be implemented: DIP-Hook3 likes
- 
	Hey everyone, I may be sharing this project prematurely out of excitement lol. There is not much here yet, and what is here is nothing new or special really. Sharing for feedback and for anyone interested in following my journey down this little adventure. Preface (feel free to skip): About a month or so ago I got an itch to mess around with conquer online this old game I used to love. Just wanted to hop in and look around (not the retail version of course haha) one rabbit hole lead to another and now here I am. I have never worked on a game server before this project. My development velocity has been... slow to say the least but thats because im really trying to take my time and learn as much as I can in this process, and further more try to avoid the dreaded scrapping of the project because of an eventual roadblock caused by a design oversight. As much as I can with my limited knowledge on this topic. Credits: All credits go to whoever's code you recognize, if you see any. A lot of the ideas and implementation here was taken either directly or with a grain of salt from either Comet or Albetros. I claim nothing here, as nothing Ive done so far would be possible for me without the leg work the community has done. Some details on what the project does now this thread will be updated as the project gets updated, I will try my best to have daily commits for anyone interested in following. - Right now the server is implemented up to the point where we respond to the client to the create player packet https://github.com/berniemackie97/OpenConquer 8/23/2025 first update. dont remember the current state just pushed up what I had when I was last working on this a few weeks ago. Will be coming back to this soon, what I'm working on now should make working on the server easier3 likes
- 
	Old code found on my disk, this could be used as a gate to make a bot targeting specific strings in game... but this is just a cute rainbow example!!1! You can also change font/text content in real-time too. ShowStringEx: HMODULE hGraphic = GetModuleHandleA("graphic.dll"); oShowStringEx = (tShowStringEx)GetProcAddress( hGraphic, "?ShowStringEx@CMyBitmap@@SA?AUC3_SIZE@@HHKPBD0H_NW4RENDER_TEXT_STYLE@@KUC3_POS@@@Z"); Example code: typedef struct { int width; int height; } C3_SIZE; typedef struct { int x; int y; } C3_POS; enum RENDER_TEXT_STYLE { STYLE_DEFAULT = 0, STYLE_BOLD = 1, }; typedef C3_SIZE(__cdecl* tShowStringEx)(int, int, unsigned long, const char*, const char*, int, bool, RENDER_TEXT_STYLE, unsigned long, C3_POS); ShowStringEx_t oShowStringEx = nullptr; float fRed = 0.0f, fGreen = 0.0f, fBlue = 0.0f; float fTime = 0.0f; DWORD lastTick = 0; void updateRainbowColors() { DWORD currentTick = GetTickCount(); float deltaTime = (currentTick - lastTick) / 1000.0f; lastTick = currentTick; fTime += deltaTime; fRed = (sin(fTime) + 1.0f) / 2.0f; fGreen = (sin(fTime + 2.0f) + 1.0f) / 2.0f; fBlue = (sin(fTime + 4.0f) + 1.0f) / 2.0f; } D3DCOLOR gRainbow() { return D3DCOLOR_RGBA(static_cast<int>(fRed * 255), static_cast<int>(fGreen * 255), static_cast<int>(fBlue * 255), 255); } C3_SIZE __cdecl hkShowStringEx(int a1, int a2, unsigned long a3, const char* str1, const char* str2, int a6, bool a7, RENDER_TEXT_STYLE style, unsigned long a9, C3_POS pos) { //example targeting fps/ping counter if (strstr(str1, ("FpsAver")) != nullptr)//or C3Ver:DX { updateRainbowColors(); return oShowStringEx(a1, a2, gRainbow(), str1, str2, a6, a7, style, a9, pos); } return oShowStringEx(a1, a2, a3, str1, str2, a6, a7, style, a9, pos); } Preview:3 likes
- 
	2 likes
- 
	2 likes
- 
	Detailed patch notes for Conquer Online, from version 2.0 to 3.0, and excluding patches that only add new servers, new temporary events or fix bugs. When targeting a patch, take the highest before a feature you do not want. Also, note that † denotes protocol changes, but only patches between 5016 and 5078 are identified because that's the range I personally target in COPS X Emulator. Later patches (above 5100) are a bit less exhaustive, because at that point, TQ were releasing a lot of daily quests, a lot of boxes and other pay-to-win content. So it would be quite bloated... I'm also less interested in those. Patch 4283: Conquer Online 2.0 -- November 1, 2005 - New low-level items (below level 10) - New high-level items (above level 120) - Blessed equipments - Enchanted equipments - Tortoise gems - Dis City quest Patch 4294 -- January 16, 2006 - Millionaire Lee (to pack Met & DB scrolls) - Surgeon Miracle (to change body size) - Weapon Master can now upgrade level 110/112 armors/helmets for 1 DB - PIN required when deleting characters Patch 4312 -- May 24, 2006 - Second Rebirth quest - Lucky Time - Black Armors (Shopboy) - New TG map (extended) Patch 4331 -- December 6, 2006 - Gem composing (with Jeweler) [NOTE: Mining rates were decreased] - Newbie protected maps - XP skills acquired ahead of time (when reaching level 3) *Minor: New icons for lucky time & double exp-time. The ones we are used to.** Patch 4336 -- January 10, 2007 - CPs - Lottery - Exp balls - +s stones - Disguise Amulet / Penitence Amulet / Ninja Amulet - Black Tulip - Exemption Token - Garments - Gourds / Bottles Patch 4337 -- January 22, 2007 - One Good Turn Deserves Another quest (aka Unknown Man) - Shelby now rewards exp (instead of Mets/DBs -- Mets added back in 4339) Patch 4338 -- January 29, 2007 - Heaven Blessing [NOTE: But no Offline TG yet!] Patch 4353 -- August 1, 2007 - Potency (aka Battle Power) - Max level increased to 135 - Remote access to Shopping Mall Patch 4354 -- August 14, 2007 - Broadcast channel - Whisper chat window Patch 5002 -- November 26, 2007 - Proficiency God (level weapon profs with exp balls) - Blacksmith Lee (socketing with 12 DBs and Though Drills) - +10~+12 equipment composition - Monster Hunter quest - Demon Extermintators quest Patch 5006 -- December 17, 2007 - Offline TG - Repair broken equipments with 5 mets - Composing level 120 items with lower level ones (armors & helmets) *Minor: High definition & Standard definition modes in the client.* Patch 5016† -- March 5, 2008 - Nobility system - Team auto-invites - Path finding (client-side) Patch 5018† -- March 18, 2008 - GW reward is now 3000 CPs (from GuildOfficer) - Cipher changed to Blowfish with DH key-exchange Patch 5022† -- April 25, 2008 - Mentor & Apprentice system - Suspicious items - Locked items - Trade partners - Merchant accounts - PK rule changes: - Red names/black names go to jail, but don't loose locked items - Killer gets their pay out through Warden Zhang - PK points are limited to 1000 - Max level increased to 137 Patch 5028* -- June 18, 2008 - Flash login screen Patch 5030 -- June 30, 2008 - New Dynasty hair styles Patch 5031† -- July 7, 2008 - Date displayed (and synchronized with the server) Patch 5032 -- July 16, 2008 - Profession PK War (ProfPKChief & PKProfClerk) Patch 5035† -- July 23, 2008 - Level 120 shields - Plumes (archers) & Headbands (warriors) - Color is now splitted from the item types, allowing for higher level armors / helmets / shields. Patch 5059 -- September 2, 2008 - Potency renamed to Battle Power Patch 5066† -- September 19, 2008 - Arrows will be auto-loaded when one quiver is used up (client-side triggered) - New point-based composition - Detain system for red/black names items (even if locked) - Free items (but unused until patch 5072) Patch 5072† -- November 12, 2008 - Talismans system (Fans & Towers) - Flower Ranking system Patch 5078 -- December 3, 2008 - Honor Halos (for GW and PK Tournament winners) NOTE: Fixed GameData.dll, to properly load 64 bits status effects. Patch 5089 -- December 19, 2008 - Ninja - Beginner Packs Patch 5101 -- February 17, 2009 - Quiz Show Patch 5127 -- May 20, 2009 - Enlightenment system - Interaction system - World channel - Quest list - New interface (new location for action buttons) - New chat interface - Visual warning when HP is too low Patch 5130 -- June 1, 2009 - Removal of some Interactions Patch 5136 -- June 26, 2009 - Free items renamed to Bound items Patch 5155 -- July 16, 2009 - Mount system - Clan system - Frozen Grotto Patch 5160 -- August 5, 2009 - Removal of Guild Branches Patch 5171 -- September 23, 2009 - Demon Boxes (Demon Box Dealer) to get tremendous amounts CPs NOTE: First traces of support for .pux files in the Conquer executable. Patch 5173 -- October 14, 2009 - Password cipher changed on Account Servers (still using RC5, but with seed) NOTE: Spirited's guide says 5187. For sure something related to the Account Server changed here. Patch 5180 -- November 4, 2009 - Martial Arsenal system - Arena system Patch 5190 -- December 9, 2009 - Clan War Patch 5196 -- December 20, 2009 - Demon Boxes have been removed Patch 5200 -- December 23, 2009 - Texas Hold'em Poker - Alternative Equipment Patch 5205 -- January 11, 2010 - MagicArtisan can now downgrade equipments to level 15 for a DB Patch 5212 -- February 1, 2010 - Refinery system - Stabilization system - Horse Racing Tournament - Refinery items are now rewards for Dis City and PK Tournaments - Characters can now have a First Name and Last Name - Shopping Mall now have categories Patch 5250 -- April 27, 2010 - Sub-Class system - Artifact system - Weapon accessories - 3-6th floors of Frozen Grotto - Small Boss Hunting - Ninja now have a full super gear effect Patch 5258 -- May 17, 2010 - CP Shower event (players can get Bound CPs while hunting monsters) NOTE: Unsure if that is when Bound CPs were introduced. Patch 5265 -- May 31, 2010 - MagicArtisan can downgrade equipments to level 15 for 27 CPs - Socket rates when leveling equipments have been increased Patch 5276 -- June 30, 2010 - Bound CPs can no longer be used to by some items like: DBs, Celestial Stones, Gourds, Money Bags... Patch 5287 -- July 22, 2010 - Guild PK Tournament - Elite PK Tournament - Clan Qualifier - Reincarnation - Pure Skills Patch 5297 -- August 24, 2010 - Meteors and DB socketing rates have been increased. - Cost of downgrading equipments has been increased to 54 CPs. Patch 5300 -- September 2, 2010 - Max level increased to 138 Patch 5302 -- September 9, 2010 - Gender-specific titles for Nobility system Patch 5310 -- September 20, 2010 - Team PK Tournament - Memory Agate (magical stone allowing to record locations) - Level 3 & 4 Houses upgrades - Gender-specific transformations - Character renaming for 810 CPs (Character Name Editor in Market) - Garment Swap system (Garment Shop Keeper in Market) - Item stacking for restorative items - Shields are now giving HP - Maps are now compressed with 7z (assets from patch 5309) Patch 5351 -- December 16, 2010 - Monk class - Max level increased to 140 - New high-level equipments (above level 130) - New Block skill for warriors with shields - Attack range and damages increased for Dragon Whirl, Hercules, Fast Blade & Scent Sword Patch 5353 -- December 23, 2010 - Revive skills now require to press Ctrl for targets that aren't in your guild Patch 5358 -- January 20, 2011 - Millionaire Lee can now pack +1 stones and normal gems Patch 5376 -- March 17, 2011 - Skill Team PK Tournament - Capture the Flag - Team Qualifier - Spear and Wand Skill - Escort Mission - CP Drops for VIPs (Monk Zhen -- entering Mystic Forest) Patch 5391 (1005) -- May 3, 2011 - First macOS client Patch 5502 (1028) -- June 16/20, 2011 - Low definition mode Patch 5509 (1021) -- July 7, 2011 - Guild Recruitment system - Level 5 Houses upgrades Patch 5517 (1029) -- July 28, 2011 - Mounted Combat system Patch 5532 (1055) -- October 19, 2011 - Birth Village has been removed - Guild Beast can be upgraded to the Void Beast, which can drop the special Dragon Souls - Number of items displayed on a page in the Warehouse has been increased - Password cipher changed on Account Servers (SRP6) NOTE: The password cipher change was not confirmed by myself, but is around that patch for sure. Patch 5557 (1066) -- December 7, 2011 - Achievement system Patch 5565 (1073) -- January 5, 2012 - New Shopping Mall interface Patch 5568 (1078) -- January 11, 2012 - Pirate class - Gale Shallow & Sea of Death maps Patch 5578 (1087) -- March 8, 2012 - Removal of most Mines - Removal of most alt-maps like New Canyon Patch 5580 (1089) -- March 20, 2012 - New head gear for pirates Patch 5588 (1097) -- April 12, 2012 - More stackable items (Emeralds, HealthWine, CleanWater, Diamonds, Stones, etc) Patch 5607 (1112) -- May 29, 2012 - Male gift system: Kisses, Beers and Jades - Mounted offensive skill: Charging Vortex - Defensive warrior skills: Defensive Stance and Magic Defender - Scythe ninja skills: Bloody Scythe, Mortal Drag and Gaping Wounds - Scythe ninja item - New PK mode: Revenge. You can attack your listed enemies and monsters in this mode. - Players are now able to change the order of their skills. Patch 5619 (1119) -- June 21, 2012 - Removal of all Mines Patch 5622 (1121) -- July 5, 2012 - Chi system Patch 5639 (1131) -- August 28, 2012 - One-Armed Bandits - Flags Emblems - Quick Composition Patch 5670 (1159) -- November 15, 2012 - Faction War Patch 5728 (1212) -- May 21, 2013 - Auto-Hunting System Patch 5761 (1231) -- July 25, 2013 - Jiang Hu system - Guild PK-mode - Guards, Poles, and more have increased HP (and attack/defense) Patch 5838 (1291) -- December 31, 2013 - Re-designed maps Patch 5859 (1301) -- January 24, 2014 - New Shopping Mall for Bound CPs Patch 5929 (1375) -- August 1, 2014 - Roulette - Cross-servers (Travel Agent in Twin City) Patch 5936 (1379) -- August 9, 2014 - PvP cross-servers Patch 5938 (1380) -- August 12, 2014 - New Ninja skills Patch 5972 (1398) -- September 29, 2014 - Cross-server Capture the Flag Patch 5986 (1507) - October 30, 2014 - Dragon Warrior class - Mine Caves returning Patch 5992 (1510) -- November 11, 2014 - The Way of Heroes system Patch 6075 (1580) -- May 7, 2025 - Taoist Ascending expansion Patch 6083 (1589) -- May 25, 2015 - Renaming of Guilds and Clans Patch 6102 (1603) -- July 9, 2015 - Battle Power Tournament Patch 6116 (1616) -- August 20, 2015 - Maximum money has been bumped from 999'999'999 to 9'999'999'99. Patch 6152 (1638) -- November 12, 2015 - Reborn characters can unlearn skills (see SkillEraserSpecialist in Market) Patch 6175 (N/A) -- January 2, 2016 - Removal of the Flash login screen Patch 6193 (1682) -- March 3, 2016 - Wardrobe system - Title system Patch 6216 (1698) -- April 7, 2016 - New PK interface (recording killed players) Patch 6266 (1727) -- June 13, 2016 - First maps with .pux files (but support already there from 5171) NOTE: 6266, 6270, 6323 added more maps. Finally, 6609 added the redesigned Twin City using .pux files too. Patch 6270 (1730) -- June 16, 2016 - Perfection system Patch 6362 (1783) -- November 17, 2016 - Level 6 Houses upgrades Patch 6385 (1798) -- January 12, 2017 - Windwalker class Patch 6508 (1817) -- March 30, 2017 - Texas Raider (new way to play Texas Hold'em Poker) Patch 6532 (1831) -- May 25, 2017 - New map Map Dragon Island (all bosses are moved there) Patch 6559 (1852) -- June 22, 2017 - Millionaire Lee can now pack +2 & +3 stones - Millionaire Lee can now pack MetScrolls & DBScrolls Patch 6610-6612 (1887): Conquer Online 3.0 -- October 17, 2017 - Redesigned Twin City - Redesigned characters - Redesigned skills - Redesigned monsters NOTE: C3 models are updated and some are incompatible with previous ones. New models started getting released around patch 6606. The patch 6605 (10/13/2017) is the latest "safe" version for CO 2.0 models. In general, new CO 3.0 stuff started getting added around the patch 6592 (09/20/2017).2 likes
- 
	I am indeed leaning into the generic host + BackgroundService pattern but only for LoginHandshakeService, GameHandshakeService, ConnectionWorker and im currently experimenting with an ExperienceService but im not really liking how I have that set up (no real reason other than I feel like there probably is a better way to do what im currently doing with it). Everything else is regular old DI, Parsers and handlers are discovered through assembly scanning. So far I dont have any complaints, I do have to say this is my introduction to game server development as a whole, so I dont know if i can really recommend anything to anyone, other than say so far for me it fits my needs. I really probably should read more into the topic and see more about why things are done a certain way in other game servers. Thank you!2 likes
- 
	Here's a full D3D8 Hook Tutorial in English, including all steps from knowledge prerequisites to debugging and logging. 1. Prerequisites Before diving into D3D8 hooking, you should be familiar with the following: TopicDescription C/C++ ProgrammingKnow classes, pointers, function pointers DLL BasicsUnderstand how DLLs work and are injected Windows APIBasic Win32 programming and message loop Assembly & MemoryBasic understanding of memory layout and vtables DirectX 8 ConceptsHow Direct3D8 renders (e.g., EndScene, Reset) 2. Required Tools ToolPurposeRecommendation Visual Studio 2019/2022Build and debug C++ projects DirectX 8 SDKProvides d3d8.h, d3d8.lib, etc. DLL InjectorInject your DLL into the target process[Extreme Injector, Process Hacker, or custom one] Cheat EngineMemory inspection/debugging DebugView or file loggerFor logging without a console 3. Create the Hook DLL Project 3.1 Set up a Visual Studio Project Open Visual Studio → Create New Project → C++ Dynamic-Link Library (DLL) Name it something like D3D8Hook Set Project Properties: C/C++ > General > Additional Include Directories: Add the DirectX SDK Include path Linker > Input > Additional Dependencies: Add d3d8.lib, d3dx8.lib 3.2 Write the Hooking Code // D3D8Hook.cpp // D3D8Hook.cpp #include <Windows.h> #include <d3d8.h> #include <d3dx8.h> typedef HRESULT(APIENTRY* EndScene_t)(LPDIRECT3DDEVICE8 pDevice); EndScene_t oEndScene = nullptr; DWORD WINAPI MainThread(LPVOID); // Hook implementation HRESULT APIENTRY hkEndScene(LPDIRECT3DDEVICE8 pDevice) { static bool once = false; if (!once) { MessageBoxA(0, "D3D8 Hooked!", "Success", MB_OK); once = true; } return oEndScene(pDevice); // Call the original } void HookFunction() { IDirect3D8* pD3D = Direct3DCreate8(D3D_SDK_VERSION); if (!pD3D) return; D3DPRESENT_PARAMETERS d3dpp = {}; d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.hDeviceWindow = GetForegroundWindow(); IDirect3DDevice8* pDevice = nullptr; if (SUCCEEDED(pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dpp.hDeviceWindow, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &pDevice))) { void** vtable = *(void***)pDevice; oEndScene = (EndScene_t)vtable[35]; DWORD oldProtect; VirtualProtect(&vtable[35], sizeof(void*), PAGE_EXECUTE_READWRITE, &oldProtect); vtable[35] = (void*)&hkEndScene; VirtualProtect(&vtable[35], sizeof(void*), oldProtect, &oldProtect); pDevice->Release(); } pD3D->Release(); } DWORD WINAPI MainThread(LPVOID) { HookFunction(); return 0; } BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID) { if (reason == DLL_PROCESS_ATTACH) CreateThread(nullptr, 0, MainThread, nullptr, 0, nullptr); return TRUE; } 3.3 Build the DLL Use Build → Build Solution (Ctrl + Shift + B) and find the DLL in: csharp 复制编辑 [YourProjectFolder]\x86\Debug\D3D8Hook.dll Make sure it's compiled for x86 if the target process is 32-bit. 4. Injecting the DLL Method 1: Use an Injector Tool Start the game or D3D8-based application Open an injector (e.g., Extreme Injector or Process Hacker) Select the target process and inject D3D8Hook.dll Method 2: Write Your Own Injector (optional) cpp 复制编辑 HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, targetPID); LPVOID addr = VirtualAllocEx(hProc, NULL, len, MEM_COMMIT, PAGE_READWRITE); WriteProcessMemory(hProc, addr, dllPath, len, NULL); CreateRemoteThread(hProc, NULL, 0, (LPTHREAD_START_ROUTINE)LoadLibraryA, addr, 0, NULL); 5. Debugging and Logging 5.1 Output to DebugView Use this to see logs: cpp 复制编辑 OutputDebugStringA("D3D8 Hook initialized!"); You can view logs with DebugView by Sysinternals. 5.2 Write Logs to File cpp 复制编辑 void Log(const char* msg) { FILE* f = fopen("C:\\D3D8_Hook_Log.txt", "a+"); if (f) { fprintf(f, "%s\n", msg); fclose(f); } } 5.3 Use Visual Studio Debugger Build your DLL in Debug mode Launch the target app Attach Visual Studio (Debug → Attach to Process) Set breakpoints in hkEndScene or elsewhere Common Issues & Fixes IssuePossible Cause Game crashesWrong vtable index or uninitialized pointers Nothing happensHook not applied or wrong process architecture DLL fails to injectMissing dependencies or wrong platform (x64 vs x86)2 likes
- 
	For an offline CO experience, take a look at https://github.com/conquer-online/cops-serverless (but it requires C++)2 likes
- 
	For really old client versions, TQ used UPX to pack the executable, which is often flagged by antivirus as an obfuscation method used by viruses. So, you can always unpack the executable. For patches around 5017-5065, some still get flagged even if not packed. At some point, there isn't much that can be done and the best is to recommend to all players to exclude the folder. As many are just using Microsoft Defender, you can normally run a PowerShell command in your installer to auto-exclude the folder.2 likes
- 
	Which they're actually called by actions. It doesn't matter anyway. Try this flags 1000,Desert,70368744185856 1002,CentralPlain,211106232541192 1011,Forest,70368744202240 1015,Island,70368744185856 1020,Canyon,70368744202240 1036,Market,17592186044446 1038,GuildArea,1125900981698690 Basically NPCs execute tasks, items will execute actions directly. Dialogs execute tasks. An NPC needs a task to start, which will be referenced on task0-task-7 on cq_npc and cq_dynanpc. This task will set some rules for an action to be activated. You can define behavior of startup npc dialogs using tasks, if task0 fail, it will try to execute task1 and there it goes. NPC Activation require a task, dialog replies requires a task. Each task targets ONE action. LUA NPCs implementation may be a little bit more hard to understand. I will leave here my implementation of the rebirth NPC so you can see an example. LUA items implementation are easier -- 3600023 战功显赫嘉奖包 tItem[3600023] = tItem[3600023] or {} tItem[3600023]["Function"] = function(nItemId, sItemName) -- do something end LUA monster implementation needs to be pushed to a list too. I will leave my ordinary drop code on attachments too. All of them require actually calling an action or the activation script: --//cq_NPC接口函数(Action_id=94418000) function LinkNpcMain() --陷阱接口函数(Action_id=94427500) function LinkTrapMain() --物品Action接口函数(Action_id=98471500) function LinkItemMain() --任务怪物触发Action接口函数(action.id=94416550),实时触发。(适合用来做怪物掉落) function LinkMonsterMain() Or of course, you can make your own LUA implementation. Long has a basic LUA implementation: lua · main · World Conquer Online / Canyon / Long · GitLab [Conquer][TaskScript]RebirthMaster.lua [Conquer][TaskScript]OrdinaryMonsterDrop.lua2 likes
- 
	On 6200 the client still do not handle the message IDs, they're replaced by the server. Basically on a dialog `90000000_0101` is the `actionid_type`. Canyon and the open version of Long already handles this as it should be. Also both have a lot of map types handled, some types are still unhandled because I dont know them, but I didn't have problems with the cross server data. I am not allowed to share the databases, but there are places where you can find a Database and LUA for version 7119 of american client, which will let you have a full environment of that version. TQ planned to use database tables for item drops, but they actually didn't use. Specific monster drops will always be on `cq_action`, but the random drops are hard coded into the server, Canyon has a +/- approach of how it's done (or not, idk, I adapted it for my own needs). I still don't know how monsters are handled on the Realm, I did a few things for cross server but didnt go far, but it's on my roadmap for the next weeks.2 likes
- 
	VOID CFileEditor::Calculator(int32_t Width, int32_t Height, BOOL IsFull) { WCHAR New_X[128]; WCHAR New_Y[128]; WCHAR OtherData[128]; WCHAR New_Width[128]; WCHAR New_Height[128]; wsprintfW(New_Width, L"%d", Width); wsprintfW(New_Height, L"%d", Height); WritePrivateProfileStringW(L"0-130", L"w", New_Width, L"ini\\GUI.ini"); WritePrivateProfileStringW(L"0-130", L"x", New_X, L"ini\\GUI.ini"); WritePrivateProfileStringW(L"0-130", L"y", New_Y, L"ini\\GUI.ini"); if (IsFull) { CFileEditor::NextStep5517(Width, Height); } }1 like
- 
	Following my previous D3D9-Base setup, here's an example using it for a simple DIP (DrawIndexedPrimitive) hook. Wireframe example code targeting pheasants: typedef HRESULT(WINAPI* tDrawIndexedPrimitive)(LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE, INT, UINT, UINT, UINT, UINT); tDrawIndexedPrimitive oDrawIndexedPrimitive = nullptr; HRESULT APIENTRY hkDrawIndexedPrimitive(LPDIRECT3DDEVICE9 device, D3DPRIMITIVETYPE dType, INT baseVertexIndex, UINT minVertexIndex, UINT numVertices, UINT startIndex, UINT primCount) { //targeting pheasants models (mainly 6609 clients) if (numVertices == 420 && primCount == 544) { DWORD dwOldFillMode; device->GetRenderState(D3DRS_FILLMODE, &dwOldFillMode); device->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME); //here you could return directly, to make it more noticeable oDrawIndexedPrimitive(device, dType, baseVertexIndex, minVertexIndex, numVertices, startIndex, primCount); device->SetRenderState(D3DRS_FILLMODE, dwOldFillMode); } return oDrawIndexedPrimitive(device, dType, baseVertexIndex, minVertexIndex, numVertices, startIndex, primCount); } This example code has only wireframe "effect" for the texture targeted (pheasants), but you can change the colors of the texture too (know as Chams), gather realtime w2s positions, adding effects/shaders, etc. Some preview of how it could work (chams & w2s from texture):1 like
- 
	I have a good Souce file of ReneGradeCo from back in the days, very good client lots of customs. I was looking for a dev to help me add and remove some stuff. Im not very knowledgeable on this. I bought the souce from a friend 4 years ago.1 like
- 
	Azna you're the best! THANKS A MILLION Thank you all beautiful community1 like
- 
	Typically, when they are original files, the mesh is located in: c3/mesh while the texture is in c3/texture When they are customs, the server owners themselves make the location they like, so this only works with original TQ garms. Anyway, if what you need are the files for that garment, I've attached them here. garment.rar1 like
- 
	Very rude... Just dumping code here and saying to fix the error without even adding the error message /facepalm. ------ On another note, very cool project OP! Love these kinds of projects1 like
- 
	Silly hook to "always" jump without the game being focused. Grab og function: typedef BOOL(WINAPI* tGetKeyboardState)(PBYTE); tGetKeyboardState oGetKeyboardState = GetKeyboardState; Our function: bool alwaysJump = true; //could be toggleable in menu or using a keybind BOOL WINAPI hkGetKeyboardState(PBYTE lpKeyState) { BOOL result = oGetKeyboardState(lpKeyState); if (alwaysJump) lpKeyState[VK_CONTROL] |= 0x80; return result; } Then you can use your desired hook method.1 like
- 
	Huh! That's cool! I wonder if there's a higher level function that would allow you to target a role by their mesh ID or role ID... and then perform this detour for it. Would be pretty cool being able to apply some special modifier to a specific mob, like blinding someone / something tints them black or something (like they're in magical darkness). What are your current plans for using something like this?1 like
- 
	1 like
- 
	You can focus on these files: 1. ini/GUI.ini、ini/GUI800x600.ini 2. ani/Control.ani、ani/Control1.ani Then find the relevant UI design configurations and try making some modifications.1 like
- 
	Welcome to our little community! I know a few people have dabbled in other game emulations / mods, but Conquer was my sandbox for like a decade and a half. Still is, but my work and house keep me away from hobby projects. I guess my house is my new hobby project. Lol Anyways, hope you have a fun here! I was a C# engineer in finance / business solutions as well. Haha1 like
- 
	Hey all, I saw this on another board and decided to copy the idea. To prevent lots of these threads from popping up about hired / volunteered help, please post your ads for helping / requesting help in the comments below! They can be paid or unpaid, but please specify upfront using a template like the one below. Also, you must be at least 18 years old for this thread since minors can't legally sign / agree to work contracts. [b]Type[/b]: Specify if you're "Requesting" or "Offering" [b]Name[/b]: Your preferred, online alias or name [b]Contact Info[/b]: How best to contact you [b]Timezone / Location[/b]: Which timezone you're in for communications [b]My work[/b]: Examples of your past projects / work [b]My responsibilities[/b]: How you will contribute to the project [b]Your responsibilities[/b]: Positions available / how they will contribute [b]Pay[/b]: If relevant, pay how much you're offering / expecting [b]Extra info[/b]: Any additional details / benefits you think are relevant Example: Some additional rules to this thread: Please only post replies if posting a job request / offer. All replies should be in private messages. Please no requests for free code, code mentorships, or coding advice. Please give good descriptions on what you're looking for. Please no double posting (one request per person, per project). Please only use one small image and no excessive font sizes / colors. And finally, please be nice to one another when responding to offers! Everyone is on a different level with various skills and goals. Best of luck to those posting. Spirited1 like
- 
	Login complete SynchroAttributes(ClientUpdateType.HouseLev, gameMap.ResLev); MsgUserAttrib 10017 761 like
- 
	1 like
- 
	Maps have an attribute for "reborn_map" which is the ID of the map you will respawn on if you log in or revive. Eg, Metzone is 1212 "GlobeQuest10" aka Adventure Zone 10, but the reborn map is 1219, which is GlobeExit, the Bird Island style looking map. You can do checks when reviving or logging in that the current map has Record Disabled and if it is, have them appear in the Reborn_Map instead.1 like
- 
	Learning, understanding, and creating Generative artificial intelligence can only provide you with some code suggestions within a limited scope, although sometimes the given code may seem comprehensive, if you analyze it carefully, it is actually full of vulnerabilities. If you are interested in this field, you should spend more time learning the basics instead of spending a lot of time on AI coding and error correction1 like
- 
	Reverse engineering packets is very time consuming. Especially with different patches and types. It's taken months just for me to write the new wiki, which isn't up yet and was using existing references / light reverse engineering, and that's only packets and maybe 65% done. So if you're unsatisfied with the amount of documentation the community has, then feel free to learn and contribute yourself. I don't disagree with you that more documentation would be helpful, but I'm not dedicating more time to Conquer Online than I already have. Maintaining this board is about the most I can do right now until more of my available time frees up. Anyways, I hope you find more details about that spell. You may need to packet log the official game or a server that has it implemented correctly.1 like
- 
	Introduction Hi all! I wrote a little launcher and some hooks recently as practice (since I've never written client hooks before). I decided to make it open-source since I didn't find a lot of examples of QueueUserAPC DLL injection or some of the hooks I wrote using Detours. Enjoy, and give me feedback if you'd like. Thanks! About the project Dragon is Chimera's game client launcher. This open-source version of the project excludes the auto-patch / launcher application, but includes the command-line code injector and three modules: a flash module that loads the ActiveX Flash plugin from the client's directory, a connect module for redirecting socket connections for private servers, and a websites module for redirecting / blocking website popups. Dragon uses code injection to change the behavior of the game client. It starts a new process for the game client in a suspended state. Then, queues asynchronous procedure calls on the main thread of the client using QueueUserAPC. Once injected, the process is resumed. Modules injected into the client will load before the entry point of the client is called. Link You can find the project on my website here: https://spirited.io/project/dragon/1 like
- 
	I'm working on a server using ConquerServer v2 and am having an issue with getting warehouse to work as intended. Can deposit way too much gold, can't remove gold, and I can't get items to deposit at all - they disappear from inventory until closed and reopened. I've spent the last couple hours going through and nothing I changed would take. I tried to troubleshoot why no changes worked and even removed the files related to the warehouse to see if that would prevent anything. Unfortunately, it kept allowing gold to be deposited. I have all my changes on a different branch atm to ensure I didn't break anything. (Yes, I restarted the server each time to ensure the changes took for testing) I noticed no .bin files were created within the Database Warehouse section, so I thought maybe those were created upon registration. I reviewed registration and character creation, and that does not seem to be the case. Has anyone worked on this source who could give me a hint? I've been able to get most things working as intended but the warhouse and attribute points not saving after relogging are the two big ones for me atm. At the very least, this forced me to go through almost every file and add comments to try and track every process... at least some plus side?1 like
- 
	Took a bit for me to find time to work on this again, but found some points. Looks like the ItemUID and Count were being forced to be the same and I couldn't see any indication as to why. Count appears to be the count of items in the warehouse. Allowing ItemUID in the warehouse packet structure be its own variable allows for items to be deposited, the items to be found in inventory, and the warehouse .bin files to be created and updated with the correct number of items. However... the game client crashes on deposit OR when trying to open the warehouse for the second time. Going to make time to look into this tomorrow while it is still fresh but it is 1 am and time to sleep for work tomorrow. First three thoughts are that 1) packet structure may be off due to ItemUID and Count having been forced to match previously. 2) Because items don't show and there is a warehouse file created that has an item in it, the warehouse update could be the issue. 3) I created a +3 super ring with an enchantment and that should have some item data. The output showed all 00s, so it's possible the crash is related to invalid item data? I'd rather not rebuild the warehouse packet and processes from scratch but honestly wondering if that would be the better route here. I'm going to see if another source for the same patch, Albetros, may help me figure out what I'm missing in the packet structure but not overly sure that is the right path. Hopefully will have an update tomorrow of it working and be able to move onto other things.1 like
- 
	I usually just use ConquerLoader to get around editing an encrypted server.dat file. But if you really need to use a decrypted server.dat, then there's a tutorial here:1 like
- 
	Introduction This guide helps you set up and configure the Conquer Online game client to connect to a private server. Downloads Download a specific patch for the game below. If you're downloading a open source server project, match sure to match up the patch numbers correctly. If the patch doesn't exist in the list below, download a lower patched client and patch upwards using the provided patch archive. After you finish downloading the client, decompress it using 7-Zip. 4217 4267 4274 4294 4330 4343 4351 5002 5017 5065 5095 5127 5165 5187 5290 5355 5517 5615 6090 ConquerLoader Launcher: Mirror Patches: Official, Mirror (Recommended) Installations: Mirror Flash Warning! Most clients newer than around patch 5035 run a watercolor login screen using Flash. Flash's end of life was December 31, 2019, and it was disabled on Windows in January 2020. You can still run these clients using a flash hook that loads ActiveX Flash from the client rather than the system. For an example of a flash hook or a launcher that uses it, check out the Dragon Launcher. Instructions Download a client and extract it using 7-Zip. Download the ConquerLoader launcher and extract it on top of the client. Edit LoaderSet.ini with your IP address (either your internal or public IP). If you use a public IP address, make sure you port forward. You may also need to edit the LoginPort for your version of Conquer (see your Account server settings). Add an exception to your firewall to allow players to connect to your servers. Add an exclusion rule to your antivirus if ConquerLoader.exe is detected as a virus (it's a false positive since it injects code into the client to redirect it to your servers). Run the client using ConquerLoader.exe. Common Error Messages Could not connect to the account server. If local, check that the internal IP address is correct. If remote, check your firewall and port forwarding settings. Restart the client if you change server.dat or the loader's IP address. You can check port forwarding at this website. If the client hangs here, then the MsgAccount packet isn't being handled correctly and the client is still waiting on a response. Check that your game server's port is being forwarded correctly using this website. If another player is getting this error and you aren't on your local box, then check that the IP address you send using MsgConnectEx is an external IP address and (again) that your port is being forwarded correctly.1 like
- 
	I personally like seeing these modifications as pull requests on the original, if it's still being maintained. It's totally fine to share the fork here, but we should always make an effort to maintain projects if we can.1 like
- 
	Introduction Conquer Online has a notoriously bad website. Their patch notes have been broken since 2010 and have never been fixed. This threads helps construct a full history of major patches for Conquer Online. I may continue updating this thread; but with Conquer Online being a declining game, I probably won't. Technical details of patches end around 5600. I provide some opinion here and there. Conquer 1.0 The original client is buggy and difficult to run on modern versions of Windows. Though the client was clean and had a unique brown-wood interface which is no longer available, it's not recommended that you run these versions. You can easily take the interface from these patches and apply it to early Conquer 2.0 patches which are more stable. Otherwise, you might be fixing client bugs by reassembling the executable / hooking the client. 4217 - The alpha release of Conquer 1.0 with 16-bit graphics and open PK across all maps. 4267 - New item looks and 32-bit graphics. The last major patch for Conquer 1.0. Conquer 2.0 The golden standard for classic servers. Most run on patch 5017, since older patches are less stable. My favorite patch from this series is 4294 since the interface is extremely clean without CPs, potency, etc. It contains a client bug around string termination for chat, but it's Conquer 2.0 at its bare core. 4282 - The first patch for Conquer 2.0 with a new blue interface. Some graphical glitches. 4294 - The first Christmas in Conquer with some fixes for graphical issues. The cleanest Conquer 2.0 patch. 4312 - Second rebirth was added, initially only to Dragon server and then rolled out to others. 4336 - Conquer Points added (CPs), along with the shopping mall and lottery center. MagicalBottle and MiraculousGourd added. 4353 - Potency added, and level cap was increased to 135. 4353 - Background music and fix for patch 4351, which contained a virus (no longer available to download). 5002 - Demon Exterminator quests, +12 items added, WuXing oven, new methods of adding sockets, and GMs are blue pigs. 5017 - New fonts, nobility ranks, pathfinding, auto team invite, chat filters. 5022 - Guild leaders get 3000 CPs when winning guild wars, trade partners, item locks, PK rules changed, level cap increased to 137. 5031 - New client with gold dragons and watercolor background added with cleaner looking buttons. Conquer 2.0 New Dynasty A favorite era for most in the community, but divisive. Ninjas were a difficult addition since they were overpowered. The addition of talismans were also divisive as it gave preference to paid players. This was a very clear sign that most free players were just content for paid players, and a large percentage of the community left to create private servers. 5053 - New hairstyles added, new shields and headgear options, flame lit event. 5066 - TQ official servers leaked, many exploits. Confiscator system, arrows auto-reload, new item composition system. 5078 - Talismans, guild war halos, and flower rankings added. 5095 - Ninja class, bound equipment, PK tickets no longer required. 5103 - Quiz show added and a disconnection bug was fixed. 5127 - Enlightenment system, interaction emotes, new chat log interface, and world chat. 5135 - Some interactions removed for being a bit too explicit (can easily be re-added to client until patch 5290). Conquer 2.0 Raiding Clans Another favorite era which introduced horses for mounted travel. Arenas and clans were fun additions to PVP, but the expansion was pretty short lived. Lots of private servers in the community emulate these patches. First and last names were removed almost as quickly as they were added. 5165 - Frozen Grotto map, mounts, clans. 5187 - Martial arsenal system, arenas, and couple PK tournament. 5212 - Poker system, alternative equipment switching, refinery, horse racing, item stabilization, arena store, first and last names. Conquer 2.0 Legends Return This expansion added a lot of good and bad. Most legacy players quit at this point due to more unbalance added by Monks and item systems. Though, mounted combat and mount armor gave a lot of players more customization options. PVP was a big center focus as TQ attempted to win back players (hence the expansion name). 5250 - Subclasses, artifact system, weapon accessories, boss hunting, new warehouses and shopping mall. 5290 - Reincarnation, pure skills, permanent stones, clan qualifiers, elite PK tournaments, hide buttons button. 5310 - Max level increased to 138, new house maps and horse racing maps, logout button added, create character auto-logs in. 5355 - Monk class with updated skills. 5376 - Team PK tournaments, capture the flag, team qualifiers, new spear and wand skills, and escort missions. 5395 - First macOS client. New garments, VIP window, wrangler subclass, and mount armors added. 5517 - Guild recruitment, new menu options, mounted combat. Conquer 2.0 Invasion of Pirates Lots of players left again with the introduction to pirates and skill boosting systems which off-balanced the classes even more. Besides the large boost to paid players which led to large player gaps, the lore of Conquer Online was also broken. The Japanese were pirates, not the Chinese (who barely knew how to fish). Most of the private server community ignores patches higher than this, as community interest in Conquer Online is dead at this point. Nation flags also led to more racism and nationalism between players. 5570 - Pirate class, new pirate themed maps. 5607 - New skills and weapons added for ninjas and warriors to help them compete with other classes. 5619 - Mine caves removed due to abuse from botters, first anti-bot system patch added which began to kill the botting scene. 5622 - Chi system added, which allowed players to dump money into stats. 5639 - Nation flags, more gambling systems, new composition and subclass systems. Conquer 2.0 The Oriental Assassin Ignoring the bad translation of the expansion name using outdated terminology, this patch introduced additional PVP options and map overhauls. For those still in the game, these were very welcome changes that brought some players back for a short time. Other systems that focused on paid players and gambling again also drove them away. Private servers rip maps from these patches. Most patches from now on are for temporary cash-grabbing events and free tickets to try gambling/lottery. 5697 - Assassin profession added to archers, composition systems added to one Forge menu. 5706 - Skills and items modified for assassins and archers. 5729 - Champion's arena, character transfer options, and hunting bots built into client for paid players. 5761 - Jiang Hu added for partitioned overworld PVP anywhere. 5838 - Conquer 3.0 as a remake is canceled, and maps are overhauled and merged into Conquer 2.0. 5920 - Epic quests for getting overpowered weapons in the game, Sky Path event, and Apex of the Forbidden City event. 5932 - Roulette wheels and gambling game managers added, cross server travelling, attribute point manager, login rewards. 5939 - New character creation, Ninja war events, and ninja skills. Conquer 3.0 King of Kung Fu TQ got very shamelessly money grabby at this point and embraced sucking wealthy players dry. They experimented with a lot of ways to draw in crowds of players, but this ultimately demanded that players spend large amounts of money to compete and participate in these events while holding a large sum at the end of the event for them. It turned into a gambling competition for real world money, which is a dangerous bridge to cross. The game is only gambling and PVP at this point, which is where I lost focus on keeping up with events. 5987 - Dragon Warrior class added, mine caves return, new bosses, new server events for paid players. 5993 - Way of Heroes system added to aid in level up experience, tower ascension event with eSports prize. 6000 - Added quests which can reward you 690,000 CPs for already being completely overpowered. 6005 - Added bidding for a Kingdom Guild War event (the higher you bid, the greater the chance you can compete). 6023 - Increased server transfer price, added more poker tables, slot machines, wheel of fortune, and more gambling games. 6073 - Removed Flash dependency from the login screen and updated with new art for Taoists. Conquer 3.0 Taoist Ascending At this point, TQ continues to embrace that their game is unbalanced and broken. They hold tournaments for battle power (potency) and continue to host routine gambling game events and items which improve attributes. They begin boot-legging mounts and bosses from Blizzard games and pop culture. This will continue for the rest of Conquer's history so far (ripping from anime, games, movies, etc). 6075 - New epic weapon and skills for Taoists, sashes are now mobile warehouses with 200 slots. 6085 - New login screen image, new boss which looks very Diablo ripped called "The Chaos Ripper". 6118 - Fast & Furious event which is just a race on a previous event with higher CP rewards. 6216 - New PK log interface for showing who you've killed. Conquer 3.0 Might of Shadow Fan I can no longer write descriptions for these expansions. It really is the same formula over and over again now. Introduce a new class and weapons that people need to pay money into, introduce new PVP and poker tournaments for paid players, steal content from other games, rinse and repeat. 6385 - New Windwalker class, weapons, and skills. 6569 - Cross server poker, team PK tournaments, and guild wars which they call "Super Guild Wars". Conquer Online past this point is not worth looking at (in my opinion). They add Dominos gambling games, more lottery, even more poker tables and "instant play" poker features, devils from Diablo, mounts from World of Warcraft, ninja skills and tailed beasts from Naruto, the nether from Minecraft, in-game FIFA world cup betting, etc. Do yourself a favor and don't invest in Conquer. It crashed in 2014 and never recovered.1 like
- 
	@Konichu Your project requires more than the backed up database, right? Or was that only for later versions that are released separately? I don't see any documentation of that on the readme, so I'm not 100% sure. Could you capture those requirements if they're missing?1 like
- 
	Those are the only two public leaks, I'm sorry. I'd sugest you to re-create the scripts using LUA instead of hard coding in the server or using actions and tasks from tq bins.1 like
- 
	Conquer itself changed the engine again and still same bullshit. I dont think they will get anything better trying to keep using c3.1 like
- 
	I don't think it's related to any hook. It affected official conquer as well.1 like
- 
	Love your work Spirited, keep it up. Was doing some digging to feed my nostalgia for old conquer, and just wanted to comment on the noteworthy changes between 4294-4348 for clarification on your OP About Conquer 2.0: Patch 4282 was Released November 1 2005 News article was posted "Upgrade Conquer Online 1.0 to 2.0" On November 1 2005 News article was posted warning "DO NOT run Patch 4283 before 00:01 Nov. 15" On November 2 2005 News article was posted "Upgrade Conquer to 2.0" On November 14 2005. Patch 4284 was Released November 16 2005 Clarifications about 2nd Reborn, "CO Points" Currency and Potency Systems: 4312 - Second reborn system was added. It was added to Dragon initially as a "test" and phased out to other servers from there. 4336 - Conquer Points currenty was added, along with Talisman and Garment slots and the Shopping Mall 4353 - Potency System was added 4353, Level cap was also raised to 135 here. Failed to find actual patch notes from before 4292 for further clarification Patch Notes.txt1 like
- 
	You're fine! And if you fix it, feel free to submit a pull request back to the Redux repo. I'd be happy to peer review it and get it merged. It may be worth moving it to GitHub first, though.1 like
- 
	I was having the same problem you had. And what I identified while debugging the project is that it was running in its 32bits version in my 64bit version machine so the encryption and decryption of packets weren't working during the login. It could match login and password from the DB, but when it ws supposed to enter, it just didnt work, like yours. There's a dll in your project that takes care of the encryption using OpenSSL if i'm not mistaken. And that one is 32 bits. I don't remember the name of the file and unfortunatelly I couldn't make this source work on my machine. Maybe this information could help with the investigation.1 like
- 
	I was sick with dengue fever and lost 10 days of work, I haven't been looking into Conquer stuff lately. When I finish the stuff I need to deliver I may try to reverse this to you, until then I advise you to keep trying xd Also, TeamPK maps do not use ElitePK Types. 900000,PlayersArena,18744315019367 910000,ElitePKTournament,18744849793095 920000,TeamPKField,18748607889511 940000,TeamArena,18886046842983 950000,SkillTeamPK,19568946643047 960000,Champion`sArena,53928685011047 1000000,ClanQualifier,18744447139943 [Flags] public enum MapTypeFlag : ulong { Normal = 0, PkField = 0x1, //0x1 1 ChangeMapDisable = 0x2, //0x2 2 RecordDisable = 0x4, //0x4 4 PkDisable = 0x8, //0x8 8 BoothEnable = 0x10, //0x10 16 TeamDisable = 0x20, //0x20 32 TeleportDisable = 0x40, // 0x40 64 GuildMap = 0x80, // 0x80 128 PrisonMap = 0x100, // 0x100 256 WingDisable = 0x200, // 0x200 512 Family = 0x400, // 0x400 1024 MineField = 0x800, // 0x800 2048 CallNewbieDisable = 0x1000, // 0x1000 4098 RebornNowEnable = 0x2000, // 0x2000 8196 NewbieProtect = 0x4000, // 0x4000 16392 InviteTransDisable = 0x10000, FamilyBattleField = 0x20000, MountDisable = 0x40000, NotInviteToFamilyBattle = 0x80000, ArenicMap = 0x200000, DoublePkMap = 0x400000, RaceTrackMap = 0x2000000, SynCompeteMap = 0x4000000, FamilyArenicMap = 0x8000000, FactionPkMap = 0x10000000, EliteMap = 0x20000000, NoGhostLock = 0x200000000, TeamPkArenicMap = 0x100000000, TeamArenaMap = 0x2000000000, BattleEffectLimitMap = 0x4000000000, TeamPopPkMap = 0x8000000000, NoExpMap = 0x10000000000, GoldenLeagueAdditionLevelLimit = 0x20000000000, ForbidCampMap = 0x100000000000, GoldenLeagueMap = 0x200000000000, JiangHuMap = 0x400000000000 }1 like
- 
	1 like
- 
	Artificial intelligence isn't a replacement for real intelligence and talent. It can only do so much using guesses at what problems are solved by Stack Overflow. It's no more helpful than Googling, and may be worse since it only gives you a single opinion without source references. I strongly advise against the use of AI in Conquer Online server development. It has no idea what Conquer's internal data structures or messages are, nor the contents and meaning of your own source / this project. A "prompt engineer" is not an actual engineer. With that said, a reminder to the community when working with these LUA scripts: they are from a binary leak from TQ, and distributing them is not allowed here. You're welcome to talk about them here, just don't distribute them. Thanks!1 like
- 
	The Community Hi there! Welcome to our little Conquer Online community! Here's the run down: most private server communities require heavy moderation and vigilance against bad actors, and Conquer Online is no exception. There are a few things you need to know / look out for to protect yourself from scams and theft. Do not purchase server source code. All listings these days are for freely available, leaked, unmaintainable servers. Some even contain backdoors, privacy invasive anti-cheats / data collection, and major security issues / exploits. Do not accept private offers for hired programming. Create a thread and let the community help, then encourage them to post their offer publicly. Do not pay for information. All information should be open-source. Expectations The community and game has aged quite a lot, and both aren't incredibly active anymore. We still have fantastic developers in the community working on new servers and projects, but open-source projects have slowed down quite considerably. That said, most projects are semi-complete! Starting up a Conquer Online server isn't as easy as starting a Minecraft server, so expect to Google a few new terms and programs. You may need to learn a bit of programming to fix bugs and program NPCs. Luckily, you can learn programming on the fly using a plethora of online tutorials, and you really only need to know introductory programming to get started. When looking for open-source server projects, you'll often see "mostly complete" or "base"/"skeleton". A base / skeleton project is made to login to the client but provide little else, instead promoting a framework for making a server from scratch. Getting Started The number one question I get in the community is: how can I get started? The first thing I recommend is that you read through all pinned threads in the section. You'll learn a lot regarding how to setup the client, available open-source server projects and their features, and tooling around Conquer Online development (like the Wiki). A lot of projects will require some knowledge around networking and programming, so here's a list of topics you can read up on: How the internet works How to set up port forwarding (What is Port Forwarding) Learn how to program (C# / C++ / C++ Qt) What is Git? How do I use it? Before learning a programming language, find an open-source project you want to work on and see which programming language it uses. Most in the community are written in C#, but some are written in C++ using open-source Qt. Git is also very helpful to know so you can clone and fork open-source projects. Forking a project will allow you to develop on it and, optionally, contribute back up to the upstream project. Git is also super helpful in tracking changes made to your server! Here are some starting resources for finding a project and client: How can I get help? If you ever have a question for the community, simply ask! We're all here to help, but please avoid directly messaging a member (that prevents others from contributing to answers or looking up a question they might also need the answer for). It's good to read up on the section rules to understand how to best ask a question and what topics are banned from the section: Don't be afraid to ask a question though. Even if you get a warning, you'll always get a helpful message explaining why and what you should do differently. What's important is that you remember that Conquer Online private servers are a hobby more than a career, and that we're all here to help one another and get stronger together. We're here to have fun! How do I host a private server? Hosting a private server with low latency can be expensive. It's great to start at home on your own computer or a spare laptop! A cheap hosting option may also be to buy an old Dell Optiplex for super cheap on eBay or other sites. Some decade+ old systems sell for $20 but run servers just fine. A more expensive option is to rent space in the cloud with a VPS (virtual private server). They're machines hosted for you, but finding a VPS running Windows is tricky and more expensive. They usually come in two flavors: shared (where resources like your CPU, RAM, and I/O are shared with other people) and dedicated (where you have dedicated resources). Sharing can be a problem if you have noisy neighbors who hog resources, but they also are much cheaper options. If you're looking for a recommendation, OVH is a good value to performance option.1 like
 
	
	 
 
	 
	 
	 
	 
                     
                     
	 
	 
                     
                     
                     
                    