back_recharge
zhangshanxue 2019-08-12 20:27:43 +08:00
commit 4b3435799d
10 changed files with 169 additions and 12 deletions

View File

@ -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;

View File

@ -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());
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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++){

View File

@ -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;

View File

@ -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(){

View File

@ -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

View File

@ -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;

View File

@ -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();