物品、阵容、英雄列表、装备、宝物
This commit is contained in:
parent
b1bd0139c8
commit
a8c6c0235c
12
go.mod
12
go.mod
@ -4,15 +4,13 @@ go 1.24.3
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/json-iterator/go v1.1.12
|
github.com/json-iterator/go v1.1.12
|
||||||
github.com/oylshe1314/framework v0.0.0-00010101000000-000000000000
|
github.com/oylshe1314/framework v1.0.16
|
||||||
github.com/xuri/excelize/v2 v2.9.1
|
github.com/xuri/excelize/v2 v2.9.1
|
||||||
go.mongodb.org/mongo-driver v1.17.3
|
go.mongodb.org/mongo-driver v1.17.4
|
||||||
golang.org/x/crypto v0.38.0
|
golang.org/x/crypto v0.39.0
|
||||||
google.golang.org/protobuf v1.36.6
|
google.golang.org/protobuf v1.36.6
|
||||||
)
|
)
|
||||||
|
|
||||||
replace github.com/oylshe1314/framework => D:\sk\projects\golang\framework
|
|
||||||
|
|
||||||
require (
|
require (
|
||||||
filippo.io/edwards25519 v1.1.0 // indirect
|
filippo.io/edwards25519 v1.1.0 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||||
@ -43,7 +41,7 @@ require (
|
|||||||
github.com/xuri/nfp v0.0.1 // indirect
|
github.com/xuri/nfp v0.0.1 // indirect
|
||||||
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
|
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
|
||||||
golang.org/x/net v0.40.0 // indirect
|
golang.org/x/net v0.40.0 // indirect
|
||||||
golang.org/x/sync v0.14.0 // indirect
|
golang.org/x/sync v0.15.0 // indirect
|
||||||
golang.org/x/sys v0.33.0 // indirect
|
golang.org/x/sys v0.33.0 // indirect
|
||||||
golang.org/x/text v0.25.0 // indirect
|
golang.org/x/text v0.26.0 // indirect
|
||||||
)
|
)
|
||||||
|
10
go.sum
10
go.sum
@ -44,6 +44,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
|
|||||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE=
|
github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE=
|
||||||
github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
|
github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
|
||||||
|
github.com/oylshe1314/framework v1.0.16 h1:mwgx/td0J95nnDJ5Z6EJ2zZNIxublLUYJj5Lt87PMEs=
|
||||||
|
github.com/oylshe1314/framework v1.0.16/go.mod h1:vNAkswUJKZe4hwYHdhgYFpHAnS6N0K5yORs/Ox1/BgE=
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/sftp v1.13.7 h1:uv+I3nNJvlKZIQGSr8JVQLNHFU9YhhNpvC14Y6KgmSM=
|
github.com/pkg/sftp v1.13.7 h1:uv+I3nNJvlKZIQGSr8JVQLNHFU9YhhNpvC14Y6KgmSM=
|
||||||
@ -86,11 +88,15 @@ github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfS
|
|||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
go.mongodb.org/mongo-driver v1.17.3 h1:TQyXhnsWfWtgAhMtOgtYHMTkZIfBTpMTsMnd9ZBeHxQ=
|
go.mongodb.org/mongo-driver v1.17.3 h1:TQyXhnsWfWtgAhMtOgtYHMTkZIfBTpMTsMnd9ZBeHxQ=
|
||||||
go.mongodb.org/mongo-driver v1.17.3/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
|
go.mongodb.org/mongo-driver v1.17.3/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
|
||||||
|
go.mongodb.org/mongo-driver v1.17.4 h1:jUorfmVzljjr0FLzYQsGP8cgN/qzzxlY9Vh0C9KFXVw=
|
||||||
|
go.mongodb.org/mongo-driver v1.17.4/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
||||||
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
||||||
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
||||||
|
golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
|
||||||
|
golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
|
||||||
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
|
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
|
||||||
golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs=
|
golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
@ -107,6 +113,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
|
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
|
||||||
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||||
|
golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
|
||||||
|
golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
@ -134,6 +142,8 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
|||||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||||
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||||
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||||
|
golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
|
||||||
|
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
|
@ -112,44 +112,50 @@ enum ChangeType {
|
|||||||
enum ItemType {
|
enum ItemType {
|
||||||
ItemTypeNone = 0;
|
ItemTypeNone = 0;
|
||||||
|
|
||||||
// 货币
|
|
||||||
ItemMoney = 1;
|
|
||||||
|
|
||||||
// 道具
|
// 道具
|
||||||
ItemProp = 2;
|
ItemProp = 1;
|
||||||
|
|
||||||
|
// 货币
|
||||||
|
ItemMoney = 2;
|
||||||
|
|
||||||
|
// 英雄
|
||||||
|
ItemHero = 3;
|
||||||
|
|
||||||
// 装备
|
// 装备
|
||||||
ItemEquip = 3;
|
ItemEquip = 4;
|
||||||
|
|
||||||
// 宝物
|
// 宝物
|
||||||
ItemTreasure = 4;
|
ItemTreasure = 5;
|
||||||
|
|
||||||
// 神兵
|
// 神兵
|
||||||
ItemArtifact = 5;
|
ItemArtifact = 6;
|
||||||
|
|
||||||
|
// 坐骑
|
||||||
|
ItemMount = 7;
|
||||||
|
|
||||||
// 锦囊
|
// 锦囊
|
||||||
ItemSack = 6;
|
ItemSack = 8;
|
||||||
|
|
||||||
// 饰品
|
// 饰品
|
||||||
ItemOrnament = 7;
|
ItemOrnament = 9;
|
||||||
|
|
||||||
// 命格
|
// 命格
|
||||||
ItemFateChart = 8;
|
ItemFateChart = 10;
|
||||||
|
|
||||||
// 玉石
|
// 玉石
|
||||||
ItemGem = 9;
|
ItemGem = 11;
|
||||||
|
|
||||||
// 神兵玉石
|
// 神兵玉石
|
||||||
ItemArtifactGem = 10;
|
ItemArtifactGem = 12;
|
||||||
|
|
||||||
// 觉醒道具
|
// 觉醒道具
|
||||||
ItemAwakenProp = 11;
|
ItemAwakenProp = 13;
|
||||||
|
|
||||||
// 历史名将
|
// 历史名将
|
||||||
ItemGeneral = 12;
|
ItemGeneral = 14;
|
||||||
|
|
||||||
// 神机(俄罗斯方块)
|
// 神机(俄罗斯方块)
|
||||||
ItemTetris = 13;
|
ItemTetris = 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum PropType {
|
enum PropType {
|
||||||
@ -158,6 +164,12 @@ enum PropType {
|
|||||||
HeroExp = 1;
|
HeroExp = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum HeroType {
|
||||||
|
TypeHero = 0;
|
||||||
|
|
||||||
|
HeroPiece = 1;
|
||||||
|
}
|
||||||
|
|
||||||
enum EquipType {
|
enum EquipType {
|
||||||
Weapon = 0;
|
Weapon = 0;
|
||||||
|
|
||||||
@ -166,12 +178,16 @@ enum EquipType {
|
|||||||
Cloth = 2;
|
Cloth = 2;
|
||||||
|
|
||||||
Shoe = 3;
|
Shoe = 3;
|
||||||
|
|
||||||
|
EquipPiece = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum TreasureType {
|
enum TreasureType {
|
||||||
WarBook = 0;
|
WarBook = 0;
|
||||||
|
|
||||||
WarToken = 1;
|
WarToken = 1;
|
||||||
|
|
||||||
|
TreasurePiece = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum CopyType {
|
enum CopyType {
|
||||||
@ -188,6 +204,14 @@ enum AbleStatus {
|
|||||||
Already = 2; //已经
|
Already = 2; //已经
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum FuncType {
|
||||||
|
FuncTypeNone = 0;
|
||||||
|
|
||||||
|
LineupHeroes = 1;
|
||||||
|
|
||||||
|
EquipUpgrade = 2;
|
||||||
|
}
|
||||||
|
|
||||||
enum AttrType {
|
enum AttrType {
|
||||||
AttrTypeNone = 0; //无属性
|
AttrTypeNone = 0; //无属性
|
||||||
Attack = 1; //攻击
|
Attack = 1; //攻击
|
||||||
|
@ -8,10 +8,11 @@ import "mod_item.proto";
|
|||||||
message BattleEntity {
|
message BattleEntity {
|
||||||
uint32 Type = 1; //目标类型, 1.英雄(自己人),2.怪物(敌人)
|
uint32 Type = 1; //目标类型, 1.英雄(自己人),2.怪物(敌人)
|
||||||
uint32 Id = 2; //目标ID
|
uint32 Id = 2; //目标ID
|
||||||
uint64 Hp = 3; //当前血量
|
uint64 HpMax = 3; //当前血量
|
||||||
uint32 Rage = 4; //当前怒气
|
uint32 Rage = 4; //当前怒气
|
||||||
repeated uint32 Status = 5; //目标状态(待定,如眩晕、击飞等)
|
repeated uint32 Status = 5; //目标状态(待定,如眩晕、击飞等)
|
||||||
uint64 Value = 6; //数值,可以是伤害,回血等
|
repeated uint64 Value = 6; //数值列表,可以是伤害,回血等
|
||||||
|
repeated uint64 Hp = 7; //当前血量列表
|
||||||
}
|
}
|
||||||
|
|
||||||
//战斗动作
|
//战斗动作
|
||||||
|
@ -113,12 +113,6 @@ message LineupHeroChangeReq {
|
|||||||
uint64 HeroUid = 3;
|
uint64 HeroUid = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ModRoleLineupHeroChange: 2007
|
|
||||||
// 阵容英雄变更返回
|
|
||||||
message LineupHeroChangeAck {
|
|
||||||
repeated LineupHero HeroList = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ModRoleBattleHeroPosition = 2008;
|
// ModRoleBattleHeroPosition = 2008;
|
||||||
// 阵容英雄布阵位置变更请求
|
// 阵容英雄布阵位置变更请求
|
||||||
message LineupHeroPositionReq {
|
message LineupHeroPositionReq {
|
||||||
@ -176,14 +170,23 @@ message LineupHeroOrnamentReq {
|
|||||||
uint64 OrnamentsUid = 3;
|
uint64 OrnamentsUid = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ModRoleLineupHelperChange = 2015;
|
||||||
|
// 阵容援军变更
|
||||||
|
message LineupHelperChangeReq{
|
||||||
|
uint64 LineupUid = 1;
|
||||||
|
uint32 Index = 2;
|
||||||
|
uint64 HeroUid = 3; //填0为卸下
|
||||||
|
}
|
||||||
|
|
||||||
message Lineup {
|
message Lineup {
|
||||||
uint64 Uid = 1; // 唯一ID(可以此字段排序,越晚创建的UID会越大)
|
uint64 Uid = 1; // 唯一ID(可以此字段排序,越晚创建的UID会越大)
|
||||||
string Name = 2; // 阵容名称
|
string Name = 2; // 阵容名称
|
||||||
bool Active = 3; // 阵容是否生效,即是否当前阵容
|
bool Active = 3; // 阵容是否生效,即是否当前阵容
|
||||||
repeated LineupHero HeroList = 4; //阵容英雄列表,0-5为上阵英雄,6-7为偏将(坐板凳的),对于未激活的阵容是否需要返回英雄列表待定
|
repeated LineupHero HeroList = 4; //阵容英雄列表,0-5为上阵英雄,6-7为偏将(坐板凳的),对于未激活的阵容是否需要返回英雄列表待定
|
||||||
|
repeated uint64 HelpList = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ModRoleLineupList = 2015;
|
// ModRoleLineupList = 2021;
|
||||||
// 阵容列表返回
|
// 阵容列表返回
|
||||||
message LineupListAck {
|
message LineupListAck {
|
||||||
repeated Lineup LineupList = 1; //理论上至少会有个阵容
|
repeated Lineup LineupList = 1; //理论上至少会有个阵容
|
||||||
@ -194,32 +197,32 @@ message LineupChange {
|
|||||||
Lineup Lineup = 2;
|
Lineup Lineup = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ModRoleLineupChange = 2016;
|
// ModRoleLineupChange = 2022;
|
||||||
// 阵容变更列表返回
|
// 阵容变更列表返回
|
||||||
message LineupChangeListAck {
|
message LineupChangeListAck {
|
||||||
repeated LineupChange ChangeList = 1;
|
repeated LineupChange ChangeList = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ModRoleLineupCreate = 2017;
|
// ModRoleLineupCreate = 2023;
|
||||||
// 创建新阵容请求
|
// 创建新阵容请求
|
||||||
message LineupCreateReq {
|
message LineupCreateReq {
|
||||||
string Name = 1;
|
string Name = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ModRoleLineupChangeName = 2018;
|
// ModRoleLineupChangeName = 2024;
|
||||||
// 阵容修改名称请求
|
// 阵容修改名称请求
|
||||||
message LineupChangeNameReq {
|
message LineupChangeNameReq {
|
||||||
uint64 Uid = 1;
|
uint64 Uid = 1;
|
||||||
string Name = 2;
|
string Name = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ModRoleLineupActivate = 2019;
|
// ModRoleLineupActivate = 2025;
|
||||||
// 阵容激活(变更当前阵容)请求
|
// 阵容激活(变更当前阵容)请求
|
||||||
message LineupActivateReq {
|
message LineupActivateReq {
|
||||||
uint64 Uid = 1;
|
uint64 Uid = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ModRoleLineupDelete = 2020;
|
// ModRoleLineupDelete = 2026;
|
||||||
// 阵容删除请求
|
// 阵容删除请求
|
||||||
message LineupDeleteReq {
|
message LineupDeleteReq {
|
||||||
uint64 Uid = 1;
|
uint64 Uid = 1;
|
||||||
|
@ -122,23 +122,26 @@ enum MsgId {
|
|||||||
// 阵容英雄饰品
|
// 阵容英雄饰品
|
||||||
ModRoleLineupHeroOrnament = 2014;
|
ModRoleLineupHeroOrnament = 2014;
|
||||||
|
|
||||||
|
// 援助变更
|
||||||
|
ModRoleLineupHelperChange = 2015;
|
||||||
|
|
||||||
// 阵容列表
|
// 阵容列表
|
||||||
ModRoleLineupList = 2015;
|
ModRoleLineupList = 2021;
|
||||||
|
|
||||||
// 阵容变更
|
// 阵容变更
|
||||||
ModRoleLineupChange = 2016;
|
ModRoleLineupChange = 2022;
|
||||||
|
|
||||||
// 创建新阵容
|
// 创建新阵容
|
||||||
ModRoleLineupCreate = 2017;
|
ModRoleLineupCreate = 2023;
|
||||||
|
|
||||||
// 阵容修改名称
|
// 阵容修改名称
|
||||||
ModRoleLineupChangeName = 2018;
|
ModRoleLineupChangeName = 2024;
|
||||||
|
|
||||||
// 阵容激活(变更当前阵容)
|
// 阵容激活(变更当前阵容)
|
||||||
ModRoleLineupActivate = 2019;
|
ModRoleLineupActivate = 2025;
|
||||||
|
|
||||||
// 阵容删除
|
// 阵容删除
|
||||||
ModRoleLineupDelete = 2020;
|
ModRoleLineupDelete = 2026;
|
||||||
|
|
||||||
//-------------------------------------------------------------------------- 关卡模块 --------------------------------------------------------------------------
|
//-------------------------------------------------------------------------- 关卡模块 --------------------------------------------------------------------------
|
||||||
// 场景进入
|
// 场景进入
|
||||||
@ -203,6 +206,9 @@ enum MsgId {
|
|||||||
// 物品使用
|
// 物品使用
|
||||||
ModItemUse = 6003;
|
ModItemUse = 6003;
|
||||||
|
|
||||||
|
// 物品使用
|
||||||
|
ModItemSale = 6004;
|
||||||
|
|
||||||
// 装备列表
|
// 装备列表
|
||||||
ModItemEquipList = 6011;
|
ModItemEquipList = 6011;
|
||||||
|
|
||||||
|
@ -6,19 +6,20 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Item struct {
|
type Item struct {
|
||||||
Id int `json:"id"`
|
Id int `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Type int `json:"type"`
|
Type int `json:"type"`
|
||||||
SubType int `json:"subType"`
|
SubType int `json:"subType"`
|
||||||
Value int `json:"value"`
|
Value int `json:"value"`
|
||||||
Quality int `json:"quality"`
|
Quality int `json:"quality"`
|
||||||
StackLimit int `json:"stack_limit"`
|
StackLimit int `json:"stack_limit"`
|
||||||
SortBy int `json:"sort_by"`
|
SortBy int `json:"sort_by"`
|
||||||
UseMulti bool `json:"use_multi"`
|
UseMulti bool `json:"use_multi"`
|
||||||
SaleAllow bool `json:"sale_allow"`
|
SaleAllow bool `json:"sale_allow"`
|
||||||
UseAllow bool `json:"use_allow"`
|
UseAllow bool `json:"use_allow"`
|
||||||
UseConsume bool `json:"use_consume"`
|
UseDirect bool `json:"use_direct"`
|
||||||
UseDirect bool `json:"use_direct"`
|
UseConsume int `json:"use_consume"`
|
||||||
|
ConsumeNums int `json:"consume_nums"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ItemTable struct {
|
type ItemTable struct {
|
||||||
|
@ -158,6 +158,7 @@ func (this *PlayerHandler) HeroBreak(player *logic.Player, msg *net.Message) {
|
|||||||
|
|
||||||
var hero = player.Hero[req.HeroUid]
|
var hero = player.Hero[req.HeroUid]
|
||||||
if hero == nil {
|
if hero == nil {
|
||||||
|
this.logger.Error("Parameter error, Hero not found, req.HeroUid: ", req.HeroUid)
|
||||||
_ = player.TipNotice(proto.TipHeroNotFound)
|
_ = player.TipNotice(proto.TipHeroNotFound)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,11 @@ func (this *PlayerHandler) EquipUpgrade(player *logic.Player, msg *net.Message)
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if player.CheckFunctionOpen(pb.ModId_ModuleItem, pb.FuncType_EquipUpgrade, int(equip.Level+1)) {
|
||||||
|
_ = player.TipNotice(proto.TipLevelAlreadyMax)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var level = equip.Level
|
var level = equip.Level
|
||||||
var consumeItems = map[uint32]uint32{}
|
var consumeItems = map[uint32]uint32{}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ func (this *PlayerHandler) enterCopyMain(player *logic.Player, levelId uint32) {
|
|||||||
for i, unlockType := range copyMainTable.UnlockType {
|
for i, unlockType := range copyMainTable.UnlockType {
|
||||||
switch unlockType {
|
switch unlockType {
|
||||||
case 1:
|
case 1:
|
||||||
if player.RoleLevel < uint32(copyMainTable.UnlockArgs[i]) {
|
if player.RoleHero.Level < uint32(copyMainTable.UnlockArgs[i]) {
|
||||||
_ = player.TipNotice(proto.TipCopyCanNotEnter)
|
_ = player.TipNotice(proto.TipCopyCanNotEnter)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -122,7 +122,7 @@ func (this *PlayerHandler) LineupHeroChange(player *logic.Player, msg *net.Messa
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if !player.CheckFunctionOpen(int(pb.ModId_ModuleRole), 1, int(req.Index)) {
|
if !player.CheckFunctionOpen(pb.ModId_ModuleRole, pb.FuncType_LineupHeroes, int(req.Index)) {
|
||||||
_ = player.TipNotice(proto.TipFunctionNotUnlocked)
|
_ = player.TipNotice(proto.TipFunctionNotUnlocked)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -178,8 +178,8 @@ func (this *PlayerHandler) LineupHeroChange(player *logic.Player, msg *net.Messa
|
|||||||
|
|
||||||
//TODO lineup hero capacity
|
//TODO lineup hero capacity
|
||||||
|
|
||||||
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHeroChange), &pb.LineupHeroChangeAck{
|
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupChange), &pb.LineupChangeListAck{
|
||||||
HeroList: []*pb.LineupHero{lineupHero.BuildMsgLineupHero(req.Index)},
|
ChangeList: []*pb.LineupChange{{ChangeType: pb.ChangeType_Changed, Lineup: lineup.BuildMsgLineup()}},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,7 +222,6 @@ func (this *PlayerHandler) LineupHeroPosition(player *logic.Player, msg *net.Mes
|
|||||||
setups[req.PositionList[i]] = true
|
setups[req.PositionList[i]] = true
|
||||||
}
|
}
|
||||||
|
|
||||||
var lineupHeroList []*pb.LineupHero
|
|
||||||
for i, lineupHero := range lineup.Heroes {
|
for i, lineupHero := range lineup.Heroes {
|
||||||
if i > 5 {
|
if i > 5 {
|
||||||
break
|
break
|
||||||
@ -233,14 +232,13 @@ func (this *PlayerHandler) LineupHeroPosition(player *logic.Player, msg *net.Mes
|
|||||||
}
|
}
|
||||||
|
|
||||||
lineupHero.Position = req.PositionList[i]
|
lineupHero.Position = req.PositionList[i]
|
||||||
lineupHeroList = append(lineupHeroList, lineupHero.BuildMsgLineupHero(uint32(i)))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
player.SaveField("lineup.heroes", lineup.Heroes)
|
player.SaveField("lineup.heroes", lineup.Heroes)
|
||||||
|
|
||||||
if len(lineupHeroList) > 0 {
|
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupChange), &pb.LineupChangeListAck{
|
||||||
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHeroChange), &pb.LineupHeroChangeAck{HeroList: lineupHeroList})
|
ChangeList: []*pb.LineupChange{{ChangeType: pb.ChangeType_Changed, Lineup: lineup.BuildMsgLineup()}},
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *PlayerHandler) LineupHeroEquip(player *logic.Player, msg *net.Message) {
|
func (this *PlayerHandler) LineupHeroEquip(player *logic.Player, msg *net.Message) {
|
||||||
@ -270,7 +268,7 @@ func (this *PlayerHandler) LineupHeroEquip(player *logic.Player, msg *net.Messag
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if !player.CheckFunctionOpen(int(pb.ModId_ModuleRole), 1, int(req.Index)) {
|
if !player.CheckFunctionOpen(pb.ModId_ModuleRole, 1, int(req.Index)) {
|
||||||
_ = player.TipNotice(proto.TipFunctionNotUnlocked)
|
_ = player.TipNotice(proto.TipFunctionNotUnlocked)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -349,7 +347,9 @@ func (this *PlayerHandler) LineupHeroEquip(player *logic.Player, msg *net.Messag
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHeroChange), &pb.LineupHeroChangeAck{HeroList: lineupHeroList})
|
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupChange), &pb.LineupChangeListAck{
|
||||||
|
ChangeList: []*pb.LineupChange{{ChangeType: pb.ChangeType_Changed, Lineup: lineup.BuildMsgLineup()}},
|
||||||
|
})
|
||||||
_ = player.Send(uint16(pb.ModId_ModuleItem), uint16(pb.MsgId_ModItemEquipChange), &pb.EquipChangeListAck{ChangeList: equipChangeList})
|
_ = player.Send(uint16(pb.ModId_ModuleItem), uint16(pb.MsgId_ModItemEquipChange), &pb.EquipChangeListAck{ChangeList: equipChangeList})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -381,7 +381,7 @@ func (this *PlayerHandler) LineupHeroTreasure(player *logic.Player, msg *net.Mes
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if !player.CheckFunctionOpen(int(pb.ModId_ModuleRole), 1, int(req.Index)) {
|
if !player.CheckFunctionOpen(pb.ModId_ModuleRole, pb.FuncType_LineupHeroes, int(req.Index)) {
|
||||||
_ = player.TipNotice(proto.TipFunctionNotUnlocked)
|
_ = player.TipNotice(proto.TipFunctionNotUnlocked)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -460,7 +460,9 @@ func (this *PlayerHandler) LineupHeroTreasure(player *logic.Player, msg *net.Mes
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHeroChange), &pb.LineupHeroChangeAck{HeroList: lineupHeroList})
|
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupChange), &pb.LineupChangeListAck{
|
||||||
|
ChangeList: []*pb.LineupChange{{ChangeType: pb.ChangeType_Changed, Lineup: lineup.BuildMsgLineup()}},
|
||||||
|
})
|
||||||
_ = player.Send(uint16(pb.ModId_ModuleItem), uint16(pb.MsgId_ModItemTreasureChange), &pb.TreasureChangeListAck{ChangeList: equipChangeList})
|
_ = player.Send(uint16(pb.ModId_ModuleItem), uint16(pb.MsgId_ModItemTreasureChange), &pb.TreasureChangeListAck{ChangeList: equipChangeList})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -473,6 +475,48 @@ func (this *PlayerHandler) LineupHeroGeneral(player *logic.Player, msg *net.Mess
|
|||||||
|
|
||||||
func (this *PlayerHandler) LineupHeroOrnament(player *logic.Player, msg *net.Message) {}
|
func (this *PlayerHandler) LineupHeroOrnament(player *logic.Player, msg *net.Message) {}
|
||||||
|
|
||||||
|
func (this *PlayerHandler) LineupHelperChange(player *logic.Player, msg *net.Message) {
|
||||||
|
var req = new(pb.LineupHelperChangeReq)
|
||||||
|
var err = msg.Read(req)
|
||||||
|
if err != nil {
|
||||||
|
this.logger.Error("Read message failed, ", err)
|
||||||
|
_ = player.TipNotice(proto.TipMessageError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.LineupUid == 0 {
|
||||||
|
this.logger.Error("Parameter error, req.LineupUid: ", req.LineupUid)
|
||||||
|
_ = player.TipNotice(proto.TipParameterError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.Index >= 8 {
|
||||||
|
this.logger.Error("Parameter error, req.Index: ", req.Index)
|
||||||
|
_ = player.TipNotice(proto.TipParameterError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var lineup = player.Lineup[req.LineupUid]
|
||||||
|
if lineup == nil {
|
||||||
|
this.logger.Error("Parameter error, Lineup not found, req.LineupUid: ", req.LineupUid)
|
||||||
|
_ = player.TipNotice(proto.TipLineupNotFound)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var hero = player.Hero[req.HeroUid]
|
||||||
|
if hero == nil {
|
||||||
|
this.logger.Error("Parameter error, Hero not found, req.HeroUid: ", req.HeroUid)
|
||||||
|
_ = player.TipNotice(proto.TipHeroNotFound)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
lineup.Helper[req.Index] = hero.Uid
|
||||||
|
|
||||||
|
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupChange), &pb.LineupChangeListAck{
|
||||||
|
ChangeList: []*pb.LineupChange{{ChangeType: pb.ChangeType_Changed, Lineup: lineup.BuildMsgLineup()}},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func (this *PlayerHandler) LineupCreate(player *logic.Player, msg *net.Message) {
|
func (this *PlayerHandler) LineupCreate(player *logic.Player, msg *net.Message) {
|
||||||
var req = new(pb.LineupCreateReq)
|
var req = new(pb.LineupCreateReq)
|
||||||
var err = msg.Read(req)
|
var err = msg.Read(req)
|
||||||
|
@ -36,8 +36,8 @@ type Player struct {
|
|||||||
NamePrefix uint32 `bson:"name_prefix"`
|
NamePrefix uint32 `bson:"name_prefix"`
|
||||||
NameTitle uint32 `bson:"name_title"`
|
NameTitle uint32 `bson:"name_title"`
|
||||||
RoleTitle uint32 `bson:"role_title"`
|
RoleTitle uint32 `bson:"role_title"`
|
||||||
RoleExp uint64 `bson:"role_exp"`
|
//RoleExp uint64 `bson:"role_exp"`
|
||||||
RoleLevel uint32 `bson:"role_level"`
|
//RoleLevel uint32 `bson:"role_level"`
|
||||||
|
|
||||||
//Fields
|
//Fields
|
||||||
LoginTime int64 `bson:"login_time"`
|
LoginTime int64 `bson:"login_time"`
|
||||||
@ -75,9 +75,9 @@ type Player struct {
|
|||||||
Item map[uint32]*PlayerItem `bson:"item"`
|
Item map[uint32]*PlayerItem `bson:"item"`
|
||||||
Equip map[uint64]*PlayerEquip `bson:"rig_equip"`
|
Equip map[uint64]*PlayerEquip `bson:"rig_equip"`
|
||||||
//GiftPack map[uint32]*PlayerGiftPack `bson:"gift_pack"`
|
//GiftPack map[uint32]*PlayerGiftPack `bson:"gift_pack"`
|
||||||
//Mail map[uint64]*PlayerMail `bson:"mail"`
|
|
||||||
Lineup map[uint64]*PlayerLineup `bson:"lineup"`
|
Lineup map[uint64]*PlayerLineup `bson:"lineup"`
|
||||||
Money map[uint32]*PlayerMoney `bson:"money"`
|
//Mail map[uint64]*PlayerMail `bson:"mail"`
|
||||||
|
Money map[uint32]*PlayerMoney `bson:"money"`
|
||||||
//MonthlyCard map[uint32]*PlayerMonthlyCard `bson:"monthly_card"`
|
//MonthlyCard map[uint32]*PlayerMonthlyCard `bson:"monthly_card"`
|
||||||
//Planet map[uint32]*PlayerPlanet `bson:"planet"`
|
//Planet map[uint32]*PlayerPlanet `bson:"planet"`
|
||||||
//RawStone map[uint32]*PlayerRawStone `bson:"raw_stone"`
|
//RawStone map[uint32]*PlayerRawStone `bson:"raw_stone"`
|
||||||
|
@ -184,16 +184,8 @@ func (this *Player) initHeroes(cur *GameTime) {
|
|||||||
|
|
||||||
func (this *Player) initItems(cur *GameTime) {
|
func (this *Player) initItems(cur *GameTime) {
|
||||||
var itemIds, itemNums = this.manager.tables.ServerConfig.GetInitItems()
|
var itemIds, itemNums = this.manager.tables.ServerConfig.GetInitItems()
|
||||||
for i, itemId := range itemIds {
|
for i := range itemIds {
|
||||||
var itemNum = itemNums[i]
|
this.AddItem(uint32(itemIds[i]), uint32(itemNums[i]), 0)
|
||||||
|
|
||||||
var itemTable = this.manager.tables.Item.Find1(itemId)
|
|
||||||
if itemTable == nil {
|
|
||||||
this.manager.logger.Error("find item table failed, itemId: ", itemId)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
_ = this.addItem(itemTable, uint32(itemNum), 0)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -279,7 +271,7 @@ func (this *Player) initPower(cur *GameTime) {
|
|||||||
func (this *Player) checkCorrectFirstLogin(cur *GameTime) {
|
func (this *Player) checkCorrectFirstLogin(cur *GameTime) {
|
||||||
this.initRole(cur)
|
this.initRole(cur)
|
||||||
this.initHeroes(cur)
|
this.initHeroes(cur)
|
||||||
//this.initItems(cur)
|
this.initItems(cur)
|
||||||
this.initLineup(cur)
|
this.initLineup(cur)
|
||||||
//this.initMails(cur)
|
//this.initMails(cur)
|
||||||
//this.initTasks(cur)
|
//this.initTasks(cur)
|
||||||
@ -288,27 +280,12 @@ func (this *Player) checkCorrectFirstLogin(cur *GameTime) {
|
|||||||
|
|
||||||
func (this *Player) checkCorrectMemoryData(cur *GameTime) {
|
func (this *Player) checkCorrectMemoryData(cur *GameTime) {
|
||||||
this.initTemp()
|
this.initTemp()
|
||||||
|
this.UpdateHeroAttrs(this.RoleHero)
|
||||||
for _, hero := range this.Hero {
|
for _, hero := range this.Hero {
|
||||||
this.UpdateHeroAttrs(hero)
|
this.UpdateHeroAttrs(hero)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//func (this *Player) checkWechatUserInfo(cur *GameTime) {
|
|
||||||
// switch data_old.Channel(this.Channel) {
|
|
||||||
// case data_old.ChannelWechatMiniGame, data_old.ChannelTapTap:
|
|
||||||
// if this.Temp.ThirdData != nil {
|
|
||||||
// if this.RoleName != this.Temp.ThirdData.NickName {
|
|
||||||
// this.RoleName = this.Temp.ThirdData.NickName
|
|
||||||
// this.SaveField("role_name", this.RoleName)
|
|
||||||
// }
|
|
||||||
// if this.Avatar != this.Temp.ThirdData.AvatarUrl {
|
|
||||||
// this.Avatar = this.Temp.ThirdData.AvatarUrl
|
|
||||||
// this.SaveField("avatar", this.Avatar)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
func (this *Player) checkCorrectPower(cur *GameTime) {
|
func (this *Player) checkCorrectPower(cur *GameTime) {
|
||||||
var money = this.GetMoney(pb.MoneyType_Power)
|
var money = this.GetMoney(pb.MoneyType_Power)
|
||||||
if money.Value >= uint32(RolePowerMax) || this.PowerNextTime > cur.Timestamp {
|
if money.Value >= uint32(RolePowerMax) || this.PowerNextTime > cur.Timestamp {
|
||||||
|
@ -65,17 +65,17 @@ func (this *Player) AddEquip(equipId uint32, logType LogType) bool {
|
|||||||
return this.addEquip(equipTable, logType)
|
return this.addEquip(equipTable, logType)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) AddEquips(equipId, nums uint32, logType LogType) {
|
func (this *Player) AddEquips(equipId, nums uint32, logType LogType) bool {
|
||||||
var equipTable = this.manager.tables.Equip.Find(int(equipId))
|
var equipTable = this.manager.tables.Equip.Find(int(equipId))
|
||||||
if equipTable == nil {
|
if equipTable == nil {
|
||||||
this.manager.logger.Errorf("Find equip table failed, equipId: %d, level: %d", equipId, 1)
|
this.manager.logger.Errorf("Find equip table failed, equipId: %d, level: %d", equipId, 1)
|
||||||
return
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
var equipLevelTable = this.manager.tables.EquipLevel.Find3(equipTable.Id, 1)
|
var equipLevelTable = this.manager.tables.EquipLevel.Find3(equipTable.Id, 1)
|
||||||
if equipLevelTable == nil {
|
if equipLevelTable == nil {
|
||||||
this.manager.logger.Errorf("Find equip level table failed, equipId %d, level: %d", equipTable.Id, 1)
|
this.manager.logger.Errorf("Find equip level table failed, equipId %d, level: %d", equipTable.Id, 1)
|
||||||
return
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if nums < 1 {
|
if nums < 1 {
|
||||||
@ -105,43 +105,9 @@ func (this *Player) AddEquips(equipId, nums uint32, logType LogType) {
|
|||||||
_ = this.Send(uint16(pb.ModId_ModuleItem), uint16(pb.MsgId_ModItemEquipChange), &pb.EquipChangeListAck{
|
_ = this.Send(uint16(pb.ModId_ModuleItem), uint16(pb.MsgId_ModItemEquipChange), &pb.EquipChangeListAck{
|
||||||
ChangeList: changeList,
|
ChangeList: changeList,
|
||||||
})
|
})
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
//func (this *Player) SetupRigEquip(index uint32, equip *PlayerRigEquip) {
|
|
||||||
// var list []*proto.RigEquipChange
|
|
||||||
// var setupId = this.Rig.Equips[index]
|
|
||||||
// if equip == nil {
|
|
||||||
// if setupId == 0 {
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// this.Rig.Equips[index] = 0
|
|
||||||
// } else {
|
|
||||||
// this.Rig.Equips[index] = equip.ItemId
|
|
||||||
//
|
|
||||||
// equip.Setup = true
|
|
||||||
// this.SaveModel(equip)
|
|
||||||
//
|
|
||||||
// list = append(list, &proto.RigEquipChange{RigEquip: equip.BuildMsgRigEquip(), ChangeType: uint32(proto.ChangeTypeChange)})
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// this.SaveField("rig.equips", this.Rig.Equips)
|
|
||||||
//
|
|
||||||
// if setupId > 0 {
|
|
||||||
// if setupEquip := this.RigEquip[setupId]; setupEquip != nil {
|
|
||||||
// setupEquip.Setup = false
|
|
||||||
// this.SaveModel(setupEquip)
|
|
||||||
//
|
|
||||||
// list = append(list, &proto.RigEquipChange{RigEquip: setupEquip.BuildMsgRigEquip(), ChangeType: uint32(proto.ChangeTypeChange)})
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// _ = this.Send(proto.ModIdRig, proto.MsgIdRigEquipChange, &proto.MsgRigEquipChangeListAck{
|
|
||||||
// List: list,
|
|
||||||
// })
|
|
||||||
//
|
|
||||||
// this.UpdateRigAttrs()
|
|
||||||
//}
|
|
||||||
|
|
||||||
func (this *Player) BuildMsgEquipListAck() *pb.EquipListAck {
|
func (this *Player) BuildMsgEquipListAck() *pb.EquipListAck {
|
||||||
var list []*pb.Equip
|
var list []*pb.Equip
|
||||||
for _, equip := range this.Equip {
|
for _, equip := range this.Equip {
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package logic
|
package logic
|
||||||
|
|
||||||
func (this *Player) CheckFunctionOpen(funcMod, funcType, funcId int) bool {
|
import "ecs/proto/pb"
|
||||||
var functionOpen = this.manager.tables.FunctionOpen.Find2(funcMod, funcType, funcId)
|
|
||||||
|
func (this *Player) CheckFunctionOpen(funcMod pb.ModId, funcType pb.FuncType, funcId int) bool {
|
||||||
|
var functionOpen = this.manager.tables.FunctionOpen.Find2(int(funcMod), int(funcType), funcId)
|
||||||
if functionOpen == nil {
|
if functionOpen == nil {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -13,7 +15,7 @@ func (this *Player) CheckFunctionOpen(funcMod, funcType, funcId int) bool {
|
|||||||
continue
|
continue
|
||||||
case 1:
|
case 1:
|
||||||
if functionOpen.UnlockArgs[i] > 0 {
|
if functionOpen.UnlockArgs[i] > 0 {
|
||||||
if this.RoleLevel < uint32(functionOpen.UnlockArgs[i]) {
|
if this.RoleHero.Level < uint32(functionOpen.UnlockArgs[i]) {
|
||||||
yes = false
|
yes = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -197,17 +197,26 @@ func (this *Player) calcHeroBondAttrs(hero *PlayerHero, lineup *PlayerLineup, li
|
|||||||
bondIdMap[bondId] = struct{}{}
|
bondIdMap[bondId] = struct{}{}
|
||||||
}
|
}
|
||||||
|
|
||||||
for lhi := range lineup.Heroes {
|
for hi := range lineup.Heroes {
|
||||||
if lineup.Heroes[i] == nil {
|
if lineup.Heroes[i] == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if another, ok := this.Hero[lineup.Heroes[lhi].HeroUid]; ok {
|
if another, ok := this.Hero[lineup.Heroes[hi].HeroUid]; ok {
|
||||||
delete(bondIdMap, int(another.Id))
|
delete(bondIdMap, int(another.Id))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//所有羁绊英雄要全部上阵
|
for hi := range lineup.Helper {
|
||||||
|
if lineup.Helper[hi] == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if helper, ok := this.Hero[lineup.Helper[hi]]; ok {
|
||||||
|
delete(bondIdMap, int(helper.Id))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
yes = len(bondIdMap) == 0
|
yes = len(bondIdMap) == 0
|
||||||
}
|
}
|
||||||
if yes {
|
if yes {
|
||||||
@ -247,9 +256,9 @@ func (this *Player) calcHeroTreasuresAttrs(hero *PlayerHero, lineup *PlayerLineu
|
|||||||
}
|
}
|
||||||
|
|
||||||
var treasure = this.Treasure[treasureUid]
|
var treasure = this.Treasure[treasureUid]
|
||||||
var equipLevelTable = this.manager.tables.TreasureLevel.Find3(int(treasure.Id), int(treasure.Level))
|
var treasureLevelTable = this.manager.tables.TreasureLevel.Find3(int(treasure.Id), int(treasure.Level))
|
||||||
if equipLevelTable != nil {
|
if treasureLevelTable != nil {
|
||||||
attrs[equipLevelTable.AttrType] += uint64(equipLevelTable.AttrValue)
|
attrs[treasureLevelTable.AttrType] += uint64(treasureLevelTable.AttrValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
@ -15,18 +15,19 @@ func (this *PlayerItem) BuildMsgItem() *pb.Item {
|
|||||||
return &pb.Item{ItemId: this.Id, ItemNum: this.Num}
|
return &pb.Item{ItemId: this.Id, ItemNum: this.Num}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) addItem(itemTable *data.Item, itemNum uint32, logType LogType) *pb.ItemChange {
|
func (this *Player) addItemDirect(itemTable *data.Item, itemNum uint32, logType LogType) *pb.ItemChange {
|
||||||
var changeType = pb.ChangeType_Changed
|
var changeType = pb.ChangeType_Changed
|
||||||
var item = this.Item[uint32(itemTable.Id)]
|
var item = this.Item[uint32(itemTable.Id)]
|
||||||
|
|
||||||
if item == nil {
|
if item == nil {
|
||||||
item = &PlayerItem{Id: uint32(itemTable.Id)}
|
item = &PlayerItem{Id: uint32(itemTable.Id), Num: itemNum}
|
||||||
this.Item[item.Id] = item
|
this.Item[item.Id] = item
|
||||||
|
|
||||||
changeType = pb.ChangeType_Add
|
changeType = pb.ChangeType_Add
|
||||||
|
} else {
|
||||||
|
item.Num += itemNum
|
||||||
}
|
}
|
||||||
|
|
||||||
item.Num += itemNum
|
|
||||||
|
|
||||||
this.SaveModel(item)
|
this.SaveModel(item)
|
||||||
|
|
||||||
//this.CheckTask(proto.TaskSection1CollectSpecificItem, itemTable.Id, int(itemNum))
|
//this.CheckTask(proto.TaskSection1CollectSpecificItem, itemTable.Id, int(itemNum))
|
||||||
@ -38,6 +39,43 @@ func (this *Player) addItem(itemTable *data.Item, itemNum uint32, logType LogTyp
|
|||||||
return &pb.ItemChange{ChangeType: changeType, Item: item.BuildMsgItem()}
|
return &pb.ItemChange{ChangeType: changeType, Item: item.BuildMsgItem()}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *Player) addItem(itemTable *data.Item, itemNum uint32, logType LogType) (itemChange *pb.ItemChange, ok bool) {
|
||||||
|
switch pb.ItemType(itemTable.Type) {
|
||||||
|
case pb.ItemType_ItemProp:
|
||||||
|
itemChange = this.addItemDirect(itemTable, itemNum, logType)
|
||||||
|
case pb.ItemType_ItemMoney:
|
||||||
|
ok = this.AddMoney(pb.MoneyType(itemTable.SubType), itemNum, logType)
|
||||||
|
case pb.ItemType_ItemHero:
|
||||||
|
if pb.HeroType(itemTable.SubType) == pb.HeroType_HeroPiece {
|
||||||
|
itemChange = this.addItemDirect(itemTable, itemNum, logType)
|
||||||
|
} else {
|
||||||
|
ok = this.AddHero(uint32(itemTable.Value))
|
||||||
|
}
|
||||||
|
case pb.ItemType_ItemEquip:
|
||||||
|
if pb.EquipType(itemTable.SubType) == pb.EquipType_EquipPiece {
|
||||||
|
itemChange = this.addItemDirect(itemTable, itemNum, logType)
|
||||||
|
} else {
|
||||||
|
this.AddEquips(uint32(itemTable.Id), itemNum, logType)
|
||||||
|
}
|
||||||
|
case pb.ItemType_ItemTreasure:
|
||||||
|
if pb.TreasureType(itemTable.SubType) == pb.TreasureType_TreasurePiece {
|
||||||
|
itemChange = this.addItemDirect(itemTable, itemNum, logType)
|
||||||
|
} else {
|
||||||
|
this.AddTreasures(uint32(itemTable.Id), itemNum, logType)
|
||||||
|
}
|
||||||
|
case pb.ItemType_ItemArtifact:
|
||||||
|
case pb.ItemType_ItemSack:
|
||||||
|
case pb.ItemType_ItemOrnament:
|
||||||
|
case pb.ItemType_ItemFateChart:
|
||||||
|
case pb.ItemType_ItemGem:
|
||||||
|
case pb.ItemType_ItemArtifactGem:
|
||||||
|
case pb.ItemType_ItemAwakenProp:
|
||||||
|
case pb.ItemType_ItemGeneral:
|
||||||
|
case pb.ItemType_ItemTetris:
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func (this *Player) useItem(itemTable *data.Item, itemNum uint32, logType LogType) bool {
|
func (this *Player) useItem(itemTable *data.Item, itemNum uint32, logType LogType) bool {
|
||||||
switch pb.ItemType(itemTable.Type) {
|
switch pb.ItemType(itemTable.Type) {
|
||||||
case pb.ItemType_ItemMoney:
|
case pb.ItemType_ItemMoney:
|
||||||
@ -50,7 +88,7 @@ func (this *Player) useItem(itemTable *data.Item, itemNum uint32, logType LogTyp
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) AddItem(itemId, itemNum uint32, logType LogType) bool {
|
func (this *Player) AddItem(itemId, itemNum uint32, logType LogType) bool {
|
||||||
var itemTable = this.manager.tables.Item.Get(int(itemId))
|
var itemTable = this.manager.tables.Item.Find1(int(itemId))
|
||||||
if itemTable == nil {
|
if itemTable == nil {
|
||||||
this.manager.logger.Error("Find item table failed, itemId: ", itemId)
|
this.manager.logger.Error("Find item table failed, itemId: ", itemId)
|
||||||
return false
|
return false
|
||||||
@ -60,30 +98,11 @@ func (this *Player) AddItem(itemId, itemNum uint32, logType LogType) bool {
|
|||||||
return this.useItem(itemTable, itemNum, logType)
|
return this.useItem(itemTable, itemNum, logType)
|
||||||
}
|
}
|
||||||
|
|
||||||
var itemChange *pb.ItemChange
|
itemChange, ok := this.addItem(itemTable, itemNum, logType)
|
||||||
switch pb.ItemType(itemTable.Type) {
|
|
||||||
case pb.ItemType_ItemProp:
|
|
||||||
itemChange = this.addItem(itemTable, itemNum, logType)
|
|
||||||
case pb.ItemType_ItemMoney:
|
|
||||||
this.AddMoney(pb.MoneyType(itemTable.SubType), itemNum, logType)
|
|
||||||
case pb.ItemType_ItemEquip:
|
|
||||||
this.AddEquips(uint32(itemTable.Id), itemNum, logType)
|
|
||||||
case pb.ItemType_ItemTreasure:
|
|
||||||
case pb.ItemType_ItemArtifact:
|
|
||||||
case pb.ItemType_ItemSack:
|
|
||||||
case pb.ItemType_ItemOrnament:
|
|
||||||
case pb.ItemType_ItemFateChart:
|
|
||||||
case pb.ItemType_ItemGem:
|
|
||||||
case pb.ItemType_ItemArtifactGem:
|
|
||||||
case pb.ItemType_ItemAwakenProp:
|
|
||||||
case pb.ItemType_ItemGeneral:
|
|
||||||
case pb.ItemType_ItemTetris:
|
|
||||||
}
|
|
||||||
|
|
||||||
if itemChange != nil {
|
if itemChange != nil {
|
||||||
_ = this.Send(uint16(pb.ModId_ModuleItem), uint16(pb.MsgId_ModItemChange), &pb.ItemChangeListAck{ChangeList: []*pb.ItemChange{itemChange}})
|
_ = this.Send(uint16(pb.ModId_ModuleItem), uint16(pb.MsgId_ModItemChange), &pb.ItemChangeListAck{ChangeList: []*pb.ItemChange{itemChange}})
|
||||||
}
|
}
|
||||||
return true
|
return ok
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) AddItems(itemMap map[uint32]uint32, logType LogType) {
|
func (this *Player) AddItems(itemMap map[uint32]uint32, logType LogType) {
|
||||||
@ -98,26 +117,7 @@ func (this *Player) AddItems(itemMap map[uint32]uint32, logType LogType) {
|
|||||||
if itemTable.UseDirect {
|
if itemTable.UseDirect {
|
||||||
this.useItem(itemTable, itemNum, logType)
|
this.useItem(itemTable, itemNum, logType)
|
||||||
} else {
|
} else {
|
||||||
var itemChange *pb.ItemChange
|
itemChange, _ := this.addItem(itemTable, itemNum, logType)
|
||||||
switch pb.ItemType(itemTable.Type) {
|
|
||||||
case pb.ItemType_ItemMoney:
|
|
||||||
this.AddMoney(pb.MoneyType(itemTable.SubType), itemNum, logType)
|
|
||||||
case pb.ItemType_ItemProp:
|
|
||||||
itemChange = this.addItem(itemTable, itemNum, logType)
|
|
||||||
case pb.ItemType_ItemEquip:
|
|
||||||
this.AddEquips(uint32(itemTable.Id), itemNum, logType)
|
|
||||||
case pb.ItemType_ItemTreasure:
|
|
||||||
case pb.ItemType_ItemArtifact:
|
|
||||||
case pb.ItemType_ItemSack:
|
|
||||||
case pb.ItemType_ItemOrnament:
|
|
||||||
case pb.ItemType_ItemFateChart:
|
|
||||||
case pb.ItemType_ItemGem:
|
|
||||||
case pb.ItemType_ItemArtifactGem:
|
|
||||||
case pb.ItemType_ItemAwakenProp:
|
|
||||||
case pb.ItemType_ItemGeneral:
|
|
||||||
case pb.ItemType_ItemTetris:
|
|
||||||
}
|
|
||||||
|
|
||||||
if itemChange != nil {
|
if itemChange != nil {
|
||||||
changeList = append(changeList, itemChange)
|
changeList = append(changeList, itemChange)
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,8 @@ type PlayerLineup struct {
|
|||||||
Uid uint64 `json:"uid" key:"1"`
|
Uid uint64 `json:"uid" key:"1"`
|
||||||
Name string `bson:"name"`
|
Name string `bson:"name"`
|
||||||
Active bool `bson:"active"`
|
Active bool `bson:"active"`
|
||||||
Heroes [8]*PlayerLineupHero `json:"heroes"`
|
Heroes [8]*PlayerLineupHero `bson:"heroes"`
|
||||||
|
Helper [8]uint64 `bson:"helper"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *PlayerLineup) BuildMsgLineup() *pb.Lineup {
|
func (this *PlayerLineup) BuildMsgLineup() *pb.Lineup {
|
||||||
@ -21,6 +22,9 @@ func (this *PlayerLineup) BuildMsgLineup() *pb.Lineup {
|
|||||||
msg.HeroList[i] = hero.BuildMsgLineupHero(uint32(i))
|
msg.HeroList[i] = hero.BuildMsgLineupHero(uint32(i))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for _, helper := range this.Helper {
|
||||||
|
msg.HelpList = append(msg.HelpList, helper)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return msg
|
return msg
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ func (this *Player) GetMoney(moneyType pb.MoneyType) *PlayerMoney {
|
|||||||
return money
|
return money
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) AddMoney(moneyType pb.MoneyType, value uint32, logType LogType) {
|
func (this *Player) AddMoney(moneyType pb.MoneyType, value uint32, logType LogType) bool {
|
||||||
switch moneyType {
|
switch moneyType {
|
||||||
case pb.MoneyType_Exp:
|
case pb.MoneyType_Exp:
|
||||||
this.addExp(value, logType)
|
this.addExp(value, logType)
|
||||||
@ -33,6 +33,7 @@ func (this *Player) AddMoney(moneyType pb.MoneyType, value uint32, logType LogTy
|
|||||||
default:
|
default:
|
||||||
this.addMoney(moneyType, value, logType)
|
this.addMoney(moneyType, value, logType)
|
||||||
}
|
}
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) CheckMoney(moneyType pb.MoneyType, value uint32) (bool, proto.TipError) {
|
func (this *Player) CheckMoney(moneyType pb.MoneyType, value uint32) (bool, proto.TipError) {
|
||||||
@ -134,11 +135,6 @@ func (this *Player) addExp(value uint32, logType LogType) {
|
|||||||
roleHero.Level = curLevel
|
roleHero.Level = curLevel
|
||||||
this.SaveModel(roleHero)
|
this.SaveModel(roleHero)
|
||||||
|
|
||||||
this.RoleExp = roleHero.Exp
|
|
||||||
this.RoleLevel = roleHero.Level
|
|
||||||
this.SaveField("role_exp", this.RoleExp)
|
|
||||||
this.SaveField("role_level", this.RoleLevel)
|
|
||||||
|
|
||||||
_ = this.Send(uint16(pb.MsgId_ModHeroChange), uint16(pb.MsgId_ModHeroChange), &pb.HeroChangeListAck{
|
_ = this.Send(uint16(pb.MsgId_ModHeroChange), uint16(pb.MsgId_ModHeroChange), &pb.HeroChangeListAck{
|
||||||
ChangeList: []*pb.HeroChange{{ChangeType: pb.ChangeType_Changed, Hero: roleHero.BuildMsgHero()}},
|
ChangeList: []*pb.HeroChange{{ChangeType: pb.ChangeType_Changed, Hero: roleHero.BuildMsgHero()}},
|
||||||
})
|
})
|
||||||
|
@ -17,6 +17,10 @@ func (this *PlayerTreasure) BuildMsgTreasure() *pb.Treasure {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *Player) AddTreasures(equipId, nums uint32, logType LogType) bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func (this *Player) BuildMsgTreasureListAck() *pb.TreasureListAck {
|
func (this *Player) BuildMsgTreasureListAck() *pb.TreasureListAck {
|
||||||
var list []*pb.Treasure
|
var list []*pb.Treasure
|
||||||
for _, treasure := range this.Treasure {
|
for _, treasure := range this.Treasure {
|
||||||
|
@ -162,6 +162,7 @@ func (this *gameServer) Init() (err error) {
|
|||||||
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHeroMounts), this.playerHandler.LineupHeroMounts)
|
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHeroMounts), this.playerHandler.LineupHeroMounts)
|
||||||
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHeroGeneral), this.playerHandler.LineupHeroGeneral)
|
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHeroGeneral), this.playerHandler.LineupHeroGeneral)
|
||||||
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHeroOrnament), this.playerHandler.LineupHeroOrnament)
|
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHeroOrnament), this.playerHandler.LineupHeroOrnament)
|
||||||
|
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupHelperChange), this.playerHandler.LineupHelperChange)
|
||||||
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupCreate), this.playerHandler.LineupCreate)
|
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupCreate), this.playerHandler.LineupCreate)
|
||||||
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupChangeName), this.playerHandler.LineupChangeName)
|
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupChangeName), this.playerHandler.LineupChangeName)
|
||||||
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupActivate), this.playerHandler.LineupActivate)
|
this.playerManager.Handler(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleLineupActivate), this.playerHandler.LineupActivate)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user