Merge branch 'master_dev' into master_arena

master_dev
grimm 2024-01-29 17:27:01 +08:00
commit a2b847371b
8 changed files with 76 additions and 30 deletions

View File

@ -169,7 +169,7 @@ public class UserManager {
user.getUserMissionManager().onGameEvent(user, GameEvent.BEGINNER); user.getUserMissionManager().onGameEvent(user, GameEvent.BEGINNER);
user.getUserMissionManager().onGameEvent(user, GameEvent.VIP_LEVLUP, MissionType.VIP_LEVEL,0); user.getUserMissionManager().onGameEvent(user, GameEvent.VIP_LEVLUP, MissionType.VIP_LEVEL,0);
Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.LOGIN_TIMES.getType(),1)); Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.LOGIN_TIMES.getType(),1));
ReportUtil.onReportEvent(user, ReportEventEnum.CREATE_ROLE.getType());//先发送注册事件 ActivityLogic.getInstance().newPlayerOpenActivityMission(user);
ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD); ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD);
HeroManager heroManager = user.getHeroManager(); HeroManager heroManager = user.getHeroManager();
Map<String, Hero> heroMap = heroManager.getHeroMap(); Map<String, Hero> heroMap = heroManager.getHeroMap();
@ -179,10 +179,9 @@ public class UserManager {
teamPosManager.addTeamOfInitPlayer(teamHeros); teamPosManager.addTeamOfInitPlayer(teamHeros);
long force = HeroLogic.getInstance().calTeamTotalForce(user, 1); long force = HeroLogic.getInstance().calTeamTotalForce(user, 1);
playerManager.setMaxForce(force); playerManager.setMaxForce(force);
ActivityLogic.getInstance().newPlayerOpenActivityMission(user);
user.getExpeditionManager().setExpeditionLeve(1); user.getExpeditionManager().setExpeditionLeve(1);
CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);//初始化角色 CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);//初始化角色
KtEventUtils.onKtEvent(user, ParamEventBean.UserRegister); ReportUtil.onReportEvent(user, ReportEventEnum.CREATE_ROLE.getType());//先发送注册事件
} }
public static User getUser(int uid,boolean canNull) throws Exception { public static User getUser(int uid,boolean canNull) throws Exception {

View File

@ -76,6 +76,7 @@ public class UserMissionManager extends MongoBase {
private CumulationData jadeDynastyCumulationData = new CumulationData();//破阵诛仙日数据 private CumulationData jadeDynastyCumulationData = new CumulationData();//破阵诛仙日数据
private CumulationData jadeDynastyWeekCumulationData = new CumulationData();//破阵诛仙周数据 private CumulationData jadeDynastyWeekCumulationData = new CumulationData();//破阵诛仙周数据
private CumulationData mistyTripCumulationData = new CumulationData();//缥缈之旅数据 private CumulationData mistyTripCumulationData = new CumulationData();//缥缈之旅数据
private CumulationData cowFlyCumulationData = new CumulationData();//牛气冲天数据
/** /**
* *
@ -103,7 +104,7 @@ public class UserMissionManager extends MongoBase {
case DAILY_MISSION_REWARD:{ case DAILY_MISSION_REWARD:{
dailyMissionIdsType.rewardMission(user,(int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION)); dailyMissionIdsType.rewardMission(user,(int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION));
if(!missionTypeEnumListMap.get(GameMisionType.DAILYMISSION).isEmpty()){ if(!missionTypeEnumListMap.get(GameMisionType.DAILYMISSION).isEmpty()){
calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap,(int)parm[0]); calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap, parm[0]);
updateString("dailyMissionIdsType",dailyMissionIdsType); updateString("dailyMissionIdsType",dailyMissionIdsType);
} }
} }
@ -212,6 +213,20 @@ public class UserMissionManager extends MongoBase {
} }
} }
} }
// 牛气冲天活动数据处理
if(!cowFlySkyMissionType.getDoingMissionIds().isEmpty()){
Map<Integer, SArroGantFly> flyMap = SArroGantFly.getTaskTypeMap().get(missionType.getMissionTypeValue());
if (flyMap != null && !flyMap.isEmpty()) {
CumulationData.Result result = cowFlyCumulationData.updateData(missionType, parm);
if(result != null){
cowFlySkyMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION), cowFlyCumulationData);
setCowFlySkyMissionType(cowFlySkyMissionType);
setCowFlyCumulationData(cowFlyCumulationData);
}
}
}
if(!treasureMissionIdsType.getDoingMissionIds().isEmpty() ){ if(!treasureMissionIdsType.getDoingMissionIds().isEmpty() ){
List<STreasureSunlongTaskConfig> sTreasureTaskConfigs = STreasureSunlongTaskConfig.sTreasureTaskConfigListByTypeMapTmp.get(missionType.getMissionTypeValue()); List<STreasureSunlongTaskConfig> sTreasureTaskConfigs = STreasureSunlongTaskConfig.sTreasureTaskConfigListByTypeMapTmp.get(missionType.getMissionTypeValue());
if(sTreasureTaskConfigs!=null){ if(sTreasureTaskConfigs!=null){
@ -319,9 +334,6 @@ public class UserMissionManager extends MongoBase {
// vip任务 // vip任务
vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData); vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData);
updateString("vipMissionIdsType",vipMissionIdsType); updateString("vipMissionIdsType",vipMissionIdsType);
// 牛气冲天任务
cowFlySkyMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION),cumulationData);
updateString("cowFlySkyMissionType",cowFlySkyMissionType);
// 家园任务 // 家园任务
homeMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.HOME_MISSION),cumulationData); homeMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.HOME_MISSION),cumulationData);
updateString("homeMissionType",homeMissionType); updateString("homeMissionType",homeMissionType);
@ -450,6 +462,15 @@ public class UserMissionManager extends MongoBase {
updateString("treasureMissionIdsType", treasureMissionIdsType); updateString("treasureMissionIdsType", treasureMissionIdsType);
} }
public CumulationData getCowFlyCumulationData() {
return cowFlyCumulationData;
}
public void setCowFlyCumulationData(CumulationData cowFlyCumulationData) {
this.cowFlyCumulationData = cowFlyCumulationData;
updateString("cowFlyCumulationData", cowFlyCumulationData);
}
public TreasureMissionType getTreasureMissionIdsType() { public TreasureMissionType getTreasureMissionIdsType() {
return treasureMissionIdsType; return treasureMissionIdsType;
} }

View File

@ -6376,7 +6376,7 @@ public class HeroLogic {
} }
// 避免zero异常 // 避免zero异常
if (count == 0) { if (count == 0) {
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE); count = averageNum;
} }
return count / averageNum; return count / averageNum;
} }

View File

@ -490,7 +490,7 @@ public class MissionLoigc {
*/ */
public static void getCowFlySkyMission(User user ,List<CommonProto.UserMissionInfo> missionList){ public static void getCowFlySkyMission(User user ,List<CommonProto.UserMissionInfo> missionList){
CowFlySkyMissionType missionType = user.getUserMissionManager().getCowFlySkyMissionType(); CowFlySkyMissionType missionType = user.getUserMissionManager().getCowFlySkyMissionType();
CumulationData cumulationData = user.getUserMissionManager().getCumulationData(); CumulationData cumulationData = user.getUserMissionManager().getCowFlyCumulationData();
// 进行中 // 进行中
Set<Integer> doingMissionIds = missionType.getDoingMissionIds(); Set<Integer> doingMissionIds = missionType.getDoingMissionIds();
// 可领取 // 可领取

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.logic.mission.event; package com.ljsd.jieling.logic.mission.event;
import com.ljsd.jieling.logic.dao.CumulationData;
import com.ljsd.jieling.logic.dao.UserMissionManager; import com.ljsd.jieling.logic.dao.UserMissionManager;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameEvent;
@ -25,6 +26,7 @@ public class CowFlySkyRefreshEventProcess implements BaseGameEventProcessor {
cowFlySkyMissionType.getFinishMissionIds().clear(); cowFlySkyMissionType.getFinishMissionIds().clear();
cowFlySkyMissionType.getRewardedMissionIds().clear(); cowFlySkyMissionType.getRewardedMissionIds().clear();
cowFlySkyMissionType.getDoingMissionIds().addAll(arro); cowFlySkyMissionType.getDoingMissionIds().addAll(arro);
missionManager.setCowFlyCumulationData(new CumulationData());
missionManager.setCowFlySkyMissionType(cowFlySkyMissionType); missionManager.setCowFlySkyMissionType(cowFlySkyMissionType);
} }
} }

View File

@ -1,6 +1,5 @@
package com.ljsd.jieling.logic.mission.event; package com.ljsd.jieling.logic.mission.event;
import com.ljsd.jieling.logic.dao.UserMissionManager;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.GameMisionType; import com.ljsd.jieling.logic.mission.GameMisionType;
@ -13,7 +12,6 @@ import java.util.Map;
public class JadeDynastyWeekRefreshEventProcess implements BaseGameEventProcessor { public class JadeDynastyWeekRefreshEventProcess implements BaseGameEventProcessor {
@Override @Override
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception { public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
UserMissionManager missionManager = user.getUserMissionManager();
//当前轮次破阵诛仙的活动ID //当前轮次破阵诛仙的活动ID
int jadeAid = (int) parm[0]; int jadeAid = (int) parm[0];
MissionLogic.getInstance().resetJadeDynastyTaskInfo(user,2, jadeAid, misionTypeListMap); MissionLogic.getInstance().resetJadeDynastyTaskInfo(user,2, jadeAid, misionTypeListMap);

View File

@ -51,15 +51,9 @@ public class CowFlySkyMissionType extends AbstractMissionType {
} }
} }
@Override public void missionRefresh(User user, List<SArroGantFly> flyList, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData){
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) throws Exception {
// 进行中得任务
Set<Integer> doingMissionIds = getDoingMissionIds(); Set<Integer> doingMissionIds = getDoingMissionIds();
Map<Integer, SArroGantFly> flyMap = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue()); for (SArroGantFly fly : flyList) {
if (flyMap == null || flyMap.isEmpty()){
return;
}
for (SArroGantFly fly : flyMap.values()) {
// 任务子id // 任务子id
int id = fly.getId(); int id = fly.getId();
// 不在执行中 // 不在执行中
@ -84,7 +78,23 @@ public class CowFlySkyMissionType extends AbstractMissionType {
// 任务列表更新 // 任务列表更新
doingMissionIds.remove(id); doingMissionIds.remove(id);
getFinishMissionIds().add(id); getFinishMissionIds().add(id);
} }
} }
@Override
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) throws Exception {
Map<Integer, SArroGantFly> flyMap = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue());
if (flyMap == null || flyMap.isEmpty()){
return;
}
missionRefresh(user, new ArrayList<>(flyMap.values()), missionStateChangeInfos, cumulationData);
}
// public void initRefreshCumulationData(User user, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData, int activityId){
// Map<Integer, SArroGantFly> flyMap = SArroGantFly.getActivityMap().get(activityId);
// if (flyMap == null || flyMap.isEmpty()){
// return;
// }
// missionRefresh(user, new ArrayList<>(flyMap.values()), missionStateChangeInfos, cumulationData);
// }
} }

