同步用户状态
parent
a7ee427a08
commit
db8c4d43d9
|
@ -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());
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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,"路线有误");
|
||||
|
|
|
@ -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