1743 lines
52 KiB
Go
1743 lines
52 KiB
Go
package handler
|
|
|
|
//func (this *PlayerHandler) RigComponentSet(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigComponentSetReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Type == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Id == 0 {
|
|
// player.SetupRigComponent(req.Type, nil)
|
|
// return
|
|
// }
|
|
//
|
|
// var componentTable = this.tables.RigComponent.Get(int(req.Id))
|
|
// if componentTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// var component = player.RigComponent[uint32(componentTable.ItemId)]
|
|
// if component == nil {
|
|
// _ = player.TipNotice(proto.ErrItemNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// if component.Type != req.Type {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// if component.Setup {
|
|
// _ = player.TipNotice(proto.ErrItemIsSetup)
|
|
// return
|
|
// }
|
|
//
|
|
// player.SetupRigComponent(req.Type, component)
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigComponentUpgrade(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigComponentUpgradeReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.ItemId == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var component = player.RigComponent[req.ItemId]
|
|
// if component == nil {
|
|
// _ = player.TipNotice(proto.ErrComponentUnlocked)
|
|
// return
|
|
// }
|
|
//
|
|
// var componentTable = this.tables.RigComponent.Get(int(component.Id))
|
|
// if componentTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if componentTable.NextId <= 0 {
|
|
// _ = player.TipNotice(proto.ErrLevelAlreadyMax)
|
|
// return
|
|
// }
|
|
//
|
|
// var nextComponentTable = this.tables.RigComponent.Get(componentTable.NextId)
|
|
// if nextComponentTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// err = player.CheckMoney(proto.MoneyType(componentTable.MoneyType), uint32(componentTable.MoneyNum))
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
//
|
|
// player.ReduceMoney(proto.MoneyType(componentTable.MoneyType), uint32(componentTable.MoneyNum), logic.LogTypeItemConsumeByComponentUpgrade)
|
|
//
|
|
// component.Id = uint32(nextComponentTable.Id)
|
|
//
|
|
// player.SaveModel(component)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigComponentChange, &proto.MsgRigComponentChangeListAck{
|
|
// List: []*proto.RigComponentChange{{RigComponent: component.BuildMsgRigComponent(), ChangeType: uint32(proto.ChangeTypeChange)}},
|
|
// })
|
|
//
|
|
// switch proto.EquipType(component.Type) {
|
|
// case proto.EquipTypeHead:
|
|
// player.CheckTask(proto.TaskSection1UpgradeHeadComponents, 0, 1)
|
|
// player.CheckTask(proto.TaskSection1HeadComponentMaxLevel, 0, nextComponentTable.Level)
|
|
// case proto.EquipTypeBody:
|
|
// player.CheckTask(proto.TaskSection1UpgradeBodyComponents, 0, 1)
|
|
// player.CheckTask(proto.TaskSection1BodyComponentMaxLevel, 0, nextComponentTable.Level)
|
|
// case proto.EquipTypeTail:
|
|
// player.CheckTask(proto.TaskSection1UpgradeTailComponents, 0, 1)
|
|
// player.CheckTask(proto.TaskSection1TailComponentMaxLevel, 0, nextComponentTable.Level)
|
|
// }
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//
|
|
// player.CheckRigTrammelsStatus(uint32(nextComponentTable.ItemId), uint32(nextComponentTable.Level), 0)
|
|
//
|
|
// player.CheckTask(proto.TaskSection1UpgradeComponents, 0, 1)
|
|
// player.CheckTask(proto.TaskSection1ComponentsAllLevels, 0, int(player.GetAllRigCompnentLevels()))
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigComponentStarUpgrade(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigComponentStarUpgradeReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.ItemId == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var component = player.RigComponent[req.ItemId]
|
|
// if component == nil {
|
|
// _ = player.TipNotice(proto.ErrComponentUnlocked)
|
|
// return
|
|
// }
|
|
//
|
|
// var componentStarTable = this.tables.RigComponentStar.Get(int(component.StarId))
|
|
// if componentStarTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if componentStarTable.NextId <= 0 {
|
|
// _ = player.TipNotice(proto.ErrLevelAlreadyMax)
|
|
// return
|
|
// }
|
|
//
|
|
// var nextComponentStarTable = this.tables.RigComponentStar.Get(componentStarTable.NextId)
|
|
// if nextComponentStarTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// for i := range componentStarTable.CostItemId {
|
|
// err = player.CheckItem(uint32(componentStarTable.CostItemId[i]), uint32(componentStarTable.CostItemNum[i]))
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// for i := range componentStarTable.CostItemId {
|
|
// player.ReduceItem(uint32(componentStarTable.CostItemId[i]), uint32(componentStarTable.CostItemNum[i]), logic.LogTypeItemConsumeByComponentStarUpgrade)
|
|
// }
|
|
//
|
|
// component.StarId = uint32(nextComponentStarTable.Id)
|
|
//
|
|
// player.SaveModel(component)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigComponentChange, &proto.MsgRigComponentChangeListAck{
|
|
// List: []*proto.RigComponentChange{{RigComponent: component.BuildMsgRigComponent(), ChangeType: uint32(proto.ChangeTypeChange)}},
|
|
// })
|
|
//
|
|
// if component.Setup {
|
|
// //TODO if need recalculate rig attribute and send to client?
|
|
// }
|
|
//
|
|
// switch proto.EquipType(component.Type) {
|
|
// case proto.EquipTypeHead:
|
|
// player.CheckAchievement(proto.AchievementTypeHeadComponentStars, uint32(nextComponentStarTable.StarLevel), 1)
|
|
// case proto.EquipTypeBody:
|
|
// player.CheckAchievement(proto.AchievementTypeBodyComponentStars, uint32(nextComponentStarTable.StarLevel), 1)
|
|
// case proto.EquipTypeTail:
|
|
// player.CheckAchievement(proto.AchievementTypeTailComponentStars, uint32(nextComponentStarTable.StarLevel), 1)
|
|
// }
|
|
//
|
|
// player.CheckRigTrammelsStatus(uint32(nextComponentStarTable.ItemId), 0, uint32(nextComponentStarTable.StarLevel))
|
|
//
|
|
// player.CheckTask(proto.TaskSection1UpgradeComponentStars, int(component.Type), 1)
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigEquipSet(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigEquipSetReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Index >= proto.EquipNum {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Id == 0 {
|
|
// player.SetupRigEquip(req.Index, nil)
|
|
// return
|
|
// }
|
|
//
|
|
// err = player.CheckFunctionOpen1(1, req.Index)
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
//
|
|
// var equipTable = this.tables.RigEquip.Get(int(req.Id))
|
|
// if equipTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// var equip = player.RigEquip[uint32(equipTable.ItemId)]
|
|
// if equip == nil {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// if equip.Setup {
|
|
// _ = player.TipNotice(proto.ErrItemIsSetup)
|
|
// return
|
|
// }
|
|
//
|
|
// player.SetupRigEquip(req.Index, equip)
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigEquipUpgrade(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigEquipUpgradeReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.ItemId == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var equip = player.RigEquip[req.ItemId]
|
|
// if equip == nil {
|
|
// _ = player.TipNotice(proto.ErrItemNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// var equipTable = this.tables.RigEquip.Get(int(equip.Id))
|
|
// if equipTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if equipTable.NextId <= 0 {
|
|
// _ = player.TipNotice(proto.ErrLevelAlreadyMax)
|
|
// return
|
|
// }
|
|
//
|
|
// var nextEquipTable = this.tables.RigEquip.Get(equipTable.NextId)
|
|
// if nextEquipTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// for i := range equipTable.CostItemId {
|
|
// err = player.CheckItem(uint32(equipTable.CostItemId[i]), uint32(equipTable.CostItemNum[i]))
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// for i := range equipTable.CostItemId {
|
|
// player.ReduceItem(uint32(equipTable.CostItemId[i]), uint32(equipTable.CostItemNum[i]), logic.LogTypeItemConsumeByEquipUpgrade)
|
|
// }
|
|
//
|
|
// equip.Id = uint32(nextEquipTable.Id)
|
|
// player.SaveModel(equip)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigEquipChange, &proto.MsgRigEquipChangeListAck{
|
|
// List: []*proto.RigEquipChange{{RigEquip: equip.BuildMsgRigEquip(), ChangeType: uint32(proto.ChangeTypeChange)}},
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//
|
|
// player.CheckAchievement(proto.AchievementTypeEquipLevel, uint32(nextEquipTable.Level), 1)
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigEquipUpgradeAll(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigEquipUpgradeAllReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if len(req.List) == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var consumes = map[uint32]uint32{}
|
|
// var equips = make([]*logic.PlayerRigEquip, len(req.List))
|
|
// var equipTables = make([]*data.RigEquip, len(req.List))
|
|
// var nextEquipTables = make([]*data.RigEquip, len(req.List))
|
|
//
|
|
//idLoop:
|
|
// for i, id := range req.List {
|
|
// if id == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var equipTable = this.tables.RigEquip.Get(int(id))
|
|
// if equipTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// equipTables[i] = equipTable
|
|
//
|
|
// equips[i] = player.RigEquip[uint32(equipTable.ItemId)]
|
|
// if equips[i] == nil {
|
|
// _ = player.TipNotice(proto.ErrItemNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// if id != equips[i].Id {
|
|
// _ = player.TipNotice(proto.ErrItemNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// var finalEquipTable *data.RigEquip
|
|
// nextLoop:
|
|
// for {
|
|
// if equipTable.NextId <= 0 {
|
|
// break nextLoop
|
|
// }
|
|
//
|
|
// var nextEquipTable = this.tables.RigEquip.Get(equipTable.NextId)
|
|
// if nextEquipTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// for j := range equipTable.CostItemId {
|
|
// err = player.CheckItem(uint32(equipTable.CostItemId[j]), consumes[uint32(equipTable.CostItemId[j])]+uint32(equipTable.CostItemNum[j]))
|
|
// if err != nil {
|
|
// if err == proto.ErrItemNotEnough {
|
|
// break nextLoop
|
|
// }
|
|
//
|
|
// if err == proto.ErrMoneyNotEnough {
|
|
// break idLoop
|
|
// }
|
|
//
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
//
|
|
// consumes[uint32(equipTable.CostItemId[j])] += uint32(equipTable.CostItemNum[j])
|
|
// }
|
|
//
|
|
// equipTable = nextEquipTable
|
|
// finalEquipTable = nextEquipTable
|
|
// }
|
|
//
|
|
// if finalEquipTable != nil {
|
|
// nextEquipTables[i] = finalEquipTable
|
|
// }
|
|
// }
|
|
//
|
|
// for itemId, itemNum := range consumes {
|
|
// player.ReduceItem(itemId, itemNum, logic.LogTypeItemConsumeByEquipUpgrade)
|
|
// }
|
|
//
|
|
// var list []*proto.RigEquipChange
|
|
// for i, nextEquipTable := range nextEquipTables {
|
|
// if nextEquipTable == nil {
|
|
// continue
|
|
// }
|
|
//
|
|
// equips[i].Id = uint32(nextEquipTable.Id)
|
|
// player.SaveModel(equips[i])
|
|
//
|
|
// list = append(list, &proto.RigEquipChange{RigEquip: equips[i].BuildMsgRigEquip(), ChangeType: uint32(proto.ChangeTypeChange)})
|
|
//
|
|
// for level := equipTables[i].Level + 1; level <= nextEquipTable.Level; level++ {
|
|
// player.CheckAchievement(proto.AchievementTypeEquipLevel, uint32(level), 1)
|
|
// }
|
|
// }
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigEquipChange, &proto.MsgRigEquipChangeListAck{
|
|
// List: list,
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigPendantSet(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigPendantSetReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Index >= proto.PendantNum {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Id == 0 {
|
|
// player.SetupRigPendant(req.Index, nil)
|
|
// return
|
|
// }
|
|
//
|
|
// err = player.CheckFunctionOpen1(2, req.Index)
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
//
|
|
// var pendantTable = this.tables.RigPendant.Get(int(req.Id))
|
|
// if pendantTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// var pendant = player.RigPendant[uint32(pendantTable.ItemId)]
|
|
// if pendant == nil {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// if pendant.Setup {
|
|
// _ = player.TipNotice(proto.ErrItemIsSetup)
|
|
// return
|
|
// }
|
|
//
|
|
// player.SetupRigPendant(req.Index, pendant)
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigPendantUpgrade(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigPendantUpgradeReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.ItemId == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var pendant = player.RigPendant[req.ItemId]
|
|
// if pendant == nil {
|
|
// _ = player.TipNotice(proto.ErrItemNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// var pendantTable = this.tables.RigPendant.Get(int(pendant.Id))
|
|
// if pendantTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if pendantTable.NextId <= 0 {
|
|
// _ = player.TipNotice(proto.ErrLevelAlreadyMax)
|
|
// return
|
|
// }
|
|
//
|
|
// var nextPendantTable = this.tables.RigPendant.Get(pendantTable.NextId)
|
|
// if nextPendantTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// for i := range pendantTable.CostItemId {
|
|
// err = player.CheckItem(uint32(pendantTable.CostItemId[i]), uint32(pendantTable.CostItemNum[i]))
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// for i := range pendantTable.CostItemId {
|
|
// player.ReduceItem(uint32(pendantTable.CostItemId[i]), uint32(pendantTable.CostItemNum[i]), logic.LogTypeItemConsumeByPendantUpgrade)
|
|
// }
|
|
//
|
|
// pendant.Id = uint32(nextPendantTable.Id)
|
|
// player.SaveModel(pendant)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigPendantChange, &proto.MsgRigPendantChangeListAck{
|
|
// List: []*proto.RigPendantChange{{RigPendant: pendant.BuildMsgRigPendant(), ChangeType: uint32(proto.ChangeTypeChange)}},
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//
|
|
// player.CheckAchievement(proto.AchievementTypePendantLevel, uint32(nextPendantTable.Level), 1)
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigPendantUpgradeAll(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigPendantUpgradeAllReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if len(req.List) == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var consumes = map[uint32]uint32{}
|
|
// var pendants = make([]*logic.PlayerRigPendant, len(req.List))
|
|
// var pendantTables = make([]*data.RigPendant, len(req.List))
|
|
// var nextPendantTables = make([]*data.RigPendant, len(req.List))
|
|
//
|
|
//idLoop:
|
|
// for i, id := range req.List {
|
|
// if id == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var pendantTable = this.tables.RigPendant.Get(int(id))
|
|
// if pendantTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// pendantTables[i] = pendantTable
|
|
//
|
|
// pendants[i] = player.RigPendant[uint32(pendantTable.ItemId)]
|
|
// if pendants[i] == nil {
|
|
// _ = player.TipNotice(proto.ErrItemNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// if id != pendants[i].Id {
|
|
// _ = player.TipNotice(proto.ErrItemNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// var finalPendantTable *data.RigPendant
|
|
// nextLoop:
|
|
// for {
|
|
// if pendantTable.NextId <= 0 {
|
|
// break nextLoop
|
|
// }
|
|
//
|
|
// var nextPendantTable = this.tables.RigPendant.Get(pendantTable.NextId)
|
|
// if nextPendantTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// for j := range pendantTable.CostItemId {
|
|
// err = player.CheckItem(uint32(pendantTable.CostItemId[j]), consumes[uint32(pendantTable.CostItemId[j])]+uint32(pendantTable.CostItemNum[j]))
|
|
// if err != nil {
|
|
// if err == proto.ErrItemNotEnough {
|
|
// break nextLoop
|
|
// }
|
|
//
|
|
// if err == proto.ErrMoneyNotEnough {
|
|
// break idLoop
|
|
// }
|
|
//
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
//
|
|
// consumes[uint32(pendantTable.CostItemId[j])] += uint32(pendantTable.CostItemNum[j])
|
|
// }
|
|
//
|
|
// pendantTable = nextPendantTable
|
|
// finalPendantTable = nextPendantTable
|
|
// }
|
|
//
|
|
// if finalPendantTable != nil {
|
|
// nextPendantTables[i] = finalPendantTable
|
|
// }
|
|
// }
|
|
//
|
|
// for itemId, itemNum := range consumes {
|
|
// player.ReduceItem(itemId, itemNum, logic.LogTypeItemConsumeByPendantUpgrade)
|
|
// }
|
|
//
|
|
// var list []*proto.RigPendantChange
|
|
// for i, nextPendantTable := range nextPendantTables {
|
|
// if nextPendantTables == nil {
|
|
// continue
|
|
// }
|
|
//
|
|
// pendants[i].Id = uint32(nextPendantTable.Id)
|
|
// player.SaveModel(pendants[i])
|
|
//
|
|
// list = append(list, &proto.RigPendantChange{RigPendant: pendants[i].BuildMsgRigPendant(), ChangeType: uint32(proto.ChangeTypeChange)})
|
|
//
|
|
// for level := pendantTables[i].Level + 1; level <= nextPendantTable.Level; level++ {
|
|
// player.CheckAchievement(proto.AchievementTypePendantLevel, uint32(level), 1)
|
|
// }
|
|
// }
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigPendantChange, &proto.MsgRigPendantChangeListAck{
|
|
// List: list,
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigRemainsUpgrade(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigRemainsUpgradeReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.ItemId == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var remains = player.RigRemains[req.ItemId]
|
|
// if remains == nil {
|
|
// _ = player.TipNotice(proto.ErrItemNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// var remainsTable = this.tables.RigRemains.Get(int(remains.Id))
|
|
// if remainsTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if remainsTable.NextId == 0 {
|
|
// _ = player.TipNotice(proto.ErrLevelAlreadyMax)
|
|
// return
|
|
// }
|
|
//
|
|
// var nextRemainsTable = this.tables.RigRemains.Get(remainsTable.NextId)
|
|
// if nextRemainsTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// for i := range remainsTable.CostItemId {
|
|
// err = player.CheckItem(uint32(remainsTable.CostItemId[i]), uint32(remainsTable.CostItemNum[i]))
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// for i := range remainsTable.CostItemId {
|
|
// player.ReduceItem(uint32(remainsTable.CostItemId[i]), uint32(remainsTable.CostItemNum[i]), logic.LogTypeItemConsumeByRemainsUpgrade)
|
|
// }
|
|
//
|
|
// remains.Id = uint32(nextRemainsTable.Id)
|
|
//
|
|
// player.SaveModel(remains)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigRemainsChange, &proto.MsgRigRemainsChangeListAck{
|
|
// List: []*proto.RigRemainsChange{{RigRemains: remains.BuildMsgRigRemains(), ChangeType: uint32(proto.ChangeTypeChange)}},
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//
|
|
// player.CheckTask(proto.TaskSection1UpgradeRemains, 0, 1)
|
|
// player.CheckAchievement(proto.AchievementTypeRemainsLevel, uint32(nextRemainsTable.Level), 1)
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigSmelterSmelt(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigSmelterSmeltReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Type == 0 || req.Times == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var smelterTable *data.RigSmelter
|
|
// var smelter = player.RigSmelter[req.Type]
|
|
// if smelter == nil {
|
|
// smelterTable = this.tables.RigSmelterExtend.Get(int(req.Type), 1)
|
|
// if smelterTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// smelter = player.AddRigSmelter(smelterTable)
|
|
// } else {
|
|
// smelterTable = this.tables.RigSmelter.Get(int(smelter.Id))
|
|
// if smelterTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// var ti = -1
|
|
// for i, times := range smelterTable.TimesList {
|
|
// if uint32(times) == req.Times {
|
|
// ti = i
|
|
// break
|
|
// }
|
|
// }
|
|
//
|
|
// if ti < 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// if !player.CheckAdFunction(proto.AdFunctionTypeSmelt, uint32(smelterTable.Type), 0, req.Times) {
|
|
// err = player.CheckItem(uint32(smelterTable.CostItemId[ti]), uint32(smelterTable.CostItemNum[ti]))
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
//
|
|
// player.ReduceItem(uint32(smelterTable.CostItemId[ti]), uint32(smelterTable.CostItemNum[ti]), logic.LogTypeItemConsumeBySmelterSmelt)
|
|
// }
|
|
//
|
|
// var itemMap = map[uint32]uint32{}
|
|
// var itemPairs = this.tables.DropExtend.Drop(smelterTable.DropId, int(req.Times))
|
|
// var rewardList = make([]*proto.ItemPair, len(itemPairs))
|
|
// for i, itemPair := range itemPairs {
|
|
// itemMap[itemPair[0]] += itemPair[1]
|
|
// rewardList[i] = &proto.ItemPair{ItemId: itemPair[0], ItemNum: itemPair[1]}
|
|
// }
|
|
//
|
|
// player.AddItems(itemMap, logic.LogTypeItemObtainBySmelt)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigSmelterSmelt, &proto.MsgRigSmelterSmeltAck{MsgRewardListAck: &proto.MsgRewardListAck{RewardList: rewardList}})
|
|
//
|
|
// if smelterTable.SmeltExp > 0 {
|
|
// if smelterTable.NextId <= 0 && smelter.Exp >= uint32(smelterTable.UpgradeExp) {
|
|
// return
|
|
// }
|
|
//
|
|
// timesLoop:
|
|
// for i := uint32(0); i < req.Times; i++ {
|
|
// smelter.Exp += uint32(smelterTable.SmeltExp)
|
|
// for {
|
|
// if smelter.Exp >= uint32(smelterTable.UpgradeExp) {
|
|
// if smelterTable.NextId > 0 {
|
|
// var nextSmelterTable = this.tables.RigSmelter.Get(smelterTable.NextId)
|
|
// if nextSmelterTable == nil {
|
|
// this.logger.Error("熔炉升级查找下一级失败, nextId: ", smelterTable.NextId)
|
|
// break
|
|
// }
|
|
//
|
|
// smelter.Id = uint32(nextSmelterTable.Id)
|
|
// smelter.Exp -= uint32(smelterTable.UpgradeExp)
|
|
//
|
|
// smelterTable = nextSmelterTable
|
|
// } else {
|
|
// smelter.Id = uint32(smelterTable.Id)
|
|
// smelter.Exp = uint32(smelterTable.UpgradeExp)
|
|
// break timesLoop
|
|
// }
|
|
// } else {
|
|
// break
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// player.RigSmelter[smelter.Type] = smelter
|
|
// player.SaveModel(smelter)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigSmelterChange, &proto.MsgRigSmelterChangeAck{Smelter: smelter.BuildMsgSmelter()})
|
|
// }
|
|
//
|
|
// player.CheckTask(proto.TaskSection1SmelterSmeltTimes, smelterTable.Type, int(req.Times))
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigTeamSave(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigTeamSaveReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Team > uint32(len(req.List)) {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var teams []proto.Team
|
|
// for _, team := range req.List {
|
|
// teams = append(teams, team.Members)
|
|
// }
|
|
//
|
|
// player.Rig.Team = req.Team
|
|
// player.Rig.Teams = teams
|
|
//
|
|
// player.SaveField("rig.team", player.Rig.Team)
|
|
// player.SaveField("rig.teams", player.Rig.Teams)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigTeamSave, &proto.MsgRigTeamSaveAck{Team: req.Team, List: req.List})
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigCharacterUpgrade(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigCharacterUpgradeReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.ItemId == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var character = player.RigCharacter[req.ItemId]
|
|
// if character == nil {
|
|
// _ = player.TipNotice(proto.ErrCharacterUnlocked)
|
|
// return
|
|
// }
|
|
//
|
|
// var charaterTable = this.tables.RigCharacter.Get(int(character.Id))
|
|
// if charaterTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if charaterTable.NextId <= 0 {
|
|
// _ = player.TipNotice(proto.ErrLevelAlreadyMax)
|
|
// return
|
|
// }
|
|
//
|
|
// var nextCharacterTable = this.tables.RigCharacter.Get(charaterTable.NextId)
|
|
// if nextCharacterTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// for i := range charaterTable.CostItemId {
|
|
// err = player.CheckItem(uint32(charaterTable.CostItemId[i]), uint32(charaterTable.CostItemNum[i]))
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// for i := range charaterTable.CostItemId {
|
|
// player.ReduceItem(uint32(charaterTable.CostItemId[i]), uint32(charaterTable.CostItemNum[i]), logic.LogTypeItemConsumeByCharacterUpgrade)
|
|
// }
|
|
//
|
|
// character.Id = uint32(nextCharacterTable.Id)
|
|
// player.SaveModel(character)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigCharacterChange, &proto.MsgRigCharacterChangeListAck{
|
|
// List: []*proto.RigCharacterChange{{RigCharacter: character.BuildMsgRigCharacter(), ChangeType: uint32(proto.ChangeTypeChange)}},
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//
|
|
// player.CheckRigTrammelsStatus(uint32(nextCharacterTable.ItemId), uint32(nextCharacterTable.Level), 0)
|
|
//
|
|
// player.CheckTask(proto.TaskSection1UpgradeCharacters, 0, 1)
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigCharacterStarUpgrade(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigCharacterUpgradeReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.ItemId == 0 {
|
|
// this.logger.Error("Parameter error, req.ItemId == 0")
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var character = player.RigCharacter[req.ItemId]
|
|
// if character == nil {
|
|
// this.logger.Error("Player 'Character' was not found, itemId: ", req.ItemId)
|
|
// _ = player.TipNotice(proto.ErrCharacterUnlocked)
|
|
// return
|
|
// }
|
|
//
|
|
// var characterStarsTable = this.tables.RigCharacterStar.Get(int(character.StarId))
|
|
// if characterStarsTable == nil {
|
|
// this.logger.Error("Data tables error, Table 'RigCharacterStar' was not found, starId: ", character.StarId)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if characterStarsTable.NextId <= 0 {
|
|
// this.logger.Error("The level of 'RigCharacterStar' already max, nextId: ", characterStarsTable.NextId)
|
|
// _ = player.TipNotice(proto.ErrLevelAlreadyMax)
|
|
// return
|
|
// }
|
|
//
|
|
// var nextCharacterStarsTable = this.tables.RigCharacterStar.Get(characterStarsTable.NextId)
|
|
// if nextCharacterStarsTable == nil {
|
|
// this.logger.Error("Data tables error, next level of Table 'RigCharacterStar' was not found, nextId: ", characterStarsTable.NextId)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// for i := range characterStarsTable.CostItemId {
|
|
// err = player.CheckItem(uint32(characterStarsTable.CostItemId[i]), uint32(characterStarsTable.CostItemNum[i]))
|
|
// if err != nil {
|
|
// this.logger.Errorf("Item not enough, costTtemId: %d, costItemNum: %d", characterStarsTable.CostItemId[i], characterStarsTable.CostItemNum[i])
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// for i := range characterStarsTable.CostItemId {
|
|
// player.ReduceItem(uint32(characterStarsTable.CostItemId[i]), uint32(characterStarsTable.CostItemNum[i]), logic.LogTypeItemConsumeByCharacterStarsUpgrade)
|
|
// }
|
|
//
|
|
// character.StarId = uint32(nextCharacterStarsTable.Id)
|
|
// player.SaveModel(character)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigCharacterChange, &proto.MsgRigCharacterChangeListAck{
|
|
// List: []*proto.RigCharacterChange{{RigCharacter: character.BuildMsgRigCharacter(), ChangeType: uint32(proto.ChangeTypeChange)}},
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//
|
|
// player.CheckRigTrammelsStatus(uint32(nextCharacterStarsTable.ItemId), 0, uint32(nextCharacterStarsTable.StarLevel))
|
|
//
|
|
// player.CheckTask(proto.TaskSection1UpgradeCharacterStars, 0, 1)
|
|
// player.CheckAchievement(proto.AchievementTypeCharacterStars, uint32(nextCharacterStarsTable.StarLevel), 1)
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigCoreSet(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigCoreSetReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Id == 0 || req.Socket < 0 || req.Socket > proto.CoreNum {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// err = player.CheckFunctionOpen1(3, req.Socket)
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
//
|
|
// var coreTable = this.tables.RigCore.Get(int(req.Id))
|
|
// if coreTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// var core = player.RigCore[uint32(coreTable.ItemId)]
|
|
// if core == nil {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var ack = new(proto.MsgRigCoreChangeListAck)
|
|
// if req.Socket == 0 {
|
|
// if core.Socket == 0 {
|
|
// return
|
|
// }
|
|
//
|
|
// core.Socket = 0
|
|
// player.SaveModel(core)
|
|
//
|
|
// ack.List = append(ack.List, &proto.RigCoreChange{RigCore: core.BuildMsgRigCore(), ChangeType: uint32(proto.ChangeTypeChange)})
|
|
// } else {
|
|
// if core.Socket > 0 {
|
|
// _ = player.TipNotice(proto.ErrItemIsSetup)
|
|
// return
|
|
// }
|
|
//
|
|
// var setup = player.CheckRigCoreSocket(req.Socket)
|
|
// if setup != nil {
|
|
// setup.Socket = 0
|
|
// player.SaveModel(setup)
|
|
//
|
|
// ack.List = append(ack.List, &proto.RigCoreChange{RigCore: setup.BuildMsgRigCore(), ChangeType: uint32(proto.ChangeTypeChange)})
|
|
// }
|
|
//
|
|
// core.Socket = req.Socket
|
|
// player.SaveModel(core)
|
|
//
|
|
// ack.List = append(ack.List, &proto.RigCoreChange{RigCore: core.BuildMsgRigCore(), ChangeType: uint32(proto.ChangeTypeChange)})
|
|
// }
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigCoreChange, ack)
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigCoreSetAll(player *logic.Player, msg *net.Message) {
|
|
// var maxNum = uint32(0)
|
|
// for i := uint32(1); i <= proto.CoreNum; i++ {
|
|
// if player.CheckFunctionOpen1(3, i) != nil {
|
|
// break
|
|
// }
|
|
// maxNum = i
|
|
// }
|
|
//
|
|
// if maxNum == 0 {
|
|
// return
|
|
// }
|
|
//
|
|
// var unsetCores []*logic.PlayerRigCore
|
|
// var unsetItems []*data.Item
|
|
// var unsetTables []*data.RigCore
|
|
// var setupCores = map[uint32]*logic.PlayerRigCore{}
|
|
// for _, core := range player.RigCore {
|
|
// var item, table = this.tables.Item.Get(int(core.ItemId)), this.tables.RigCore.Get(int(core.Id))
|
|
// if item == nil || table == nil {
|
|
// continue
|
|
// }
|
|
//
|
|
// if core.Socket > 0 {
|
|
// setupCores[core.Socket] = core
|
|
// } else {
|
|
// unsetCores = append(unsetCores, core)
|
|
// unsetItems = append(unsetItems, item)
|
|
// unsetTables = append(unsetTables, table)
|
|
// }
|
|
// }
|
|
//
|
|
// sort.Slice(unsetCores, func(i, j int) bool {
|
|
// var ii, ij = unsetItems[i], unsetItems[j]
|
|
// var ti, tj = unsetTables[i], unsetTables[j]
|
|
// if ii == nil && ij != nil {
|
|
// return false
|
|
// }
|
|
//
|
|
// if ii != nil && ij == nil {
|
|
// return true
|
|
// }
|
|
//
|
|
// if ii != nil && ij != nil {
|
|
// if ii.Quality != ij.Quality {
|
|
// return ii.Quality > ij.Quality
|
|
// }
|
|
// }
|
|
//
|
|
// if ti.Level != tj.Level {
|
|
// return ti.Level > tj.Level
|
|
// }
|
|
//
|
|
// return ti.Id < tj.Id
|
|
// })
|
|
//
|
|
// var unsetIndex = 0
|
|
// var list []*proto.RigCoreChange
|
|
// for i := uint32(1); i <= maxNum; i++ {
|
|
// if _, ok := setupCores[i]; ok {
|
|
// continue
|
|
// }
|
|
//
|
|
// if unsetIndex < len(unsetCores) {
|
|
// unsetCores[unsetIndex].Socket = i
|
|
// player.SaveModel(unsetCores[unsetIndex])
|
|
//
|
|
// list = append(list, &proto.RigCoreChange{RigCore: unsetCores[unsetIndex].BuildMsgRigCore(), ChangeType: uint32(proto.ChangeTypeChange)})
|
|
//
|
|
// unsetIndex += 1
|
|
// }
|
|
// }
|
|
//
|
|
// if len(list) > 0 {
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigCoreChange, &proto.MsgRigCoreChangeListAck{
|
|
// List: list,
|
|
// })
|
|
// }
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigCoreUpgrade(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigCoreUpgradeReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message failed, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.ItemId == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var core = player.RigCore[req.ItemId]
|
|
// if core == nil {
|
|
// _ = player.TipNotice(proto.ErrItemNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// var coreTable = this.tables.RigCore.Get(int(core.Id))
|
|
// if coreTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if coreTable.NextId <= 0 {
|
|
// _ = player.TipNotice(proto.ErrLevelAlreadyMax)
|
|
// return
|
|
// }
|
|
//
|
|
// var nextCoreTable = this.tables.RigCore.Get(coreTable.NextId)
|
|
// if nextCoreTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// for i := range coreTable.CostItemId {
|
|
// err = player.CheckItem(uint32(coreTable.CostItemId[i]), uint32(coreTable.CostItemNum[i]))
|
|
// if err != nil {
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// for i := range coreTable.CostItemId {
|
|
// player.ReduceItem(uint32(coreTable.CostItemId[i]), uint32(coreTable.CostItemNum[i]), logic.LogTypeItemConsumeByCoreUpgrade)
|
|
// }
|
|
//
|
|
// core.Id = uint32(nextCoreTable.Id)
|
|
//
|
|
// player.SaveModel(core)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigCoreChange, &proto.MsgRigCoreChangeListAck{
|
|
// List: []*proto.RigCoreChange{{RigCore: core.BuildMsgRigCore(), ChangeType: uint32(proto.ChangeTypeChange)}},
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigCoreUpgradeAll(player *logic.Player, msg *net.Message) {
|
|
// var consumes = map[uint32]uint32{}
|
|
// var cores []*logic.PlayerRigCore
|
|
// var nextCoreTables []*data.RigCore
|
|
//
|
|
//coreLoop:
|
|
// for _, core := range player.RigCore {
|
|
// var coreTable = this.tables.RigCore.Get(int(core.Id))
|
|
// if coreTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// var finalCoreTable *data.RigCore
|
|
// nextLoop:
|
|
// for {
|
|
// if coreTable.NextId <= 0 {
|
|
// break nextLoop
|
|
// }
|
|
//
|
|
// var nextCoreTable = this.tables.RigCore.Get(coreTable.NextId)
|
|
// if nextCoreTable == nil {
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// for j := range coreTable.CostItemId {
|
|
// var err = player.CheckItem(uint32(coreTable.CostItemId[j]), consumes[uint32(coreTable.CostItemId[j])]+uint32(coreTable.CostItemNum[j]))
|
|
// if err != nil {
|
|
// if errors.Is(err, proto.ErrItemNotEnough) {
|
|
// break nextLoop
|
|
// }
|
|
//
|
|
// if errors.Is(err, proto.ErrMoneyNotEnough) {
|
|
// break coreLoop
|
|
// }
|
|
//
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
//
|
|
// consumes[uint32(coreTable.CostItemId[j])] += uint32(coreTable.CostItemNum[j])
|
|
// }
|
|
//
|
|
// coreTable = nextCoreTable
|
|
// finalCoreTable = nextCoreTable
|
|
// }
|
|
//
|
|
// if finalCoreTable != nil {
|
|
// cores = append(cores, core)
|
|
// nextCoreTables = append(nextCoreTables, finalCoreTable)
|
|
// }
|
|
// }
|
|
//
|
|
// for itemId, itemNum := range consumes {
|
|
// player.ReduceItem(itemId, itemNum, logic.LogTypeItemConsumeByEquipUpgrade)
|
|
// }
|
|
//
|
|
// var list []*proto.RigCoreChange
|
|
// for i, nextCoreTable := range nextCoreTables {
|
|
// if nextCoreTable == nil {
|
|
// continue
|
|
// }
|
|
//
|
|
// cores[i].Id = uint32(nextCoreTable.Id)
|
|
//
|
|
// player.SaveModel(cores[i])
|
|
//
|
|
// list = append(list, &proto.RigCoreChange{RigCore: cores[i].BuildMsgRigCore(), ChangeType: uint32(proto.ChangeTypeChange)})
|
|
// }
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigCoreChange, &proto.MsgRigCoreChangeListAck{
|
|
// List: list,
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigTrammelsActivate(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigTrammelsActivateReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Group == 0 || req.Level == 0 {
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var rigTrammels = player.RigTrammels[req.Group]
|
|
// if rigTrammels == nil || proto.TrammelsStatus(rigTrammels.Status[req.Level]) == proto.TrammelsStatusUnable {
|
|
// _ = player.TipNotice(proto.ErrTrammelsUnable)
|
|
// return
|
|
// }
|
|
//
|
|
// var status = rigTrammels.Status[req.Level]
|
|
// if proto.TrammelsStatus(status) == proto.TrammelsStatusUnable {
|
|
// _ = player.TipNotice(proto.ErrTrammelsUnable)
|
|
// return
|
|
// }
|
|
//
|
|
// if proto.TrammelsStatus(status) == proto.TrammelsStatusActivated {
|
|
// _ = player.TipNotice(proto.ErrTrammelsActivated)
|
|
// return
|
|
// }
|
|
//
|
|
// rigTrammels.Status[req.Level] = uint32(proto.TrammelsStatusActivated)
|
|
// player.SaveModel(rigTrammels)
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigTrammelsActivate, &proto.MsgRigTrammelsActivateAck{
|
|
// RigTrammelsStatus: &proto.RigTrammelsStatus{Level: req.Level, Status: uint32(proto.TrammelsStatusActivated)},
|
|
// Group: rigTrammels.Group,
|
|
// })
|
|
// return
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigWarshipSet(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigWarshipSetReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message error, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Uid == 0 {
|
|
// player.SetupWarship(nil)
|
|
// return
|
|
// }
|
|
//
|
|
// var warship = player.RigWarship[req.Uid]
|
|
// if warship == nil {
|
|
// this.logger.Error("Parameter error, Player 'RigWarship' was not found, uid: ", req.Uid)
|
|
// _ = player.TipNotice(proto.ErrWarshipNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// if warship.Setup {
|
|
// return
|
|
// }
|
|
//
|
|
// player.SetupWarship(warship)
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigWarshipUpgrade(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigWarshipUpgradeReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message error, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Uid == 0 {
|
|
// this.logger.Error("Parameter error, req.Uid == 0")
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var warship = player.RigWarship[req.Uid]
|
|
// if warship == nil {
|
|
// this.logger.Error("Parameter error, Player 'RigWarship' was not found, uid: ", req.Uid)
|
|
// _ = player.TipNotice(proto.ErrWarshipNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// var warshipTable = this.tables.Warship.Get(int(warship.Id))
|
|
// if warshipTable == nil {
|
|
// this.logger.Error("Parameter or data error, Table 'RigWarship' was not found, id: ", warship.Id)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// var warshipLevelTables = this.tables.WarshipLevelExtend.List(warshipTable.Type)
|
|
//
|
|
// var lvi = sort.Search(len(warshipLevelTables), func(i int) bool {
|
|
// return uint32(warshipLevelTables[i].Id) >= warship.LevelId
|
|
// })
|
|
//
|
|
// if lvi == len(warshipLevelTables) || uint32(warshipLevelTables[lvi].Id) != warship.LevelId {
|
|
// this.logger.Error("Parameter or data error, Table 'WarshipLevel' was not found, id: ", warship.Id)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if lvi == len(warshipLevelTables)-1 {
|
|
// this.logger.Error("Level already max, levelId: ", warship.LevelId)
|
|
// _ = player.TipNotice(proto.ErrLevelAlreadyMax)
|
|
// return
|
|
// }
|
|
//
|
|
// var warshipLevelTable = warshipLevelTables[lvi]
|
|
//
|
|
// if len(warshipLevelTable.ConsumeItemId) > 0 {
|
|
// for i := range warshipLevelTable.ConsumeItemId {
|
|
// if player.CheckItem(uint32(warshipLevelTable.ConsumeItemId[i]), uint32(warshipLevelTable.ConsumeItemNum[i])) != nil {
|
|
// this.logger.Errorf("Check item consume failed, itemId: %d, itemNum: %d, error: %v", warshipLevelTable.ConsumeItemId[i], warshipLevelTable.ConsumeItemNum[i], err)
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// for i := range warshipLevelTable.ConsumeItemId {
|
|
// player.ReduceItem(uint32(warshipLevelTable.ConsumeItemId[i]), uint32(warshipLevelTable.ConsumeItemNum[i]), logic.LogTypeItemConsumeByWarshipUpgrade)
|
|
// }
|
|
// }
|
|
//
|
|
// warship.LevelId = uint32(warshipLevelTables[lvi+1].Id)
|
|
// player.SaveModel(warship)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigWarshipChange, &proto.MsgRigWarshipChangeAck{
|
|
// List: []*proto.RigWarshipChange{{RigWarship: warship.BuildMsgRigWarship(), ChangeType: uint32(proto.ChangeTypeChange)}},
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigWarshipFuse(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigWarshipFuseReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message error, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Uid == 0 || req.TargetUid == 0 {
|
|
// this.logger.Error("Parameter error, req.Uid == 0 || req.TargetUid == 0")
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var warship = player.RigWarship[req.Uid]
|
|
// if warship == nil {
|
|
// this.logger.Error("Parameter error, Player 'RigWarship' was not found, uid: ", req.Uid)
|
|
// _ = player.TipNotice(proto.ErrWarshipNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// var target = player.RigWarship[req.TargetUid]
|
|
// if target == nil {
|
|
// this.logger.Error("Parameter error, Player 'RigWarship' was not found, targetUid: ", req.TargetUid)
|
|
// _ = player.TipNotice(proto.ErrWarshipNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// if target.Setup {
|
|
// this.logger.Error("Parameter error, Can not fuse the target that is setup, targetUid: ", req.TargetUid)
|
|
// _ = player.TipNotice(proto.ErrWarshipCanNotFuse)
|
|
// return
|
|
// }
|
|
//
|
|
// var warshipStarTables = this.tables.WarshipStarExtend.List(int(warship.Id))
|
|
//
|
|
// var lvi, tvi = -1, -1
|
|
// for i := range warshipStarTables {
|
|
// if uint32(warshipStarTables[i].Id) == warship.StarId {
|
|
// lvi = i
|
|
// if tvi != -1 {
|
|
// break
|
|
// }
|
|
// }
|
|
// if uint32(warshipStarTables[i].Id) == target.StarId {
|
|
// tvi = i
|
|
// if lvi != -1 {
|
|
// break
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// if lvi == -1 {
|
|
// this.logger.Error("Parameter or data error, Table 'WarshipStar' was not found, warship.StarId: ", warship.StarId)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if tvi == -1 {
|
|
// this.logger.Error("Parameter or data error, Table 'WarshipStar' was not found, target.StarId: ", target.StarId)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if lvi == len(warshipStarTables)-1 {
|
|
// this.logger.Error("Star level already max, warship.StarId: ", warship.StarId)
|
|
// _ = player.TipNotice(proto.ErrLevelAlreadyMax)
|
|
// return
|
|
// }
|
|
//
|
|
// var warshipStarTable = warshipStarTables[lvi]
|
|
//
|
|
// if len(warshipStarTable.ConsumeItemId) > 0 {
|
|
// for i := range warshipStarTable.ConsumeItemId {
|
|
// if player.CheckItem(uint32(warshipStarTable.ConsumeItemId[i]), uint32(warshipStarTable.ConsumeItemNum[i])) != nil {
|
|
// this.logger.Errorf("Check item consume failed, itemId: %d, itemNum: %d, error: %v", warshipStarTable.ConsumeItemId[i], warshipStarTable.ConsumeItemNum[i], err)
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// var nvi = lvi + tvi + 1
|
|
// if nvi >= len(warshipStarTables) {
|
|
// nvi = len(warshipStarTables) - 1
|
|
// }
|
|
//
|
|
// var skills = slices.Clone(warship.Skills)
|
|
// var exclude = map[int]struct{}{}
|
|
// var skillTables = make([]*data.Skill, len(skills))
|
|
// for i, skillId := range skills {
|
|
// skillTables[i] = this.tables.Skill.Get(int(skillId))
|
|
// if skillTables[i] == nil {
|
|
// this.logger.Error("Parameter or data error, Table 'Skill' was not found, skillId: ", skillId)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
// exclude[skillTables[i].Id] = struct{}{}
|
|
// }
|
|
//
|
|
// for i := 0; i < (nvi - lvi); i++ {
|
|
// if len(skills) < 4 {
|
|
// var warshipSkillTable = this.tables.WarshipSkillExtend.Random(1, exclude)
|
|
// if warshipSkillTable == nil {
|
|
// this.logger.Error("Parameter or data error, Table 'WarshipSkill' random failed, exclude: ", skills)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// var skillTable = this.tables.SkillExtend.Get(warshipSkillTable.SkillId, 1)
|
|
// if skillTable == nil {
|
|
// this.logger.Errorf("Parameter or data error, Table 'Skill' was not found, skillId: %d, skillLevel: 1", warshipSkillTable.SkillId)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// skills = append(skills, uint32(skillTable.Id))
|
|
// skillTables = append(skillTables, skillTable)
|
|
// exclude[skillTable.SkillId] = struct{}{}
|
|
// } else {
|
|
// var stis []int
|
|
// for sti := range skillTables {
|
|
// if skillTables[sti].NextId > 0 {
|
|
// stis = append(stis, sti)
|
|
// }
|
|
// }
|
|
// if len(stis) == 0 {
|
|
// break
|
|
// }
|
|
//
|
|
// var sti = util.RandomSelect(stis, 1)[0]
|
|
// var nextSkillTable = this.tables.Skill.Get(skillTables[sti].NextId)
|
|
// if nextSkillTable == nil {
|
|
// this.logger.Error("Parameter or data error, Table 'Skill' was not found, nextId: ", skillTables[sti].NextId)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// skills[sti] = uint32(nextSkillTable.Id)
|
|
// skillTables[sti] = nextSkillTable
|
|
// }
|
|
// }
|
|
//
|
|
// if len(warshipStarTable.ConsumeItemId) > 0 {
|
|
// for i := range warshipStarTable.ConsumeItemId {
|
|
// player.ReduceItem(uint32(warshipStarTable.ConsumeItemId[i]), uint32(warshipStarTable.ConsumeItemNum[i]), logic.LogTypeItemConsumeByWarshipFuse)
|
|
// }
|
|
// }
|
|
//
|
|
// warship.StarId = uint32(warshipStarTables[nvi].Id)
|
|
// warship.Skills = skills
|
|
// player.SaveModel(warship)
|
|
//
|
|
// delete(player.RigWarship, target.Uid)
|
|
// player.WipeModel(target)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigWarshipChange, &proto.MsgRigWarshipChangeAck{
|
|
// List: []*proto.RigWarshipChange{
|
|
// {RigWarship: warship.BuildMsgRigWarship(), ChangeType: uint32(proto.ChangeTypeChange)},
|
|
// {RigWarship: target.BuildMsgRigWarship(), ChangeType: uint32(proto.ChangeTypeDelete)},
|
|
// },
|
|
// })
|
|
//
|
|
// player.UpdateRigAttrs()
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) RigWarshipReform(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgRigWarshipReformReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message error, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Uid == 0 || len(req.LockedSkills) > 3 {
|
|
// this.logger.Error("Parameter error, req.Uid == 0 || len(req.LockedSkills) > 3")
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var warship = player.RigWarship[req.Uid]
|
|
// if warship == nil {
|
|
// this.logger.Error("Parameter error, Player 'RigWarship' was not found, uid: ", req.Uid)
|
|
// _ = player.TipNotice(proto.ErrWarshipNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// var warshipTable = this.tables.Warship.Get(int(warship.Id))
|
|
// if warshipTable == nil {
|
|
// this.logger.Error("Parameter or data error, Table 'RigWarship' was not found, id: ", warship.Id)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if len(warship.Skills) != 4 {
|
|
// this.logger.Error("Parameter error, Player 'RigWarship' was not found, uid: ", req.Uid)
|
|
// _ = player.TipNotice(proto.ErrWarshipCanNotReform)
|
|
// return
|
|
// }
|
|
//
|
|
// var consumeItems = map[uint32]uint32{}
|
|
//
|
|
// if warshipTable.ConsumeItem > 0 {
|
|
// consumeItems[uint32(warshipTable.ConsumeItem)] = uint32(warshipTable.ItemQuantities)
|
|
// }
|
|
//
|
|
// if warshipTable.LockItem > 0 {
|
|
// switch len(req.LockedSkills) {
|
|
// case 1:
|
|
// consumeItems[uint32(warshipTable.LockItem)] = uint32(warshipTable.Lock1Quantities)
|
|
// case 2:
|
|
// consumeItems[uint32(warshipTable.LockItem)] = uint32(warshipTable.Lock2Quantities)
|
|
// case 3:
|
|
// consumeItems[uint32(warshipTable.LockItem)] = uint32(warshipTable.Lock3Quantities)
|
|
// }
|
|
// }
|
|
//
|
|
// for itemId, itemNum := range consumeItems {
|
|
// if player.CheckItem(itemId, itemNum) != nil {
|
|
// this.logger.Errorf("Check item consume failed, itemId: %d, itemNum: %d, error: %v", itemId, itemNum, err)
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// var skills = slices.Clone(warship.Skills)
|
|
// var exclude = map[int]struct{}{}
|
|
// var skillTables = make([]*data.Skill, len(skills))
|
|
// for i, skillId := range skills {
|
|
// skillTables[i] = this.tables.Skill.Get(int(skillId))
|
|
// if skillTables[i] == nil {
|
|
// this.logger.Error("Parameter or data error, Table 'Skill' was not found, skillId: ", skillId)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
// exclude[skillTables[i].SkillId] = struct{}{}
|
|
// }
|
|
//
|
|
//skillsLoop:
|
|
// for si, skillId := range skills {
|
|
// for _, lockedSkillId := range req.LockedSkills {
|
|
// if skillId == lockedSkillId {
|
|
// continue skillsLoop
|
|
// }
|
|
// }
|
|
//
|
|
// delete(exclude, skillTables[si].SkillId)
|
|
//
|
|
// var warshipSkillTable = this.tables.WarshipSkillExtend.Random(2, exclude)
|
|
// if warshipSkillTable == nil {
|
|
// this.logger.Error("Parameter or data error, Table 'WarshipSkill' random failed, exclude: ", skills)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// var newSkillTable = this.tables.SkillExtend.Get(warshipSkillTable.SkillId, skillTables[si].SkillLevel)
|
|
// if newSkillTable == nil {
|
|
// this.logger.Errorf("Parameter or data error, Table 'Skill' was not found, skillId: %d, skillLevel: %v", warshipSkillTable.SkillId, skillTables[si].SkillLevel)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// skills[si] = uint32(newSkillTable.Id)
|
|
// exclude[newSkillTable.SkillId] = struct{}{}
|
|
// }
|
|
//
|
|
// for itemId, itemNum := range consumeItems {
|
|
// player.ReduceItem(itemId, itemNum, logic.LogTypeItemConsumeByWarshipReform)
|
|
// }
|
|
//
|
|
// warship.Skills = skills
|
|
// player.SaveModel(warship)
|
|
//
|
|
// _ = player.Send(proto.ModIdRig, proto.MsgIdRigWarshipChange, &proto.MsgRigWarshipChangeAck{
|
|
// List: []*proto.RigWarshipChange{
|
|
// {RigWarship: warship.BuildMsgRigWarship(), ChangeType: uint32(proto.ChangeTypeChange)},
|
|
// },
|
|
// })
|
|
//}
|
|
//
|
|
//func (this *PlayerHandler) FunctionOpen1Unlock(player *logic.Player, msg *net.Message) {
|
|
// var req = new(proto.MsgFunctionOpen1UnlockReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message error, ", err)
|
|
// _ = player.TipNotice(proto.ErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if req.Id == 0 {
|
|
// this.logger.Error("Parameter error, req.Id == 0")
|
|
// _ = player.TipNotice(proto.ErrParameterError)
|
|
// return
|
|
// }
|
|
//
|
|
// var functionOpen1Table = this.tables.FunctionOpen1.Get(int(req.Id))
|
|
// if functionOpen1Table == nil {
|
|
// this.logger.Error("Parameter or data error, Table 'FunctionOpen1'was not found, id: ", req.Id)
|
|
// _ = player.TipNotice(proto.ErrDataTablesError)
|
|
// return
|
|
// }
|
|
//
|
|
// if functionOpen1Table.LockType != 4 {
|
|
// this.logger.Error("Function can not unlock, functionOpen1Table.LockType != 4, id: ", req.Id)
|
|
// _ = player.TipNotice(proto.ErrFunctionCanNotUnlock)
|
|
// return
|
|
// }
|
|
//
|
|
// if player.GetCounterTotal(proto.CounterTypeFunctionOpen1, util.Compose2uint16(uint16(functionOpen1Table.GridType), uint16(functionOpen1Table.GridId))) > 0 {
|
|
// this.logger.Errorf("Function has unlocked, id: %d, gridType: %d, gridId: %d", req.Id, functionOpen1Table.GridType, functionOpen1Table.GridId)
|
|
// _ = player.TipNotice(proto.ErrFunctionHasUnlocked)
|
|
// return
|
|
// }
|
|
//
|
|
// if functionOpen1Table.GridId > 0 {
|
|
// if player.GetCounterTotal(proto.CounterTypeFunctionOpen1, util.Compose2uint16(uint16(functionOpen1Table.GridType), uint16(functionOpen1Table.GridId-1))) == 0 {
|
|
// this.logger.Errorf("Function can not unlock, The previous one has not unlocked, id: %d, gridType: %d, gridId: %d", req.Id, functionOpen1Table.GridType, functionOpen1Table.GridId)
|
|
// _ = player.TipNotice(proto.ErrFunctionCanNotUnlock)
|
|
// return
|
|
// }
|
|
// }
|
|
//
|
|
// err = player.CheckItem(uint32(functionOpen1Table.LockArg1), uint32(functionOpen1Table.LockArg2))
|
|
// if err != nil {
|
|
// this.logger.Errorf("Check item consume failed, itemId: %d, itemNum: %d, error: %v", functionOpen1Table.LockArg1, functionOpen1Table.LockArg2, err)
|
|
// _ = player.TipNotice(err)
|
|
// return
|
|
// }
|
|
//
|
|
// player.ReduceItem(uint32(functionOpen1Table.LockArg1), uint32(functionOpen1Table.LockArg2), logic.LogTypeItemConsumeByFunctionUnlock)
|
|
//
|
|
// player.AddCounter(proto.CounterTypeFunctionOpen1, util.Compose2uint16(uint16(functionOpen1Table.GridType), uint16(functionOpen1Table.GridId)), 1)
|
|
//}
|