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