View File

@ -758,6 +758,7 @@ public class ItemUtil {
// 日志记录 // 日志记录
ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, item, itemNum)); ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, item, itemNum));
// id
switch (id){ switch (id){
case Global.EXP://经验 case Global.EXP://经验
userLevelUp(user, itemNum); userLevelUp(user, itemNum);
@ -765,6 +766,14 @@ public class ItemUtil {
case Global.TREASURE_SCORE://青龙秘宝积分 case Global.TREASURE_SCORE://青龙秘宝积分
treasureLevelUp(user); treasureLevelUp(user);
break; break;
case Global.DAILY_TASK_REMOVE_ITEM:
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.DAILY_TASK_FINISH, (int) itemNum);
break;
default:break;
}
// 类型
switch (sItem.getItemType()){
case GlobalItemType.EQUIP://装备 case GlobalItemType.EQUIP://装备
if (reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD) { if (reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD) {
itemManager.setEquipBookMap(itemId, itemNum); itemManager.setEquipBookMap(itemId, itemNum);
@ -777,9 +786,6 @@ public class ItemUtil {
equipManager.addSoulGeal(itemId); equipManager.addSoulGeal(itemId);
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GOT_SOUL_MARK, id, (int) itemNum); user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GOT_SOUL_MARK, id, (int) itemNum);
break; break;
case Global.DAILY_TASK_REMOVE_ITEM:
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.DAILY_TASK_FINISH, (int) itemNum);
break;
case GlobalItemType.TRANSFORMATION_CARD://东海寻仙 case GlobalItemType.TRANSFORMATION_CARD://东海寻仙
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TRANSFIGURATION_CARD_NUM, sItem.getQuantity(), (int) itemNum); user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TRANSFIGURATION_CARD_NUM, sItem.getQuantity(), (int) itemNum);
break; break;
@ -787,7 +793,10 @@ public class ItemUtil {
} }
extraDropAop(user, dropBuilder, sItem); extraDropAop(user, dropBuilder, sItem);
sendToFront.add(CBean2Proto.getItem(item, -1)); // 经验道具特殊,不记录
if (id != Global.EXP){
sendToFront.add(CBean2Proto.getItem(item, -1));
}
} }
// 发送装备图鉴修改推送 // 发送装备图鉴修改推送
@ -801,24 +810,31 @@ public class ItemUtil {
dropBuilder.addAllItemlist(itemProtoList); dropBuilder.addAllItemlist(itemProtoList);
} }
boolean extraBol = !extraItem.isEmpty(); // 经验道具特殊,不发邮件
if (!sendToFront.isEmpty() || extraBol) { Iterator<Map.Entry<Integer, Integer>> iterator = extraItem.entrySet().iterator();
MessageUtil.sendBagIndication(user.getId(), 0, sendToFront, extraBol); while (iterator.hasNext()){
Integer itemId = iterator.next().getKey();
SItem item = SItem.getsItemMap().get(itemId);
if (item.getId() == Global.EXP){
iterator.remove();
}
} }
boolean extraBol = !extraItem.isEmpty();
if (extraBol) { if (extraBol) {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
for(Map.Entry<Integer,Integer> entry : extraItem.entrySet()){ for(Map.Entry<Integer,Integer> entry : extraItem.entrySet()){
SItem item = SItem.getsItemMap().get(entry.getKey()); SItem item = SItem.getsItemMap().get(entry.getKey());
if (item.getItemType() == Global.EXP){
continue;
}
builder.append(entry.getKey()).append("#").append(entry.getValue()); builder.append(entry.getKey()).append("#").append(entry.getValue());
String title = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_title"); String title = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_title");
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())},new int[]{1,0},"#"); String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())},new int[]{1,0},"#");
MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
builder = new StringBuilder(); builder = new StringBuilder();
} }
MessageUtil.sendBagIndication(user.getId(), 0, sendToFront, true);
}
else if (!sendToFront.isEmpty()) {
MessageUtil.sendBagIndication(user.getId(), 0, sendToFront, false);
} }
Poster.getPoster().dispatchEvent(new AddItemEvent(user.getId(),itemMap)); Poster.getPoster().dispatchEvent(new AddItemEvent(user.getId(),itemMap));