Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
4b3435799d
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.config;
|
|||
|
||||
import com.ljsd.jieling.logic.STableManager;
|
||||
import com.ljsd.jieling.logic.Table;
|
||||
import com.ljsd.jieling.logic.dao.GuildMyInfo;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -13,6 +14,7 @@ public class SChallengeMapConfig implements BaseConfig{
|
|||
@Override
|
||||
public void init() throws Exception {
|
||||
integerSChallengeMapConfigMap = STableManager.getConfig(SChallengeMapConfig.class);
|
||||
GuildMyInfo.init();
|
||||
}
|
||||
|
||||
private int mapId;
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package com.ljsd.jieling.handler;
|
||||
|
||||
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 UpdateStateHandler extends BaseHandler{
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.UPDATE_STATE_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
PlayerInfoProto.UpdateStateRequest updateStateRequest = PlayerInfoProto.UpdateStateRequest.parseFrom(netData.parseClientProtoNetData());
|
||||
|
||||
PlayerLogic.getInstance().updateState(iSession,updateStateRequest.getType());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package com.ljsd.jieling.handler.family;
|
||||
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.family.GuildLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class FamilyFightInfoHandler extends BaseHandler {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.FAMILY_FIGHT_INFO_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
GuildLogic.viewFightInfo(iSession, MessageTypeProto.MessageType.FAMILY_FIGHT_INFO_RESPONSE);
|
||||
}
|
||||
}
|
|
@ -1736,6 +1736,12 @@ public class MapLogic {
|
|||
return;
|
||||
}
|
||||
}else if(sChallengeConfig.getSweepingOpenRule()[0]==2){
|
||||
CrossInfo crossInfo = mapManager.getCrossInfoMap().get(mapId);
|
||||
if(crossInfo == null){
|
||||
LOGGER.info("sweep 未通关");
|
||||
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "未通关");
|
||||
return;
|
||||
}
|
||||
MapMission copyMission = mapManager.getCopyMissionProgresById(sChallengeConfig.getMapId());
|
||||
if(copyMission.getTotalWeight()<sChallengeConfig.getSweepingOpenRule()[1]){
|
||||
LOGGER.info("sweep 功绩不足");
|
||||
|
@ -2210,7 +2216,6 @@ public class MapLogic {
|
|||
if (itemNum > 0) {
|
||||
String reward = Global.STAMINA + "#" + itemNum;
|
||||
ItemUtil.drop(user, StringUtil.parseFiledInt2(reward), BIReason.USER_LEVELUPSTAMINA_REWARD);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,13 +12,15 @@ public class FinishOptionsDifficultMapProcessor implements BaseMissionProcesor{
|
|||
public int checkAndUpdateMissionProcessor(User user, SAccomplishmentConfig sAccomplishmentConfig, int eventId, int time, MapMissionType mapMissionType,int missionValue) {
|
||||
MapManager mapManager = user.getMapManager();
|
||||
SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId());
|
||||
if(sChallengeConfig.getDifficultType()!=sAccomplishmentConfig.getValues()[sAccomplishmentConfig.getValues().length-1][0]){
|
||||
int[][] configValues = sAccomplishmentConfig.getValues();
|
||||
|
||||
if(configValues[configValues.length-1][0]!=0&&sChallengeConfig.getDifficultType()!= configValues[configValues.length-1][0]){
|
||||
return GlobalsDef.MAP_MISSION_RETURN;
|
||||
}
|
||||
if(missionValue==-1){
|
||||
return GlobalsDef.MAP_MISSION_RETURN;
|
||||
}
|
||||
int[][] value = sAccomplishmentConfig.getValues();
|
||||
int[][] value = configValues;
|
||||
missionValue = 0-missionValue;
|
||||
for(int i = 0 ; i <value.length-1;i++){
|
||||
for(int j =0;j<value[i].length;j++){
|
||||
|
|
|
@ -4,16 +4,13 @@ import com.ljsd.jieling.config.SErrorCodeEerverConfig;
|
|||
import com.ljsd.jieling.config.SGlobalActivity;
|
||||
import com.ljsd.jieling.config.SSevenDaysScore;
|
||||
import com.ljsd.jieling.config.STreasureTaskConfig;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.logic.dao.ActivityMission;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType;
|
||||
import com.ljsd.jieling.logic.mission.main.TreasureMissionType;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
|
|
@ -1,16 +1,28 @@
|
|||
package com.ljsd.jieling.logic.dao;
|
||||
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
import com.ljsd.jieling.config.SChallengeMapConfig;
|
||||
import com.ljsd.jieling.util.CellUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GuildMyInfo extends MongoBase {
|
||||
private static int speed = 500;
|
||||
private static int initPos = 0;
|
||||
|
||||
|
||||
public static void init(){
|
||||
SChallengeMapConfig sChallengeMapConfig = SChallengeMapConfig.integerSChallengeMapConfigMap.get(11);
|
||||
initPos = CellUtil.xy2Pos(sChallengeMapConfig.getPosition()[0],sChallengeMapConfig.getPosition()[1]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private List<Integer> path = new ArrayList<>(); //行走路线
|
||||
private int curPos=257;//当前位置
|
||||
private int curPos=initPos;//当前位置
|
||||
private long preMoveTimestamp; //上次更新时间
|
||||
|
||||
public void clearOfLevelGuild(){
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.logic.family;
|
||||
|
||||
import com.google.protobuf.GeneratedMessage;
|
||||
import com.ljsd.jieling.config.SChallengeMapConfig;
|
||||
import com.ljsd.jieling.config.SErrorCodeEerverConfig;
|
||||
import com.ljsd.jieling.config.SGuildSetting;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
|
@ -58,11 +59,17 @@ public class GuildLogic {
|
|||
return;
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
Family.GetFamilyInfoResponse build = Family.GetFamilyInfoResponse.newBuilder()
|
||||
Family.GetFamilyInfoResponse.Builder builder = Family.GetFamilyInfoResponse.newBuilder()
|
||||
.setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo))
|
||||
.setFamilyUserInfo(CBean2Proto.getFamilyUserInfo(user, getMemberType(uid, guildInfo.getMembers())))
|
||||
.build();
|
||||
MessageUtil.sendMessage(session,1,msgId,build,true);
|
||||
.setFamilyUserInfo(CBean2Proto.getFamilyUserInfo(user, getMemberType(uid, guildInfo.getMembers())));
|
||||
|
||||
for(Set<Integer> members : guildInfo.getMembers().values()){
|
||||
for(int uidOfMember : members){
|
||||
User userMember = UserManager.getUser(uidOfMember);
|
||||
builder.addFamilyWalkIndicaiton(CBean2Proto.getFamilyWalkIndicaiton(userMember));
|
||||
}
|
||||
}
|
||||
MessageUtil.sendMessage(session,1,msgId,builder.build(),true);
|
||||
}
|
||||
|
||||
|
||||
|
@ -92,7 +99,9 @@ public class GuildLogic {
|
|||
addGuildLog(guildInfo.getId(),GuildDef.Log.CREATE,user.getPlayerInfoManager().getNickName());
|
||||
Family.FamilyCreateResponse build = Family.FamilyCreateResponse.newBuilder()
|
||||
.setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo))
|
||||
.setFamilyUserInfo(CBean2Proto.getFamilyUserInfo(user,GlobalsDef.CHAIRMAN)).build();
|
||||
.setFamilyUserInfo(CBean2Proto.getFamilyUserInfo(user,GlobalsDef.CHAIRMAN))
|
||||
.setFamilyWalkIndicaiton(CBean2Proto.getFamilyWalkIndicaiton(user))
|
||||
.build();
|
||||
MessageUtil.sendMessage(session,1,msgId,build,true);
|
||||
familyFightMatching();
|
||||
|
||||
|
@ -694,6 +703,7 @@ public class GuildLogic {
|
|||
return;
|
||||
}
|
||||
GuildMyInfo guildMyInfo = user.getGuildMyInfo();
|
||||
LOGGER.info("cur ={},path={}",guildMyInfo.getCurPos(),path);
|
||||
boolean continuous = CellUtil.isContinuous(guildMyInfo.getCurPos(),path);
|
||||
if(!continuous){
|
||||
MessageUtil.sendErrorResponse(session,0,msgId,"路线有误");
|
||||
|
@ -853,7 +863,54 @@ public class GuildLogic {
|
|||
}
|
||||
}
|
||||
}
|
||||
private static Family.FamilyFightInfo familyFightDetailInfo(int guildId) throws Exception {
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
Map<Integer, Integer> defendInfo = guildInfo.getDefendInfo();
|
||||
Family.FamilyFightInfo.Builder fightInfo = Family.FamilyFightInfo.newBuilder();
|
||||
fightInfo.setGid(guildId);
|
||||
for(int i = 0 ; i <3 ;i ++){
|
||||
Family.FamilyBuildBuffInfo.Builder buffInfo = Family.FamilyBuildBuffInfo.newBuilder();
|
||||
buffInfo.setBuildId(i+1);
|
||||
buffInfo.setBuffId(i+1);
|
||||
fightInfo.addBuildBuff(buffInfo);
|
||||
}
|
||||
for(Map.Entry<Integer, Integer> entry:defendInfo.entrySet()){
|
||||
Family.FamilyFightPlayerInfo.Builder playerInfo = Family.FamilyFightPlayerInfo.newBuilder();
|
||||
playerInfo.setBuildId(entry.getValue());
|
||||
playerInfo.setBuildId(5);
|
||||
PlayerManager playerManager = UserManager.getUser(entry.getKey()).getPlayerInfoManager();
|
||||
Family.FamilyUserInfo.Builder userInfo =Family.FamilyUserInfo.newBuilder()
|
||||
.setRoleUid(entry.getKey())
|
||||
.setUserName(playerManager.getNickName())
|
||||
.setUserLevel(playerManager.getLevel())
|
||||
.setPosition(2)
|
||||
.setSoulForce(HeroLogic.getInstance().calTeamTotalForce(UserManager.getUser(entry.getKey()),501,false))
|
||||
.setHead(playerManager.getHead())
|
||||
.setFrame(playerManager.getHeadFrame());
|
||||
playerInfo.setUserInfo(userInfo);
|
||||
fightInfo.addUser(playerInfo);
|
||||
}
|
||||
return fightInfo.build();
|
||||
}
|
||||
/**
|
||||
* 公会战查看双方对战信息
|
||||
* @param session
|
||||
* @param messageType
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void viewFightInfo(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
int enemyId = 13;
|
||||
if(guildId==13){
|
||||
enemyId = 14;
|
||||
}
|
||||
Family.FamilyFightInfoResponse.Builder builder = Family.FamilyFightInfoResponse.newBuilder();
|
||||
builder.addInfo(familyFightDetailInfo(guildId));
|
||||
builder.addInfo(familyFightDetailInfo(enemyId));
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),builder.build(),true);
|
||||
|
||||
}
|
||||
/**
|
||||
* 公会战计入缓存
|
||||
* @throws Exception
|
||||
|
|
|
@ -311,6 +311,9 @@ public class MissionEventDistributor {
|
|||
}
|
||||
if(gameMisionType == GameMisionType.SEVENMISSION){
|
||||
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionStateChangeInfo.getMissionId());
|
||||
if(sTreasureTaskConfig.getTaskType() == MissionType.SENVER_HAPPY.getMissionTypeValue()){
|
||||
continue;
|
||||
}
|
||||
progress= sTreasureTaskConfig.getTaskValue()[1][0];
|
||||
if(progress<0){
|
||||
progress=1;
|
||||
|
|
|
@ -14,7 +14,11 @@ import com.ljsd.jieling.logic.fight.CombatLogic;
|
|||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.GameMisionType;
|
||||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||
import com.ljsd.jieling.logic.mission.MissionState;
|
||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
|
||||
import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType;
|
||||
import com.ljsd.jieling.logic.mission.main.TreasureMissionType;
|
||||
import com.ljsd.jieling.logic.store.GiftGoodsType;
|
||||
|
@ -36,6 +40,36 @@ public class PlayerLogic {
|
|||
return InnerClass.instance;
|
||||
}
|
||||
|
||||
//更新客户状态
|
||||
public void updateState(ISession iSession, int type) throws Exception {
|
||||
int uid = iSession.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
//七日狂欢领取活动
|
||||
if(type == 1){
|
||||
Map<Integer, ActivityMission> activityMissionMap = user.getActivityManager().getActivityMissionMap();
|
||||
int sevenActivityId = 0;
|
||||
for(Integer activityId : activityMissionMap.keySet()){
|
||||
if(SGlobalActivity.getsGlobalActivityMap().get(activityId).getType() == ActivityType.SERVERHAPPY){
|
||||
sevenActivityId = activityId;
|
||||
}
|
||||
}
|
||||
if(sevenActivityId!=0){
|
||||
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(sevenActivityId);
|
||||
if(user.getActivityManager().getSenvenTime()<=System.currentTimeMillis()){
|
||||
BitSet rewardedMissionIds = user.getUserMissionManager().getSevenHappyMissionType().getRewardedMissionIds();
|
||||
MissionState state = MissionState.FINISH;
|
||||
if(rewardedMissionIds.get(sTreasureTaskConfig.getId())){
|
||||
state = MissionState.REWARD;
|
||||
}
|
||||
int progrss = MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getSevenHappyCumulationData(),sTreasureTaskConfig.getTaskType(),sTreasureTaskConfig.getTaskValue()[0]);
|
||||
MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(sTreasureTaskConfig.getId(), state, progrss);
|
||||
MissionEventDistributor.getMissionStateChangeInfo(GameMisionType.SEVENMISSION).add(missionStateChangeInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.UPDATE_STATE_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
|
||||
|
||||
static class InnerClass{
|
||||
public final static PlayerLogic instance = new PlayerLogic();
|
||||
|
|
Loading…
Reference in New Issue