Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into meixiongfeng
# Conflicts: # modules/hero/configure_comp.go # modules/hero/module.go # pb/errorcode.pb.go # pb/hero_msg.pb.go # pb/proto/errorcode.proto # pb/proto/hero/hero_msg.proto
This commit is contained in:
commit
08de4af442
@ -1,27 +0,0 @@
|
||||
[
|
||||
{
|
||||
"index": "max_hy",
|
||||
"var": "30",
|
||||
"intr": "最大好友数"
|
||||
},
|
||||
{
|
||||
"index": "max_getreward",
|
||||
"var": "10002,99",
|
||||
"intr": "领取/赠送奖励"
|
||||
},
|
||||
{
|
||||
"index": "max_get",
|
||||
"var": "30",
|
||||
"intr": "每日领取/赠送次数"
|
||||
},
|
||||
{
|
||||
"index": "max_char",
|
||||
"var": "100",
|
||||
"intr": "聊天最大输入字符数量"
|
||||
},
|
||||
{
|
||||
"index": "max_hmd",
|
||||
"var": "30",
|
||||
"intr": "最大黑名单数"
|
||||
}
|
||||
]
|
1418
bin/json/game_equip.json
Normal file
1418
bin/json/game_equip.json
Normal file
File diff suppressed because it is too large
Load Diff
4226
bin/json/game_equipattrlibrary.json
Normal file
4226
bin/json/game_equipattrlibrary.json
Normal file
File diff suppressed because it is too large
Load Diff
1502
bin/json/game_equipintensify.json
Normal file
1502
bin/json/game_equipintensify.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
||||
[]
|
104
bin/json/game_equipsuit.json
Normal file
104
bin/json/game_equipsuit.json
Normal file
@ -0,0 +1,104 @@
|
||||
[
|
||||
{
|
||||
"suittype": 0,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 1,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 2,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 3,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 4,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 5,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 6,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 7,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 8,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 9,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 100,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 101,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 102,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 103,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 104,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 105,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
},
|
||||
{
|
||||
"suittype": 106,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillintr": ""
|
||||
}
|
||||
]
|
596
bin/json/game_hero.json
Normal file
596
bin/json/game_hero.json
Normal file
@ -0,0 +1,596 @@
|
||||
[
|
||||
{
|
||||
"id": 11001,
|
||||
"name": "阿宝",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
"race": 1,
|
||||
"job": 1,
|
||||
"type": 1,
|
||||
"prefab": "Person/11001.prefab",
|
||||
"icon": 11001,
|
||||
"sound": 121323,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11001.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 110001,
|
||||
"skill2": 110002,
|
||||
"skill3": 110003
|
||||
},
|
||||
{
|
||||
"id": 11002,
|
||||
"name": "原始人",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 1,
|
||||
"job": 1,
|
||||
"type": 1,
|
||||
"prefab": "Person/11002.prefab",
|
||||
"icon": 11002,
|
||||
"sound": 11002,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11002.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 11003,
|
||||
"name": "波比",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 1,
|
||||
"type": 1,
|
||||
"prefab": "Person/11003.prefab",
|
||||
"icon": 11003,
|
||||
"sound": 11003,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11003.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": -0.69,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 110004,
|
||||
"skill2": 110005,
|
||||
"skill3": 110012
|
||||
},
|
||||
{
|
||||
"id": 11004,
|
||||
"name": "布兰",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 1,
|
||||
"job": 1,
|
||||
"type": 1,
|
||||
"prefab": "11004",
|
||||
"icon": 11004,
|
||||
"sound": 11004,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 11005,
|
||||
"name": "无牙仔",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
"race": 1,
|
||||
"job": 1,
|
||||
"type": 1,
|
||||
"prefab": "Person/11001.prefab",
|
||||
"icon": 11005,
|
||||
"sound": 121323,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11001.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 11006,
|
||||
"name": "亚丝翠",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 1,
|
||||
"job": 1,
|
||||
"type": 1,
|
||||
"prefab": "11006",
|
||||
"icon": 11006,
|
||||
"sound": 11006,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 11009,
|
||||
"name": "希卡普",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
"race": 3,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "11009",
|
||||
"icon": 11009,
|
||||
"sound": 11009,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11009.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0.33,
|
||||
"y": -0.1,
|
||||
"z": 0.02
|
||||
},
|
||||
"skill1": 110010,
|
||||
"skill2": 110011,
|
||||
"skill3": 110013
|
||||
},
|
||||
{
|
||||
"id": 22002,
|
||||
"name": "沈王爷青春版",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "22002",
|
||||
"icon": 22002,
|
||||
"sound": 22002,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 90001,
|
||||
"name": "邪恶阿宝",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
"race": 1,
|
||||
"job": 1,
|
||||
"type": 1,
|
||||
"prefab": "Person/90001.prefab",
|
||||
"icon": 90001,
|
||||
"sound": 90001,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_90001",
|
||||
"cite": "11001",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 11011,
|
||||
"name": "浣熊",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "11011",
|
||||
"icon": 11011,
|
||||
"sound": 11011,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11011.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 11008,
|
||||
"name": "悍娇虎",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "11008",
|
||||
"icon": 11008,
|
||||
"sound": 11008,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 11017,
|
||||
"name": "冰霜杰克",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 4,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "11017",
|
||||
"icon": 11017,
|
||||
"sound": 11017,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11017.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 110006,
|
||||
"skill2": 110007,
|
||||
"skill3": 110014
|
||||
},
|
||||
{
|
||||
"id": 11018,
|
||||
"name": "睡神",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 4,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "11018",
|
||||
"icon": 11018,
|
||||
"sound": 11018,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11018.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": -0.31,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 110008,
|
||||
"skill2": 110009,
|
||||
"skill3": 110015
|
||||
},
|
||||
{
|
||||
"id": 11019,
|
||||
"name": "莫甘娜",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "11019",
|
||||
"icon": 11019,
|
||||
"sound": 11019,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11019.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 11020,
|
||||
"name": "莫甘娜二阶段",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "11020",
|
||||
"icon": 11020,
|
||||
"sound": 11020,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11020.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 11021,
|
||||
"name": "莫甘娜巨怪",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "11021",
|
||||
"icon": 11021,
|
||||
"sound": 11021,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11021.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 11099,
|
||||
"name": "触手",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "11099",
|
||||
"icon": 11099,
|
||||
"sound": 11099,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11099.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 12001,
|
||||
"name": "黑化阿宝",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "Person/12001.prefab",
|
||||
"icon": 12001,
|
||||
"sound": 121323,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_12001.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 12003,
|
||||
"name": "黑化包比",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "Person/11003.prefab",
|
||||
"icon": 12003,
|
||||
"sound": 12003,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11003.asset",
|
||||
"cite": "11003",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 12009,
|
||||
"name": "黑化希卡普",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "12009",
|
||||
"icon": 11009,
|
||||
"sound": 11009,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11009.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 12017,
|
||||
"name": "黑化杰克",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "12017",
|
||||
"icon": 12017,
|
||||
"sound": 12017,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11017.asset",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 12018,
|
||||
"name": "黑化睡神",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"job": 2,
|
||||
"type": 1,
|
||||
"prefab": "12018",
|
||||
"icon": 12018,
|
||||
"sound": 12018,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "EventDataSet/Hero_11018.asset",
|
||||
"cite": "11018",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
}
|
||||
]
|
@ -1,255 +1,13 @@
|
||||
[
|
||||
{
|
||||
"id": 11001,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 174,
|
||||
"hpgrow": 1.15,
|
||||
"atkgrow": 1.1,
|
||||
"defgrow": 1.3,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11002,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 193,
|
||||
"hpgrow": 1.25,
|
||||
"atkgrow": 1,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11003,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 193,
|
||||
"hpgrow": 1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11004,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 193,
|
||||
"hpgrow": 1.1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.15,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11005,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 174,
|
||||
"hpgrow": 1.15,
|
||||
"atkgrow": 1.1,
|
||||
"defgrow": 1.3,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11006,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 193,
|
||||
"hpgrow": 1.25,
|
||||
"atkgrow": 1,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11009,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 165,
|
||||
"hpgrow": 1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 22002,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.15,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 90001,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 174,
|
||||
"hpgrow": 1.15,
|
||||
"atkgrow": 1.1,
|
||||
"defgrow": 1.3,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11011,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 165,
|
||||
"hpgrow": 1.25,
|
||||
"atkgrow": 1,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11008,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11017,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.15,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11018,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.15,
|
||||
"atkgrow": 1.1,
|
||||
"defgrow": 1.3,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11019,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.25,
|
||||
"atkgrow": 1,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11020,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11021,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.15,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 11099,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.15,
|
||||
"atkgrow": 1.1,
|
||||
"defgrow": 1.3,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 12001,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 174,
|
||||
"hpgrow": 1.25,
|
||||
"atkgrow": 1,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 12003,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 193,
|
||||
"hpgrow": 1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 12009,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 165,
|
||||
"hpgrow": 1.1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.15,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 12017,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.15,
|
||||
"atkgrow": 1.1,
|
||||
"defgrow": 1.3,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 12018,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.25,
|
||||
"atkgrow": 1,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 15001,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.25,
|
||||
"hpgrow": 1000,
|
||||
"atkgrow": 1300,
|
||||
"defgrow": 1250,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
@ -258,9 +16,9 @@
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.15,
|
||||
"hpgrow": 1100,
|
||||
"atkgrow": 1300,
|
||||
"defgrow": 1150,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
@ -269,9 +27,9 @@
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 174,
|
||||
"hpgrow": 1.15,
|
||||
"atkgrow": 1.1,
|
||||
"defgrow": 1.3,
|
||||
"hpgrow": 1150,
|
||||
"atkgrow": 1100,
|
||||
"defgrow": 1300,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
@ -280,9 +38,9 @@
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 193,
|
||||
"hpgrow": 1.25,
|
||||
"atkgrow": 1,
|
||||
"defgrow": 1.25,
|
||||
"hpgrow": 1250,
|
||||
"atkgrow": 1000,
|
||||
"defgrow": 1250,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
@ -291,31 +49,9 @@
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 165,
|
||||
"hpgrow": 1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.25,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 44902,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.15,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
"id": 44903,
|
||||
"hp": 0,
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.15,
|
||||
"atkgrow": 1.1,
|
||||
"defgrow": 1.3,
|
||||
"hpgrow": 1000,
|
||||
"atkgrow": 1300,
|
||||
"defgrow": 1250,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
@ -324,9 +60,9 @@
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1.25,
|
||||
"atkgrow": 1,
|
||||
"defgrow": 1.25,
|
||||
"hpgrow": 1250,
|
||||
"atkgrow": 1000,
|
||||
"defgrow": 1250,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
@ -335,9 +71,9 @@
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.25,
|
||||
"hpgrow": 1000,
|
||||
"atkgrow": 1300,
|
||||
"defgrow": 1250,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
@ -346,9 +82,9 @@
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 174,
|
||||
"hpgrow": 1.1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.15,
|
||||
"hpgrow": 1100,
|
||||
"atkgrow": 1300,
|
||||
"defgrow": 1150,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
@ -357,9 +93,9 @@
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 193,
|
||||
"hpgrow": 1.15,
|
||||
"atkgrow": 1.1,
|
||||
"defgrow": 1.3,
|
||||
"hpgrow": 1150,
|
||||
"atkgrow": 1100,
|
||||
"defgrow": 1300,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
@ -368,9 +104,9 @@
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 165,
|
||||
"hpgrow": 1.25,
|
||||
"atkgrow": 1,
|
||||
"defgrow": 1.25,
|
||||
"hpgrow": 1250,
|
||||
"atkgrow": 1000,
|
||||
"defgrow": 1250,
|
||||
"speedgrow": 0
|
||||
},
|
||||
{
|
||||
@ -379,9 +115,9 @@
|
||||
"atk": 0,
|
||||
"def": 0,
|
||||
"speed": 183,
|
||||
"hpgrow": 1,
|
||||
"atkgrow": 1.3,
|
||||
"defgrow": 1.25,
|
||||
"hpgrow": 1000,
|
||||
"atkgrow": 1300,
|
||||
"defgrow": 1250,
|
||||
"speedgrow": 0
|
||||
}
|
||||
]
|
File diff suppressed because it is too large
Load Diff
@ -1,41 +1,47 @@
|
||||
[
|
||||
{
|
||||
"color": 1,
|
||||
"star": 1,
|
||||
"level": 1,
|
||||
"starup_hp": 0,
|
||||
"starup_atk": 0,
|
||||
"starup_def": 0,
|
||||
"starup_speed": 0
|
||||
},
|
||||
{
|
||||
"color": 2,
|
||||
"star": 2,
|
||||
"level": 10,
|
||||
"starup_hp": 9.5,
|
||||
"starup_atk": 9.5,
|
||||
"starup_def": 9.5,
|
||||
"starup_speed": 9.5
|
||||
},
|
||||
{
|
||||
"color": 3,
|
||||
"star": 3,
|
||||
"level": 20,
|
||||
"starup_hp": 19,
|
||||
"starup_atk": 19,
|
||||
"starup_def": 19,
|
||||
"starup_speed": 19
|
||||
},
|
||||
{
|
||||
"color": 4,
|
||||
"star": 4,
|
||||
"level": 30,
|
||||
"starup_hp": 28.5,
|
||||
"starup_atk": 28.5,
|
||||
"starup_def": 28.5,
|
||||
"starup_speed": 28.5
|
||||
},
|
||||
{
|
||||
"color": 5,
|
||||
"star": 5,
|
||||
"level": 40,
|
||||
"starup_hp": 38,
|
||||
"starup_atk": 38,
|
||||
"starup_def": 38,
|
||||
"starup_speed": 38
|
||||
},
|
||||
{
|
||||
"color": 6,
|
||||
"star": 6,
|
||||
"level": 50,
|
||||
"starup_hp": 47.5,
|
||||
"starup_atk": 47.5,
|
||||
"starup_def": 47.5,
|
||||
|
@ -11,7 +11,8 @@
|
||||
1
|
||||
],
|
||||
"needracestar": 4,
|
||||
"needracenum": 4
|
||||
"needracenum": 4,
|
||||
"gold": 10000
|
||||
},
|
||||
{
|
||||
"key": 2,
|
||||
@ -25,19 +26,21 @@
|
||||
1
|
||||
],
|
||||
"needracestar": 5,
|
||||
"needracenum": 4
|
||||
"needracenum": 4,
|
||||
"gold": 10000
|
||||
},
|
||||
{
|
||||
"key": 3,
|
||||
"id": 15001,
|
||||
"star": 6,
|
||||
"maxlevel": 60,
|
||||
"needhero": 15001,
|
||||
"needhero": 0,
|
||||
"needherostar": 0,
|
||||
"needheronum": 0,
|
||||
"needrace": [],
|
||||
"needracestar": 0,
|
||||
"needracenum": 0
|
||||
"needracenum": 0,
|
||||
"gold": 0
|
||||
},
|
||||
{
|
||||
"key": 4,
|
||||
@ -51,19 +54,21 @@
|
||||
2
|
||||
],
|
||||
"needracestar": 5,
|
||||
"needracenum": 4
|
||||
"needracenum": 4,
|
||||
"gold": 10000
|
||||
},
|
||||
{
|
||||
"key": 5,
|
||||
"id": 25001,
|
||||
"star": 6,
|
||||
"maxlevel": 60,
|
||||
"needhero": 25001,
|
||||
"needhero": 0,
|
||||
"needherostar": 0,
|
||||
"needheronum": 0,
|
||||
"needrace": [],
|
||||
"needracestar": 0,
|
||||
"needracenum": 0
|
||||
"needracenum": 0,
|
||||
"gold": 0
|
||||
},
|
||||
{
|
||||
"key": 6,
|
||||
@ -77,19 +82,21 @@
|
||||
3
|
||||
],
|
||||
"needracestar": 5,
|
||||
"needracenum": 4
|
||||
"needracenum": 4,
|
||||
"gold": 10000
|
||||
},
|
||||
{
|
||||
"key": 7,
|
||||
"id": 35001,
|
||||
"star": 6,
|
||||
"maxlevel": 60,
|
||||
"needhero": 35001,
|
||||
"needhero": 0,
|
||||
"needherostar": 0,
|
||||
"needheronum": 0,
|
||||
"needrace": [],
|
||||
"needracestar": 0,
|
||||
"needracenum": 0
|
||||
"needracenum": 0,
|
||||
"gold": 0
|
||||
},
|
||||
{
|
||||
"key": 8,
|
||||
@ -103,26 +110,28 @@
|
||||
4
|
||||
],
|
||||
"needracestar": 5,
|
||||
"needracenum": 4
|
||||
"needracenum": 4,
|
||||
"gold": 10000
|
||||
},
|
||||
{
|
||||
"key": 9,
|
||||
"id": 44001,
|
||||
"star": 6,
|
||||
"maxlevel": 60,
|
||||
"needhero": 44001,
|
||||
"needhero": 0,
|
||||
"needherostar": 0,
|
||||
"needheronum": 0,
|
||||
"needrace": [],
|
||||
"needracestar": 0,
|
||||
"needracenum": 0
|
||||
"needracenum": 0,
|
||||
"gold": 0
|
||||
},
|
||||
{
|
||||
"key": 10,
|
||||
"id": 44901,
|
||||
"id": 43901,
|
||||
"star": 3,
|
||||
"maxlevel": 30,
|
||||
"needhero": 44901,
|
||||
"needhero": 43901,
|
||||
"needherostar": 3,
|
||||
"needheronum": 1,
|
||||
"needrace": [
|
||||
@ -132,14 +141,15 @@
|
||||
4
|
||||
],
|
||||
"needracestar": 3,
|
||||
"needracenum": 4
|
||||
"needracenum": 4,
|
||||
"gold": 10000
|
||||
},
|
||||
{
|
||||
"key": 11,
|
||||
"id": 44901,
|
||||
"id": 43901,
|
||||
"star": 4,
|
||||
"maxlevel": 40,
|
||||
"needhero": 44901,
|
||||
"needhero": 43901,
|
||||
"needherostar": 4,
|
||||
"needheronum": 1,
|
||||
"needrace": [
|
||||
@ -149,14 +159,15 @@
|
||||
4
|
||||
],
|
||||
"needracestar": 4,
|
||||
"needracenum": 4
|
||||
"needracenum": 4,
|
||||
"gold": 10000
|
||||
},
|
||||
{
|
||||
"key": 12,
|
||||
"id": 44901,
|
||||
"id": 43901,
|
||||
"star": 5,
|
||||
"maxlevel": 50,
|
||||
"needhero": 44901,
|
||||
"needhero": 43901,
|
||||
"needherostar": 5,
|
||||
"needheronum": 1,
|
||||
"needrace": [
|
||||
@ -166,93 +177,20 @@
|
||||
4
|
||||
],
|
||||
"needracestar": 5,
|
||||
"needracenum": 4
|
||||
"needracenum": 4,
|
||||
"gold": 10000
|
||||
},
|
||||
{
|
||||
"key": 13,
|
||||
"id": 44901,
|
||||
"id": 43901,
|
||||
"star": 6,
|
||||
"maxlevel": 60,
|
||||
"needhero": 44901,
|
||||
"needhero": 0,
|
||||
"needherostar": 0,
|
||||
"needheronum": 0,
|
||||
"needrace": [],
|
||||
"needracestar": 0,
|
||||
"needracenum": 0
|
||||
},
|
||||
{
|
||||
"key": 14,
|
||||
"id": 44902,
|
||||
"star": 4,
|
||||
"maxlevel": 40,
|
||||
"needhero": 44902,
|
||||
"needherostar": 4,
|
||||
"needheronum": 1,
|
||||
"needrace": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"needracestar": 4,
|
||||
"needracenum": 4
|
||||
},
|
||||
{
|
||||
"key": 15,
|
||||
"id": 44902,
|
||||
"star": 5,
|
||||
"maxlevel": 50,
|
||||
"needhero": 44902,
|
||||
"needherostar": 5,
|
||||
"needheronum": 1,
|
||||
"needrace": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"needracestar": 5,
|
||||
"needracenum": 4
|
||||
},
|
||||
{
|
||||
"key": 16,
|
||||
"id": 44902,
|
||||
"star": 6,
|
||||
"maxlevel": 60,
|
||||
"needhero": 44902,
|
||||
"needherostar": 0,
|
||||
"needheronum": 0,
|
||||
"needrace": [],
|
||||
"needracestar": 0,
|
||||
"needracenum": 0
|
||||
},
|
||||
{
|
||||
"key": 17,
|
||||
"id": 44903,
|
||||
"star": 5,
|
||||
"maxlevel": 50,
|
||||
"needhero": 44903,
|
||||
"needherostar": 5,
|
||||
"needheronum": 1,
|
||||
"needrace": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"needracestar": 5,
|
||||
"needracenum": 4
|
||||
},
|
||||
{
|
||||
"key": 18,
|
||||
"id": 44903,
|
||||
"star": 6,
|
||||
"maxlevel": 60,
|
||||
"needhero": 44903,
|
||||
"needherostar": 0,
|
||||
"needheronum": 0,
|
||||
"needrace": [],
|
||||
"needracestar": 0,
|
||||
"needracenum": 0
|
||||
"needracenum": 0,
|
||||
"gold": 0
|
||||
}
|
||||
]
|
@ -1 +1,278 @@
|
||||
[]
|
||||
[
|
||||
{
|
||||
"itemid": 10001,
|
||||
"name": "1阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 2,
|
||||
"race": 1,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10002,
|
||||
"name": "1阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 3,
|
||||
"race": 1,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10003,
|
||||
"name": "1阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 4,
|
||||
"race": 1,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10011,
|
||||
"name": "2阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 2,
|
||||
"race": 2,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10012,
|
||||
"name": "2阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 3,
|
||||
"race": 2,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10013,
|
||||
"name": "2阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 4,
|
||||
"race": 2,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10021,
|
||||
"name": "3阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 2,
|
||||
"race": 3,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10022,
|
||||
"name": "3阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 3,
|
||||
"race": 3,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10023,
|
||||
"name": "3阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 4,
|
||||
"race": 3,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10031,
|
||||
"name": "4阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 2,
|
||||
"race": 4,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10032,
|
||||
"name": "4阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 3,
|
||||
"race": 4,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
},
|
||||
{
|
||||
"itemid": 10033,
|
||||
"name": "4阵营觉醒材料",
|
||||
"usetype": 9,
|
||||
"color": 4,
|
||||
"race": 4,
|
||||
"bagtype": false,
|
||||
"index": 10001,
|
||||
"texiao": "",
|
||||
"dlp": 0,
|
||||
"composenum": 0,
|
||||
"htype": 0,
|
||||
"tujing": 0,
|
||||
"usetz": 0,
|
||||
"maxnum": 999,
|
||||
"uselv": 1,
|
||||
"ismutil": 1,
|
||||
"type": 0,
|
||||
"img": "",
|
||||
"ico": "",
|
||||
"intr": "",
|
||||
"sale": ""
|
||||
}
|
||||
]
|
@ -1 +0,0 @@
|
||||
[]
|
@ -1,6 +1,6 @@
|
||||
[
|
||||
{
|
||||
"id": 15001,
|
||||
"hid": 15001,
|
||||
"name": "阿宝",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
@ -28,7 +28,7 @@
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 25001,
|
||||
"hid": 25001,
|
||||
"name": "亚丝翠",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
@ -56,7 +56,7 @@
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 35001,
|
||||
"hid": 35001,
|
||||
"name": "波比",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
@ -84,7 +84,7 @@
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 44001,
|
||||
"hid": 44001,
|
||||
"name": "悍娇虎",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
@ -112,16 +112,16 @@
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 44901,
|
||||
"name": "升星精灵·稀有",
|
||||
"hid": 43901,
|
||||
"name": "升星精灵",
|
||||
"star": 3,
|
||||
"color": 2,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 2,
|
||||
"prefab": "44901",
|
||||
"icon": 44901,
|
||||
"sound": 44901,
|
||||
"prefab": "43901",
|
||||
"icon": 43901,
|
||||
"sound": 43901,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
@ -140,69 +140,69 @@
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 44902,
|
||||
"name": "升星精灵·史诗",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 2,
|
||||
"prefab": "44902",
|
||||
"icon": 44902,
|
||||
"sound": 44902,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill": 0,
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 44903,
|
||||
"name": "升星精灵·传说",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 2,
|
||||
"prefab": "44903",
|
||||
"icon": 44903,
|
||||
"sound": 44903,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill": 0,
|
||||
"skill1": 0,
|
||||
"skill2": 0,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 44911,
|
||||
"hid": 42911,
|
||||
"name": "初级经验精灵",
|
||||
"star": 2,
|
||||
"color": 1,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 3,
|
||||
"prefab": "42911",
|
||||
"icon": 42911,
|
||||
"sound": 42911,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill": 0,
|
||||
"skill1": 100044911,
|
||||
"skill2": 100044911,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"hid": 43911,
|
||||
"name": "中级经验精灵",
|
||||
"star": 3,
|
||||
"color": 2,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 3,
|
||||
"prefab": "43911",
|
||||
"icon": 43911,
|
||||
"sound": 43911,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill": 0,
|
||||
"skill1": 100044912,
|
||||
"skill2": 100044911,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"hid": 44911,
|
||||
"name": "高级经验精灵",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 3,
|
||||
"prefab": "44911",
|
||||
"icon": 44911,
|
||||
"sound": 44911,
|
||||
@ -219,74 +219,46 @@
|
||||
"z": 0
|
||||
},
|
||||
"skill": 0,
|
||||
"skill1": 100044911,
|
||||
"skill2": 100044911,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 44912,
|
||||
"name": "中级经验精灵",
|
||||
"star": 2,
|
||||
"color": 1,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 3,
|
||||
"prefab": "44912",
|
||||
"icon": 44912,
|
||||
"sound": 44912,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill": 0,
|
||||
"skill1": 100044912,
|
||||
"skill2": 100044911,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 44913,
|
||||
"name": "高级经验精灵",
|
||||
"star": 2,
|
||||
"color": 1,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 3,
|
||||
"prefab": "44913",
|
||||
"icon": 44913,
|
||||
"sound": 44913,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill": 0,
|
||||
"skill1": 100044913,
|
||||
"skill2": 100044911,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 44921,
|
||||
"hid": 43921,
|
||||
"name": "技能精灵·稀有",
|
||||
"star": 3,
|
||||
"color": 2,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 4,
|
||||
"prefab": "43921",
|
||||
"icon": 43921,
|
||||
"sound": 43921,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill": 0,
|
||||
"skill1": 100044921,
|
||||
"skill2": 100044911,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"hid": 44921,
|
||||
"name": "技能精灵·史诗",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 4,
|
||||
"prefab": "44921",
|
||||
"icon": 44921,
|
||||
"sound": 44921,
|
||||
@ -303,49 +275,21 @@
|
||||
"z": 0
|
||||
},
|
||||
"skill": 0,
|
||||
"skill1": 100044921,
|
||||
"skill2": 100044911,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 44922,
|
||||
"name": "技能精灵·史诗",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 4,
|
||||
"prefab": "44922",
|
||||
"icon": 44922,
|
||||
"sound": 44922,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
"intr": "",
|
||||
"events": "hero_2011",
|
||||
"cite": "",
|
||||
"effectstay": [],
|
||||
"hpspace": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"skill": 0,
|
||||
"skill1": 100044922,
|
||||
"skill2": 100044911,
|
||||
"skill3": 0
|
||||
},
|
||||
{
|
||||
"id": 44923,
|
||||
"hid": 45921,
|
||||
"name": "技能精灵·传说",
|
||||
"star": 5,
|
||||
"color": 4,
|
||||
"race": 4,
|
||||
"job": 5,
|
||||
"type": 4,
|
||||
"prefab": "44923",
|
||||
"icon": 44923,
|
||||
"sound": 44923,
|
||||
"prefab": "45921",
|
||||
"icon": 45921,
|
||||
"sound": 45921,
|
||||
"tujing": [
|
||||
1
|
||||
],
|
||||
|
@ -2,78 +2,106 @@
|
||||
{
|
||||
"sameid": 110001,
|
||||
"act": "Atk",
|
||||
"tubiao": "skillicon_1",
|
||||
"tubiao": "skillicon_001",
|
||||
"name": "太极一式",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110002,
|
||||
"act": "Skill1",
|
||||
"tubiao": "skillicon_1",
|
||||
"tubiao": "skillicon_002",
|
||||
"name": "太极零式",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110003,
|
||||
"act": "Skill2",
|
||||
"tubiao": "skillicon_3",
|
||||
"tubiao": "skillicon_003",
|
||||
"name": "太极最终式",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110004,
|
||||
"act": "Atk",
|
||||
"tubiao": "skillicon_1",
|
||||
"tubiao": "skillicon_004",
|
||||
"name": "和谐音律",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110005,
|
||||
"act": "Skill1",
|
||||
"tubiao": "skillicon_2",
|
||||
"tubiao": "skillicon_005",
|
||||
"name": "彩虹音符",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110006,
|
||||
"act": "Atk",
|
||||
"tubiao": "skillicon_1",
|
||||
"tubiao": "skillicon_010",
|
||||
"name": "冰霜之语",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110007,
|
||||
"act": "Skill1",
|
||||
"tubiao": "skillicon_2",
|
||||
"tubiao": "skillicon_011",
|
||||
"name": "极寒领域",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110008,
|
||||
"act": "Atk",
|
||||
"tubiao": "skillicon_1",
|
||||
"tubiao": "skillicon_013",
|
||||
"name": "梦·呓语",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110009,
|
||||
"act": "Skill1",
|
||||
"tubiao": "skillicon_2",
|
||||
"tubiao": "skillicon_014",
|
||||
"name": "梦·创世",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110010,
|
||||
"act": "Atk",
|
||||
"tubiao": "skillicon_1",
|
||||
"tubiao": "skillicon_007",
|
||||
"name": "一往无前",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110011,
|
||||
"act": "Skill1",
|
||||
"tubiao": "skillicon_2",
|
||||
"tubiao": "skillicon_008",
|
||||
"name": "自由之往",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110012,
|
||||
"act": "Skill2",
|
||||
"tubiao": "skillicon_006",
|
||||
"name": "彩虹音符",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110013,
|
||||
"act": "Skill2",
|
||||
"tubiao": "skillicon_009",
|
||||
"name": "自由之往",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110014,
|
||||
"act": "Skill2",
|
||||
"tubiao": "skillicon_012",
|
||||
"name": "极寒领域",
|
||||
"describe": ""
|
||||
},
|
||||
{
|
||||
"sameid": 110015,
|
||||
"act": "Skill2",
|
||||
"tubiao": "skillicon_015",
|
||||
"name": "梦·创世",
|
||||
"describe": ""
|
||||
}
|
||||
]
|
@ -1,13 +1,17 @@
|
||||
[
|
||||
{
|
||||
"Id": 200012101,
|
||||
"Desc": "给自己加回合结束后触发的BUFF",
|
||||
"Target": "",
|
||||
"Id": 200011101,
|
||||
"Desc": "对敌方1个目标造成攻击力80%",
|
||||
"From": 4,
|
||||
"Limit": 1,
|
||||
"Where": [],
|
||||
"Order": [
|
||||
"Type=rand"
|
||||
],
|
||||
"EmitPR": 1000,
|
||||
"Type": "AddBuff",
|
||||
"Type": "tongyongshanghai",
|
||||
"Argu": [
|
||||
"400011101",
|
||||
"1"
|
||||
"DoVal=1,ProSou1=0,Pro1=Total_Atk,ProPar1=800"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
@ -16,14 +20,18 @@
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012102,
|
||||
"Desc": "给自己加引雷BUFF1(伤害触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1001,
|
||||
"Type": "AddBuff",
|
||||
"Id": 200012101,
|
||||
"Desc": "对敌方全体造成攻击力80%以及防御力120%的伤害",
|
||||
"From": 2,
|
||||
"Limit": 5,
|
||||
"Where": [],
|
||||
"Order": [
|
||||
"Type=rand"
|
||||
],
|
||||
"EmitPR": 1000,
|
||||
"Type": "tongyongshanghai",
|
||||
"Argu": [
|
||||
"400011102",
|
||||
"1"
|
||||
"DoVal=1,ProSou1=0,Pro1=Total_Atk,ProPar1=800,ProSou2=0,Pro2=Total_Def,ProPar2=1200"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
@ -32,740 +40,18 @@
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012103,
|
||||
"Desc": "给自己加引雷BUFF2(受击触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1002,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400011103",
|
||||
"1"
|
||||
"Id": 200013101,
|
||||
"Desc": "对敌方全体攻击小于自身的目标造成攻击力80%的伤害",
|
||||
"From": 2,
|
||||
"Limit": 5,
|
||||
"Where": [
|
||||
"Type=ProJudge,JudgeType=0,Key=Total_Atk,Op=1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012104,
|
||||
"Desc": "给自己加引雷BUFF3(受控触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1003,
|
||||
"Type": "AddBuff",
|
||||
"Order": [],
|
||||
"EmitPR": 1000,
|
||||
"Type": "tongyongshanghai",
|
||||
"Argu": [
|
||||
"400011104",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012105,
|
||||
"Desc": "造成全体伤害",
|
||||
"Target": "",
|
||||
"EmitPR": 1004,
|
||||
"Type": "DefDam",
|
||||
"Argu": [
|
||||
"850"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": [
|
||||
"shanghai",
|
||||
"xxx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 200012106,
|
||||
"Desc": "给自己加防御提升BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1005,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"300011107",
|
||||
"1",
|
||||
"Buff_Per_Def",
|
||||
"1",
|
||||
"200"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012107,
|
||||
"Desc": "驱散自身 引雷 标签所有BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1006,
|
||||
"Type": "qushanbiaoqian",
|
||||
"Argu": [
|
||||
"yinlei"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012201,
|
||||
"Desc": "给自己加回合结束后触发的BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1007,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400011201",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012202,
|
||||
"Desc": "给自己加引雷BUFF1(伤害触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1008,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012202",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012203,
|
||||
"Desc": "给自己加引雷BUFF2(受击触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1009,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012203",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012204,
|
||||
"Desc": "给自己加引雷BUFF3(受控触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1010,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012204",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012205,
|
||||
"Desc": "造成全体伤害",
|
||||
"Target": "",
|
||||
"EmitPR": 1011,
|
||||
"Type": "DefDam",
|
||||
"Argu": [
|
||||
"900"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": [
|
||||
"shanghai"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 200012206,
|
||||
"Desc": "给自己加防御提升BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1012,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"300012207",
|
||||
"1",
|
||||
"Buff_Per_Def",
|
||||
"1",
|
||||
"200"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012207,
|
||||
"Desc": "驱散自身 引雷 标签所有BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1013,
|
||||
"Type": "qushanbiaoqian",
|
||||
"Argu": [
|
||||
"yinlei"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012301,
|
||||
"Desc": "给自己加回合结束后触发的BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1014,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012301",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012302,
|
||||
"Desc": "给自己加引雷BUFF1(伤害触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1015,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012302",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012303,
|
||||
"Desc": "给自己加引雷BUFF2(受击触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1016,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012303",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012304,
|
||||
"Desc": "给自己加引雷BUFF3(受控触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1017,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012304",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012305,
|
||||
"Desc": "造成全体伤害",
|
||||
"Target": "",
|
||||
"EmitPR": 1018,
|
||||
"Type": "DefDam",
|
||||
"Argu": [
|
||||
"950"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": [
|
||||
"shanghai"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 200012306,
|
||||
"Desc": "给自己加防御提升BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1019,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"300011307",
|
||||
"1",
|
||||
"Buff_Per_Def",
|
||||
"1",
|
||||
"200"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012307,
|
||||
"Desc": "驱散自身 引雷 标签所有BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1020,
|
||||
"Type": "qushanbiaoqian",
|
||||
"Argu": [
|
||||
"yinlei"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012401,
|
||||
"Desc": "给自己加回合结束后触发的BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1021,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012401",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012402,
|
||||
"Desc": "给自己加引雷BUFF1(伤害触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1022,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012402",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012403,
|
||||
"Desc": "给自己加引雷BUFF2(受击触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1023,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012403",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012404,
|
||||
"Desc": "给自己加引雷BUFF3(受控触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1024,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012404",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012405,
|
||||
"Desc": "造成全体伤害",
|
||||
"Target": "",
|
||||
"EmitPR": 1025,
|
||||
"Type": "DefDam",
|
||||
"Argu": [
|
||||
"1000"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": [
|
||||
"shanghai"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 200012406,
|
||||
"Desc": "给自己加防御提升BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1026,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"30012407",
|
||||
"1",
|
||||
"Buff_Per_Def",
|
||||
"1",
|
||||
"200"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012407,
|
||||
"Desc": "驱散自身 引雷 标签所有BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1027,
|
||||
"Type": "qushanbiaoqian",
|
||||
"Argu": [
|
||||
"yinlei"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012501,
|
||||
"Desc": "给自己加回合结束后触发的BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1028,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012501",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012502,
|
||||
"Desc": "给自己加引雷BUFF1(伤害触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1029,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012502",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012503,
|
||||
"Desc": "给自己加引雷BUFF2(受击触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1030,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012503",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012504,
|
||||
"Desc": "给自己加引雷BUFF3(受控触发)的子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1031,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400012504",
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012505,
|
||||
"Desc": "造成全体伤害",
|
||||
"Target": "",
|
||||
"EmitPR": 1032,
|
||||
"Type": "DefDam",
|
||||
"Argu": [
|
||||
"1100"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012506,
|
||||
"Desc": "给自己加防御提升BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1033,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"30012507",
|
||||
"1",
|
||||
"Buff_Per_Def",
|
||||
"1",
|
||||
"200"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200012507,
|
||||
"Desc": "驱散自身 引雷 标签所有BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1034,
|
||||
"Type": "qushanbiaoqian",
|
||||
"Argu": [
|
||||
"yinlei"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200015101,
|
||||
"Desc": "加暴击检测触发的BUFF",
|
||||
"Target": "",
|
||||
"EmitPR": 1035,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400015101",
|
||||
"-1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200015102,
|
||||
"Desc": "减少当前角色第几个技能的CD",
|
||||
"Target": "",
|
||||
"EmitPR": 1036,
|
||||
"Type": "yingxiangCD",
|
||||
"Argu": [
|
||||
"1",
|
||||
"1",
|
||||
"2"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200222001,
|
||||
"Desc": "给自己加 受击触发调用子技能效果的 子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1037,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400222001"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200222002,
|
||||
"Desc": "给自己加公牛之怒,每层可提升自身10%的基础防御力",
|
||||
"Target": "",
|
||||
"EmitPR": 1038,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"300222002",
|
||||
"-1",
|
||||
"Buff_Per_Def",
|
||||
"1",
|
||||
"100"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200222003,
|
||||
"Desc": "给自己加公牛之怒,每层5%的效果抵抗,最多可叠加10层",
|
||||
"Target": "",
|
||||
"EmitPR": 1039,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"300222003",
|
||||
"-1",
|
||||
"Add_EffRe",
|
||||
"1",
|
||||
"50"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200225004,
|
||||
"Desc": "给自己加 BUFF10层触发调用子技能效果的 子技能",
|
||||
"Target": "",
|
||||
"EmitPR": 1040,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400225004",
|
||||
"-1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200225005,
|
||||
"Desc": "自身获得10层【公牛之怒】时将立即获得回合",
|
||||
"Target": "",
|
||||
"EmitPR": 1041,
|
||||
"Type": "huodehuihe",
|
||||
"Argu": [
|
||||
"1"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200223001,
|
||||
"Desc": "若自身拥有10层【公牛之怒】,则本次伤害额外提升50%",
|
||||
"Target": "",
|
||||
"EmitPR": 1042,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"300223001",
|
||||
"0",
|
||||
"CauseDam",
|
||||
"1",
|
||||
"500"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200223002,
|
||||
"Desc": "对敌方1个目标造成攻击力80%以及防御力120%的伤害",
|
||||
"Target": "",
|
||||
"EmitPR": 1043,
|
||||
"Type": "AtkDefDam",
|
||||
"Argu": [
|
||||
"800",
|
||||
"1000"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": [
|
||||
"shanghai"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 200223003,
|
||||
"Desc": "并【挑衅】1名敌人2回合",
|
||||
"Target": "",
|
||||
"EmitPR": 1044,
|
||||
"Type": "AddBuff",
|
||||
"Argu": [
|
||||
"400223003",
|
||||
"2"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200223004,
|
||||
"Desc": "驱散公牛之怒",
|
||||
"Target": "",
|
||||
"EmitPR": 1045,
|
||||
"Type": "qushanbiaoqian",
|
||||
"Argu": [
|
||||
"gongniuzhinu"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 200223005,
|
||||
"Desc": "每层【公牛之怒】效果为自身回复5%的最大生命值。",
|
||||
"Target": "",
|
||||
"EmitPR": 1046,
|
||||
"Type": "canshuhuifubaifenbishengming",
|
||||
"Argu": [
|
||||
"50"
|
||||
"DoVal=1,ProSou1=0,Pro1=Total_Atk,ProPar1=800"
|
||||
],
|
||||
"AddEffect": false,
|
||||
"FollowSK": [],
|
||||
|
@ -1,147 +1,144 @@
|
||||
[
|
||||
{
|
||||
"Id": 100012000,
|
||||
"Name": "雷神之怒",
|
||||
"Type": 2,
|
||||
"Desc": "每回合结束后,会进入【引雷】状态,持续1回合,在自身新回合开始时,对敌方全体造成防御力110%的伤害。【引雷】期间自身每次收到攻击时都会获得1层【雷之庇佑】,但出于不可行动状态时解除【引雷】状态。",
|
||||
"MaxLV": 5,
|
||||
"Id": 100011000,
|
||||
"Name": "",
|
||||
"Type": 1,
|
||||
"Desc": "对敌方1个目标造成攻击力80%",
|
||||
"MaxLV": 6,
|
||||
"CD": [
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
3
|
||||
4,
|
||||
4
|
||||
],
|
||||
"Target": 1,
|
||||
"ChildSkill": [
|
||||
{
|
||||
"Id": [
|
||||
20001210
|
||||
200011101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200012201
|
||||
200011101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200012301,
|
||||
200015101
|
||||
200011101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200012401,
|
||||
200015101
|
||||
200011101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200012501
|
||||
200011101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200011101
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 100015000,
|
||||
"Name": "雷神之怒",
|
||||
"Type": 2,
|
||||
"Desc": "每回合结束后,会进入【引雷】状态,持续1回合,在自身新回合开始时,对敌方全体造成防御力110%的伤害。【引雷】期间自身每次收到攻击时都会获得1层【雷之庇佑】,但出于不可行动状态时解除【引雷】状态。自身的任意主动技能命中敌人触发暴击时降低此技能1回合冷却(技能无论触发多少次暴击都只执行1次,也就是被动每回合只执行1次)",
|
||||
"MaxLV": 5,
|
||||
"Id": 100012000,
|
||||
"Name": "",
|
||||
"Type": 1,
|
||||
"Desc": "对敌方全体造成攻击力80%以及防御力120%的伤害",
|
||||
"MaxLV": 6,
|
||||
"CD": [
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
3
|
||||
4,
|
||||
4
|
||||
],
|
||||
"Target": 2,
|
||||
"ChildSkill": [
|
||||
{
|
||||
"Id": [
|
||||
200012101,
|
||||
200015101
|
||||
200012101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200012201,
|
||||
200015101
|
||||
200012101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200012301,
|
||||
200015101
|
||||
200012101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200012401,
|
||||
200015101
|
||||
200012101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200012501,
|
||||
200015101
|
||||
200012101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200012101
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 100222000,
|
||||
"Name": "蓄势待发",
|
||||
"Type": 2,
|
||||
"Desc": "每次受到攻击时,自身获得1层【公牛之怒】,每层可提升自身10%的基础防御力和5%的效果抵抗,最多可叠加10层。",
|
||||
"MaxLV": 1,
|
||||
"CD": [],
|
||||
"Target": 3,
|
||||
"ChildSkill": [
|
||||
{
|
||||
"Id": [
|
||||
200222001
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 100225000,
|
||||
"Name": "蓄势待发",
|
||||
"Type": 2,
|
||||
"Desc": "每次受到攻击时,自身获得1层【公牛之怒】,每层可提升自身10%的基础防御力和5%的效果抵抗,最多可叠加10层。自身获得10层【公牛之怒】时将立即获得回合",
|
||||
"MaxLV": 1,
|
||||
"CD": [],
|
||||
"Target": 4,
|
||||
"ChildSkill": [
|
||||
{
|
||||
"Id": [
|
||||
200222001,
|
||||
200225004
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 100223000,
|
||||
"Name": "烈阳暴吼",
|
||||
"Id": 100013000,
|
||||
"Name": "",
|
||||
"Type": 1,
|
||||
"Desc": "对敌方1个目标造成攻击力80%以及防御力120%的伤害,并【挑衅】1名敌人2回合。若自身拥有10层【公牛之怒】,则本次伤害额外提升50%。随后消耗全部【公牛之怒】效果,每层【公牛之怒】效果为自身回复5%的最大生命值。",
|
||||
"Desc": "对敌方全体攻击小于自身的目标造成攻击力80%的伤害",
|
||||
"MaxLV": 6,
|
||||
"CD": [
|
||||
5,
|
||||
5,
|
||||
5,
|
||||
5,
|
||||
5,
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
4
|
||||
],
|
||||
"Target": 5,
|
||||
"Target": 2,
|
||||
"ChildSkill": [
|
||||
{
|
||||
"Id": [
|
||||
200223001
|
||||
200013101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200013101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200013101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200013101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200013101
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": [
|
||||
200013101
|
||||
]
|
||||
}
|
||||
]
|
||||
|
@ -1,88 +1 @@
|
||||
[
|
||||
{
|
||||
"Id": 300012106,
|
||||
"Type": "ModifyAttribute1",
|
||||
"Name": "雷之庇佑",
|
||||
"Desc": "每次受到攻击提升20%的防御,最多叠加5层",
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
],
|
||||
"OverlayTimes": 5,
|
||||
"SameID": false
|
||||
},
|
||||
{
|
||||
"Id": 300012206,
|
||||
"Type": "ModifyAttribute1",
|
||||
"Name": "雷之庇佑",
|
||||
"Desc": "每次受到攻击提升20%的防御,最多叠加5层",
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
],
|
||||
"OverlayTimes": 5,
|
||||
"SameID": false
|
||||
},
|
||||
{
|
||||
"Id": 300012306,
|
||||
"Type": "ModifyAttribute1",
|
||||
"Name": "雷之庇佑",
|
||||
"Desc": "每次受到攻击提升20%的防御,最多叠加5层",
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
],
|
||||
"OverlayTimes": 5,
|
||||
"SameID": false
|
||||
},
|
||||
{
|
||||
"Id": 300012406,
|
||||
"Type": "ModifyAttribute1",
|
||||
"Name": "雷之庇佑",
|
||||
"Desc": "每次受到攻击提升20%的防御,最多叠加5层",
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
],
|
||||
"OverlayTimes": 5,
|
||||
"SameID": false
|
||||
},
|
||||
{
|
||||
"Id": 300012506,
|
||||
"Type": "ModifyAttribute1",
|
||||
"Name": "雷之庇佑",
|
||||
"Desc": "每次受到攻击提升20%的防御,最多叠加5层",
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
],
|
||||
"OverlayTimes": 5,
|
||||
"SameID": false
|
||||
},
|
||||
{
|
||||
"Id": 300222002,
|
||||
"Type": "ModifyAttribute1",
|
||||
"Name": "公牛之怒",
|
||||
"Desc": "给自己加公牛之怒,每层可提升自身10%的基础防御力",
|
||||
"Tags": [
|
||||
"gongniuzhinu"
|
||||
],
|
||||
"OverlayTimes": 5,
|
||||
"SameID": false
|
||||
},
|
||||
{
|
||||
"Id": 300222003,
|
||||
"Type": "ModifyAttribute1",
|
||||
"Name": "公牛之怒",
|
||||
"Desc": "给自己加公牛之怒,每层5%的效果抵抗,最多可叠加10层",
|
||||
"Tags": [
|
||||
"gongniuzhinu"
|
||||
],
|
||||
"OverlayTimes": 5,
|
||||
"SameID": false
|
||||
},
|
||||
{
|
||||
"Id": 300223001,
|
||||
"Type": "ModifyAttribute1",
|
||||
"Name": "",
|
||||
"Desc": "临时的伤害额外提升50%",
|
||||
"Tags": [],
|
||||
"OverlayTimes": 0,
|
||||
"SameID": false
|
||||
}
|
||||
]
|
||||
[]
|
@ -1,307 +1 @@
|
||||
[
|
||||
{
|
||||
"Id": 400012101,
|
||||
"Desc": "回合结束后调用附加 引雷 的子技能",
|
||||
"When": "xingdonghou",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011102",
|
||||
"200011103",
|
||||
"200011104"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012102,
|
||||
"Desc": "引雷1 回合结束前触发 调用 打伤害 子技能",
|
||||
"When": "xingdongqian",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011105"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012103,
|
||||
"Desc": "引雷2 受击触发 调用 加防御 子技能",
|
||||
"When": "shoudaoshanghai",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011106"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012104,
|
||||
"Desc": "引雷3 受到不可行动标签效果触发 调用 驱散 子技能",
|
||||
"When": "shoudaobukexingdong",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011107"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 400012201,
|
||||
"Desc": "回合结束后调用附加 引雷 的子技能",
|
||||
"When": "xingdonghou",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011202",
|
||||
"200011203",
|
||||
"200011204"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012202,
|
||||
"Desc": "引雷1 回合结束前触发 调用 打伤害 子技能",
|
||||
"When": "xingdongqian",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011205"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012203,
|
||||
"Desc": "引雷2 受击触发 调用 加防御 子技能",
|
||||
"When": "shoudaoshanghai",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011206"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012204,
|
||||
"Desc": "引雷3 受到不可行动标签效果触发 调用 驱散 子技能",
|
||||
"When": "shoudaobukexingdong",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011207"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 400012301,
|
||||
"Desc": "回合结束后调用附加 引雷 的子技能",
|
||||
"When": "xingdonghou",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011302",
|
||||
"200011303",
|
||||
"200011304"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012302,
|
||||
"Desc": "引雷1 回合结束前触发 调用 打伤害 子技能",
|
||||
"When": "xingdongqian",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011305"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012303,
|
||||
"Desc": "引雷2 受击触发 调用 加防御 子技能",
|
||||
"When": "shoudaoshanghai",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011306"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012304,
|
||||
"Desc": "引雷3 受到不可行动标签效果触发 调用 驱散 子技能",
|
||||
"When": "shoudaobukexingdong",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011307"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 400012401,
|
||||
"Desc": "回合结束后调用附加 引雷 的子技能",
|
||||
"When": "xingdonghou",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011402",
|
||||
"200011403",
|
||||
"200011404"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012402,
|
||||
"Desc": "引雷1 回合结束前触发 调用 打伤害 子技能",
|
||||
"When": "xingdongqian",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011405"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012403,
|
||||
"Desc": "引雷2 受击触发 调用 加防御 子技能",
|
||||
"When": "shoudaoshanghai",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011406"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012404,
|
||||
"Desc": "引雷3 受到不可行动标签效果触发 调用 驱散 子技能",
|
||||
"When": "shoudaobukexingdong",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011407"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 400012501,
|
||||
"Desc": "回合结束后调用附加 引雷 的子技能",
|
||||
"When": "xingdonghou",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011502",
|
||||
"200011503",
|
||||
"200011504"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012502,
|
||||
"Desc": "引雷1 回合结束前触发 调用 打伤害 子技能",
|
||||
"When": "xingdongqian",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011505"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012503,
|
||||
"Desc": "引雷2 受击触发 调用 加防御 子技能",
|
||||
"When": "shoudaoshanghai",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011506"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"yinlei"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Id": 400012504,
|
||||
"Desc": "引雷3 受到不可行动标签效果触发 调用 驱散 子技能",
|
||||
"When": "shoudaobukexingdong",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200011507"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 400015101,
|
||||
"Desc": "自身技能造成暴击触发 调用 减少技能CD的 子技能",
|
||||
"When": "chufabaoji",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200015102"
|
||||
],
|
||||
"MaxEmitTimes": 1,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 400222001,
|
||||
"Desc": "受击调用加 公牛之怒 的子技能",
|
||||
"When": "shoudaoshanghai",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200222002",
|
||||
"200222003"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 400225004,
|
||||
"Desc": "给自己加 公牛之怒 10层触发调用子技能效果",
|
||||
"When": "shoudaozengyi",
|
||||
"Type": "CallAfterAtkSkill",
|
||||
"Argu": [
|
||||
"200225005"
|
||||
],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": []
|
||||
},
|
||||
{
|
||||
"Id": 400223003,
|
||||
"Desc": "挑衅",
|
||||
"When": "xingdongqian",
|
||||
"Type": "tiaoxing",
|
||||
"Argu": [],
|
||||
"MaxEmitTimes": 0,
|
||||
"Tags": [
|
||||
"jianyi"
|
||||
]
|
||||
}
|
||||
]
|
||||
[]
|
@ -428,7 +428,7 @@
|
||||
"blur": 0,
|
||||
"package": "zhandou/zhandou",
|
||||
"packagename": "zhandou",
|
||||
"comname": "battlereadywindow",
|
||||
"comname": "battlereadywindow2",
|
||||
"des": "战斗布阵界面"
|
||||
}
|
||||
]
|
71
comm/const.go
Normal file
71
comm/const.go
Normal file
@ -0,0 +1,71 @@
|
||||
package comm
|
||||
|
||||
import "go_dreamfactory/lego/core"
|
||||
|
||||
type LogHandleType string
|
||||
|
||||
const (
|
||||
LogHandleType_Insert LogHandleType = "insert"
|
||||
LogHandleType_Update LogHandleType = "update"
|
||||
LogHandleType_Delete LogHandleType = "delete"
|
||||
)
|
||||
|
||||
const (
|
||||
SC_ServiceGateRouteComp core.S_Comps = "SC_GateRouteComp" //s_comps.ISC_GateRouteComp
|
||||
)
|
||||
|
||||
const (
|
||||
Service_Gateway = "gateway"
|
||||
Service_Worker = "worker"
|
||||
Service_DB = "dbservice"
|
||||
)
|
||||
|
||||
//ERR
|
||||
const (
|
||||
MainType_Notify = "notify" //通知
|
||||
SubType_ErrorNotify = "errornotify" //错误通知
|
||||
)
|
||||
|
||||
//模块名定义处
|
||||
const (
|
||||
SM_GateModule core.M_Modules = "gateway" //gate模块 网关服务模块
|
||||
SM_WebModule core.M_Modules = "web" //web模块
|
||||
SM_UserModule core.M_Modules = "user" //用户模块
|
||||
SM_PackModule core.M_Modules = "pack" //背包模块
|
||||
SM_MailModule core.M_Modules = "mail" //邮件模块
|
||||
SM_FriendModule core.M_Modules = "friend" //好友模块
|
||||
SM_LogModelModule core.M_Modules = "model" //日志模块
|
||||
SM_EquipmentModule core.M_Modules = "equipment" //装备模块
|
||||
SM_HeroModule core.M_Modules = "hero" //英雄模块
|
||||
SM_ForumModule core.M_Modules = "forum" //论坛模块
|
||||
SM_ItemsModule core.M_Modules = "item"
|
||||
)
|
||||
|
||||
//RPC服务接口定义处
|
||||
const ( //Rpc
|
||||
Rpc_GatewayRoute core.Rpc_Key = "Rpc_GatewayRoute" //网关路由
|
||||
Rpc_GatewayAgentBind core.Rpc_Key = "Rpc_GatewayAgentBind" //代理绑定 绑定用户Id
|
||||
Rpc_GatewayAgentUnBind core.Rpc_Key = "Rpc_GatewayAgentUnBind" //代理解绑 解绑用户Id
|
||||
Rpc_GatewayAgentSendMsg core.Rpc_Key = "Rpc_GatewayAgentSendMsg" //代理发送消息 向用户发送消息
|
||||
Rpc_GatewaySendBatchMsg core.Rpc_Key = "Rpc_GatewaySendBatchMsg" //向多个用户发送消息
|
||||
Rpc_GatewaySendRadioMsg core.Rpc_Key = "Rpc_GatewaySendRadioMsg" //广播消息
|
||||
Rpc_GatewayAgentClose core.Rpc_Key = "Rpc_GatewayAgentClose" //代理关闭 关闭用户连接
|
||||
Rpc_NoticeUserClose core.Rpc_Key = "Rpc_NoticeUserClose" //通知用户离线
|
||||
)
|
||||
|
||||
//事件类型定义处
|
||||
const (
|
||||
Event_UserLogin core.Event_Key = "Event_UserLogin" //登录事件
|
||||
Event_CreateUser core.Event_Key = "Event_CreateUser" //创建角色事件
|
||||
Event_UserOffline core.Event_Key = "Event_UserOffline" //用户离线事件
|
||||
)
|
||||
|
||||
const (
|
||||
DBService_Status string = "DBService_status"
|
||||
)
|
||||
|
||||
const (
|
||||
PropertyHp = 1 //生命
|
||||
PropertyAtk = 2 //攻击
|
||||
PropertyDef = 3 //防御
|
||||
)
|
67
comm/core.go
67
comm/core.go
@ -12,59 +12,6 @@ import (
|
||||
"google.golang.org/protobuf/types/known/anypb"
|
||||
)
|
||||
|
||||
const (
|
||||
SC_ServiceGateRouteComp core.S_Comps = "SC_GateRouteComp" //s_comps.ISC_GateRouteComp
|
||||
)
|
||||
|
||||
const (
|
||||
Service_Gateway = "gateway"
|
||||
Service_Worker = "worker"
|
||||
Service_DB = "dbservice"
|
||||
)
|
||||
|
||||
//ERR
|
||||
const (
|
||||
MainType_Notify = "notify" //通知
|
||||
SubType_ErrorNotify = "errornotify" //错误通知
|
||||
)
|
||||
|
||||
//模块名定义处
|
||||
const (
|
||||
SM_GateModule core.M_Modules = "gateway" //gate模块 网关服务模块
|
||||
SM_WebModule core.M_Modules = "web" //web模块
|
||||
SM_UserModule core.M_Modules = "user" //用户模块
|
||||
SM_ItemsModule core.M_Modules = "items" //道具模块
|
||||
SM_MailModule core.M_Modules = "mail" //邮件模块
|
||||
SM_FriendModule core.M_Modules = "friend" //好友模块
|
||||
SM_LogModelModule core.M_Modules = "model" //日志模块
|
||||
SM_EquipmentModule core.M_Modules = "equipment" //装备模块
|
||||
SM_HeroModule core.M_Modules = "hero" //英雄模块
|
||||
SM_ForumModule core.M_Modules = "forum" //论坛模块
|
||||
)
|
||||
|
||||
//RPC服务接口定义处
|
||||
const ( //Rpc
|
||||
Rpc_GatewayRoute core.Rpc_Key = "Rpc_GatewayRoute" //网关路由
|
||||
Rpc_GatewayAgentBind core.Rpc_Key = "Rpc_GatewayAgentBind" //代理绑定 绑定用户Id
|
||||
Rpc_GatewayAgentUnBind core.Rpc_Key = "Rpc_GatewayAgentUnBind" //代理解绑 解绑用户Id
|
||||
Rpc_GatewayAgentSendMsg core.Rpc_Key = "Rpc_GatewayAgentSendMsg" //代理发送消息 向用户发送消息
|
||||
Rpc_GatewaySendBatchMsg core.Rpc_Key = "Rpc_GatewaySendBatchMsg" //向多个用户发送消息
|
||||
Rpc_GatewaySendRadioMsg core.Rpc_Key = "Rpc_GatewaySendRadioMsg" //广播消息
|
||||
Rpc_GatewayAgentClose core.Rpc_Key = "Rpc_GatewayAgentClose" //代理关闭 关闭用户连接
|
||||
Rpc_NoticeUserClose core.Rpc_Key = "Rpc_NoticeUserClose" //通知用户离线
|
||||
)
|
||||
|
||||
//事件类型定义处
|
||||
const (
|
||||
Event_UserLogin core.Event_Key = "Event_UserLogin" //登录事件
|
||||
Event_CreateUser core.Event_Key = "Event_CreateUser" //创建角色事件
|
||||
Event_UserOffline core.Event_Key = "Event_UserOffline" //用户离线事件
|
||||
)
|
||||
|
||||
const (
|
||||
DBService_Status string = "DBService_status"
|
||||
)
|
||||
|
||||
// 服务网关组件接口定义
|
||||
type ISC_GateRouteComp interface {
|
||||
core.IServiceComp
|
||||
@ -73,6 +20,14 @@ type ISC_GateRouteComp interface {
|
||||
RegisterRouteCheck(methodName string, comp reflect.Value, msg reflect.Type, fn reflect.Method)
|
||||
}
|
||||
|
||||
//游戏类资源类型
|
||||
const (
|
||||
AttrType = "attr" //用户属性资源 例如货币 经验 之类的
|
||||
ItemType = "item" //道具物品资源
|
||||
CardType = "card" //卡片资源 例如英雄卡,检验卡
|
||||
EquipmentType = "equi" //武器资源
|
||||
)
|
||||
|
||||
type Autogenerated struct {
|
||||
ID string `json:"ID,omitempty" bson:"_id"`
|
||||
UID string `json:"uid"`
|
||||
@ -80,13 +35,7 @@ type Autogenerated struct {
|
||||
D []interface{}
|
||||
}
|
||||
|
||||
type LogHandleType string
|
||||
|
||||
const (
|
||||
LogHandleType_Insert LogHandleType = "insert"
|
||||
LogHandleType_Update LogHandleType = "update"
|
||||
LogHandleType_Delete LogHandleType = "delete"
|
||||
)
|
||||
|
||||
const (
|
||||
HeroStarLvRatio int32 = 10 // 卡牌等级上限系数(星级*10)
|
||||
|
@ -14,28 +14,49 @@ type (
|
||||
//道具背包接口
|
||||
IItems interface {
|
||||
//查询用户背包物品数量
|
||||
QueryUserPackItemAmount(uId string, itemid int32) (amount uint32)
|
||||
QueryItemAmount(uId string, itemid int32) (amount uint32)
|
||||
//查询用户背包多个物品数量
|
||||
QueryUserPackItemsAmount(uId string, itemid ...int32) (result map[int32]uint32)
|
||||
QueryItemsAmount(uId string, itemid ...int32) (result map[int32]uint32)
|
||||
///添加单个物品到背包 (可以加物品和减物品)
|
||||
AddItemToUserPack(uId string, itemid, addnum int32) (code pb.ErrorCode)
|
||||
AddItem(uId string, itemid, addnum int32) (code pb.ErrorCode)
|
||||
///添加多个物品到背包 (可以加物品和减物品)
|
||||
AddItemsToUserPack(uId string, items map[int32]int32) (code pb.ErrorCode)
|
||||
AddItems(uId string, items map[int32]int32) (code pb.ErrorCode)
|
||||
}
|
||||
|
||||
//英雄
|
||||
IHero interface {
|
||||
//查询用户卡片数量
|
||||
QueryCardAmount(uId string, cardId int32) (amount uint32)
|
||||
//添加/减少卡片
|
||||
AddCard(uId string, cardId int32, add int32) (code pb.ErrorCode)
|
||||
//创建一个新英雄
|
||||
CreatMultiHero(uid string, heroCfgId ...int32) error
|
||||
|
||||
// 获取英雄
|
||||
// heroId 英雄ID
|
||||
GetHero(heroId string) (*pb.DB_HeroData, pb.ErrorCode)
|
||||
GetHero(uid, heroId string) (*pb.DB_HeroData, pb.ErrorCode)
|
||||
// 佩戴装备
|
||||
UpdateEquipment(hero *pb.DB_HeroData, equip []*pb.DB_Equipment) pb.ErrorCode
|
||||
UpdateEquipment(hero *pb.DB_HeroData, equip []*pb.DB_Equipment) (code pb.ErrorCode)
|
||||
//获取玩家英雄列表
|
||||
GetHeroList(uid string) []*pb.DB_HeroData
|
||||
|
||||
}
|
||||
|
||||
//玩家
|
||||
IUser interface {
|
||||
//获取玩家英雄列表
|
||||
//uid 玩家ID
|
||||
GetHeroList(uid string) []*pb.DB_HeroData
|
||||
//查询用户属性值 例如 金币 经验
|
||||
QueryAttributeValue(uid string, attr string) (value int32)
|
||||
//添加/减少属性值
|
||||
AddAttributeValue(uid string, attr string, add int32) (code pb.ErrorCode)
|
||||
|
||||
}
|
||||
//武器模块
|
||||
IEquipment interface {
|
||||
//查询服务资源数量 db id
|
||||
QueryEquipment(uid string, Id int32) (equipment pb.DB_Equipment, code pb.ErrorCode)
|
||||
//查询服务资源数量 参数武器配置id
|
||||
QueryEquipmentAmount(uid string, equipmentId int32) (amount uint32)
|
||||
//新加武器
|
||||
AddNewEquipments(uid string, eid int, add int32) (code pb.ErrorCode)
|
||||
}
|
||||
)
|
||||
|
3
go.mod
3
go.mod
@ -3,6 +3,7 @@ module go_dreamfactory
|
||||
go 1.18
|
||||
|
||||
require (
|
||||
bright v0.0.0
|
||||
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394
|
||||
github.com/go-playground/validator/v10 v10.10.1
|
||||
github.com/go-redis/redis/v8 v8.11.5
|
||||
@ -29,7 +30,6 @@ require (
|
||||
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3
|
||||
google.golang.org/protobuf v1.28.0
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
bright v0.0.0
|
||||
)
|
||||
|
||||
require (
|
||||
@ -43,6 +43,7 @@ require (
|
||||
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
|
||||
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
||||
github.com/cheekybits/genny v1.0.0 // indirect
|
||||
github.com/dengsgo/math-engine v0.0.0-20220213125415-0351c3c75eca // indirect
|
||||
github.com/dgryski/go-jump v0.0.0-20211018200510-ba001c3ffce0 // indirect
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
||||
github.com/edwingeng/doublejump v0.0.0-20210724020454-c82f1bcb3280 // indirect
|
||||
|
2
go.sum
2
go.sum
@ -110,6 +110,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/dengsgo/math-engine v0.0.0-20220213125415-0351c3c75eca h1:5R7Xum+9XDxbGDYpBfeedfzbb11wG++geFn7EvMbhuA=
|
||||
github.com/dengsgo/math-engine v0.0.0-20220213125415-0351c3c75eca/go.mod h1:zkR27k4K0I8FS6rkEd8qBhPeS8i3X2FKfvSPdF64OpQ=
|
||||
github.com/dgryski/go-jump v0.0.0-20170409065014-e1f439676b57/go.mod h1:4hKCXuwrJoYvHZxJ86+bRVTOMyJ0Ej+RqfSm8mHi6KA=
|
||||
github.com/dgryski/go-jump v0.0.0-20211018200510-ba001c3ffce0 h1:0wH6nO9QEa02Qx8sIQGw6ieKdz+BXjpccSOo9vXNl4U=
|
||||
github.com/dgryski/go-jump v0.0.0-20211018200510-ba001c3ffce0/go.mod h1:4hKCXuwrJoYvHZxJ86+bRVTOMyJ0Ej+RqfSm8mHi6KA=
|
||||
|
@ -22,11 +22,22 @@ func (this *MComp_Configure) Init(service core.IService, module core.IModule, co
|
||||
return
|
||||
}
|
||||
|
||||
//加载配置文件
|
||||
//加载一个配置文件
|
||||
func (this *MComp_Configure) LoadConfigure(name string, fn interface{}) (err error) {
|
||||
return configure.RegisterConfigure(name, fn)
|
||||
}
|
||||
|
||||
//加载多个配置文件
|
||||
func (this *MComp_Configure) LoadMultiConfigure(confs map[string]interface{}) (err error) {
|
||||
for k, v := range confs {
|
||||
err = configure.RegisterConfigure(k, v)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//读取配置数据
|
||||
func (this *MComp_Configure) GetConfigure(name string) (v interface{}, err error) {
|
||||
return configure.GetConfigure(name)
|
||||
|
@ -1,8 +1,10 @@
|
||||
package modules
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/pb"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
)
|
||||
@ -11,9 +13,11 @@ type (
|
||||
//业务模块基类接口 定义所有业务模块都可以使用的接口
|
||||
IModule interface {
|
||||
core.IModule
|
||||
// ///向指定用户发送消息
|
||||
//向指定用户发送消息
|
||||
SendMsgToUser(mainType, subType string, msg proto.Message, user *pb.Cache_UserData) (err error)
|
||||
// ///向多个用户发送消息
|
||||
//向多个用户发送消息
|
||||
SendMsgToUsers(mainType, subType string, msg proto.Message, user ...*pb.Cache_UserData) (err error)
|
||||
//校验消耗资源
|
||||
CheckConsumeRes(uid string, res []*cfg.Game_atn) (code comm.ErrorCode)
|
||||
}
|
||||
)
|
||||
|
@ -12,11 +12,11 @@ func (this *Api_Comp) Equip_Check(session comm.IUserSession, req *pb.Equipment_E
|
||||
var (
|
||||
err error
|
||||
errorCode pb.ErrorCode
|
||||
confs []*cfg.Game_equipmentData
|
||||
confs []*cfg.Game_equipData
|
||||
equipments []*pb.DB_Equipment
|
||||
hero *pb.DB_HeroData
|
||||
)
|
||||
confs = make([]*cfg.Game_equipmentData, len(req.EquipmentId))
|
||||
confs = make([]*cfg.Game_equipData, len(req.EquipmentId))
|
||||
equipments = make([]*pb.DB_Equipment, len(req.EquipmentId))
|
||||
for i, v := range req.EquipmentId {
|
||||
if v != "" {
|
||||
@ -33,7 +33,7 @@ func (this *Api_Comp) Equip_Check(session comm.IUserSession, req *pb.Equipment_E
|
||||
}
|
||||
}
|
||||
|
||||
if hero, errorCode = this.module.hero.GetHero(req.HeroCardId); errorCode != pb.ErrorCode_Success {
|
||||
if hero, errorCode = this.module.hero.GetHero(session.GetUserId(), req.HeroCardId); errorCode != pb.ErrorCode_Success {
|
||||
code.Code = errorCode
|
||||
return
|
||||
}
|
||||
@ -49,7 +49,7 @@ func (this *Api_Comp) Equip_Check(session comm.IUserSession, req *pb.Equipment_E
|
||||
func (this *Api_Comp) Equip(session comm.IUserSession, agrs map[string]interface{}, req *pb.Equipment_Equip_Req) (code pb.ErrorCode) {
|
||||
var (
|
||||
err error
|
||||
confs []*cfg.Game_equipmentData
|
||||
confs []*cfg.Game_equipData
|
||||
equipment *pb.DB_Equipment
|
||||
equipments []*pb.DB_Equipment
|
||||
updatequipment []*pb.DB_Equipment
|
||||
@ -60,7 +60,7 @@ func (this *Api_Comp) Equip(session comm.IUserSession, agrs map[string]interface
|
||||
session.SendMsg(string(this.module.GetType()), "", &pb.Equipment_Equip_Resp{})
|
||||
}
|
||||
}()
|
||||
confs = agrs["conf"].([]*cfg.Game_equipmentData)
|
||||
confs = agrs["conf"].([]*cfg.Game_equipData)
|
||||
equipments = agrs["equipment"].([]*pb.DB_Equipment)
|
||||
updatequipment = make([]*pb.DB_Equipment, 0)
|
||||
hero = agrs["hero"].(*pb.DB_HeroData)
|
||||
@ -93,7 +93,7 @@ func (this *Api_Comp) Equip(session comm.IUserSession, agrs map[string]interface
|
||||
}
|
||||
}
|
||||
for i, _ := range equipments {
|
||||
if i != int(confs[i].Station) {
|
||||
if i != int(confs[i].Pos) {
|
||||
log.Errorf("Equip conf:%v Target:%d Incorrect range!", confs[i], i)
|
||||
code = pb.ErrorCode_SystemError
|
||||
return
|
||||
|
@ -15,7 +15,8 @@ import (
|
||||
func (this *Api_Comp) Upgrade_Check(session comm.IUserSession, req *pb.Equipment_Upgrade_Req) (result map[string]interface{}, code comm.ErrorCode) {
|
||||
var (
|
||||
err error
|
||||
conf *cfg.Game_equipmentData
|
||||
conf *cfg.Game_equipData
|
||||
intensify *cfg.Game_equipIntensifyData
|
||||
equipment *pb.DB_Equipment
|
||||
)
|
||||
if req.EquipmentId == "" {
|
||||
@ -33,13 +34,16 @@ func (this *Api_Comp) Upgrade_Check(session comm.IUserSession, req *pb.Equipment
|
||||
code.Code = pb.ErrorCode_EquipmentOnFoundEquipment
|
||||
return
|
||||
}
|
||||
if equipment.Lv >= conf.MaxLv {
|
||||
log.Errorf("Equip_Check Lv:%v MaxLv:%v", equipment.Lv, conf.MaxLv)
|
||||
//找到下一个等级的相关配置
|
||||
if intensify, err = this.module.configure_comp.GetEquipmentIntensifyConfigureById(equipment.Lv + 1); err != nil {
|
||||
log.Errorf("Equip_Check err:%v", err)
|
||||
code.Code = pb.ErrorCode_EquipmentLvlimitReached
|
||||
return
|
||||
}
|
||||
result = map[string]interface{}{
|
||||
"equipment": equipment,
|
||||
"conf": conf,
|
||||
"intensify": intensify,
|
||||
}
|
||||
return
|
||||
}
|
||||
@ -48,12 +52,11 @@ func (this *Api_Comp) Upgrade_Check(session comm.IUserSession, req *pb.Equipment
|
||||
func (this *Api_Comp) Upgrade(session comm.IUserSession, agrs map[string]interface{}, req *pb.Equipment_Upgrade_Req) (code pb.ErrorCode) {
|
||||
var (
|
||||
err error
|
||||
conf *cfg.Game_equipmentData
|
||||
conf *cfg.Game_equipData
|
||||
intensify *cfg.Game_equipIntensifyData
|
||||
equipment *pb.DB_Equipment
|
||||
hero *pb.DB_HeroData
|
||||
equipments []*pb.DB_Equipment
|
||||
probability int32
|
||||
guaranteed int32
|
||||
issucc bool
|
||||
)
|
||||
defer func() {
|
||||
@ -61,21 +64,24 @@ func (this *Api_Comp) Upgrade(session comm.IUserSession, agrs map[string]interfa
|
||||
session.SendMsg(string(this.module.GetType()), "", &pb.Equipment_Upgrade_Resp{})
|
||||
}
|
||||
}()
|
||||
conf = agrs["conf"].(*cfg.Game_equipmentData)
|
||||
conf = agrs["conf"].(*cfg.Game_equipData)
|
||||
intensify = agrs["intensify"].(*cfg.Game_equipIntensifyData)
|
||||
equipment = agrs["equipment"].(*pb.DB_Equipment)
|
||||
probability = conf.UpgradeProbability[equipment.Lv]
|
||||
guaranteed = conf.UpgradeGuaranteed[equipment.Lv]
|
||||
if equipment.KeepFailNum >= guaranteed { //没有达到保底次数 根据概率随机成功失败
|
||||
if equipment.KeepFailNum >= intensify.Num { //没有达到保底次数 根据概率随机成功失败
|
||||
issucc = true
|
||||
} else { //随机
|
||||
n, _ := rand.Int(rand.Reader, big.NewInt(100))
|
||||
if int32(n.Int64()) < probability {
|
||||
} else { //随机 千分比
|
||||
n, _ := rand.Int(rand.Reader, big.NewInt(1000))
|
||||
if int32(n.Int64()) < intensify.Probability {
|
||||
issucc = true
|
||||
} else {
|
||||
issucc = false
|
||||
}
|
||||
}
|
||||
if issucc {
|
||||
if code = this.module.CheckConsumeRes(session.GetUserId(), intensify.Need); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
//叠加装备 拆分处理
|
||||
if equipment.IsInitialState && equipment.OverlayNum > 1 {
|
||||
equipment.OverlayNum--
|
||||
@ -116,7 +122,7 @@ func (this *Api_Comp) Upgrade(session comm.IUserSession, agrs map[string]interfa
|
||||
log.Errorf("Upgrade code:%d", code)
|
||||
return
|
||||
}
|
||||
hero.EquipID[conf.Station] = equipment.Id //拆分后的装备是一个新的
|
||||
hero.EquipID[conf.Pos] = equipment.Id //拆分后的装备是一个新的
|
||||
for i, v := range hero.EquipID {
|
||||
if v != "" {
|
||||
if v != equipment.Id {
|
||||
|
@ -9,7 +9,10 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
game_equipment = "game_equipment.json"
|
||||
game_equip = "game_equip.json" //装备信息表
|
||||
equip_attrlibrary = "equip_attrlibrary.json" //装备属性配置表
|
||||
equip_intensify = "equip_intensify.json" //装备等级消耗表
|
||||
equip_suit = "equip_suit.json" //装备套装表
|
||||
)
|
||||
|
||||
///背包配置管理组件
|
||||
@ -20,20 +23,21 @@ type Configure_Comp struct {
|
||||
//组件初始化接口
|
||||
func (this *Configure_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
this.ModuleCompBase.Init(service, module, comp, options)
|
||||
this.LoadConfigure(game_equipment, cfg.NewGame_equipment)
|
||||
this.LoadConfigure(game_equip, cfg.NewGame_equip)
|
||||
this.LoadConfigure(equip_attrlibrary, cfg.NewGame_equipAttrlibrary)
|
||||
return
|
||||
}
|
||||
|
||||
//获取装备配置数据
|
||||
func (this *Configure_Comp) GetEquipmentConfigure() (configure *cfg.Game_equipment, err error) {
|
||||
func (this *Configure_Comp) GetEquipmentConfigure() (configure *cfg.Game_equip, err error) {
|
||||
var (
|
||||
v interface{}
|
||||
ok bool
|
||||
)
|
||||
if v, err = this.GetConfigure(game_equipment); err != nil {
|
||||
if v, err = this.GetConfigure(game_equip); err != nil {
|
||||
return
|
||||
} else {
|
||||
if configure, ok = v.(*cfg.Game_equipment); !ok {
|
||||
if configure, ok = v.(*cfg.Game_equip); !ok {
|
||||
err = fmt.Errorf("%T no is *cfg.Game_equipment", v)
|
||||
return
|
||||
}
|
||||
@ -42,18 +46,87 @@ func (this *Configure_Comp) GetEquipmentConfigure() (configure *cfg.Game_equipme
|
||||
}
|
||||
|
||||
//获取装备配置数据
|
||||
func (this *Configure_Comp) GetEquipmentConfigureById(equipmentId int32) (configure *cfg.Game_equipmentData, err error) {
|
||||
func (this *Configure_Comp) GetEquipmentConfigureById(equipmentId int32) (configure *cfg.Game_equipData, err error) {
|
||||
var (
|
||||
v interface{}
|
||||
ok bool
|
||||
)
|
||||
if v, err = this.GetConfigure(game_equipment); err != nil {
|
||||
if v, err = this.GetConfigure(game_equip); err != nil {
|
||||
return
|
||||
} else {
|
||||
if configure, ok = v.(*cfg.Game_equipment).GetDataMap()[equipmentId]; !ok {
|
||||
if configure, ok = v.(*cfg.Game_equip).GetDataMap()[equipmentId]; !ok {
|
||||
err = fmt.Errorf("EquipmentConfigure not found:%d ", equipmentId)
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//获取装备属性表
|
||||
func (this *Configure_Comp) GetEquipmentAttrlibraryConfigure() (configure *cfg.Game_equipAttrlibrary, err error) {
|
||||
var (
|
||||
v interface{}
|
||||
ok bool
|
||||
)
|
||||
if v, err = this.GetConfigure(equip_attrlibrary); err != nil {
|
||||
return
|
||||
} else {
|
||||
if configure, ok = v.(*cfg.Game_equipAttrlibrary); !ok {
|
||||
err = fmt.Errorf("%T no is *cfg.Game_equipment", v)
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//获取属性词列表
|
||||
func (this *Configure_Comp) GetEquipmentAttrlibraryConfigureById(Id int32) (configure []*cfg.Game_equipAttrlibraryData, err error) {
|
||||
var (
|
||||
v interface{}
|
||||
)
|
||||
if v, err = this.GetConfigure(equip_attrlibrary); err != nil {
|
||||
return
|
||||
} else {
|
||||
configure = make([]*cfg.Game_equipAttrlibraryData, 0)
|
||||
for _, v1 := range v.(*cfg.Game_equipAttrlibrary).GetDataList() {
|
||||
if v1.Libraryid == Id {
|
||||
configure = append(configure, v1)
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//获取装备属性表
|
||||
func (this *Configure_Comp) GetEquipmentIntensifyConfigure() (configure *cfg.Game_equipIntensify, err error) {
|
||||
var (
|
||||
v interface{}
|
||||
ok bool
|
||||
)
|
||||
if v, err = this.GetConfigure(equip_intensify); err != nil {
|
||||
return
|
||||
} else {
|
||||
if configure, ok = v.(*cfg.Game_equipIntensify); !ok {
|
||||
err = fmt.Errorf("%T no is *cfg.Game_equipment", v)
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//获取属性词列表
|
||||
func (this *Configure_Comp) GetEquipmentIntensifyConfigureById(Id int32) (configure *cfg.Game_equipIntensifyData, err error) {
|
||||
var (
|
||||
v interface{}
|
||||
ok bool
|
||||
)
|
||||
if v, err = this.GetConfigure(equip_intensify); err != nil {
|
||||
return
|
||||
} else {
|
||||
if configure, ok = v.(*cfg.Game_equipIntensify).GetDataMap()[Id]; !ok {
|
||||
err = fmt.Errorf("EquipmentConfigure not found:%d ", Id)
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ func (this *Model_Equipment_Comp) Equipment_QueryUserEquipmentsPack(uId string)
|
||||
//添加装备
|
||||
func (this *Model_Equipment_Comp) Equipment_AddEquipmentsToPack(uId string, cIds map[int32]uint32) (err error) {
|
||||
var (
|
||||
configure *cfg.Game_equipment
|
||||
configure *cfg.Game_equip
|
||||
equipments []*pb.DB_Equipment
|
||||
iskeep bool
|
||||
add map[string]*pb.DB_Equipment
|
||||
|
@ -1,9 +1,7 @@
|
||||
package forum
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/modules"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
|
||||
"go_dreamfactory/lego/core"
|
||||
)
|
||||
@ -20,23 +18,6 @@ type Configure_Comp struct {
|
||||
//组件初始化接口
|
||||
func (this *Configure_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
this.ModuleCompBase.Init(service, module, comp, options)
|
||||
this.LoadConfigure(game_equipment, cfg.NewGame_equipment)
|
||||
return
|
||||
}
|
||||
|
||||
//获取装备配置数据
|
||||
func (this *Configure_Comp) GetEquipmentConfigure() (configure *cfg.Game_equipment, err error) {
|
||||
var (
|
||||
v interface{}
|
||||
ok bool
|
||||
)
|
||||
if v, err = this.GetConfigure(game_equipment); err != nil {
|
||||
return
|
||||
} else {
|
||||
if configure, ok = v.(*cfg.Game_equipment); !ok {
|
||||
err = fmt.Errorf("%T no is *cfg.Game_equipment", v)
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -1,9 +1,7 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/modules"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
|
||||
"go_dreamfactory/lego/core"
|
||||
)
|
||||
@ -20,23 +18,6 @@ type Configure_Comp struct {
|
||||
//组件初始化接口
|
||||
func (this *Configure_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
this.ModuleCompBase.Init(service, module, comp, options)
|
||||
this.LoadConfigure(game_equipment, cfg.NewGame_equipment)
|
||||
return
|
||||
}
|
||||
|
||||
//获取装备配置数据
|
||||
func (this *Configure_Comp) GetEquipmentConfigure() (configure *cfg.Game_equipment, err error) {
|
||||
var (
|
||||
v interface{}
|
||||
ok bool
|
||||
)
|
||||
if v, err = this.GetConfigure(game_equipment); err != nil {
|
||||
return
|
||||
} else {
|
||||
if configure, ok = v.(*cfg.Game_equipment); !ok {
|
||||
err = fmt.Errorf("%T no is *cfg.Game_equipment", v)
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -13,6 +13,8 @@ type Api_Comp struct {
|
||||
|
||||
const ( //消息回复的头名称
|
||||
StrengthenUplv = "strengthenherolv"
|
||||
Hero_SubType_Info = "info" //英雄卡片信息
|
||||
Hero_SubType_List = "list" //英雄列表
|
||||
)
|
||||
|
||||
//组件初始化接口
|
||||
|
33
modules/hero/api_info.go
Normal file
33
modules/hero/api_info.go
Normal file
@ -0,0 +1,33 @@
|
||||
package hero
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/pb"
|
||||
)
|
||||
|
||||
//参数校验
|
||||
func (this *Api_Comp) Info_Check(session comm.IUserSession, req *pb.Hero_Info_Req) (result map[string]interface{}, code comm.ErrorCode) {
|
||||
result = map[string]interface{}{}
|
||||
hero := this.module.model_hero.getOneHero(session.GetUserId(), req.HeroId)
|
||||
if hero == nil {
|
||||
code = comm.ErrorCode{Code: pb.ErrorCode_HeroNoExist}
|
||||
}
|
||||
result["hero"] = hero
|
||||
return
|
||||
}
|
||||
|
||||
func (this *Api_Comp) Info(session comm.IUserSession, result map[string]interface{}, req *pb.Hero_Info_Req) (code pb.ErrorCode) {
|
||||
rsp := &pb.Hero_Info_Rsp{}
|
||||
defer func() {
|
||||
err := session.SendMsg(string(this.module.GetType()), Hero_SubType_Info, rsp)
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_SystemError
|
||||
return
|
||||
}
|
||||
}()
|
||||
|
||||
if v, ok := result["hero"]; ok {
|
||||
rsp.Base = v.(*pb.DB_HeroData)
|
||||
}
|
||||
return
|
||||
}
|
32
modules/hero/api_list.go
Normal file
32
modules/hero/api_list.go
Normal file
@ -0,0 +1,32 @@
|
||||
package hero
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/pb"
|
||||
)
|
||||
|
||||
//参数校验
|
||||
func (this *Api_Comp) List_Check(session comm.IUserSession, req *pb.Hero_List_Req) (result map[string]interface{}, code comm.ErrorCode) {
|
||||
return
|
||||
}
|
||||
|
||||
func (this *Api_Comp) List(session comm.IUserSession, result map[string]interface{}, req *pb.Hero_List_Req) (code pb.ErrorCode) {
|
||||
rsp := &pb.Hero_List_Rsp{}
|
||||
|
||||
defer func() {
|
||||
err := session.SendMsg(this.module.api_comp.service.GetType(), Hero_SubType_List, rsp)
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_SystemError
|
||||
}
|
||||
}()
|
||||
|
||||
list, err := this.module.model_hero.getHeroList(session.GetUserId())
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
|
||||
rsp.List = list
|
||||
|
||||
return
|
||||
}
|
90
modules/hero/hero_test.go
Normal file
90
modules/hero/hero_test.go
Normal file
@ -0,0 +1,90 @@
|
||||
package hero
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego"
|
||||
"go_dreamfactory/lego/base/rpcx"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/services"
|
||||
"go_dreamfactory/sys/cache"
|
||||
"go_dreamfactory/sys/configure"
|
||||
"go_dreamfactory/sys/db"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
var service core.IService
|
||||
var s_gateComp comm.ISC_GateRouteComp = services.NewGateRouteComp()
|
||||
|
||||
var module = new(Hero)
|
||||
|
||||
type TestService struct {
|
||||
rpcx.RPCXService
|
||||
}
|
||||
|
||||
func newService(ops ...rpcx.Option) core.IService {
|
||||
s := new(TestService)
|
||||
s.Configure(ops...)
|
||||
return s
|
||||
}
|
||||
|
||||
//初始化相关系统
|
||||
func (this *TestService) InitSys() {
|
||||
this.RPCXService.InitSys()
|
||||
if err := cache.OnInit(this.GetSettings().Sys["cache"]); err != nil {
|
||||
panic(fmt.Sprintf("init sys.cache err: %s", err.Error()))
|
||||
} else {
|
||||
log.Infof("init sys.cache success!")
|
||||
}
|
||||
if err := db.OnInit(this.GetSettings().Sys["db"]); err != nil {
|
||||
panic(fmt.Sprintf("init sys.db err: %s", err.Error()))
|
||||
} else {
|
||||
log.Infof("init sys.db success!")
|
||||
}
|
||||
if err := configure.OnInit(this.GetSettings().Sys["configure"], configure.SetConfigPath("E:\\projects\\workspace\\go_dreamfactory\\bin\\json")); err != nil {
|
||||
panic(fmt.Sprintf("init sys.configure err: %s", err.Error()))
|
||||
} else {
|
||||
log.Infof("init sys.configure success!")
|
||||
}
|
||||
}
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
service = newService(
|
||||
rpcx.SetConfPath("../../bin/conf/worker_2.yaml"),
|
||||
)
|
||||
service.OnInstallComp( //装备组件
|
||||
s_gateComp, //此服务需要接受用户的消息 需要装备网关组件
|
||||
)
|
||||
go func() {
|
||||
lego.Run(service, //运行模块
|
||||
module,
|
||||
)
|
||||
}()
|
||||
time.Sleep(time.Second * 2)
|
||||
defer os.Exit(m.Run())
|
||||
}
|
||||
|
||||
//创建一个英雄s
|
||||
func TestCreateOneHero(t *testing.T) {
|
||||
err := module.model_hero.createOneHero("u1", 25001)
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
//获取玩家英雄
|
||||
func TestGetOneHero(t *testing.T) {
|
||||
d := module.model_hero.getOneHero("u1", "62b534bebf4745d4117acabe")
|
||||
fmt.Printf("%v", d)
|
||||
}
|
||||
|
||||
func TestPropertyCompute(t *testing.T) {
|
||||
m := module.model_hero.PropertyCompute("u1", "62b534bebf4745d4117acabe")
|
||||
fmt.Println(m)
|
||||
}
|
||||
|
||||
func TestHeroList(t *testing.T) {
|
||||
heroes, err := module.model_hero.getHeroList("u1")
|
||||
fmt.Printf("%v %v", heroes, err)
|
||||
}
|
@ -1,10 +1,16 @@
|
||||
package hero
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/modules"
|
||||
"go_dreamfactory/pb"
|
||||
"math"
|
||||
|
||||
mengine "github.com/dengsgo/math-engine/engine"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
type ModelHero struct {
|
||||
@ -19,29 +25,89 @@ func (this *ModelHero) Init(service core.IService, module core.IModule, comp cor
|
||||
return
|
||||
}
|
||||
|
||||
//创建一个指定的英雄
|
||||
func (this *ModelHero) createOneHero(uid string, heroId int32) error {
|
||||
heroCfg, err := this.moduleHero.configure_comp.GetHeroConfigure()
|
||||
if err != nil {
|
||||
log.Errorf("%v", err)
|
||||
return err
|
||||
//初始化英雄
|
||||
func (this *ModelHero) initHero(uid string, heroCfgId int32) *pb.DB_HeroData {
|
||||
heroCfg := this.moduleHero.configure_comp.GetHero(heroCfgId)
|
||||
if heroCfg == nil {
|
||||
log.Errorf("%v hero not found from config %v", heroCfgId)
|
||||
return nil
|
||||
}
|
||||
if heroCfg != nil {
|
||||
oneHeroCfg := heroCfg.Get(heroId)
|
||||
if oneHeroCfg != nil {
|
||||
objId := primitive.NewObjectID().Hex()
|
||||
newHero := &pb.DB_HeroData{
|
||||
Id: objId,
|
||||
Uid: uid,
|
||||
HeroID: oneHeroCfg.Id,
|
||||
Star: oneHeroCfg.Star,
|
||||
HeroID: heroCfg.Id,
|
||||
Star: heroCfg.Star,
|
||||
Lv: 1, //初始等级
|
||||
NormalSkill: []*pb.SkillData{},
|
||||
Skins: []int32{},
|
||||
EquipID: make([]string, 6),
|
||||
AddProperty: make(map[int32]int32),
|
||||
Energy: make(map[int32]int32),
|
||||
Property: make(map[int32]int32),
|
||||
}
|
||||
return this.moduleHero.model_hero.Add(uid, newHero)
|
||||
return newHero
|
||||
}
|
||||
|
||||
//创建一个指定的英雄
|
||||
func (this *ModelHero) createOneHero(uid string, heroCfgId int32) error {
|
||||
hero := this.initHero(uid, heroCfgId)
|
||||
if hero != nil {
|
||||
return this.moduleHero.model_hero.AddList(uid, hero.Id, hero)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//创建多个指定的英雄
|
||||
func (this *ModelHero) createMultiHero(uid string, heroCfgId ...int32) error {
|
||||
data := make(map[string]interface{})
|
||||
for _, v := range heroCfgId {
|
||||
hero := this.initHero(uid, v)
|
||||
if hero != nil {
|
||||
data[hero.Id] = hero
|
||||
}
|
||||
}
|
||||
return this.moduleHero.model_hero.AddLists(uid, data)
|
||||
}
|
||||
|
||||
//获取一个英雄
|
||||
func (this *ModelHero) getOneHero(uid, heroId string) *pb.DB_HeroData {
|
||||
hero := &pb.DB_HeroData{}
|
||||
err := this.moduleHero.model_hero.GetListObj(uid, heroId, hero)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
return hero
|
||||
}
|
||||
|
||||
//获取玩家的英雄列表
|
||||
func (this *ModelHero) getHeroList(uid string) ([]*pb.DB_HeroData, error) {
|
||||
herokeys := make(map[string]string)
|
||||
err := this.Get(uid, herokeys)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
heroes := make([]*pb.DB_HeroData, 0)
|
||||
err = this.GetList(uid, &heroes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return heroes, nil
|
||||
}
|
||||
|
||||
//更新装备
|
||||
func (this *ModelHero) setEquipment(uid, heroId string, equipIds []string) pb.ErrorCode {
|
||||
hero := this.getOneHero(uid, heroId)
|
||||
if hero == nil {
|
||||
return pb.ErrorCode_HeroNoExist
|
||||
}
|
||||
|
||||
hero.EquipID = equipIds
|
||||
return pb.ErrorCode_Success
|
||||
}
|
||||
|
||||
//指定英雄升级
|
||||
func (this *ModelHero) levelUp(uid string, heroId int32) error {
|
||||
var heroes []*pb.DB_HeroData
|
||||
@ -57,3 +123,57 @@ func (this *ModelHero) levelUp(uid string, heroId int32) error {
|
||||
func (this *ModelHero) starUp() {
|
||||
|
||||
}
|
||||
|
||||
//属性计算 - 暂时放在modelHero里实现
|
||||
//英雄基础属性 + 英雄等级基础属性 * 英雄成长系数 + 英雄星级对应等级属性 * 英雄品质系数
|
||||
func (this *ModelHero) PropertyCompute(uid, heroId string) map[int32]int32 {
|
||||
hero := this.getOneHero(uid, heroId)
|
||||
if hero == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
//英雄等级基础属性levelup
|
||||
heroLvCfg := this.moduleHero.configure_comp.GetHeroLv(hero.Lv)
|
||||
if heroLvCfg == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
//英雄基础配置 newhero
|
||||
heroCfg := this.moduleHero.configure_comp.GetHero(hero.HeroID)
|
||||
if heroCfg == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
//品质系数
|
||||
stargrowCfg := this.moduleHero.configure_comp.GetHeroStar(heroCfg.Star)
|
||||
if stargrowCfg == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
//英雄星级对应等级属性
|
||||
heroStarCfg := this.moduleHero.configure_comp.GetHeroLv(stargrowCfg.Level)
|
||||
if heroStarCfg == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
//成长系数
|
||||
lvGrow := this.moduleHero.configure_comp.GetHeroLvgrow(hero.HeroID)
|
||||
if lvGrow == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
exprHp := fmt.Sprintf("%v + %v * %v/1000 + %v * %v", lvGrow.Hp, heroLvCfg.Hp, lvGrow.Hpgrow, heroStarCfg.Hp, stargrowCfg.StarupHp)
|
||||
hp, _ := mengine.ParseAndExec(exprHp)
|
||||
|
||||
exprAtk := fmt.Sprintf("%v +%v * %v/1000 + %v * %v", lvGrow.Atk, heroLvCfg.Atk, lvGrow.Atkgrow, heroStarCfg.Atk, stargrowCfg.StarupAtk)
|
||||
atk, _ := mengine.ParseAndExec(exprAtk)
|
||||
|
||||
exprDef := fmt.Sprintf("%v +%v * %v/1000 + %v * %v", lvGrow.Def, heroLvCfg.Def, lvGrow.Defgrow, heroStarCfg.Def, stargrowCfg.StarupDef)
|
||||
def, _ := mengine.ParseAndExec(exprDef)
|
||||
|
||||
return map[int32]int32{
|
||||
comm.PropertyHp: int32(math.Floor(hp)),
|
||||
comm.PropertyAtk: int32(math.Floor(atk)),
|
||||
comm.PropertyDef: int32(math.Floor(def)),
|
||||
}
|
||||
}
|
||||
|
@ -8,13 +8,13 @@ import (
|
||||
)
|
||||
|
||||
//参数校验
|
||||
func (this *Api_Comp) Getlist_Check(session comm.IUserSession, req *pb.Pack_Getlist_Req) (result map[string]interface{}, code comm.ErrorCode) {
|
||||
func (this *Api_Comp) Getlist_Check(session comm.IUserSession, req *pb.Items_Getlist_Req) (result map[string]interface{}, code comm.ErrorCode) {
|
||||
result = map[string]interface{}{"ce": 123}
|
||||
return
|
||||
}
|
||||
|
||||
///获取用户道具
|
||||
func (this *Api_Comp) Getlist(session comm.IUserSession, agrs map[string]interface{}, req *pb.Pack_Getlist_Req) (code pb.ErrorCode) {
|
||||
func (this *Api_Comp) Getlist(session comm.IUserSession, agrs map[string]interface{}, req *pb.Items_Getlist_Req) (code pb.ErrorCode) {
|
||||
var (
|
||||
err error
|
||||
items []*pb.DB_UserItemData
|
||||
@ -25,7 +25,7 @@ func (this *Api_Comp) Getlist(session comm.IUserSession, agrs map[string]interfa
|
||||
dels []string
|
||||
)
|
||||
defer func() {
|
||||
session.SendMsg(string(this.module.GetType()), GetlistResp, &pb.Pack_Getlist_Resp{Grids: grids})
|
||||
session.SendMsg(string(this.module.GetType()), GetlistResp, &pb.Items_Getlist_Resp{Grids: grids})
|
||||
if code == pb.ErrorCode_Success {
|
||||
go func() { //异步处理修改数据
|
||||
this.module.model_pack_comp.Pack_UpdateUserPack(session.GetUserId(), modifys...)
|
||||
|
@ -6,15 +6,15 @@ import (
|
||||
)
|
||||
|
||||
//参数校验
|
||||
func (this *Api_Comp) SellItem_Check(session comm.IUserSession, req *pb.Pack_SellItem_Req) (result map[string]interface{}, code comm.ErrorCode) {
|
||||
func (this *Api_Comp) SellItem_Check(session comm.IUserSession, req *pb.Items_SellItem_Req) (result map[string]interface{}, code comm.ErrorCode) {
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
//出售道具
|
||||
func (this *Api_Comp) SellItem(session comm.IUserSession, agrs map[string]interface{}, req *pb.Pack_SellItem_Req) (code pb.ErrorCode) {
|
||||
func (this *Api_Comp) SellItem(session comm.IUserSession, agrs map[string]interface{}, req *pb.Items_SellItem_Req) (code pb.ErrorCode) {
|
||||
defer func() {
|
||||
session.SendMsg(string(this.module.GetType()), SellItemResp, &pb.Pack_SellItem_Resp{})
|
||||
session.SendMsg(string(this.module.GetType()), SellItemResp, &pb.Items_SellItem_Resp{})
|
||||
}()
|
||||
return
|
||||
}
|
||||
|
@ -6,15 +6,15 @@ import (
|
||||
)
|
||||
|
||||
//参数校验
|
||||
func (this *Api_Comp) Useitem_Check(session comm.IUserSession, req *pb.Pack_UseItem_Req) (result map[string]interface{}, code comm.ErrorCode) {
|
||||
func (this *Api_Comp) Useitem_Check(session comm.IUserSession, req *pb.Items_UseItem_Req) (result map[string]interface{}, code comm.ErrorCode) {
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
//使用道具
|
||||
func (this *Api_Comp) Useitem(session comm.IUserSession, agrs map[string]interface{}, req *pb.Pack_UseItem_Req) (code pb.ErrorCode) {
|
||||
func (this *Api_Comp) Useitem(session comm.IUserSession, agrs map[string]interface{}, req *pb.Items_UseItem_Req) (code pb.ErrorCode) {
|
||||
defer func() {
|
||||
session.SendMsg(string(this.module.GetType()), UseItemResp, &pb.Pack_UseItem_Resp{})
|
||||
session.SendMsg(string(this.module.GetType()), UseItemResp, &pb.Items_UseItem_Resp{})
|
||||
}()
|
||||
|
||||
return
|
||||
|
@ -21,7 +21,7 @@ type Model_Pack_Comp struct {
|
||||
func (this *Model_Pack_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) {
|
||||
this.Model_Comp.Init(service, module, comp, opt)
|
||||
this.module = module.(*Items)
|
||||
this.TableName = "pack"
|
||||
this.TableName = "items"
|
||||
//创建uid索引
|
||||
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
|
||||
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
|
||||
|
@ -70,9 +70,9 @@ func (this *Items) AddItemToUserPack(uId string, itemid, addnum int32) (code pb.
|
||||
if err = this.model_pack_comp.Pack_AddItemToUserPack(uId, itemid, addnum); err != nil {
|
||||
log.Errorf("给用户添加物品 uId:%s itemid:%d addnum:%d err:%v", uId, itemid, addnum, err)
|
||||
if err == ItemNotEnoughError {
|
||||
code = pb.ErrorCode_PackNoEnough
|
||||
code = pb.ErrorCode_ItemsNoEnough
|
||||
} else if err == PackGridNumUpper {
|
||||
code = pb.ErrorCode_PackGridNumUpper
|
||||
code = pb.ErrorCode_ItemsGridNumUpper
|
||||
} else {
|
||||
code = pb.ErrorCode_Unknown
|
||||
}
|
||||
@ -87,9 +87,9 @@ func (this *Items) AddItemsToUserPack(uId string, items map[int32]int32) (code p
|
||||
if err = this.model_pack_comp.Pack_AddItemsToUserPack(uId, items); err != nil {
|
||||
log.Errorf("给用户添加物品 uId:%s items:%d err:%v", uId, items, err)
|
||||
if err == ItemNotEnoughError {
|
||||
code = pb.ErrorCode_PackNoEnough
|
||||
code = pb.ErrorCode_ItemsNoEnough
|
||||
} else if err == PackGridNumUpper {
|
||||
code = pb.ErrorCode_PackGridNumUpper
|
||||
code = pb.ErrorCode_ItemsGridNumUpper
|
||||
} else {
|
||||
code = pb.ErrorCode_Unknown
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ func TestMain(m *testing.M) {
|
||||
}
|
||||
|
||||
func Test_Modules(t *testing.T) {
|
||||
data, _ := ptypes.MarshalAny(&pb.Pack_Getlist_Req{})
|
||||
data, _ := ptypes.MarshalAny(&pb.Items_Getlist_Req{})
|
||||
s_gateComp.ReceiveMsg(context.Background(), &pb.AgentMessage{Method: "pack.getlist", Message: data}, &pb.RPCMessageReply{})
|
||||
// items, err := module.db_comp.Pack_QueryUserPack("liwei1dao")
|
||||
// log.Debugf("item:%v err:%v", items, err)
|
||||
|
@ -35,7 +35,7 @@ func (this *Api_Comp) GetUserMailAttachment(session comm.IUserSession, agrs map[
|
||||
for _, v := range _data {
|
||||
_items[int32(v.ItemId)] += int32(v.ItemCount)
|
||||
}
|
||||
code = this.items.AddItemsToUserPack(mail.Uid, _items)
|
||||
code = this.items.AddItems(mail.Uid, _items)
|
||||
if code == pb.ErrorCode_Success {
|
||||
// 修改状态
|
||||
this.module.db_comp.Mail_UpdateMailAttachmentState(req.ObjID)
|
||||
|
@ -4,12 +4,13 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/pb"
|
||||
|
||||
"go_dreamfactory/lego/base"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/core/cbase"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/pb"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
"strconv"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/golang/protobuf/ptypes"
|
||||
@ -73,3 +74,86 @@ func (this *ModuleBase) SendMsgToUsers(mainType, subType string, msg proto.Messa
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//校验消耗资源
|
||||
func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn) (code pb.ErrorCode) {
|
||||
var (
|
||||
module core.IModule
|
||||
err error
|
||||
resID int
|
||||
amount int32
|
||||
user comm.IUser //用户模块
|
||||
items comm.IItems //道具背包模块
|
||||
hero comm.IHero //英雄模块
|
||||
equipment comm.IEquipment //装备模块
|
||||
)
|
||||
if module, err = this.service.GetModule(comm.SM_UserModule); err == nil {
|
||||
return
|
||||
}
|
||||
user = module.(comm.IUser)
|
||||
if module, err = this.service.GetModule(comm.SM_UserModule); err == nil {
|
||||
return
|
||||
}
|
||||
items = module.(comm.IItems)
|
||||
if module, err = this.service.GetModule(comm.SM_UserModule); err == nil {
|
||||
return
|
||||
}
|
||||
hero = module.(comm.IHero)
|
||||
if module, err = this.service.GetModule(comm.SM_UserModule); err == nil {
|
||||
return
|
||||
}
|
||||
equipment = module.(comm.IEquipment)
|
||||
//校验消费资源是否充足
|
||||
for _, v := range res {
|
||||
if v.A == comm.AttrType { //用户属性资源
|
||||
if amount = user.QueryAttributeValue(uid, v.T); amount < v.N {
|
||||
code = pb.ErrorCode_ResNoEnough
|
||||
return
|
||||
}
|
||||
} else if v.A == comm.ItemType { //道具资源
|
||||
if resID, err = strconv.Atoi(v.T); err != nil {
|
||||
code = pb.ErrorCode_ConfigurationException
|
||||
return
|
||||
}
|
||||
if amount = int32(items.QueryItemAmount(uid, int32(resID))); amount < v.N {
|
||||
code = pb.ErrorCode_ResNoEnough
|
||||
return
|
||||
}
|
||||
} else if v.A == comm.CardType { //卡片资源
|
||||
if resID, err = strconv.Atoi(v.T); err != nil {
|
||||
code = pb.ErrorCode_ConfigurationException
|
||||
return
|
||||
}
|
||||
if amount = int32(hero.QueryCardAmount(uid, int32(resID))); amount < v.N {
|
||||
code = pb.ErrorCode_ResNoEnough
|
||||
return
|
||||
}
|
||||
} else if v.A == comm.EquipmentType {
|
||||
if resID, err = strconv.Atoi(v.T); err != nil {
|
||||
code = pb.ErrorCode_ConfigurationException
|
||||
return
|
||||
}
|
||||
if amount = int32(equipment.QueryEquipmentAmount(uid, int32(resID))); amount < v.N {
|
||||
code = pb.ErrorCode_ResNoEnough
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for _, v := range res {
|
||||
if v.A == comm.AttrType { //用户属性资源
|
||||
user.AddAttributeValue(uid, v.T, -1*v.N)
|
||||
} else if v.A == comm.ItemType { //道具资源
|
||||
resID, _ = strconv.Atoi(v.T)
|
||||
items.AddItem(uid, int32(resID), -1*v.N)
|
||||
} else if v.A == comm.CardType { //卡片资源
|
||||
resID, _ = strconv.Atoi(v.T)
|
||||
hero.AddCard(uid, int32(resID), -1*v.N)
|
||||
} else if v.A == comm.EquipmentType {
|
||||
resID, _ = strconv.Atoi(v.T)
|
||||
equipment.AddNewEquipments(uid, resID, -1*v.N)
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/modules"
|
||||
|
||||
"go_dreamfactory/lego/base"
|
||||
@ -17,6 +18,7 @@ type Api_Comp struct {
|
||||
modules.MComp_GateComp
|
||||
service base.IRPCXService
|
||||
module *User
|
||||
hero comm.IHero
|
||||
}
|
||||
|
||||
func (this *Api_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
@ -28,5 +30,12 @@ func (this *Api_Comp) Init(service core.IService, module core.IModule, comp core
|
||||
|
||||
func (this *Api_Comp) Start() (err error) {
|
||||
err = this.MComp_GateComp.Start()
|
||||
var module core.IModule
|
||||
|
||||
//get module hero
|
||||
if module, err = this.service.GetModule(comm.SM_HeroModule); err != nil {
|
||||
return
|
||||
}
|
||||
this.hero = module.(comm.IHero)
|
||||
return
|
||||
}
|
||||
|
@ -2,12 +2,19 @@ package user
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/sys/event"
|
||||
"go_dreamfactory/pb"
|
||||
"go_dreamfactory/utils"
|
||||
)
|
||||
|
||||
func (this *Api_Comp) Create_Check(session comm.IUserSession, req *pb.UserCreateReq) (result map[string]interface{}, code comm.ErrorCode) {
|
||||
result = make(map[string]interface{})
|
||||
self := &pb.DB_UserData{}
|
||||
err := this.module.modelUser.Get(session.GetUserId(), self)
|
||||
if err != nil {
|
||||
code = comm.ErrorCode{Code: pb.ErrorCode_DBError}
|
||||
return
|
||||
}
|
||||
result["self"] = self
|
||||
return
|
||||
}
|
||||
|
||||
@ -15,28 +22,25 @@ func (this *Api_Comp) Create_Check(session comm.IUserSession, req *pb.UserCreate
|
||||
func (this *Api_Comp) Create(session comm.IUserSession, result map[string]interface{}, req *pb.UserCreateReq) (code pb.ErrorCode) {
|
||||
defer utils.TraceFunc(session.GetUserId(), string(this.module.GetType()), User_SubType_Create, req, nil)
|
||||
|
||||
self := &pb.DB_UserData{}
|
||||
|
||||
defer func() {
|
||||
session.SendMsg(string(this.module.GetType()), User_SubType_Create, &pb.UserCreateRsp{})
|
||||
err := session.SendMsg(string(this.module.GetType()), User_SubType_Create, &pb.UserCreateRsp{})
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_SystemError
|
||||
}
|
||||
}()
|
||||
|
||||
//更新昵称
|
||||
// update := map[string]interface{}{
|
||||
// "name": req.NickName,
|
||||
// }
|
||||
err := this.module.modelUser.Get(session.GetUserId(), self)
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
update := map[string]interface{}{
|
||||
"name": req.NickName,
|
||||
}
|
||||
self.Name = req.NickName
|
||||
err = this.module.modelUser.Get(session.GetUserId(), self)
|
||||
|
||||
err := this.module.modelUser.Change(session.GetUserId(), update)
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
|
||||
event.RegisterGO(comm.Event_CreateUser, session.GetUserId())
|
||||
//初始化英雄
|
||||
// this.hero.
|
||||
|
||||
return
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ import (
|
||||
uuid "github.com/satori/go.uuid"
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"go.mongodb.org/mongo-driver/mongo/options"
|
||||
)
|
||||
|
||||
const ( //Redis
|
||||
@ -38,16 +37,6 @@ func (this *ModelUser) User_FindByAccount(sid int32, account string) (*pb.DB_Use
|
||||
return nd, err
|
||||
}
|
||||
|
||||
func (this *ModelUser) User_FindById(id string) (*pb.DB_UserData, error) {
|
||||
filter := bson.M{
|
||||
"userid": id,
|
||||
}
|
||||
sr := this.DB.FindOne(DB_UserTable, filter)
|
||||
user := &pb.DB_UserData{}
|
||||
err := sr.Decode(user)
|
||||
return user, err
|
||||
}
|
||||
|
||||
func (this *ModelUser) User_Create(user *pb.DB_UserData) (err error) {
|
||||
_id := primitive.NewObjectID().Hex()
|
||||
user.Id = _id
|
||||
@ -57,16 +46,3 @@ func (this *ModelUser) User_Create(user *pb.DB_UserData) (err error) {
|
||||
_, err = this.DB.InsertOne(DB_UserTable, user)
|
||||
return err
|
||||
}
|
||||
|
||||
//更新用户数据到DB
|
||||
func (this *ModelUser) User_Update(data *pb.DB_UserData) (err error) {
|
||||
err = this.DB.FindOneAndUpdate(
|
||||
DB_UserTable,
|
||||
bson.M{"uid": data.Uid},
|
||||
bson.M{"$set": bson.M{
|
||||
"name": data.Name,
|
||||
}},
|
||||
options.FindOneAndUpdate().SetUpsert(true),
|
||||
).Err()
|
||||
return err
|
||||
}
|
||||
|
68
modules/user/user_test.go
Normal file
68
modules/user/user_test.go
Normal file
@ -0,0 +1,68 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego"
|
||||
"go_dreamfactory/lego/base/rpcx"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/services"
|
||||
"go_dreamfactory/sys/cache"
|
||||
"go_dreamfactory/sys/configure"
|
||||
"go_dreamfactory/sys/db"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
var service core.IService
|
||||
var s_gateComp comm.ISC_GateRouteComp = services.NewGateRouteComp()
|
||||
|
||||
var module = new(User)
|
||||
|
||||
type TestService struct {
|
||||
rpcx.RPCXService
|
||||
}
|
||||
|
||||
func newService(ops ...rpcx.Option) core.IService {
|
||||
s := new(TestService)
|
||||
s.Configure(ops...)
|
||||
return s
|
||||
}
|
||||
|
||||
//初始化相关系统
|
||||
func (this *TestService) InitSys() {
|
||||
this.RPCXService.InitSys()
|
||||
if err := cache.OnInit(this.GetSettings().Sys["cache"]); err != nil {
|
||||
panic(fmt.Sprintf("init sys.cache err: %s", err.Error()))
|
||||
} else {
|
||||
log.Infof("init sys.cache success!")
|
||||
}
|
||||
if err := db.OnInit(this.GetSettings().Sys["db"]); err != nil {
|
||||
panic(fmt.Sprintf("init sys.db err: %s", err.Error()))
|
||||
} else {
|
||||
log.Infof("init sys.db success!")
|
||||
}
|
||||
if err := configure.OnInit(this.GetSettings().Sys["configure"], configure.SetConfigPath("E:\\projects\\workspace\\go_dreamfactory\\bin\\json")); err != nil {
|
||||
panic(fmt.Sprintf("init sys.configure err: %s", err.Error()))
|
||||
} else {
|
||||
log.Infof("init sys.configure success!")
|
||||
}
|
||||
}
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
service = newService(
|
||||
rpcx.SetConfPath("../../bin/conf/worker_2.yaml"),
|
||||
)
|
||||
service.OnInstallComp( //装备组件
|
||||
s_gateComp, //此服务需要接受用户的消息 需要装备网关组件
|
||||
)
|
||||
go func() {
|
||||
lego.Run(service, //运行模块
|
||||
module,
|
||||
)
|
||||
}()
|
||||
time.Sleep(time.Second * 2)
|
||||
defer os.Exit(m.Run())
|
||||
}
|
2
pb.bat
2
pb.bat
@ -11,7 +11,7 @@ protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\*.proto
|
||||
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\notify\*.proto
|
||||
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\user\*.proto
|
||||
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\friend\*.proto
|
||||
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\pack\*.proto
|
||||
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\items\*.proto
|
||||
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\mail\*.proto
|
||||
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\equipment\*.proto
|
||||
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\hero\*.proto
|
||||
|
105
pb/hero_db.pb.go
105
pb/hero_db.pb.go
@ -286,49 +286,50 @@ var File_hero_hero_db_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_hero_hero_db_proto_rawDesc = []byte{
|
||||
0x0a, 0x12, 0x68, 0x65, 0x72, 0x6f, 0x2f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x62, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3f, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74,
|
||||
0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73,
|
||||
0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b,
|
||||
0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22, 0xd6, 0x06, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72,
|
||||
0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49,
|
||||
0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x44, 0x12,
|
||||
0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73,
|
||||
0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x02, 0x6c, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x75, 0x65, 0x78, 0x69, 0x6e, 0x67,
|
||||
0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6a, 0x75, 0x65, 0x78, 0x69, 0x6e,
|
||||
0x67, 0x4c, 0x76, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x6b,
|
||||
0x69, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x74, 0x61,
|
||||
0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x2c, 0x0a, 0x0b, 0x6e, 0x6f, 0x72, 0x6d, 0x61,
|
||||
0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53,
|
||||
0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c,
|
||||
0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
|
||||
0x79, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72,
|
||||
0x6f, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e,
|
||||
0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x3f, 0x0a,
|
||||
0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61,
|
||||
0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72,
|
||||
0x79, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x1c,
|
||||
0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08,
|
||||
0x63, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
|
||||
0x63, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x53,
|
||||
0x6b, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b,
|
||||
0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28,
|
||||
0x05, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63,
|
||||
0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18,
|
||||
0x0a, 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52,
|
||||
0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f,
|
||||
0x6e, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72,
|
||||
0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x32, 0x0a, 0x14, 0x64, 0x69,
|
||||
0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61,
|
||||
0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69,
|
||||
0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x30,
|
||||
0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x3f, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c,
|
||||
0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12,
|
||||
0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22, 0xe2, 0x06, 0x0a, 0x0b, 0x44, 0x42,
|
||||
0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68,
|
||||
0x65, 0x72, 0x6f, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72,
|
||||
0x6f, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x75, 0x65,
|
||||
0x78, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6a, 0x75,
|
||||
0x65, 0x78, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x74, 0x61,
|
||||
0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63,
|
||||
0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x2f, 0x0a, 0x0b, 0x6e,
|
||||
0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b,
|
||||
0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52,
|
||||
0x0b, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x39, 0x0a, 0x08,
|
||||
0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d,
|
||||
0x2e, 0x70, 0x62, 0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x2e,
|
||||
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70,
|
||||
0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x50, 0x72,
|
||||
0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70,
|
||||
0x62, 0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x64,
|
||||
0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b,
|
||||
0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x66,
|
||||
0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
|
||||
0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x72,
|
||||
0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72,
|
||||
0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e,
|
||||
0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x12,
|
||||
0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05,
|
||||
0x73, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x10,
|
||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x65,
|
||||
0x71, 0x75, 0x69, 0x70, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x65, 0x71,
|
||||
0x75, 0x69, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74,
|
||||
0x65, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x6f,
|
||||
0x6e, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x32, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x74, 0x72,
|
||||
0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x18,
|
||||
0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x65,
|
||||
0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x62,
|
||||
0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x65,
|
||||
0x72, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79,
|
||||
0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
@ -361,17 +362,17 @@ func file_hero_hero_db_proto_rawDescGZIP() []byte {
|
||||
|
||||
var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
|
||||
var file_hero_hero_db_proto_goTypes = []interface{}{
|
||||
(*SkillData)(nil), // 0: SkillData
|
||||
(*DB_HeroData)(nil), // 1: DB_HeroData
|
||||
nil, // 2: DB_HeroData.PropertyEntry
|
||||
nil, // 3: DB_HeroData.AddPropertyEntry
|
||||
nil, // 4: DB_HeroData.EnergyEntry
|
||||
(*SkillData)(nil), // 0: pb.SkillData
|
||||
(*DB_HeroData)(nil), // 1: pb.DB_HeroData
|
||||
nil, // 2: pb.DB_HeroData.PropertyEntry
|
||||
nil, // 3: pb.DB_HeroData.AddPropertyEntry
|
||||
nil, // 4: pb.DB_HeroData.EnergyEntry
|
||||
}
|
||||
var file_hero_hero_db_proto_depIdxs = []int32{
|
||||
0, // 0: DB_HeroData.normalSkill:type_name -> SkillData
|
||||
2, // 1: DB_HeroData.property:type_name -> DB_HeroData.PropertyEntry
|
||||
3, // 2: DB_HeroData.addProperty:type_name -> DB_HeroData.AddPropertyEntry
|
||||
4, // 3: DB_HeroData.energy:type_name -> DB_HeroData.EnergyEntry
|
||||
0, // 0: pb.DB_HeroData.normalSkill:type_name -> pb.SkillData
|
||||
2, // 1: pb.DB_HeroData.property:type_name -> pb.DB_HeroData.PropertyEntry
|
||||
3, // 2: pb.DB_HeroData.addProperty:type_name -> pb.DB_HeroData.AddPropertyEntry
|
||||
4, // 3: pb.DB_HeroData.energy:type_name -> pb.DB_HeroData.EnergyEntry
|
||||
4, // [4:4] is the sub-list for method output_type
|
||||
4, // [4:4] is the sub-list for method input_type
|
||||
4, // [4:4] is the sub-list for extension type_name
|
||||
|
@ -2,7 +2,7 @@
|
||||
// versions:
|
||||
// protoc-gen-go v1.28.0
|
||||
// protoc v3.20.0
|
||||
// source: pack/pack_db.proto
|
||||
// source: items/items_db.proto
|
||||
|
||||
package pb
|
||||
|
||||
@ -39,7 +39,7 @@ type DB_UserItemData struct {
|
||||
func (x *DB_UserItemData) Reset() {
|
||||
*x = DB_UserItemData{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_pack_pack_db_proto_msgTypes[0]
|
||||
mi := &file_items_items_db_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -52,7 +52,7 @@ func (x *DB_UserItemData) String() string {
|
||||
func (*DB_UserItemData) ProtoMessage() {}
|
||||
|
||||
func (x *DB_UserItemData) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_pack_pack_db_proto_msgTypes[0]
|
||||
mi := &file_items_items_db_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -65,7 +65,7 @@ func (x *DB_UserItemData) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use DB_UserItemData.ProtoReflect.Descriptor instead.
|
||||
func (*DB_UserItemData) Descriptor() ([]byte, []int) {
|
||||
return file_pack_pack_db_proto_rawDescGZIP(), []int{0}
|
||||
return file_items_items_db_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *DB_UserItemData) GetGridId() string {
|
||||
@ -124,44 +124,44 @@ func (x *DB_UserItemData) GetIsNewItem() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
var File_pack_pack_db_proto protoreflect.FileDescriptor
|
||||
var File_items_items_db_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_pack_pack_db_proto_rawDesc = []byte{
|
||||
0x0a, 0x12, 0x70, 0x61, 0x63, 0x6b, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x64, 0x62, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x55, 0x73, 0x65, 0x72,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x69, 0x64,
|
||||
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x69, 0x64, 0x49, 0x64,
|
||||
0x12, 0x10, 0x0a, 0x03, 0x75, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
|
||||
0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06,
|
||||
0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74,
|
||||
0x65, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05,
|
||||
0x63, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x54, 0x69,
|
||||
0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x4e, 0x65,
|
||||
0x77, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x4e,
|
||||
0x65, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
var file_items_items_db_proto_rawDesc = []byte{
|
||||
0x0a, 0x14, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x64, 0x62,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x55, 0x73,
|
||||
0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72,
|
||||
0x69, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x69, 0x64,
|
||||
0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x03, 0x75, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x16,
|
||||
0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
|
||||
0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14,
|
||||
0x0a, 0x05, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63,
|
||||
0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73,
|
||||
0x4e, 0x65, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69,
|
||||
0x73, 0x4e, 0x65, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_pack_pack_db_proto_rawDescOnce sync.Once
|
||||
file_pack_pack_db_proto_rawDescData = file_pack_pack_db_proto_rawDesc
|
||||
file_items_items_db_proto_rawDescOnce sync.Once
|
||||
file_items_items_db_proto_rawDescData = file_items_items_db_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_pack_pack_db_proto_rawDescGZIP() []byte {
|
||||
file_pack_pack_db_proto_rawDescOnce.Do(func() {
|
||||
file_pack_pack_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_pack_pack_db_proto_rawDescData)
|
||||
func file_items_items_db_proto_rawDescGZIP() []byte {
|
||||
file_items_items_db_proto_rawDescOnce.Do(func() {
|
||||
file_items_items_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_items_items_db_proto_rawDescData)
|
||||
})
|
||||
return file_pack_pack_db_proto_rawDescData
|
||||
return file_items_items_db_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_pack_pack_db_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_pack_pack_db_proto_goTypes = []interface{}{
|
||||
var file_items_items_db_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_items_items_db_proto_goTypes = []interface{}{
|
||||
(*DB_UserItemData)(nil), // 0: DB_UserItemData
|
||||
}
|
||||
var file_pack_pack_db_proto_depIdxs = []int32{
|
||||
var file_items_items_db_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
@ -169,13 +169,13 @@ var file_pack_pack_db_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_pack_pack_db_proto_init() }
|
||||
func file_pack_pack_db_proto_init() {
|
||||
if File_pack_pack_db_proto != nil {
|
||||
func init() { file_items_items_db_proto_init() }
|
||||
func file_items_items_db_proto_init() {
|
||||
if File_items_items_db_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_pack_pack_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
file_items_items_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*DB_UserItemData); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -192,18 +192,18 @@ func file_pack_pack_db_proto_init() {
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_pack_pack_db_proto_rawDesc,
|
||||
RawDescriptor: file_items_items_db_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_pack_pack_db_proto_goTypes,
|
||||
DependencyIndexes: file_pack_pack_db_proto_depIdxs,
|
||||
MessageInfos: file_pack_pack_db_proto_msgTypes,
|
||||
GoTypes: file_items_items_db_proto_goTypes,
|
||||
DependencyIndexes: file_items_items_db_proto_depIdxs,
|
||||
MessageInfos: file_items_items_db_proto_msgTypes,
|
||||
}.Build()
|
||||
File_pack_pack_db_proto = out.File
|
||||
file_pack_pack_db_proto_rawDesc = nil
|
||||
file_pack_pack_db_proto_goTypes = nil
|
||||
file_pack_pack_db_proto_depIdxs = nil
|
||||
File_items_items_db_proto = out.File
|
||||
file_items_items_db_proto_rawDesc = nil
|
||||
file_items_items_db_proto_goTypes = nil
|
||||
file_items_items_db_proto_depIdxs = nil
|
||||
}
|
484
pb/items_msg.pb.go
Normal file
484
pb/items_msg.pb.go
Normal file
@ -0,0 +1,484 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.28.0
|
||||
// protoc v3.20.0
|
||||
// source: items/items_msg.proto
|
||||
|
||||
package pb
|
||||
|
||||
import (
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
//查询用户背包请求
|
||||
type Items_Getlist_Req struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
IType int32 `protobuf:"varint,1,opt,name=IType,proto3" json:"IType"` //道具类型
|
||||
}
|
||||
|
||||
func (x *Items_Getlist_Req) Reset() {
|
||||
*x = Items_Getlist_Req{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_items_items_msg_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Items_Getlist_Req) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Items_Getlist_Req) ProtoMessage() {}
|
||||
|
||||
func (x *Items_Getlist_Req) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_items_items_msg_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Items_Getlist_Req.ProtoReflect.Descriptor instead.
|
||||
func (*Items_Getlist_Req) Descriptor() ([]byte, []int) {
|
||||
return file_items_items_msg_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *Items_Getlist_Req) GetIType() int32 {
|
||||
if x != nil {
|
||||
return x.IType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
//查询用户背包请求 回应
|
||||
type Items_Getlist_Resp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Grids []*DB_UserItemData `protobuf:"bytes,1,rep,name=Grids,proto3" json:"Grids"` //用户背包列表
|
||||
}
|
||||
|
||||
func (x *Items_Getlist_Resp) Reset() {
|
||||
*x = Items_Getlist_Resp{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_items_items_msg_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Items_Getlist_Resp) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Items_Getlist_Resp) ProtoMessage() {}
|
||||
|
||||
func (x *Items_Getlist_Resp) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_items_items_msg_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Items_Getlist_Resp.ProtoReflect.Descriptor instead.
|
||||
func (*Items_Getlist_Resp) Descriptor() ([]byte, []int) {
|
||||
return file_items_items_msg_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *Items_Getlist_Resp) GetGrids() []*DB_UserItemData {
|
||||
if x != nil {
|
||||
return x.Grids
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//使用物品请求
|
||||
type Items_UseItem_Req struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
GridId int32 `protobuf:"varint,1,opt,name=GridId,proto3" json:"GridId"` //格子Id
|
||||
ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId"` //物品Id
|
||||
Amount uint32 `protobuf:"varint,3,opt,name=Amount,proto3" json:"Amount"` //使用数量
|
||||
}
|
||||
|
||||
func (x *Items_UseItem_Req) Reset() {
|
||||
*x = Items_UseItem_Req{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_items_items_msg_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Items_UseItem_Req) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Items_UseItem_Req) ProtoMessage() {}
|
||||
|
||||
func (x *Items_UseItem_Req) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_items_items_msg_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Items_UseItem_Req.ProtoReflect.Descriptor instead.
|
||||
func (*Items_UseItem_Req) Descriptor() ([]byte, []int) {
|
||||
return file_items_items_msg_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *Items_UseItem_Req) GetGridId() int32 {
|
||||
if x != nil {
|
||||
return x.GridId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Items_UseItem_Req) GetItemId() int32 {
|
||||
if x != nil {
|
||||
return x.ItemId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Items_UseItem_Req) GetAmount() uint32 {
|
||||
if x != nil {
|
||||
return x.Amount
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
//使用物品请求 回应
|
||||
type Items_UseItem_Resp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
}
|
||||
|
||||
func (x *Items_UseItem_Resp) Reset() {
|
||||
*x = Items_UseItem_Resp{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_items_items_msg_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Items_UseItem_Resp) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Items_UseItem_Resp) ProtoMessage() {}
|
||||
|
||||
func (x *Items_UseItem_Resp) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_items_items_msg_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Items_UseItem_Resp.ProtoReflect.Descriptor instead.
|
||||
func (*Items_UseItem_Resp) Descriptor() ([]byte, []int) {
|
||||
return file_items_items_msg_proto_rawDescGZIP(), []int{3}
|
||||
}
|
||||
|
||||
//出售道具请求sailitem
|
||||
type Items_SellItem_Req struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
GridId int32 `protobuf:"varint,1,opt,name=GridId,proto3" json:"GridId"` //格子Id
|
||||
ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId"` //物品Id
|
||||
Amount uint32 `protobuf:"varint,3,opt,name=Amount,proto3" json:"Amount"` //使用数量
|
||||
}
|
||||
|
||||
func (x *Items_SellItem_Req) Reset() {
|
||||
*x = Items_SellItem_Req{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_items_items_msg_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Items_SellItem_Req) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Items_SellItem_Req) ProtoMessage() {}
|
||||
|
||||
func (x *Items_SellItem_Req) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_items_items_msg_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Items_SellItem_Req.ProtoReflect.Descriptor instead.
|
||||
func (*Items_SellItem_Req) Descriptor() ([]byte, []int) {
|
||||
return file_items_items_msg_proto_rawDescGZIP(), []int{4}
|
||||
}
|
||||
|
||||
func (x *Items_SellItem_Req) GetGridId() int32 {
|
||||
if x != nil {
|
||||
return x.GridId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Items_SellItem_Req) GetItemId() int32 {
|
||||
if x != nil {
|
||||
return x.ItemId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Items_SellItem_Req) GetAmount() uint32 {
|
||||
if x != nil {
|
||||
return x.Amount
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
//出售道具请求 回应
|
||||
type Items_SellItem_Resp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
}
|
||||
|
||||
func (x *Items_SellItem_Resp) Reset() {
|
||||
*x = Items_SellItem_Resp{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_items_items_msg_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Items_SellItem_Resp) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Items_SellItem_Resp) ProtoMessage() {}
|
||||
|
||||
func (x *Items_SellItem_Resp) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_items_items_msg_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Items_SellItem_Resp.ProtoReflect.Descriptor instead.
|
||||
func (*Items_SellItem_Resp) Descriptor() ([]byte, []int) {
|
||||
return file_items_items_msg_proto_rawDescGZIP(), []int{5}
|
||||
}
|
||||
|
||||
var File_items_items_msg_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_items_items_msg_proto_rawDesc = []byte{
|
||||
0x0a, 0x15, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x6d, 0x73,
|
||||
0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x69,
|
||||
0x74, 0x65, 0x6d, 0x73, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x29, 0x0a,
|
||||
0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x47, 0x65, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x52,
|
||||
0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x05, 0x49, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3c, 0x0a, 0x12, 0x49, 0x74, 0x65, 0x6d,
|
||||
0x73, 0x5f, 0x47, 0x65, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26,
|
||||
0x0a, 0x05, 0x47, 0x72, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e,
|
||||
0x44, 0x42, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52,
|
||||
0x05, 0x47, 0x72, 0x69, 0x64, 0x73, 0x22, 0x5b, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x5f,
|
||||
0x55, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x47,
|
||||
0x72, 0x69, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x72, 0x69,
|
||||
0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41,
|
||||
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x41, 0x6d, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x55, 0x73, 0x65,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5c, 0x0a, 0x12, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x73, 0x5f, 0x53, 0x65, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x52, 0x65, 0x71, 0x12,
|
||||
0x16, 0x0a, 0x06, 0x47, 0x72, 0x69, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x06, 0x47, 0x72, 0x69, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49,
|
||||
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12,
|
||||
0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x74, 0x65, 0x6d, 0x73,
|
||||
0x5f, 0x53, 0x65, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06,
|
||||
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_items_items_msg_proto_rawDescOnce sync.Once
|
||||
file_items_items_msg_proto_rawDescData = file_items_items_msg_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_items_items_msg_proto_rawDescGZIP() []byte {
|
||||
file_items_items_msg_proto_rawDescOnce.Do(func() {
|
||||
file_items_items_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_items_items_msg_proto_rawDescData)
|
||||
})
|
||||
return file_items_items_msg_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_items_items_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
|
||||
var file_items_items_msg_proto_goTypes = []interface{}{
|
||||
(*Items_Getlist_Req)(nil), // 0: Items_Getlist_Req
|
||||
(*Items_Getlist_Resp)(nil), // 1: Items_Getlist_Resp
|
||||
(*Items_UseItem_Req)(nil), // 2: Items_UseItem_Req
|
||||
(*Items_UseItem_Resp)(nil), // 3: Items_UseItem_Resp
|
||||
(*Items_SellItem_Req)(nil), // 4: Items_SellItem_Req
|
||||
(*Items_SellItem_Resp)(nil), // 5: Items_SellItem_Resp
|
||||
(*DB_UserItemData)(nil), // 6: DB_UserItemData
|
||||
}
|
||||
var file_items_items_msg_proto_depIdxs = []int32{
|
||||
6, // 0: Items_Getlist_Resp.Grids:type_name -> DB_UserItemData
|
||||
1, // [1:1] is the sub-list for method output_type
|
||||
1, // [1:1] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_items_items_msg_proto_init() }
|
||||
func file_items_items_msg_proto_init() {
|
||||
if File_items_items_msg_proto != nil {
|
||||
return
|
||||
}
|
||||
file_items_items_db_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_items_items_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Items_Getlist_Req); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_items_items_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Items_Getlist_Resp); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_items_items_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Items_UseItem_Req); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_items_items_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Items_UseItem_Resp); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_items_items_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Items_SellItem_Req); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_items_items_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Items_SellItem_Resp); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_items_items_msg_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 6,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_items_items_msg_proto_goTypes,
|
||||
DependencyIndexes: file_items_items_msg_proto_depIdxs,
|
||||
MessageInfos: file_items_items_msg_proto_msgTypes,
|
||||
}.Build()
|
||||
File_items_items_msg_proto = out.File
|
||||
file_items_items_msg_proto_rawDesc = nil
|
||||
file_items_items_msg_proto_goTypes = nil
|
||||
file_items_items_msg_proto_depIdxs = nil
|
||||
}
|
@ -1,484 +0,0 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.28.0
|
||||
// protoc v3.20.0
|
||||
// source: pack/pack_msg.proto
|
||||
|
||||
package pb
|
||||
|
||||
import (
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
//查询用户背包请求
|
||||
type Pack_Getlist_Req struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
IType int32 `protobuf:"varint,1,opt,name=IType,proto3" json:"IType"` //道具类型
|
||||
}
|
||||
|
||||
func (x *Pack_Getlist_Req) Reset() {
|
||||
*x = Pack_Getlist_Req{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Pack_Getlist_Req) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Pack_Getlist_Req) ProtoMessage() {}
|
||||
|
||||
func (x *Pack_Getlist_Req) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Pack_Getlist_Req.ProtoReflect.Descriptor instead.
|
||||
func (*Pack_Getlist_Req) Descriptor() ([]byte, []int) {
|
||||
return file_pack_pack_msg_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *Pack_Getlist_Req) GetIType() int32 {
|
||||
if x != nil {
|
||||
return x.IType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
//查询用户背包请求 回应
|
||||
type Pack_Getlist_Resp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Grids []*DB_UserItemData `protobuf:"bytes,1,rep,name=Grids,proto3" json:"Grids"` //用户背包列表
|
||||
}
|
||||
|
||||
func (x *Pack_Getlist_Resp) Reset() {
|
||||
*x = Pack_Getlist_Resp{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Pack_Getlist_Resp) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Pack_Getlist_Resp) ProtoMessage() {}
|
||||
|
||||
func (x *Pack_Getlist_Resp) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Pack_Getlist_Resp.ProtoReflect.Descriptor instead.
|
||||
func (*Pack_Getlist_Resp) Descriptor() ([]byte, []int) {
|
||||
return file_pack_pack_msg_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *Pack_Getlist_Resp) GetGrids() []*DB_UserItemData {
|
||||
if x != nil {
|
||||
return x.Grids
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//使用物品请求
|
||||
type Pack_UseItem_Req struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
GridId int32 `protobuf:"varint,1,opt,name=GridId,proto3" json:"GridId"` //格子Id
|
||||
ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId"` //物品Id
|
||||
Amount uint32 `protobuf:"varint,3,opt,name=Amount,proto3" json:"Amount"` //使用数量
|
||||
}
|
||||
|
||||
func (x *Pack_UseItem_Req) Reset() {
|
||||
*x = Pack_UseItem_Req{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Pack_UseItem_Req) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Pack_UseItem_Req) ProtoMessage() {}
|
||||
|
||||
func (x *Pack_UseItem_Req) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Pack_UseItem_Req.ProtoReflect.Descriptor instead.
|
||||
func (*Pack_UseItem_Req) Descriptor() ([]byte, []int) {
|
||||
return file_pack_pack_msg_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *Pack_UseItem_Req) GetGridId() int32 {
|
||||
if x != nil {
|
||||
return x.GridId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Pack_UseItem_Req) GetItemId() int32 {
|
||||
if x != nil {
|
||||
return x.ItemId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Pack_UseItem_Req) GetAmount() uint32 {
|
||||
if x != nil {
|
||||
return x.Amount
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
//使用物品请求 回应
|
||||
type Pack_UseItem_Resp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
}
|
||||
|
||||
func (x *Pack_UseItem_Resp) Reset() {
|
||||
*x = Pack_UseItem_Resp{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Pack_UseItem_Resp) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Pack_UseItem_Resp) ProtoMessage() {}
|
||||
|
||||
func (x *Pack_UseItem_Resp) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Pack_UseItem_Resp.ProtoReflect.Descriptor instead.
|
||||
func (*Pack_UseItem_Resp) Descriptor() ([]byte, []int) {
|
||||
return file_pack_pack_msg_proto_rawDescGZIP(), []int{3}
|
||||
}
|
||||
|
||||
//出售道具请求sailitem
|
||||
type Pack_SellItem_Req struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
GridId int32 `protobuf:"varint,1,opt,name=GridId,proto3" json:"GridId"` //格子Id
|
||||
ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId"` //物品Id
|
||||
Amount uint32 `protobuf:"varint,3,opt,name=Amount,proto3" json:"Amount"` //使用数量
|
||||
}
|
||||
|
||||
func (x *Pack_SellItem_Req) Reset() {
|
||||
*x = Pack_SellItem_Req{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Pack_SellItem_Req) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Pack_SellItem_Req) ProtoMessage() {}
|
||||
|
||||
func (x *Pack_SellItem_Req) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Pack_SellItem_Req.ProtoReflect.Descriptor instead.
|
||||
func (*Pack_SellItem_Req) Descriptor() ([]byte, []int) {
|
||||
return file_pack_pack_msg_proto_rawDescGZIP(), []int{4}
|
||||
}
|
||||
|
||||
func (x *Pack_SellItem_Req) GetGridId() int32 {
|
||||
if x != nil {
|
||||
return x.GridId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Pack_SellItem_Req) GetItemId() int32 {
|
||||
if x != nil {
|
||||
return x.ItemId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Pack_SellItem_Req) GetAmount() uint32 {
|
||||
if x != nil {
|
||||
return x.Amount
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
//出售道具请求 回应
|
||||
type Pack_SellItem_Resp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
}
|
||||
|
||||
func (x *Pack_SellItem_Resp) Reset() {
|
||||
*x = Pack_SellItem_Resp{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Pack_SellItem_Resp) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Pack_SellItem_Resp) ProtoMessage() {}
|
||||
|
||||
func (x *Pack_SellItem_Resp) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_pack_pack_msg_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Pack_SellItem_Resp.ProtoReflect.Descriptor instead.
|
||||
func (*Pack_SellItem_Resp) Descriptor() ([]byte, []int) {
|
||||
return file_pack_pack_msg_proto_rawDescGZIP(), []int{5}
|
||||
}
|
||||
|
||||
var File_pack_pack_msg_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_pack_pack_msg_proto_rawDesc = []byte{
|
||||
0x0a, 0x13, 0x70, 0x61, 0x63, 0x6b, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x73, 0x67, 0x2e,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x70, 0x61, 0x63, 0x6b, 0x2f, 0x70, 0x61, 0x63, 0x6b,
|
||||
0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x28, 0x0a, 0x10, 0x50, 0x61, 0x63,
|
||||
0x6b, 0x5f, 0x47, 0x65, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x49, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x54,
|
||||
0x79, 0x70, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x5f, 0x47, 0x65, 0x74, 0x6c,
|
||||
0x69, 0x73, 0x74, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x05, 0x47, 0x72, 0x69, 0x64,
|
||||
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x42, 0x5f, 0x55, 0x73, 0x65,
|
||||
0x72, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x47, 0x72, 0x69, 0x64, 0x73,
|
||||
0x22, 0x5a, 0x0a, 0x10, 0x50, 0x61, 0x63, 0x6b, 0x5f, 0x55, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d,
|
||||
0x5f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x72, 0x69, 0x64, 0x49, 0x64, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x72, 0x69, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11,
|
||||
0x50, 0x61, 0x63, 0x6b, 0x5f, 0x55, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x52, 0x65, 0x73,
|
||||
0x70, 0x22, 0x5b, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x5f, 0x53, 0x65, 0x6c, 0x6c, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x5f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x72, 0x69, 0x64, 0x49, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x72, 0x69, 0x64, 0x49, 0x64, 0x12, 0x16,
|
||||
0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x14,
|
||||
0x0a, 0x12, 0x50, 0x61, 0x63, 0x6b, 0x5f, 0x53, 0x65, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x5f,
|
||||
0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_pack_pack_msg_proto_rawDescOnce sync.Once
|
||||
file_pack_pack_msg_proto_rawDescData = file_pack_pack_msg_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_pack_pack_msg_proto_rawDescGZIP() []byte {
|
||||
file_pack_pack_msg_proto_rawDescOnce.Do(func() {
|
||||
file_pack_pack_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_pack_pack_msg_proto_rawDescData)
|
||||
})
|
||||
return file_pack_pack_msg_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_pack_pack_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
|
||||
var file_pack_pack_msg_proto_goTypes = []interface{}{
|
||||
(*Pack_Getlist_Req)(nil), // 0: Pack_Getlist_Req
|
||||
(*Pack_Getlist_Resp)(nil), // 1: Pack_Getlist_Resp
|
||||
(*Pack_UseItem_Req)(nil), // 2: Pack_UseItem_Req
|
||||
(*Pack_UseItem_Resp)(nil), // 3: Pack_UseItem_Resp
|
||||
(*Pack_SellItem_Req)(nil), // 4: Pack_SellItem_Req
|
||||
(*Pack_SellItem_Resp)(nil), // 5: Pack_SellItem_Resp
|
||||
(*DB_UserItemData)(nil), // 6: DB_UserItemData
|
||||
}
|
||||
var file_pack_pack_msg_proto_depIdxs = []int32{
|
||||
6, // 0: Pack_Getlist_Resp.Grids:type_name -> DB_UserItemData
|
||||
1, // [1:1] is the sub-list for method output_type
|
||||
1, // [1:1] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_pack_pack_msg_proto_init() }
|
||||
func file_pack_pack_msg_proto_init() {
|
||||
if File_pack_pack_msg_proto != nil {
|
||||
return
|
||||
}
|
||||
file_pack_pack_db_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_pack_pack_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Pack_Getlist_Req); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_pack_pack_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Pack_Getlist_Resp); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_pack_pack_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Pack_UseItem_Req); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_pack_pack_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Pack_UseItem_Resp); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_pack_pack_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Pack_SellItem_Req); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_pack_pack_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Pack_SellItem_Resp); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_pack_pack_msg_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 6,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_pack_pack_msg_proto_goTypes,
|
||||
DependencyIndexes: file_pack_pack_msg_proto_depIdxs,
|
||||
MessageInfos: file_pack_pack_msg_proto_msgTypes,
|
||||
}.Build()
|
||||
File_pack_pack_msg_proto = out.File
|
||||
file_pack_pack_msg_proto_rawDesc = nil
|
||||
file_pack_pack_msg_proto_goTypes = nil
|
||||
file_pack_pack_msg_proto_depIdxs = nil
|
||||
}
|
@ -18,6 +18,9 @@ enum ErrorCode {
|
||||
SystemError = 22; //通用错误
|
||||
Exception = 100; //程序执行异常
|
||||
Unknown = 101; //未知错误
|
||||
ResNoEnough = 102; //资源不足
|
||||
ConfigurationException = 103; //配置异常
|
||||
ConfigNoFound = 104; //配置未找到
|
||||
|
||||
// user
|
||||
SecKeyInvalid = 1000; //秘钥无效
|
||||
@ -38,11 +41,11 @@ enum ErrorCode {
|
||||
FriendBlackMax = 1110; //黑名单最大数量
|
||||
FriendSearchNameEmpty = 1111; //查询昵称为空
|
||||
|
||||
// pack
|
||||
PackNoEnough = 1200; //背包物品不足
|
||||
PackNoFoundGird = 1201; //背包未找到物品格子
|
||||
PackGridNumUpper = 1202; //背包格子数量已达上限
|
||||
PackGirdAmountUpper = 1203; //背包格子容量已达上限
|
||||
// item
|
||||
ItemsNoEnough = 1200; //背包物品不足
|
||||
ItemsNoFoundGird = 1201; //背包未找到物品格子
|
||||
ItemsGridNumUpper = 1202; //背包格子数量已达上限
|
||||
ItemsGirdAmountUpper = 1203; //背包格子容量已达上限
|
||||
|
||||
// hero
|
||||
HeroNoExist = 1300; //英雄不存在
|
||||
|
@ -1,5 +1,6 @@
|
||||
syntax = "proto3";
|
||||
option go_package = ".;pb";
|
||||
package pb;
|
||||
|
||||
// enum PropertyType{
|
||||
// Hp = 0; //血量
|
||||
@ -24,15 +25,18 @@ message DB_HeroData {
|
||||
int32 captainSkill = 8; //@go_tags(`bson:"captainSkill"`) 队长技能
|
||||
repeated SkillData normalSkill = 9; //@go_tags(`bson:"normalSkill"`) 普通技能
|
||||
map<int32, int32> property = 10; // 属性相关
|
||||
map<int32, int32> addProperty = 11; //@go_tags(`bson:"addProperty"`) 附加属性相关
|
||||
map<int32, int32> addProperty =
|
||||
11; //@go_tags(`bson:"addProperty"`) 附加属性相关
|
||||
int32 formation = 12; // 阵型类型
|
||||
int32 cardType = 13; //@go_tags(`bson:"cardType"`) 卡片类型(升星卡、经验卡、技能升级卡)
|
||||
int32 cardType =
|
||||
13; //@go_tags(`bson:"cardType"`) 卡片类型(升星卡、经验卡、技能升级卡)
|
||||
int32 curSkin = 14; //@go_tags(`bson:"curSkin"`) 当前装备的皮肤ID
|
||||
repeated int32 skins = 15; // 所有皮肤ID
|
||||
bool block = 16; // 锁定
|
||||
repeated string equipID = 17; //@go_tags(`bson:"equipID"`) 装备 objID
|
||||
int32 resonateNum = 18; //@go_tags(`bson:"resonateNum"`) 共鸣次数
|
||||
int32 distributionResonate = 19; //@go_tags(`bson:"distributionResonate"`) 分配的共鸣能量
|
||||
int32 distributionResonate =
|
||||
19; //@go_tags(`bson:"distributionResonate"`) 分配的共鸣能量
|
||||
map<int32, int32> energy = 20; // 能量分配到哪里
|
||||
int32 count = 21; // 数量
|
||||
}
|
@ -1,7 +1,19 @@
|
||||
syntax = "proto3";
|
||||
option go_package = ".;pb";
|
||||
package pb;
|
||||
import "hero/hero_db.proto";
|
||||
|
||||
//英雄基础信息
|
||||
message Hero_Info_Req {
|
||||
string heroId = 1; //英雄唯一ID
|
||||
}
|
||||
message Hero_Info_Rsp { DB_HeroData base = 1; }
|
||||
|
||||
//英雄列表
|
||||
message Hero_List_Req {}
|
||||
|
||||
message Hero_List_Rsp { repeated DB_HeroData list = 1; }
|
||||
|
||||
/// 卡牌养成: 强化(卡牌升级、卡牌升星、技能升级)
|
||||
/// 卡牌养成: 共鸣(共鸣消耗、材料返回、能量点使用)
|
||||
/// 卡牌养成: 觉醒(英雄觉醒、材料消耗)
|
||||
@ -15,8 +27,7 @@ message ItemData{
|
||||
message Hero_StrengthenUplv_Req {
|
||||
string heroObjID = 1; // 英雄对象ID
|
||||
string expCardID = 2; // 经验卡对象ID
|
||||
int32 amount = 3; // 消耗经验卡数量
|
||||
}
|
||||
int32 amount = 3; // 消耗经验卡数量}
|
||||
|
||||
// 卡牌升级返回
|
||||
message Hero_StrengthenUplv_Resp {
|
||||
|
@ -1,37 +1,37 @@
|
||||
syntax = "proto3";
|
||||
option go_package = ".;pb";
|
||||
import "pack/pack_db.proto";
|
||||
import "items/items_db.proto";
|
||||
|
||||
//查询用户背包请求
|
||||
message Pack_Getlist_Req {
|
||||
message Items_Getlist_Req {
|
||||
int32 IType = 1; //道具类型
|
||||
}
|
||||
|
||||
//查询用户背包请求 回应
|
||||
message Pack_Getlist_Resp {
|
||||
message Items_Getlist_Resp {
|
||||
repeated DB_UserItemData Grids = 1; //用户背包列表
|
||||
}
|
||||
|
||||
//使用物品请求
|
||||
message Pack_UseItem_Req {
|
||||
message Items_UseItem_Req {
|
||||
int32 GridId = 1; //格子Id
|
||||
int32 ItemId = 2; //物品Id
|
||||
uint32 Amount = 3; //使用数量
|
||||
}
|
||||
|
||||
//使用物品请求 回应
|
||||
message Pack_UseItem_Resp {
|
||||
message Items_UseItem_Resp {
|
||||
|
||||
}
|
||||
|
||||
//出售道具请求sailitem
|
||||
message Pack_SellItem_Req {
|
||||
message Items_SellItem_Req {
|
||||
int32 GridId = 1; //格子Id
|
||||
int32 ItemId = 2; //物品Id
|
||||
uint32 Amount = 3; //使用数量
|
||||
}
|
||||
|
||||
//出售道具请求 回应
|
||||
message Pack_SellItem_Resp {
|
||||
message Items_SellItem_Resp {
|
||||
|
||||
}
|
@ -21,4 +21,6 @@ message DB_UserData {
|
||||
int64 logintime = 10; //@go_tags(`bson:"logintime"`) 最后一次登录时间
|
||||
int32 friendPoint = 11; //@go_tags(`bson:"friendPoint"`) 友情点
|
||||
int32 avatar = 12; //@go_tags(`bson:"avatar"`) 头像
|
||||
int32 gold = 13; //@go_tags(`bson:"gold"`) 金币
|
||||
int32 exp = 14; //@go_tags(`bson:"exp"`) 经验
|
||||
}
|
@ -100,6 +100,8 @@ type DB_UserData struct {
|
||||
Logintime int64 `protobuf:"varint,10,opt,name=logintime,proto3" json:"logintime" bson:"logintime"` //最后一次登录时间
|
||||
FriendPoint int32 `protobuf:"varint,11,opt,name=friendPoint,proto3" json:"friendPoint" bson:"friendPoint"` //友情点
|
||||
Avatar int32 `protobuf:"varint,12,opt,name=avatar,proto3" json:"avatar" bson:"avatar"` //头像
|
||||
Gold int32 `protobuf:"varint,13,opt,name=gold,proto3" json:"gold" bson:"gold"` //金币
|
||||
Exp int32 `protobuf:"varint,14,opt,name=exp,proto3" json:"exp" bson:"exp"` //经验
|
||||
}
|
||||
|
||||
func (x *DB_UserData) Reset() {
|
||||
@ -218,6 +220,20 @@ func (x *DB_UserData) GetAvatar() int32 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DB_UserData) GetGold() int32 {
|
||||
if x != nil {
|
||||
return x.Gold
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DB_UserData) GetExp() int32 {
|
||||
if x != nil {
|
||||
return x.Exp
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
var File_user_user_db_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_user_user_db_proto_rawDesc = []byte{
|
||||
@ -229,7 +245,7 @@ var file_user_user_db_proto_rawDesc = []byte{
|
||||
0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
||||
0x49, 0x64, 0x22, 0xaf, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61,
|
||||
0x49, 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61,
|
||||
0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
|
||||
0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
|
||||
@ -248,8 +264,10 @@ var file_user_user_db_proto_rawDesc = []byte{
|
||||
0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06,
|
||||
0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x76,
|
||||
0x61, 0x74, 0x61, 0x72, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x0d, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18,
|
||||
0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
|
||||
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
@ -44,3 +44,9 @@ func newOptionsByOption(opts ...Option) (Options, error) {
|
||||
}
|
||||
return options, nil
|
||||
}
|
||||
|
||||
func SetConfigPath(v string) Option {
|
||||
return func(o *Options) {
|
||||
o.ConfigurePath = v
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
@ -11,6 +12,7 @@ package cfg
|
||||
type JsonLoader func(string) ([]map[string]interface{}, error)
|
||||
|
||||
type Tables struct {
|
||||
hero *Game_hero
|
||||
ui *Game_ui
|
||||
skill *Game_skill
|
||||
plot *Game_plot
|
||||
@ -25,6 +27,11 @@ type Tables struct {
|
||||
heroLevelgrow *Game_heroLevelgrow
|
||||
heroStarup *Game_heroStarup
|
||||
heroLevelup *Game_heroLevelup
|
||||
equip *Game_equip
|
||||
equipAttrlibrary *Game_equipAttrlibrary
|
||||
equipSuit *Game_equipSuit
|
||||
equipIntensify *Game_equipIntensify
|
||||
item *Game_item
|
||||
}
|
||||
|
||||
func NewTables(loader JsonLoader) (*Tables, error) {
|
||||
@ -32,7 +39,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
|
||||
var buf []map[string]interface{}
|
||||
|
||||
tables := &Tables{}
|
||||
|
||||
if buf, err = loader("game_hero") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.hero, err = NewGame_hero(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_ui") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -117,5 +129,35 @@ func NewTables(loader JsonLoader) (*Tables, error) {
|
||||
if tables.heroLevelup, err = NewGame_heroLevelup(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_equip") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.equip, err = NewGame_equip(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_equipattrlibrary") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.equipAttrlibrary, err = NewGame_equipAttrlibrary(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_equipsuit") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.equipSuit, err = NewGame_equipSuit(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_equipintensify") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.equipIntensify, err = NewGame_equipIntensify(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_item") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.item, err = NewGame_item(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return tables, nil
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ type Game_equipAttrlibraryData struct {
|
||||
Libraryid int32
|
||||
Attr []string
|
||||
Probability int32
|
||||
Addition []int32
|
||||
}
|
||||
|
||||
func (Game_equipAttrlibraryData) GetTypeId() int {
|
||||
@ -40,5 +41,19 @@ func NewGame_equipAttrlibraryData(_buf map[string]interface{}) (_v *Game_equipAt
|
||||
}
|
||||
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["probability"].(float64); !_ok_ { err = errors.New("probability error"); return }; _v.Probability = int32(_tempNum_) }
|
||||
{
|
||||
var _arr_ []interface{}
|
||||
var _ok_ bool
|
||||
if _arr_, _ok_ = _buf["Addition"].([]interface{}); !_ok_ { err = errors.New("Addition error"); return }
|
||||
|
||||
_v.Addition = make([]int32, 0, len(_arr_))
|
||||
|
||||
for _, _e_ := range _arr_ {
|
||||
var _list_v_ int32
|
||||
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
|
||||
_v.Addition = append(_v.Addition, _list_v_)
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
@ -14,6 +14,7 @@ type Game_equipSuitData struct {
|
||||
Suittype int32
|
||||
Suitnum int32
|
||||
Skill int32
|
||||
Skillintr string
|
||||
}
|
||||
|
||||
func (Game_equipSuitData) GetTypeId() int {
|
||||
@ -25,5 +26,6 @@ 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["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; if _v.Skillintr, _ok_ = _buf["skillintr"].(string); !_ok_ { err = errors.New("skillintr error"); return } }
|
||||
return
|
||||
}
|
||||
|
@ -1,39 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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 Game_equipment struct {
|
||||
_dataMap map[int32]*Game_equipmentData
|
||||
_dataList []*Game_equipmentData
|
||||
}
|
||||
|
||||
func NewGame_equipment(_buf []map[string]interface{}) (*Game_equipment, error) {
|
||||
_dataList := make([]*Game_equipmentData, 0, len(_buf))
|
||||
dataMap := make(map[int32]*Game_equipmentData)
|
||||
for _, _ele_ := range _buf {
|
||||
if _v, err2 := NewGame_equipmentData(_ele_); err2 != nil {
|
||||
return nil, err2
|
||||
} else {
|
||||
_dataList = append(_dataList, _v)
|
||||
dataMap[_v.Id] = _v
|
||||
}
|
||||
}
|
||||
return &Game_equipment{_dataList: _dataList, _dataMap: dataMap}, nil
|
||||
}
|
||||
|
||||
func (table *Game_equipment) GetDataMap() map[int32]*Game_equipmentData {
|
||||
return table._dataMap
|
||||
}
|
||||
|
||||
func (table *Game_equipment) GetDataList() []*Game_equipmentData {
|
||||
return table._dataList
|
||||
}
|
||||
|
||||
func (table *Game_equipment) Get(key int32) *Game_equipmentData {
|
||||
return table._dataMap[key]
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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 Game_equipmentData struct {
|
||||
Id int32
|
||||
Name string
|
||||
Star int32
|
||||
Quality int32
|
||||
Station int32
|
||||
MaxLv int32
|
||||
UpgradeProbability []int32
|
||||
UpgradeGuaranteed []int32
|
||||
}
|
||||
|
||||
func (Game_equipmentData) GetTypeId() int {
|
||||
return 859081052
|
||||
}
|
||||
|
||||
func NewGame_equipmentData(_buf map[string]interface{}) (_v *Game_equipmentData, err error) {
|
||||
_v = &Game_equipmentData{}
|
||||
{
|
||||
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.Name, _ok_ = _buf["name"].(string); !_ok_ {
|
||||
err = errors.New("name error")
|
||||
return
|
||||
}
|
||||
}
|
||||
{
|
||||
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["quality"].(float64); !_ok_ {
|
||||
err = errors.New("quality error")
|
||||
return
|
||||
}
|
||||
_v.Quality = int32(_tempNum_)
|
||||
}
|
||||
{
|
||||
var _ok_ bool
|
||||
var _tempNum_ float64
|
||||
if _tempNum_, _ok_ = _buf["station"].(float64); !_ok_ {
|
||||
err = errors.New("station error")
|
||||
return
|
||||
}
|
||||
_v.Station = int32(_tempNum_)
|
||||
}
|
||||
return
|
||||
}
|
42
sys/configure/structs/game.hero.go
Normal file
42
sys/configure/structs/game.hero.go
Normal 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 Game_hero struct {
|
||||
_dataMap map[int32]*Game_heroData
|
||||
_dataList []*Game_heroData
|
||||
}
|
||||
|
||||
func NewGame_hero(_buf []map[string]interface{}) (*Game_hero, error) {
|
||||
_dataList := make([]*Game_heroData, 0, len(_buf))
|
||||
dataMap := make(map[int32]*Game_heroData)
|
||||
for _, _ele_ := range _buf {
|
||||
if _v, err2 := NewGame_heroData(_ele_); err2 != nil {
|
||||
return nil, err2
|
||||
} else {
|
||||
_dataList = append(_dataList, _v)
|
||||
dataMap[_v.Id] = _v
|
||||
}
|
||||
}
|
||||
return &Game_hero{_dataList:_dataList, _dataMap:dataMap}, nil
|
||||
}
|
||||
|
||||
func (table *Game_hero) GetDataMap() map[int32]*Game_heroData {
|
||||
return table._dataMap
|
||||
}
|
||||
|
||||
func (table *Game_hero) GetDataList() []*Game_heroData {
|
||||
return table._dataList
|
||||
}
|
||||
|
||||
func (table *Game_hero) Get(key int32) *Game_heroData {
|
||||
return table._dataMap[key]
|
||||
}
|
||||
|
||||
|
95
sys/configure/structs/game.heroData.go
Normal file
95
sys/configure/structs/game.heroData.go
Normal file
@ -0,0 +1,95 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <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"
|
||||
import "bright/math"
|
||||
|
||||
type Game_heroData struct {
|
||||
Id int32
|
||||
Name string
|
||||
Star int32
|
||||
Color int32
|
||||
Race int32
|
||||
Job int32
|
||||
Type int32
|
||||
Prefab string
|
||||
Icon int32
|
||||
Sound int32
|
||||
Tujing []int32
|
||||
Intr string
|
||||
Events string
|
||||
Cite string
|
||||
Effectstay []string
|
||||
Hpspace math.Vector3
|
||||
Skill1 int32
|
||||
Skill2 int32
|
||||
Skill3 int32
|
||||
}
|
||||
|
||||
func (Game_heroData) GetTypeId() int {
|
||||
return 650222912
|
||||
}
|
||||
|
||||
func NewGame_heroData(_buf map[string]interface{}) (_v *Game_heroData, err error) {
|
||||
_v = &Game_heroData{}
|
||||
{ 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.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } }
|
||||
{ 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["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["race"].(float64); !_ok_ { err = errors.New("race error"); return }; _v.Race = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["job"].(float64); !_ok_ { err = errors.New("job error"); return }; _v.Job = 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; if _v.Prefab, _ok_ = _buf["prefab"].(string); !_ok_ { err = errors.New("prefab error"); return } }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["icon"].(float64); !_ok_ { err = errors.New("icon error"); return }; _v.Icon = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["sound"].(float64); !_ok_ { err = errors.New("sound error"); return }; _v.Sound = int32(_tempNum_) }
|
||||
{
|
||||
var _arr_ []interface{}
|
||||
var _ok_ bool
|
||||
if _arr_, _ok_ = _buf["tujing"].([]interface{}); !_ok_ { err = errors.New("tujing error"); return }
|
||||
|
||||
_v.Tujing = make([]int32, 0, len(_arr_))
|
||||
|
||||
for _, _e_ := range _arr_ {
|
||||
var _list_v_ int32
|
||||
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
|
||||
_v.Tujing = append(_v.Tujing, _list_v_)
|
||||
}
|
||||
}
|
||||
|
||||
{ var _ok_ bool; if _v.Intr, _ok_ = _buf["intr"].(string); !_ok_ { err = errors.New("intr error"); return } }
|
||||
{ var _ok_ bool; if _v.Events, _ok_ = _buf["events"].(string); !_ok_ { err = errors.New("events error"); return } }
|
||||
{ var _ok_ bool; if _v.Cite, _ok_ = _buf["cite"].(string); !_ok_ { err = errors.New("cite error"); return } }
|
||||
{
|
||||
var _arr_ []interface{}
|
||||
var _ok_ bool
|
||||
if _arr_, _ok_ = _buf["effectstay"].([]interface{}); !_ok_ { err = errors.New("effectstay error"); return }
|
||||
|
||||
_v.Effectstay = 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.Effectstay = append(_v.Effectstay, _list_v_)
|
||||
}
|
||||
}
|
||||
|
||||
{ var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["hpspace"].(map[string]interface{}); !_ok_ { err = errors.New("hpspace error"); return }
|
||||
var _x_, _y_, _z_ float32;
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["y"].(float64); !_ok_ { err = errors.New("y error"); return }; _y_ = float32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["z"].(float64); !_ok_ { err = errors.New("z error"); return }; _z_ = float32(_tempNum_) }
|
||||
_v.Hpspace = math.NewVector3(_x_, _y_, _z_)
|
||||
}
|
||||
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill1"].(float64); !_ok_ { err = errors.New("skill1 error"); return }; _v.Skill1 = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill2"].(float64); !_ok_ { err = errors.New("skill2 error"); return }; _v.Skill2 = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill3"].(float64); !_ok_ { err = errors.New("skill3 error"); return }; _v.Skill3 = int32(_tempNum_) }
|
||||
return
|
||||
}
|
@ -21,7 +21,7 @@ func NewGame_heroStargrow(_buf []map[string]interface{}) (*Game_heroStargrow, er
|
||||
return nil, err2
|
||||
} else {
|
||||
_dataList = append(_dataList, _v)
|
||||
dataMap[_v.Color] = _v
|
||||
dataMap[_v.Star] = _v
|
||||
}
|
||||
}
|
||||
return &Game_heroStargrow{_dataList:_dataList, _dataMap:dataMap}, nil
|
||||
|
@ -11,7 +11,8 @@ package cfg
|
||||
import "errors"
|
||||
|
||||
type Game_heroStargrowData struct {
|
||||
Color int32
|
||||
Star int32
|
||||
Level int32
|
||||
StarupHp float32
|
||||
StarupAtk float32
|
||||
StarupDef float32
|
||||
@ -24,7 +25,8 @@ func (Game_heroStargrowData) GetTypeId() int {
|
||||
|
||||
func NewGame_heroStargrowData(_buf map[string]interface{}) (_v *Game_heroStargrowData, err error) {
|
||||
_v = &Game_heroStargrowData{}
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = 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["level"].(float64); !_ok_ { err = errors.New("level error"); return }; _v.Level = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_hp"].(float64); !_ok_ { err = errors.New("starup_hp error"); return }; _v.StarupHp = float32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_atk"].(float64); !_ok_ { err = errors.New("starup_atk error"); return }; _v.StarupAtk = float32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_def"].(float64); !_ok_ { err = errors.New("starup_def error"); return }; _v.StarupDef = float32(_tempNum_) }
|
||||
|
@ -21,6 +21,7 @@ type Game_heroStarupData struct {
|
||||
Needrace []int32
|
||||
Needracestar int32
|
||||
Needracenum int32
|
||||
Gold int32
|
||||
}
|
||||
|
||||
func (Game_heroStarupData) GetTypeId() int {
|
||||
@ -52,5 +53,6 @@ func NewGame_heroStarupData(_buf map[string]interface{}) (_v *Game_heroStarupDat
|
||||
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needracestar"].(float64); !_ok_ { err = errors.New("needracestar error"); return }; _v.Needracestar = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needracenum"].(float64); !_ok_ { err = errors.New("needracenum error"); return }; _v.Needracenum = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["gold"].(float64); !_ok_ { err = errors.New("gold error"); return }; _v.Gold = int32(_tempNum_) }
|
||||
return
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ func NewGame_newHero(_buf []map[string]interface{}) (*Game_newHero, error) {
|
||||
return nil, err2
|
||||
} else {
|
||||
_dataList = append(_dataList, _v)
|
||||
dataMap[_v.Id] = _v
|
||||
dataMap[_v.Hid] = _v
|
||||
}
|
||||
}
|
||||
return &Game_newHero{_dataList:_dataList, _dataMap:dataMap}, nil
|
||||
|
@ -12,7 +12,7 @@ import "errors"
|
||||
import "bright/math"
|
||||
|
||||
type Game_newHeroData struct {
|
||||
Id int32
|
||||
Hid int32
|
||||
Name string
|
||||
Star int32
|
||||
Color int32
|
||||
@ -40,7 +40,7 @@ func (Game_newHeroData) GetTypeId() int {
|
||||
|
||||
func NewGame_newHeroData(_buf map[string]interface{}) (_v *Game_newHeroData, err error) {
|
||||
_v = &Game_newHeroData{}
|
||||
{ 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["hid"].(float64); !_ok_ { err = errors.New("hid error"); return }; _v.Hid = int32(_tempNum_) }
|
||||
{ var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } }
|
||||
{ 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["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = int32(_tempNum_) }
|
||||
|
@ -13,7 +13,10 @@ import "errors"
|
||||
type Game_skillAfteratkData struct {
|
||||
Id int32
|
||||
Desc string
|
||||
Target string
|
||||
From int32
|
||||
Limit int32
|
||||
Where []string
|
||||
Order []string
|
||||
EmitPR int32
|
||||
Type string
|
||||
Argu []string
|
||||
@ -32,7 +35,36 @@ func NewGame_skillAfteratkData(_buf map[string]interface{}) (_v *Game_skillAfter
|
||||
_v = &Game_skillAfteratkData{}
|
||||
{ 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.Desc, _ok_ = _buf["Desc"].(string); !_ok_ { err = errors.New("Desc error"); return } }
|
||||
{ var _ok_ bool; if _v.Target, _ok_ = _buf["Target"].(string); !_ok_ { err = errors.New("Target error"); return } }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["From"].(float64); !_ok_ { err = errors.New("From error"); return }; _v.From = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Limit"].(float64); !_ok_ { err = errors.New("Limit error"); return }; _v.Limit = int32(_tempNum_) }
|
||||
{
|
||||
var _arr_ []interface{}
|
||||
var _ok_ bool
|
||||
if _arr_, _ok_ = _buf["Where"].([]interface{}); !_ok_ { err = errors.New("Where error"); return }
|
||||
|
||||
_v.Where = 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.Where = append(_v.Where, _list_v_)
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
var _arr_ []interface{}
|
||||
var _ok_ bool
|
||||
if _arr_, _ok_ = _buf["Order"].([]interface{}); !_ok_ { err = errors.New("Order error"); return }
|
||||
|
||||
_v.Order = 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.Order = append(_v.Order, _list_v_)
|
||||
}
|
||||
}
|
||||
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["EmitPR"].(float64); !_ok_ { err = errors.New("EmitPR error"); return }; _v.EmitPR = int32(_tempNum_) }
|
||||
{ var _ok_ bool; if _v.Type, _ok_ = _buf["Type"].(string); !_ok_ { err = errors.New("Type error"); return } }
|
||||
{
|
||||
|
1
utils/math_test.go
Normal file
1
utils/math_test.go
Normal file
@ -0,0 +1 @@
|
||||
package utils
|
Loading…
Reference in New Issue
Block a user