修行2.0

back_recharge
duhui 2021-05-17 09:37:16 +08:00
parent b51cd010a3
commit 23d1b68080
12 changed files with 74 additions and 34 deletions

View File

@ -287,7 +287,7 @@ public class EndExpeditionBattleRequest extends BaseHandler<Expedition.EndExpedi
throw new ErrorCodeException("试炼节点英雄掉落失败"); throw new ErrorCodeException("试炼节点英雄掉落失败");
} }
Hero hero1 = ExpeditionLogic.createRandomHero(user,hero,heroTid,level,-1,2); Hero hero1 = ExpeditionLogic.createRandomHero(user,hero,heroTid,level,-1,2);
drop.addHero(CBean2Proto.getHero(hero1)); drop.addHero(CBean2Proto.getHero(user,hero1));
for(Integer equipId : hero1.getEquipByPositionMap().values()){ for(Integer equipId : hero1.getEquipByPositionMap().values()){
drop.addEquipId(CBean2Proto.getEquipProto(equipId)); drop.addEquipId(CBean2Proto.getEquipProto(equipId));
} }

View File

@ -76,7 +76,7 @@ public class GetExpeditionRequestHandler extends BaseHandler<Expedition.GetExped
List<CommonProto.Hero> heroList = new ArrayList<>(); List<CommonProto.Hero> heroList = new ArrayList<>();
Map<String, Hero> heroMap = user.getExpeditionManager().getHeroMap(); Map<String, Hero> heroMap = user.getExpeditionManager().getHeroMap();
for(Hero hero : heroMap.values()){ for(Hero hero : heroMap.values()){
heroList.add(CBean2Proto.getHero(hero)); heroList.add(CBean2Proto.getHero(user,hero));
} }
builder.addAllHeroList(heroList); builder.addAllHeroList(heroList);
Map<String, PropertyItem> equipMap = user.getExpeditionManager().getEquipMap(); Map<String, PropertyItem> equipMap = user.getExpeditionManager().getEquipMap();

View File

@ -110,7 +110,7 @@ public class HeroNodeGetInfoRequestHandler extends BaseHandler<Expedition.HeroNo
// 英雄战力 // 英雄战力
inner.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute)); inner.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute));
// 英雄 // 英雄
inner.setHero(CBean2Proto.getHero(hero)); inner.setHero(CBean2Proto.getHero(user,hero));
builder.addViewHeroInfo(inner); builder.addViewHeroInfo(inner);
user.getExpeditionManager().getGHeroSet().add(hero.getTemplateId()); user.getExpeditionManager().getGHeroSet().add(hero.getTemplateId());
}); });

View File

@ -100,7 +100,7 @@ public class HeroNodeRequestHandler extends BaseHandler<Expedition.HeroNodeReque
} }
drop.addHero(CBean2Proto.getHero(hero)); drop.addHero(CBean2Proto.getHero(user,hero));
//clear temp //clear temp
// user.getExpeditionManager().clearEquipToTemp(); // user.getExpeditionManager().clearEquipToTemp();

View File

@ -164,7 +164,7 @@ public class GMRequestHandler extends BaseHandler{
} }
hero.setBreakId(breakId); hero.setBreakId(breakId);
} }
CommonProto.Hero finalHeroProto = CBean2Proto.getHero(hero); CommonProto.Hero finalHeroProto = CBean2Proto.getHero(cUser,hero);
gmBuilder.setDrop(CommonProto.Drop.newBuilder().addHero(finalHeroProto).build()); gmBuilder.setDrop(CommonProto.Drop.newBuilder().addHero(finalHeroProto).build());
break; break;
@ -366,7 +366,7 @@ public class GMRequestHandler extends BaseHandler{
heroTmp.setBreakId(scHeroRankUpConfigBreak.getId()); heroTmp.setBreakId(scHeroRankUpConfigBreak.getId());
} }
} }
gmBuilder.setDrop(CommonProto.Drop.newBuilder().addHero(CBean2Proto.getHero(heroTmp)).build()); gmBuilder.setDrop(CommonProto.Drop.newBuilder().addHero(CBean2Proto.getHero(cUser,heroTmp)).build());
} }

View File

@ -58,7 +58,7 @@ public class GetAllHerosHandler extends BaseHandler{
} }
} }
} }
heroList.add(CBean2Proto.getHero(hero)); heroList.add(CBean2Proto.getHero(user,hero));
} }
boolean isSendFinish = false; boolean isSendFinish = false;
int endIndex = startIndex + Global.SEND_CARD_COUNT; int endIndex = startIndex + Global.SEND_CARD_COUNT;

View File

