1.GM 后台发送邮件, 特殊英雄等信息2. 配置表同步

This commit is contained in:
meixiongfeng 2022-07-28 18:18:57 +08:00
parent 02752df2cf
commit a857a5ab63
32 changed files with 8633 additions and 2727 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1791,6 +1791,30 @@
"key": "equip_13212", "key": "equip_13212",
"text_tw": "" "text_tw": ""
}, },
{
"key": "equip_13213",
"text_tw": ""
},
{
"key": "equip_13214",
"text_tw": ""
},
{
"key": "equip_13215",
"text_tw": ""
},
{
"key": "equip_13216",
"text_tw": ""
},
{
"key": "equip_13217",
"text_tw": ""
},
{
"key": "suit_equip_10001",
"text_tw": ""
},
{ {
"key": "item_10001", "key": "item_10001",
"text_tw": "" "text_tw": ""
@ -2962,5 +2986,157 @@
{ {
"key": "mainline_name_10071", "key": "mainline_name_10071",
"text_tw": "" "text_tw": ""
},
{
"key": "equip_10001",
"text_tw": ""
},
{
"key": "equip_10002",
"text_tw": ""
},
{
"key": "equip_10003",
"text_tw": ""
},
{
"key": "equip_10004",
"text_tw": ""
},
{
"key": "equip_10005",
"text_tw": ""
},
{
"key": "skill_190011000",
"text_tw": ""
},
{
"key": "skill_190012000",
"text_tw": ""
},
{
"key": "skill_190013000",
"text_tw": ""
},
{
"key": "skill_190014000",
"text_tw": ""
},
{
"key": "skill_190015000",
"text_tw": ""
},
{
"key": "skill_190016000",
"text_tw": ""
},
{
"key": "skill_190017000",
"text_tw": ""
},
{
"key": "skill_190018000",
"text_tw": ""
},
{
"key": "skill_190011001",
"text_tw": ""
},
{
"key": "skill_190011002",
"text_tw": ""
},
{
"key": "skill_190011003",
"text_tw": ""
},
{
"key": "skill_190011004",
"text_tw": ""
},
{
"key": "hero_10001",
"text_tw": ""
},
{
"key": "hero_10002",
"text_tw": ""
},
{
"key": "hero_10003",
"text_tw": ""
},
{
"key": "hero_10004",
"text_tw": ""
},
{
"key": "hero_10005",
"text_tw": ""
},
{
"key": "hero_10006",
"text_tw": ""
},
{
"key": "hero_10007",
"text_tw": ""
},
{
"key": "hero_10008",
"text_tw": ""
},
{
"key": "hero_star_10001",
"text_tw": ""
},
{
"key": "hero_star_10002",
"text_tw": ""
},
{
"key": "hero_star_10003",
"text_tw": ""
},
{
"key": "hero_star_10004",
"text_tw": ""
},
{
"key": "hero_color_10013",
"text_tw": ""
},
{
"key": "hero_color_10014",
"text_tw": ""
},
{
"key": "hero_color_10015",
"text_tw": ""
},
{
"key": "hero_color_10016",
"text_tw": ""
},
{
"key": "hero_job_10017",
"text_tw": ""
},
{
"key": "hero_job_10018",
"text_tw": ""
},
{
"key": "hero_job_10019",
"text_tw": ""
},
{
"key": "hero_job_10020",
"text_tw": ""
},
{
"key": "hero_job_10021",
"text_tw": ""
} }
] ]

View File

@ -8,5 +8,15 @@
"n": 20 "n": 20
} }
] ]
},
{
"index": "hero_name",
"var": [
{
"a": "attr",
"t": "rmbmoney",
"n": 20
}
]
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,37 @@
[ [
{ {
"num": 0, "num": 0,
"color": "equip_10001" "color": {
"key": "equip_10001",
"text": "普通"
}
}, },
{ {
"num": 1, "num": 1,
"color": "equip_10002" "color": {
"key": "equip_10002",
"text": "稀有"
}
}, },
{ {
"num": 2, "num": 2,
"color": "equip_10003" "color": {
"key": "equip_10003",
"text": "卓越"
}
}, },
{ {
"num": 3, "num": 3,
"color": "equip_10004" "color": {
"key": "equip_10004",
"text": "优秀"
}
}, },
{ {
"num": 4, "num": 4,
"color": "equip_10005" "color": {
"key": "equip_10005",
"text": "完美"
}
} }
] ]

View File

@ -3,119 +3,221 @@
"suittype": 0, "suittype": 0,
"suitnum": 4, "suitnum": 4,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之拳", "skillname": {
"skillintr": "暴击率\u002B20%" "key": "equip_13213",
"text": "神龙套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 1, "suittype": 1,
"suitnum": 4, "suitnum": 4,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之脚", "skillname": {
"skillintr": "暴击率\u002B20%" "key": "equip_13214",
"text": "圆月套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 2, "suittype": 2,
"suitnum": 4, "suitnum": 4,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之拳", "skillname": {
"skillintr": "一拳干碎" "key": "equip_13213",
"text": "神龙套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 3, "suittype": 3,
"suitnum": 4, "suitnum": 4,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之脚", "skillname": {
"skillintr": "一脚干碎" "key": "equip_13214",
"text": "圆月套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 4, "suittype": 4,
"suitnum": 4, "suitnum": 4,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之拳", "skillname": {
"skillintr": "一拳干碎" "key": "equip_13213",
"text": "神龙套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 5, "suittype": 5,
"suitnum": 4, "suitnum": 4,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之脚", "skillname": {
"skillintr": "一脚干碎" "key": "equip_13214",
"text": "圆月套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 6, "suittype": 6,
"suitnum": 4, "suitnum": 4,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之拳", "skillname": {
"skillintr": "一拳干碎" "key": "equip_13213",
"text": "神龙套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 7, "suittype": 7,
"suitnum": 4, "suitnum": 4,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之脚", "skillname": {
"skillintr": "一脚干碎" "key": "equip_13214",
"text": "圆月套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 8, "suittype": 8,
"suitnum": 4, "suitnum": 4,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之拳", "skillname": {
"skillintr": "一拳干碎" "key": "equip_13213",
"text": "神龙套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 9, "suittype": 9,
"suitnum": 4, "suitnum": 4,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之脚", "skillname": {
"skillintr": "一脚干碎" "key": "equip_13214",
"text": "圆月套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 100, "suittype": 100,
"suitnum": 2, "suitnum": 2,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之拳", "skillname": {
"skillintr": "一拳干碎" "key": "equip_13213",
"text": "神龙套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 101, "suittype": 101,
"suitnum": 2, "suitnum": 2,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之脚", "skillname": {
"skillintr": "一脚干碎" "key": "equip_13214",
"text": "圆月套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 102, "suittype": 102,
"suitnum": 2, "suitnum": 2,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之拳", "skillname": {
"skillintr": "一拳干碎" "key": "equip_13213",
"text": "神龙套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 103, "suittype": 103,
"suitnum": 2, "suitnum": 2,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之脚", "skillname": {
"skillintr": "一脚干碎" "key": "equip_13214",
"text": "圆月套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 104, "suittype": 104,
"suitnum": 2, "suitnum": 2,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之拳", "skillname": {
"skillintr": "一拳干碎" "key": "equip_13213",
"text": "神龙套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 105, "suittype": 105,
"suitnum": 2, "suitnum": 2,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之脚", "skillname": {
"skillintr": "一脚干碎" "key": "equip_13214",
"text": "圆月套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
}, },
{ {
"suittype": 106, "suittype": 106,
"suitnum": 2, "suitnum": 2,
"skill": 100012000, "skill": 100012000,
"skillname": "魔力之拳", "skillname": {
"skillintr": "一拳干碎" "key": "equip_13213",
"text": "神龙套装"
},
"skillintr": {
"key": "equip_13215",
"text": "暴击率\u002B20%"
}
} }
] ]

