Merge branch 'master_test_gn' into master_test_gn_mcz
commit
2d9ad53842
|
@ -7,6 +7,7 @@ import com.ljsd.common.mogodb.MongoUpdateImp;
|
|||
import com.ljsd.jieling.db.mongo.core.ServerAreaInfoManager;
|
||||
import com.ljsd.jieling.logic.dao.ServerConfig;
|
||||
import com.ljsd.jieling.logic.dao.root.GlobalSystemControl;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.mongodb.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
|
@ -1332,7 +1332,7 @@ public class MapLogic {
|
|||
.newBuilder()
|
||||
.setResult(resultCode)
|
||||
.setEnventDrop(dropBuilder)
|
||||
.addAllRemainHpList(remainHp)
|
||||
// .addAllRemainHpList(remainHp)
|
||||
.setEssenceValue(mapManager.getTrialInfo().getEnergy())
|
||||
.setLastXY(mapManager.getLastXY())
|
||||
.build();
|
||||
|
@ -1384,7 +1384,7 @@ public class MapLogic {
|
|||
}
|
||||
fastFightResponse.setEnventDrop(drop.build());
|
||||
fastFightResponse.setResult(resultCode);
|
||||
fastFightResponse.addAllRemainHpList(remainHp);
|
||||
// fastFightResponse.addAllRemainHpList(remainHp);
|
||||
fastFightResponse.setEssenceValue(mapManager.getTrialInfo().getEnergy());
|
||||
fastFightResponse.build();
|
||||
|
||||
|
|
|
@ -247,7 +247,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
/**
|
||||
* 领奖后更新奖励进度
|
||||
*/
|
||||
private void checkAndSetProgress(ActivityMission activityMission, ActivityProgressInfo activityProgressInfo, int missionId) {
|
||||
public void checkAndSetProgress(ActivityMission activityMission, ActivityProgressInfo activityProgressInfo, int missionId) {
|
||||
activityProgressInfo.setState(ActivityType.HAD_TAKED);
|
||||
activityMission.getActivityMissionMap().put(missionId, activityProgressInfo);
|
||||
}
|
||||
|
|
|
@ -78,7 +78,8 @@ public interface ActivityType {
|
|||
int ITEMS_STORE= 6000;//百宝商会
|
||||
int TRIAL_EXPERT = 70;//幻境达人
|
||||
int SHEJI_ACTIVITY = 60;//社稷大典
|
||||
int GOOD_LUCK= 61;//扭转乾坤
|
||||
int GOOD_LUCK= 61;//扭转乾坤
|
||||
int COW_FLY_SKY = 62;//牛气冲天
|
||||
|
||||
int SUB_ACTIVITY = 8000;//易经宝库
|
||||
int SKIN_RECHARGE_ACTIVITY = 71;
|
||||
|
|
|
@ -66,6 +66,7 @@ public enum ActivityTypeEnum {
|
|||
DEMON_TREASURE(ActivityType.DEMON_TREASURE,LimitRandomSpecialMonsterActivity::new),
|
||||
NEW_GENERAL_ATTACK(ActivityType.NEW_GENERAL_ATTACK,DefaultEmptyActivity::new),
|
||||
GOOD_LUCK(ActivityType.GOOD_LUCK,DefaultEmptyActivity::new),
|
||||
COW_FLY_SKY(ActivityType.COW_FLY_SKY,CowFlySkyActivity::new),
|
||||
|
||||
;
|
||||
private int type;
|
||||
|
@ -95,16 +96,16 @@ public enum ActivityTypeEnum {
|
|||
return abstractActivity;
|
||||
}
|
||||
|
||||
//相同类型不同活动id需要处理处理多次事件
|
||||
/**
|
||||
* 相同类型不同活动id需要处理处理多次事件
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public static AbstractActivity getActicityType(int id) {
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
// for (ActivityTypeEnum activityType:ActivityTypeEnum.values()) {
|
||||
// if(activityType.getType()==sGlobalActivity.getType()){
|
||||
// return activityType.toActivity(id);
|
||||
// }
|
||||
// }
|
||||
if (activityEnumMap.containsKey(sGlobalActivity.getType()))
|
||||
if (activityEnumMap.containsKey(sGlobalActivity.getType())){
|
||||
return activityEnumMap.get(sGlobalActivity.getType()).toActivity(id);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,103 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.dao.Item;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SArroGantFly;
|
||||
import config.SGlobalActivity;
|
||||
import manager.STableManager;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class CowFlySkyActivity extends AbstractActivity {
|
||||
|
||||
CowFlySkyActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
ActivityMission mission = new ActivityMission();
|
||||
List<SActivityRewardConfig> rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
ArrayList<Integer> integers = new ArrayList<>(rewardConfigs.size());
|
||||
rewardConfigs.forEach(v->integers.add(v.getId()));
|
||||
ActivityLogic.getInstance().initOtherMission(mission, integers);
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.COW_FLY_SKY_REFRESH, id);
|
||||
LOGGER.info("牛气冲天活动刷新...");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
//checkAndUpdate cfg
|
||||
SActivityRewardConfig config = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
if (config == null || config.getActivityId() != id) {
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL,"功能不存在:"+missionId);
|
||||
}
|
||||
|
||||
// 验证数据库中 任务信息是否正确
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if (mission == null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE,"数据错误");
|
||||
}
|
||||
if (mission.getActivityState() != ActivityType.OPEN_STATE || mission.getOpenType() == 0) {
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN,"活动未开启");
|
||||
}
|
||||
ActivityProgressInfo progressInfo = mission.getActivityMissionMap().get(missionId);
|
||||
if (progressInfo == null || progressInfo.getState() == ActivityType.HAD_TAKED) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("活动奖励已经领取"));
|
||||
}
|
||||
|
||||
// 是否满足领取条件值
|
||||
if (!checkValue(user,config.getValues())) {
|
||||
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), config.getId(), progressInfo.getProgrss(), config.getValues());
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("未达到领取条件"));
|
||||
}
|
||||
// 更改任务状态
|
||||
checkAndSetProgress(mission,progressInfo,missionId);
|
||||
//up miss
|
||||
int[][] reward = config.getReward();
|
||||
// reward
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,reward,missionId);
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean checkValue(User user,int[][] value){
|
||||
Item item = user.getItemManager().getItem(value[0][0]);
|
||||
return item.getItemNum() >= value[1][0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityEndOnMySelf(User user) throws Exception {
|
||||
// 牛气冲天 活动结束会清空道具
|
||||
int removeItemId = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).get(0).getValues()[0][0];
|
||||
Item item = user.getItemManager().getItem(removeItemId);
|
||||
if (item != null) {
|
||||
int[][] cost = new int[1][];
|
||||
cost[0] = new int[]{item.getItemId(), (int) item.getItemNum()};
|
||||
ItemUtil.itemCost(user, cost, BIReason.EXCHANGE_ACTIVITY_CLOSE, id);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -47,13 +47,6 @@ public class DefaultEmptyActivity extends AbstractActivity{
|
|||
sevenHappyMissionType.getFinishMissionIds().remove(sTreasureTaskConfig.getId());
|
||||
sevenHappyMissionType.getRewardedMissionIds().set(sTreasureTaskConfig.getId());
|
||||
user.getUserMissionManager().setSevenHappyMissionType(sevenHappyMissionType);
|
||||
/* SSevenDaysScore sSevenDaysScore = SSevenDaysScore.SSevenDaysScoreByActivityIdAndScoreMap.get(id).get(senvenScores);
|
||||
if(null!=sSevenDaysScore){
|
||||
String mailReward = ItemUtil.getMailReward(sSevenDaysScore.getReward());
|
||||
String title= SErrorCodeEerverConfig.getI18NMessage("opencarnival_activity_"+id+"_title");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("opencarnival_activity_"+id+"_txt",new String[]{Integer.toString(senvenScores)});
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,(int)(System.currentTimeMillis()/1000), Global.MAIL_EFFECTIVE_TIME);
|
||||
}*/
|
||||
}
|
||||
}else if(sGlobalActivity.getType() == ActivityType.EXCHANGEANDDROP || sGlobalActivity.getType() == ActivityType.NEW_GENERAL_ATTACK){
|
||||
// 限时兑换和新将来袭活动结束会清空道具
|
||||
|
|
|
@ -27,7 +27,9 @@ public class RemoveEventHeroHandler implements IEventHandler{
|
|||
}
|
||||
Hero hero = userInMem.getHeroManager().getHeroMap().get(heroId);
|
||||
Map<String, PropertyItem> equipMap = userInMem.getEquipManager().getEquipMap();
|
||||
hero.getEquipByPositionMap().values().forEach(equip->equipMap.get(equip).setHeroId(""));
|
||||
hero.getEquipByPositionMap().values().forEach(equip-> {
|
||||
equipMap.get(String.valueOf(equip)).setHeroId("");
|
||||
});
|
||||
Map<String, Integer> endlessHeroInfo = userInMem.getMapManager().getEndlessMapInfo().getEndlessHeroInfo();
|
||||
if(endlessHeroInfo!=null && endlessHeroInfo.containsKey(heroId)){
|
||||
endlessHeroInfo.remove(heroId);
|
||||
|
|
|
@ -33,6 +33,7 @@ public class GuilidManager {
|
|||
}
|
||||
|
||||
public static void removeGuildInfo(GuildInfo guildInfo) throws Exception {
|
||||
System.out.println("此处删除了工会信息"+guildInfo.getId());
|
||||
int guildId = guildInfo.getId();
|
||||
guildInfoMap.remove(guildId);
|
||||
guildNameInfoMap.remove(guildInfo.getName());
|
||||
|
|
|
@ -54,7 +54,10 @@ public class UserMissionManager extends MongoBase {
|
|||
private BloodyMissionIdsType bloodyMissionIdsType =new BloodyMissionIdsType();
|
||||
private MissingRoomMissionType missingRoomMissionType = new MissingRoomMissionType();
|
||||
private AchieveMissionIdsType achievementMissionTypMap = new AchieveMissionIdsType();
|
||||
private JadeDynastyMissionType jadeDynastyMissionType = new JadeDynastyMissionType();//破阵诛仙任务
|
||||
//破阵诛仙任务
|
||||
private JadeDynastyMissionType jadeDynastyMissionType = new JadeDynastyMissionType();
|
||||
// 牛气冲天活动任务
|
||||
private CowFlySkyMissionType cowFlySkyMissionType = new CowFlySkyMissionType();
|
||||
|
||||
//数据累加项
|
||||
private CumulationData cumulationData = new CumulationData();
|
||||
|
@ -69,87 +72,97 @@ public class UserMissionManager extends MongoBase {
|
|||
private CumulationData jadeDynastyCumulationData = new CumulationData();//破阵诛仙日数据
|
||||
private CumulationData jadeDynastyWeekCumulationData = new CumulationData();//破阵诛仙周数据
|
||||
|
||||
//触发任务上身
|
||||
public void openMission(User user,GameEvent event,Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap, Object... parm) throws Exception {
|
||||
ISession session= OnlineUserManager.getSessionByUid(user.getId());
|
||||
switch (event){
|
||||
case VIP_LEVLUP:{
|
||||
int vipLevle= (int)parm[0];
|
||||
/**
|
||||
* 触发任务上身
|
||||
* @param user
|
||||
* @param event
|
||||
* @param missionTypeEnumListMap
|
||||
* @param parm
|
||||
* @throws Exception
|
||||
*/
|
||||
public void openMission(User user, GameEvent event, Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap, Object... parm) throws Exception {
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
switch (event) {
|
||||
case VIP_LEVLUP: {
|
||||
int vipLevle = (int) parm[0];
|
||||
SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevle);
|
||||
int[] openRules = sVipLevelConfig.getOpenRules();
|
||||
for(int missionId:openRules){
|
||||
vipMissionIdsType.openMission(user,missionId,missionTypeEnumListMap.get(GameMisionType.VIPMISSION));
|
||||
for (int missionId : openRules) {
|
||||
vipMissionIdsType.openMission(user, missionId, missionTypeEnumListMap.get(GameMisionType.VIPMISSION));
|
||||
}
|
||||
updateString("vipMissionIdsType",vipMissionIdsType);
|
||||
updateString("vipMissionIdsType", vipMissionIdsType);
|
||||
break;
|
||||
}
|
||||
case DAILY_REFRESH:
|
||||
Set<Integer> missionIds = SDailyTasksConfig.config.keySet();
|
||||
int type = (int)parm[0];
|
||||
if(type == 0){
|
||||
int type = (int) parm[0];
|
||||
if (type == 0) {
|
||||
dailyMissionIdsType.getDoingMissionIds().clear();
|
||||
dailyMissionIdsType.getFinishMissionIds().clear();
|
||||
dailyMissionIdsType.getRewardedMissionIds().clear();
|
||||
dailyCumulationData = new CumulationData();
|
||||
dailyMissionIdsType.getDoingMissionIds().addAll(missionIds);
|
||||
updateString("dailyCumulationData",dailyCumulationData);
|
||||
updateString("dailyCumulationData", dailyCumulationData);
|
||||
}
|
||||
updateString("dailyMissionIdsType",dailyMissionIdsType);
|
||||
updateString("dailyMissionIdsType", dailyMissionIdsType);
|
||||
break;
|
||||
case TREASH_REFRESH:
|
||||
int activityId = (int) parm[0];//当前轮次青龙秘宝的活动ID
|
||||
int[] refreshIds = resetTreasureTaskInfo(1,activityId,missionTypeEnumListMap,treasureCumulationData);
|
||||
//当前轮次青龙秘宝的活动ID
|
||||
int activityId = (int) parm[0];
|
||||
|
||||
int[] refreshIds = resetTreasureTaskInfo(1, activityId, missionTypeEnumListMap, treasureCumulationData);
|
||||
treasureCumulationData = new CumulationData();
|
||||
int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0, 0,false)/1000);
|
||||
int dayRefreshTime = (int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0, 0, false) / 1000);
|
||||
CommonProto.RefreshTask.Builder task = treasureIndicationBuild(1, refreshIds).setRefreshTime(dayRefreshTime);
|
||||
PlayerInfoProto.TreasureRefreshIndication indication1 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task.build()).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication1,true);
|
||||
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE, indication1, true);
|
||||
break;
|
||||
case TREASH_WEEK_REFRESH:
|
||||
int aId = (int) parm[0];//当前轮次青龙秘宝的活动ID
|
||||
int[] weekRefreshIds = resetTreasureTaskInfo(2,aId,missionTypeEnumListMap,treasureWeekCumulationData);
|
||||
if(weekRefreshIds != null){
|
||||
//当前轮次青龙秘宝的活动ID
|
||||
int aId = (int) parm[0];
|
||||
int[] weekRefreshIds = resetTreasureTaskInfo(2, aId, missionTypeEnumListMap, treasureWeekCumulationData);
|
||||
if (weekRefreshIds != null) {
|
||||
treasureWeekCumulationData = new CumulationData();
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,0)/1000);
|
||||
int weekRefreshTime = (int) (TimeUtils.getNextWeekendStartTime(1, 0) / 1000);
|
||||
user.getPlayerInfoManager().clearVipCount(VipPrivilegeType.DRAGON_TREASURE_SUPPLY);
|
||||
CommonProto.RefreshTask.Builder task2= treasureIndicationBuild(2, weekRefreshIds).setRefreshTime(weekRefreshTime);
|
||||
CommonProto.RefreshTask.Builder task2 = treasureIndicationBuild(2, weekRefreshIds).setRefreshTime(weekRefreshTime);
|
||||
PlayerInfoProto.TreasureRefreshIndication indication2 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task2.build()).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication2,true);
|
||||
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE, indication2, true);
|
||||
}
|
||||
break;
|
||||
case TREASH_MONTH_REFRESH:
|
||||
int aid = (int) parm[0];//当前轮次青龙秘宝的活动ID
|
||||
//当前轮次青龙秘宝的活动ID
|
||||
int aid = (int) parm[0];
|
||||
user.getPlayerInfoManager().setTreasureLevel(0);
|
||||
Item item = user.getItemManager().getItem(Global.TREASURE_SCORE);
|
||||
if(item!=null){
|
||||
if(item.getItemNum()!=0){
|
||||
Map<Integer,Integer> treasureScore = new HashMap<>();
|
||||
treasureScore.put(Global.TREASURE_SCORE, (int)item.getItemNum());
|
||||
if (item != null) {
|
||||
if (item.getItemNum() != 0) {
|
||||
Map<Integer, Integer> treasureScore = new HashMap<>();
|
||||
treasureScore.put(Global.TREASURE_SCORE, (int) item.getItemNum());
|
||||
try {
|
||||
ItemUtil.itemCost(user,treasureScore, BIReason.TREASURE_RESET_CONSUME,1);
|
||||
ItemUtil.itemCost(user, treasureScore, BIReason.TREASURE_RESET_CONSUME, 1);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
treasureMonthCumulationData = new CumulationData();
|
||||
int[] monthRefreshIds1 = resetTreasureTaskInfo(3,aid,missionTypeEnumListMap,treasureMonthCumulationData);
|
||||
int[] monthRefreshIds1 = resetTreasureTaskInfo(3, aid, missionTypeEnumListMap, treasureMonthCumulationData);
|
||||
|
||||
// CommonProto.RefreshTask.Builder task3 = treasureIndicationBuild(1, dailyRefreshIds1);
|
||||
// CommonProto.RefreshTask.Builder task4 = treasureIndicationBuild(2, weekRefreshIds1);
|
||||
CommonProto.RefreshTask.Builder task5 = treasureIndicationBuild(3, monthRefreshIds1);
|
||||
PlayerInfoProto.TreasureRefreshIndication indication3 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task5.build()).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication3,true);
|
||||
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE, indication3, true);
|
||||
break;
|
||||
case JADE_DYNASTY_REFRESH:
|
||||
int jadeAId = (int) parm[0];//当前轮次破阵诛仙的活动ID
|
||||
int[] mIds = resetJadeDynastyTaskInfo(1,jadeAId,missionTypeEnumListMap,jadeDynastyCumulationData);
|
||||
jadeDynastyCumulationData = new CumulationData();
|
||||
//当前轮次破阵诛仙的活动ID
|
||||
int jadeAId = (int) parm[0];
|
||||
resetJadeDynastyTaskInfo(1, jadeAId, missionTypeEnumListMap, jadeDynastyCumulationData);
|
||||
break;
|
||||
case JADE_DYNASTY_WEEK_REFRESH:
|
||||
int jadeAid = (int) parm[0];//当前轮次破阵诛仙的活动ID
|
||||
int[] weekMIds = resetJadeDynastyTaskInfo(2,jadeAid,missionTypeEnumListMap,jadeDynastyWeekCumulationData);
|
||||
if(weekMIds != null){
|
||||
//当前轮次破阵诛仙的活动ID
|
||||
int jadeAid = (int) parm[0];
|
||||
int[] weekMIds = resetJadeDynastyTaskInfo(2, jadeAid, missionTypeEnumListMap, jadeDynastyWeekCumulationData);
|
||||
if (weekMIds != null) {
|
||||
jadeDynastyWeekCumulationData = new CumulationData();
|
||||
}
|
||||
break;
|
||||
|
@ -160,98 +173,107 @@ public class UserMissionManager extends MongoBase {
|
|||
sevenHappyMissionType.getFinishMissionIds().clear();
|
||||
sevenHappyMissionType.getRewardedMissionIds().clear();
|
||||
List<MissionStateChangeInfo> servenMissionmStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION);
|
||||
for(STreasureTaskConfig sTreasureTaskConfig : sTreasureTaskConfigs){
|
||||
for (STreasureTaskConfig sTreasureTaskConfig : sTreasureTaskConfigs) {
|
||||
sevenHappyMissionType.getDoingMissionIds().add(sTreasureTaskConfig.getId());
|
||||
}
|
||||
sevenHappyCumulationData= new CumulationData();
|
||||
sevenHappyMissionType.checkAndUpdateMision(user,sTreasureTaskConfigs,servenMissionmStateChangeInfos,sevenHappyCumulationData);
|
||||
sevenHappyCumulationData = new CumulationData();
|
||||
sevenHappyMissionType.checkAndUpdateMision(user, sTreasureTaskConfigs, servenMissionmStateChangeInfos, sevenHappyCumulationData);
|
||||
updateString("sevenHappyMissionType", sevenHappyMissionType);
|
||||
updateString("sevenHappyCumulationData", sevenHappyCumulationData);
|
||||
break;
|
||||
case BEGINNER:
|
||||
for(Integer id : SBeginnerTask.sBeginnerTaskCongigMap.keySet()){
|
||||
for (Integer id : SBeginnerTask.sBeginnerTaskCongigMap.keySet()) {
|
||||
beginerTaskIdsType.addDoingMission(id);
|
||||
}
|
||||
beginCumulationData= new CumulationData();
|
||||
beginCumulationData = new CumulationData();
|
||||
updateString("beginerTaskIdsType", beginerTaskIdsType);
|
||||
updateString("beginCumulationData", beginCumulationData);
|
||||
break;
|
||||
|
||||
case BLOODY_REFRESH:
|
||||
Set<Integer> bloodyMissionIds =STableManager.getConfig(SBloodyBattleTask.class).keySet();
|
||||
Set<Integer> bloodyMissionIds = STableManager.getConfig(SBloodyBattleTask.class).keySet();
|
||||
bloodyMissionIdsType.getDoingMissionIds().clear();
|
||||
bloodyMissionIdsType.getFinishMissionIds().clear();
|
||||
bloodyMissionIdsType.getRewardedMissionIds().clear();
|
||||
bloodyMissionIdsType.getDoingMissionIds().addAll(bloodyMissionIds);
|
||||
updateString("bloodyMissionIdsType",bloodyMissionIdsType);
|
||||
updateString("bloodyMissionIdsType", bloodyMissionIdsType);
|
||||
break;
|
||||
case ACHIEVE_REFRESH:
|
||||
Set<Integer> ds =STableManager.getConfig(SAchievementConfig.class).keySet();
|
||||
Set<Integer> ds = STableManager.getConfig(SAchievementConfig.class).keySet();
|
||||
achievementMissionTypMap.getDoingMissionIds().clear();
|
||||
achievementMissionTypMap.getFinishMissionIds().clear();
|
||||
achievementMissionTypMap.getRewardedMissionIds().clear();
|
||||
achievementMissionTypMap.getDoingMissionIds().addAll(ds);
|
||||
achievementMap =new CumulationData();
|
||||
updateString("achievementMissionTypMap",achievementMissionTypMap);
|
||||
updateString("achievementMap",achievementMap);
|
||||
achievementMap = new CumulationData();
|
||||
updateString("achievementMissionTypMap", achievementMissionTypMap);
|
||||
updateString("achievementMap", achievementMap);
|
||||
|
||||
break;
|
||||
case MISSING_ROOM_REFRESH://天宫寻宝
|
||||
Map<Integer,Integer> mustAppear = new HashMap<>();
|
||||
|
||||
case COW_FLY_SKY_REFRESH:
|
||||
// 牛气冲天
|
||||
Set<Integer> arro = STableManager.getConfig(SArroGantFly.class).keySet();
|
||||
cowFlySkyMissionType.getDoingMissionIds().clear();
|
||||
cowFlySkyMissionType.getFinishMissionIds().clear();
|
||||
cowFlySkyMissionType.getRewardedMissionIds().clear();
|
||||
cowFlySkyMissionType.getDoingMissionIds().addAll(arro);
|
||||
updateString("cowFlySkyMissionType", cowFlySkyMissionType);
|
||||
break;
|
||||
case MISSING_ROOM_REFRESH:
|
||||
//天宫寻宝
|
||||
Map<Integer, Integer> mustAppear = new HashMap<>();
|
||||
List<Integer> mustMissions = new ArrayList<>();
|
||||
List<Integer> lockMissions = new ArrayList<>();
|
||||
if((int)parm[0]==1){
|
||||
if ((int) parm[0] == 1) {
|
||||
//删除已经领取奖励的
|
||||
missingRoomMissionType.getFinishMissionIds().removeIf(value->missingRoomMissionType.getAllMissingTime().get(value)==-1);
|
||||
missingRoomMissionType.getAllMissingTime().values().removeIf(value->value==-1);
|
||||
|
||||
missingRoomMissionType.getFinishMissionIds().removeIf(value -> missingRoomMissionType.getAllMissingTime().get(value) == -1);
|
||||
missingRoomMissionType.getAllMissingTime().values().removeIf(value -> value == -1);
|
||||
// 任务全部锁定
|
||||
Set<Integer> lockMissionIds = missingRoomMissionType.getLockMissionIds();
|
||||
if (lockMissionIds.size() >= 6){
|
||||
if (lockMissionIds.size() >= 6) {
|
||||
throw new ErrorCodeException(ErrorCode.LOCK_FILL);
|
||||
}
|
||||
|
||||
// 读表
|
||||
SMazeTreasureSetting sMazeTreasureSetting = SMazeTreasureSetting.sMazeTreasureSetting;
|
||||
boolean result = ItemUtil.itemCost(user, new int[][]{sMazeTreasureSetting.getTakeOrder()}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1);
|
||||
if(!result){
|
||||
if (!result) {
|
||||
result = ItemUtil.itemCost(user, new int[][]{sMazeTreasureSetting.getRefreshItem()}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1);
|
||||
if(!result){
|
||||
if (!result) {
|
||||
int coinRefreshCount = user.getPlayerInfoManager().getVipPrivilageValue(sMazeTreasureSetting.getRefreshVIP());
|
||||
int[][] cost = sMazeTreasureSetting.getCost();
|
||||
int count = (int)MathUtils.calABX(coinRefreshCount, cost[1]);
|
||||
int count = (int) MathUtils.calABX(coinRefreshCount, cost[1]);
|
||||
result = ItemUtil.itemCost(user, new int[][]{new int[]{cost[0][0], count}}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1);
|
||||
if(!result){
|
||||
if (!result) {
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
user.getPlayerInfoManager().updateVipPrivilage(sMazeTreasureSetting.getRefreshVIP(),1);
|
||||
user.getPlayerInfoManager().updateVipPrivilage(sMazeTreasureSetting.getRefreshVIP(), 1);
|
||||
}
|
||||
//高级特权
|
||||
missingRoomMissionType.privilegeRefresh(user,sMazeTreasureSetting.getHighDailyPrivilege(),mustAppear);
|
||||
missingRoomMissionType.privilegeRefresh(user, sMazeTreasureSetting.getHighDailyPrivilege(), mustAppear);
|
||||
//豪华特权
|
||||
missingRoomMissionType.privilegeRefresh(user,sMazeTreasureSetting.getLuxuryDailyPrivilege(),mustAppear);
|
||||
missingRoomMissionType.privilegeRefresh(user, sMazeTreasureSetting.getLuxuryDailyPrivilege(), mustAppear);
|
||||
//非免费抽取次数必出
|
||||
missingRoomMissionType.notFreeRefreshMust(user,sMazeTreasureSetting.getRefreshHighTypeNum(),mustAppear);
|
||||
missingRoomMissionType.notFreeRefreshMust(user, sMazeTreasureSetting.getRefreshHighTypeNum(), mustAppear);
|
||||
// 刷新次数+1
|
||||
missingRoomMissionType.setRefreshTotalCount(missingRoomMissionType.getRefreshTotalCount()+1);
|
||||
missingRoomMissionType.setRefreshTotalCount(missingRoomMissionType.getRefreshTotalCount() + 1);
|
||||
}
|
||||
|
||||
Set<Integer> doingMissionIds = missingRoomMissionType.getDoingMissionIds();
|
||||
doingMissionIds.forEach((doing)->{
|
||||
if (lockMissionIds.contains(doing)){
|
||||
doingMissionIds.forEach((doing) -> {
|
||||
if (lockMissionIds.contains(doing)) {
|
||||
lockMissions.add(doing);
|
||||
}
|
||||
});
|
||||
|
||||
missingRoomMissionType.getDoingMissionIds().clear();
|
||||
}else{
|
||||
for(int firstTask:SMazeTreasureSetting.sMazeTreasureSetting.getFirstRefresh()){
|
||||
} else {
|
||||
for (int firstTask : SMazeTreasureSetting.sMazeTreasureSetting.getFirstRefresh()) {
|
||||
mustMissions.add(firstTask);
|
||||
}
|
||||
}
|
||||
|
||||
// 更新最大长度限制6条
|
||||
if (lockMissions.size() + mustAppear.size() > 6){
|
||||
if (lockMissions.size() + mustAppear.size() > 6) {
|
||||
// 锁定的不能动,获取特权任务数量
|
||||
int num = 6 - lockMissions.size();
|
||||
// 特权的key
|
||||
|
@ -261,20 +283,20 @@ public class UserMissionManager extends MongoBase {
|
|||
// 赋值
|
||||
sortSet.addAll(keys);
|
||||
// 遍历,如果数量满足,停止,不满足则删除等级小的任务
|
||||
for (Integer ints:sortSet){
|
||||
if (mustAppear.size() == num){
|
||||
for (Integer ints : sortSet) {
|
||||
if (mustAppear.size() == num) {
|
||||
break;
|
||||
}
|
||||
mustAppear.remove(ints);
|
||||
}
|
||||
}
|
||||
|
||||
if(!mustAppear.isEmpty()){
|
||||
for(Map.Entry<Integer,Integer> entry:mustAppear.entrySet()){
|
||||
if (!mustAppear.isEmpty()) {
|
||||
for (Map.Entry<Integer, Integer> entry : mustAppear.entrySet()) {
|
||||
List<SMazeTreasure> sMazeTreasures = SMazeTreasure.mazeMapByTaskType.get(entry.getKey());
|
||||
List<int[]> mustList = new ArrayList<>();
|
||||
for(SMazeTreasure maze :sMazeTreasures){
|
||||
if(mustMissions.contains(maze.getId())){
|
||||
for (SMazeTreasure maze : sMazeTreasures) {
|
||||
if (mustMissions.contains(maze.getId())) {
|
||||
continue;
|
||||
}
|
||||
int[] refreshWeight = new int[2];
|
||||
|
@ -283,52 +305,45 @@ public class UserMissionManager extends MongoBase {
|
|||
mustList.add(refreshWeight);
|
||||
}
|
||||
int[][] mustArray = mustList.toArray(new int[mustList.size()][]);
|
||||
int[] missions = MathUtils.randomFromWeightWithTaking(mustArray, entry.getValue());
|
||||
Arrays.stream(missions).forEach(mission->mustMissions.add(mission));
|
||||
int[] missions = MathUtils.randomFromWeightWithTaking(mustArray, entry.getValue());
|
||||
Arrays.stream(missions).forEach(mission -> mustMissions.add(mission));
|
||||
}
|
||||
}
|
||||
int[][] qualityRate = SMazeTreasureSetting.sMazeTreasureSetting.getQualityRate();
|
||||
// List<int[]> missingRoomMission = new ArrayList<>();
|
||||
// for(Map.Entry<Integer,SMazeTreasure> entry:SMazeTreasure.sMazeTreasureMap.entrySet()){
|
||||
// int[] refreshWeight = new int[2];
|
||||
// refreshWeight[0] = entry.getKey();
|
||||
// refreshWeight[1] = entry.getValue().getTaskRefreshProbability();
|
||||
// missingRoomMission.add(refreshWeight);
|
||||
// }
|
||||
|
||||
//根据品质来随机
|
||||
int[] qualityArray = MathUtils.randomForWeight(qualityRate, 6 - (mustMissions.size() + lockMissions.size()));
|
||||
Map<Integer,Integer> qualityNum = new HashMap<>();
|
||||
for(int quality:qualityArray){
|
||||
qualityNum.put(quality,qualityNum.getOrDefault(quality,0)+1);
|
||||
Map<Integer, Integer> qualityNum = new HashMap<>();
|
||||
for (int quality : qualityArray) {
|
||||
qualityNum.put(quality, qualityNum.getOrDefault(quality, 0) + 1);
|
||||
}
|
||||
for(Map.Entry<Integer,Integer> entry:qualityNum.entrySet()){
|
||||
for (Map.Entry<Integer, Integer> entry : qualityNum.entrySet()) {
|
||||
List<SMazeTreasure> sMazeTreasures = SMazeTreasure.mazeMapByTaskType.get(entry.getKey());
|
||||
int[][] treasures = new int[sMazeTreasures.size()][];
|
||||
for(int i = 0 ; i<sMazeTreasures.size();i++){
|
||||
for (int i = 0; i < sMazeTreasures.size(); i++) {
|
||||
|
||||
treasures[i] = new int[2];
|
||||
treasures[i][0] = sMazeTreasures.get(i).getId();
|
||||
treasures[i][1] = 1;
|
||||
}
|
||||
int[] ids = MathUtils.randomFromWeightWithTaking(treasures, entry.getValue());
|
||||
// int missionId = sMazeTreasures.get(MathUtils.randomInt(sMazeTreasures.size())).getId();
|
||||
for(int id:ids){
|
||||
missingRoomMissionType.addDoingMission(missingRoomMissionType.getMissionIndex()*10000+id);
|
||||
for (int id : ids) {
|
||||
missingRoomMissionType.addDoingMission(missingRoomMissionType.getMissionIndex() * 10000 + id);
|
||||
}
|
||||
}
|
||||
// 必须任务
|
||||
for(int mission:mustMissions){
|
||||
missingRoomMissionType.addDoingMission(missingRoomMissionType.getMissionIndex()*10000+mission);
|
||||
for (int mission : mustMissions) {
|
||||
missingRoomMissionType.addDoingMission(missingRoomMissionType.getMissionIndex() * 10000 + mission);
|
||||
}
|
||||
// 上锁任务
|
||||
for(int mission:lockMissions){
|
||||
for (int mission : lockMissions) {
|
||||
missingRoomMissionType.addDoingMission(mission);
|
||||
}
|
||||
updateString("missingRoomMissionType",missingRoomMissionType);
|
||||
updateString("missingRoomMissionType", missingRoomMissionType);
|
||||
break;
|
||||
default:{
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -391,8 +406,10 @@ public class UserMissionManager extends MongoBase {
|
|||
missingRoomMissionType.rewardMission((int)parm[0],missionTypeEnumListMap.get(GameMisionType.MISSINGROOMMISSION));
|
||||
updateString("missingRoomMissionType",missingRoomMissionType);
|
||||
}
|
||||
|
||||
|
||||
case COW_FLY_SKY_REWEARD:{
|
||||
cowFlySkyMissionType.rewardMission((int)parm[0], missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION));
|
||||
updateString("cowFlySkyMissionType",cowFlySkyMissionType);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -517,11 +534,16 @@ public class UserMissionManager extends MongoBase {
|
|||
|
||||
}
|
||||
|
||||
// 公用任务类型,累计次数形式
|
||||
CumulationData.Result result = cumulationData.updateData(missionType, parm);
|
||||
if(result!=null){
|
||||
vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData);
|
||||
updateString("cumulationData",cumulationData);
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -742,4 +764,12 @@ public class UserMissionManager extends MongoBase {
|
|||
public CumulationData getJadeDynastyWeekCumulationData() {
|
||||
return jadeDynastyWeekCumulationData;
|
||||
}
|
||||
|
||||
public CowFlySkyMissionType getCowFlySkyMissionType() {
|
||||
return cowFlySkyMissionType;
|
||||
}
|
||||
|
||||
public void setCowFlySkyMissionType(CowFlySkyMissionType cowFlySkyMissionType) {
|
||||
this.cowFlySkyMissionType = cowFlySkyMissionType;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -529,8 +529,8 @@ public class ExpeditionLogic {
|
|||
SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
|
||||
int openRule = sExpeditionSetting.getOpenRules()[0];
|
||||
if(openRule == type && sExpeditionSetting.getOpenRules()[1] == parm){
|
||||
//设置第一次七天后开启
|
||||
user.getExpeditionManager().getWorldTreasureReward().setFirstStartTime((int)((TimeUtils.now()+7*TimeUtils.ONE_DAY)/1000));
|
||||
//国服设置第十四天后开启
|
||||
user.getExpeditionManager().getWorldTreasureReward().setFirstStartTime((int)((TimeUtils.now()+14*TimeUtils.ONE_DAY)/1000));
|
||||
// user.getExpeditionManager().resetTreasureReward(1);
|
||||
// sendAllTreasureInfo(user);
|
||||
}
|
||||
|
@ -595,8 +595,10 @@ public class ExpeditionLogic {
|
|||
if (scHero == null) {
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL,"英雄表id不存在:"+heroTid);
|
||||
}
|
||||
// 等级上限验证
|
||||
// 最高等级
|
||||
level = level>scHero.getMaxLevel()?scHero.getMaxLevel():level;
|
||||
// 最低20级
|
||||
level = level<20?20:level;
|
||||
//创建新的英雄
|
||||
Hero newHero = new Hero(hero,user.getId(),heroTid,level);
|
||||
// 魂宝灵宝,魂印需要走表
|
||||
|
@ -843,6 +845,9 @@ public class ExpeditionLogic {
|
|||
* 处理圣物英雄技能
|
||||
*/
|
||||
private static void disposeWithHeroHoly(User user,Hero hero,StringBuilder skillSb){
|
||||
if(!user.getExpeditionManager().getHeroItems().containsKey(hero.getTemplateId())){
|
||||
return;
|
||||
}
|
||||
int holyId = user.getExpeditionManager().getHeroItems().get(hero.getTemplateId());
|
||||
SExpeditionHolyConfig con = STableManager.getConfig(SExpeditionHolyConfig.class).get(holyId);
|
||||
if( con != null ){
|
||||
|
|
|
@ -25,6 +25,8 @@ import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
|
|||
import com.ljsd.jieling.logic.store.StoreLogic;
|
||||
import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.Family;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
|
@ -46,6 +48,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
*/
|
||||
public class GuildChallengeLogic {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(GuildChallengeLogic.class);
|
||||
public static GuildChallengeLogic getInstance() {
|
||||
return Instance.instance;
|
||||
}
|
||||
|
@ -323,8 +326,27 @@ public class GuildChallengeLogic {
|
|||
Family.GuildChallengeIndication.Builder indication = Family.GuildChallengeIndication.newBuilder()
|
||||
.setBlood(remainHp)
|
||||
.setCurBoss(guildInfo.getCurrBossId());
|
||||
|
||||
GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid);
|
||||
// GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid);
|
||||
Map<Integer, Set<Integer>> members = guildInfo.getMembers();
|
||||
for(Set<Integer> items : members.values()){
|
||||
for(Integer sendUid : items){
|
||||
//把自己跳过,自己的特殊处理
|
||||
if(sendUid==uid){
|
||||
continue;
|
||||
}
|
||||
ISession isession = OnlineUserManager.getSessionByUid(sendUid);
|
||||
Family.GuildChallengeIndication.Builder otherIndication = Family.GuildChallengeIndication.newBuilder()
|
||||
.setBlood(remainHp)
|
||||
.setCurBoss(guildInfo.getCurrBossId());
|
||||
if(kill==1&&!UserManager.getUser(sendUid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){
|
||||
otherIndication.setIsRefresh(1);//需要前端刷新次数
|
||||
}
|
||||
if(isession!=null){
|
||||
LOGGER.info("向{}发送indication",sendUid);
|
||||
MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,otherIndication.build(),true);
|
||||
}
|
||||
}
|
||||
}
|
||||
indication.setIsKill(kill);
|
||||
//伤害排行
|
||||
|
||||
|
@ -350,6 +372,9 @@ public class GuildChallengeLogic {
|
|||
PlayerLogic.getInstance().checkAndUpdate(user,config.getPrivilege()[0],1);
|
||||
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
||||
if(kill==1&&!UserManager.getUser(uid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){
|
||||
indication.setIsRefresh(1);//需要前端刷新次数
|
||||
}
|
||||
|
||||
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true);
|
||||
}
|
||||
|
|
|
@ -1243,6 +1243,9 @@ public class HeroLogic{
|
|||
List<SCHeroRankUpConfig> collect = rankUpConfigs.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList());
|
||||
for(SCHeroRankUpConfig scHeroRankUpConfig : collect){
|
||||
if (heroLevel >= scHeroRankUpConfig.getOpenLevel()){
|
||||
if (scHeroRankUpConfig.getOpenStar() > 10){
|
||||
continue;
|
||||
}
|
||||
return scHeroRankUpConfig.getId();
|
||||
}
|
||||
}
|
||||
|
@ -1294,7 +1297,8 @@ public class HeroLogic{
|
|||
List<SCHeroRankUpConfig> collect = rankUpStar.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList());
|
||||
for(SCHeroRankUpConfig val : collect){
|
||||
if (heroLevel >= val.getOpenLevel()){
|
||||
return val.getOpenStar();
|
||||
// 机器人生成星级,最高10星
|
||||
return val.getOpenStar()>10?10:val.getOpenStar();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1307,7 +1311,7 @@ public class HeroLogic{
|
|||
List<SCHeroRankUpConfig> collect = rankUpBreak.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList());
|
||||
for(SCHeroRankUpConfig val : collect){
|
||||
if (heroLevel >= val.getOpenLevel()){
|
||||
return val.getOpenStar();
|
||||
return val.getOpenStar()>10?10:val.getOpenStar();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4371,7 +4375,7 @@ public class HeroLogic{
|
|||
if (count == 0){
|
||||
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
|
||||
}
|
||||
return count/num;
|
||||
return count/averageNum;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -108,4 +108,7 @@ public enum GameEvent {
|
|||
|
||||
HONGMENG_RESONANCE_LATTICE,//鸿蒙阵共鸣格子
|
||||
HONGMENG_TABLET_LEVEL,//鸿蒙碑等级
|
||||
|
||||
COW_FLY_SKY_REFRESH,//牛气冲天刷新
|
||||
COW_FLY_SKY_REWEARD,//牛气冲天奖励
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ public enum GameMisionType {
|
|||
MISSINGROOMMISSION(8),
|
||||
ACHIEVEMISSION(9),
|
||||
JADE_DYNASTY_MISSION(10),//破阵诛仙任务
|
||||
COWFLYSKYMISSION(11),//牛气冲天
|
||||
|
||||
;
|
||||
private int type;
|
||||
|
|
|
@ -55,6 +55,7 @@ public class MissionLoigc {
|
|||
getMissingRoomMission(user,missionList);
|
||||
getAchieveMission(user,missionList);
|
||||
getJadeDynastyMission(user, missionList);
|
||||
getCowFlySkyMission(user,missionList);
|
||||
PlayerInfoProto.GetMissionResponse build = PlayerInfoProto.GetMissionResponse.newBuilder().addAllUserMissionInfo(missionList).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_MISSION_RESPONSE_VALUE,build,true);
|
||||
}
|
||||
|
@ -334,6 +335,40 @@ public class MissionLoigc {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取牛气冲天活动任务信息
|
||||
* @param user
|
||||
* @param missionList
|
||||
*/
|
||||
public static void getCowFlySkyMission(User user ,List<CommonProto.UserMissionInfo> missionList){
|
||||
CowFlySkyMissionType missionType = user.getUserMissionManager().getCowFlySkyMissionType();
|
||||
|
||||
// 进行中
|
||||
Set<Integer> doingMissionIds = missionType.getDoingMissionIds();
|
||||
// 可领取
|
||||
Set<Integer> finishMissionIds = missionType.getFinishMissionIds();
|
||||
// 已领取
|
||||
BitSet rewardedMissionIds = missionType.getRewardedMissionIds();
|
||||
|
||||
Collection<SArroGantFly> values = STableManager.getConfig(SArroGantFly.class).values();
|
||||
values.forEach(v->{
|
||||
int id = v.getId();
|
||||
CommonProto.UserMissionInfo.Builder info = CommonProto.UserMissionInfo.newBuilder();
|
||||
info.setMissionId(id);
|
||||
info.setType(GameMisionType.COWFLYSKYMISSION.getType());
|
||||
if (doingMissionIds.contains(id)){
|
||||
info.setState(MissionState.DOING.getState());
|
||||
}
|
||||
if (finishMissionIds.contains(id)){
|
||||
info.setState(MissionState.FINISH.getState());
|
||||
}
|
||||
if (rewardedMissionIds.get(id)){
|
||||
info.setState(MissionState.REWARD.getState());
|
||||
}
|
||||
missionList.add(info.build());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取天宫寻宝任务列表
|
||||
* @param user
|
||||
|
@ -399,12 +434,22 @@ public class MissionLoigc {
|
|||
|
||||
|
||||
}
|
||||
public static void takeMissionReward(ISession session,int type,int missionId) throws Exception {
|
||||
|
||||
/**
|
||||
* 领取任务奖励
|
||||
* @param session
|
||||
* @param type
|
||||
* @param missionId
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void takeMissionReward(ISession session,int type,int missionId) throws Exception {
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
UserMissionManager userMissionManager = user.getUserMissionManager();
|
||||
List<MissionStateChangeInfo> missionStateChangeInfos = null;
|
||||
if(type == GameMisionType.BLOODYMISSION.getType()){ //vip 任务
|
||||
|
||||
//BLOODY 任务
|
||||
if(type == GameMisionType.BLOODYMISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.BLOODY_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.BLOODYMISSION);
|
||||
if(missionStateChangeInfos.isEmpty()){
|
||||
|
@ -414,16 +459,16 @@ public class MissionLoigc {
|
|||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, new int[]{rewardGroup}, 1.0f, 0, BIReason.TAKE_MISSION_REWARD);
|
||||
PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true);
|
||||
// KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId);
|
||||
// Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.TASK_FINISH_EVEMT,missionId,"");
|
||||
ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),missionId,GameMisionType.BLOODYMISSION.toString());
|
||||
return;
|
||||
}
|
||||
if(type == GameMisionType.VIPMISSION.getType()){ //vip 任务
|
||||
//vip 任务
|
||||
if(type == GameMisionType.VIPMISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.VIP_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.VIPMISSION);
|
||||
}
|
||||
if(type == GameMisionType.DAILYMISSION.getType()){ //日常 任务
|
||||
//日常 任务
|
||||
if(type == GameMisionType.DAILYMISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.DAILY_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.DAILYMISSION);
|
||||
SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
|
||||
|
@ -431,12 +476,13 @@ public class MissionLoigc {
|
|||
user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_DAILY_BOX_REWARD);
|
||||
}
|
||||
}
|
||||
|
||||
if(type == GameMisionType.BEGINNERMISSION.getType()){ //新手 任务
|
||||
//新手 任务
|
||||
if(type == GameMisionType.BEGINNERMISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.BEGINNER_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.BEGINNERMISSION);
|
||||
}
|
||||
if(type == GameMisionType.COPYMISSION.getType()){ //副本 任务
|
||||
//副本 任务
|
||||
if(type == GameMisionType.COPYMISSION.getType()){
|
||||
Set<Integer> takeCopyMisionRewards = user.getMapManager().getTakeCopyMisionRewards();
|
||||
if(takeCopyMisionRewards.contains(missionId)){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("had taked reward"));
|
||||
|
@ -460,8 +506,8 @@ public class MissionLoigc {
|
|||
return;
|
||||
}
|
||||
|
||||
// 藏宝任务
|
||||
if(type == GameMisionType.TREASUREMISSION.getType()){
|
||||
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.TREASURE_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.TREASUREMISSION);
|
||||
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
||||
|
@ -476,8 +522,9 @@ public class MissionLoigc {
|
|||
}
|
||||
}
|
||||
|
||||
// 破阵诛仙任务
|
||||
if(type == GameMisionType.JADE_DYNASTY_MISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.JADE_DYNASTY_MISSION_REWARD, missionId);
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.JADE_DYNASTY_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.JADE_DYNASTY_MISSION);
|
||||
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId);
|
||||
|
@ -489,15 +536,25 @@ public class MissionLoigc {
|
|||
}
|
||||
}
|
||||
|
||||
// 牛气冲天 活动任务
|
||||
if (type == GameMisionType.COWFLYSKYMISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.COW_FLY_SKY_REWEARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.COWFLYSKYMISSION);
|
||||
}
|
||||
|
||||
// 七日 任务
|
||||
if(type == GameMisionType.SEVENMISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.SEVENHAPPY_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.SEVENMISSION);
|
||||
}
|
||||
|
||||
// 天宫寻宝 任务
|
||||
if(type==GameMisionType.MISSINGROOMMISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.MISSING_ROOM_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.MISSINGROOMMISSION);
|
||||
}
|
||||
|
||||
// 成就 任务
|
||||
if(type==GameMisionType.ACHIEVEMISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.ACHIEVE_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.ACHIEVEMISSION);
|
||||
|
@ -505,14 +562,10 @@ public class MissionLoigc {
|
|||
|
||||
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), BIReason.TAKE_MISSION_REWARD);
|
||||
// user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,missionId,user);
|
||||
ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(missionId),type);
|
||||
PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true);
|
||||
// KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId);
|
||||
// Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.TASK_FINISH_EVEMT,missionId,"");
|
||||
}else{
|
||||
//MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,"mission can not get reward");
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("mission can not get reward"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -134,7 +134,7 @@ public enum MissionType {
|
|||
return missionType;
|
||||
}
|
||||
|
||||
private MissionType(int missionType) {
|
||||
MissionType(int missionType) {
|
||||
this.missionType = missionType;
|
||||
}
|
||||
|
||||
|
|
|
@ -142,6 +142,7 @@ public class DataManagerDistributor {
|
|||
judges.put(MissionType.CHAMPIONSHIP_RANK, new ChampionshipRankManager());
|
||||
judges.put(MissionType.PLAY_MINI_GAME_TIMES, new PlayMiniGameTimesManager());
|
||||
|
||||
// 鸿蒙阵
|
||||
judges.put(MissionType.HONGMENG_RESONANCE_LATTICE, new HongMengResonanceDataManager());
|
||||
judges.put(MissionType.HONGMENG_TABLET_LEVEL, new HongMengLevelDataManager());
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ public class GetHeroManager implements BaseDataManager {
|
|||
int heroStar = (int)parm[1];
|
||||
CumulationData.Result result = null;
|
||||
if(missionType == MissionType.COLLECT_QUALITY_HERO){
|
||||
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
||||
data.updateHeroQualityCount(heroStar);
|
||||
result = new CumulationData.Result(missionType);
|
||||
}else if(missionType == MissionType.COLLECT_DIFFERENT_HEROS){
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package com.ljsd.jieling.logic.mission.event;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.GameMisionType;
|
||||
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class CowFlySkyEventProcess implements BaseGameEventProcessor {
|
||||
@Override
|
||||
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
|
||||
user.getUserMissionManager().openMission(user,event,misionTypeListMap,parm);
|
||||
}
|
||||
}
|
|
@ -29,7 +29,7 @@ public class MissionEventDistributor {
|
|||
|
||||
public static void init(){
|
||||
|
||||
|
||||
// 刷新任务
|
||||
eventProcessor.put(GameEvent.MISSING_ROOM_REFRESH,new CumulationDataEventProcessor());
|
||||
eventProcessor.put(GameEvent.DAILY_REFRESH,new DailyRefreshEventProcess());
|
||||
eventProcessor.put(GameEvent.BLOODY_REFRESH,new DailyRefreshEventProcess());
|
||||
|
@ -41,7 +41,7 @@ public class MissionEventDistributor {
|
|||
eventProcessor.put(GameEvent.BEGINNER,new BeginneRefreshEventProcessor());
|
||||
eventProcessor.put(GameEvent.JADE_DYNASTY_REFRESH,new JadeDynastyRefreshEventProcess());
|
||||
eventProcessor.put(GameEvent.JADE_DYNASTY_WEEK_REFRESH,new JadeDynastyRefreshEventProcess());
|
||||
|
||||
eventProcessor.put(GameEvent.COW_FLY_SKY_REFRESH,new CowFlySkyEventProcess());
|
||||
|
||||
List<MissionType> typeList = new ArrayList<>();
|
||||
typeList.add(MissionType.REFRESH_MISSING_ROOM);
|
||||
|
@ -182,7 +182,7 @@ public class MissionEventDistributor {
|
|||
eventEnumListMap.put(GameEvent.ADVENTURE_TAKEREWARD,typeList);
|
||||
eventProcessor.put(GameEvent.ADVENTURE_TAKEREWARD,new CumulationDataEventProcessor());
|
||||
|
||||
|
||||
// 领取奖励
|
||||
eventProcessor.put(GameEvent.VIP_MISSION_REWARD,new RewardEventProcessor());
|
||||
eventProcessor.put(GameEvent.DAILY_MISSION_REWARD,new RewardEventProcessor());
|
||||
eventProcessor.put(GameEvent.TREASURE_MISSION_REWARD,new RewardEventProcessor());
|
||||
|
@ -192,7 +192,7 @@ public class MissionEventDistributor {
|
|||
eventProcessor.put(GameEvent.MISSING_ROOM_MISSION_REWARD,new RewardEventProcessor());
|
||||
eventProcessor.put(GameEvent.ACHIEVE_REWARD,new RewardEventProcessor());
|
||||
eventProcessor.put(GameEvent.JADE_DYNASTY_MISSION_REWARD,new RewardEventProcessor());
|
||||
|
||||
eventProcessor.put(GameEvent.COW_FLY_SKY_REWEARD,new RewardEventProcessor());
|
||||
|
||||
typeList = new ArrayList<>();
|
||||
typeList.add(MissionType.RING_FIREA_DVANCED);
|
||||
|
@ -417,6 +417,7 @@ public class MissionEventDistributor {
|
|||
eventEnumListMap.put(GameEvent.PLAY_MINI_GAME, typeList);
|
||||
eventProcessor.put(GameEvent.PLAY_MINI_GAME, new CumulationDataEventProcessor());
|
||||
|
||||
// 鸿蒙碑
|
||||
typeList = new ArrayList<>();
|
||||
typeList.add(MissionType.HONGMENG_RESONANCE_LATTICE);
|
||||
eventEnumListMap.put(GameEvent.HONGMENG_RESONANCE_LATTICE, typeList);
|
||||
|
@ -455,7 +456,7 @@ public class MissionEventDistributor {
|
|||
missionTypeEnumListMap.put(GameMisionType.MISSINGROOMMISSION, new ArrayList<>());
|
||||
missionTypeEnumListMap.put(GameMisionType.ACHIEVEMISSION, new ArrayList<>());
|
||||
missionTypeEnumListMap.put(GameMisionType.JADE_DYNASTY_MISSION, new ArrayList<>());
|
||||
|
||||
missionTypeEnumListMap.put(GameMisionType.COWFLYSKYMISSION, new ArrayList<>());
|
||||
|
||||
} else {
|
||||
missionTypeEnumListMap.get(GameMisionType.VIPMISSION).clear();
|
||||
|
@ -468,7 +469,7 @@ public class MissionEventDistributor {
|
|||
missionTypeEnumListMap.get(GameMisionType.MISSINGROOMMISSION).clear();
|
||||
missionTypeEnumListMap.get(GameMisionType.ACHIEVEMISSION).clear();
|
||||
missionTypeEnumListMap.get(GameMisionType.JADE_DYNASTY_MISSION).clear();
|
||||
|
||||
missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION).clear();
|
||||
|
||||
}
|
||||
threadMissionChangeList.set(missionTypeEnumListMap);
|
||||
|
@ -504,7 +505,10 @@ public class MissionEventDistributor {
|
|||
if(gameMisionType==GameMisionType.MISSINGROOMMISSION){
|
||||
continue;
|
||||
}
|
||||
if(gameMisionType == GameMisionType.COPYMISSION || gameMisionType == GameMisionType.TREASUREMISSION || gameMisionType == GameMisionType.SEVENMISSION || gameMisionType == GameMisionType.BLOODYMISSION|| gameMisionType == GameMisionType.ACHIEVEMISSION || gameMisionType == GameMisionType.JADE_DYNASTY_MISSION){
|
||||
if(gameMisionType == GameMisionType.COPYMISSION || gameMisionType == GameMisionType.TREASUREMISSION
|
||||
|| gameMisionType == GameMisionType.SEVENMISSION || gameMisionType == GameMisionType.BLOODYMISSION
|
||||
|| gameMisionType == GameMisionType.ACHIEVEMISSION || gameMisionType == GameMisionType.JADE_DYNASTY_MISSION
|
||||
|| gameMisionType == GameMisionType.COWFLYSKYMISSION ){
|
||||
progress = missionStateChangeInfo.getProgress();
|
||||
}
|
||||
if(missionState == MissionState.DOING){
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
package com.ljsd.jieling.logic.mission.main;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||
import com.ljsd.jieling.logic.mission.MissionState;
|
||||
import config.SArroGantFly;
|
||||
import manager.STableManager;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class CowFlySkyMissionType extends AbstractMissionType {
|
||||
|
||||
@Override
|
||||
public void openMission(User user, int missionId, List<MissionStateChangeInfo> missionTypeEnumList) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[][] reward(int missionId) {
|
||||
SArroGantFly arroGantFly = STableManager.getConfig(SArroGantFly.class).get(missionId);
|
||||
return arroGantFly.getReward();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) throws Exception {
|
||||
// 进行中得任务
|
||||
Set<Integer> doingMissionIds = getDoingMissionIds();
|
||||
|
||||
Collection<SArroGantFly> values = STableManager.getConfig(SArroGantFly.class).values();
|
||||
for (SArroGantFly fly : values) {
|
||||
// 任务子id
|
||||
int id = fly.getId();
|
||||
// 不在执行中
|
||||
if(!doingMissionIds.contains(id)){
|
||||
continue;
|
||||
}
|
||||
// 获取任务进度
|
||||
int num = MissionLoigc.getDoingProgress(user, cumulationData, fly.getValues(), fly.getValuesII()[0]);
|
||||
// 是否完成
|
||||
boolean isFinish = num >= fly.getValuesII()[1][0];
|
||||
if (!isFinish) {
|
||||
// 未完成
|
||||
MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(id, MissionState.DOING, num);
|
||||
missionStateChangeInfos.add(doingInfo);
|
||||
continue;
|
||||
}
|
||||
// 清除旧信息(进行中)
|
||||
missionStateChangeInfos.removeIf(v->v.getMissionId()==id);
|
||||
// 添加新信息(可领取)
|
||||
MissionStateChangeInfo finishInfo = new MissionStateChangeInfo(id,MissionState.FINISH, fly.getReward());
|
||||
missionStateChangeInfos.add(finishInfo);
|
||||
// 任务列表更新
|
||||
doingMissionIds.remove(id);
|
||||
getFinishMissionIds().add(id);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -186,11 +186,9 @@ public class MissingRoomMissionType extends AbstractMissionType{
|
|||
* @param mustAppear
|
||||
*/
|
||||
public void notFreeRefreshMust(User user, int[][] refreshHighTypeNum,Map<Integer,Integer> mustAppear){
|
||||
int refreshTotalCount = user.getUserMissionManager().getMissingRoomMissionType().getRefreshTotalCount();
|
||||
int count = user.getUserMissionManager().getMissingRoomMissionType().getRefreshTotalCount();
|
||||
for(int[] refresh:refreshHighTypeNum){
|
||||
if(refreshTotalCount==0||refreshTotalCount%refresh[0]!=0){
|
||||
continue;
|
||||
}else{
|
||||
if(count!=0 && count%refresh[0]==0){
|
||||
mustAppear.put(refresh[1],mustAppear.get(refresh[1])==null?1:(mustAppear.get(refresh[1])+1));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -278,7 +278,9 @@ public class BuyGoodsLogic {
|
|||
// if(rechargeInfo.getIsFirst()==0 && firstInvest == 1){
|
||||
// ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FirstRecharge,sRechargeCommodityConfig.getPrice());
|
||||
// SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(4).get(0);
|
||||
if(sRechargeCommodityConfig.getPrice()!=0&&price!=0){
|
||||
rechargeInfo.setFirst(1);
|
||||
}
|
||||
// String title = SErrorCodeEerverConfig.getI18NMessage("recharge_first_title");
|
||||
// String content = SErrorCodeEerverConfig.getI18NMessage("recharge_first_txt");
|
||||
// MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sActivityRewardConfig.getReward()),nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
|
@ -439,15 +441,16 @@ public class BuyGoodsLogic {
|
|||
// Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),goodsId));
|
||||
MongoUtil.getLjsdMongoTemplate().lastUpdate();
|
||||
sendGiftGooodsIndication(uid);
|
||||
onChargeSuccess(uid,price,0,orderId,cfgType);//充值成功上报
|
||||
onChargeSuccess(user,price,0,orderId,cfgType);//充值成功上报
|
||||
Map<Integer, Integer> mapReward = ItemUtil.arrayToMap(baseReward);
|
||||
if(price>0){
|
||||
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.RECHARGE_SUCCESS_INDICATION_VALUE, PlayerInfoProto.RechargeSuccessIndication.newBuilder().setOrderId(orderId).build(),true);
|
||||
ReportUtil.onReportEvent(user, ReportEventEnum.ORDER_COMPLETE.getType(),orderId,price,user.getPlayerInfoManager().getBundle_id(),user.getPlayerInfoManager().getChannel_id(),String.valueOf(GameApplication.serverId),String.valueOf(goodsId),sRechargeCommodityConfig.getName(),new ArrayList<>(mapReward.keySet()),new ArrayList<>(mapReward.values()),new Date(),user.getPlayerInfoManager().getLastDeviceId()==null?"DEFAULT_DEVICE":user.getPlayerInfoManager().getLastDeviceId());
|
||||
}
|
||||
return resultRes;
|
||||
|
||||
}
|
||||
private static void onChargeSuccess(int uid,double amount,int virtualAmount,String orderId,int cfgType){
|
||||
private static void onChargeSuccess(User user,double amount,int virtualAmount,String orderId,int cfgType){
|
||||
String currency_type = "CNY";
|
||||
switch (cfgType){
|
||||
case 1:
|
||||
|
@ -464,11 +467,11 @@ public class BuyGoodsLogic {
|
|||
rechargeEvent.setIp("");
|
||||
rechargeEvent.setName("charge");
|
||||
rechargeEvent.setIndex(GameApplication.serverProperties.getAppId()==null?"APPID":GameApplication.serverProperties.getAppId());
|
||||
rechargeEvent.setIdentify(String.valueOf(uid));
|
||||
rechargeEvent.setIdentify(String.valueOf(user.getPlayerInfoManager().getOpenId()));
|
||||
rechargeEvent.setProperties(new RechargeEventProp(orderId,amount*100,virtualAmount,currency_type,"",""));
|
||||
String s = DataMessageUtils.sendRechargePost(rechargeEvent);
|
||||
if(s!=null&&s.equals("1")){
|
||||
LOGGER.info("{}充值上报成功,价格为{}",uid,amount);
|
||||
LOGGER.info("{}充值上报成功,价格为{}",user.getPlayerInfoManager().getOpenId(),amount);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -419,7 +419,7 @@ public class SessionManager implements INetSession<ISession>, INetReceived<ISess
|
|||
|
||||
private void processUserOfflineData(User user,ISession session){
|
||||
try {
|
||||
GuildLogic.updateMyPos(user);
|
||||
// GuildLogic.updateMyPos(user);
|
||||
if(session.getFiveReady()==1){
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
playerInfoManager.setOffLineTime(TimeUtils.now());
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
package config;
|
||||
|
||||
import manager.STableManager;
|
||||
import manager.Table;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Table(name ="ArroGantFly")
|
||||
public class SArroGantFly implements BaseConfig {
|
||||
|
||||
private int id;
|
||||
|
||||
private int activityId;
|
||||
|
||||
private int values;
|
||||
|
||||
private int[][] valuesII;
|
||||
|
||||
private int[][] reward;
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int getActivityId() {
|
||||
return activityId;
|
||||
}
|
||||
|
||||
public int getValues() {
|
||||
return values;
|
||||
}
|
||||
|
||||
public int[][] getValuesII() {
|
||||
return valuesII;
|
||||
}
|
||||
|
||||
public int[][] getReward() {
|
||||
return reward;
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue