Jump to content
Returning Members: Password Reset Required ×

Recommended Posts

Posted

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.

Posted (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 by Spirited
Removed mentions
  • Spirited changed the title to Looking For Help with TQ binary database NPC actions
Posted

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.

Posted
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.

Posted

 

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?

Posted (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 by Konichu
Posted
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!

Posted
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 😅

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...