@ -70,7 +70,7 @@ public class DoHeroChangeRequestHandler extends BaseHandler<HeroInfoProto.DoHer
newHero.setEquipByPositionMap(hero.getEquipByPositionMap()); newHero.setEquipByPositionMap(hero.getEquipByPositionMap());
newHero.setJewelInfo(hero.getJewelInfo()); newHero.setJewelInfo(hero.getJewelInfo());
user.getHeroManager().addHero(newHero); user.getHeroManager().addHero(newHero);
drop.addHero(CBean2Proto.getHero(newHero)); drop.addHero(CBean2Proto.getHero(user,newHero));
//新头像 //新头像
SItem sItem = SItem.getsItemMap().get(hero.getChangeId()); SItem sItem = SItem.getsItemMap().get(hero.getChangeId());
if(sItem != null){ if(sItem != null){

View File

@ -8,13 +8,20 @@ import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.dao.PurpleMansionSeal; import com.ljsd.jieling.logic.dao.PurpleMansionSeal;
import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.CBean2Proto;
import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import config.SXiuXian; import config.SXiuXian;
import config.SXiuXianSkill; import config.SXiuXianSkill;
import manager.STableManager; import manager.STableManager;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import rpc.protocols.CommonProto;
import rpc.protocols.HeroInfoProto; import rpc.protocols.HeroInfoProto;
import rpc.protocols.MessageTypeProto; import rpc.protocols.MessageTypeProto;
import java.util.List;
/** /**
* @Author hj * @Author hj
* @Description , * @Description ,
@ -31,9 +38,9 @@ public class UpPracticeLevelHandler extends BaseHandler<HeroInfoProto.UpPractice
} }
@Override @Override
public GeneratedMessage processWithProto(int uid, HeroInfoProto.UpPracticeLevelRequest proto) throws Exception { public void processWithProto(ISession iSession, HeroInfoProto.UpPracticeLevelRequest proto) throws Exception {
// 用户信息 // 用户信息
User user = UserManager.getUser(uid); User user = UserManager.getUser(iSession.getUid());
if (user == null) { if (user == null) {
throw new ErrorCodeException(ErrorCode.UNKNOWN); throw new ErrorCodeException(ErrorCode.UNKNOWN);
} }
@ -73,9 +80,16 @@ public class UpPracticeLevelHandler extends BaseHandler<HeroInfoProto.UpPractice
PurpleMansionSeal purpleMansionSeal = new PurpleMansionSeal(seal, xianSkill.getType(),"",0); PurpleMansionSeal purpleMansionSeal = new PurpleMansionSeal(seal, xianSkill.getType(),"",0);
user.getHeroManager().putPurpleMansionSeal(purpleMansionSeal); user.getHeroManager().putPurpleMansionSeal(purpleMansionSeal);
} }
// 推送神印信息
List<CommonProto.PurpleMansionSeal> sealInfo = CBean2Proto.getPurpleMansionSealInfo(user);
HeroInfoProto.PurpleMansionSealIndication build2 = HeroInfoProto.PurpleMansionSealIndication.newBuilder().addAllSealList(sealInfo).build();
MessageUtil.sendIndicationMessage(iSession,1, MessageTypeProto.MessageType.PurpleMansionSealIndication_VALUE,build2,true);
} }
return HeroInfoProto.UpPracticeLevelResponse.newBuilder().setPracticeLevel(xiuXian2.getId()).build(); // 升级返回
HeroInfoProto.UpPracticeLevelResponse build = HeroInfoProto.UpPracticeLevelResponse.newBuilder().setPracticeLevel(xiuXian2.getId()).build();
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.UpPracticeLevelResponse_VALUE,build,true);
} }
} }

View File

@ -1497,6 +1497,9 @@ public class HeroLogic{
SXiuXianSkill xianSkill = STableManager.getConfig(SXiuXianSkill.class).get(sealId); SXiuXianSkill xianSkill = STableManager.getConfig(SXiuXianSkill.class).get(sealId);
// 技能数组转list // 技能数组转list
int skillId = xianSkill.getSkillId(); int skillId = xianSkill.getSkillId();
if (skillId <= 0){
return;
}
// 适用范围 // 适用范围
int[] fitList = xianSkill.getFitList(); int[] fitList = xianSkill.getFitList();
switch (fitList[0]){ switch (fitList[0]){
@ -1930,11 +1933,11 @@ public class HeroLogic{
// 修行等级属性加成 // 修行等级属性加成
Map<Integer, SXiuXian> xiuXianMap = STableManager.getConfig(SXiuXian.class); Map<Integer, SXiuXian> xiuXianMap = STableManager.getConfig(SXiuXian.class);
int practiceLevel = user.getHeroManager().getPracticeLevel(); int practiceLevel = user.getHeroManager().getPracticeLevel();
xiuXianMap.values().forEach(v->{ for (SXiuXian v : xiuXianMap.values()) {
if (v.getId() >= practiceLevel && v.getTotalPros() != null){ if (practiceLevel >= v.getId() && v.getTotalPros() != null){
combinedAttribute(v.getTotalPros(),heroAllAttribute); combinedAttribute(v.getTotalPros(),heroAllAttribute);
} }
}); }
// //皮肤、称号加成 -- 前端未实现,暂时注释 // //皮肤、称号加成 -- 前端未实现,暂时注释
// int decoration = user.getPlayerInfoManager().getDecoration(); // int decoration = user.getPlayerInfoManager().getDecoration();

View File

@ -625,7 +625,7 @@ public class PlayerLogic {
builder.addEquip(CBean2Proto.getEquipProto(equipId)); builder.addEquip(CBean2Proto.getEquipProto(equipId));
} }
builder.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute)); builder.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute));
builder.setHero(CBean2Proto.getHero(hero)); builder.setHero(CBean2Proto.getHero(userInMem,hero));
Map<Integer, Integer> guildSkill = userInMem.getGuildMyInfo().getGuildSkill(); Map<Integer, Integer> guildSkill = userInMem.getGuildMyInfo().getGuildSkill();
int profession = SCHero.getsCHero().get(hero.getTemplateId()).getProfession(); int profession = SCHero.getsCHero().get(hero.getTemplateId()).getProfession();
Integer skill = guildSkill.getOrDefault(profession, 0); Integer skill = guildSkill.getOrDefault(profession, 0);

View File

@ -24,6 +24,7 @@ import util.StringUtil;
import util.TimeUtils; import util.TimeUtils;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
public class CBean2Proto { public class CBean2Proto {
@ -205,7 +206,7 @@ public class CBean2Proto {
return userMountLists; return userMountLists;
} }
public static CommonProto.Hero getHero(Hero hero){ public static CommonProto.Hero getHero(User user, Hero hero){
List<CommonProto.SoulPos> soulPoss = new ArrayList<>(); List<CommonProto.SoulPos> soulPoss = new ArrayList<>();
Map<Integer, Integer> soulEquipMap = hero.getSoulEquipByPositionMap(); Map<Integer, Integer> soulEquipMap = hero.getSoulEquipByPositionMap();
if(soulEquipMap!=null&&!soulEquipMap.isEmpty()){ if(soulEquipMap!=null&&!soulEquipMap.isEmpty()){
@ -216,24 +217,26 @@ public class CBean2Proto {
soulPoss.add(builder.build()); soulPoss.add(builder.build());
} }
} }
return CommonProto.Hero return CommonProto.Hero
.newBuilder() .newBuilder()
.setId(hero.getId()) .setId(hero.getId())
.setHeroId(hero.getTemplateId()) .setHeroId(hero.getTemplateId())
.setLevel(hero.getOriginalLevel()) .setLevel(hero.getOriginalLevel())
.setStar(hero.getStar()) .setStar(hero.getStar())
.setBreakId(hero.getBreakId()) .setBreakId(hero.getBreakId())
.setStarBreakId(hero.getStarBreakId()) .setStarBreakId(hero.getStarBreakId())
.setCreateTime(hero.getCreateTime()) .setCreateTime(hero.getCreateTime())
.addAllEquipIdList(hero.getEquipByPositionMap().values()) .addAllEquipIdList(hero.getEquipByPositionMap().values())
.setEspecialEquipLevel(hero.getEspecialEquipLevel()) .setEspecialEquipLevel(hero.getEspecialEquipLevel())
.addAllSoulPos(soulPoss) .addAllSoulPos(soulPoss)
.setLockState(hero.getIsLock()) .setLockState(hero.getIsLock())
.addAllJewels(hero.getJewelInfo()) .addAllJewels(hero.getJewelInfo())
.setCreatetype(hero.getCreateType()) .setCreatetype(hero.getCreateType())
.setChangeId(hero.getChangeId()) .setChangeId(hero.getChangeId())
.setSkinId(hero.getSkin()) .setSkinId(hero.getSkin())
.build(); .addAllSealIdList(getSealIdListByHero(user,hero))
.build();
} }
/* public static CommonProto.Hero getRobotHero(SCHero scHero, SArenaRobotConfig sArenaRobotConfig) throws Exception { /* public static CommonProto.Hero getRobotHero(SCHero scHero, SArenaRobotConfig sArenaRobotConfig) throws Exception {
@ -723,4 +726,24 @@ public class CBean2Proto {
}); });
return list; return list;
} }
/**
* id
* @param user
* @param hero
* @return
*/
private static List<Integer> getSealIdListByHero(User user, Hero hero){
ArrayList<Integer> list = new ArrayList<>();
Collection<PurpleMansionSeal> values = user.getHeroManager().getPurpleMansionSeal().values();
for (PurpleMansionSeal v : values) {
if (v.getState() == 1){
if (v.getType() == 1 && !v.getSubId().equals(hero.getId())){
continue;
}
list.add(v.getSealId());
}
}
return list;
}
} }

View File

@ -1276,7 +1276,7 @@ public class ItemUtil {
heroManager.addHero(hero); heroManager.addHero(hero);
// 鸿蒙阵推送 // 鸿蒙阵推送
HeroLogic.getInstance().addOrUpdateHongmeng(OnlineUserManager.getSessionByUid(user.getId())); HeroLogic.getInstance().addOrUpdateHongmeng(OnlineUserManager.getSessionByUid(user.getId()));
heroList.add(CBean2Proto.getHero(hero)); heroList.add(CBean2Proto.getHero(user,hero));
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级 if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级
String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,1}); String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,1});