This commit is contained in:
liwei1dao 2022-11-08 14:01:44 +08:00
commit 349aef1c94
32 changed files with 1601 additions and 135 deletions

View File

@ -48,5 +48,15 @@
"n": 20000
}
]
},
{
"index": "unified_reward",
"var": [
{
"a": "attr",
"t": "gold",
"n": 20000
}
]
}
]

View File

@ -0,0 +1,65 @@
[
{
"id": 101,
"type": 1,
"data1": 25001,
"data2": 40,
"data3": 5,
"data4": 0,
"data5": 0
},
{
"id": 102,
"type": 2,
"data1": 3,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 103,
"type": 3,
"data1": 2,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 104,
"type": 4,
"data1": 14007,
"data2": 10,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 105,
"type": 5,
"data1": 25001,
"data2": 2,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 106,
"type": 6,
"data1": 25004,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 107,
"type": 7,
"data1": 1,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
}
]

659
bin/json/game_tasktype.json Normal file
View File

@ -0,0 +1,659 @@
[
{
"id": 1,
"datatype": 0,
"desc": "英雄指定",
"data1": "英雄ID",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 2,
"datatype": 0,
"desc": "主线之内触发了剧情Id",
"data1": "剧情ID",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 3,
"datatype": 0,
"desc": "每日任务",
"data1": "任务ID",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 4,
"datatype": 0,
"desc": "指定英雄的等级限制",
"data1": "英雄ID",
"data2": "填写英雄需要的等级",
"data3": "",
"data4": ""
},
{
"id": 5,
"datatype": 0,
"desc": "指定英雄的装备数量",
"data1": "英雄ID",
"data2": "填写装备数量",
"data3": "",
"data4": ""
},
{
"id": 6,
"datatype": 0,
"desc": "指定英雄的星级",
"data1": "英雄ID",
"data2": "填写星级",
"data3": "",
"data4": ""
},
{
"id": 7,
"datatype": 0,
"desc": "日常登录一次",
"data1": "日常登录次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 8,
"datatype": 0,
"desc": "累计登陆xx天",
"data1": "登录天数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 9,
"datatype": 0,
"desc": "连续登陆xx天",
"data1": "登录天数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 10,
"datatype": 0,
"desc": "拥有xx个好友",
"data1": "拥有的好友数量",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 11,
"datatype": 0,
"desc": "赠送X次友情点",
"data1": "赠送次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 12,
"datatype": 0,
"desc": "使用好友助战英雄xx次",
"data1": "使用好友助战英雄次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 13,
"datatype": 0,
"desc": "更换X次助战英雄",
"data1": "更换次数数量",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 14,
"datatype": 0,
"desc": "累计xx次普通招募",
"data1": "累计招募次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 15,
"datatype": 0,
"desc": "累计xx次阵营招募",
"data1": "累计招募次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 16,
"datatype": 0,
"desc": "招募获得xx品质英雄xx个",
"data1": "获得英雄数量",
"data2": "品质",
"data3": "",
"data4": ""
},
{
"id": 17,
"datatype": 0,
"desc": "普通招募十连获得xx个以上xx星英雄",
"data1": "获得个数",
"data2": "星级",
"data3": "",
"data4": ""
},
{
"id": 18,
"datatype": 0,
"desc": "xx次普通招募",
"data1": "招募次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 19,
"datatype": 0,
"desc": "xx次阵营招募",
"data1": "招募次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 20,
"datatype": 0,
"desc": "用户等级达到xx级",
"data1": "等级",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 21,
"datatype": 0,
"desc": "英雄合成xx次",
"data1": "合成次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 22,
"datatype": 0,
"desc": "合成xx英雄",
"data1": "英雄ID",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 23,
"datatype": 0,
"desc": "拥有xx个xx星级的xx等级英雄",
"data1": "拥有数量",
"data2": "",
"data3": "等级",
"data4": ""
},
{
"id": 24,
"datatype": 0,
"desc": "为任意英雄提升xx次等级",
"data1": "提升等级次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 25,
"datatype": 0,
"desc": "xx名xx英雄升至xx星",
"data1": "共计要升几名英雄",
"data2": "英雄ID",
"data3": "星级",
"data4": ""
},
{
"id": 26,
"datatype": 0,
"desc": "xx名英雄从三星升四星",
"data1": "升星的英雄数量",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 27,
"datatype": 0,
"desc": "xx名英雄从四星升五星",
"data1": "升星的英雄数量",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 28,
"datatype": 0,
"desc": "xx名英雄从五星升六星",
"data1": "升星的英雄数量",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 29,
"datatype": 0,
"desc": "拥有xx个xx级及以上的【xx】英雄",
"data1": "拥有数量",
"data2": "等级",
"data3": "英雄ID",
"data4": ""
},
{
"id": 30,
"datatype": 0,
"desc": "获得xx个品质为xx的英雄",
"data1": "获得数量",
"data2": "品质",
"data3": "",
"data4": ""
},
{
"id": 31,
"datatype": 0,
"desc": "获得xx个品质为xx以上的英雄",
"data1": "获得数量",
"data2": "品质",
"data3": "",
"data4": ""
},
{
"id": 32,
"datatype": 0,
"desc": "xx个品质为xx的英雄升到xx级",
"data1": "满足条件的英雄数量",
"data2": "满足条件的英雄品质",
"data3": "需要升到的等级",
"data4": ""
},
{
"id": 33,
"datatype": 0,
"desc": "xx个品质为xx以及以上英雄升到xx级",
"data1": "满足条件的英雄数量",
"data2": "满足条件的英雄品质",
"data3": "需要升到的等级",
"data4": ""
},
{
"id": 34,
"datatype": 0,
"desc": "xx个英雄觉醒达到xx阶段",
"data1": "英雄数量",
"data2": "觉醒阶段",
"data3": "",
"data4": ""
},
{
"id": 35,
"datatype": 0,
"desc": "xx英雄觉醒达到xx阶段",
"data1": "觉醒阶段",
"data2": "英雄ID",
"data3": "",
"data4": ""
},
{
"id": 36,
"datatype": 0,
"desc": "xx位xx品质xx职业英雄xx阵营觉醒达到xx阶段",
"data1": "数量",
"data2": "英雄品质",
"data3": "指定职业",
"data4": "指定阵营"
},
{
"id": 37,
"datatype": 0,
"desc": "xx名xx品质英雄满共鸣、等级、觉醒",
"data1": "数量",
"data2": "英雄品质",
"data3": "",
"data4": ""
},
{
"id": 38,
"datatype": 0,
"desc": "xx英雄满级、共鸣、觉醒至最高状态",
"data1": "数量",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 39,
"datatype": 0,
"desc": "累计英雄共鸣xx次",
"data1": "共鸣次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 40,
"datatype": 0,
"desc": "xx个英雄共鸣满xx次",
"data1": "英雄数量",
"data2": "共鸣次数",
"data3": "",
"data4": ""
},
{
"id": 41,
"datatype": 0,
"desc": "xx名英雄穿戴xx件xx星级的装备",
"data1": "英雄数量",
"data2": "装备数量",
"data3": "指定星级",
"data4": ""
},
{
"id": 42,
"datatype": 0,
"desc": "xx名英雄穿戴xx件xx等级的装备",
"data1": "英雄数量",
"data2": "装备数量",
"data3": "指定等级",
"data4": ""
},
{
"id": 43,
"datatype": 0,
"desc": "将xx件装备强化至xx级",
"data1": "数量",
"data2": "等级",
"data3": "",
"data4": ""
},
{
"id": 44,
"datatype": 0,
"desc": "任意装备强化到xx级",
"data1": "强化等级",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 45,
"datatype": 0,
"desc": "将xx件xx星【xx】套装装备强化至xx级",
"data1": "数量",
"data2": "指定装备星级",
"data3": "指定套装",
"data4": "强化等级"
},
{
"id": 46,
"datatype": 0,
"desc": "为xx名英雄穿戴完整xx星【xx】套装装备",
"data1": "数量",
"data2": "指定装备星级",
"data3": "指定套装",
"data4": ""
},
{
"id": 47,
"datatype": 0,
"desc": "累计强化装备成功xx次",
"data1": "数量",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 48,
"datatype": 0,
"desc": "xx次xx星的二件套装备强化至xx并穿戴",
"data1": "次数",
"data2": "指定装备星级",
"data3": "强化等级",
"data4": ""
},
{
"id": 49,
"datatype": 0,
"desc": "xx次xx星的四件套装备强化至xx并穿戴",
"data1": "次数",
"data2": "指定装备星级",
"data3": "强化等级",
"data4": ""
},
{
"id": 50,
"datatype": 0,
"desc": "获得xx星以上装备xx件",
"data1": "数量",
"data2": "指定装备星级",
"data3": "",
"data4": ""
},
{
"id": 51,
"datatype": 0,
"desc": "在铁匠铺中获得xx件xx星装备",
"data1": "数量",
"data2": "指定装备品质",
"data3": "",
"data4": ""
},
{
"id": 52,
"datatype": 0,
"desc": "xx英雄提升xx次技能等级",
"data1": "提升技能次数",
"data2": "指定英雄",
"data3": "",
"data4": ""
},
{
"id": 53,
"datatype": 0,
"desc": "技能升级累计xx次",
"data1": "累计提升次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 54,
"datatype": 0,
"desc": "x名卡牌角色技能全满级",
"data1": "满技能卡片角色数量",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 55,
"datatype": 0,
"desc": "xx品质英雄提升xx次技能等级",
"data1": "次数",
"data2": "指定品质",
"data3": "",
"data4": ""
},
{
"id": 56,
"datatype": 0,
"desc": "拥有xx名技能升级xx次的xx职业英雄",
"data1": "数量",
"data2": "技能升级次数",
"data3": "指定职业",
"data4": ""
},
{
"id": 57,
"datatype": 0,
"desc": "xx名英雄技能满级",
"data1": "数量",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 58,
"datatype": 0,
"desc": "通关任意普通爬塔层数",
"data1": "次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 59,
"datatype": 0,
"desc": "通关普通爬塔xx层",
"data1": "层数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 60,
"datatype": 0,
"desc": "任意主线副本通关X次",
"data1": "次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 61,
"datatype": 0,
"desc": "通关主线关卡xx",
"data1": "关卡ID",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 62,
"datatype": 0,
"desc": "世界聊天发言xx次",
"data1": "次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 63,
"datatype": 0,
"desc": "日常任务活跃度达到xx",
"data1": "活跃值",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 64,
"datatype": 0,
"desc": "任意商品购买xx次",
"data1": "次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 65,
"datatype": 0,
"desc": "在商店购买xx商品xx件",
"data1": "数量",
"data2": "道具ID",
"data3": "",
"data4": ""
},
{
"id": 66,
"datatype": 0,
"desc": "xx商店购买任意商品xx次",
"data1": "数量",
"data2": "商店ID",
"data3": "",
"data4": ""
},
{
"id": 67,
"datatype": 0,
"desc": "商店购物消耗xx货币xx个",
"data1": "数量",
"data2": "货币ID",
"data3": "",
"data4": ""
},
{
"id": 68,
"datatype": 0,
"desc": "任意渠道消耗xx金币",
"data1": "金币消耗的数量",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 69,
"datatype": 0,
"desc": "与其他玩家切磋xx次",
"data1": "切磋次数",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 70,
"datatype": 0,
"desc": "通关随机任务XX关卡",
"data1": "通关的关卡ID",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 71,
"datatype": 0,
"desc": "主角等级达到X级",
"data1": "等级",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 72,
"datatype": 0,
"desc": "完成一次创角",
"data1": "",
"data2": "",
"data3": "",
"data4": ""
},
{
"id": 73,
"datatype": 0,
"desc": "完成一段剧情表内的对话",
"data1": "",
"data2": "",
"data3": "",
"data4": ""
}
]

