布阵相关(包括英雄更换,装备、宝物等穿戴/卸下)
This commit is contained in:
parent
f0d52a95bb
commit
29a28a20bf
@ -172,9 +172,7 @@ enum EquipType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum TreasureType {
|
enum TreasureType {
|
||||||
TreasureTypeNone = 0;
|
WarBook = 0;
|
||||||
|
|
||||||
WarBook = 1;
|
|
||||||
|
|
||||||
WarToken = 2;
|
WarToken = 2;
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ message MoneyListAck {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message BattleHero {
|
message BattleHero {
|
||||||
uint32 Position = 1; //位置0开始
|
uint32 Position = 1; //布阵位置,从0开始, 范围0-7
|
||||||
uint64 HeroUid = 2;
|
uint64 HeroUid = 2;
|
||||||
uint64 Capacity = 3;
|
uint64 Capacity = 3;
|
||||||
repeated uint64 Equip = 4;
|
repeated uint64 Equip = 4;
|
||||||
@ -122,16 +122,16 @@ message BattleHeroChangeReq {
|
|||||||
// 布阵英雄装备变更请求
|
// 布阵英雄装备变更请求
|
||||||
message BattleHeroEquipReq {
|
message BattleHeroEquipReq {
|
||||||
uint32 Position = 1;
|
uint32 Position = 1;
|
||||||
EquipType EquipType = 2;
|
EquipType EquipType = 2; // 要传,不然Uid为0时不知道是什么类型的装备
|
||||||
uint64 EquipUid = 3;
|
uint64 EquipUid = 3; // 传0为卸下装备
|
||||||
}
|
}
|
||||||
|
|
||||||
// ModRoleBattleHeroTreasure: 2010
|
// ModRoleBattleHeroTreasure: 2010
|
||||||
// 布阵英雄宝物变更请求
|
// 布阵英雄宝物变更请求
|
||||||
message BattleHeroTreasureReq {
|
message BattleHeroTreasureReq {
|
||||||
uint32 Position = 1;
|
uint32 Position = 1;
|
||||||
TreasureType TreasureType = 2;
|
TreasureType TreasureType = 2; // 要传,不然Uid为0时不知道是什么类型的宝物
|
||||||
uint64 TreasureUid = 3;
|
uint64 TreasureUid = 3; // 传0为卸下宝物
|
||||||
}
|
}
|
||||||
|
|
||||||
// ModRoleBattleHeroArtifact: 2011
|
// ModRoleBattleHeroArtifact: 2011
|
||||||
|
@ -174,12 +174,6 @@ func (this *PlayerHandler) BattleHeroEquip(player *logic.Player, msg *net.Messag
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if req.EquipUid == 0 {
|
|
||||||
this.logger.Error("Parameter error, req.EquipUid: ", req.EquipUid)
|
|
||||||
_ = player.TipNotice(proto.TipParameterError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if !player.CheckFunctionOpen(int(pb.ModId_ModuleRole), 1, int(req.Position)) {
|
if !player.CheckFunctionOpen(int(pb.ModId_ModuleRole), 1, int(req.Position)) {
|
||||||
_ = player.TipNotice(proto.TipFunctionNotUnlocked)
|
_ = player.TipNotice(proto.TipFunctionNotUnlocked)
|
||||||
return
|
return
|
||||||
@ -197,7 +191,9 @@ func (this *PlayerHandler) BattleHeroEquip(player *logic.Player, msg *net.Messag
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var equip = player.Equip[req.EquipUid]
|
var equip *logic.PlayerEquip
|
||||||
|
if req.EquipUid != 0 {
|
||||||
|
equip = player.Equip[req.EquipUid]
|
||||||
if equip == nil {
|
if equip == nil {
|
||||||
_ = player.TipNotice(proto.TipEquipNotFound)
|
_ = player.TipNotice(proto.TipEquipNotFound)
|
||||||
return
|
return
|
||||||
@ -213,49 +209,38 @@ func (this *PlayerHandler) BattleHeroEquip(player *logic.Player, msg *net.Messag
|
|||||||
_ = player.TipNotice(proto.TipParameterError)
|
_ = player.TipNotice(proto.TipParameterError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var equipIndex = 0
|
|
||||||
switch pb.EquipType(equipTable.Type) {
|
|
||||||
case pb.EquipType_Weapon:
|
|
||||||
equipIndex = 0
|
|
||||||
case pb.EquipType_Hat:
|
|
||||||
equipIndex = 1
|
|
||||||
case pb.EquipType_Cloth:
|
|
||||||
equipIndex = 2
|
|
||||||
case pb.EquipType_Shoe:
|
|
||||||
equipIndex = 3
|
|
||||||
default:
|
|
||||||
_ = player.TipNotice(proto.TipDataTablesError)
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var equipIndex = int(req.EquipType)
|
||||||
|
|
||||||
var battleHeroList []*pb.BattleHero
|
var battleHeroList []*pb.BattleHero
|
||||||
var equipChangeList []*pb.EquipChange
|
var equipChangeList []*pb.EquipChange
|
||||||
|
|
||||||
if battleHero.Equip[equipIndex] != 0 {
|
if battleHero.Equip[equipIndex] != 0 {
|
||||||
var setup = player.Equip[battleHero.Equip[equipIndex]]
|
var preEquip = player.Equip[battleHero.Equip[equipIndex]]
|
||||||
if setup != nil && setup.HeroUid != 0 {
|
if preEquip != nil && preEquip.HeroUid != 0 {
|
||||||
setup.Id = 0
|
preEquip.HeroUid = 0
|
||||||
player.SaveModel(setup)
|
player.SaveModel(preEquip)
|
||||||
equipChangeList = append(equipChangeList, &pb.EquipChange{
|
equipChangeList = append(equipChangeList, &pb.EquipChange{
|
||||||
ChangeType: pb.ChangeType_Changed,
|
ChangeType: pb.ChangeType_Changed,
|
||||||
Equip: setup.BuildMsgEquip(),
|
Equip: preEquip.BuildMsgEquip(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
battleHero.Equip[equipIndex] = equip.Uid
|
battleHero.Equip[equipIndex] = req.EquipUid
|
||||||
player.SaveArray("battle_heroes", int(req.Position), battleHero)
|
player.SaveArray("battle_heroes", int(req.Position), battleHero)
|
||||||
battleHeroList = append(battleHeroList, battleHero.BuildMsgBattleHero(int(req.Position)))
|
battleHeroList = append(battleHeroList, battleHero.BuildMsgBattleHero(int(req.Position)))
|
||||||
|
|
||||||
|
if equip != nil {
|
||||||
if equip.HeroUid != 0 {
|
if equip.HeroUid != 0 {
|
||||||
for i := range player.BattleHeroes {
|
for i := range player.BattleHeroes {
|
||||||
if player.BattleHeroes[i].HeroUid == equip.HeroUid {
|
if player.BattleHeroes[i].HeroUid == equip.HeroUid {
|
||||||
var setup = player.BattleHeroes[i]
|
var preBattleHero = player.BattleHeroes[i]
|
||||||
if setup.Equip[equipIndex] != 0 {
|
if preBattleHero.Equip[equipIndex] != 0 {
|
||||||
setup.Equip[equipIndex] = 0
|
preBattleHero.Equip[equipIndex] = 0
|
||||||
player.SaveArray("battle_heroes", i, setup)
|
player.SaveArray("battle_heroes", i, preBattleHero)
|
||||||
battleHeroList = append(battleHeroList, setup.BuildMsgBattleHero(i))
|
battleHeroList = append(battleHeroList, preBattleHero.BuildMsgBattleHero(i))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -267,6 +252,7 @@ func (this *PlayerHandler) BattleHeroEquip(player *logic.Player, msg *net.Messag
|
|||||||
ChangeType: pb.ChangeType_Changed,
|
ChangeType: pb.ChangeType_Changed,
|
||||||
Equip: equip.BuildMsgEquip(),
|
Equip: equip.BuildMsgEquip(),
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleBattleHeroChange), &pb.BattleHeroListAck{HeroList: battleHeroList})
|
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleBattleHeroChange), &pb.BattleHeroListAck{HeroList: battleHeroList})
|
||||||
_ = 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})
|
||||||
@ -294,12 +280,6 @@ func (this *PlayerHandler) BattleHeroTreasure(player *logic.Player, msg *net.Mes
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if req.TreasureUid == 0 {
|
|
||||||
this.logger.Error("Parameter error, req.TreasureUid: ", req.TreasureUid)
|
|
||||||
_ = player.TipNotice(proto.TipParameterError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if !player.CheckFunctionOpen(int(pb.ModId_ModuleRole), 1, int(req.Position)) {
|
if !player.CheckFunctionOpen(int(pb.ModId_ModuleRole), 1, int(req.Position)) {
|
||||||
_ = player.TipNotice(proto.TipFunctionNotUnlocked)
|
_ = player.TipNotice(proto.TipFunctionNotUnlocked)
|
||||||
return
|
return
|
||||||
@ -317,7 +297,9 @@ func (this *PlayerHandler) BattleHeroTreasure(player *logic.Player, msg *net.Mes
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var treasure = player.Treasure[req.TreasureUid]
|
var treasure *logic.PlayerTreasure
|
||||||
|
if req.TreasureUid != 0 {
|
||||||
|
treasure = player.Treasure[req.TreasureUid]
|
||||||
if treasure == nil {
|
if treasure == nil {
|
||||||
_ = player.TipNotice(proto.TipTreasureNotFound)
|
_ = player.TipNotice(proto.TipTreasureNotFound)
|
||||||
return
|
return
|
||||||
@ -333,45 +315,38 @@ func (this *PlayerHandler) BattleHeroTreasure(player *logic.Player, msg *net.Mes
|
|||||||
_ = player.TipNotice(proto.TipParameterError)
|
_ = player.TipNotice(proto.TipParameterError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var treasureIndex = 0
|
|
||||||
switch pb.TreasureType(treasureTable.Type) {
|
|
||||||
case pb.TreasureType_WarBook:
|
|
||||||
treasureIndex = 0
|
|
||||||
case pb.TreasureType_WarToken:
|
|
||||||
treasureIndex = 1
|
|
||||||
default:
|
|
||||||
_ = player.TipNotice(proto.TipDataTablesError)
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var treasureIndex = int(req.TreasureType)
|
||||||
|
|
||||||
var battleHeroList []*pb.BattleHero
|
var battleHeroList []*pb.BattleHero
|
||||||
var treasureChangeList []*pb.TreasureChange
|
var treasureChangeList []*pb.TreasureChange
|
||||||
|
|
||||||
if battleHero.Treasure[treasureIndex] != 0 {
|
if battleHero.Treasure[treasureIndex] != 0 {
|
||||||
var setup = player.Treasure[battleHero.Treasure[treasureIndex]]
|
var preTreasure = player.Treasure[battleHero.Treasure[treasureIndex]]
|
||||||
if setup != nil && setup.HeroUid != 0 {
|
if preTreasure != nil && preTreasure.HeroUid != 0 {
|
||||||
setup.Id = 0
|
preTreasure.HeroUid = 0
|
||||||
player.SaveModel(setup)
|
player.SaveModel(preTreasure)
|
||||||
treasureChangeList = append(treasureChangeList, &pb.TreasureChange{
|
treasureChangeList = append(treasureChangeList, &pb.TreasureChange{
|
||||||
ChangeType: pb.ChangeType_Changed,
|
ChangeType: pb.ChangeType_Changed,
|
||||||
Treasure: setup.BuildMsgTreasure(),
|
Treasure: preTreasure.BuildMsgTreasure(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
battleHero.Treasure[treasureIndex] = treasure.Uid
|
battleHero.Treasure[treasureIndex] = req.TreasureUid
|
||||||
player.SaveArray("battle_heroes", int(req.Position), battleHero)
|
player.SaveArray("battle_heroes", int(req.Position), battleHero)
|
||||||
battleHeroList = append(battleHeroList, battleHero.BuildMsgBattleHero(int(req.Position)))
|
battleHeroList = append(battleHeroList, battleHero.BuildMsgBattleHero(int(req.Position)))
|
||||||
|
|
||||||
|
if treasure != nil {
|
||||||
if treasure.HeroUid != 0 {
|
if treasure.HeroUid != 0 {
|
||||||
for i := range player.BattleHeroes {
|
for i := range player.BattleHeroes {
|
||||||
if player.BattleHeroes[i].HeroUid == treasure.HeroUid {
|
if player.BattleHeroes[i].HeroUid == treasure.HeroUid {
|
||||||
var setup = player.BattleHeroes[i]
|
var preBattleHero = player.BattleHeroes[i]
|
||||||
if setup.Treasure[treasureIndex] != 0 {
|
if preBattleHero.Treasure[treasureIndex] != 0 {
|
||||||
setup.Treasure[treasureIndex] = 0
|
preBattleHero.Treasure[treasureIndex] = 0
|
||||||
player.SaveArray("battle_heroes", i, setup)
|
player.SaveArray("battle_heroes", i, preBattleHero)
|
||||||
battleHeroList = append(battleHeroList, setup.BuildMsgBattleHero(i))
|
battleHeroList = append(battleHeroList, preBattleHero.BuildMsgBattleHero(i))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -383,6 +358,7 @@ func (this *PlayerHandler) BattleHeroTreasure(player *logic.Player, msg *net.Mes
|
|||||||
ChangeType: pb.ChangeType_Changed,
|
ChangeType: pb.ChangeType_Changed,
|
||||||
Treasure: treasure.BuildMsgTreasure(),
|
Treasure: treasure.BuildMsgTreasure(),
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleBattleHeroChange), &pb.BattleHeroListAck{HeroList: battleHeroList})
|
_ = player.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleBattleHeroChange), &pb.BattleHeroListAck{HeroList: battleHeroList})
|
||||||
_ = player.Send(uint16(pb.ModId_ModuleItem), uint16(pb.MsgId_ModItemTreasureChange), &pb.TreasureChangeListAck{ChangeList: treasureChangeList})
|
_ = player.Send(uint16(pb.ModId_ModuleItem), uint16(pb.MsgId_ModItemTreasureChange), &pb.TreasureChangeListAck{ChangeList: treasureChangeList})
|
||||||
|
@ -162,10 +162,10 @@ func (this *Player) enter(conn *net.Conn) {
|
|||||||
//Role module
|
//Role module
|
||||||
_ = this.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleProperty), this.BuildMsgRolePropertyAck())
|
_ = this.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleProperty), this.BuildMsgRolePropertyAck())
|
||||||
_ = this.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleMoneyList), this.BuildMsgMoneyListAck())
|
_ = this.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleMoneyList), this.BuildMsgMoneyListAck())
|
||||||
|
_ = this.Send(uint16(pb.ModId_ModuleRole), uint16(pb.MsgId_ModRoleBattleHeroList), this.BuildMsgBattleHeroListAck())
|
||||||
|
|
||||||
//
|
//Level module
|
||||||
////Level module
|
_ = this.Send(uint16(pb.ModId_ModuleLevel), uint16(pb.MsgId_ModLevelCopyStatusList), this.BuildMsgCopyStatusListAck())
|
||||||
//_ = this.Send(proto.ModIdLevel, proto.MsgIdCopyStatusList, this.BuildMsgCopyStatusListAck())
|
|
||||||
//_ = this.Send(proto.ModIdLevel, proto.MsgIdCopySpeedStatusList, this.BuildMsgCopySpeedStatusListAck())
|
//_ = this.Send(proto.ModIdLevel, proto.MsgIdCopySpeedStatusList, this.BuildMsgCopySpeedStatusListAck())
|
||||||
//_ = this.Send(proto.ModIdLevel, proto.MsgIdPlanetList, this.BuildMsgPlanetListAck())
|
//_ = this.Send(proto.ModIdLevel, proto.MsgIdPlanetList, this.BuildMsgPlanetListAck())
|
||||||
//_ = this.Send(proto.ModIdLevel, proto.MsgIdPlanetRawStoneStatus, this.BuildMsgPlanetRawStoneStatusListAck())
|
//_ = this.Send(proto.ModIdLevel, proto.MsgIdPlanetRawStoneStatus, this.BuildMsgPlanetRawStoneStatusListAck())
|
||||||
|
@ -25,7 +25,7 @@ func (this *PlayerBattleHero) BuildMsgBattleHero(position int) *pb.BattleHero {
|
|||||||
Capacity: this.Capacity,
|
Capacity: this.Capacity,
|
||||||
}
|
}
|
||||||
if this.HeroUid != 0 {
|
if this.HeroUid != 0 {
|
||||||
msg.Equips = this.Equip[:]
|
msg.Equip = this.Equip[:]
|
||||||
msg.Treasure = this.Treasure[:]
|
msg.Treasure = this.Treasure[:]
|
||||||
msg.Artifact = this.Artifact[:]
|
msg.Artifact = this.Artifact[:]
|
||||||
msg.Mounts = this.Mounts[:]
|
msg.Mounts = this.Mounts[:]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user