View File

@ -158,5 +158,105 @@
"n": 10 "n": 10
} }
] ]
},
{
"index": "17",
"var": [
{
"a": "attr",
"t": "diamond",
"n": 500000
}
]
},
{
"index": "18",
"var": [
{
"a": "item",
"t": "10002",
"n": 999
}
]
},
{
"index": "19",
"var": [
{
"a": "item",
"t": "10009",
"n": 1
}
]
},
{
"index": "20",
"var": [
{
"a": "item",
"t": "10010",
"n": 45
}
]
},
{
"index": "21",
"var": [
{
"a": "item",
"t": "10011",
"n": 1
}
]
},
{
"index": "22",
"var": [
{
"a": "item",
"t": "10012",
"n": 1250
}
]
},
{
"index": "23",
"var": [
{
"a": "item",
"t": "10013",
"n": 1
}
]
},
{
"index": "24",
"var": [
{
"a": "item",
"t": "10014",
"n": 1
}
]
},
{
"index": "25",
"var": [
{
"a": "item",
"t": "10015",
"n": 1
}
]
},
{
"index": "26",
"var": [
{
"a": "item",
"t": "10016",
"n": 1
}
]
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -1440,10 +1440,10 @@
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
"skill": 190011000, "skill": 190015000,
"skill1": 190012000, "skill1": 190016000,
"skill2": 190013000, "skill2": 190017000,
"skill3": 190014000, "skill3": 190018000,
"txt": { "txt": {
"key": "hero_55042", "key": "hero_55042",
"text": "" "text": ""

File diff suppressed because it is too large Load Diff

View File

@ -12,7 +12,7 @@
}, },
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "diamond",
"n": 1 "n": 1
} }
], ],
@ -22,7 +22,7 @@
"rneed": [ "rneed": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "diamond",
"n": 20 "n": 20
} }
], ],
@ -45,7 +45,7 @@
}, },
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "diamond",
"n": 1 "n": 1
} }
], ],
@ -70,7 +70,7 @@
}, },
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "diamond",
"n": 1 "n": 1
} }
], ],
@ -95,7 +95,7 @@
}, },
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "diamond",
"n": 1 "n": 1
} }
], ],
@ -120,7 +120,7 @@
}, },
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "diamond",
"n": 1 "n": 1
} }
], ],

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
[ [
{ {
"Id": 390001001, "Id": 390001001,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "攻击提升", "Name": "攻击提升",
"Desc": "攻击提升40%", "Desc": "攻击提升40%",
"Tags": [ "Tags": [
@ -19,7 +19,7 @@
}, },
{ {
"Id": 390001002, "Id": 390001002,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "防御提升", "Name": "防御提升",
"Desc": "防御提升60%", "Desc": "防御提升60%",
"Tags": [ "Tags": [
@ -37,7 +37,7 @@
}, },
{ {
"Id": 390001003, "Id": 390001003,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "速度提升", "Name": "速度提升",
"Desc": "速度提升30%", "Desc": "速度提升30%",
"Tags": [ "Tags": [
@ -55,7 +55,7 @@
}, },
{ {
"Id": 390001004, "Id": 390001004,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "暴击提升", "Name": "暴击提升",
"Desc": "暴击率提升30%", "Desc": "暴击率提升30%",
"Tags": [ "Tags": [
@ -73,7 +73,7 @@
}, },
{ {
"Id": 390001005, "Id": 390001005,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "暴击抵抗", "Name": "暴击抵抗",
"Desc": "受到暴击概率降低30%", "Desc": "受到暴击概率降低30%",
"Tags": [ "Tags": [
@ -91,7 +91,7 @@
}, },
{ {
"Id": 390001006, "Id": 390001006,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "叹息之力", "Name": "叹息之力",
"Desc": "无法驱散类状态每层使自身攻击力提升5%每10层使自身受到伤害降低3%。最高可叠加50层", "Desc": "无法驱散类状态每层使自身攻击力提升5%每10层使自身受到伤害降低3%。最高可叠加50层",
"Tags": [ "Tags": [
@ -109,7 +109,7 @@
}, },
{ {
"Id": 390001007, "Id": 390001007,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "公牛之怒", "Name": "公牛之怒",
"Desc": "每层使自身基础防御提升10%效果抵抗提升5%最多可叠加10层。", "Desc": "每层使自身基础防御提升10%效果抵抗提升5%最多可叠加10层。",
"Tags": [ "Tags": [
@ -127,7 +127,7 @@
}, },
{ {
"Id": 390001008, "Id": 390001008,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "雷之庇佑", "Name": "雷之庇佑",
"Desc": "每次受到攻击提升20%的防御最多叠加5层", "Desc": "每次受到攻击提升20%的防御最多叠加5层",
"Tags": [ "Tags": [
@ -145,7 +145,7 @@
}, },
{ {
"Id": 390002001, "Id": 390002001,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "攻击下降", "Name": "攻击下降",
"Desc": "攻击下降40%", "Desc": "攻击下降40%",
"Tags": [ "Tags": [
@ -163,7 +163,7 @@
}, },
{ {
"Id": 390002002, "Id": 390002002,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "防御下降", "Name": "防御下降",
"Desc": "防御下降60%", "Desc": "防御下降60%",
"Tags": [ "Tags": [
@ -181,7 +181,7 @@
}, },
{ {
"Id": 390002003, "Id": 390002003,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "速度下降", "Name": "速度下降",
"Desc": "速度下降30%", "Desc": "速度下降30%",
"Tags": [ "Tags": [
@ -199,7 +199,7 @@
}, },
{ {
"Id": 390002004, "Id": 390002004,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "暴击下降", "Name": "暴击下降",
"Desc": "暴击率下降30%", "Desc": "暴击率下降30%",
"Tags": [ "Tags": [
@ -217,7 +217,7 @@
}, },
{ {
"Id": 390002005, "Id": 390002005,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "烙印", "Name": "烙印",
"Desc": "被攻击时受到的伤害提高25%", "Desc": "被攻击时受到的伤害提高25%",
"Tags": [ "Tags": [
@ -235,7 +235,7 @@
}, },
{ {
"Id": 390002006, "Id": 390002006,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "失手率提升", "Name": "失手率提升",
"Desc": "失手率提升50%", "Desc": "失手率提升50%",
"Tags": [ "Tags": [
@ -253,7 +253,7 @@
}, },
{ {
"Id": 390003001, "Id": 390003001,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "无敌", "Name": "无敌",
"Desc": "不会受到任何伤害", "Desc": "不会受到任何伤害",
"Tags": [ "Tags": [
@ -272,7 +272,7 @@
}, },
{ {
"Id": 390003002, "Id": 390003002,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "对峙", "Name": "对峙",
"Desc": "生命最低降为1", "Desc": "生命最低降为1",
"Tags": [ "Tags": [
@ -291,7 +291,7 @@
}, },
{ {
"Id": 390003003, "Id": 390003003,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "免疫控制效果", "Name": "免疫控制效果",
"Desc": "无法被附加任何控制效果", "Desc": "无法被附加任何控制效果",
"Tags": [ "Tags": [
@ -309,7 +309,7 @@
}, },
{ {
"Id": 390003004, "Id": 390003004,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "免除死亡", "Name": "免除死亡",
"Desc": "", "Desc": "",
"Tags": [ "Tags": [
@ -325,7 +325,7 @@
}, },
{ {
"Id": 390004001, "Id": 390004001,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "眩晕", "Name": "眩晕",
"Desc": "无法进行任务行动", "Desc": "无法进行任务行动",
"Tags": [ "Tags": [
@ -344,7 +344,7 @@
}, },
{ {
"Id": 390004002, "Id": 390004002,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "冰冻", "Name": "冰冻",
"Desc": "无法进行任何行动", "Desc": "无法进行任何行动",
"Tags": [ "Tags": [
@ -363,7 +363,7 @@
}, },
{ {
"Id": 390004003, "Id": 390004003,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "禁疗", "Name": "禁疗",
"Desc": "无法恢复生命", "Desc": "无法恢复生命",
"Tags": [ "Tags": [
@ -382,7 +382,7 @@
}, },
{ {
"Id": 390004004, "Id": 390004004,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "石化", "Name": "石化",
"Desc": "无法进行任何行动,不会随着回合到来降低技能冷却", "Desc": "无法进行任何行动,不会随着回合到来降低技能冷却",
"Tags": [ "Tags": [
@ -404,7 +404,7 @@
}, },
{ {
"Id": 390004005, "Id": 390004005,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "沉默", "Name": "沉默",
"Desc": "只能释放基础技能", "Desc": "只能释放基础技能",
"Tags": [ "Tags": [
@ -425,7 +425,7 @@
}, },
{ {
"Id": 390004006, "Id": 390004006,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "吞噬", "Name": "吞噬",
"Desc": "无法进行任何行动,无法被选中,无法被攻击,无法获得任何强化及弱化效果", "Desc": "无法进行任何行动,无法被选中,无法被攻击,无法获得任何强化及弱化效果",
"Tags": [ "Tags": [
@ -447,7 +447,7 @@
}, },
{ {
"Id": 390004007, "Id": 390004007,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "挑衅", "Name": "挑衅",
"Desc": "回合开始时,会被迫发起攻击,向附加状态者释放基础技能", "Desc": "回合开始时,会被迫发起攻击,向附加状态者释放基础技能",
"Tags": [ "Tags": [
@ -467,7 +467,7 @@
}, },
{ {
"Id": 390004008, "Id": 390004008,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "猫猫威慑 ", "Name": "猫猫威慑 ",
"Desc": "携带者阵亡时清除此状态并对携带者一方全体造成崔佛释放者攻击力40%的效果附加伤害每层使伤害系数提升40%最多可叠加5层。", "Desc": "携带者阵亡时清除此状态并对携带者一方全体造成崔佛释放者攻击力40%的效果附加伤害每层使伤害系数提升40%最多可叠加5层。",
"Tags": [ "Tags": [
@ -485,7 +485,7 @@
}, },
{ {
"Id": 390005001, "Id": 390005001,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "炎阳", "Name": "炎阳",
"Desc": "(无法驱散类状态)可以增强炎阳灼射的威力。", "Desc": "(无法驱散类状态)可以增强炎阳灼射的威力。",
"Tags": [ "Tags": [
@ -502,7 +502,7 @@
}, },
{ {
"Id": 390005002, "Id": 390005002,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "无法获得减益", "Name": "无法获得减益",
"Desc": "无法获得减益效果(不可驱散)(不配置标签)", "Desc": "无法获得减益效果(不可驱散)(不配置标签)",
"Tags": [ "Tags": [
@ -518,7 +518,7 @@
}, },
{ {
"Id": 390005003, "Id": 390005003,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "不会失手", "Name": "不会失手",
"Desc": "不会失手", "Desc": "不会失手",
"Tags": [ "Tags": [
@ -534,7 +534,7 @@
}, },
{ {
"Id": 390006001, "Id": 390006001,
"Type": "Type=TagBuff", "Type": "TagBuff",
"Name": "无法获得增益", "Name": "无法获得增益",
"Desc": "无法附加增益状态(不可驱散)(不配置标签)", "Desc": "无法附加增益状态(不可驱散)(不配置标签)",
"Tags": [ "Tags": [
@ -550,7 +550,7 @@
}, },
{ {
"Id": 300102103, "Id": 300102103,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "", "Name": "",
"Desc": "受到的所有伤害降低10%", "Desc": "受到的所有伤害降低10%",
"Tags": [], "Tags": [],
@ -564,7 +564,7 @@
}, },
{ {
"Id": 300162105, "Id": 300162105,
"Type": "Type=CallShieldBuff", "Type": "CallShieldBuff",
"Name": "", "Name": "",
"Desc": "", "Desc": "",
"Tags": [], "Tags": [],
@ -578,7 +578,7 @@
}, },
{ {
"Id": 300192114, "Id": 300192114,
"Type": "Type=ProBuff", "Type": "ProBuff",
"Name": "猫猫推理", "Name": "猫猫推理",
"Desc": "每层为崔佛释放者提供15%伤害减免", "Desc": "每层为崔佛释放者提供15%伤害减免",
"Tags": [ "Tags": [
@ -594,7 +594,7 @@
}, },
{ {
"Id": 300192115, "Id": 300192115,
"Type": "Type=ShieldBuff", "Type": "ShieldBuff",
"Name": "护盾", "Name": "护盾",
"Desc": "增加护盾", "Desc": "增加护盾",
"Tags": [ "Tags": [

View File

@ -3,7 +3,7 @@
"Id": 490001001, "Id": 490001001,
"Desc": "免疫", "Desc": "免疫",
"When": "SufEff", "When": "SufEff",
"Where": "Target=3,EffType=1,EffID=101", "Where": "Target=3,Eff1,EffID=101",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -49,7 +49,7 @@
"Id": 490069001, "Id": 490069001,
"Desc": "每次攻击前对敌方全体造成80%攻击力伤害", "Desc": "每次攻击前对敌方全体造成80%攻击力伤害",
"When": "EffFro", "When": "EffFro",
"Where": "Target=3,EffType=1,EffID=101", "Where": "Target=3,Eff1,EffID=101",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -63,7 +63,7 @@
"Id": 490070001, "Id": 490070001,
"Desc": "每次受到攻击前对敌方全体造成80%攻击力伤害", "Desc": "每次受到攻击前对敌方全体造成80%攻击力伤害",
"When": "SufEffFro", "When": "SufEffFro",
"Where": "Target=3,EffType=1,EffID=101", "Where": "Target=3,Eff1,EffID=101",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -147,7 +147,7 @@
"Id": 490076001, "Id": 490076001,
"Desc": "攻击时对敌方全体造成80%攻击力伤害", "Desc": "攻击时对敌方全体造成80%攻击力伤害",
"When": "ImpEff", "When": "ImpEff",
"Where": "Target=3,EffType=1,EffID=101,TriLim=1", "Where": "Target=3,Eff1,EffID=101,TriLim=1",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -161,7 +161,7 @@
"Id": 490077001, "Id": 490077001,
"Desc": "受到攻击时对敌方全体造成80%攻击力伤害", "Desc": "受到攻击时对敌方全体造成80%攻击力伤害",
"When": "SufEff", "When": "SufEff",
"Where": "Target=3,EffType=1,EffID=101,TriLim=1", "Where": "Target=3,Eff1,EffID=101,TriLim=1",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -317,7 +317,7 @@
"Id": 400012104, "Id": 400012104,
"Desc": "引雷2 但出于不可行动状态时,调用子技能的触发类效果", "Desc": "引雷2 但出于不可行动状态时,调用子技能的触发类效果",
"When": "SufEff", "When": "SufEff",
"Where": "Target=3,EffType=1,EffID=604,EffTakeRel=1", "Where": "Target=3,Eff1,EffID=604,EffTakeRel=1",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -333,7 +333,7 @@
"Id": 400012105, "Id": 400012105,
"Desc": "引雷3 【引雷】期间自身每次受到攻击时,调用子技能的触发类效果", "Desc": "引雷3 【引雷】期间自身每次受到攻击时,调用子技能的触发类效果",
"When": "SufEff", "When": "SufEff",
"Where": "Target=3,EffType=1,EffID=101", "Where": "Target=3,Eff1,EffID=101",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -363,7 +363,7 @@
"Id": 400022103, "Id": 400022103,
"Desc": "加被动3 且在任意队友获得减益状态时自身获得20%行动值提升每回合仅触发1次。", "Desc": "加被动3 且在任意队友获得减益状态时自身获得20%行动值提升每回合仅触发1次。",
"When": "SufEff", "When": "SufEff",
"Where": "Target=1,EffType=1,EffID=202,EffTakeRel=1", "Where": "Target=1,Eff1,EffID=202,EffTakeRel=1",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -377,7 +377,7 @@
"Id": 400092102, "Id": 400092102,
"Desc": "被动2 当敌方单位使其友方减益状态提前结束时令该单位失去30%当前生命值同时失去全部增益状态并获得1回合【石化】效果。", "Desc": "被动2 当敌方单位使其友方减益状态提前结束时令该单位失去30%当前生命值同时失去全部增益状态并获得1回合【石化】效果。",
"When": "ImpEff", "When": "ImpEff",
"Where": "Target=2,EffType=1,EffID=105,EffTakeRel=1,EffCovType=1,EffCovId=201,EffCovOp=0,EffReVal=1,TriLim=1", "Where": "Target=2,Eff1,EffID=105,EffTakeRel=1,EffCov1,EffCovId=201,EffCovOp=0,EffReVal=1,TriLim=1",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -391,7 +391,7 @@
"Id": 400102104, "Id": 400102104,
"Desc": "被动4 每次被施加增益状态时自身获得1层【叹息之力】", "Desc": "被动4 每次被施加增益状态时自身获得1层【叹息之力】",
"When": "SufEff", "When": "SufEff",
"Where": "Target=3,EffType=1,EffID=201", "Where": "Target=3,Eff1,EffID=201",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -405,7 +405,7 @@
"Id": 400102105, "Id": 400102105,
"Desc": "被动5 每次被施加减益状态时自身获得1层【叹息之力】", "Desc": "被动5 每次被施加减益状态时自身获得1层【叹息之力】",
"When": "SufEff", "When": "SufEff",
"Where": "Target=3,EffType=1,EffID=202", "Where": "Target=3,Eff1,EffID=202",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -475,7 +475,7 @@
"Id": 400162101, "Id": 400162101,
"Desc": "被动1 对己方任意目标造成治疗效果时会同时为其净化2个减益效果若目标没有减益效果则额外为其施加1回合【免疫】效果。", "Desc": "被动1 对己方任意目标造成治疗效果时会同时为其净化2个减益效果若目标没有减益效果则额外为其施加1回合【免疫】效果。",
"When": "ImpEff", "When": "ImpEff",
"Where": "Target=1,EffType=1,EffID=103", "Where": "Target=1,Eff1,EffID=103",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -489,7 +489,7 @@
"Id": 400162102, "Id": 400162102,
"Desc": "被动2 对己方任意目标造成治疗效果时同时自身治疗量溢出的120%将转变为【护盾】效果持续2回合。", "Desc": "被动2 对己方任意目标造成治疗效果时同时自身治疗量溢出的120%将转变为【护盾】效果持续2回合。",
"When": "ImpEff", "When": "ImpEff",
"Where": "Target=1,EffType=1,EffID=103", "Where": "Target=1,Eff1,EffID=103",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -517,10 +517,10 @@
"Id": 400192101, "Id": 400192101,
"Desc": "被动1 每次攻击后没有Buff5且标的生命值比例高于50%则给自己添加行动结束前触发的被动6。每回合仅触发1次 同时修改被动2回合CD", "Desc": "被动1 每次攻击后没有Buff5且标的生命值比例高于50%则给自己添加行动结束前触发的被动6。每回合仅触发1次 同时修改被动2回合CD",
"When": "ImpEff", "When": "ImpEff",
"Where": "Target=3,EffType=1,EffID=101,TriLim=1", "Where": "Target=3,Eff1,EffID=101,TriLim=1",
"AddCon": [ "AddCon": [
"Type=BuffRely,RelyType=0,Key=300192112,Op=1,Val=1", "BuffRely,Rely0,Key=300192112,Op=1,Val=1",
"Type=ProJudge,JudgeType=1,Key=NowHp_Per,Op=0,Val=500" "ProJudge,Judge1,Key=NowHp_Per,Op=0,Val=500"
], ],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -534,10 +534,10 @@
"Id": 400192102, "Id": 400192102,
"Desc": "被动2 每次攻击后没有Buff5且目标的生命值比例小于等于50%自身获得1层【猫猫推理】。每回合仅触发1次同时修改被动1回合CD", "Desc": "被动2 每次攻击后没有Buff5且目标的生命值比例小于等于50%自身获得1层【猫猫推理】。每回合仅触发1次同时修改被动1回合CD",
"When": "ImpEff", "When": "ImpEff",
"Where": "Target=3,EffType=1,EffID=101,TriLim=1", "Where": "Target=3,Eff1,EffID=101,TriLim=1",
"AddCon": [ "AddCon": [
"Type=BuffRely,RelyType=0,Key=300192112,Op=1,Val=1", "BuffRely,Rely0,Key=300192112,Op=1,Val=1",
"Type=ProJudge,JudgeType=1,Key=NowHp_Per,Op=5,Val=500" "ProJudge,Judge1,Key=NowHp_Per,Op=5,Val=500"
], ],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -551,9 +551,9 @@
"Id": 400192103, "Id": 400192103,
"Desc": "被动3 每次攻击后若有Buff5则给自己添加行动结束前触发的被动6并修改被动1,2的回合CD", "Desc": "被动3 每次攻击后若有Buff5则给自己添加行动结束前触发的被动6并修改被动1,2的回合CD",
"When": "ImpEff", "When": "ImpEff",
"Where": "Target=3,EffType=1,EffID=101,TriLim=1", "Where": "Target=3,Eff1,EffID=101,TriLim=1",
"AddCon": [ "AddCon": [
"Type=BuffRely,RelyType=0,Key=300192112,Op=0,Val=0" "BuffRely,Rely0,Key=300192112,Op=0,Val=0"
], ],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -567,9 +567,9 @@
"Id": 400192104, "Id": 400192104,
"Desc": "被动4 检测猫猫推理层数达到2层立即重置全部技能的冷却时间并且给自身加下一回合必定对目标进行重复攻击的标记Buff5之后清除猫猫推理", "Desc": "被动4 检测猫猫推理层数达到2层立即重置全部技能的冷却时间并且给自身加下一回合必定对目标进行重复攻击的标记Buff5之后清除猫猫推理",
"When": "ImpEff", "When": "ImpEff",
"Where": "Target=3,EffType=0,EffID=300192114", "Where": "Target=3,Eff0,EffID=300192114",
"AddCon": [ "AddCon": [
"Type=BuffRely,RelyType=0,Key=300192114,Op=0,Val=1" "BuffRely,Rely0,Key=300192114,Op=0,Val=1"
], ],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -597,7 +597,7 @@
"Id": 400622101, "Id": 400622101,
"Desc": "被动1 当队友向敌方任意1个目标发起攻击时给自己加被动2", "Desc": "被动1 当队友向敌方任意1个目标发起攻击时给自己加被动2",
"When": "ImpEff", "When": "ImpEff",
"Where": "Target=1,EffType=1,EffID=101,TriLim=1", "Where": "Target=1,Eff1,EffID=101,TriLim=1",
"AddCon": [], "AddCon": [],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -625,9 +625,9 @@
"Id": 490087001, "Id": 490087001,
"Desc": "攻击时如果自身血量大于50%对敌方全体造成80%攻击力伤害", "Desc": "攻击时如果自身血量大于50%对敌方全体造成80%攻击力伤害",
"When": "ImpEff", "When": "ImpEff",
"Where": "Target=3,EffType=1,EffID=101", "Where": "Target=3,Eff1,EffID=101",
"AddCon": [ "AddCon": [
"Type=ProJudge,JudgeType=1,Key=NowHp_Per,Op=0,Val=500" "ProJudge,Judge1,Key=NowHp_Per,Op=0,Val=500"
], ],
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
@ -650,5 +650,33 @@
"Tags": [], "Tags": [],
"RelyTags": [], "RelyTags": [],
"NoRelyTags": [] "NoRelyTags": []
},
{
"Id": 490087003,
"Desc": "护盾被击破时对敌方全体造成80%攻击力伤害",
"When": "ShieldBro",
"Where": "Target=3,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490087004,
"Desc": "击破护盾时对敌方全体造成80%攻击力伤害",
"When": "BreShield",
"Where": "Target=3,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
} }
] ]

View File

@ -29,7 +29,7 @@
"unloadpkg": 3, "unloadpkg": 3,
"loadtype": 1, "loadtype": 1,
"full": 0, "full": 0,
"blur": 1, "blur": 0,
"package": "login/login", "package": "login/login",
"packagename": "login", "packagename": "login",
"comname": "useragreement", "comname": "useragreement",
@ -40,8 +40,8 @@
"file": "ServerListWindow", "file": "ServerListWindow",
"unloadpkg": 3, "unloadpkg": 3,
"loadtype": 1, "loadtype": 1,
"full": 0, "full": 2,
"blur": 1, "blur": 0,
"package": "login/login", "package": "login/login",
"packagename": "login", "packagename": "login",
"comname": "serverlist", "comname": "serverlist",
@ -53,7 +53,7 @@
"unloadpkg": 3, "unloadpkg": 3,
"loadtype": 1, "loadtype": 1,
"full": 0, "full": 0,
"blur": 1, "blur": 0,
"package": "login/login", "package": "login/login",
"packagename": "login", "packagename": "login",
"comname": "loginaccountnumber", "comname": "loginaccountnumber",
@ -65,7 +65,7 @@
"unloadpkg": 3, "unloadpkg": 3,
"loadtype": 1, "loadtype": 1,
"full": 0, "full": 0,
"blur": 1, "blur": 0,
"package": "login/login", "package": "login/login",
"packagename": "login", "packagename": "login",
"comname": "mobilephonelogin", "comname": "mobilephonelogin",
@ -281,7 +281,7 @@
"unloadpkg": 1, "unloadpkg": 1,
"loadtype": 0, "loadtype": 0,
"full": 0, "full": 0,
"blur": 1, "blur": 0,
"package": "zhandou/zhandou", "package": "zhandou/zhandou",
"packagename": "zhandou", "packagename": "zhandou",
"comname": "main_account", "comname": "main_account",
@ -401,7 +401,7 @@
"unloadpkg": 0, "unloadpkg": 0,
"loadtype": 1, "loadtype": 1,
"full": 0, "full": 0,
"blur": 1, "blur": 0,
"package": "public/public", "package": "public/public",
"packagename": "public", "packagename": "public",
"comname": "messagebox", "comname": "messagebox",
@ -437,7 +437,7 @@
"unloadpkg": 0, "unloadpkg": 0,
"loadtype": 1, "loadtype": 1,
"full": 0, "full": 0,
"blur": 1, "blur": 0,
"package": "heronew/heronew", "package": "heronew/heronew",
"packagename": "heronew", "packagename": "heronew",
"comname": "herostarup", "comname": "herostarup",
@ -460,7 +460,7 @@
"file": "RoleDetailWindow", "file": "RoleDetailWindow",
"unloadpkg": 0, "unloadpkg": 0,
"loadtype": 1, "loadtype": 1,
"full": 2, "full": 3,
"blur": 0, "blur": 0,
"package": "roledetails/roledetails", "package": "roledetails/roledetails",
"packagename": "roledetails", "packagename": "roledetails",
@ -557,8 +557,8 @@
"unloadpkg": 3, "unloadpkg": 3,
"loadtype": 0, "loadtype": 0,
"full": 0, "full": 0,
"blur": 0, "blur": 1,
"package": "roledetails/roledetails", "package": "n",
"packagename": "roledetails", "packagename": "roledetails",
"comname": "role_grow", "comname": "role_grow",
"des": "英雄图鉴属性弹窗" "des": "英雄图鉴属性弹窗"
@ -604,7 +604,7 @@
"file": "MainInterFaceWindow", "file": "MainInterFaceWindow",
"unloadpkg": 2, "unloadpkg": 2,
"loadtype": 1, "loadtype": 1,
"full": 2, "full": 3,
"blur": 0, "blur": 0,
"package": "maininterface/maininterface", "package": "maininterface/maininterface",
"packagename": "maininterface", "packagename": "maininterface",
@ -646,5 +646,53 @@
"packagename": "task", "packagename": "task",
"comname": "rewardPreview", "comname": "rewardPreview",
"des": "任务奖励预览" "des": "任务奖励预览"
},
{
"id": "generalitempopup",
"file": "GeneralItemPopup",
"unloadpkg": 3,
"loadtype": 1,
"full": 0,
"blur": 0,
"package": "tips/tips",
"packagename": "tips",
"comname": "GeneralItem",
"des": "通用奖励获取弹框"
},
{
"id": "userset",
"file": "UserSetWindow",
"unloadpkg": 2,
"loadtype": 0,
"full": 1,
"blur": 0,
"package": "userset/userset",
"packagename": "userset",
"comname": "main",
"des": "用户设置"
},
{
"id": "skillinfotips",
"file": "SkillInfoTipsWindow",
"unloadpkg": 3,
"loadtype": 1,
"full": 0,
"blur": 0,
"package": "roledetails/roledetails",
"packagename": "roledetails",
"comname": "skillnametips",
"des": "技能描述提示框"
},
{
"id": "captainskillinfotips",
"file": "CaptainSkillInfoTipsWindow",
"unloadpkg": 3,
"loadtype": 1,
"full": 0,
"blur": 0,
"package": "roledetails/roledetails",
"packagename": "roledetails",
"comname": "skillnametips3",
"des": "队长技描述提示框"
} }
] ]

View File

@ -48,6 +48,8 @@ type (
GetHeroList(uid string) []*pb.DBHero GetHeroList(uid string) []*pb.DBHero
//清理玩家英雄数据 //清理玩家英雄数据
CleanData(uid string) CleanData(uid string)
// 获取指定星级等级的英雄
GetSpecifiedHero(uid, heroConfId string, star, lv int32) (*pb.DBHero, error)
} }
//玩家 //玩家

View File

@ -15,12 +15,19 @@ func (this *apiComp) CmdCheck(session comm.IUserSession, req *pb.GMCmdReq) (code
return return
} }
///获取用户装备列表 ///解析GM 指令
func (this *apiComp) Cmd(session comm.IUserSession, req *pb.GMCmdReq) (code pb.ErrorCode, data proto.Message) { func (this *apiComp) Cmd(session comm.IUserSession, req *pb.GMCmdReq) (code pb.ErrorCode, data proto.Message) {
var (
heroid string
star int32
lv int32
)
if code = this.CmdCheck(session, req); code == pb.ErrorCode_Success { if code = this.CmdCheck(session, req); code == pb.ErrorCode_Success {
return return
} }
// strings.Split(req.Cmod, "sign")
this.module.ModuleHero.GetSpecifiedHero(session.GetUserId(), heroid, star, lv)
session.SendMsg(string(this.module.GetType()), "cmd", &pb.GMCmdResp{IsSucc: true}) session.SendMsg(string(this.module.GetType()), "cmd", &pb.GMCmdResp{IsSucc: true})
return return
} }

View File

@ -36,4 +36,5 @@ func (this *GM) Init(service core.IService, module core.IModule, options core.IM
func (this *GM) OnInstallComp() { func (this *GM) OnInstallComp() {
this.ModuleBase.OnInstallComp() this.ModuleBase.OnInstallComp()
this.api_comp = this.RegisterComp(new(apiComp)).(*apiComp) this.api_comp = this.RegisterComp(new(apiComp)).(*apiComp)
} }

View File

@ -418,10 +418,15 @@ func (this *ModelHero) PropertyCompute(hero *pb.DBHero) {
(curDef + lvGrow.Def), heroLvCfg.Def, lvGrow.Defgrow, heroStarCfg.Def, stargrowCfg.StarupDef) (curDef + lvGrow.Def), heroLvCfg.Def, lvGrow.Defgrow, heroStarCfg.Def, stargrowCfg.StarupDef)
def, _ := mengine.ParseAndExec(exprDef) def, _ := mengine.ParseAndExec(exprDef)
curSpeed := hero.Property[comm.Speed]
exprSpeed := fmt.Sprintf("%v +%v * %v/1000 + %v * %v/1000",
(curSpeed + lvGrow.Speed), 0, 0, 0, stargrowCfg.StarupSpeed)
speed, _ := mengine.ParseAndExec(exprSpeed)
hero.Property = map[string]int32{ hero.Property = map[string]int32{
comm.Hp: int32(math.Floor(hp)), comm.Hp: int32(math.Floor(hp)),
comm.Atk: int32(math.Floor(atk)), comm.Atk: int32(math.Floor(atk)),
comm.Def: int32(math.Floor(def)), comm.Def: int32(math.Floor(def)),
comm.Speed: int32(math.Floor(speed)),
} }
} }

View File

@ -1,9 +1,11 @@
package hero package hero
import ( import (
"errors"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/event" "go_dreamfactory/lego/sys/event"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
) )
@ -120,6 +122,31 @@ func (this *Hero) CleanData(uid string) {
this.modelHero.cleanData(uid) this.modelHero.cleanData(uid)
} }
// 创建一些特殊的英雄
func (this *Hero) GetSpecifiedHero(uid, heroConfId string, star, lv int32) (hero *pb.DBHero, err error) {
if uid == "" || heroConfId == "" || star == 0 || lv == 0 {
return nil, errors.New("parameter err")
}
hero, err = this.modelHero.createOneHero(uid, heroConfId)
if err == nil {
return
}
hero.Lv = lv
hero.Star = star
_heroMap := map[string]interface{}{
"lv": hero.Lv,
"star": hero.Star,
"isOverlying": false,
}
// 保存数据
err = this.modelHero.ChangeList(uid, hero.Id, _heroMap)
if err != nil {
log.Errorf("GetSpecified failed:%v", err)
return
}
return
}
//Event-------------------------------------------------------------------------------------------------玩家离线 //Event-------------------------------------------------------------------------------------------------玩家离线
func (this *Hero) EventUserOffline(session comm.IUserSession) { func (this *Hero) EventUserOffline(session comm.IUserSession) {
err := this.modelHero.RemoveUserHeroInfo(session) err := this.modelHero.RemoveUserHeroInfo(session)

View File

@ -0,0 +1,54 @@
package web
import (
"go_dreamfactory/lego/sys/gin"
"go_dreamfactory/lego/sys/gin/engine"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
"net/http"
)
type CrateMailReq struct {
pb.DBMailData
Sign string `json:"sign"`
}
//创建邮件
func (this *Api_Comp) CreateMail(c *engine.Context) {
req := &CrateMailReq{}
err := c.BindJSON(&req)
this.module.Debugf("CrateMail:%+v err:%v", req, err)
var (
code pb.ErrorCode
msg string
data interface{}
)
defer c.JSON(http.StatusOK, &Respond{Code: code, Message: msg, Data: data})
if sign := gin.ParamSign(this.options.Key, map[string]interface{}{
"Uid": req.Uid,
"Title": req.Title,
"Contex": req.Contex,
"CreateTime": req.CreateTime,
"DueTime": req.DueTime,
"Check": req.Check,
"Reward": req.Reward,
"Items": req.Items,
}); sign != req.Sign {
log.Errorf("LoginByCaptchaReq SignError sgin:%s", sign)
code = pb.ErrorCode_SignError
msg = pb.GetErrorCodeMsg(code)
return
}
if len(req.Title) == 0 {
code = pb.ErrorCode_ReqParameterError
msg = pb.GetErrorCodeMsg(code)
return
}
if err = this.module.modelMail.CreateGMMail(&req.DBMailData); err != nil {
log.Errorf("LoginByCaptchaReq CreateMail err:%v", err)
code = pb.ErrorCode_DBError
msg = pb.GetErrorCodeMsg(code)
return
}
msg = pb.GetErrorCodeMsg(code)
}

37
modules/web/modelMail.go Normal file
View File

@ -0,0 +1,37 @@
package web
import (
"errors"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go.mongodb.org/mongo-driver/bson/primitive"
)
//公告邮件模块
type modelMailComp struct {
modules.MCompModel
module *Web
}
func (this *modelMailComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) {
this.MCompModel.Init(service, module, comp, opt)
this.module = module.(*Web)
this.TableName = "mail"
return
}
//创建系统邮件
func (this *modelMailComp) CreateGMMail(mail *pb.DBMailData) (err error) {
if mail == nil {
return errors.New("not found mail")
}
mail.ObjId = primitive.NewObjectID().Hex()
if _, err = this.DB.InsertOne(core.SqlTable(this.TableName), mail); err != nil {
log.Errorf("CreateGMMail err:%v", err)
return
}
return
}

View File

@ -24,6 +24,7 @@ type Web struct {
api_comp *Api_Comp //提供weba pi服务的组件 api_comp *Api_Comp //提供weba pi服务的组件
modelUser *modelUserComp modelUser *modelUserComp
modelNotify *modelNotifyComp modelNotify *modelNotifyComp
modelMail *modelMailComp
configure *configureComp configure *configureComp
} }
@ -48,6 +49,7 @@ func (this *Web) OnInstallComp() {
this.api_comp = this.RegisterComp(new(Api_Comp)).(*Api_Comp) this.api_comp = this.RegisterComp(new(Api_Comp)).(*Api_Comp)
this.modelUser = this.RegisterComp(new(modelUserComp)).(*modelUserComp) this.modelUser = this.RegisterComp(new(modelUserComp)).(*modelUserComp)
this.modelNotify = this.RegisterComp(new(modelNotifyComp)).(*modelNotifyComp) this.modelNotify = this.RegisterComp(new(modelNotifyComp)).(*modelNotifyComp)
this.modelMail = this.RegisterComp(new(modelMailComp)).(*modelMailComp)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp) this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
} }

View File

@ -68,6 +68,7 @@ type Tables struct {
playerlv *Game_playerlv playerlv *Game_playerlv
propsgroup *Game_propsgroup propsgroup *Game_propsgroup
facemod *Game_facemod facemod *Game_facemod
msgdistrib *Game_msgdistrib
} }
func NewTables(loader JsonLoader) (*Tables, error) { func NewTables(loader JsonLoader) (*Tables, error) {
@ -411,5 +412,11 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.facemod, err = NewGame_facemod(buf) ; err != nil { if tables.facemod, err = NewGame_facemod(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_msgdistrib") ; err != nil {
return nil, err
}
if tables.msgdistrib, err = NewGame_msgdistrib(buf) ; err != nil {
return nil, err
}
return tables, nil return tables, nil
} }

View File

@ -22,6 +22,6 @@ func (Game_equipColorData) GetTypeId() int {
func NewGame_equipColorData(_buf map[string]interface{}) (_v *Game_equipColorData, err error) { func NewGame_equipColorData(_buf map[string]interface{}) (_v *Game_equipColorData, err error) {
_v = &Game_equipColorData{} _v = &Game_equipColorData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) }
{ var _ok_ bool; if _v.Color, _ok_ = _buf["color"].(string); !_ok_ { err = errors.New("color error"); return } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["color"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Color error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Color, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
return return
} }

View File

@ -33,7 +33,7 @@ func NewGame_equipData(_buf map[string]interface{}) (_v *Game_equipData, err err
{ var _ok_ bool; if _v.Id, _ok_ = _buf["id"].(string); !_ok_ { err = errors.New("id error"); return } } { var _ok_ bool; if _v.Id, _ok_ = _buf["id"].(string); !_ok_ { err = errors.New("id error"); return } }
{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 } } } {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 } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suittype"].(float64); !_ok_ { err = errors.New("suittype error"); return }; _v.Suittype = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suittype"].(float64); !_ok_ { err = errors.New("suittype error"); return }; _v.Suittype = int32(_tempNum_) }
{ var _ok_ bool; if _v.Suitintr, _ok_ = _buf["suitintr"].(string); !_ok_ { err = errors.New("suitintr error"); return } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["suitintr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Suitintr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Suitintr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["pos"].(float64); !_ok_ { err = errors.New("pos error"); return }; _v.Pos = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["pos"].(float64); !_ok_ { err = errors.New("pos error"); return }; _v.Pos = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["leadlibrary"].(float64); !_ok_ { err = errors.New("leadlibrary error"); return }; _v.Leadlibrary = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["leadlibrary"].(float64); !_ok_ { err = errors.New("leadlibrary error"); return }; _v.Leadlibrary = int32(_tempNum_) }

View File

@ -27,7 +27,7 @@ func NewGame_equipSuitData(_buf map[string]interface{}) (_v *Game_equipSuitData,
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suittype"].(float64); !_ok_ { err = errors.New("suittype error"); return }; _v.Suittype = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suittype"].(float64); !_ok_ { err = errors.New("suittype error"); return }; _v.Suittype = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suitnum"].(float64); !_ok_ { err = errors.New("suitnum error"); return }; _v.Suitnum = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suitnum"].(float64); !_ok_ { err = errors.New("suitnum error"); return }; _v.Suitnum = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill"].(float64); !_ok_ { err = errors.New("skill error"); return }; _v.Skill = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill"].(float64); !_ok_ { err = errors.New("skill error"); return }; _v.Skill = int32(_tempNum_) }
{ var _ok_ bool; if _v.Skillname, _ok_ = _buf["skillname"].(string); !_ok_ { err = errors.New("skillname error"); return } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skillname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; if _v.Skillintr, _ok_ = _buf["skillintr"].(string); !_ok_ { err = errors.New("skillintr error"); return } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skillintr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillintr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillintr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
return return
} }

View File

@ -13,10 +13,13 @@ import "errors"
type Game_modelData struct { type Game_modelData struct {
Id int32 Id int32
Preson string Preson string
Presonshow string
Ico string Ico string
Fight string
Img string Img string
Heroimg string Heroimg string
Portrait string Portrait string
Postxyz []float32
} }
func (Game_modelData) GetTypeId() int { func (Game_modelData) GetTypeId() int {
@ -27,9 +30,25 @@ func NewGame_modelData(_buf map[string]interface{}) (_v *Game_modelData, err err
_v = &Game_modelData{} _v = &Game_modelData{}
{ 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["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.Preson, _ok_ = _buf["preson"].(string); !_ok_ { err = errors.New("preson error"); return } } { var _ok_ bool; if _v.Preson, _ok_ = _buf["preson"].(string); !_ok_ { err = errors.New("preson error"); return } }
{ var _ok_ bool; if _v.Presonshow, _ok_ = _buf["presonshow"].(string); !_ok_ { err = errors.New("presonshow error"); return } }
{ var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } } { var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } }
{ var _ok_ bool; if _v.Fight, _ok_ = _buf["fight"].(string); !_ok_ { err = errors.New("fight error"); return } }
{ var _ok_ bool; if _v.Img, _ok_ = _buf["img"].(string); !_ok_ { err = errors.New("img error"); return } } { var _ok_ bool; if _v.Img, _ok_ = _buf["img"].(string); !_ok_ { err = errors.New("img error"); return } }
{ var _ok_ bool; if _v.Heroimg, _ok_ = _buf["heroimg"].(string); !_ok_ { err = errors.New("heroimg error"); return } } { var _ok_ bool; if _v.Heroimg, _ok_ = _buf["heroimg"].(string); !_ok_ { err = errors.New("heroimg error"); return } }
{ var _ok_ bool; if _v.Portrait, _ok_ = _buf["portrait"].(string); !_ok_ { err = errors.New("portrait error"); return } } { var _ok_ bool; if _v.Portrait, _ok_ = _buf["portrait"].(string); !_ok_ { err = errors.New("portrait error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["postxyz"].([]interface{}); !_ok_ { err = errors.New("postxyz error"); return }
_v.Postxyz = make([]float32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ float32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = float32(_x_) }
_v.Postxyz = append(_v.Postxyz, _list_v_)
}
}
return return
} }

View File

@ -20,7 +20,11 @@ type Game_newSkillData struct {
CD []int32 CD []int32
Target int32 Target int32
ChildSkill []*Game_ChildSkills ChildSkill []*Game_ChildSkills
Desc []string Desc1 string
Desc2 string
Desc3 string
Desc4 string
Desc5 string
} }
func (Game_newSkillData) GetTypeId() int { func (Game_newSkillData) GetTypeId() int {
@ -64,19 +68,10 @@ func NewGame_newSkillData(_buf map[string]interface{}) (_v *Game_newSkillData, e
} }
} }
{ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Desc1"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc1 error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc1, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
var _arr_ []interface{} {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Desc2"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc2 error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc2, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
var _ok_ bool {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Desc3"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc3 error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc3, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
if _arr_, _ok_ = _buf["Desc"].([]interface{}); !_ok_ { err = errors.New("Desc error"); return } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Desc4"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc4 error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc4, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Desc5"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc5 error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc5, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
_v.Desc = 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.Desc = append(_v.Desc, _list_v_)
}
}
return return
} }

View File

@ -20,7 +20,11 @@ type Game_skillAtkData struct {
CD []int32 CD []int32
Target int32 Target int32
ChildSkill []*Game_ChildSkills ChildSkill []*Game_ChildSkills
Desc []string Desc1 string
Desc2 string
Desc3 string
Desc4 string
Desc5 string
} }
func (Game_skillAtkData) GetTypeId() int { func (Game_skillAtkData) GetTypeId() int {
@ -64,19 +68,10 @@ func NewGame_skillAtkData(_buf map[string]interface{}) (_v *Game_skillAtkData, e
} }
} }
{ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Desc1"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc1 error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc1, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
var _arr_ []interface{} {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Desc2"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc2 error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc2, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
var _ok_ bool {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Desc3"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc3 error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc3, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
if _arr_, _ok_ = _buf["Desc"].([]interface{}); !_ok_ { err = errors.New("Desc error"); return } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Desc4"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc4 error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc4, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Desc5"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc5 error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc5, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
_v.Desc = 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.Desc = append(_v.Desc, _list_v_)
}
}
return return
} }