皮肤2期

This commit is contained in:
sk 2024-07-24 15:57:52 +08:00
parent ad116c9cd4
commit 6a3dae36e1
29 changed files with 4447 additions and 2206 deletions

View File

@ -295,6 +295,8 @@ const (
GainWayDiamondLottery = 99 //钻石抽奖 GainWayDiamondLottery = 99 //钻石抽奖
GainWaySkinUnLock = 100 // 皮肤解锁消耗 GainWaySkinUnLock = 100 // 皮肤解锁消耗
GainWaySkinUpGrade = 101 // 皮肤升级消耗 GainWaySkinUpGrade = 101 // 皮肤升级消耗
GainWayItemFen = 102 // 道具分解消耗
GainWayItemFenGain = 103 // 道具分解获得
) )
// 后台选择 金币变化类型 的充值 类型id号起始 // 后台选择 金币变化类型 的充值 类型id号起始
@ -633,6 +635,7 @@ const (
ItemTypeExpireTime = 15 // 时效类道具 ItemTypeExpireTime = 15 // 时效类道具
ItemTypeObjective = 16 // 目标类道具 ItemTypeObjective = 16 // 目标类道具
ItemTypeChange = 17 // 兑换话费 ItemTypeChange = 17 // 兑换话费
ItemTypeSkinChip = 22 // 皮肤碎片
) )
func GetKeyNoviceGameId(gameId int) string { func GetKeyNoviceGameId(gameId int) string {

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,3 +1,11 @@
-á§juese icon_300001" 活力芒果*mg_01 6juese" icon_300001*
7â§juese icon_300002" 财神é€<C3A9>ç¦<C3A7>*mg_060:à§ 瘣餃<EFBFBD>-暺<>2mg_01J0R0Z0
ojuese" icon_300002* <E99F90><EFBCB9><EFBFBD><EFBFBD>2mg_068BJ 蝳𤩺<E89DB3>銝𨀣䔉RSkillIcon-30002Z<15><EFBFBD>韏𤤿妖<F0A4A4BF><E5A696><EFBFBD><EFBFBD><EFBFBD>
|juese" icon_300003*
瘣餃<EFBFBD>-蝎<>2mg_028BJ 瘣餃<E798A3>皛⊥說RSkillIcon-30003Z$VIP韏𥟇<E99F8F><F0A59F87><EFBFBD>韐寞𥁒<E5AF9E>齿活<E9BDBF><EFBFBD><E594B3><EFBFBD>
vjuese" icon_300004*
瘣餃<EFBFBD>-<2D><>2mg_038BJ <0C><EFBFBD>皛⊥說RSkillIcon-30004Z瘥𤩺𠯫蝷澆<E89DB7><E6BE86><EFBFBD>憟硋<E6869F><E7A18B>𣂼<EFBFBD>
xjuese" icon_300005* <0C><><EFBFBD>撠誩<E692A0>2mg_048BJ <0C><EFBFBD><E7A983><EFBFBD>RSkillIcon-30005Z瘥𤩺𠯫隞餃𦛚<E9A483><EFBFBD>憟硋<E6869F><E7A18B><EFBFBD>
?juese" icon_300006* 瞏𨀣偌<F0A880A3><E5818C>2mg_058BJ0R0Z0
{juese" icon_300007* <0C>脫答<E884AB><EFBFBD>2mg_078BJ 憟質<E6869F><E8B3AA><EFBFBD>RSkillIcon-30007Z!瘥𤩺活<F0A4A9BA>餌𨺗<E9A48C><EFBFBD>撟貉<E6929F><E8B289><EFBFBD><E6BDAD><EFBFBD>

View File

@ -2,13 +2,18 @@
"Arr": [ "Arr": [
{ {
"Id": 300001, "Id": 300001,
"SkinClass": 3,
"Model": "juese", "Model": "juese",
"SkinPic": "icon_300001", "SkinPic": "icon_300001",
"SkinName": "活力芒果", "SkinName": "活力-黄",
"SkinType": "mg_01" "SkinType": "mg_01",
"SkinSkillName": "0",
"SkinSkillIcon": "0",
"SkinSkillDes": "0"
}, },
{ {
"Id": 300002, "Id": 300002,
"SkinClass": 4,
"Model": "juese", "Model": "juese",
"SkinPic": "icon_300002", "SkinPic": "icon_300002",
"SkinName": "财神送福", "SkinName": "财神送福",
@ -16,7 +21,85 @@
"UnlockType": 1, "UnlockType": 1,
"UnlockItem": { "UnlockItem": {
"300000": 1 "300000": 1
} },
"SkinSkillName": "福气东来",
"SkinSkillIcon": "SkillIcon-30002",
"SkinSkillDes": "排位赛积分提升"
},
{
"Id": 300003,
"SkinClass": 3,
"Model": "juese",
"SkinPic": "icon_300003",
"SkinName": "活力-粉",
"SkinType": "mg_02",
"UnlockType": 2,
"UnlockItem": {
"300003": 20
},
"SkinSkillName": "活力满满",
"SkinSkillIcon": "SkillIcon-30003",
"SkinSkillDes": "VIP赛每日免费报名次数提升"
},
{
"Id": 300004,
"SkinClass": 3,
"Model": "juese",
"SkinPic": "icon_300004",
"SkinName": "活力-青",
"SkinType": "mg_03",
"UnlockType": 2,
"UnlockItem": {
"300004": 20
},
"SkinSkillName": "金币满满",
"SkinSkillIcon": "SkillIcon-30004",
"SkinSkillDes": "每日礼包金币奖励提升"
},
{
"Id": 300005,
"SkinClass": 3,
"Model": "juese",
"SkinPic": "icon_300005",
"SkinName": "摇滚小子",
"SkinType": "mg_04",
"UnlockType": 2,
"UnlockItem": {
"300005": 20
},
"SkinSkillName": "金币加成",
"SkinSkillIcon": "SkillIcon-30005",
"SkinSkillDes": "每日任务金币奖励加成"
},
{
"Id": 300006,
"SkinClass": 3,
"Model": "juese",
"SkinPic": "icon_300006",
"SkinName": "潜水员",
"SkinType": "mg_05",
"UnlockType": 2,
"UnlockItem": {
"300006": 20
},
"SkinSkillName": "0",
"SkinSkillIcon": "0",
"SkinSkillDes": "0"
},
{
"Id": 300007,
"SkinClass": 4,
"Model": "juese",
"SkinPic": "icon_300007",
"SkinName": "冲浪健将",
"SkinType": "mg_07",
"UnlockType": 2,
"UnlockItem": {
"300007": 20
},
"SkinSkillName": "好运加成",
"SkinSkillIcon": "SkillIcon-30007",
"SkinSkillDes": "每次钻石抽奖幸运值提升"
} }
] ]
} }

View File

@ -1,19 +1,84 @@
б§ á§B0
б§"б§ á§"á§B0
б§"б§ á§"á§B0
б§"б§ á§"á§B0
б§"б§ á§"á§B0
б§"б§ á§"á§B0
в§ +â§(²ê08BæŽä½<C3A4>èµç§¯åˆ†æ<E280A0><C3A6>å<EFBFBD>‡{0}%
в§"в§ 3â§"â§(²ê08BæŽä½<C3A4>èµç§¯åˆ†æ<E280A0><C3A6>å<EFBFBD>‡{0}%
 в§"в§ 3 â§"â§(²ê08BæŽä½<C3A4>èµç§¯åˆ†æ<E280A0><C3A6>å<EFBFBD>‡{0}%
 3
в§"в§ â§"â§(²ê08BæŽä½<C3A4>èµç§¯åˆ†æ<E280A0><C3A6>å<EFBFBD>‡{0}%
 в§"в§ 3 â§"â§(²ê08BæŽä½<C3A4>èµç§¯åˆ†æ<E280A0><C3A6>å<EFBFBD>‡{0}%
 в§"в§ 3 â§"â§(²ê08BæŽä½<C3A4>èµç§¯åˆ†æ<E280A0><C3A6>å<EFBFBD>‡{0}%
 в§"в§ 3 â§"â§(²ê08BæŽä½<C3A4>èµç§¯åˆ†æ<E280A0><C3A6>å<EFBFBD>‡{0}%
в§"в§ 3â§"â§(²ê08BæŽä½<C3A4>èµç§¯åˆ†æ<E280A0><C3A6>å<EFBFBD>‡{0}%
в§ "в§ 3â§ "â§(²ê0 8 BæŽä½<C3A4>èµç§¯åˆ†æ<E280A0><C3A6>å<EFBFBD>‡{0}%
в§ 3â§
"в§ "â§(²ê0
8
BæŽä½<C3A4>èµç§¯åˆ†æ<E280A0><C3A6>å<EFBFBD>‡{0}%
9ã§(³ê08B'VIPèµæ¯<C3A6>æ—¥å…<C3A5>费报å<C2A5><C3A5>次数æ<C2B0><C3A6>å<EFBFBD>‡{0}
Aã§"ã§(³ê08B'VIPèµæ¯<C3A6>æ—¥å…<C3A5>费报å<C2A5><C3A5>次数æ<C2B0><C3A6>å<EFBFBD>‡{0}
Aã§"ã§(³ê08B'VIPèµæ¯<C3A6>æ—¥å…<C3A5>费报å<C2A5><C3A5>次数æ<C2B0><C3A6>å<EFBFBD>‡{0}
Aã§"ã§(³ê08B'VIPèµæ¯<C3A6>æ—¥å…<C3A5>费报å<C2A5><C3A5>次数æ<C2B0><C3A6>å<EFBFBD>‡{0}
Aã§"ã§(³ê08B'VIPèµæ¯<C3A6>æ—¥å…<C3A5>费报å<C2A5><C3A5>次数æ<C2B0><C3A6>å<EFBFBD>‡{0}
Aã§"ã§(³ê08B'VIPèµæ¯<C3A6>æ—¥å…<C3A5>费报å<C2A5><C3A5>次数æ<C2B0><C3A6>å<EFBFBD>‡{0}
Aã§"ã§(³ê08B'VIPèµæ¯<C3A6>æ—¥å…<C3A5>费报å<C2A5><C3A5>次数æ<C2B0><C3A6>å<EFBFBD>‡{0}
Aã§"ã§(³ê08B'VIPèµæ¯<C3A6>æ—¥å…<C3A5>费报å<C2A5><C3A5>次数æ<C2B0><C3A6>å<EFBFBD>‡{0}
Aã§ "ã§(³ê0 8 B'VIPèµæ¯<C3A6>æ—¥å…<C3A5>费报å<C2A5><C3A5>次数æ<C2B0><C3A6>å<EFBFBD>‡{0}
Aã§
"ã§(³ê0
8
B'VIPèµæ¯<C3A6>æ—¥å…<C3A5>费报å<C2A5><C3A5>次数æ<C2B0><C3A6>å<EFBFBD>‡{0}
4ä§(´ê08B"æ¯<C3A6>日礼包é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<ä§"ä§(´ê08B"æ¯<C3A6>日礼包é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<ä§"ä§(´ê08B"æ¯<C3A6>日礼包é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<ä§"ä§(´ê08B"æ¯<C3A6>日礼包é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<ä§"ä§(´ê08B"æ¯<C3A6>日礼包é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
< ä§"ä§(´ê08B"æ¯<C3A6>日礼包é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<!ä§"ä§(´ê08B"æ¯<C3A6>日礼包é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<"ä§"ä§(´ê08B"æ¯<C3A6>日礼包é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<#ä§ "ä§(´ê0 8 B"æ¯<C3A6>日礼包é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<$ä§
"ä§(´ê0
8
B"æ¯<C3A6>日礼包é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
4%å§(µê08B"æ¯<C3A6>日任务é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<&å§"å§(µê08B"æ¯<C3A6>日任务é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<'å§"å§(µê08B"æ¯<C3A6>日任务é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<(å§"å§(µê08B"æ¯<C3A6>日任务é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<)å§"å§(µê08B"æ¯<C3A6>日任务é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<*å§"å§(µê08B"æ¯<C3A6>日任务é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<+å§"å§(µê08B"æ¯<C3A6>日任务é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<,å§"å§(µê08B"æ¯<C3A6>日任务é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<-å§ "å§(µê0 8 B"æ¯<C3A6>日任务é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
<.å§
"å§(µê0
8
B"æ¯<C3A6>日任务é‡å¸<C3A5>å¥åбæ<C2B1><C3A6>å<EFBFBD>‡{0}%
/æ§B0
0æ§"æ§B0
1æ§"æ§B0
2æ§"æ§B0
3æ§"æ§B0
4æ§"æ§B0
5æ§"æ§B0
6æ§"æ§B0
7æ§ "æ§B0
8æ§
"æ§B0
79ç§(·ê08B%æ¯<C3A6>次é»çŸ³æŠ½å¥å¹¸è¿<C3A8>值æ<C2BC><C3A6>å<EFBFBD>‡{0}%
?:ç§"ç§(·ê08B%æ¯<C3A6>次é»çŸ³æŠ½å¥å¹¸è¿<C3A8>值æ<C2BC><C3A6>å<EFBFBD>‡{0}%
?;ç§"ç§(·ê08B%æ¯<C3A6>次é»çŸ³æŠ½å¥å¹¸è¿<C3A8>值æ<C2BC><C3A6>å<EFBFBD>‡{0}%
?<ç§"ç§(·ê08B%æ¯<C3A6>次é»çŸ³æŠ½å¥å¹¸è¿<C3A8>值æ<C2BC><C3A6>å<EFBFBD>‡{0}%
?=ç§"ç§(·ê08B%æ¯<C3A6>次é»çŸ³æŠ½å¥å¹¸è¿<C3A8>值æ<C2BC><C3A6>å<EFBFBD>‡{0}%
?>ç§"ç§(·ê08B%æ¯<C3A6>次é»çŸ³æŠ½å¥å¹¸è¿<C3A8>值æ<C2BC><C3A6>å<EFBFBD>‡{0}%
??ç§"ç§(·ê08B%æ¯<C3A6>次é»çŸ³æŠ½å¥å¹¸è¿<C3A8>值æ<C2BC><C3A6>å<EFBFBD>‡{0}%
?@ç§"ç§(·ê08B%æ¯<C3A6>次é»çŸ³æŠ½å¥å¹¸è¿<C3A8>值æ<C2BC><C3A6>å<EFBFBD>‡{0}%
?Aç§ "ç§(·ê0 8 B%æ¯<C3A6>次é»çŸ³æŠ½å¥å¹¸è¿<C3A8>值æ<C2BC><C3A6>å<EFBFBD>‡{0}%
?Bç§
"ç§(·ê0
8
B%æ¯<C3A6>次é»çŸ³æŠ½å¥å¹¸è¿<C3A8>值æ<C2BC><C3A6>å<EFBFBD>‡{0}%

View File

@ -3,7 +3,8 @@
{ {
"Id": 1, "Id": 1,
"SkinId": 300001, "SkinId": 300001,
"Level": 1 "Level": 1,
"SkinSkillDes": "0"
}, },
{ {
"Id": 2, "Id": 2,
@ -11,7 +12,8 @@
"Level": 2, "Level": 2,
"UpItem": { "UpItem": {
"300001": 20 "300001": 20
} },
"SkinSkillDes": "0"
}, },
{ {
"Id": 3, "Id": 3,
@ -19,7 +21,8 @@
"Level": 3, "Level": 3,
"UpItem": { "UpItem": {
"300001": 21 "300001": 21
} },
"SkinSkillDes": "0"
}, },
{ {
"Id": 4, "Id": 4,
@ -27,7 +30,8 @@
"Level": 4, "Level": 4,
"UpItem": { "UpItem": {
"300001": 22 "300001": 22
} },
"SkinSkillDes": "0"
}, },
{ {
"Id": 5, "Id": 5,
@ -35,7 +39,8 @@
"Level": 5, "Level": 5,
"UpItem": { "UpItem": {
"300001": 23 "300001": 23
} },
"SkinSkillDes": "0"
}, },
{ {
"Id": 6, "Id": 6,
@ -43,12 +48,17 @@
"Level": 6, "Level": 6,
"UpItem": { "UpItem": {
"300001": 24 "300001": 24
} },
"SkinSkillDes": "0"
}, },
{ {
"Id": 7, "Id": 7,
"SkinId": 300002, "SkinId": 300002,
"Level": 1 "Level": 1,
"SkinSkillId": 30002,
"SkinSkillLevel": 1,
"SkinSkillValue": 1,
"SkinSkillDes": "排位赛积分提升{0}%"
}, },
{ {
"Id": 8, "Id": 8,
@ -56,7 +66,11 @@
"Level": 2, "Level": 2,
"UpItem": { "UpItem": {
"300002": 20 "300002": 20
} },
"SkinSkillId": 30002,
"SkinSkillLevel": 2,
"SkinSkillValue": 2,
"SkinSkillDes": "排位赛积分提升{0}%"
}, },
{ {
"Id": 9, "Id": 9,
@ -64,7 +78,11 @@
"Level": 3, "Level": 3,
"UpItem": { "UpItem": {
"300002": 21 "300002": 21
} },
"SkinSkillId": 30002,
"SkinSkillLevel": 3,
"SkinSkillValue": 3,
"SkinSkillDes": "排位赛积分提升{0}%"
}, },
{ {
"Id": 10, "Id": 10,
@ -72,7 +90,11 @@
"Level": 4, "Level": 4,
"UpItem": { "UpItem": {
"300002": 22 "300002": 22
} },
"SkinSkillId": 30002,
"SkinSkillLevel": 4,
"SkinSkillValue": 4,
"SkinSkillDes": "排位赛积分提升{0}%"
}, },
{ {
"Id": 11, "Id": 11,
@ -80,7 +102,11 @@
"Level": 5, "Level": 5,
"UpItem": { "UpItem": {
"300002": 23 "300002": 23
} },
"SkinSkillId": 30002,
"SkinSkillLevel": 5,
"SkinSkillValue": 5,
"SkinSkillDes": "排位赛积分提升{0}%"
}, },
{ {
"Id": 12, "Id": 12,
@ -88,7 +114,11 @@
"Level": 6, "Level": 6,
"UpItem": { "UpItem": {
"300002": 24 "300002": 24
} },
"SkinSkillId": 30002,
"SkinSkillLevel": 6,
"SkinSkillValue": 6,
"SkinSkillDes": "排位赛积分提升{0}%"
}, },
{ {
"Id": 13, "Id": 13,
@ -96,7 +126,11 @@
"Level": 7, "Level": 7,
"UpItem": { "UpItem": {
"300002": 25 "300002": 25
} },
"SkinSkillId": 30002,
"SkinSkillLevel": 7,
"SkinSkillValue": 7,
"SkinSkillDes": "排位赛积分提升{0}%"
}, },
{ {
"Id": 14, "Id": 14,
@ -104,7 +138,11 @@
"Level": 8, "Level": 8,
"UpItem": { "UpItem": {
"300002": 26 "300002": 26
} },
"SkinSkillId": 30002,
"SkinSkillLevel": 8,
"SkinSkillValue": 8,
"SkinSkillDes": "排位赛积分提升{0}%"
}, },
{ {
"Id": 15, "Id": 15,
@ -112,7 +150,11 @@
"Level": 9, "Level": 9,
"UpItem": { "UpItem": {
"300002": 27 "300002": 27
} },
"SkinSkillId": 30002,
"SkinSkillLevel": 9,
"SkinSkillValue": 9,
"SkinSkillDes": "排位赛积分提升{0}%"
}, },
{ {
"Id": 16, "Id": 16,
@ -120,7 +162,566 @@
"Level": 10, "Level": 10,
"UpItem": { "UpItem": {
"300002": 28 "300002": 28
} },
"SkinSkillId": 30002,
"SkinSkillLevel": 10,
"SkinSkillValue": 10,
"SkinSkillDes": "排位赛积分提升{0}%"
},
{
"Id": 17,
"SkinId": 300003,
"Level": 1,
"SkinSkillId": 30003,
"SkinSkillLevel": 1,
"SkinSkillValue": 1,
"SkinSkillDes": "VIP赛每日免费报名次数提升{0}"
},
{
"Id": 18,
"SkinId": 300003,
"Level": 2,
"UpItem": {
"300003": 20
},
"SkinSkillId": 30003,
"SkinSkillLevel": 2,
"SkinSkillValue": 2,
"SkinSkillDes": "VIP赛每日免费报名次数提升{0}"
},
{
"Id": 19,
"SkinId": 300003,
"Level": 3,
"UpItem": {
"300003": 21
},
"SkinSkillId": 30003,
"SkinSkillLevel": 3,
"SkinSkillValue": 3,
"SkinSkillDes": "VIP赛每日免费报名次数提升{0}"
},
{
"Id": 20,
"SkinId": 300003,
"Level": 4,
"UpItem": {
"300003": 22
},
"SkinSkillId": 30003,
"SkinSkillLevel": 4,
"SkinSkillValue": 4,
"SkinSkillDes": "VIP赛每日免费报名次数提升{0}"
},
{
"Id": 21,
"SkinId": 300003,
"Level": 5,
"UpItem": {
"300003": 23
},
"SkinSkillId": 30003,
"SkinSkillLevel": 5,
"SkinSkillValue": 5,
"SkinSkillDes": "VIP赛每日免费报名次数提升{0}"
},
{
"Id": 22,
"SkinId": 300003,
"Level": 6,
"UpItem": {
"300003": 24
},
"SkinSkillId": 30003,
"SkinSkillLevel": 6,
"SkinSkillValue": 6,
"SkinSkillDes": "VIP赛每日免费报名次数提升{0}"
},
{
"Id": 23,
"SkinId": 300003,
"Level": 7,
"UpItem": {
"300003": 25
},
"SkinSkillId": 30003,
"SkinSkillLevel": 7,
"SkinSkillValue": 7,
"SkinSkillDes": "VIP赛每日免费报名次数提升{0}"
},
{
"Id": 24,
"SkinId": 300003,
"Level": 8,
"UpItem": {
"300003": 26
},
"SkinSkillId": 30003,
"SkinSkillLevel": 8,
"SkinSkillValue": 8,
"SkinSkillDes": "VIP赛每日免费报名次数提升{0}"
},
{
"Id": 25,
"SkinId": 300003,
"Level": 9,
"UpItem": {
"300003": 27
},
"SkinSkillId": 30003,
"SkinSkillLevel": 9,
"SkinSkillValue": 9,
"SkinSkillDes": "VIP赛每日免费报名次数提升{0}"
},
{
"Id": 26,
"SkinId": 300003,
"Level": 10,
"UpItem": {
"300003": 28
},
"SkinSkillId": 30003,
"SkinSkillLevel": 10,
"SkinSkillValue": 10,
"SkinSkillDes": "VIP赛每日免费报名次数提升{0}"
},
{
"Id": 27,
"SkinId": 300004,
"Level": 1,
"SkinSkillId": 30004,
"SkinSkillLevel": 1,
"SkinSkillValue": 1,
"SkinSkillDes": "每日礼包金币奖励提升{0}%"
},
{
"Id": 28,
"SkinId": 300004,
"Level": 2,
"UpItem": {
"300004": 20
},
"SkinSkillId": 30004,
"SkinSkillLevel": 2,
"SkinSkillValue": 2,
"SkinSkillDes": "每日礼包金币奖励提升{0}%"
},
{
"Id": 29,
"SkinId": 300004,
"Level": 3,
"UpItem": {
"300004": 21
},
"SkinSkillId": 30004,
"SkinSkillLevel": 3,
"SkinSkillValue": 3,
"SkinSkillDes": "每日礼包金币奖励提升{0}%"
},
{
"Id": 30,
"SkinId": 300004,
"Level": 4,
"UpItem": {
"300004": 22
},
"SkinSkillId": 30004,
"SkinSkillLevel": 4,
"SkinSkillValue": 4,
"SkinSkillDes": "每日礼包金币奖励提升{0}%"
},
{
"Id": 31,
"SkinId": 300004,
"Level": 5,
"UpItem": {
"300004": 23
},
"SkinSkillId": 30004,
"SkinSkillLevel": 5,
"SkinSkillValue": 5,
"SkinSkillDes": "每日礼包金币奖励提升{0}%"
},
{
"Id": 32,
"SkinId": 300004,
"Level": 6,
"UpItem": {
"300004": 24
},
"SkinSkillId": 30004,
"SkinSkillLevel": 6,
"SkinSkillValue": 6,
"SkinSkillDes": "每日礼包金币奖励提升{0}%"
},
{
"Id": 33,
"SkinId": 300004,
"Level": 7,
"UpItem": {
"300004": 25
},
"SkinSkillId": 30004,
"SkinSkillLevel": 7,
"SkinSkillValue": 7,
"SkinSkillDes": "每日礼包金币奖励提升{0}%"
},
{
"Id": 34,
"SkinId": 300004,
"Level": 8,
"UpItem": {
"300004": 26
},
"SkinSkillId": 30004,
"SkinSkillLevel": 8,
"SkinSkillValue": 8,
"SkinSkillDes": "每日礼包金币奖励提升{0}%"
},
{
"Id": 35,
"SkinId": 300004,
"Level": 9,
"UpItem": {
"300004": 27
},
"SkinSkillId": 30004,
"SkinSkillLevel": 9,
"SkinSkillValue": 9,
"SkinSkillDes": "每日礼包金币奖励提升{0}%"
},
{
"Id": 36,
"SkinId": 300004,
"Level": 10,
"UpItem": {
"300004": 28
},
"SkinSkillId": 30004,
"SkinSkillLevel": 10,
"SkinSkillValue": 10,
"SkinSkillDes": "每日礼包金币奖励提升{0}%"
},
{
"Id": 37,
"SkinId": 300005,
"Level": 1,
"SkinSkillId": 30005,
"SkinSkillLevel": 1,
"SkinSkillValue": 1,
"SkinSkillDes": "每日任务金币奖励提升{0}%"
},
{
"Id": 38,
"SkinId": 300005,
"Level": 2,
"UpItem": {
"300005": 20
},
"SkinSkillId": 30005,
"SkinSkillLevel": 2,
"SkinSkillValue": 2,
"SkinSkillDes": "每日任务金币奖励提升{0}%"
},
{
"Id": 39,
"SkinId": 300005,
"Level": 3,
"UpItem": {
"300005": 21
},
"SkinSkillId": 30005,
"SkinSkillLevel": 3,
"SkinSkillValue": 3,
"SkinSkillDes": "每日任务金币奖励提升{0}%"
},
{
"Id": 40,
"SkinId": 300005,
"Level": 4,
"UpItem": {
"300005": 22
},
"SkinSkillId": 30005,
"SkinSkillLevel": 4,
"SkinSkillValue": 4,
"SkinSkillDes": "每日任务金币奖励提升{0}%"
},
{
"Id": 41,
"SkinId": 300005,
"Level": 5,
"UpItem": {
"300005": 23
},
"SkinSkillId": 30005,
"SkinSkillLevel": 5,
"SkinSkillValue": 5,
"SkinSkillDes": "每日任务金币奖励提升{0}%"
},
{
"Id": 42,
"SkinId": 300005,
"Level": 6,
"UpItem": {
"300005": 24
},
"SkinSkillId": 30005,
"SkinSkillLevel": 6,
"SkinSkillValue": 6,
"SkinSkillDes": "每日任务金币奖励提升{0}%"
},
{
"Id": 43,
"SkinId": 300005,
"Level": 7,
"UpItem": {
"300005": 25
},
"SkinSkillId": 30005,
"SkinSkillLevel": 7,
"SkinSkillValue": 7,
"SkinSkillDes": "每日任务金币奖励提升{0}%"
},
{
"Id": 44,
"SkinId": 300005,
"Level": 8,
"UpItem": {
"300005": 26
},
"SkinSkillId": 30005,
"SkinSkillLevel": 8,
"SkinSkillValue": 8,
"SkinSkillDes": "每日任务金币奖励提升{0}%"
},
{
"Id": 45,
"SkinId": 300005,
"Level": 9,
"UpItem": {
"300005": 27
},
"SkinSkillId": 30005,
"SkinSkillLevel": 9,
"SkinSkillValue": 9,
"SkinSkillDes": "每日任务金币奖励提升{0}%"
},
{
"Id": 46,
"SkinId": 300005,
"Level": 10,
"UpItem": {
"300005": 28
},
"SkinSkillId": 30005,
"SkinSkillLevel": 10,
"SkinSkillValue": 10,
"SkinSkillDes": "每日任务金币奖励提升{0}%"
},
{
"Id": 47,
"SkinId": 300006,
"Level": 1,
"SkinSkillDes": "0"
},
{
"Id": 48,
"SkinId": 300006,
"Level": 2,
"UpItem": {
"300006": 20
},
"SkinSkillDes": "0"
},
{
"Id": 49,
"SkinId": 300006,
"Level": 3,
"UpItem": {
"300006": 21
},
"SkinSkillDes": "0"
},
{
"Id": 50,
"SkinId": 300006,
"Level": 4,
"UpItem": {
"300006": 22
},
"SkinSkillDes": "0"
},
{
"Id": 51,
"SkinId": 300006,
"Level": 5,
"UpItem": {
"300006": 23
},
"SkinSkillDes": "0"
},
{
"Id": 52,
"SkinId": 300006,
"Level": 6,
"UpItem": {
"300006": 24
},
"SkinSkillDes": "0"
},
{
"Id": 53,
"SkinId": 300006,
"Level": 7,
"UpItem": {
"300006": 25
},
"SkinSkillDes": "0"
},
{
"Id": 54,
"SkinId": 300006,
"Level": 8,
"UpItem": {
"300006": 26
},
"SkinSkillDes": "0"
},
{
"Id": 55,
"SkinId": 300006,
"Level": 9,
"UpItem": {
"300006": 27
},
"SkinSkillDes": "0"
},
{
"Id": 56,
"SkinId": 300006,
"Level": 10,
"UpItem": {
"300006": 28
},
"SkinSkillDes": "0"
},
{
"Id": 57,
"SkinId": 300007,
"Level": 1,
"SkinSkillId": 30007,
"SkinSkillLevel": 1,
"SkinSkillValue": 1,
"SkinSkillDes": "每次钻石抽奖幸运值提升{0}%"
},
{
"Id": 58,
"SkinId": 300007,
"Level": 2,
"UpItem": {
"300007": 20
},
"SkinSkillId": 30007,
"SkinSkillLevel": 2,
"SkinSkillValue": 2,
"SkinSkillDes": "每次钻石抽奖幸运值提升{0}%"
},
{
"Id": 59,
"SkinId": 300007,
"Level": 3,
"UpItem": {
"300007": 21
},
"SkinSkillId": 30007,
"SkinSkillLevel": 3,
"SkinSkillValue": 3,
"SkinSkillDes": "每次钻石抽奖幸运值提升{0}%"
},
{
"Id": 60,
"SkinId": 300007,
"Level": 4,
"UpItem": {
"300007": 22
},
"SkinSkillId": 30007,
"SkinSkillLevel": 4,
"SkinSkillValue": 4,
"SkinSkillDes": "每次钻石抽奖幸运值提升{0}%"
},
{
"Id": 61,
"SkinId": 300007,
"Level": 5,
"UpItem": {
"300007": 23
},
"SkinSkillId": 30007,
"SkinSkillLevel": 5,
"SkinSkillValue": 5,
"SkinSkillDes": "每次钻石抽奖幸运值提升{0}%"
},
{
"Id": 62,
"SkinId": 300007,
"Level": 6,
"UpItem": {
"300007": 24
},
"SkinSkillId": 30007,
"SkinSkillLevel": 6,
"SkinSkillValue": 6,
"SkinSkillDes": "每次钻石抽奖幸运值提升{0}%"
},
{
"Id": 63,
"SkinId": 300007,
"Level": 7,
"UpItem": {
"300007": 25
},
"SkinSkillId": 30007,
"SkinSkillLevel": 7,
"SkinSkillValue": 7,
"SkinSkillDes": "每次钻石抽奖幸运值提升{0}%"
},
{
"Id": 64,
"SkinId": 300007,
"Level": 8,
"UpItem": {
"300007": 26
},
"SkinSkillId": 30007,
"SkinSkillLevel": 8,
"SkinSkillValue": 8,
"SkinSkillDes": "每次钻石抽奖幸运值提升{0}%"
},
{
"Id": 65,
"SkinId": 300007,
"Level": 9,
"UpItem": {
"300007": 27
},
"SkinSkillId": 30007,
"SkinSkillLevel": 9,
"SkinSkillValue": 9,
"SkinSkillDes": "每次钻石抽奖幸运值提升{0}%"
},
{
"Id": 66,
"SkinId": 300007,
"Level": 10,
"UpItem": {
"300007": 28
},
"SkinSkillId": 30007,
"SkinSkillLevel": 10,
"SkinSkillValue": 10,
"SkinSkillDes": "每次钻石抽奖幸运值提升{0}%"
} }
] ]
} }

Binary file not shown.

View File

@ -35,5 +35,5 @@ const (
ETCDKEY_ACT_Permit = "/game/act_permit" // 赛季通行证配置 ETCDKEY_ACT_Permit = "/game/act_permit" // 赛季通行证配置
ETCDKEY_DIAMOND_LOTTERY = "/game/diamond_lottery" // 钻石抽奖配置 ETCDKEY_DIAMOND_LOTTERY = "/game/diamond_lottery" // 钻石抽奖配置
ETCDKEY_Item = "/game/item" // 道具列表 ETCDKEY_Item = "/game/item" // 道具列表
ETCDKEY_SKin = "/game/skin_config" // 皮肤配置
) )

View File

@ -127,6 +127,8 @@ type AllConfig struct {
*webapi.DiamondLotteryConfig *webapi.DiamondLotteryConfig
// 道具配置 // 道具配置
*webapi.ItemConfig *webapi.ItemConfig
// 皮肤配置
*webapi.SkinConfig
} }
type GlobalConfig struct { type GlobalConfig struct {
@ -267,3 +269,72 @@ func (cm *ConfigMgr) GetPermitConfig(plt, channel string) *webapi.PermitChannelC
return nil return nil
} }
func (cm *ConfigMgr) GetSkinInfo(plt string, skinId int32) *webapi.SkinItem {
cfg := cm.GetConfig(plt).SkinConfig
if cfg == nil {
return nil
}
for _, v := range cfg.GetItems() {
if v.GetId() == skinId {
return v
}
}
return nil
}
func (cm *ConfigMgr) GetSkinLevel(plt string, skinId, level int32) *webapi.SkinLevel {
cfg := cm.GetConfig(plt).SkinConfig
if cfg == nil {
return nil
}
for _, v := range cfg.GetItems() {
if v.GetId() == skinId {
for _, vv := range v.GetLevels() {
if vv.GetLevel() == level {
return vv
}
}
break
}
}
return nil
}
func (cm *ConfigMgr) GetSkinMaxLevel(plt string, skinId int32) int32 {
cfg := cm.GetConfig(plt).SkinConfig
if cfg == nil {
return 0
}
var level int32
for _, v := range cfg.GetItems() {
if v.GetId() == skinId {
for _, vv := range v.GetLevels() {
if vv.GetLevel() > level {
level = vv.GetLevel()
}
}
break
}
}
return level
}
func (cm *ConfigMgr) GetSkinSkillMaxLevel(plt string, skinId int32) int32 {
cfg := cm.GetConfig(plt).SkinConfig
if cfg == nil {
return 0
}
var level int32
for _, v := range cfg.GetItems() {
if v.GetId() == skinId {
for _, vv := range v.GetLevels() {
if vv.GetSkillLevel() > level {
level = vv.GetSkillLevel()
}
}
break
}
}
return level
}

View File

@ -217,10 +217,20 @@ type ShopTotal struct {
AdReceiveNum int32 //已经领取的次数 AdReceiveNum int32 //已经领取的次数
} }
type ModEx struct {
Ts int64 //解锁时间戳
}
type SkillEx struct {
Ts int64 //解锁时间戳
}
type ModInfo struct { type ModInfo struct {
ModUnlock map[int32]int32 //已经解锁的id:等级 ModUnlock map[int32]int32 //已经解锁的id:等级
Mod map[int32]*ModEx //模型数据
ModId int32 //使用中的id ModId int32 //使用中的id
SkillInfo map[int32]map[int32]int32 //技能等级 ModId:技能id:技能等级 SkillInfo map[int32]map[int32]int32 //技能等级 ModId:技能id:技能等级
Skill map[int32]map[int32]*SkillEx // 技能数据
} }
// 七日签到数据 // 七日签到数据
@ -714,6 +724,73 @@ func ConvertPlayerDataToWebData(param *WebPlayerDataParam) *webapi.PlayerData {
pdfw.Long = param.Long pdfw.Long = param.Long
pdfw.VCardCost = param.VCardCost pdfw.VCardCost = param.VCardCost
pdfw.MoneyTotal = param.MoneyTotal pdfw.MoneyTotal = param.MoneyTotal
if param.Roles != nil {
pdfw.UseRoleId = param.Roles.ModId
for k, v := range param.Roles.ModUnlock {
if v <= 0 {
continue
}
ts := int64(0)
if param.Roles.Mod[k] != nil {
ts = param.Pets.Mod[k].Ts
}
pdfw.RoleUnlockList = append(pdfw.RoleUnlockList, &webapi.ModInfo{
Id: k,
Level: v,
Ts: ts,
})
}
}
if param.Skin != nil {
pdfw.UseSkinId = param.Skin.ModId
for k, v := range param.Skin.ModUnlock {
if v > 0 {
pdfw.SkinIds = append(pdfw.SkinIds, k)
ts := int64(0)
if param.Skin.Mod[k] != nil {
ts = param.Skin.Mod[k].Ts
}
pdfw.SkinUnlockList = append(pdfw.SkinUnlockList, &webapi.ModInfo{
Id: k,
Level: v,
Ts: ts,
})
}
}
}
if param.Pets != nil {
for k, v := range param.Pets.ModUnlock {
if v <= 0 {
continue
}
ts := int64(0)
if param.Pets.Mod[k] != nil {
ts = param.Pets.Mod[k].Ts
}
pdfw.PetUnlockList = append(pdfw.PetUnlockList, &webapi.ModInfo{
Id: k,
Level: v,
Ts: ts,
})
}
for k, v := range param.Pets.SkillInfo {
for skillId, skillLevel := range v {
if skillLevel <= 0 {
continue
}
ts := int64(0)
if param.Pets.Skill[k] != nil && param.Pets.Skill[k][skillId] != nil {
ts = param.Pets.Skill[k][skillId].Ts
}
pdfw.PetSkillUnlockList = append(pdfw.PetSkillUnlockList, &webapi.ModInfo{
Id: skillId,
Level: skillLevel,
Ts: ts,
})
}
}
}
return pdfw return pdfw
} }
func (this *PlayerData) IsMarkFlag(flag int) bool { func (this *PlayerData) IsMarkFlag(flag int) bool {
@ -956,32 +1033,51 @@ func (this *PlayerData) InitNewData(params string) {
} }
func (this *PlayerData) InitRolesAndPets() { func (this *PlayerData) InitRolesAndPets() {
now := time.Now()
f := func(id int32) *ModInfo {
ret := &ModInfo{
ModUnlock: make(map[int32]int32),
Mod: make(map[int32]*ModEx),
ModId: id,
SkillInfo: make(map[int32]map[int32]int32),
Skill: make(map[int32]map[int32]*SkillEx),
}
this.Roles.ModUnlock[id] = 1
this.Roles.Mod[id] = &ModEx{
Ts: now.Unix(),
}
return ret
}
f1 := func(mod *ModInfo) {
if mod.ModUnlock == nil {
mod.ModUnlock = make(map[int32]int32)
}
if mod.Mod == nil {
mod.Mod = make(map[int32]*ModEx)
}
if mod.SkillInfo == nil {
mod.SkillInfo = make(map[int32]map[int32]int32)
}
if mod.Skill == nil {
mod.Skill = make(map[int32]map[int32]*SkillEx)
}
}
if this.Roles == nil || len(this.Roles.ModUnlock) == 0 { if this.Roles == nil || len(this.Roles.ModUnlock) == 0 {
this.Roles = &ModInfo{ this.Roles = f(2000001)
ModUnlock: make(map[int32]int32),
ModId: 2000001,
SkillInfo: make(map[int32]map[int32]int32),
} }
this.Roles.ModUnlock[2000001] = 1
}
if this.Pets == nil || len(this.Pets.ModUnlock) == 0 { if this.Pets == nil || len(this.Pets.ModUnlock) == 0 {
this.Pets = &ModInfo{ this.Pets = f(1000001)
ModUnlock: make(map[int32]int32),
ModId: 1000001,
SkillInfo: make(map[int32]map[int32]int32),
} }
this.Pets.ModUnlock[1000001] = 1 if this.Skin == nil || len(this.Skin.ModUnlock) == 0 {
this.Skin = f(300001)
} }
if this.Skin == nil || len(this.Skin.ModUnlock) == 0 { f1(this.Roles)
this.Skin = &ModInfo{ f1(this.Pets)
ModUnlock: make(map[int32]int32), f1(this.Skin)
ModId: 300001,
SkillInfo: make(map[int32]map[int32]int32),
}
this.Skin.ModUnlock[300001] = 1
}
} }
//func SavePlayerRebate(pd *PlayerData, thirdName string) error { //func SavePlayerRebate(pd *PlayerData, thirdName string) error {

View File

@ -274,6 +274,7 @@ const (
ShowRedCode_Pet ShowRedCode = 3 // 宠物 ShowRedCode_Pet ShowRedCode = 3 // 宠物
ShowRedCode_Welfare ShowRedCode = 4 // 福利活动 ShowRedCode_Welfare ShowRedCode = 4 // 福利活动
ShowRedCode_RankReward ShowRedCode = 5 // 排位赛赛季奖励 ShowRedCode_RankReward ShowRedCode = 5 // 排位赛赛季奖励
ShowRedCode_Skin ShowRedCode = 6 // 皮肤
) )
// Enum value maps for ShowRedCode. // Enum value maps for ShowRedCode.
@ -285,6 +286,7 @@ var (
3: "Pet", 3: "Pet",
4: "Welfare", 4: "Welfare",
5: "RankReward", 5: "RankReward",
6: "Skin",
} }
ShowRedCode_value = map[string]int32{ ShowRedCode_value = map[string]int32{
"Mail": 0, "Mail": 0,
@ -293,6 +295,7 @@ var (
"Pet": 3, "Pet": 3,
"Welfare": 4, "Welfare": 4,
"RankReward": 5, "RankReward": 5,
"Skin": 6,
} }
) )
@ -2830,15 +2833,16 @@ var file_hallpacket_proto_rawDesc = []byte{
0x48, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x10, 0x48, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x10,
0x07, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x61, 0x6c, 0x6c, 0x43, 0x6c, 0x75, 0x62, 0x52, 0x6f, 0x6f, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x61, 0x6c, 0x6c, 0x43, 0x6c, 0x75, 0x62, 0x52, 0x6f, 0x6f,
0x6d, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x61, 0x6c, 0x6c, 0x54, 0x68, 0x69, 0x72, 0x64, 0x6d, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x61, 0x6c, 0x6c, 0x54, 0x68, 0x69, 0x72, 0x64,
0x50, 0x6c, 0x74, 0x10, 0x65, 0x2a, 0x51, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x64, 0x50, 0x6c, 0x74, 0x10, 0x65, 0x2a, 0x5b, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x64,
0x43, 0x6f, 0x64, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x61, 0x69, 0x6c, 0x10, 0x00, 0x12, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x61, 0x69, 0x6c, 0x10, 0x00, 0x12, 0x08,
0x0a, 0x04, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65,
0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x57,
0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b,
0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x05, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x6b, 0x69, 0x6e,
0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x10, 0x06, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x6c, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -339,6 +339,7 @@ enum ShowRedCode {
Pet = 3; // Pet = 3; //
Welfare = 4; // Welfare = 4; //
RankReward = 5; // RankReward = 5; //
Skin = 6; //
} }
// //

View File

@ -1388,6 +1388,14 @@ type SkinInfo struct {
Have []*Item `protobuf:"bytes,5,rep,name=Have,proto3" json:"Have,omitempty"` // 拥有道具 Have []*Item `protobuf:"bytes,5,rep,name=Have,proto3" json:"Have,omitempty"` // 拥有道具
IsUsing bool `protobuf:"varint,6,opt,name=IsUsing,proto3" json:"IsUsing,omitempty"` //是否在使用中 IsUsing bool `protobuf:"varint,6,opt,name=IsUsing,proto3" json:"IsUsing,omitempty"` //是否在使用中
IsUnlock bool `protobuf:"varint,7,opt,name=IsUnlock,proto3" json:"IsUnlock,omitempty"` //是否已经解锁 IsUnlock bool `protobuf:"varint,7,opt,name=IsUnlock,proto3" json:"IsUnlock,omitempty"` //是否已经解锁
IsUpgrade bool `protobuf:"varint,8,opt,name=IsUpgrade,proto3" json:"IsUpgrade,omitempty"` // 皮肤升级开关
SkillId int32 `protobuf:"varint,9,opt,name=SkillId,proto3" json:"SkillId,omitempty"` //技能id
SkillLevel int32 `protobuf:"varint,10,opt,name=SkillLevel,proto3" json:"SkillLevel,omitempty"` //技能等级
SkillNextLevel int32 `protobuf:"varint,11,opt,name=SkillNextLevel,proto3" json:"SkillNextLevel,omitempty"` //技能下一等级
SkillMaxLevel int32 `protobuf:"varint,12,opt,name=SkillMaxLevel,proto3" json:"SkillMaxLevel,omitempty"` //技能最大等级
SkillValue int32 `protobuf:"varint,13,opt,name=SkillValue,proto3" json:"SkillValue,omitempty"` //技能属性值
SkillNextValue int32 `protobuf:"varint,14,opt,name=SkillNextValue,proto3" json:"SkillNextValue,omitempty"` //技能下一级属性值
SkillType int32 `protobuf:"varint,15,opt,name=SkillType,proto3" json:"SkillType,omitempty"` // 技能生效类型 0获得后生效 1穿戴生效
} }
func (x *SkinInfo) Reset() { func (x *SkinInfo) Reset() {
@ -1471,6 +1479,62 @@ func (x *SkinInfo) GetIsUnlock() bool {
return false return false
} }
func (x *SkinInfo) GetIsUpgrade() bool {
if x != nil {
return x.IsUpgrade
}
return false
}
func (x *SkinInfo) GetSkillId() int32 {
if x != nil {
return x.SkillId
}
return 0
}
func (x *SkinInfo) GetSkillLevel() int32 {
if x != nil {
return x.SkillLevel
}
return 0
}
func (x *SkinInfo) GetSkillNextLevel() int32 {
if x != nil {
return x.SkillNextLevel
}
return 0
}
func (x *SkinInfo) GetSkillMaxLevel() int32 {
if x != nil {
return x.SkillMaxLevel
}
return 0
}
func (x *SkinInfo) GetSkillValue() int32 {
if x != nil {
return x.SkillValue
}
return 0
}
func (x *SkinInfo) GetSkillNextValue() int32 {
if x != nil {
return x.SkillNextValue
}
return 0
}
func (x *SkinInfo) GetSkillType() int32 {
if x != nil {
return x.SkillType
}
return 0
}
//PACKET_CS_SKIN_INFO //PACKET_CS_SKIN_INFO
type CSSkinInfo struct { type CSSkinInfo struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -2024,7 +2088,7 @@ var file_pets_proto_rawDesc = []byte{
0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x24, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x24,
0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28,
0x03, 0x52, 0x01, 0x4e, 0x22, 0xc2, 0x01, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x03, 0x52, 0x01, 0x4e, 0x22, 0xce, 0x03, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x6e, 0x66,
0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49,
0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x4c, 0x65, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x4c, 0x65,
@ -2036,85 +2100,102 @@ var file_pets_proto_rawDesc = []byte{
0x61, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x61, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x06,
0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a,
0x08, 0x49, 0x73, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52,
0x08, 0x49, 0x73, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x53, 0x08, 0x49, 0x73, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x73, 0x55,
0x6b, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x32, 0x0a, 0x0a, 0x53, 0x43, 0x53, 0x6b, 0x69, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x49, 0x73,
0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x1b, 0x0a, 0x09, 0x43, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18,
0x53, 0x53, 0x6b, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65,
0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x09, 0x53, 0x43, 0x53, 0x6b, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x65,
0x69, 0x6e, 0x55, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x76, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6c, 0x6c,
0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05,
0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12,
0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20,
0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x1f, 0x0a, 0x0d, 0x43, 0x53, 0x53, 0x6b, 0x69, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
0x6e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75,
0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x0d, 0x53, 0x43, 0x53, 0x6b, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x65,
0x69, 0x6e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c,
0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x53, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c,
0x6b, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x53, 0x6b, 0x69, 0x6e, 0x49,
0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x6e, 0x66, 0x6f, 0x22, 0x32, 0x0a, 0x0a, 0x53, 0x43, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x6e, 0x66,
0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6f, 0x12, 0x24, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x1e, 0x0a, 0x0c, 0x43, 0x32, 0x0e, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
0x53, 0x53, 0x4b, 0x69, 0x6e, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x1b, 0x0a, 0x09, 0x43, 0x53, 0x53, 0x6b, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x0c, 0x53, 0x6e, 0x55, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x43, 0x53, 0x6b, 0x69, 0x6e, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x09, 0x53, 0x43, 0x53, 0x6b, 0x69, 0x6e, 0x55, 0x73,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49,
0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x64, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,
0x65, 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75,
0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x53, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53,
0x6b, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x2a, 0xf7, 0x04, 0x6e, 0x49, 0x64, 0x22, 0x1f, 0x0a, 0x0d, 0x43, 0x53, 0x53, 0x6b, 0x69, 0x6e, 0x55, 0x70, 0x67,
0x0a, 0x0c, 0x50, 0x65, 0x74, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x15, 0x72, 0x61, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x59, 0x5f, 0x5a, 0x52, 0x02, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x0d, 0x53, 0x43, 0x53, 0x6b, 0x69, 0x6e, 0x55, 0x70,
0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20,
0x43, 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf6, 0x13, 0x12, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x53, 0x6b, 0x69, 0x6e, 0x49,
0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x74,
0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf7, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74,
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x73, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07,
0xf8, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x1e, 0x0a, 0x0c, 0x43, 0x53, 0x53, 0x4b, 0x69,
0x50, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf9, 0x13, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x6e, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x52, 0x49, 0x53, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x0c, 0x53, 0x43, 0x53, 0x6b, 0x69,
0x49, 0x4e, 0x47, 0x53, 0x54, 0x41, 0x52, 0x10, 0xfa, 0x13, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x6e, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x52, 0x49, 0x53, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f,
0x49, 0x4e, 0x47, 0x53, 0x54, 0x41, 0x52, 0x10, 0xfb, 0x13, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x52, 0x49, 0x53, 0x49, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65,
0x4e, 0x47, 0x53, 0x54, 0x41, 0x52, 0x10, 0xfc, 0x13, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20,
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x53, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x53, 0x6b, 0x69, 0x6e, 0x49,
0x45, 0x4f, 0x50, 0x10, 0xfd, 0x13, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x2a, 0xf7, 0x04, 0x0a, 0x0c, 0x50, 0x65,
0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x53, 0x45, 0x4f, 0x50, 0x74, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41,
0x10, 0xfe, 0x13, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x59, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10,
0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0xff, 0x00, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52,
0x13, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf6, 0x13, 0x12, 0x18, 0x0a, 0x13, 0x50,
0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x80, 0x14, 0x12, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x49, 0x4e,
0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x45, 0x54, 0x46, 0x4f, 0x10, 0xf7, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x4b, 0x49, 0x4c, 0x4c, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x55, 0x50, 0x10, 0x81, 0x14, 0x12, 0x43, 0x53, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf8, 0x13, 0x12, 0x17,
0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x45, 0x54, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x45, 0x54, 0x5f,
0x53, 0x4b, 0x49, 0x4c, 0x4c, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x55, 0x50, 0x10, 0x82, 0x14, 0x12, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf9, 0x13, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x4b, 0x49, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x52, 0x49, 0x53, 0x49, 0x4e, 0x47, 0x53,
0x4e, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x83, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x54, 0x41, 0x52, 0x10, 0xfa, 0x13, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x52, 0x49, 0x53, 0x49, 0x4e, 0x47, 0x53,
0x10, 0x84, 0x14, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, 0x41, 0x52, 0x10, 0xfb, 0x13, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x10, 0x85, 0x14, 0x12, 0x17, 0x0a, 0x12, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x52, 0x49, 0x53, 0x49, 0x4e, 0x47, 0x53, 0x54,
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x55, 0x41, 0x52, 0x10, 0xfc, 0x13, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x45, 0x10, 0x86, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x53, 0x45, 0x4f, 0x50, 0x10,
0x43, 0x53, 0x5f, 0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0xfd, 0x13, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
0x87, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x53, 0x45, 0x4f, 0x50, 0x10, 0xfe, 0x13, 0x12,
0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x88, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x4f, 0x4c,
0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x4b, 0x49, 0x45, 0x50, 0x45, 0x54, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0xff, 0x13, 0x12, 0x1c, 0x0a,
0x4e, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x89, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x55, 0x4e, 0x45, 0x54, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x80, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50,
0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x8a, 0x14, 0x2a, 0x67, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x45, 0x54, 0x53, 0x4b, 0x49, 0x4c,
0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x55, 0x50, 0x10, 0x81, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50,
0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x45, 0x54, 0x53, 0x4b, 0x49, 0x4c,
0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x4c, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x55, 0x50, 0x10, 0x82, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50,
0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x49, 0x4e,
0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x61, 0x78, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x03, 0x12, 0x46, 0x4f, 0x10, 0x83, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x04, 0x53, 0x43, 0x5f, 0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x84, 0x14, 0x12,
0x42, 0x24, 0x5a, 0x22, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x4b, 0x49,
0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x10, 0x85, 0x14, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b,
0x6c, 0x2f, 0x70, 0x65, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x10, 0x86,
0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53,
0x4b, 0x49, 0x4e, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x87, 0x14, 0x12, 0x1b,
0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x4b, 0x49, 0x4e,
0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x88, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x55, 0x4e,
0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x89, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x4b, 0x49, 0x4e, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b,
0x10, 0x8a, 0x14, 0x2a, 0x67, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65,
0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72,
0x6f, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74,
0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43,
0x5f, 0x4d, 0x61, 0x78, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4f,
0x50, 0x52, 0x43, 0x5f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x04, 0x42, 0x24, 0x5a, 0x22,
0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x65,
0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -165,6 +165,14 @@ message SkinInfo{
repeated Item Have = 5;// repeated Item Have = 5;//
bool IsUsing = 6;//使 bool IsUsing = 6;//使
bool IsUnlock = 7;// bool IsUnlock = 7;//
bool IsUpgrade = 8; //
int32 SkillId = 9;//id
int32 SkillLevel = 10;//
int32 SkillNextLevel = 11;//
int32 SkillMaxLevel = 12;//
int32 SkillValue = 13;//
int32 SkillNextValue = 14;//
int32 SkillType = 15; // 0 1穿
} }
//PACKET_CS_SKIN_INFO //PACKET_CS_SKIN_INFO

File diff suppressed because it is too large Load Diff

View File

@ -881,6 +881,8 @@ message DB_GameItem {
string Icon = 18; string Icon = 18;
map<int64, int64> Gain = 19;
} }
message DB_GameItemArray { message DB_GameItemArray {
@ -1517,17 +1519,27 @@ message DB_Skin {
int32 Id = 1; int32 Id = 1;
string Model = 2; int32 SkinClass = 2;
string SkinPic = 3; string Model = 3;
string SkinName = 4; string SkinPic = 4;
string SkinType = 5; string SkinName = 5;
int32 UnlockType = 6; string SkinType = 6;
map<int64, int64> UnlockItem = 7; int32 UnlockType = 7;
map<int64, int64> UnlockItem = 8;
string SkinSkillName = 9;
string SkinSkillIcon = 10;
string SkinSkillDes = 11;
int32 SkinSkillType = 12;
} }
@ -1545,6 +1557,14 @@ message DB_SkinLevel {
map<int64, int64> UpItem = 4; map<int64, int64> UpItem = 4;
int32 SkinSkillId = 5;
int32 SkinSkillLevel = 6;
int32 SkinSkillValue = 7;
string SkinSkillDes = 8;
} }
message DB_SkinLevelArray { message DB_SkinLevelArray {

File diff suppressed because it is too large Load Diff

View File

@ -208,6 +208,19 @@ message PlayerData{
int64 VCardCost = 59; // v卡消耗 int64 VCardCost = 59; // v卡消耗
int64 MoneyTotal = 60; // int64 MoneyTotal = 60; //
string ChannelID = 61; // ID string ChannelID = 61; // ID
int32 UseRoleId = 62; // 使id
int32 UseSkinId = 63; // 使id
repeated int32 SkinIds = 64; // id列表
repeated ModInfo RoleUnlockList = 65; //
repeated ModInfo PetUnlockList = 66; //
repeated ModInfo PetSkillUnlockList = 67; //
repeated ModInfo SkinUnlockList = 68; //
}
message ModInfo {
int32 Id = 1; // id
int32 Level = 2; //
int64 Ts = 3; //
} }
message RoomInfo{ message RoomInfo{
@ -796,3 +809,26 @@ message ItemConfig {
string Platform = 1; // string Platform = 1; //
repeated server.DB_GameItem Items = 2; // repeated server.DB_GameItem Items = 2; //
} }
message SkinLevel {
int32 Level = 1; //
map<int32,int64> UpItem = 2; //
int32 SkillId = 3; // id
int32 SkillLevel = 4; //
int32 SkillValue = 5; //
}
message SkinItem {
int32 Id = 1; // id
int32 UnlockType = 2; // 0使 1使使 2使
map<int32,int64> UnlockParam = 3; //
int32 IsUpgrade = 4; // 1 2
int32 SkillType = 5; // 0 1穿
repeated SkinLevel Levels = 6; //
}
// etcd /game/skin_config
message SkinConfig {
string Platform = 1; //
repeated SkinItem Items = 2; //
}

View File

@ -298,6 +298,7 @@ func CSUpBagInfo(s *netlib.Session, packetid int, data interface{}, sid int64) e
pack.NowItemNum = item.ItemNum pack.NowItemNum = item.ItemNum
} }
} }
case ItemCanExchange: case ItemCanExchange:
logger.Logger.Trace("道具兑换", msg.ItemId) logger.Logger.Trace("道具兑换", msg.ItemId)
itemInfo := srvdata.GameItemMgr.Get(p.Platform, msg.ItemId) itemInfo := srvdata.GameItemMgr.Get(p.Platform, msg.ItemId)
@ -326,6 +327,52 @@ func CSUpBagInfo(s *netlib.Session, packetid int, data interface{}, sid int64) e
//获取兑换码 //获取兑换码
BagMgrSingleton.ItemExchangeCard(p, msg.ItemId, int32(itemInfo.Num), msg.CardType, bagInfo.LogId) BagMgrSingleton.ItemExchangeCard(p, msg.ItemId, int32(itemInfo.Num), msg.CardType, bagInfo.LogId)
} }
case ItemCanFen:
logger.Logger.Trace("道具分解", msg.ItemId)
itemInfo := srvdata.GameItemMgr.Get(p.Platform, msg.ItemId)
if msg.ItemNum > 0 && itemInfo != nil {
_, _, isF := BagMgrSingleton.AddItemsV2(&ItemParam{
P: p,
Change: []*Item{
{
ItemId: msg.GetItemId(),
ItemNum: int64(-msg.GetItemNum()),
},
},
GainWay: common.GainWayItemFen,
Operator: "system",
Remark: fmt.Sprintf("道具分解%v", msg.GetItemId()),
noLog: false,
})
if isF {
pack.RetCode = bag.OpResultCode_OPRC_Sucess
var changeItems []*Item
for k, v := range itemInfo.GetGain() {
if v > 0 {
changeItems = append(changeItems, &Item{
ItemId: int32(k),
ItemNum: v * int64(msg.GetItemNum()),
})
}
}
BagMgrSingleton.AddItemsV2(&ItemParam{
P: p,
Change: changeItems,
Cost: []*model.ItemInfo{
{
ItemId: msg.GetItemId(),
ItemNum: int64(msg.GetItemNum()),
},
},
GainWay: common.GainWayItemFenGain,
Operator: "system",
Remark: "道具分解获得",
})
pack.NowItemId = item.ItemId
pack.NowItemNum = item.ItemNum
}
}
} }
send() send()
return nil return nil

View File

@ -1,12 +1,16 @@
package main package main
import ( import (
"time"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
"mongo.games.com/game/common" "mongo.games.com/game/common"
"mongo.games.com/game/model"
"mongo.games.com/game/protocol/pets" "mongo.games.com/game/protocol/pets"
"mongo.games.com/game/protocol/server" "mongo.games.com/game/protocol/server"
"mongo.games.com/game/srvdata" "mongo.games.com/game/srvdata"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
) )
type CSRoleInfoPacketFactory struct { type CSRoleInfoPacketFactory struct {
@ -301,6 +305,12 @@ func (this *CSRolePetUnlockHandler) Process(s *netlib.Session, packetid int, dat
"player", remark, 0, 0, false) "player", remark, 0, 0, false)
p.Roles.ModUnlock[msg.UseModId] = 1 p.Roles.ModUnlock[msg.UseModId] = 1
if p.Roles.Mod[msg.UseModId] == nil {
p.Roles.Mod[msg.UseModId] = &model.ModEx{}
}
if p.Roles.Mod[msg.UseModId].Ts == 0 {
p.Roles.Mod[msg.UseModId].Ts = time.Now().Unix()
}
FriendMgrSington.UpdateInfo(p.Platform, p.SnId) FriendMgrSington.UpdateInfo(p.Platform, p.SnId)
p.dirty = true p.dirty = true
logger.Logger.Trace("解锁人物", msg.UseModId) logger.Logger.Trace("解锁人物", msg.UseModId)
@ -320,6 +330,12 @@ func (this *CSRolePetUnlockHandler) Process(s *netlib.Session, packetid int, dat
"player", remark, 0, 0, false) "player", remark, 0, 0, false)
p.Pets.ModUnlock[msg.UseModId] = 1 p.Pets.ModUnlock[msg.UseModId] = 1
if p.Pets.Mod[msg.UseModId] == nil {
p.Pets.Mod[msg.UseModId] = &model.ModEx{}
}
if p.Pets.Mod[msg.UseModId].Ts == 0 {
p.Pets.Mod[msg.UseModId].Ts = time.Now().Unix()
}
FriendMgrSington.UpdateInfo(p.Platform, p.SnId) FriendMgrSington.UpdateInfo(p.Platform, p.SnId)
p.dirty = true p.dirty = true
logger.Logger.Trace("解锁宠物", msg.UseModId) logger.Logger.Trace("解锁宠物", msg.UseModId)
@ -392,6 +408,17 @@ func (this *CSPetSkillLevelUpHandler) Process(s *netlib.Session, packetid int, d
_, _, isF := BagMgrSingleton.AddItems(p, items, 0, common.GainWayPetSkillLevelUp, "system", "宠物技能升级消耗", 0, 0, false) _, _, isF := BagMgrSingleton.AddItems(p, items, 0, common.GainWayPetSkillLevelUp, "system", "宠物技能升级消耗", 0, 0, false)
if isF { if isF {
p.Pets.SkillInfo[petId][skillId] = level + 1 p.Pets.SkillInfo[petId][skillId] = level + 1
if level == 0 {
if p.Pets.Skill[petId] == nil {
p.Pets.Skill[petId] = make(map[int32]*model.SkillEx)
}
if p.Pets.Skill[petId][skillId] == nil {
p.Pets.Skill[petId][skillId] = &model.SkillEx{}
}
if p.Pets.Skill[petId][skillId].Ts == 0 {
p.Pets.Skill[petId][skillId].Ts = time.Now().Unix()
}
}
pack := &pets.SCPetSkillLevelUp{} pack := &pets.SCPetSkillLevelUp{}
pack.PetId = petId pack.PetId = petId
pack.SkillId = skillId pack.SkillId = skillId
@ -477,6 +504,8 @@ func CSSkinUpgrade(s *netlib.Session, packetid int, data interface{}, sid int64)
return nil return nil
} }
cfg := PlatformMgrSingleton.GetSkinInfo(p.Platform, msg.GetId())
pack := &pets.SCSkinUpgrade{ pack := &pets.SCSkinUpgrade{
RetCode: pets.OpResultCode_OPRC_Error, RetCode: pets.OpResultCode_OPRC_Error,
} }
@ -493,7 +522,7 @@ func CSSkinUpgrade(s *netlib.Session, packetid int, data interface{}, sid int64)
return nil return nil
} }
if info.GetLevel() >= srvdata.RolePetMgrSington.GetSkinMaxLevel(msg.GetId()) { if info.GetLevel() >= PlatformMgrSingleton.GetSkinMaxLevel(p.Platform, msg.GetId()) || cfg.GetIsUpgrade() == 2 {
logger.Logger.Errorf("CSSkinUpgrade max level") logger.Logger.Errorf("CSSkinUpgrade max level")
pack.RetCode = pets.OpResultCode_OPRC_MaxLevel pack.RetCode = pets.OpResultCode_OPRC_MaxLevel
send() send()
@ -536,7 +565,7 @@ func CSSkinUpgrade(s *netlib.Session, packetid int, data interface{}, sid int64)
} }
func SkinUnLock(p *Player, id int32) (*pets.SkinInfo, pets.OpResultCode) { func SkinUnLock(p *Player, id int32) (*pets.SkinInfo, pets.OpResultCode) {
cfg := srvdata.PBDB_SkinMgr.GetData(id) cfg := PlatformMgrSingleton.GetSkinInfo(p.Platform, id)
if cfg == nil { if cfg == nil {
return nil, pets.OpResultCode_OPRC_Error return nil, pets.OpResultCode_OPRC_Error
} }
@ -571,6 +600,12 @@ func SkinUnLock(p *Player, id int32) (*pets.SkinInfo, pets.OpResultCode) {
return nil, pets.OpResultCode_OPRC_Error return nil, pets.OpResultCode_OPRC_Error
} }
p.Skin.ModUnlock[id] = 1 p.Skin.ModUnlock[id] = 1
if p.Skin.Mod[id] == nil {
p.Skin.Mod[id] = &model.ModEx{}
}
if p.Skin.Mod[id].Ts == 0 {
p.Skin.Mod[id].Ts = time.Now().Unix()
}
pack := &pets.SCSkinUnLock{ pack := &pets.SCSkinUnLock{
Id: id, Id: id,
RetCode: pets.OpResultCode_OPRC_Sucess, RetCode: pets.OpResultCode_OPRC_Sucess,
@ -580,7 +615,7 @@ func SkinUnLock(p *Player, id int32) (*pets.SkinInfo, pets.OpResultCode) {
logger.Logger.Tracef("SCSkinUnlock: %v", pack) logger.Logger.Tracef("SCSkinUnlock: %v", pack)
// 自动使用 // 自动使用
if srvdata.PBDB_SkinMgr.GetData(id).GetUnlockType() == common.SkinGetAuto { if cfg.GetUnlockType() == common.SkinGetAuto {
CSSkinUse(p.gateSess, int(pets.PetsPacketID_PACKET_CS_SKIN_USE), &pets.CSSkinUse{Id: id}, p.sid) CSSkinUse(p.gateSess, int(pets.PetsPacketID_PACKET_CS_SKIN_USE), &pets.CSSkinUse{Id: id}, p.sid)
} }
return pack.Info, pets.OpResultCode_OPRC_Sucess return pack.Info, pets.OpResultCode_OPRC_Sucess

View File

@ -35,6 +35,7 @@ const (
ItemCanGive //可以赠送 ItemCanGive //可以赠送
ItemCanSell //可以出售 ItemCanSell //可以出售
ItemCanExchange //可以兑换 ItemCanExchange //可以兑换
ItemCanFen // 可以分解
ItemMax ItemMax
) )
@ -335,6 +336,12 @@ func (this *BagMgr) AddItems(p *Player, addItems []*Item, add int64, gainWay int
if v.ItemId == common.ItemIDPetSkill && v.ItemNum > 0 { if v.ItemId == common.ItemIDPetSkill && v.ItemNum > 0 {
PetMgrSington.CheckShowRed(p) PetMgrSington.CheckShowRed(p)
} }
// 皮肤红点
if v.ItemNum > 0 && item.GetType() == common.ItemTypeSkinChip {
PetMgrSington.CheckSkinRed(p)
}
// 统计 v卡兑换消耗数量 // 统计 v卡兑换消耗数量
if v.ItemId == common.ItemIDVCard && gainWay == common.GainWay_Exchange { if v.ItemId == common.ItemIDVCard && gainWay == common.GainWay_Exchange {
p.VCardCost += -v.ItemNum p.VCardCost += -v.ItemNum

View File

@ -82,6 +82,8 @@ func init() {
etcd.Register(etcd.ETCDKEY_DIAMOND_LOTTERY, webapi.DiamondLotteryConfig{}, platformConfigEvent) etcd.Register(etcd.ETCDKEY_DIAMOND_LOTTERY, webapi.DiamondLotteryConfig{}, platformConfigEvent)
// 道具列表 // 道具列表
etcd.Register(etcd.ETCDKEY_Item, webapi.ItemConfig{}, platformConfigEvent) etcd.Register(etcd.ETCDKEY_Item, webapi.ItemConfig{}, platformConfigEvent)
// 皮肤配置
etcd.Register(etcd.ETCDKEY_SKin, webapi.SkinConfig{}, platformConfigEvent)
} }
func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) { func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) {
@ -309,6 +311,9 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
} }
} }
case *webapi.SkinConfig:
PlatformMgrSingleton.GetConfig(config.Platform).SkinConfig = config
default: default:
logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey) logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey)
} }

View File

@ -256,7 +256,7 @@ func (this *PetMgr) GetSkinInfos(p *Player) []*pets.SkinInfo {
} }
func (this *PetMgr) GetSkinInfo(p *Player, id int32) *pets.SkinInfo { func (this *PetMgr) GetSkinInfo(p *Player, id int32) *pets.SkinInfo {
cfg := srvdata.PBDB_SkinMgr.GetData(id) cfg := PlatformMgrSingleton.GetSkinInfo(p.Platform, id)
if cfg == nil { if cfg == nil {
return nil return nil
} }
@ -264,18 +264,18 @@ func (this *PetMgr) GetSkinInfo(p *Player, id int32) *pets.SkinInfo {
bag := BagMgrSingleton.GetBagInfo(p.SnId) bag := BagMgrSingleton.GetBagInfo(p.SnId)
level := p.Skin.ModUnlock[id] level := p.Skin.ModUnlock[id]
var unLockCost, cost, have []*pets.Item var unLockCost, cost, have []*pets.Item
for k, v := range cfg.GetUnlockItem() { for k, v := range cfg.GetUnlockParam() {
unLockCost = append(unLockCost, &pets.Item{ unLockCost = append(unLockCost, &pets.Item{
Id: int32(k), Id: k,
N: v, N: v,
}) })
} }
if level == 0 { if level == 0 {
cost = unLockCost cost = unLockCost
} else { } else {
for k, v := range srvdata.RolePetMgrSington.GetSkinBySkinIdAndLevel(id, level).GetUpItem() { for k, v := range PlatformMgrSingleton.GetSkinLevel(p.Platform, id, level).GetUpItem() {
cost = append(cost, &pets.Item{ cost = append(cost, &pets.Item{
Id: int32(k), Id: k,
N: v, N: v,
}) })
} }
@ -298,16 +298,77 @@ func (this *PetMgr) GetSkinInfo(p *Player, id int32) *pets.SkinInfo {
ret := &pets.SkinInfo{ ret := &pets.SkinInfo{
Id: id, Id: id,
Level: level, Level: level,
MaxLevel: srvdata.RolePetMgrSington.GetSkinMaxLevel(cfg.GetId()), MaxLevel: PlatformMgrSingleton.GetSkinMaxLevel(p.Platform, id),
Cost: cost, Cost: cost,
Have: have, Have: have,
IsUsing: use, IsUsing: use,
IsUnlock: unLock, IsUnlock: unLock,
IsUpgrade: cfg.GetIsUpgrade() == 1,
SkillType: cfg.GetSkillType(),
}
curLevel := PlatformMgrSingleton.GetSkinLevel(p.Platform, id, level-1)
nextLevel := PlatformMgrSingleton.GetSkinLevel(p.Platform, id, level)
if curLevel != nil {
ret.SkillId = curLevel.GetSkillId()
}
if nextLevel != nil {
ret.SkillId = nextLevel.GetSkillId()
}
if curLevel != nil {
ret.SkillLevel = curLevel.GetSkillLevel()
ret.SkillValue = curLevel.GetSkillValue()
}
ret.SkillMaxLevel = PlatformMgrSingleton.GetSkinSkillMaxLevel(p.Platform, id)
if nextLevel != nil {
ret.SkillNextLevel = nextLevel.GetSkillLevel()
ret.SkillNextValue = nextLevel.GetSkillValue()
} }
return ret return ret
} }
func (this *PetMgr) CheckSkinRed(p *Player) {
if p == nil || p.IsRob {
return
}
for _, v := range PlatformMgrSingleton.GetConfig(p.Platform).SkinConfig.GetItems() {
if v == nil {
continue
}
info := this.GetSkinInfo(p, v.Id)
// 解锁
if !info.GetIsUnlock() {
ok := true
for _, v := range info.GetCost() {
item := BagMgrSingleton.GetItem(p.SnId, v.GetId())
if item.ItemNum < v.GetN() {
ok = false
break
}
}
if ok && len(info.GetCost()) > 0 {
p.SendShowRed(hall_proto.ShowRedCode_Skin, v.Id, 1)
continue
}
}
// 升级
if info.GetIsUnlock() && info.GetLevel() < info.GetMaxLevel() && info.GetIsUpgrade() {
ok := true
for _, v := range info.GetCost() {
item := BagMgrSingleton.GetItem(p.SnId, v.GetId())
if item.ItemNum < v.GetN() {
ok = false
break
}
}
if ok && len(info.GetCost()) > 0 {
p.SendShowRed(hall_proto.ShowRedCode_Skin, v.Id, 1)
continue
}
}
}
}
// 商品人物总加成 人物功能变动需要修改 // 商品人物总加成 人物功能变动需要修改
func (this *PetMgr) GetShopAward(shopInfo *model.ShopInfo, p *Player) (award, roleId int32) { func (this *PetMgr) GetShopAward(shopInfo *model.ShopInfo, p *Player) (award, roleId int32) {
if shopInfo.Ad > 0 && shopInfo.Type == ShopTypeCoin { if shopInfo.Ad > 0 && shopInfo.Type == ShopTypeCoin {
@ -351,7 +412,7 @@ func (this *PetMgr) GetIntroductionByModId(modId int32) *RoleAndPetInfo {
} }
} }
func (this *PetMgr) CheckShowRed(p *Player) { func (this *PetMgr) CheckShowRed(p *Player) {
if p == nil { if p == nil || p.IsRob {
return return
} }
var roleRed, petRed bool var roleRed, petRed bool

View File

@ -339,11 +339,11 @@ func (this *Player) OnLogined() {
this.RandRobotExData() this.RandRobotExData()
if !this.IsRob {
this.SendJackPotInit() this.SendJackPotInit()
this.GetPayGoodsInfo() this.GetPayGoodsInfo()
if !this.IsRob {
PlayerOnlineSington.Check = true PlayerOnlineSington.Check = true
this.LoadMessage(tLastLogout.Unix(), isFirstLogin, !inSameWeek) this.LoadMessage(tLastLogout.Unix(), isFirstLogin, !inSameWeek)
@ -429,16 +429,13 @@ func (this *Player) OnRehold() {
FriendMgrSington.ApplyList(this.Platform, this.SnId) FriendMgrSington.ApplyList(this.Platform, this.SnId)
FriendUnreadMgrSington.CheckSendFriendUnreadData(this.Platform, this.SnId) FriendUnreadMgrSington.CheckSendFriendUnreadData(this.Platform, this.SnId)
this.CheckShowRed() if !this.IsRob {
this.SendJackPotInit() this.SendJackPotInit()
PlayerOnlineSington.Check = true
this.GetPayGoodsInfo() this.GetPayGoodsInfo()
RankMgrSingleton.CheckShowRed(this.SnId) this.CheckShowRed()
if !this.IsRob {
PlayerOnlineSington.Check = true
// 记录重连日志 // 记录重连日志
logState := LoginStateMgrSington.GetLoginStateBySid(this.sid) logState := LoginStateMgrSington.GetLoginStateBySid(this.sid)
@ -455,16 +452,18 @@ func (this *Player) OnRehold() {
} }
func (this *Player) CheckShowRed() { func (this *Player) CheckShowRed() {
// 邮件红点
this.MessageShowRed() this.MessageShowRed()
//商城红点 //商城红点
ShopMgrSington.ShopCheckShowRed(this) ShopMgrSington.ShopCheckShowRed(this)
//数据依赖于背包数据 放入加载背包数据之后执行 //数据依赖于背包数据 放入加载背包数据之后执行
PetMgrSington.CheckShowRed(this) PetMgrSington.CheckShowRed(this)
// 皮肤红点
PetMgrSington.CheckSkinRed(this)
//福利红点 //福利红点
WelfareMgrSington.WelfareShowRed(this) WelfareMgrSington.WelfareShowRed(this)
// 排行赛红点
RankMgrSingleton.CheckShowRed(this.SnId)
} }
// 为了worldsrv和gamesrv上机器人信息一致 // 为了worldsrv和gamesrv上机器人信息一致
@ -4802,7 +4801,7 @@ func (this *Player) SCItems() {
// AutoSkinUnlock 自动解锁皮肤 // AutoSkinUnlock 自动解锁皮肤
func (this *Player) AutoSkinUnlock() { func (this *Player) AutoSkinUnlock() {
for _, v := range srvdata.PBDB_SkinMgr.Datas.GetArr() { for _, v := range PlatformMgrSingleton.GetConfig(this.Platform).SkinConfig.GetItems() {
if v.GetUnlockType() != common.SkinGetAuto { if v.GetUnlockType() != common.SkinGetAuto {
continue continue
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.