package handler //func (this *PlayerHandler) RoleChangeLanguage(player *logic.Player, msg *net.Message) { // var req = new(proto.MsgRoleChangeLanguageReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // if player.Role.Language != req.Language { // player.Role.Language = req.Language // player.SaveField("role.language", player.Role.Language) // } // // _ = player.Send(proto.ModIdRole, proto.MsgIdRoleChangeLanguage, &proto.MsgRoleChangeLanguageAck{Language: player.Role.Language}) // return //} // //func (this *PlayerHandler) RoleChangeName(player *logic.Player, msg *net.Message) { // var req = new(proto.MsgRoleChangeNameReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // var roleName = strings.TrimSpace(req.Name) // // if roleName == "" { // this.logger.Error("Parameter error, req.Name == \"\"") // _ = player.TipNotice(proto.ErrParameterError) // return // } // // if roleName != player.Role.Name { // if !this.tables.WordBanExtend.Check(roleName) { // this.logger.Error("Illegal role name, roleName: ", roleName) // _ = player.TipNotice(proto.ErrIllegalRoleName) // return // } // // existing, err := this.playerManager.ExistsRoleName(roleName) // if err != nil { // this.logger.Error("Check role name exist failed, ", err) // _ = player.TipNotice(proto.ErrServerError) // return // } // // if existing { // this.logger.Error("Role name already exists, roleName: ", roleName) // _ = player.TipNotice(proto.ErrExistedRoleName) // return // } // // player.Role.Name = roleName // player.SaveField("role.name", player.Role.Name) // } // // _ = player.Send(proto.ModIdRole, proto.MsgIdRoleChangeName, &proto.MsgRoleChangeNameAck{Name: player.Role.Name}) // return //} // //func (this *PlayerHandler) RoleChangeAvatar(player *logic.Player, msg *net.Message) { // var req = new(proto.MsgRoleChangeAvatarReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // if req.Avatar != player.Role.Avatar { // player.Role.Avatar = req.Avatar // player.SaveField("role.avatar", player.Role.Avatar) // } // // _ = player.Send(proto.ModIdRole, proto.MsgIdRoleChangeAvatar, &proto.MsgRoleChangeAvatarAck{Avatar: player.Role.Avatar}) // return //} // //func (this *PlayerHandler) RoleTalentUpgrade(player *logic.Player, msg *net.Message) { // var req = new(proto.MsgRoleTalentUpgradeReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // if req.Id == 0 { // this.logger.Error("Parameter error, req.Id == 0") // _ = player.TipNotice(proto.ErrParameterError) // return // } // // var talent = player.RoleTalent[req.Id] // // var nextLevelTable *data.TalentLevel // if talent != nil { // var talentTreeTable = this.tables.TalentTree.Get(int(talent.Id)) // if talentTreeTable == nil { // this.logger.Error("Data error, TalentTree not found, id: ", talent.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // var talentLevelTable = this.tables.TalentLevel.Get(int(talent.LevelId)) // if talentLevelTable == nil { // this.logger.Error("Data error, TalentLevel not found, levelId: ", talent.LevelId) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // if talentLevelTable.Level >= talentTreeTable.MaxLevel { // this.logger.Errorf("Talent level alreay max, level: %d, maxLevel: %d", talentLevelTable.Level, talentTreeTable.MaxLevel) // _ = player.TipNotice(proto.ErrLevelAlreadyMax) // return // } // // nextLevelTable = this.tables.TalentLevelExtend.Get(talentTreeTable.Id, talentLevelTable.Level+1) // if talentLevelTable == nil { // this.logger.Errorf("Data error, TalentLevel not found, treeId: %d, nextLevel: %d", talentTreeTable.Id, talentLevelTable.Level+1) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // } else { // var talentTreeTable = this.tables.TalentTree.Get(int(req.Id)) // if talentTreeTable == nil { // this.logger.Error("Data error, TalentTree not found, id: ", req.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // if len(talentTreeTable.Parents) > 0 { // for _, parentId := range talentTreeTable.Parents { // if parentId == 0 { // continue // } // // var parent = player.RoleTalent[uint32(parentId)] // if parent == nil { // this.logger.Error("Parent not found, parentId: ", parentId) // _ = player.TipNotice(proto.ErrTalentNeedParentMax) // return // } // // var parentTreeTable = this.tables.TalentTree.Get(int(parent.Id)) // if parentTreeTable == nil { // this.logger.Error("Data error, TalentTree not found, parentId: ", parent.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // var parentLevelTable = this.tables.TalentLevel.Get(int(parent.LevelId)) // if parentLevelTable == nil { // this.logger.Error("Data error, TalentLevel not found, parentLevelId: ", parent.LevelId) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // if parentLevelTable.Level < parentTreeTable.MaxLevel { // this.logger.Errorf("Parent not level max, parentLevel: %d, maxLevel: %d", parentLevelTable.Level, parentTreeTable.MaxLevel) // _ = player.TipNotice(proto.ErrTalentNeedParentMax) // return // } // } // } // // nextLevelTable = this.tables.TalentLevelExtend.Get(talentTreeTable.Id, 1) // if nextLevelTable == nil { // this.logger.Errorf("Data error, TalentLevel not found, treeId: %d, nextLevel: %d", talentTreeTable.Id, 1) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // talent = &logic.PlayerRoleTalent{Id: uint32(talentTreeTable.Id)} // } // // err = player.CheckMoney(proto.MoneyType(nextLevelTable.MoneyType), uint32(nextLevelTable.MoneyNum)) // if err != nil { // this.logger.Errorf("%s, moneyType: %d, moneyNum: %d", err.Error(), nextLevelTable.MoneyType, nextLevelTable.MoneyNum) // _ = player.TipNotice(err) // return // } // // player.ReduceMoney(proto.MoneyType(nextLevelTable.MoneyType), uint32(nextLevelTable.MoneyNum), logic.LogTypeItemConsumeByTalentUpgrade) // // talent.LevelId = uint32(nextLevelTable.Id) // // player.RoleTalent[talent.Id] = talent // player.SaveModel(talent) // // _ = player.Send(proto.ModIdRole, proto.MsgIdRoleTalentUpgrade, &proto.MsgRoleTalentUpgradeAck{RoleTalent: talent.BuildMsgRoleTalent()}) // // player.UpdateRigAttrs() // return //} // //func (this *PlayerHandler) RoleTalentReset(player *logic.Player, _ *net.Message) { // var monies = map[uint32]uint32{} // for _, talent := range player.RoleTalent { // var level = 0 // for { // level++ // var talentLevelTable = this.tables.TalentLevelExtend.Get(int(talent.Id), level) // if talentLevelTable == nil { // continue // } // // monies[uint32(talentLevelTable.MoneyType)] += uint32(talentLevelTable.MoneyNum) // // if uint32(talentLevelTable.Id) == talent.LevelId { // break // } // } // } // // player.RoleTalent = map[uint32]*logic.PlayerRoleTalent{} // player.SaveField("role_talent", player.RoleTalent) // // for moneyType, moneyNum := range monies { // player.AddMoney(proto.MoneyType(moneyType), moneyNum, logic.LogTypeItemObtainByTalentReturn) // } // // _ = player.Send(proto.ModIdRole, proto.MsgIdRoleTalentReset, nil) // // player.UpdateRigAttrs() // return //}