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.VIP_LEVLUP, MissionType.VIP_LEVEL,0);
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);
HeroManager heroManager = user.getHeroManager();
Map<String, Hero> heroMap = heroManager.getHeroMap();
@ -179,10 +179,9 @@ public class UserManager {
teamPosManager.addTeamOfInitPlayer(teamHeros);
long force = HeroLogic.getInstance().calTeamTotalForce(user, 1);
playerManager.setMaxForce(force);
ActivityLogic.getInstance().newPlayerOpenActivityMission(user);
user.getExpeditionManager().setExpeditionLeve(1);
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 {

View File

@ -76,6 +76,7 @@ public class UserMissionManager extends MongoBase {
private CumulationData jadeDynastyCumulationData = new CumulationData();//破阵诛仙日数据
private CumulationData jadeDynastyWeekCumulationData = 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:{
dailyMissionIdsType.rewardMission(user,(int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION));
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);
}
}
@ -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() ){
List<STreasureSunlongTaskConfig> sTreasureTaskConfigs = STreasureSunlongTaskConfig.sTreasureTaskConfigListByTypeMapTmp.get(missionType.getMissionTypeValue());
if(sTreasureTaskConfigs!=null){
@ -319,9 +334,6 @@ public class UserMissionManager extends MongoBase {
// vip任务
vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData);
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);
updateString("homeMissionType",homeMissionType);
@ -450,6 +462,15 @@ public class UserMissionManager extends MongoBase {
updateString("treasureMissionIdsType", treasureMissionIdsType);
}
public CumulationData getCowFlyCumulationData() {
return cowFlyCumulationData;
}
public void setCowFlyCumulationData(CumulationData cowFlyCumulationData) {
this.cowFlyCumulationData = cowFlyCumulationData;
updateString("cowFlyCumulationData", cowFlyCumulationData);
}
public TreasureMissionType getTreasureMissionIdsType() {
return treasureMissionIdsType;
}

View File

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

View File

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

View File

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

View File

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

View File

@ -51,15 +51,9 @@ public class CowFlySkyMissionType extends AbstractMissionType {
}
}
@Override
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) throws Exception {
// 进行中得任务
public void missionRefresh(User user, List<SArroGantFly> flyList, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData){
Set<Integer> doingMissionIds = getDoingMissionIds();
Map<Integer, SArroGantFly> flyMap = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue());
if (flyMap == null || flyMap.isEmpty()){
return;
}
for (SArroGantFly fly : flyMap.values()) {
for (SArroGantFly fly : flyList) {
// 任务子id
int id = fly.getId();
// 不在执行中
@ -84,7 +78,23 @@ public class CowFlySkyMissionType extends AbstractMissionType {
// 任务列表更新
doingMissionIds.remove(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));
// id
switch (id){
case Global.EXP://经验
userLevelUp(user, itemNum);
@ -765,6 +766,14 @@ public class ItemUtil {
case Global.TREASURE_SCORE://青龙秘宝积分
treasureLevelUp(user);
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://装备
if (reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD) {
itemManager.setEquipBookMap(itemId, itemNum);
@ -777,9 +786,6 @@ public class ItemUtil {
equipManager.addSoulGeal(itemId);
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GOT_SOUL_MARK, id, (int) itemNum);
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://东海寻仙
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TRANSFIGURATION_CARD_NUM, sItem.getQuantity(), (int) itemNum);
break;
@ -787,7 +793,10 @@ public class ItemUtil {
}
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);
}
boolean extraBol = !extraItem.isEmpty();
if (!sendToFront.isEmpty() || extraBol) {
MessageUtil.sendBagIndication(user.getId(), 0, sendToFront, extraBol);
// 经验道具特殊,不发邮件
Iterator<Map.Entry<Integer, Integer>> iterator = extraItem.entrySet().iterator();
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) {
StringBuilder builder = new StringBuilder();
for(Map.Entry<Integer,Integer> entry : extraItem.entrySet()){
SItem item = SItem.getsItemMap().get(entry.getKey());
if (item.getItemType() == Global.EXP){
continue;
}
builder.append(entry.getKey()).append("#").append(entry.getValue());
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},"#");
MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
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));