From 953cb783db4bd923f0b34f174900f8e3c5a33dee Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Wed, 14 Jun 2023 11:20:23 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/梦工厂后台AIP文档.md | 2 +- modules/web/api_paydelivery.go | 4 +++- modules/web/api_synccross.go | 4 +++- modules/web/api_upload.go | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/bin/梦工厂后台AIP文档.md b/bin/梦工厂后台AIP文档.md index 5b87d1fc2..bf9c5d64b 100644 --- a/bin/梦工厂后台AIP文档.md +++ b/bin/梦工厂后台AIP文档.md @@ -98,7 +98,7 @@ ### 支付发货API - 接口名:paydelivery -- 接口说明:web 服务器给玩家发送邮件 +- 接口说明:web 服务器给玩家发送支付获得商品 - 请求地址:{IP}:{port}/paydelivery - 请求参数:uid(用户id|签名),productid(商品id|签名),orderid(订单号|签名),price(总金额|签名),sign(签名) - 请求样例 diff --git a/modules/web/api_paydelivery.go b/modules/web/api_paydelivery.go index a9fb56271..dd69dfa62 100644 --- a/modules/web/api_paydelivery.go +++ b/modules/web/api_paydelivery.go @@ -8,6 +8,7 @@ import ( "go_dreamfactory/lego/utils/crypto/md5" "go_dreamfactory/pb" "net/http" + "time" ) type PayDeliveryResults struct { @@ -53,8 +54,9 @@ func (this *Api_Comp) PayDelivery(c *engine.Context) { payresp.Code = pb.ErrorCode_SignError payresp.Msg = pb.GetErrorCodeMsg(pb.ErrorCode_SignError) } + ctx, _ := context.WithTimeout(context.TODO(), time.Second*5) if err = this.module.service.RpcCall( - context.Background(), + ctx, comm.Service_Worker, string(comm.Rpc_ModulePayDelivery), payreq, diff --git a/modules/web/api_synccross.go b/modules/web/api_synccross.go index 9b8e92e17..1b1c1cd5f 100644 --- a/modules/web/api_synccross.go +++ b/modules/web/api_synccross.go @@ -8,6 +8,7 @@ import ( "go_dreamfactory/pb" "go_dreamfactory/sys/db" "net/http" + "time" ) type SyncCrossReq struct { @@ -51,8 +52,9 @@ func (this *Api_Comp) SyncCross(c *engine.Context) { resp.Message = err.Error() return } + ctx, _ := context.WithTimeout(context.TODO(), time.Second*5) if err = this.module.service.RpcBroadcast( - context.Background(), + ctx, comm.Service_Worker, string(comm.Rpc_DBSyncCross), pb.EmptyReq{}, diff --git a/modules/web/api_upload.go b/modules/web/api_upload.go index 215d6b1ae..fad22ee80 100644 --- a/modules/web/api_upload.go +++ b/modules/web/api_upload.go @@ -9,6 +9,7 @@ import ( "go_dreamfactory/sys/configure" "net/http" "strconv" + "time" ) //上传配置文件 @@ -52,8 +53,9 @@ func (this *Api_Comp) Upload(c *engine.Context) { } } } + ctx, _ := context.WithTimeout(context.TODO(), time.Second*5) if err := this.module.service.RpcBroadcast( - context.Background(), + ctx, comm.Service_Worker, string(comm.Rpc_ConfigureUpDate), &pb.EmptyReq{}, From a5c6d0d04579928a02efa437cb5c02415da45b64 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Wed, 14 Jun 2023 15:10:49 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E9=93=81=E5=8C=A0=E9=93=BA=E7=BA=A2?= =?UTF-8?q?=E7=82=B9=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/json/game_buriedcondi.json | 6 +- bin/json/game_pandamasjx.json | 32 + bin/json/game_rdtasknpc.json | 40 +- bin/json/game_skillafteratk.json | 2 +- bin/json/game_worldtask.json | 798 ++++++++++--------- comm/const.go | 5 + comm/imodule.go | 1 + modules/smithy/model_atlas.go | 16 + modules/smithy/model_task.go | 14 + modules/smithy/module.go | 16 + sys/configure/structs/Game.PandamasJxData.go | 2 + 11 files changed, 546 insertions(+), 386 deletions(-) diff --git a/bin/json/game_buriedcondi.json b/bin/json/game_buriedcondi.json index d755b866c..f30901894 100644 --- a/bin/json/game_buriedcondi.json +++ b/bin/json/game_buriedcondi.json @@ -17171,7 +17171,7 @@ ], "filter2": [ "英雄ID", - "0", + "装备数量", "0", "0" ] @@ -17519,7 +17519,7 @@ }, "type": 41, "valid": 0, - "NPC": 10264, + "NPC": 0, "value": 1, "filter": [ 3 @@ -17543,7 +17543,7 @@ }, "type": 43, "valid": 0, - "NPC": 10274, + "NPC": 0, "value": 3, "filter": [ 6 diff --git a/bin/json/game_pandamasjx.json b/bin/json/game_pandamasjx.json index 203b662fd..deda0ad0b 100644 --- a/bin/json/game_pandamasjx.json +++ b/bin/json/game_pandamasjx.json @@ -1,6 +1,7 @@ [ { "id": "10001", + "job": 1, "race": 1, "type": 1, "name": { @@ -35,6 +36,7 @@ }, { "id": "10002", + "job": 2, "race": 2, "type": 1, "name": { @@ -69,6 +71,7 @@ }, { "id": "10003", + "job": 3, "race": 3, "type": 1, "name": { @@ -103,6 +106,7 @@ }, { "id": "10004", + "job": 4, "race": 4, "type": 1, "name": { @@ -148,6 +152,7 @@ }, { "id": "10005", + "job": 1, "race": 1, "type": 1, "name": { @@ -182,6 +187,7 @@ }, { "id": "10006", + "job": 2, "race": 2, "type": 1, "name": { @@ -216,6 +222,7 @@ }, { "id": "10007", + "job": 3, "race": 3, "type": 1, "name": { @@ -250,6 +257,7 @@ }, { "id": "10008", + "job": 4, "race": 4, "type": 1, "name": { @@ -284,6 +292,7 @@ }, { "id": "10009", + "job": 1, "race": 1, "type": 1, "name": { @@ -329,6 +338,7 @@ }, { "id": "10010", + "job": 2, "race": 2, "type": 1, "name": { @@ -374,6 +384,7 @@ }, { "id": "10011", + "job": 3, "race": 1, "type": 1, "name": { @@ -419,6 +430,7 @@ }, { "id": "10012", + "job": 4, "race": 2, "type": 1, "name": { @@ -464,6 +476,7 @@ }, { "id": "20001", + "job": 1, "race": 0, "type": 2, "name": { @@ -509,6 +522,7 @@ }, { "id": "20002", + "job": 2, "race": 0, "type": 2, "name": { @@ -543,6 +557,7 @@ }, { "id": "20003", + "job": 3, "race": 0, "type": 2, "name": { @@ -577,6 +592,7 @@ }, { "id": "20004", + "job": 4, "race": 0, "type": 2, "name": { @@ -611,6 +627,7 @@ }, { "id": "20005", + "job": 1, "race": 0, "type": 2, "name": { @@ -645,6 +662,7 @@ }, { "id": "20006", + "job": 2, "race": 0, "type": 2, "name": { @@ -679,6 +697,7 @@ }, { "id": "20007", + "job": 3, "race": 0, "type": 2, "name": { @@ -713,6 +732,7 @@ }, { "id": "20008", + "job": 4, "race": 0, "type": 2, "name": { @@ -747,6 +767,7 @@ }, { "id": "20009", + "job": 1, "race": 0, "type": 2, "name": { @@ -792,6 +813,7 @@ }, { "id": "20010", + "job": 2, "race": 0, "type": 2, "name": { @@ -837,6 +859,7 @@ }, { "id": "20011", + "job": 3, "race": 0, "type": 2, "name": { @@ -882,6 +905,7 @@ }, { "id": "20012", + "job": 4, "race": 0, "type": 2, "name": { @@ -927,6 +951,7 @@ }, { "id": "20013", + "job": 1, "race": 0, "type": 2, "name": { @@ -972,6 +997,7 @@ }, { "id": "20014", + "job": 2, "race": 0, "type": 2, "name": { @@ -1006,6 +1032,7 @@ }, { "id": "20015", + "job": 3, "race": 0, "type": 2, "name": { @@ -1040,6 +1067,7 @@ }, { "id": "20016", + "job": 4, "race": 0, "type": 2, "name": { @@ -1074,6 +1102,7 @@ }, { "id": "20017", + "job": 1, "race": 0, "type": 2, "name": { @@ -1117,6 +1146,7 @@ }, { "id": "20018", + "job": 2, "race": 0, "type": 2, "name": { @@ -1160,6 +1190,7 @@ }, { "id": "20019", + "job": 3, "race": 0, "type": 2, "name": { @@ -1203,6 +1234,7 @@ }, { "id": "20020", + "job": 4, "race": 0, "type": 2, "name": { diff --git a/bin/json/game_rdtasknpc.json b/bin/json/game_rdtasknpc.json index d09d860ce..fdaebdcfb 100644 --- a/bin/json/game_rdtasknpc.json +++ b/bin/json/game_rdtasknpc.json @@ -322,7 +322,7 @@ "goto": 0 }, { - "id": 10020, + "id": 100101, "heroid": 25001, "datas": [ "GameMain", @@ -335,6 +335,44 @@ ], "goto": 0 }, + { + "id": 100104, + "heroid": 25001, + "datas": [ + "GameMain", + "901" + ], + "event": [ + 0 + ], + "goto": 0 + }, + { + "id": 100108, + "heroid": 25001, + "datas": [ + "GameMain", + "901" + ], + "event": [ + 0 + ], + "goto": 0 + }, + { + "id": 10020, + "heroid": 25001, + "datas": [ + "GameMain", + "20020_小怪_船甲板", + "901" + ], + "event": [ + 2, + 10042 + ], + "goto": 0 + }, { "id": 10024, "heroid": 51004, diff --git a/bin/json/game_skillafteratk.json b/bin/json/game_skillafteratk.json index 49fee7d03..4d21b40db 100644 --- a/bin/json/game_skillafteratk.json +++ b/bin/json/game_skillafteratk.json @@ -20436,7 +20436,7 @@ "From": 2, "Where": [], "Order": "", - "Limit": 1, + "Limit": 10, "ExecuteCnt": 1, "Type": 1, "Argu": [ diff --git a/bin/json/game_worldtask.json b/bin/json/game_worldtask.json index 8fb4f2791..ccbd7cb28 100644 --- a/bin/json/game_worldtask.json +++ b/bin/json/game_worldtask.json @@ -4,12 +4,12 @@ "lock": 1, "lockend": 0, "ontxe": 0, - "id_after": 20020, + "id_after": 20011, "group": 10, "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_1", + "key": "worldtask_world_story_task_name_1", "text": "剧情(月光交互、移动教学)" }, "task_details": { @@ -17,7 +17,7 @@ "text": "剧情(月光交互、移动教学)" }, "npctxt": { - "key": "worldtask_world_task_npctxt_1", + "key": "worldtask_world_story_npctxt_1", "text": "剧情(月光交互、移动教学)" }, "npc": 10010, @@ -35,25 +35,61 @@ ], "module": [] }, + { + "key": 20011, + "lock": 1, + "lockend": 1, + "ontxe": 20010, + "id_after": 20020, + "group": 10, + "des": 2, + "icon": "", + "task_name": { + "key": "worldtask_world_story_task_name_2", + "text": "和阿宝对话" + }, + "task_details": { + "key": "worldtask_world_story_task_details_2", + "text": "和阿宝对话" + }, + "npctxt": { + "key": "worldtask_world_story_npctxt_2", + "text": "和阿宝对话" + }, + "npc": 100101, + "completetask": [ + 0 + ], + "deliver_npc": 0, + "auto_accept": 0, + "reword": [ + { + "a": "attr", + "t": "gold", + "n": 5000 + } + ], + "module": [] + }, { "key": 20020, "lock": 1, "lockend": 0, - "ontxe": 20010, + "ontxe": 20011, "id_after": 20030, "group": 10, "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_2", + "key": "worldtask_world_story_task_name_3", "text": "剧情(战斗1 小怪)" }, "task_details": { - "key": "worldtask_world_task_task_details_2", + "key": "worldtask_world_story_task_details_3", "text": "剧情(战斗1 小怪)" }, "npctxt": { - "key": "worldtask_world_task_npctxt_2", + "key": "worldtask_world_story_npctxt_3", "text": "剧情(战斗1 小怪)" }, "npc": 10020, @@ -61,7 +97,7 @@ 12070020 ], "deliver_npc": 10028, - "auto_accept": 0, + "auto_accept": 1, "reword": [ { "a": "attr", @@ -81,15 +117,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_3", + "key": "worldtask_world_story_task_name_4", "text": "剧情(战斗2 邦尼兔)" }, "task_details": { - "key": "worldtask_world_task_task_details_3", + "key": "worldtask_world_story_task_details_4", "text": "剧情(战斗2 邦尼兔)" }, "npctxt": { - "key": "worldtask_world_task_npctxt_3", + "key": "worldtask_world_story_npctxt_4", "text": "剧情(战斗2 邦尼兔)" }, "npc": 10030, @@ -117,15 +153,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_4", + "key": "worldtask_world_story_task_name_5", "text": "剧情(战斗3 邦尼兔)" }, "task_details": { - "key": "worldtask_world_task_task_details_4", + "key": "worldtask_world_story_task_details_5", "text": "剧情(战斗3 邦尼兔)" }, "npctxt": { - "key": "worldtask_world_task_npctxt_4", + "key": "worldtask_world_story_npctxt_5", "text": "剧情(战斗3 邦尼兔)" }, "npc": 10040, @@ -133,7 +169,7 @@ 12070040 ], "deliver_npc": 0, - "auto_accept": 0, + "auto_accept": 1, "reword": [ { "a": "attr", @@ -153,15 +189,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_5", + "key": "worldtask_world_story_task_name_6", "text": "剧情(战斗4 恐惧灵)" }, "task_details": { - "key": "worldtask_world_task_task_details_5", + "key": "worldtask_world_story_task_details_6", "text": "剧情(战斗4 恐惧灵)" }, "npctxt": { - "key": "worldtask_world_task_npctxt_5", + "key": "worldtask_world_story_npctxt_6", "text": "剧情(战斗4 恐惧灵)" }, "npc": 10050, @@ -189,15 +225,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_6", + "key": "worldtask_world_story_task_name_7", "text": "单抽" }, "task_details": { - "key": "worldtask_world_task_task_details_6", + "key": "worldtask_world_story_task_details_7", "text": "单抽" }, "npctxt": { - "key": "worldtask_world_task_npctxt_6", + "key": "worldtask_world_story_npctxt_7", "text": "单抽" }, "npc": 10060, @@ -225,15 +261,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_7", + "key": "worldtask_world_story_task_name_8", "text": "剧情(战斗5 浣熊师傅)" }, "task_details": { - "key": "worldtask_world_task_task_details_7", + "key": "worldtask_world_story_task_details_8", "text": "剧情(战斗5 浣熊师傅)" }, "npctxt": { - "key": "worldtask_world_task_npctxt_7", + "key": "worldtask_world_story_npctxt_8", "text": "剧情(战斗5 浣熊师傅)" }, "npc": 10070, @@ -261,15 +297,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_8", + "key": "worldtask_world_story_task_name_9", "text": "木桩" }, "task_details": { - "key": "worldtask_world_task_task_details_8", + "key": "worldtask_world_story_task_details_9", "text": "木桩" }, "npctxt": { - "key": "worldtask_world_task_npctxt_8", + "key": "worldtask_world_story_npctxt_9", "text": "木桩" }, "npc": 10080, @@ -299,15 +335,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_9", + "key": "worldtask_world_story_task_name_10", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_9", + "key": "worldtask_world_story_task_details_10", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_9", + "key": "worldtask_world_story_npctxt_10", "text": "剧情" }, "npc": 10090, @@ -335,15 +371,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_10", + "key": "worldtask_world_story_task_name_11", "text": "主线【1-1】-【1-3】" }, "task_details": { - "key": "worldtask_world_task_task_details_10", + "key": "worldtask_world_story_task_details_11", "text": "主线【1-1】-【1-3】" }, "npctxt": { - "key": "worldtask_world_task_npctxt_10", + "key": "worldtask_world_story_npctxt_11", "text": "主线【1-1】-【1-3】" }, "npc": 10100, @@ -371,15 +407,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_11", + "key": "worldtask_world_story_task_name_12", "text": "给阿宝传5件装备" }, "task_details": { - "key": "worldtask_world_task_task_details_11", + "key": "worldtask_world_story_task_details_12", "text": "给阿宝传5件装备" }, "npctxt": { - "key": "worldtask_world_task_npctxt_11", + "key": "worldtask_world_story_npctxt_12", "text": "给阿宝传5件装备" }, "npc": 10110, @@ -407,15 +443,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_12", + "key": "worldtask_world_story_task_name_13", "text": "主线【1-4】-【1-7】" }, "task_details": { - "key": "worldtask_world_task_task_details_12", + "key": "worldtask_world_story_task_details_13", "text": "主线【1-4】-【1-7】" }, "npctxt": { - "key": "worldtask_world_task_npctxt_12", + "key": "worldtask_world_story_npctxt_13", "text": "主线【1-4】-【1-7】" }, "npc": 10120, @@ -443,15 +479,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_13", + "key": "worldtask_world_story_task_name_14", "text": "维京远征boss1难度1" }, "task_details": { - "key": "worldtask_world_task_task_details_13", + "key": "worldtask_world_story_task_details_14", "text": "维京远征boss1难度1" }, "npctxt": { - "key": "worldtask_world_task_npctxt_13", + "key": "worldtask_world_story_npctxt_14", "text": "维京远征boss1难度1" }, "npc": 10130, @@ -479,15 +515,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_14", + "key": "worldtask_world_story_task_name_15", "text": "定制1件装备" }, "task_details": { - "key": "worldtask_world_task_task_details_14", + "key": "worldtask_world_story_task_details_15", "text": "定制1件装备" }, "npctxt": { - "key": "worldtask_world_task_npctxt_14", + "key": "worldtask_world_story_npctxt_15", "text": "定制1件装备" }, "npc": 10140, @@ -515,15 +551,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_15", + "key": "worldtask_world_story_task_name_16", "text": "穿戴无极神功4件套" }, "task_details": { - "key": "worldtask_world_task_task_details_15", + "key": "worldtask_world_story_task_details_16", "text": "穿戴无极神功4件套" }, "npctxt": { - "key": "worldtask_world_task_npctxt_15", + "key": "worldtask_world_story_npctxt_16", "text": "穿戴无极神功4件套" }, "npc": 10150, @@ -551,15 +587,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_16", + "key": "worldtask_world_story_task_name_17", "text": "3件装备+3" }, "task_details": { - "key": "worldtask_world_task_task_details_16", + "key": "worldtask_world_story_task_details_17", "text": "3件装备+3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_16", + "key": "worldtask_world_story_npctxt_17", "text": "3件装备+3" }, "npc": 10160, @@ -587,15 +623,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_17", + "key": "worldtask_world_story_task_name_18", "text": "主线【1-8】" }, "task_details": { - "key": "worldtask_world_task_task_details_17", + "key": "worldtask_world_story_task_details_18", "text": "主线【1-8】" }, "npctxt": { - "key": "worldtask_world_task_npctxt_17", + "key": "worldtask_world_story_npctxt_18", "text": "主线【1-8】" }, "npc": 10170, @@ -623,15 +659,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_18", + "key": "worldtask_world_story_task_name_19", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_18", + "key": "worldtask_world_story_task_details_19", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_18", + "key": "worldtask_world_story_npctxt_19", "text": "剧情" }, "npc": 10180, @@ -659,15 +695,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_19", + "key": "worldtask_world_story_task_name_20", "text": "十连" }, "task_details": { - "key": "worldtask_world_task_task_details_19", + "key": "worldtask_world_story_task_details_20", "text": "十连" }, "npctxt": { - "key": "worldtask_world_task_npctxt_19", + "key": "worldtask_world_story_npctxt_20", "text": "十连" }, "npc": 10190, @@ -695,15 +731,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_20", + "key": "worldtask_world_story_task_name_21", "text": "战斗6" }, "task_details": { - "key": "worldtask_world_task_task_details_20", + "key": "worldtask_world_story_task_details_21", "text": "战斗6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_20", + "key": "worldtask_world_story_npctxt_21", "text": "战斗6" }, "npc": 10200, @@ -731,15 +767,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_21", + "key": "worldtask_world_story_task_name_22", "text": "战斗7" }, "task_details": { - "key": "worldtask_world_task_task_details_21", + "key": "worldtask_world_story_task_details_22", "text": "战斗7" }, "npctxt": { - "key": "worldtask_world_task_npctxt_21", + "key": "worldtask_world_story_npctxt_22", "text": "战斗7" }, "npc": 10210, @@ -767,15 +803,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_22", + "key": "worldtask_world_story_task_name_23", "text": "战斗" }, "task_details": { - "key": "worldtask_world_task_task_details_22", + "key": "worldtask_world_story_task_details_23", "text": "战斗" }, "npctxt": { - "key": "worldtask_world_task_npctxt_22", + "key": "worldtask_world_story_npctxt_23", "text": "战斗" }, "npc": 10220, @@ -795,7 +831,7 @@ }, { "key": 20230, - "lock": 2, + "lock": 1, "lockend": 0, "ontxe": 20220, "id_after": 20240, @@ -803,15 +839,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_23", + "key": "worldtask_world_story_task_name_24", "text": "解锁木人桩" }, "task_details": { - "key": "worldtask_world_task_task_details_23", + "key": "worldtask_world_story_task_details_24", "text": "解锁木人桩" }, "npctxt": { - "key": "worldtask_world_task_npctxt_23", + "key": "worldtask_world_story_npctxt_24", "text": "解锁木人桩" }, "npc": 10230, @@ -831,7 +867,7 @@ }, { "key": 20240, - "lock": 2, + "lock": 1, "lockend": 0, "ontxe": 20230, "id_after": 20250, @@ -839,15 +875,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_24", + "key": "worldtask_world_story_task_name_25", "text": "功夫大师挑战塔3层" }, "task_details": { - "key": "worldtask_world_task_task_details_24", + "key": "worldtask_world_story_task_details_25", "text": "功夫大师挑战塔3层" }, "npctxt": { - "key": "worldtask_world_task_npctxt_24", + "key": "worldtask_world_story_npctxt_25", "text": "功夫大师挑战塔3层" }, "npc": 10240, @@ -867,7 +903,7 @@ }, { "key": 20250, - "lock": 2, + "lock": 1, "lockend": 0, "ontxe": 20240, "id_after": 20260, @@ -875,15 +911,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_25", + "key": "worldtask_world_story_task_name_26", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_25", + "key": "worldtask_world_story_task_details_26", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_25", + "key": "worldtask_world_story_npctxt_26", "text": "剧情" }, "npc": 10250, @@ -903,7 +939,7 @@ }, { "key": 20260, - "lock": 2, + "lock": 1, "lockend": 0, "ontxe": 20250, "id_after": 20270, @@ -911,15 +947,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_26", + "key": "worldtask_world_story_task_name_27", "text": "穿戴装备" }, "task_details": { - "key": "worldtask_world_task_task_details_26", + "key": "worldtask_world_story_task_details_27", "text": "穿戴6件SR装备" }, "npctxt": { - "key": "worldtask_world_task_npctxt_26", + "key": "worldtask_world_story_npctxt_27", "text": "穿戴6件SR装备" }, "npc": 10260, @@ -939,7 +975,7 @@ }, { "key": 20270, - "lock": 2, + "lock": 1, "lockend": 0, "ontxe": 20260, "id_after": 20280, @@ -947,15 +983,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_27", + "key": "worldtask_world_story_task_name_28", "text": "3件装备+6" }, "task_details": { - "key": "worldtask_world_task_task_details_27", + "key": "worldtask_world_story_task_details_28", "text": "3件装备+6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_27", + "key": "worldtask_world_story_npctxt_28", "text": "3件装备+6" }, "npc": 10270, @@ -975,7 +1011,7 @@ }, { "key": 20280, - "lock": 2, + "lock": 1, "lockend": 0, "ontxe": 20270, "id_after": 20290, @@ -983,15 +1019,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_28", + "key": "worldtask_world_story_task_name_29", "text": "主线【2-1】-【2-8】" }, "task_details": { - "key": "worldtask_world_task_task_details_28", + "key": "worldtask_world_story_task_details_29", "text": "主线【2-1】-【2-8】" }, "npctxt": { - "key": "worldtask_world_task_npctxt_28", + "key": "worldtask_world_story_npctxt_29", "text": "主线【2-1】-【2-8】" }, "npc": 10280, @@ -1011,7 +1047,7 @@ }, { "key": 20290, - "lock": 2, + "lock": 1, "lockend": 0, "ontxe": 20280, "id_after": 0, @@ -1019,15 +1055,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_29", + "key": "worldtask_world_story_task_name_30", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_29", + "key": "worldtask_world_story_task_details_30", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_29", + "key": "worldtask_world_story_npctxt_30", "text": "剧情" }, "npc": 10290, @@ -1049,7 +1085,7 @@ }, { "key": 20300, - "lock": 3, + "lock": 1, "lockend": 0, "ontxe": 20290, "id_after": 20310, @@ -1057,15 +1093,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_30", + "key": "worldtask_world_story_task_name_31", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_30", + "key": "worldtask_world_story_task_details_31", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_30", + "key": "worldtask_world_story_npctxt_31", "text": "剧情" }, "npc": 10300, @@ -1085,7 +1121,7 @@ }, { "key": 20310, - "lock": 3, + "lock": 1, "lockend": 0, "ontxe": 20300, "id_after": 20320, @@ -1093,15 +1129,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_31", + "key": "worldtask_world_story_task_name_32", "text": "维京远征boss2难度1" }, "task_details": { - "key": "worldtask_world_task_task_details_31", + "key": "worldtask_world_story_task_details_32", "text": "维京远征boss2难度1" }, "npctxt": { - "key": "worldtask_world_task_npctxt_31", + "key": "worldtask_world_story_npctxt_32", "text": "维京远征boss2难度1" }, "npc": 10310, @@ -1121,7 +1157,7 @@ }, { "key": 20320, - "lock": 3, + "lock": 1, "lockend": 0, "ontxe": 20310, "id_after": 20330, @@ -1129,15 +1165,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_32", + "key": "worldtask_world_story_task_name_33", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_32", + "key": "worldtask_world_story_task_details_33", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_32", + "key": "worldtask_world_story_npctxt_33", "text": "剧情" }, "npc": 10320, @@ -1157,7 +1193,7 @@ }, { "key": 20330, - "lock": 3, + "lock": 1, "lockend": 0, "ontxe": 20320, "id_after": 20340, @@ -1165,15 +1201,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_33", + "key": "worldtask_world_story_task_name_34", "text": "主线【3-1】-【3-4】" }, "task_details": { - "key": "worldtask_world_task_task_details_33", + "key": "worldtask_world_story_task_details_34", "text": "主线【3-1】-【3-4】" }, "npctxt": { - "key": "worldtask_world_task_npctxt_33", + "key": "worldtask_world_story_npctxt_34", "text": "主线【3-1】-【3-4】" }, "npc": 10330, @@ -1193,7 +1229,7 @@ }, { "key": 20340, - "lock": 3, + "lock": 1, "lockend": 0, "ontxe": 20330, "id_after": 20350, @@ -1201,15 +1237,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_34", + "key": "worldtask_world_story_task_name_35", "text": "装备副本boss1难度2刷1次" }, "task_details": { - "key": "worldtask_world_task_task_details_34", + "key": "worldtask_world_story_task_details_35", "text": "装备副本boss1难度2刷1次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_34", + "key": "worldtask_world_story_npctxt_35", "text": "装备副本boss1难度2刷1次" }, "npc": 10340, @@ -1229,7 +1265,7 @@ }, { "key": 20350, - "lock": 3, + "lock": 1, "lockend": 0, "ontxe": 20340, "id_after": 20360, @@ -1237,15 +1273,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_35", + "key": "worldtask_world_story_task_name_36", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_35", + "key": "worldtask_world_story_task_details_36", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_35", + "key": "worldtask_world_story_npctxt_36", "text": "剧情" }, "npc": 10350, @@ -1265,7 +1301,7 @@ }, { "key": 20360, - "lock": 3, + "lock": 1, "lockend": 0, "ontxe": 20350, "id_after": 0, @@ -1273,15 +1309,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_36", + "key": "worldtask_world_story_task_name_37", "text": "主线【3-5】-【3-8】" }, "task_details": { - "key": "worldtask_world_task_task_details_36", + "key": "worldtask_world_story_task_details_37", "text": "主线【3-5】-【3-8】" }, "npctxt": { - "key": "worldtask_world_task_npctxt_36", + "key": "worldtask_world_story_npctxt_37", "text": "主线【3-5】-【3-8】" }, "npc": 10360, @@ -1301,7 +1337,7 @@ }, { "key": 20370, - "lock": 4, + "lock": 1, "lockend": 0, "ontxe": 20360, "id_after": 20380, @@ -1309,15 +1345,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_37", + "key": "worldtask_world_story_task_name_38", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_37", + "key": "worldtask_world_story_task_details_38", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_37", + "key": "worldtask_world_story_npctxt_38", "text": "剧情" }, "npc": 10370, @@ -1337,7 +1373,7 @@ }, { "key": 20380, - "lock": 4, + "lock": 1, "lockend": 0, "ontxe": 20370, "id_after": 20390, @@ -1345,15 +1381,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_38", + "key": "worldtask_world_story_task_name_39", "text": "战斗18" }, "task_details": { - "key": "worldtask_world_task_task_details_38", + "key": "worldtask_world_story_task_details_39", "text": "战斗18" }, "npctxt": { - "key": "worldtask_world_task_npctxt_38", + "key": "worldtask_world_story_npctxt_39", "text": "战斗18" }, "npc": 10380, @@ -1373,7 +1409,7 @@ }, { "key": 20390, - "lock": 4, + "lock": 1, "lockend": 0, "ontxe": 20380, "id_after": 20400, @@ -1381,15 +1417,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_39", + "key": "worldtask_world_story_task_name_40", "text": "星座图1次" }, "task_details": { - "key": "worldtask_world_task_task_details_39", + "key": "worldtask_world_story_task_details_40", "text": "星座图1次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_39", + "key": "worldtask_world_story_npctxt_40", "text": "星座图1次" }, "npc": 10390, @@ -1409,7 +1445,7 @@ }, { "key": 20400, - "lock": 4, + "lock": 1, "lockend": 0, "ontxe": 20390, "id_after": 20410, @@ -1417,15 +1453,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_40", + "key": "worldtask_world_story_task_name_41", "text": "维京远征boss1难度2" }, "task_details": { - "key": "worldtask_world_task_task_details_40", + "key": "worldtask_world_story_task_details_41", "text": "维京远征boss1难度2" }, "npctxt": { - "key": "worldtask_world_task_npctxt_40", + "key": "worldtask_world_story_npctxt_41", "text": "维京远征boss2难度6" }, "npc": 10400, @@ -1445,7 +1481,7 @@ }, { "key": 20410, - "lock": 4, + "lock": 1, "lockend": 0, "ontxe": 20400, "id_after": 20420, @@ -1453,15 +1489,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_41", + "key": "worldtask_world_story_task_name_42", "text": "9件装备强化+6" }, "task_details": { - "key": "worldtask_world_task_task_details_41", + "key": "worldtask_world_story_task_details_42", "text": "9件装备强化+6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_41", + "key": "worldtask_world_story_npctxt_42", "text": "9件装备强化+6" }, "npc": 10410, @@ -1481,7 +1517,7 @@ }, { "key": 20420, - "lock": 4, + "lock": 1, "lockend": 0, "ontxe": 20410, "id_after": 20430, @@ -1489,15 +1525,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_42", + "key": "worldtask_world_story_task_name_43", "text": "战斗21" }, "task_details": { - "key": "worldtask_world_task_task_details_42", + "key": "worldtask_world_story_task_details_43", "text": "战斗21" }, "npctxt": { - "key": "worldtask_world_task_npctxt_42", + "key": "worldtask_world_story_npctxt_43", "text": "战斗21" }, "npc": 10420, @@ -1517,7 +1553,7 @@ }, { "key": 20430, - "lock": 4, + "lock": 1, "lockend": 0, "ontxe": 20420, "id_after": 0, @@ -1525,15 +1561,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_43", + "key": "worldtask_world_story_task_name_44", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_43", + "key": "worldtask_world_story_task_details_44", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_43", + "key": "worldtask_world_story_npctxt_44", "text": "剧情" }, "npc": 10430, @@ -1561,15 +1597,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_44", + "key": "worldtask_world_story_task_name_45", "text": "战斗16" }, "task_details": { - "key": "worldtask_world_task_task_details_44", + "key": "worldtask_world_story_task_details_45", "text": "战斗16" }, "npctxt": { - "key": "worldtask_world_task_npctxt_44", + "key": "worldtask_world_story_npctxt_45", "text": "战斗16" }, "npc": 10440, @@ -1597,15 +1633,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_45", + "key": "worldtask_world_story_task_name_46", "text": "维京远征boss2难度1" }, "task_details": { - "key": "worldtask_world_task_task_details_45", + "key": "worldtask_world_story_task_details_46", "text": "维京远征boss2难度1" }, "npctxt": { - "key": "worldtask_world_task_npctxt_45", + "key": "worldtask_world_story_npctxt_46", "text": "维京远征boss2难度1" }, "npc": 10450, @@ -1633,15 +1669,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_46", + "key": "worldtask_world_story_task_name_47", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_46", + "key": "worldtask_world_story_task_details_47", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_46", + "key": "worldtask_world_story_npctxt_47", "text": "剧情" }, "npc": 10460, @@ -1669,15 +1705,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_47", + "key": "worldtask_world_story_task_name_48", "text": "强化装备" }, "task_details": { - "key": "worldtask_world_task_task_details_47", + "key": "worldtask_world_story_task_details_48", "text": "强化装备" }, "npctxt": { - "key": "worldtask_world_task_npctxt_47", + "key": "worldtask_world_story_npctxt_48", "text": "强化装备" }, "npc": 10470, @@ -1705,15 +1741,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_48", + "key": "worldtask_world_story_task_name_49", "text": "主线【3-1】-【3-4】" }, "task_details": { - "key": "worldtask_world_task_task_details_48", + "key": "worldtask_world_story_task_details_49", "text": "主线【3-1】-【3-4】" }, "npctxt": { - "key": "worldtask_world_task_npctxt_48", + "key": "worldtask_world_story_npctxt_49", "text": "主线【3-1】-【3-4】" }, "npc": 10480, @@ -1741,15 +1777,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_49", + "key": "worldtask_world_story_task_name_50", "text": "装备副本boss2难度2刷1次" }, "task_details": { - "key": "worldtask_world_task_task_details_49", + "key": "worldtask_world_story_task_details_50", "text": "装备副本boss2难度2刷1次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_49", + "key": "worldtask_world_story_npctxt_50", "text": "装备副本boss2难度2刷1次" }, "npc": 10490, @@ -1777,15 +1813,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_50", + "key": "worldtask_world_story_task_name_51", "text": "主线【3-5】-【3-8】" }, "task_details": { - "key": "worldtask_world_task_task_details_50", + "key": "worldtask_world_story_task_details_51", "text": "主线【3-5】-【3-8】" }, "npctxt": { - "key": "worldtask_world_task_npctxt_50", + "key": "worldtask_world_story_npctxt_51", "text": "主线【3-5】-【3-8】" }, "npc": 10500, @@ -1813,15 +1849,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_51", + "key": "worldtask_world_story_task_name_52", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_51", + "key": "worldtask_world_story_task_details_52", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_51", + "key": "worldtask_world_story_npctxt_52", "text": "剧情" }, "npc": 10510, @@ -1849,15 +1885,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_52", + "key": "worldtask_world_story_task_name_53", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_52", + "key": "worldtask_world_story_task_details_53", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_52", + "key": "worldtask_world_story_npctxt_53", "text": "剧情" }, "npc": 10520, @@ -1885,15 +1921,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_53", + "key": "worldtask_world_story_task_name_54", "text": "功夫大师挑战塔5层" }, "task_details": { - "key": "worldtask_world_task_task_details_53", + "key": "worldtask_world_story_task_details_54", "text": "功夫大师挑战塔5层" }, "npctxt": { - "key": "worldtask_world_task_npctxt_53", + "key": "worldtask_world_story_npctxt_54", "text": "功夫大师挑战塔5层" }, "npc": 10530, @@ -1921,15 +1957,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_54", + "key": "worldtask_world_story_task_name_55", "text": "战斗17" }, "task_details": { - "key": "worldtask_world_task_task_details_54", + "key": "worldtask_world_story_task_details_55", "text": "战斗17" }, "npctxt": { - "key": "worldtask_world_task_npctxt_54", + "key": "worldtask_world_story_npctxt_55", "text": "战斗17" }, "npc": 10540, @@ -1957,15 +1993,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_55", + "key": "worldtask_world_story_task_name_56", "text": "战斗18" }, "task_details": { - "key": "worldtask_world_task_task_details_55", + "key": "worldtask_world_story_task_details_56", "text": "战斗18" }, "npctxt": { - "key": "worldtask_world_task_npctxt_55", + "key": "worldtask_world_story_npctxt_56", "text": "战斗18" }, "npc": 10550, @@ -1993,15 +2029,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_56", + "key": "worldtask_world_story_task_name_57", "text": "战斗19" }, "task_details": { - "key": "worldtask_world_task_task_details_56", + "key": "worldtask_world_story_task_details_57", "text": "战斗19" }, "npctxt": { - "key": "worldtask_world_task_npctxt_56", + "key": "worldtask_world_story_npctxt_57", "text": "战斗19" }, "npc": 10560, @@ -2029,15 +2065,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_57", + "key": "worldtask_world_story_task_name_58", "text": "装备副本boss3难度1(开支线,打狩猎)" }, "task_details": { - "key": "worldtask_world_task_task_details_57", + "key": "worldtask_world_story_task_details_58", "text": "装备副本boss3难度1(开支线,打狩猎)" }, "npctxt": { - "key": "worldtask_world_task_npctxt_57", + "key": "worldtask_world_story_npctxt_58", "text": "装备副本boss3难度1(开支线,打狩猎)" }, "npc": 10570, @@ -2065,15 +2101,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_58", + "key": "worldtask_world_story_task_name_59", "text": "主角星座觉醒3次" }, "task_details": { - "key": "worldtask_world_task_task_details_58", + "key": "worldtask_world_story_task_details_59", "text": "主角星座觉醒3次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_58", + "key": "worldtask_world_story_npctxt_59", "text": "主角星座觉醒3次" }, "npc": 10580, @@ -2101,15 +2137,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_59", + "key": "worldtask_world_story_task_name_60", "text": "9件装备强化+6" }, "task_details": { - "key": "worldtask_world_task_task_details_59", + "key": "worldtask_world_story_task_details_60", "text": "9件装备强化+6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_59", + "key": "worldtask_world_story_npctxt_60", "text": "9件装备强化+6" }, "npc": 10590, @@ -2137,15 +2173,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_60", + "key": "worldtask_world_story_task_name_61", "text": "战斗20" }, "task_details": { - "key": "worldtask_world_task_task_details_60", + "key": "worldtask_world_story_task_details_61", "text": "战斗20" }, "npctxt": { - "key": "worldtask_world_task_npctxt_60", + "key": "worldtask_world_story_npctxt_61", "text": "战斗20" }, "npc": 10600, @@ -2173,15 +2209,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_61", + "key": "worldtask_world_story_task_name_62", "text": "战斗21" }, "task_details": { - "key": "worldtask_world_task_task_details_61", + "key": "worldtask_world_story_task_details_62", "text": "战斗21" }, "npctxt": { - "key": "worldtask_world_task_npctxt_61", + "key": "worldtask_world_story_npctxt_62", "text": "战斗21" }, "npc": 10610, @@ -2209,15 +2245,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_62", + "key": "worldtask_world_story_task_name_63", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_62", + "key": "worldtask_world_story_task_details_63", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_62", + "key": "worldtask_world_story_npctxt_63", "text": "剧情" }, "npc": 10620, @@ -2245,15 +2281,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_63", + "key": "worldtask_world_story_task_name_64", "text": "主线【4-1】-【4-8】" }, "task_details": { - "key": "worldtask_world_task_task_details_63", + "key": "worldtask_world_story_task_details_64", "text": "主线【4-1】-【4-8】" }, "npctxt": { - "key": "worldtask_world_task_npctxt_63", + "key": "worldtask_world_story_npctxt_64", "text": "主线【4-1】-【4-8】" }, "npc": 10630, @@ -2281,15 +2317,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_64", + "key": "worldtask_world_story_task_name_65", "text": "装备副本boss3难度1刷1次" }, "task_details": { - "key": "worldtask_world_task_task_details_64", + "key": "worldtask_world_story_task_details_65", "text": "装备副本boss3难度1刷1次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_64", + "key": "worldtask_world_story_npctxt_65", "text": "装备副本boss3难度1刷1次" }, "npc": 10640, @@ -2317,15 +2353,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_65", + "key": "worldtask_world_story_task_name_66", "text": "12件装备强化+6" }, "task_details": { - "key": "worldtask_world_task_task_details_65", + "key": "worldtask_world_story_task_details_66", "text": "12件装备强化+6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_65", + "key": "worldtask_world_story_npctxt_66", "text": "12件装备强化+6" }, "npc": 10650, @@ -2353,15 +2389,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_66", + "key": "worldtask_world_story_task_name_67", "text": "武馆木桩解锁3根" }, "task_details": { - "key": "worldtask_world_task_task_details_66", + "key": "worldtask_world_story_task_details_67", "text": "武馆木桩解锁3根" }, "npctxt": { - "key": "worldtask_world_task_npctxt_66", + "key": "worldtask_world_story_npctxt_67", "text": "武馆木桩解锁3根" }, "npc": 10660, @@ -2389,15 +2425,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_67", + "key": "worldtask_world_story_task_name_68", "text": "功夫大师挑战塔10层" }, "task_details": { - "key": "worldtask_world_task_task_details_67", + "key": "worldtask_world_story_task_details_68", "text": "功夫大师挑战塔10层" }, "npctxt": { - "key": "worldtask_world_task_npctxt_67", + "key": "worldtask_world_story_npctxt_68", "text": "功夫大师挑战塔10层" }, "npc": 10670, @@ -2425,15 +2461,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_68", + "key": "worldtask_world_story_task_name_69", "text": "关卡【5-1】-【5-8】" }, "task_details": { - "key": "worldtask_world_task_task_details_68", + "key": "worldtask_world_story_task_details_69", "text": "关卡【5-1】-【5-8】" }, "npctxt": { - "key": "worldtask_world_task_npctxt_68", + "key": "worldtask_world_story_npctxt_69", "text": "关卡【5-1】-【5-8】" }, "npc": 10680, @@ -2461,15 +2497,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_69", + "key": "worldtask_world_story_task_name_70", "text": "战斗22" }, "task_details": { - "key": "worldtask_world_task_task_details_69", + "key": "worldtask_world_story_task_details_70", "text": "战斗22" }, "npctxt": { - "key": "worldtask_world_task_npctxt_69", + "key": "worldtask_world_story_npctxt_70", "text": "战斗22" }, "npc": 10690, @@ -2497,15 +2533,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_70", + "key": "worldtask_world_story_task_name_71", "text": "战斗23" }, "task_details": { - "key": "worldtask_world_task_task_details_70", + "key": "worldtask_world_story_task_details_71", "text": "战斗23" }, "npctxt": { - "key": "worldtask_world_task_npctxt_70", + "key": "worldtask_world_story_npctxt_71", "text": "战斗23" }, "npc": 10700, @@ -2533,15 +2569,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_71", + "key": "worldtask_world_story_task_name_72", "text": "穿指定套装2套(从解锁的装备boss套装里选)" }, "task_details": { - "key": "worldtask_world_task_task_details_71", + "key": "worldtask_world_story_task_details_72", "text": "穿指定套装2套(从解锁的装备boss套装里选)" }, "npctxt": { - "key": "worldtask_world_task_npctxt_71", + "key": "worldtask_world_story_npctxt_72", "text": "穿指定套装2套(从解锁的装备boss套装里选)" }, "npc": 10710, @@ -2569,15 +2605,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_72", + "key": "worldtask_world_story_task_name_73", "text": "加入公会" }, "task_details": { - "key": "worldtask_world_task_task_details_72", + "key": "worldtask_world_story_task_details_73", "text": "加入公会" }, "npctxt": { - "key": "worldtask_world_task_npctxt_72", + "key": "worldtask_world_story_npctxt_73", "text": "加入公会" }, "npc": 10720, @@ -2605,15 +2641,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_73", + "key": "worldtask_world_story_task_name_74", "text": "装备副本boss3难度2刷1次" }, "task_details": { - "key": "worldtask_world_task_task_details_73", + "key": "worldtask_world_story_task_details_74", "text": "装备副本boss3难度2刷1次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_73", + "key": "worldtask_world_story_npctxt_74", "text": "装备副本boss3难度2刷1次" }, "npc": 10730, @@ -2641,15 +2677,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_74", + "key": "worldtask_world_story_task_name_75", "text": "装备副本boss3难度5刷2次" }, "task_details": { - "key": "worldtask_world_task_task_details_74", + "key": "worldtask_world_story_task_details_75", "text": "装备副本boss3难度5刷2次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_74", + "key": "worldtask_world_story_npctxt_75", "text": "装备副本boss3难度5刷2次" }, "npc": 10740, @@ -2677,15 +2713,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_75", + "key": "worldtask_world_story_task_name_76", "text": "守护者星座图解锁次数10次" }, "task_details": { - "key": "worldtask_world_task_task_details_75", + "key": "worldtask_world_story_task_details_76", "text": "守护者星座图解锁次数10次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_75", + "key": "worldtask_world_story_npctxt_76", "text": "守护者星座图解锁次数10次" }, "npc": 10750, @@ -2713,15 +2749,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_76", + "key": "worldtask_world_story_task_name_77", "text": "守护者星座图解锁次数15次" }, "task_details": { - "key": "worldtask_world_task_task_details_76", + "key": "worldtask_world_story_task_details_77", "text": "守护者星座图解锁次数15次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_76", + "key": "worldtask_world_story_npctxt_77", "text": "守护者星座图解锁次数15次" }, "npc": 10760, @@ -2749,15 +2785,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_77", + "key": "worldtask_world_story_task_name_78", "text": "关卡6-6" }, "task_details": { - "key": "worldtask_world_task_task_details_77", + "key": "worldtask_world_story_task_details_78", "text": "关卡6-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_77", + "key": "worldtask_world_story_npctxt_78", "text": "关卡6-6" }, "npc": 10770, @@ -2785,15 +2821,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_78", + "key": "worldtask_world_story_task_name_79", "text": "12件装备强化+9" }, "task_details": { - "key": "worldtask_world_task_task_details_78", + "key": "worldtask_world_story_task_details_79", "text": "12件装备强化+9" }, "npctxt": { - "key": "worldtask_world_task_npctxt_78", + "key": "worldtask_world_story_npctxt_79", "text": "12件装备强化+9" }, "npc": 10780, @@ -2821,15 +2857,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_79", + "key": "worldtask_world_story_task_name_80", "text": "竞技场3连胜" }, "task_details": { - "key": "worldtask_world_task_task_details_79", + "key": "worldtask_world_story_task_details_80", "text": "竞技场3连胜" }, "npctxt": { - "key": "worldtask_world_task_npctxt_79", + "key": "worldtask_world_story_npctxt_80", "text": "竞技场3连胜" }, "npc": 10790, @@ -2857,15 +2893,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_80", + "key": "worldtask_world_story_task_name_81", "text": "装备副本boss4难度2刷1次" }, "task_details": { - "key": "worldtask_world_task_task_details_80", + "key": "worldtask_world_story_task_details_81", "text": "装备副本boss4难度2刷1次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_80", + "key": "worldtask_world_story_npctxt_81", "text": "装备副本boss4难度2刷1次" }, "npc": 10800, @@ -2893,15 +2929,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_81", + "key": "worldtask_world_story_task_name_82", "text": "守护者星座图解锁解锁30次" }, "task_details": { - "key": "worldtask_world_task_task_details_81", + "key": "worldtask_world_story_task_details_82", "text": "守护者星座图解锁解锁30次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_81", + "key": "worldtask_world_story_npctxt_82", "text": "守护者星座图解锁解锁30次" }, "npc": 10810, @@ -2929,15 +2965,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_82", + "key": "worldtask_world_story_task_name_83", "text": "关卡7-6" }, "task_details": { - "key": "worldtask_world_task_task_details_82", + "key": "worldtask_world_story_task_details_83", "text": "关卡7-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_82", + "key": "worldtask_world_story_npctxt_83", "text": "关卡7-6" }, "npc": 10820, @@ -2965,15 +3001,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_83", + "key": "worldtask_world_story_task_name_84", "text": "搜集12个4星装备" }, "task_details": { - "key": "worldtask_world_task_task_details_83", + "key": "worldtask_world_story_task_details_84", "text": "搜集12个4星装备" }, "npctxt": { - "key": "worldtask_world_task_npctxt_83", + "key": "worldtask_world_story_npctxt_84", "text": "搜集12个4星装备" }, "npc": 10830, @@ -3001,15 +3037,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_84", + "key": "worldtask_world_story_task_name_85", "text": "功夫大师挑战塔20层" }, "task_details": { - "key": "worldtask_world_task_task_details_84", + "key": "worldtask_world_story_task_details_85", "text": "功夫大师挑战塔20层" }, "npctxt": { - "key": "worldtask_world_task_npctxt_84", + "key": "worldtask_world_story_npctxt_85", "text": "功夫大师挑战塔20层" }, "npc": 10840, @@ -3037,15 +3073,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_85", + "key": "worldtask_world_story_task_name_86", "text": "关卡8-6" }, "task_details": { - "key": "worldtask_world_task_task_details_85", + "key": "worldtask_world_story_task_details_86", "text": "关卡8-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_85", + "key": "worldtask_world_story_npctxt_86", "text": "关卡8-6" }, "npc": 10850, @@ -3073,15 +3109,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_86", + "key": "worldtask_world_story_task_name_87", "text": "装备副本boss4难度4刷1次" }, "task_details": { - "key": "worldtask_world_task_task_details_86", + "key": "worldtask_world_story_task_details_87", "text": "装备副本boss4难度4刷1次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_86", + "key": "worldtask_world_story_npctxt_87", "text": "装备副本boss4难度4刷1次" }, "npc": 10860, @@ -3109,15 +3145,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_87", + "key": "worldtask_world_story_task_name_88", "text": "18件强化+9" }, "task_details": { - "key": "worldtask_world_task_task_details_87", + "key": "worldtask_world_story_task_details_88", "text": "18件强化+9" }, "npctxt": { - "key": "worldtask_world_task_npctxt_87", + "key": "worldtask_world_story_npctxt_88", "text": "18件强化+9" }, "npc": 10870, @@ -3145,15 +3181,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_88", + "key": "worldtask_world_story_task_name_89", "text": "关卡9-6" }, "task_details": { - "key": "worldtask_world_task_task_details_88", + "key": "worldtask_world_story_task_details_89", "text": "关卡9-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_88", + "key": "worldtask_world_story_npctxt_89", "text": "关卡9-6" }, "npc": 10880, @@ -3181,15 +3217,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_89", + "key": "worldtask_world_story_task_name_90", "text": "守护者星座图解锁50次" }, "task_details": { - "key": "worldtask_world_task_task_details_89", + "key": "worldtask_world_story_task_details_90", "text": "守护者星座图解锁50次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_89", + "key": "worldtask_world_story_npctxt_90", "text": "守护者星座图解锁50次" }, "npc": 10890, @@ -3217,15 +3253,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_90", + "key": "worldtask_world_story_task_name_91", "text": "关卡10-6" }, "task_details": { - "key": "worldtask_world_task_task_details_90", + "key": "worldtask_world_story_task_details_91", "text": "关卡10-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_90", + "key": "worldtask_world_story_npctxt_91", "text": "关卡10-6" }, "npc": 10900, @@ -3253,15 +3289,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_91", + "key": "worldtask_world_story_task_name_92", "text": "装备副本boss4难度6刷1次" }, "task_details": { - "key": "worldtask_world_task_task_details_91", + "key": "worldtask_world_story_task_details_92", "text": "装备副本boss4难度6刷1次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_91", + "key": "worldtask_world_story_npctxt_92", "text": "装备副本boss4难度6刷1次" }, "npc": 10910, @@ -3289,15 +3325,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_92", + "key": "worldtask_world_story_task_name_93", "text": "8件任意装备强化+12" }, "task_details": { - "key": "worldtask_world_task_task_details_92", + "key": "worldtask_world_story_task_details_93", "text": "8件任意装备强化+12" }, "npctxt": { - "key": "worldtask_world_task_npctxt_92", + "key": "worldtask_world_story_npctxt_93", "text": "8件任意装备强化+12" }, "npc": 10920, @@ -3325,15 +3361,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_93", + "key": "worldtask_world_story_task_name_94", "text": "关卡11-6" }, "task_details": { - "key": "worldtask_world_task_task_details_93", + "key": "worldtask_world_story_task_details_94", "text": "关卡11-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_93", + "key": "worldtask_world_story_npctxt_94", "text": "关卡11-6" }, "npc": 10930, @@ -3361,15 +3397,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_94", + "key": "worldtask_world_story_task_name_95", "text": "竞技场获胜20次" }, "task_details": { - "key": "worldtask_world_task_task_details_94", + "key": "worldtask_world_story_task_details_95", "text": "竞技场获胜20次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_94", + "key": "worldtask_world_story_npctxt_95", "text": "竞技场获胜20次" }, "npc": 10940, @@ -3397,15 +3433,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_95", + "key": "worldtask_world_story_task_name_96", "text": "关卡12-6" }, "task_details": { - "key": "worldtask_world_task_task_details_95", + "key": "worldtask_world_story_task_details_96", "text": "关卡12-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_95", + "key": "worldtask_world_story_npctxt_96", "text": "关卡12-6" }, "npc": 10950, @@ -3433,15 +3469,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_96", + "key": "worldtask_world_story_task_name_97", "text": "主线困难1-3" }, "task_details": { - "key": "worldtask_world_task_task_details_96", + "key": "worldtask_world_story_task_details_97", "text": "主线困难1-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_96", + "key": "worldtask_world_story_npctxt_97", "text": "主线困难1-3" }, "npc": 10960, @@ -3469,15 +3505,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_97", + "key": "worldtask_world_story_task_name_98", "text": "主线困难1-6" }, "task_details": { - "key": "worldtask_world_task_task_details_97", + "key": "worldtask_world_story_task_details_98", "text": "主线困难1-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_97", + "key": "worldtask_world_story_npctxt_98", "text": "主线困难1-6" }, "npc": 10970, @@ -3505,15 +3541,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_98", + "key": "worldtask_world_story_task_name_99", "text": "主线困难2-3" }, "task_details": { - "key": "worldtask_world_task_task_details_98", + "key": "worldtask_world_story_task_details_99", "text": "主线困难2-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_98", + "key": "worldtask_world_story_npctxt_99", "text": "主线困难2-3" }, "npc": 10980, @@ -3541,15 +3577,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_99", + "key": "worldtask_world_story_task_name_100", "text": "主线困难2-6" }, "task_details": { - "key": "worldtask_world_task_task_details_99", + "key": "worldtask_world_story_task_details_100", "text": "主线困难2-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_99", + "key": "worldtask_world_story_npctxt_100", "text": "主线困难2-6" }, "npc": 10990, @@ -3577,15 +3613,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_100", + "key": "worldtask_world_story_task_name_101", "text": "主线困难3-3" }, "task_details": { - "key": "worldtask_world_task_task_details_100", + "key": "worldtask_world_story_task_details_101", "text": "主线困难3-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_100", + "key": "worldtask_world_story_npctxt_101", "text": "主线困难3-3" }, "npc": 11000, @@ -3613,15 +3649,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_101", + "key": "worldtask_world_story_task_name_102", "text": "主线困难3-6" }, "task_details": { - "key": "worldtask_world_task_task_details_101", + "key": "worldtask_world_story_task_details_102", "text": "主线困难3-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_101", + "key": "worldtask_world_story_npctxt_102", "text": "主线困难3-6" }, "npc": 11010, @@ -3649,15 +3685,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_102", + "key": "worldtask_world_story_task_name_103", "text": "主线困难4-3" }, "task_details": { - "key": "worldtask_world_task_task_details_102", + "key": "worldtask_world_story_task_details_103", "text": "主线困难4-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_102", + "key": "worldtask_world_story_npctxt_103", "text": "主线困难4-3" }, "npc": 11020, @@ -3685,15 +3721,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_103", + "key": "worldtask_world_story_task_name_104", "text": "主线困难4-6" }, "task_details": { - "key": "worldtask_world_task_task_details_103", + "key": "worldtask_world_story_task_details_104", "text": "主线困难4-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_103", + "key": "worldtask_world_story_npctxt_104", "text": "主线困难4-6" }, "npc": 11030, @@ -3721,15 +3757,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_104", + "key": "worldtask_world_story_task_name_105", "text": "主线困难5-3" }, "task_details": { - "key": "worldtask_world_task_task_details_104", + "key": "worldtask_world_story_task_details_105", "text": "主线困难5-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_104", + "key": "worldtask_world_story_npctxt_105", "text": "主线困难5-3" }, "npc": 11040, @@ -3757,15 +3793,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_105", + "key": "worldtask_world_story_task_name_106", "text": "主线困难5-6" }, "task_details": { - "key": "worldtask_world_task_task_details_105", + "key": "worldtask_world_story_task_details_106", "text": "主线困难5-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_105", + "key": "worldtask_world_story_npctxt_106", "text": "主线困难5-6" }, "npc": 11050, @@ -3793,15 +3829,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_106", + "key": "worldtask_world_story_task_name_107", "text": "主线困难6-3" }, "task_details": { - "key": "worldtask_world_task_task_details_106", + "key": "worldtask_world_story_task_details_107", "text": "主线困难6-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_106", + "key": "worldtask_world_story_npctxt_107", "text": "主线困难6-3" }, "npc": 11060, @@ -3829,15 +3865,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_107", + "key": "worldtask_world_story_task_name_108", "text": "主线困难6-6" }, "task_details": { - "key": "worldtask_world_task_task_details_107", + "key": "worldtask_world_story_task_details_108", "text": "主线困难6-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_107", + "key": "worldtask_world_story_npctxt_108", "text": "主线困难6-6" }, "npc": 11070, @@ -3865,15 +3901,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_108", + "key": "worldtask_world_story_task_name_109", "text": "主线困难7-3" }, "task_details": { - "key": "worldtask_world_task_task_details_108", + "key": "worldtask_world_story_task_details_109", "text": "主线困难7-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_108", + "key": "worldtask_world_story_npctxt_109", "text": "主线困难7-3" }, "npc": 11080, @@ -3901,15 +3937,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_109", + "key": "worldtask_world_story_task_name_110", "text": "主线困难7-6" }, "task_details": { - "key": "worldtask_world_task_task_details_109", + "key": "worldtask_world_story_task_details_110", "text": "主线困难7-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_109", + "key": "worldtask_world_story_npctxt_110", "text": "主线困难7-6" }, "npc": 11090, @@ -3937,15 +3973,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_110", + "key": "worldtask_world_story_task_name_111", "text": "主线困难8-3" }, "task_details": { - "key": "worldtask_world_task_task_details_110", + "key": "worldtask_world_story_task_details_111", "text": "主线困难8-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_110", + "key": "worldtask_world_story_npctxt_111", "text": "主线困难8-3" }, "npc": 11100, @@ -3973,15 +4009,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_111", + "key": "worldtask_world_story_task_name_112", "text": "主线困难8-6" }, "task_details": { - "key": "worldtask_world_task_task_details_111", + "key": "worldtask_world_story_task_details_112", "text": "主线困难8-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_111", + "key": "worldtask_world_story_npctxt_112", "text": "主线困难8-6" }, "npc": 11110, @@ -4009,15 +4045,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_112", + "key": "worldtask_world_story_task_name_113", "text": "主线困难9-3" }, "task_details": { - "key": "worldtask_world_task_task_details_112", + "key": "worldtask_world_story_task_details_113", "text": "主线困难9-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_112", + "key": "worldtask_world_story_npctxt_113", "text": "主线困难9-3" }, "npc": 11120, @@ -4045,15 +4081,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_113", + "key": "worldtask_world_story_task_name_114", "text": "主线困难9-6" }, "task_details": { - "key": "worldtask_world_task_task_details_113", + "key": "worldtask_world_story_task_details_114", "text": "主线困难9-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_113", + "key": "worldtask_world_story_npctxt_114", "text": "主线困难9-6" }, "npc": 11130, @@ -4081,15 +4117,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_114", + "key": "worldtask_world_story_task_name_115", "text": "主线困难10-3" }, "task_details": { - "key": "worldtask_world_task_task_details_114", + "key": "worldtask_world_story_task_details_115", "text": "主线困难10-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_114", + "key": "worldtask_world_story_npctxt_115", "text": "主线困难10-3" }, "npc": 11140, @@ -4117,15 +4153,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_115", + "key": "worldtask_world_story_task_name_116", "text": "主线困难10-6" }, "task_details": { - "key": "worldtask_world_task_task_details_115", + "key": "worldtask_world_story_task_details_116", "text": "主线困难10-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_115", + "key": "worldtask_world_story_npctxt_116", "text": "主线困难10-6" }, "npc": 11150, @@ -4153,15 +4189,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_116", + "key": "worldtask_world_story_task_name_117", "text": "主线困难11-3" }, "task_details": { - "key": "worldtask_world_task_task_details_116", + "key": "worldtask_world_story_task_details_117", "text": "主线困难11-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_116", + "key": "worldtask_world_story_npctxt_117", "text": "主线困难11-3" }, "npc": 11160, @@ -4189,15 +4225,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_117", + "key": "worldtask_world_story_task_name_118", "text": "主线困难11-6" }, "task_details": { - "key": "worldtask_world_task_task_details_117", + "key": "worldtask_world_story_task_details_118", "text": "主线困难11-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_117", + "key": "worldtask_world_story_npctxt_118", "text": "主线困难11-6" }, "npc": 11170, @@ -4225,15 +4261,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_118", + "key": "worldtask_world_story_task_name_119", "text": "主线困难12-3" }, "task_details": { - "key": "worldtask_world_task_task_details_118", + "key": "worldtask_world_story_task_details_119", "text": "主线困难12-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_118", + "key": "worldtask_world_story_npctxt_119", "text": "主线困难12-3" }, "npc": 11180, @@ -4261,15 +4297,15 @@ "des": 2, "icon": "", "task_name": { - "key": "worldtask_world_task_task_name_119", + "key": "worldtask_world_story_task_name_120", "text": "主线困难12-6" }, "task_details": { - "key": "worldtask_world_task_task_details_119", + "key": "worldtask_world_story_task_details_120", "text": "主线困难12-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_119", + "key": "worldtask_world_story_npctxt_120", "text": "主线困难12-6" }, "npc": 11190, diff --git a/comm/const.go b/comm/const.go index a5788349d..e33829b0f 100644 --- a/comm/const.go +++ b/comm/const.go @@ -447,6 +447,11 @@ const ( Reddot31 ReddotType = 10031 //维京远征 有挑战次数 Reddot32 ReddotType = 10032 //狩猎 有挑战次数 Reddot33 ReddotType = 10033 //附魔副本 有挑战次数 + + // 铁匠铺 + Reddot17102 ReddotType = 17102 // 铁匠铺手册台 + Reddot17106 ReddotType = 17106 // 铁匠铺手册台收藏家奖励上 + Reddot17107 ReddotType = 17107 // 铁匠铺手册台收藏家奖励按钮上 ) type TaskType int32 diff --git a/comm/imodule.go b/comm/imodule.go index 969eb1c49..b4882a175 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -467,6 +467,7 @@ type ( ISmithy interface { CheckActivateAtlasCollect(uid string, id string) + IReddot // 铁匠铺红点 } IPandaAtlas interface { diff --git a/modules/smithy/model_atlas.go b/modules/smithy/model_atlas.go index dae756f3b..768d6a838 100644 --- a/modules/smithy/model_atlas.go +++ b/modules/smithy/model_atlas.go @@ -143,3 +143,19 @@ func (this *modelAtlas) CheckActivateEquipAtlas(uid string, Equip []*pb.DB_Equip } return true } + +// 红点检测 +func (this *modelAtlas) checkReddot17102(uid string) bool { + list, _ := this.module.modelAtlas.getSmithyAtlasList(uid) + for _, v := range list.Atlas { + if v.Activate == false { + return true + } else { + if v.Data2 != nil { + return true + } + } + } + + return false +} diff --git a/modules/smithy/model_task.go b/modules/smithy/model_task.go index ecf08bf93..4d3b988e0 100644 --- a/modules/smithy/model_task.go +++ b/modules/smithy/model_task.go @@ -170,6 +170,20 @@ func (this *modelTask) updateTaskRecord(uid string, taskId int32) error { return nil } +// 红点检测 +func (this *modelTask) checkReddot17107(uid string) bool { + dt, err := this.getTaskRecord(uid) + if err != nil { + return false + } + for _, v := range dt.Tasks { + if v.Received == 1 { + return true + } + } + return false +} + // 检查任务状态 // func (this *modelTask) checkTaskStatus(uid string, taskId int32) bool { // conf, _ := this.module.configure.GetSmithyTask(taskId) diff --git a/modules/smithy/module.go b/modules/smithy/module.go index d4a53720c..d399b6f8a 100644 --- a/modules/smithy/module.go +++ b/modules/smithy/module.go @@ -119,3 +119,19 @@ func (this *Smithy) CheckActivateAtlasCollect(uid string, id string) { } return } + +func (this *Smithy) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (reddot map[comm.ReddotType]bool) { + reddot = make(map[comm.ReddotType]bool) + for _, v := range rid { + switch v { + case comm.Reddot17102: // 铁匠铺手册台 + reddot[comm.Reddot17102] = this.modelAtlas.checkReddot17102(session.GetUserId()) + break + case comm.Reddot17107: // 铁匠铺手册台收藏家奖励按钮上 + reddot[comm.Reddot17107] = this.modelTask.checkReddot17107(session.GetUserId()) + break + } + + } + return +} diff --git a/sys/configure/structs/Game.PandamasJxData.go b/sys/configure/structs/Game.PandamasJxData.go index a177ca5d8..ac71b9884 100644 --- a/sys/configure/structs/Game.PandamasJxData.go +++ b/sys/configure/structs/Game.PandamasJxData.go @@ -12,6 +12,7 @@ import "errors" type GamePandamasJxData struct { Id string + Job int32 Race int32 Type int32 Name string @@ -41,6 +42,7 @@ func (*GamePandamasJxData) GetTypeId() int32 { func (_v *GamePandamasJxData)Deserialize(_buf map[string]interface{}) (err error) { { var _ok_ bool; if _v.Id, _ok_ = _buf["id"].(string); !_ok_ { err = errors.New("id error"); return } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["job"].(float64); !_ok_ { err = errors.New("job error"); return }; _v.Job = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["race"].(float64); !_ok_ { err = errors.New("race error"); return }; _v.Race = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } From 589dc28e25cff62b9fa255dc6df2a1d8cf74b493 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Wed, 14 Jun 2023 15:16:43 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/const.go | 60 +++++++++++++++------------ comm/imodule.go | 18 +------- comm/pool.go | 19 --------- lego/sys/timewheel/timewheel.go | 21 ++++++++-- modules/hunting/module.go | 4 +- modules/mail/module.go | 12 +++--- modules/mline/module.go | 4 +- modules/notify/core.go | 7 ++++ modules/notify/module.go | 8 ++++ modules/notify/notify_timer.go | 73 +++++++++++++++++++++++++++++++++ modules/reddot/api_get.go | 14 +++---- modules/reddot/api_getall.go | 14 +++---- modules/sociaty/module.go | 8 ++-- modules/task/module.go | 20 ++++----- modules/viking/module.go | 4 +- 15 files changed, 180 insertions(+), 106 deletions(-) create mode 100644 modules/notify/notify_timer.go diff --git a/comm/const.go b/comm/const.go index a5788349d..9da21a8ce 100644 --- a/comm/const.go +++ b/comm/const.go @@ -402,34 +402,49 @@ const ( Diamond int32 = 2 //钻石 ) -// 门票 +//定时通知类型 +type NotifyType int32 + const ( -// ArenaTicket string = "100004" //竞技场入场券 -// MoonFantasyTicket string = "100003" //梦境场入场券 -// PhysicalMedicament string = "10017" //体力药剂 -// UnifiedTicket string = "100100" //统一门票 + Notify1001 NotifyType = 1001 //铁匠铺炉温达到满值 ) // 红点枚举 type ReddotType int32 const ( - Reddot1 ReddotType = 10001 //任务----日常任务奖励红点 - Reddot2 ReddotType = 10002 //任务----周常任务奖励红点 - Reddot3 ReddotType = 10003 //公会----签到红点 - Reddot4 ReddotType = 10004 //任务----成就任务奖励红点 - Reddot5 ReddotType = 10005 //主线关卡----可挑战红点 + //任务 + Reddot10101 ReddotType = 10101 //任务----日常活跃宝箱红点 + Reddot10102 ReddotType = 10102 //任务----周活跃宝箱红点 + Reddot10103 ReddotType = 10103 //任务----成就任务奖励红点 + Reddot10201 ReddotType = 10201 //任务----日常活跃奖励红点 + Reddot10301 ReddotType = 10301 //任务----周常活跃奖励红点 + + //邮件 + Reddot12101 ReddotType = 12101 //邮件-----附件红点 + Reddot12102 ReddotType = 12102 //邮件-----未读邮件红点 + //维京 + Reddot13102 ReddotType = 13102 //维京远征 有挑战次数 + //狩猎 + Reddot14102 ReddotType = 14102 //狩猎 有挑战次数 + + //英雄 + Reddot20102 ReddotType = 20102 //英雄----升级红点 前端处理 + Reddot20201 ReddotType = 20201 //英雄----觉醒红点 前端处理 + Reddot10 ReddotType = 10010 //英雄----共鸣红点 前端处理 + Reddot20301 ReddotType = 20301 //英雄----升星红点 前端处理 + //公会 + Reddot15102 ReddotType = 15102 //公会----签到红点 + Reddot15201 ReddotType = 15201 //公会----申请红点 + //主线关卡 + Reddot11100 ReddotType = 11100 //主线关卡----可挑战红点 + // 铁匠铺 + Reddot17102 ReddotType = 17102 // 铁匠铺手册台 + Reddot17106 ReddotType = 17106 // 铁匠铺手册台收藏家奖励上 + Reddot17107 ReddotType = 17107 // 铁匠铺手册台收藏家奖励按钮上 + Reddot6 ReddotType = 10006 //爬塔----可挑战红点 Reddot7 ReddotType = 10007 //爬塔----奖励红点 - Reddot8 ReddotType = 10008 //英雄----升级红点 前端处理 - Reddot9 ReddotType = 10009 //英雄----觉醒红点 前端处理 - Reddot10 ReddotType = 10010 //英雄----共鸣红点 前端处理 - Reddot11 ReddotType = 10011 //英雄----升星红点 前端处理 - Reddot12 ReddotType = 10012 //装备----可穿戴红点 前端处理 - Reddot13 ReddotType = 10013 //装备----可替换红点 前端处理 - Reddot14 ReddotType = 10014 //装备----可强化红点 前端处理 - Reddot15 ReddotType = 10015 //装备----可附魔红点 前端处理 - Reddot16 ReddotType = 10016 //装备----可洗炼红点 前端处理 Reddot17 ReddotType = 10017 //星座图----红点 Reddot18 ReddotType = 10018 //英雄招募----红点 // 前端处理 Reddot19 ReddotType = 10019 //竞技场----挑战红点 @@ -439,13 +454,6 @@ const ( Reddot23 ReddotType = 10023 //熊猫武馆----可挂机红点 Reddot24 ReddotType = 10024 //熊猫武馆----可升级红点 Reddot25 ReddotType = 10025 //熊猫武馆----可领取奖励红点 - Reddot26 ReddotType = 10026 //邮件-----附件红点 - Reddot27 ReddotType = 10027 //任务----日常活跃奖励红点 - Reddot28 ReddotType = 10028 //任务----周常活跃奖励红点 - Reddot29 ReddotType = 10029 //公会----申请红点 - Reddot30 ReddotType = 10030 //邮件-----未读邮件红点 - Reddot31 ReddotType = 10031 //维京远征 有挑战次数 - Reddot32 ReddotType = 10032 //狩猎 有挑战次数 Reddot33 ReddotType = 10033 //附魔副本 有挑战次数 ) diff --git a/comm/imodule.go b/comm/imodule.go index 969eb1c49..28fc5da37 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -234,23 +234,7 @@ type ( IReddot } - // 随机任务 - IRtask interface { - // 条件校验 - CheckCondi(uid string, condiId int32, p ...int32) (errdata *pb.ErrorData) - // 多条件校验 - CheckCondis(uid string, condiIds ...int32) (condIds []int32) - // 远程任务条件校验 - RemoteCheckCondi(uid string, condiId int32, rsp *pb.DBRtaskRecord) error - // 删除任务条件数据 - RemoveCondi(uid string, condiId int32) error - // 更新任务条件数据 - ChangeCondi(uid string, data map[int32]*pb.RtaskData) error - //任务批量触发 - TriggerTask(uid string, taskParams ...*TaskParam) - // 获取任务条件记录 - GetCondiData(uid string) *pb.DBRtaskRecord - } + //好友 IFriend interface { diff --git a/comm/pool.go b/comm/pool.go index 0d514f6e7..f14642792 100644 --- a/comm/pool.go +++ b/comm/pool.go @@ -5,25 +5,6 @@ import ( "sync" ) -var taskParamPool = &sync.Pool{ - New: func() interface{} { - return &TaskParam{} - }, -} - -//GetBuriedParam -func GetTaskParam(t TaskType, p ...int32) *TaskParam { - task := taskParamPool.Get().(*TaskParam) - task.TT = t - task.Params = append(task.Params, p...) - return task -} - -func PuttaskParam(r *TaskParam) { - r.Params = r.Params[:0] - taskParamPool.Put(r) -} - var buriedParamPool = &sync.Pool{ New: func() interface{} { return &pb.BuriedParam{ diff --git a/lego/sys/timewheel/timewheel.go b/lego/sys/timewheel/timewheel.go index ff0bda215..4dd421394 100644 --- a/lego/sys/timewheel/timewheel.go +++ b/lego/sys/timewheel/timewheel.go @@ -2,6 +2,8 @@ package timewheel import ( "context" + "go_dreamfactory/lego/sys/log" + "runtime" "sync" "sync/atomic" "time" @@ -117,8 +119,7 @@ func (this *TimeWheel) Stop() { this.stopC <- struct{}{} } - -//此处写法 为监控时间轮是否正常执行 +//此处写法 为监控时间轮是否正常执行 func (this *TimeWheel) tickGenerator() { if this.tickQueue == nil { return @@ -184,10 +185,10 @@ func (this *TimeWheel) handleTick() { } if task.async { - go task.callback(task, task.args...) + go this.calltask(task, task.args...) } else { // optimize gopool - task.callback(task, task.args...) + this.calltask(task, task.args...) } // circle @@ -209,6 +210,18 @@ func (this *TimeWheel) handleTick() { this.currentIndex++ } +//执行时间轮事件 捕捉异常错误 防止程序崩溃 +func (this *TimeWheel) calltask(task *Task, args ...interface{}) { + defer func() { //程序异常 收集异常信息传递给前端显示 + if r := recover(); r != nil { + buf := make([]byte, 4096) + l := runtime.Stack(buf, false) + log.Errorf("timewheel err:%s", string(buf[0:l])) + } + }() + task.callback(task, task.args...) +} + func (this *TimeWheel) addAny(delay time.Duration, circle, async bool, callback func(*Task, ...interface{}), agr ...interface{}) *Task { if delay <= 0 { delay = this.tick diff --git a/modules/hunting/module.go b/modules/hunting/module.go index 8216ba121..d29081b5d 100644 --- a/modules/hunting/module.go +++ b/modules/hunting/module.go @@ -172,8 +172,8 @@ func (this *Hunting) Reddot(session comm.IUserSession, rid ...comm.ReddotType) ( reddot = make(map[comm.ReddotType]bool) for _, v := range rid { switch v { - case comm.Reddot32: - reddot[comm.Reddot32] = this.modelHunting.checkReddot32(session) + case comm.Reddot14102: + reddot[comm.Reddot14102] = this.modelHunting.checkReddot32(session) break } } diff --git a/modules/mail/module.go b/modules/mail/module.go index acfedc136..58d9d527c 100644 --- a/modules/mail/module.go +++ b/modules/mail/module.go @@ -106,18 +106,18 @@ func (this *Mail) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (red reddot = make(map[comm.ReddotType]bool) for _, v := range rid { switch v { - case comm.Reddot26: + case comm.Reddot12101: if isredot := this.modelMail.checkReddot26(session.GetUserId()); isredot { - reddot[comm.Reddot26] = true + reddot[comm.Reddot12101] = true } else { - reddot[comm.Reddot26] = false + reddot[comm.Reddot12101] = false } break - case comm.Reddot30: + case comm.Reddot12102: if isredot := this.modelMail.checkReddot30(session.GetUserId()); isredot { - reddot[comm.Reddot30] = true + reddot[comm.Reddot12102] = true } else { - reddot[comm.Reddot30] = false + reddot[comm.Reddot12102] = false } break } diff --git a/modules/mline/module.go b/modules/mline/module.go index f01d80d1d..701beedda 100644 --- a/modules/mline/module.go +++ b/modules/mline/module.go @@ -53,8 +53,8 @@ func (this *Mline) Start() (err error) { func (this *Mline) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (reddot map[comm.ReddotType]bool) { reddot = make(map[comm.ReddotType]bool) for _, v := range rid { - if v == comm.Reddot5 { - reddot[comm.Reddot5] = this.CheckPoint(session.GetUserId()) + if v == comm.Reddot11100 { + reddot[comm.Reddot11100] = this.CheckPoint(session.GetUserId()) break } } diff --git a/modules/notify/core.go b/modules/notify/core.go index a3131f139..8df44855e 100644 --- a/modules/notify/core.go +++ b/modules/notify/core.go @@ -1 +1,8 @@ package notify + +import "go_dreamfactory/lego/sys/timewheel" + +//定时通知 +type timernotify struct { + rtask *timewheel.Task +} diff --git a/modules/notify/module.go b/modules/notify/module.go index 9368783d1..6a61a2a45 100644 --- a/modules/notify/module.go +++ b/modules/notify/module.go @@ -4,6 +4,8 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/modules" + "go_dreamfactory/pb" + "time" ) /* @@ -40,3 +42,9 @@ func (this *Notify) OnInstallComp() { this.api_comp = this.RegisterComp(new(apiComp)).(*apiComp) this.modelNotify = this.RegisterComp(new(modelNotifyComp)).(*modelNotifyComp) } + +//添加定时通知消息 +func (this *Notify) AddTimerNotify(uid string, ntype comm.NotifyType, delay time.Duration) (errdata *pb.ErrorData) { + + return +} diff --git a/modules/notify/notify_timer.go b/modules/notify/notify_timer.go new file mode 100644 index 000000000..145947161 --- /dev/null +++ b/modules/notify/notify_timer.go @@ -0,0 +1,73 @@ +package notify + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/core" + "go_dreamfactory/lego/core/cbase" + "go_dreamfactory/lego/sys/log" + "go_dreamfactory/lego/sys/timewheel" + "go_dreamfactory/pb" + "time" +) + +///定时通知组件 +type notifyTimer struct { + cbase.ModuleCompBase + module *Notify + timers map[string]map[comm.NotifyType]*timernotify +} + +//组件初始化接口 +func (this *notifyTimer) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) { + this.ModuleCompBase.Init(service, module, comp, opt) + this.timers = make(map[string]map[comm.NotifyType]*timernotify) + return +} + +func (this *notifyTimer) addTimerNotify(uid string, ntype comm.NotifyType, delay time.Duration) (errdata *pb.ErrorData) { + var ( + utimers map[comm.NotifyType]*timernotify + timer *timernotify + ok bool + ) + if utimers, ok = this.timers[uid]; !ok { + this.timers[uid] = make(map[comm.NotifyType]*timernotify) + utimers = this.timers[uid] + } + if timer, ok = utimers[ntype]; !ok { //还没有定时任务 + utimers[ntype] = &timernotify{} + utimers[ntype].rtask = timewheel.Add(delay, this.timerNotify, uid, ntype) + } else { + timewheel.Remove(utimers[ntype].rtask) + timer.rtask = timewheel.Add(delay, this.timerNotify, uid, ntype) + } + return +} + +func (this *notifyTimer) timerNotify(task *timewheel.Task, args ...interface{}) { + if len(args) != 2 { + this.module.Error("异常定时通知消息", log.Field{Key: "args", Value: args}) + return + } + var ( + uid string + ntype comm.NotifyType + utimers map[comm.NotifyType]*timernotify + ok bool + ) + uid = args[0].(string) + ntype = args[1].(comm.NotifyType) + if utimers, ok = this.timers[uid]; !ok { + return + } + if _, ok = utimers[ntype]; !ok { //还没有定时任务 + return + } + delete(utimers, ntype) + + switch ntype { + case comm.Notify1001: + break + } + +} diff --git a/modules/reddot/api_get.go b/modules/reddot/api_get.go index 17c898325..b7fa1b12a 100644 --- a/modules/reddot/api_get.go +++ b/modules/reddot/api_get.go @@ -23,19 +23,19 @@ func (this *apiComp) Get(session comm.IUserSession, req *pb.ReddotGetReq) (errda // reddot[v] = false _rid := comm.ReddotType(rid) switch _rid { - case comm.Reddot1: + case comm.Reddot10101: for k, v := range this.module.ModuleTask.Reddot(session, _rid) { reddot[int32(k)] = v } - case comm.Reddot2: + case comm.Reddot10102: for k, v := range this.module.ModuleTask.Reddot(session, _rid) { reddot[int32(k)] = v } - case comm.Reddot3: + case comm.Reddot15102: for k, v := range this.module.ModuleSociaty.Reddot(session, _rid) { reddot[int32(k)] = v } - case comm.Reddot4: + case comm.Reddot10103: for k, v := range this.module.ModuleTask.Reddot(session, _rid) { reddot[int32(k)] = v } @@ -55,16 +55,16 @@ func (this *apiComp) Get(session comm.IUserSession, req *pb.ReddotGetReq) (errda for k, v := range this.module.gourmet.Reddot(session, _rid) { reddot[int32(k)] = v } - case comm.Reddot26, comm.Reddot30: + case comm.Reddot12101, comm.Reddot12102: for k, v := range this.module.mail.Reddot(session, _rid) { reddot[int32(k)] = v } - case comm.Reddot31: + case comm.Reddot13102: for k, v := range this.module.viking.Reddot(session, _rid) { reddot[int32(k)] = v } - case comm.Reddot32: + case comm.Reddot14102: for k, v := range this.module.hunting.Reddot(session, _rid) { reddot[int32(k)] = v } diff --git a/modules/reddot/api_getall.go b/modules/reddot/api_getall.go index 64afa81f2..209cda992 100644 --- a/modules/reddot/api_getall.go +++ b/modules/reddot/api_getall.go @@ -19,11 +19,11 @@ func (this *apiComp) GetAll(session comm.IUserSession, req *pb.ReddotGetAllReq) if errdata = this.GetAllCheck(session, req); errdata != nil { return } - for k, v := range this.module.ModuleTask.Reddot(session, comm.Reddot1, comm.Reddot2, comm.Reddot4, comm.Reddot27, - comm.Reddot28) { + for k, v := range this.module.ModuleTask.Reddot(session, comm.Reddot10101, comm.Reddot10102, comm.Reddot10103, comm.Reddot10201, + comm.Reddot10301) { reddot[int32(k)] = v } - for k, v := range this.module.mline.Reddot(session, comm.Reddot5) { + for k, v := range this.module.mline.Reddot(session, comm.Reddot11100) { reddot[int32(k)] = v } for k, v := range this.module.pagoda.Reddot(session, comm.Reddot6) { @@ -42,17 +42,17 @@ func (this *apiComp) GetAll(session comm.IUserSession, req *pb.ReddotGetAllReq) reddot[int32(k)] = v } - for k, v := range this.module.sociaty.Reddot(session, comm.Reddot3, comm.Reddot29) { + for k, v := range this.module.sociaty.Reddot(session, comm.Reddot15102, comm.Reddot15201) { reddot[int32(k)] = v } - for k, v := range this.module.mail.Reddot(session, comm.Reddot26, comm.Reddot30) { + for k, v := range this.module.mail.Reddot(session, comm.Reddot12101, comm.Reddot12102) { reddot[int32(k)] = v } - for k, v := range this.module.viking.Reddot(session, comm.Reddot31) { + for k, v := range this.module.viking.Reddot(session, comm.Reddot13102) { reddot[int32(k)] = v } - for k, v := range this.module.hunting.Reddot(session, comm.Reddot32) { + for k, v := range this.module.hunting.Reddot(session, comm.Reddot14102) { reddot[int32(k)] = v } diff --git a/modules/sociaty/module.go b/modules/sociaty/module.go index 560db1f5a..ba2493ae5 100644 --- a/modules/sociaty/module.go +++ b/modules/sociaty/module.go @@ -154,11 +154,11 @@ func (this *Sociaty) Reddot(session comm.IUserSession, rid ...comm.ReddotType) ( } for _, v := range rid { switch v { - case comm.Reddot3: + case comm.Reddot15102: tf := this.modelSociaty.IsSign(session.GetUserId(), sociaty) - reddot[comm.Reddot3] = !tf - case comm.Reddot29: - reddot[comm.Reddot29] = applyReddot + reddot[comm.Reddot15102] = !tf + case comm.Reddot15201: + reddot[comm.Reddot15201] = applyReddot } } } diff --git a/modules/task/module.go b/modules/task/module.go index c305084da..001ebd43d 100644 --- a/modules/task/module.go +++ b/modules/task/module.go @@ -143,22 +143,22 @@ func (this *ModuleTask) Reddot(session comm.IUserSession, rid ...comm.ReddotType for _, v := range rid { switch v { - case comm.Reddot1: + case comm.Reddot10101: tf, _ := this.modelTask.noReceiveTask(session.GetUserId(), comm.TASK_DAILY) - reddot[comm.Reddot1] = tf - case comm.Reddot2: + reddot[comm.Reddot10101] = tf + case comm.Reddot10102: tf, _ := this.modelTask.noReceiveTask(session.GetUserId(), comm.TASK_WEEKLY) - reddot[comm.Reddot2] = tf + reddot[comm.Reddot10102] = tf - case comm.Reddot4: + case comm.Reddot10103: tf, _ := this.modelTask.noReceiveTask(session.GetUserId(), comm.TASK_ACHIEVE) - reddot[comm.Reddot4] = tf - case comm.Reddot27: + reddot[comm.Reddot10103] = tf + case comm.Reddot10201: tf, _ := this.modelTaskActive.noReceiveTaskActive(session.GetUserId(), comm.TASK_DAILY) - reddot[comm.Reddot27] = tf - case comm.Reddot28: + reddot[comm.Reddot10201] = tf + case comm.Reddot10301: tf, _ := this.modelTaskActive.noReceiveTaskActive(session.GetUserId(), comm.TASK_WEEKLY) - reddot[comm.Reddot28] = tf + reddot[comm.Reddot10301] = tf } } return diff --git a/modules/viking/module.go b/modules/viking/module.go index 7b65a55a9..d16ee5938 100644 --- a/modules/viking/module.go +++ b/modules/viking/module.go @@ -180,8 +180,8 @@ func (this *Viking) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (r reddot = make(map[comm.ReddotType]bool) for _, v := range rid { switch v { - case comm.Reddot31: - reddot[comm.Reddot31] = this.modelViking.checkReddot31(session) + case comm.Reddot13102: + reddot[comm.Reddot13102] = this.modelViking.checkReddot31(session) break } From cb2bf7985e5eee314b38ed32f6db2f3dd2a9ee0a Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Wed, 14 Jun 2023 15:17:52 +0800 Subject: [PATCH 4/4] update --- comm/const.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/comm/const.go b/comm/const.go index 9090ee8a1..269af9297 100644 --- a/comm/const.go +++ b/comm/const.go @@ -456,10 +456,6 @@ const ( Reddot25 ReddotType = 10025 //熊猫武馆----可领取奖励红点 Reddot33 ReddotType = 10033 //附魔副本 有挑战次数 - // 铁匠铺 - Reddot17102 ReddotType = 17102 // 铁匠铺手册台 - Reddot17106 ReddotType = 17106 // 铁匠铺手册台收藏家奖励上 - Reddot17107 ReddotType = 17107 // 铁匠铺手册台收藏家奖励按钮上 ) type TaskType int32