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:
meixiongfeng 2022-06-27 19:19:44 +08:00
commit 08de4af442
77 changed files with 11071 additions and 2971 deletions

View File

@ -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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
[]

View 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
View 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
}
]

View File

@ -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

View File

@ -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,

View File

@ -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
}
]

View File

@ -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": ""
}
]

View File

@ -1 +0,0 @@
[]

View File

@ -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
],

View File

@ -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": ""
}
]

View File

@ -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": [],

View File

@ -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
]
}
]

View File

@ -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
}
]
[]

View File

@ -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"
]
}
]
[]

View File

@ -428,7 +428,7 @@
"blur": 0,
"package": "zhandou/zhandou",
"packagename": "zhandou",
"comname": "battlereadywindow",
"comname": "battlereadywindow2",
"des": "战斗布阵界面"
}
]

71
comm/const.go Normal file
View 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 //防御
)

View File

@ -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

View File

@ -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
View File

@ -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
View File

@ -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=

View File

@ -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)

View File

@ -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)
}
)

View File

@ -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

View File

@ -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 {

View File

@ -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
}

View File

@ -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

View File

@ -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
}

View File

@ -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
}

View File

@ -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
View 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
View 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
View 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)
}

View File

@ -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)),
}
}

View File

@ -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...)

View File

@ -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
}

View File

@ -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

View File

@ -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)}},

View File

@ -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
}

View File

@ -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)

View File

@ -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)

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
View 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
View File

@ -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

View File

@ -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

View File

@ -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
View 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
}

View File

@ -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
}

View File

@ -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; //

View File

@ -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; //
}

View File

@ -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 {

View File

@ -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 {
}

View File

@ -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"`)
}

View File

@ -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 (

View File

@ -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
}
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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]
}

View File

@ -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
}

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type 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]
}

View 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
}

View File

@ -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

View File

@ -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_) }

View File

@ -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
}

View File

@ -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

View File

@ -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_) }

View File

@ -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
View File

@ -0,0 +1 @@
package utils