View File

@ -0,0 +1,325 @@
[
{
"key": 10100,
"lock": 1,
"ontxe": 0,
"id_after": 10101,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "阿宝组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 0,
"overtips": 1,
"reword": []
},
{
"key": 10101,
"lock": 1,
"ontxe": 10100,
"id_after": 10102,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "邦尼兔组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10102,
"lock": 1,
"ontxe": 10101,
"id_after": 10103,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "波比组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10103,
"lock": 1,
"ontxe": 10102,
"id_after": 10104,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "阿宝组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10104,
"lock": 1,
"ontxe": 10103,
"id_after": 10105,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "阿宝组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10106,
"lock": 1,
"ontxe": 10105,
"id_after": 10107,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "邦尼兔组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10107,
"lock": 1,
"ontxe": 10106,
"id_after": 10108,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "阿宝组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10108,
"lock": 1,
"ontxe": 10107,
"id_after": 10109,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "",
"getafter_event": [
"6",
"跳转铁匠铺3D场景"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10109,
"lock": 1,
"ontxe": 10108,
"id_after": 10110,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "阿宝组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10110,
"lock": 1,
"ontxe": 10109,
"id_after": 10111,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "",
"getafter_event": [
"6",
"跳转美食馆外面的3D场景"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10111,
"lock": 1,
"ontxe": 10110,
"id_after": 10112,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "瓜哥组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10112,
"lock": 1,
"ontxe": 10111,
"id_after": 10113,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "瓜哥组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10113,
"lock": 1,
"ontxe": 10112,
"id_after": 10114,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "",
"getafter_event": [
"6",
"跳转美食馆内3D场景"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10114,
"lock": 1,
"ontxe": 10113,
"id_after": 10115,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "",
"getafter_event": [
"3",
"播放timeline"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10115,
"lock": 1,
"ontxe": 10114,
"id_after": 10116,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "阿宝组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10116,
"lock": 1,
"ontxe": 10115,
"id_after": 10117,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "",
"getafter_event": [
"6",
"开启书籍玩法"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
},
{
"key": 10117,
"lock": 1,
"ontxe": 10116,
"id_after": 10118,
"des": 2,
"icon": "",
"task_name": "",
"task_display": "",
"npc": "阿宝组件名",
"getafter_event": [
"2",
"20"
],
"completetask": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
}
]

View File

@ -72,7 +72,8 @@ const (
ModulePay core.M_Modules = "pay" //支付
ModuleAlliance core.M_Modules = "alliance" //联盟学院
ModulePrivilege core.M_Modules = "privilege" //特权
ModuleGrowtask core.M_Modules = "growtask" //成长任务
ModuleGrowtask core.M_Modules = "growtask" //成长任务
ModuleWorldtask core.M_Modules = "worldtask" //世界任务
)
//数据表名定义处
@ -196,6 +197,8 @@ const (
TableSign = "sign"
// 成长任务
TableGrowtask = "growtask"
// 世界任务
TableWorldtask = "worldtask"
)
//RPC服务接口定义处

View File

@ -13,6 +13,7 @@ const (
PagodaChallengeOverResp = "challengeover"
PagodaGetRewardResp = "getreward"
PagodaRankListResp = "ranklist"
PagodaActivateResp = "activate"
)
type apiComp struct {

View File

@ -0,0 +1,56 @@
package pagoda
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) ActivateCheck(session comm.IUserSession, req *pb.PagodaActivateReq) (code pb.ErrorCode) {
return
}
///获取主线关卡信息
func (this *apiComp) Activate(session comm.IUserSession, req *pb.PagodaActivateReq) (code pb.ErrorCode, data proto.Message) {
var (
list *pb.DBPagoda
)
this.ActivateCheck(session, req)
expand, err := this.module.ModuleUser.GetUserExpand(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
if expand.CompletePagoda { // 普通塔
season, _ := this.module.modelSeasonPagoda.getSeasonPagodaList(session.GetUserId())
if season.Id == "" {
season.Id = primitive.NewObjectID().Hex()
season.Uid = session.GetUserId()
season.PagodaId = 0 // 初始数据0层
if conn, err := db.Cross(); err == nil {
rst := conn.Mgo.FindOne(comm.TableServerData, bson.M{})
server := &pb.DBServerData{}
rst.Decode(server)
season.Type = server.SeasonType
}
this.module.modelSeasonPagoda.addNewSeasonPagoda(session.GetUserId(), season)
}
list = &pb.DBPagoda{
Id: season.Id,
Uid: season.Uid,
PagodaId: season.PagodaId,
Reward: season.Reward,
Type: season.Type,
}
}
session.SendMsg(string(this.module.GetType()), PagodaActivateResp, &pb.PagodaActivateResp{Data: list})
return
}

View File

@ -7,7 +7,6 @@ import (
"strconv"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"google.golang.org/protobuf/proto"
)
@ -24,10 +23,9 @@ func (this *apiComp) ChallengeOverCheck(session comm.IUserSession, req *pb.Pagod
///挑战主线关卡
func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChallengeOverReq) (code pb.ErrorCode, data proto.Message) {
var (
mapData map[string]interface{}
pagoda *pb.DBPagoda
seasonPagoda *pb.DBSeasonPagoda
costTime int32 // 本次战斗消耗的时间
mapData map[string]interface{}
pagoda *pb.DBPagoda
costTime int32 // 本次战斗消耗的时间
)
mapData = make(map[string]interface{}, 0)
code = this.ChallengeOverCheck(session, req)
@ -58,12 +56,12 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
}
} else {
// 塔数据校验
seasonPagoda, err = this.module.modelSeasonPagoda.getSeasonPagodaList(session.GetUserId())
pagoda, err = this.module.modelSeasonPagoda.getSeasonPagodaList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_PagodaNotFound
return
}
if seasonPagoda.Type != req.PagodaType || conf.LayerNum-1 != seasonPagoda.PagodaId {
if pagoda.Type != req.PagodaType || conf.LayerNum-1 != pagoda.PagodaId {
code = pb.ErrorCode_PagodaLevlErr // 挑战关卡数据不匹配
return
}
@ -119,32 +117,15 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
}
// 普通塔通关了
Nomalcfg := this.module.configure.GetPagodaConfigData(comm.PagodaType, pagoda.PagodaId+1)
if Nomalcfg == nil { // 创建赛季塔数据
if Nomalcfg == nil {
// 修改expand 数据
update := map[string]interface{}{
"completePagoda": true,
}
this.module.ModuleUser.ChangeUserExpand(session.GetUserId(), update)
seasonPagoda := &pb.DBSeasonPagoda{}
seasonPagoda.Id = primitive.NewObjectID().Hex()
seasonPagoda.Uid = session.GetUserId()
seasonPagoda.PagodaId = 0 // 初始数据0层
if conn, err := db.Cross(); err == nil {
rst := conn.Mgo.FindOne(comm.TableServerData, bson.M{})
server := &pb.DBServerData{}
rst.Decode(server)
seasonPagoda.Type = server.SeasonType // 动态获取塔数据
}
this.module.modelSeasonPagoda.addNewSeasonPagoda(session.GetUserId(), seasonPagoda)
// 推送新的
pagoda.PagodaId = seasonPagoda.PagodaId
pagoda.Type = seasonPagoda.Type
session.SendMsg(string(this.module.GetType()), PagodaGetListResp, &pb.PagodaGetListResp{Data: pagoda})
}
} else {
seasonPagoda.PagodaId = conf.LayerNum
pagoda.PagodaId = conf.LayerNum
mapData["pagodaId"] = conf.LayerNum
// 记录爬塔明细数据
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
@ -164,8 +145,8 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
newData := &pb.DBPagodaRecord{
Id: primitive.NewObjectID().Hex(),
Uid: session.GetUserId(),
PagodaId: seasonPagoda.PagodaId,
Type: seasonPagoda.Type,
PagodaId: pagoda.PagodaId,
Type: pagoda.Type,
Nickname: userinfo.Name,
Icon: "", // icon 暂无
Lv: userinfo.Lv,
@ -175,24 +156,16 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
// 数据写到跨服中
conn_, err := db.Cross()
dbModel := db.NewDBModel(comm.TableSeasonRecord, time.Hour, conn_)
//if err = dbModel.GetList(uid, newData); err == nil {
dbModel.AddList(uid, newData.Id, newData)
this.module.SetPagodaRankList("pagodaList"+strconv.Itoa(int(newData.PagodaId)), newData.CostTime, newData.Id)
//}
dbModelTable := db.NewDBModel(comm.TableSeasonPagoda, time.Hour, conn_)
if err = dbModelTable.Get(session.GetUserId(), seasonPagoda); err == nil {
if err = dbModelTable.Get(session.GetUserId(), pagoda); err == nil {
dbModelTable.Change(session.GetUserId(), mapData) // 修改跨服数据
this.module.SetPagodaRankList("pagodaSeasonRank", seasonPagoda.PagodaId<<8+costTime, session.GetUserId())
this.module.SetPagodaRankList("pagodaSeasonRank", pagoda.PagodaId<<8+costTime, session.GetUserId())
}
}
code = this.module.ModifySeasonPagodaData(session.GetUserId(), mapData)
pagoda = &pb.DBPagoda{
Id: seasonPagoda.Id,
Uid: seasonPagoda.Uid,
PagodaId: seasonPagoda.PagodaId,
Reward: seasonPagoda.Reward,
Type: seasonPagoda.Type,
}
session.SendMsg(string(this.module.GetType()), PagodaChallengeOverResp, &pb.PagodaChallengeOverResp{Data: pagoda})
}

View File

@ -3,9 +3,7 @@ package pagoda
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"google.golang.org/protobuf/proto"
)
@ -27,8 +25,8 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.PagodaGetListReq
code = pb.ErrorCode_DBError
return
}
list, _ = this.module.modelPagoda.getPagodaList(session.GetUserId())
if !expand.CompletePagoda { // 普通塔
list, _ = this.module.modelPagoda.getPagodaList(session.GetUserId())
if list == nil { // redis没有数据
list = &pb.DBPagoda{}
list.Id = primitive.NewObjectID().Hex()
@ -41,24 +39,9 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.PagodaGetListReq
} else {
season, _ := this.module.modelSeasonPagoda.getSeasonPagodaList(session.GetUserId())
if season.Id == "" {
season.Id = primitive.NewObjectID().Hex()
season.Uid = session.GetUserId()
season.PagodaId = 0 // 初始数据0层
if conn, err := db.Cross(); err == nil {
rst := conn.Mgo.FindOne(comm.TableServerData, bson.M{})
server := &pb.DBServerData{}
rst.Decode(server)
season.Type = server.SeasonType
}
this.module.modelSeasonPagoda.addNewSeasonPagoda(session.GetUserId(), season)
}
list = &pb.DBPagoda{
Id: season.Id,
Uid: season.Uid,
PagodaId: season.PagodaId,
Reward: season.Reward,
Type: season.Type,
list.Complete = true
} else {
list = season
}
}

View File

@ -80,7 +80,7 @@ func (this *ModelRank) getPagodaRankList(uid string) []*pb.DBPagodaRecord {
}
// 插入新的排行数据
func (this *ModelRank) addPagodaRankList(session comm.IUserSession, data *pb.DBSeasonPagoda, Leadpos int32, line []*pb.LineUp, costTime int32) {
func (this *ModelRank) addPagodaRankList(session comm.IUserSession, data *pb.DBPagoda, Leadpos int32, line []*pb.LineUp, costTime int32) {
uid := session.GetUserId()
var (
dbModel *db.DBModel

View File

@ -32,8 +32,8 @@ func (this *ModelSeasonPagoda) Init(service core.IService, module core.IModule,
}
// 获取爬塔信息
func (this *ModelSeasonPagoda) getSeasonPagodaList(uid string) (result *pb.DBSeasonPagoda, err error) {
result = &pb.DBSeasonPagoda{}
func (this *ModelSeasonPagoda) getSeasonPagodaList(uid string) (result *pb.DBPagoda, err error) {
result = &pb.DBPagoda{}
if err = this.Get(uid, result); err != nil {
return
@ -48,7 +48,7 @@ func (this *ModelSeasonPagoda) modifySeasonPagodaDataByObjId(uid string, data ma
}
// 创建一个新的赛季塔数据
func (this *ModelSeasonPagoda) addNewSeasonPagoda(uId string, data *pb.DBSeasonPagoda) (err error) {
func (this *ModelSeasonPagoda) addNewSeasonPagoda(uId string, data *pb.DBPagoda) (err error) {
//err = this.InsertModelLogs(this.TableName, uId, []interface{}{data}) // 不需要经过redis
if err = this.Add(uId, data); err != nil {
this.module.Errorf("err:%v", err)

View File

@ -10,7 +10,7 @@ import (
const (
gameRtask = "game_rdtask.json"
gameRtaskChoose = "game_rdtaskchoose.json"
gameRtaskCondi = "game_rdtaskcondi.json"
gameTaskCond = "game_taskcond.json"
gameRtaskSide = "game_rdtaskside.json"
gameRtaskBattle = "game_rdtaskbattle.json"
)
@ -24,7 +24,7 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = this.LoadMultiConfigure(map[string]interface{}{
gameRtask: cfg.NewGameRdtask,
gameRtaskChoose: cfg.NewGameRdtaskChoose,
gameRtaskCondi: cfg.NewGameRdtaskCondi,
gameTaskCond: cfg.NewGameTaskCond,
gameRtaskSide: cfg.NewGameRdtaskSide,
gameRtaskBattle: cfg.NewGameRdtaskBattle,
})
@ -52,7 +52,7 @@ func (this *configureComp) getRtaskCondiCfg() (data *cfg.GameRdtaskCondi, err er
v interface{}
ok bool
)
if v, err = this.GetConfigure(gameRtaskCondi); err != nil {
if v, err = this.GetConfigure(gameTaskCond); err != nil {
return
} else {
if data, ok = v.(*cfg.GameRdtaskCondi); !ok {

View File

@ -53,9 +53,9 @@ func (this *apiComp) Mine(session comm.IUserSession, req *pb.SociatyMineReq) (co
// 获取会长
master := this.module.modelSociaty.getMasterInfo(sociaty)
if master != nil {
//判断当前玩家是否是会长
if master.Uid == uid { //会长
this.module.modelSociaty.extendJob(uid, sociaty)
if err := this.module.modelSociaty.extendJob(master.Uid, sociaty); err == nil {
// 获取新的会长
master = this.module.modelSociaty.getMasterInfo(sociaty)
}
}
rsp.Sociaty = sociaty

View File

@ -63,7 +63,7 @@ func (this *apiComp) Quit(session comm.IUserSession, req *pb.SociatyQuitReq) (co
Uid: uid,
SociatyId: sociaty.Id,
}
if err := session.SendMsg(string(this.module.GetType()), SociatySubTypeDismiss, rsp); err != nil {
if err := session.SendMsg(string(this.module.GetType()), SociatySubTypeQuit, rsp); err != nil {
code = pb.ErrorCode_SystemError
}
return

View File

@ -569,22 +569,26 @@ func (this *ModelSociaty) accuse(sociaty *pb.DBSociaty) error {
// srcMasterId 原会长ID
func (this *ModelSociaty) extendJob(srcMasterId string, sociaty *pb.DBSociaty) error {
if sociaty.AccuseTime != 0 {
ggd := this.moduleSociaty.configure.GetGlobalConf()
if ggd == nil {
return errors.New("config not found")
}
now := time.Now().Unix()
//48小时内终止弹劾
if now-sociaty.AccuseTime < 48*3600 {
//终止弹劾
if now-sociaty.AccuseTime < int64(ggd.GuildImpeachmentCountDown*3600) {
update := map[string]interface{}{
"accuseTime": 0,
}
return this.updateSociaty(sociaty.Id, update)
} else {
//会长降为普通成员
if err := this.settingJob(srcMasterId, pb.SociatyJob_MEMBER, sociaty); err != nil {
return err
}
//选举新会长
if err := this.electNewMaster(srcMasterId, sociaty); err != nil {
return err
}
//会长降为普通成员
if err := this.settingJob(srcMasterId, pb.SociatyJob_MEMBER, sociaty); err != nil {
return err
}
}
}
return nil
@ -602,7 +606,7 @@ func (this *ModelSociaty) electNewMaster(srcMasterId string, sociaty *pb.DBSocia
vpIds = append(vpIds, m)
} else if m.Job == pb.SociatyJob_ADMIN {
aIds = append(aIds, m)
} else {
} else if m.Job == pb.SociatyJob_MEMBER {
mIds = append(mIds, m)
}
}
@ -649,7 +653,7 @@ func (this *ModelSociaty) electNewMaster(srcMasterId string, sociaty *pb.DBSocia
}
if len(mIds) > 0 {
return elect(aIds)
return elect(mIds)
}
return nil
}

View File

@ -62,7 +62,7 @@ func (this *SeasonPagoda) Start() (err error) {
return
}
func (this *SeasonPagoda) CreatTestData(index int) {
seasonPagoda := &pb.DBSeasonPagoda{}
seasonPagoda := &pb.DBPagoda{}
seasonPagoda.Id = primitive.NewObjectID().Hex()
seasonPagoda.Uid = "dfmxf_634f8f28609d489230fb40fa"
@ -166,49 +166,3 @@ func (this *SeasonPagoda) TimerSeasonOver() {
func (this *SeasonPagoda) TimerSeasonStar() {
this.module.Debugf("TimerSeasonStar:%d", time.Now().Unix())
}
// 测试用 后面删
func (this *SeasonPagoda) TestFunc() {
// newData1 := &pb.DBSeasonPagoda{
// Id: primitive.NewObjectID().Hex(),
// Uid: "sdsdassd",
// PagodaId: 1,
// Reward: map[int32]bool{},
// Type: 201,
// }
// if conn, err := db.Cross(); err == nil {
// rst, err := conn.Mgo.InsertOne(comm.TableSeasonPagoda, newData)
// fmt.Printf("%v,%v", rst, err)
// }
// _data := this.GetSeasonLoop(2)
// this.module.Debugf("%v", _data)
// for i := 0; i < 10000; i++ {
// this.CreatTestData(i)
// }
// if conn, err := db.Cross(); err == nil {
// rst := conn.Mgo.FindOne(comm.TableServerData, bson.M{})
// server := &pb.DBServerData{}
// rst.Decode(server)
// fmt.Printf("%v", server)
// }
// newData := &pb.DBPagodaRecord{
// Id: primitive.NewObjectID().Hex(),
// Uid: "sdsd",
// PagodaId: 1,
// Type: 2,
// Nickname: "userinfo.Name",
// Icon: "", // icon 暂无
// Lv: 12,
// CostTime: 12000,
// }
// // 数据写到跨服中
// if !db.IsCross() {
// if conn, err := db.Cross(); err == nil {
// conn.Mgo.InsertOne(comm.TableSeasonRecord, newData)
// }
// }
//this.TimerSeasonOver()
}

View File

@ -79,16 +79,20 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.TrollGetListReq)
if trolltrain.Circle != c {
trolltrain.SurpriseID = make(map[int32]int32, 0)
n, _ := rand.Int(rand.Reader, big.NewInt(int64(trainNum)))
n2, _ := rand.Int(rand.Reader, big.NewInt(int64(maxCoefficient-1))) //算的是下标所以-1
goods := this.configure.GetTrollAllGoods()
n2, _ := rand.Int(rand.Reader, big.NewInt(int64(len(goods)-1))) //算的是下标所以-1
trolltrain.SurpriseID[int32(n.Int64())+1] = int32(n2.Int64()) + 1
update["surpriseID"] = trolltrain.SurpriseID
trolltrain.Circle = c
update["circle"] = trolltrain.Circle
}
leftTime = (int32(t) % circletime)
// 循环次数
index += circleCount * trainNum // 计算火车的位置信息
for _, v := range sz {
for pos, v := range sz {
if pos < int(trolltrain.TarinPos-1) { // 起始位置
continue
}
if leftTime <= v {
trolltrain.RefreshTime = time.Now().Unix()
trolltrain.TarinPos += index

View File

@ -87,7 +87,9 @@ func (this *Troll) TrollAI(session comm.IUserSession, troll *pb.DBTrollTrain) (c
}
iCount := this.configure.GetTrollRule(comm.TrollAIBuyCount)
for index = 0; ; index++ {
if index < troll.TarinPos-1 { // 起始位置
continue
}
index := int32(index) % trainNum
troll.RefreshTime += int64(sz[index])

View File

@ -145,6 +145,7 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
// 每日签到检测
this.module.modelSign.checkResetSignData(session)
this.Sign(session, &pb.UserSignReq{})
//推送登录公告
this.chat.SendSysChatToUser(session, comm.UserLoginNotice, 0)
mail := &pb.DBMailData{

View File

@ -15,6 +15,7 @@ func (this *apiComp) SignCheck(session comm.IUserSession, req *pb.UserSignReq) (
//登录
func (this *apiComp) Sign(session comm.IUserSession, req *pb.UserSignReq) (code pb.ErrorCode, data proto.Message) {
this.module.modelSign.checkResetSignData(session)
code = this.module.modelSign.checkResetSignData(session)
return
}

View File

@ -78,11 +78,12 @@ func (this *ModelSign) updateSignData(uid string, sign *pb.DBSign) (err error) {
}
// 检测是否达到重置日期
func (this *ModelSign) checkResetSignData(session comm.IUserSession) {
func (this *ModelSign) checkResetSignData(session comm.IUserSession) (code pb.ErrorCode) {
var (
update map[string]interface{}
bReward bool
)
update = make(map[string]interface{}, 0)
if sign, err := this.module.modelSign.GetUserSign(session.GetUserId()); err == nil {
start, _ := utils.GetMonthStartEnd()
@ -114,8 +115,19 @@ func (this *ModelSign) checkResetSignData(session comm.IUserSession) {
}
}
_data := this.module.configure.GetSignConf(sign.Cid, sign.Group)
if bReward && _data != nil { // 发奖
this.module.DispenseRes(session, _data.Loopgift, true)
if _data != nil { // 发奖
if bReward {
this.module.DispenseRes(session, _data.Loopgift, true)
}
} else {
globalCnf := this.module.configure.GetGlobalAtnConf("unified_reward") // 获取重置消耗
if globalCnf == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
if bReward {
this.module.DispenseRes(session, globalCnf.Var, true) // 发放通用奖励
}
}
session.SendMsg(string(this.module.GetType()), "sign", &pb.UserSignResp{
Data: sign,

19
modules/worldtask/api.go Normal file
View File

@ -0,0 +1,19 @@
package worldtask
import (
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
type apiComp struct {
modules.MCompGate
service base.IRPCXService
module *Worldtask
}
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
_ = this.MCompGate.Init(service, module, comp, options)
this.module = module.(*Worldtask)
return
}

View File

@ -0,0 +1,40 @@
package worldtask
import (
"fmt"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
cfg "go_dreamfactory/sys/configure/structs"
)
const (
gameWorldTask = "game_worldtask.json"
)
type configureComp struct {
modules.MCompConfigure
}
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompConfigure.Init(service, module, comp, options)
err = this.LoadMultiConfigure(map[string]interface{}{
gameWorldTask: cfg.NewGameWorldTask,
})
return
}
func (this *configureComp) getWorldtaskCfg() (data *cfg.GameWorldTask, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(gameWorldTask); err != nil {
return
} else {
if data, ok = v.(*cfg.GameWorldTask); !ok {
err = fmt.Errorf("%T is *cfg.GameWorldTask", v)
return
}
}
return
}

View File

@ -0,0 +1,19 @@
package worldtask
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
type ModelWorldtask struct {
modules.MCompModel
moduleWorldtask *Worldtask
}
func (this *ModelWorldtask) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompModel.Init(service, module, comp, options)
this.TableName = comm.TableWorldtask
this.moduleWorldtask = module.(*Worldtask)
return
}

View File

@ -0,0 +1,26 @@
package worldtask
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
type Worldtask struct {
modules.ModuleBase
api *apiComp
service base.IRPCXService
configure *configureComp
}
func NewModule() core.IModule {
return &Worldtask{}
}
func (this *Worldtask) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
return
}
func (this *Worldtask) GetType() core.M_Modules {
return comm.ModuleWorldtask
}

View File

@ -35,6 +35,7 @@ import (
"go_dreamfactory/modules/troll"
"go_dreamfactory/modules/user"
"go_dreamfactory/modules/viking"
"go_dreamfactory/modules/worldtask"
"go_dreamfactory/pb"
"go_dreamfactory/services"
"go_dreamfactory/sys/db"
@ -101,6 +102,7 @@ func main() {
pay.NewModule(),
//privilege.NewModule(),
growtask.NewModule(),
worldtask.NewModule(),
)
}

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameTaskCond struct {
_dataMap map[int32]*GameTaskCondData
_dataList []*GameTaskCondData
}
func NewGameTaskCond(_buf []map[string]interface{}) (*GameTaskCond, error) {
_dataList := make([]*GameTaskCondData, 0, len(_buf))
dataMap := make(map[int32]*GameTaskCondData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameTaskCondData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameTaskCond{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameTaskCond) GetDataMap() map[int32]*GameTaskCondData {
return table._dataMap
}
func (table *GameTaskCond) GetDataList() []*GameTaskCondData {
return table._dataList
}
func (table *GameTaskCond) Get(key int32) *GameTaskCondData {
return table._dataMap[key]
}

View File

@ -0,0 +1,47 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameTaskCondData struct {
Id int32
Type int32
Data1 int32
Data2 int32
Data3 int32
Data4 int32
Data5 int32
}
const TypeId_GameTaskCondData = -1719868659
func (*GameTaskCondData) GetTypeId() int32 {
return -1719868659
}
func (_v *GameTaskCondData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = 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 _tempNum_ float64; if _tempNum_, _ok_ = _buf["data1"].(float64); !_ok_ { err = errors.New("data1 error"); return }; _v.Data1 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data2"].(float64); !_ok_ { err = errors.New("data2 error"); return }; _v.Data2 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data3"].(float64); !_ok_ { err = errors.New("data3 error"); return }; _v.Data3 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data4"].(float64); !_ok_ { err = errors.New("data4 error"); return }; _v.Data4 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data5"].(float64); !_ok_ { err = errors.New("data5 error"); return }; _v.Data5 = int32(_tempNum_) }
return
}
func DeserializeGameTaskCondData(_buf map[string]interface{}) (*GameTaskCondData, error) {
v := &GameTaskCondData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameTaskType struct {
_dataMap map[int32]*GameTaskTypeData
_dataList []*GameTaskTypeData
}
func NewGameTaskType(_buf []map[string]interface{}) (*GameTaskType, error) {
_dataList := make([]*GameTaskTypeData, 0, len(_buf))
dataMap := make(map[int32]*GameTaskTypeData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameTaskTypeData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameTaskType{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameTaskType) GetDataMap() map[int32]*GameTaskTypeData {
return table._dataMap
}
func (table *GameTaskType) GetDataList() []*GameTaskTypeData {
return table._dataList
}
func (table *GameTaskType) Get(key int32) *GameTaskTypeData {
return table._dataMap[key]
}

View File

@ -0,0 +1,47 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameTaskTypeData struct {
Id int32
Datatype int32
Desc string
Data1 string
Data2 string
Data3 string
Data4 string
}
const TypeId_GameTaskTypeData = -1813579995
func (*GameTaskTypeData) GetTypeId() int32 {
return -1813579995
}
func (_v *GameTaskTypeData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["datatype"].(float64); !_ok_ { err = errors.New("datatype error"); return }; _v.Datatype = int32(_tempNum_) }
{ var _ok_ bool; if _v.Desc, _ok_ = _buf["desc"].(string); !_ok_ { err = errors.New("desc error"); return } }
{ var _ok_ bool; if _v.Data1, _ok_ = _buf["data1"].(string); !_ok_ { err = errors.New("data1 error"); return } }
{ var _ok_ bool; if _v.Data2, _ok_ = _buf["data2"].(string); !_ok_ { err = errors.New("data2 error"); return } }
{ var _ok_ bool; if _v.Data3, _ok_ = _buf["data3"].(string); !_ok_ { err = errors.New("data3 error"); return } }
{ var _ok_ bool; if _v.Data4, _ok_ = _buf["data4"].(string); !_ok_ { err = errors.New("data4 error"); return } }
return
}
func DeserializeGameTaskTypeData(_buf map[string]interface{}) (*GameTaskTypeData, error) {
v := &GameTaskTypeData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameWorldTask struct {
_dataMap map[int32]*GameWorldTaskData
_dataList []*GameWorldTaskData
}
func NewGameWorldTask(_buf []map[string]interface{}) (*GameWorldTask, error) {
_dataList := make([]*GameWorldTaskData, 0, len(_buf))
dataMap := make(map[int32]*GameWorldTaskData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameWorldTaskData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Key] = _v
}
}
return &GameWorldTask{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameWorldTask) GetDataMap() map[int32]*GameWorldTaskData {
return table._dataMap
}
func (table *GameWorldTask) GetDataList() []*GameWorldTaskData {
return table._dataList
}
func (table *GameWorldTask) Get(key int32) *GameWorldTaskData {
return table._dataMap[key]
}

View File

@ -0,0 +1,87 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameWorldTaskData struct {
Key int32
Lock int32
Ontxe int32
IdAfter int32
Des int32
Icon string
TaskName string
TaskDisplay string
Npc string
GetafterEvent []string
Completetask int32
AutoAccept int32
Overtips int32
Reword []*Gameatn
}
const TypeId_GameWorldTaskData = -1059668091
func (*GameWorldTaskData) GetTypeId() int32 {
return -1059668091
}
func (_v *GameWorldTaskData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lock"].(float64); !_ok_ { err = errors.New("lock error"); return }; _v.Lock = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ontxe"].(float64); !_ok_ { err = errors.New("ontxe error"); return }; _v.Ontxe = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id_after"].(float64); !_ok_ { err = errors.New("id_after error"); return }; _v.IdAfter = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["des"].(float64); !_ok_ { err = errors.New("des error"); return }; _v.Des = int32(_tempNum_) }
{ var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } }
{ var _ok_ bool; if _v.TaskName, _ok_ = _buf["task_name"].(string); !_ok_ { err = errors.New("task_name error"); return } }
{ var _ok_ bool; if _v.TaskDisplay, _ok_ = _buf["task_display"].(string); !_ok_ { err = errors.New("task_display error"); return } }
{ var _ok_ bool; if _v.Npc, _ok_ = _buf["npc"].(string); !_ok_ { err = errors.New("npc error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["getafter_event"].([]interface{}); !_ok_ { err = errors.New("getafter_event error"); return }
_v.GetafterEvent = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.GetafterEvent = append(_v.GetafterEvent, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["completetask"].(float64); !_ok_ { err = errors.New("completetask error"); return }; _v.Completetask = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["auto_accept"].(float64); !_ok_ { err = errors.New("auto_accept error"); return }; _v.AutoAccept = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["overtips"].(float64); !_ok_ { err = errors.New("overtips error"); return }; _v.Overtips = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["reword"].([]interface{}); !_ok_ { err = errors.New("reword error"); return }
_v.Reword = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } }
_v.Reword = append(_v.Reword, _list_v_)
}
}
return
}
func DeserializeGameWorldTaskData(_buf map[string]interface{}) (*GameWorldTaskData, error) {
v := &GameWorldTaskData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}