头像框修改、初始化提交

back_recharge
lvxinran 2019-07-18 17:46:17 +08:00
parent a25dc800dc
commit 124b7b5e0f
6 changed files with 84 additions and 3 deletions

View File

@ -77,6 +77,8 @@ public class SGameSetting implements BaseConfig {
private int[] achievementRefreshType;
private int defaultPicture;
private static SGameSetting gameSetting;
@ -214,4 +216,8 @@ public class SGameSetting implements BaseConfig {
public int[] getAchievementRefreshType() {
return achievementRefreshType;
}
public int getDefaultPicture() {
return defaultPicture;
}
}

View File

@ -61,6 +61,8 @@ public interface BIReason {
int TOWER_FLOOR_REWARD = 37;
int MONTH_CARD_REWARD = 38;
//道具消耗原因 1000开头
int ADVENTURE_UPLEVEL_CONSUME = 1000; //秘境升级
int SECRETBOX_CONSUME = 1001; //秘盒抽卡

View File

@ -0,0 +1,28 @@
package com.ljsd.jieling.handler.player;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import org.springframework.stereotype.Component;
@Component
public class ModifyHeadFrameHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.MODIFY_HEAD_FRAME_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] bytes = netData.parseClientProtoNetData();
PlayerInfoProto.modifyHeadFrameRequest request = PlayerInfoProto.modifyHeadFrameRequest.parseFrom(bytes);
int headFrameId = request.getHeadFrameId();
PlayerLogic.getInstance().modifyHeadFrame(iSession,headFrameId,MessageTypeProto.MessageType.MODIFY_HEAD_FRAME_RESPONSE);
}
}

View File

@ -89,6 +89,7 @@ public class UserManager {
playerManager.setLoginTime(now);
playerManager.updateVipInfo(user,0);
playerManager.setRechargeInfo(new RechargeInfo());
playerManager.setHeadFrame(SGameSetting.getGameSetting().getDefaultPicture());
SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(1);
playerManager.setMaxStamina(sPlayerLevelConfig.getMaxEnergy());
ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD);

View File

@ -867,6 +867,7 @@ public class CombatLogic {
public static Map<String,Map<Integer, Integer>> elementEffect(User user){
Map<String, Map<Integer, Integer>> heroAllAttributeMap = user.getMapManager().getHeroAllAttributeMap();
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
Map<Integer, SElementalResonanceConfig> configMap = SElementalResonanceConfig.configMap;
//找出上场的Id
Set<String> heroes = heroAllAttributeMap.keySet();
@ -888,13 +889,36 @@ public class CombatLogic {
}
}
propertiesMap = sortByValueDescending(propertiesMap);
for(Map.Entry<Integer,Integer> entry :propertiesMap.entrySet()){
LOGGER.info("{}系类型数量为{}",entry.getKey(),entry.getValue());
}
int[][] effect = new int[2][];
int[] normalProperties = new int[3];
int[] special = new int[2];
//暗属性判断
if(propertiesMap.containsKey(6)){
special[0] = 2;
special[1] = propertiesMap.get(6);
}
propertiesMap.remove(6);
//光属性判断
if(propertiesMap.size()>1){
if(propertiesMap.containsKey(5)) {
int allRoundProperCount = propertiesMap.get(5);
propertiesMap.remove(5);
if(allRoundProperCount<5){ //光属性小于5
for (Map.Entry<Integer,Integer> entry:propertiesMap.entrySet()){
if(entry.getKey()!=6&&entry.getKey()!=5){
propertiesMap.put(entry.getKey(), entry.getValue()+allRoundProperCount);
break;
}
}
}
}
}
//普通属性判断
normalProperties[0] = 1;
int nomalIndex = 1;
for(Map.Entry<Integer,Integer> entry:propertiesMap.entrySet()){
@ -907,17 +931,28 @@ public class CombatLogic {
}
effect[0] = normalProperties;
effect[1] = special;
Map<Integer, SElementalResonanceConfig> configMap = SElementalResonanceConfig.configMap;
for(int i = 0 ; i<effect.length;i++){
if(effect[i].length>2){
LOGGER.info("生效的光环为{}{}{}",effect[i][0],effect[i][1],effect[i][2]);
}else{
LOGGER.info("生效的光环为{}{}",effect[i][0],effect[i][1]);
}
}
List<int[][]> resultEffect = new ArrayList<>();
for(int i = 0; i <effect.length;i++){
for(Map.Entry<Integer,SElementalResonanceConfig> entry:configMap.entrySet()){
if(Arrays.equals(effect[i],entry.getValue().getType())){
resultEffect.add(entry.getValue().getContent());
}
}
}
Iterator<int[][]> it = resultEffect.iterator();
while (it.hasNext()){
int[][] next = it.next();
System.out.println(next[0][0]+","+next[0][1]);
}
}
System.out.println();
return heroAllAttributeMap;
}

View File

@ -258,4 +258,13 @@ public class PlayerLogic {
}
}
public void modifyHeadFrame(ISession session, int frameId,MessageTypeProto.MessageType messageType) throws Exception {
User user = UserManager.getUser(session.getUid());
ItemManager itemManager = user.getItemManager();
if(itemManager.getItem(frameId).getItemNum()<1){
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"无此头像框");
}
user.getPlayerInfoManager().setHeadFrame(frameId);
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
}
}