abdallahessam118 Posted January 4 Posted January 4 I am a .NET developer and have been working on my source code for a year now. version 6200 In the official Conquer Online source code, how are NPCs handled? Regular sources often use a custom dialog copied from the official game or the action_Res.ini file. However, there seems to be an action preceding the dialog, such as: 90000000_0101 = etc.. What does this number represent? Additionally, why do some databases include a column named Task for NPCs and monsters that contain numbers similar to this action? i was also wondering Monsters Drop how can we handle it using the database? which cq tables are used for this functionality? How can I even find a database that targets version 6200? I’ve implemented the Realm System, but I am missing the cq_generator values for mapid 3935. I am encountering an issue, likely due to using old tables with incompatible values for version 6200. For instance In Twin City, the map status causes skills to appear dimmed and black, as if I’m in the market. When connecting to the Realm Server and teleporting to TwinCity, I cannot switch to Plunder PK Mode due to the incorrect map status, i need the correct one or the cq map that targets my version and the whole database that targets it if its possible,explaination for npcs how do they work, drop system, actions and tasks. I apologize for the lengthy question and request, but I greatly appreciate your assistance. Quote
Spirited Posted January 5 Posted January 5 I've never worked with TQ Binary databases. This'll be up to the developers who do. Quote
abdallahessam118 Posted January 5 Author Posted January 5 (edited) Thank you, Gareth, for your response and for your continuous support of this forum. I have come across a source code named Canyon by Konichu (Felipe), and I hope he will respond and provide assistance as he usually does. Your efforts guys in supporting this game over the years have been greatly appreciated. Looking forward to hearing from Felipe. Edited January 5 by Spirited Removed mentions Quote
Konichu Posted January 6 Posted January 6 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. Quote
Omicron Posted January 7 Posted January 7 On 1/6/2025 at 3:18 PM, Konichu said: 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. You can actually do the drops in lua too, fyi. Quote
abdallahessam118 Posted January 8 Author Posted January 8 On 1/6/2025 at 4:18 PM, Konichu said: 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. I have been looking for the database and LUA for version 7119 since your response, but I cannot find them anywhere. Would you mind letting me know where I can locate them? May I kindly ask how you handled it? It should be in Canyon, right? I would appreciate a simple guide rather than code, such as explaining the steps for example, identifying the NPC ID, analyzing its actions, and tracing those actions in the relevant files, etc. Could you please explain? It’s quite challenging to understand how you handled them in Canyon without first grasping the logical flow. I’m not very familiar with it, and there are many members who would benefit from your guidance, as a lot of people are looking for this information. Lastly, I’d like to clarify that I don’t have any issues with cross-server data. My concern is solely with the MapStatus of TwinCity due to the Plunder War. The MapStatus in Canyon’s database causes TwinCity’s skills to be dimmed, as if I were in the market, and the cross-server PK status does not display the PK Plunder. If you aren’t encountering this issue with version 6200, could you please share the MapStatus for map ID 1002? Quote
Konichu Posted January 8 Posted January 8 (edited) 16 hours ago, Omicron said: You can actually do the drops in lua too, fyi. Which they're actually called by actions. It doesn't matter anyway. 48 minutes ago, abdallahessam118 said: I have been looking for the database and LUA for version 7119 since your response, but I cannot find them anywhere. Would you mind letting me know where I can locate them? May I kindly ask how you handled it? It should be in Canyon, right? I would appreciate a simple guide rather than code, such as explaining the steps for example, identifying the NPC ID, analyzing its actions, and tracing those actions in the relevant files, etc. Could you please explain? It’s quite challenging to understand how you handled them in Canyon without first grasping the logical flow. I’m not very familiar with it, and there are many members who would benefit from your guidance, as a lot of people are looking for this information. Lastly, I’d like to clarify that I don’t have any issues with cross-server data. My concern is solely with the MapStatus of TwinCity due to the Plunder War. The MapStatus in Canyon’s database causes TwinCity’s skills to be dimmed, as if I were in the market, and the cross-server PK status does not display the PK Plunder. If you aren’t encountering this issue with version 6200, could you please share the MapStatus for map ID 1002? 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. Quote 94416550,0,0,20001,0,LinkMonsterMain 94418000,0,0,20001,0,LinkNpcMain 94427500,0,0,20001,0,LinkTrapMain 98471500,0,0,20001,0,LinkItemMain Long has a basic LUA implementation: lua · main · World Conquer Online / Canyon / Long · GitLab [Conquer][TaskScript]RebirthMaster.lua [Conquer][TaskScript]OrdinaryMonsterDrop.lua Edited January 8 by Konichu Quote
abdallahessam118 Posted January 9 Author Posted January 9 On 1/8/2025 at 6:23 PM, Konichu said: 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 51.84 kB · 1 download [Conquer][TaskScript]OrdinaryMonsterDrop.lua 13.45 kB · 1 download You don't know how helpful and valuable you are, man. You're amazing! I don't know how to thank you or Gareth enough. Hopefully, we'll see a tutorial on how to run the Canyon source code so we can dive deeper into it and explore your work more! Quote
Omicron Posted January 10 Posted January 10 On 1/8/2025 at 5:23 PM, Konichu said: 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 51.84 kB · 1 download [Conquer][TaskScript]OrdinaryMonsterDrop.lua 13.45 kB · 1 download You don’t need actions Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.