back_recharge
lvxinran 2020-06-05 10:16:15 +08:00
commit ecdf7cebf1
12 changed files with 56 additions and 14 deletions

View File

@ -254,5 +254,7 @@ public interface BIReason {
int TRIAL_ADD_HP_CONSUME = 1062;//试炼回春散消耗
int DAILY_SCORE_CONSUME = 1063;//删除日常任务积分
}

View File

@ -63,13 +63,13 @@ public class GetPlayerInfoHandler extends BaseHandler{
userId, token,msgId,msgIndex,getPlayerInfoRequest.getNum(),getPlayerInfoRequest.getStr());
User user = UserManager.getUser(userId);
BuyGoodsLogic.initOwernBagInfo(user);
PlayerLogic.getInstance().sendDayilyMail(user,-1);
QuestionLogic.getInstence().onLogin(user);
PlayerManager playerInfoManager = user.getPlayerInfoManager();
ActivityLogic.getInstance().flushForLogin(user,iSession);
GlobalDataManaager.checkNeedReFlush(iSession,user,null);
BuyGoodsLogic.initOwernBagInfo(user);
Poster.getPoster().dispatchEvent(new UserOnlineEvent(userId));
user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0);
playerInfoManager.setLoginTime(TimeUtils.now());

View File

@ -1250,13 +1250,13 @@ public class ActivityLogic implements IEventHandler{
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
}
public Object[] getActivityStatusByType(User user,int type){
public Set<Integer> getActivityStatusByType(User user,int type){
List<SGlobalActivity> activities = SGlobalActivity.sGlobalActivityMapByType.get(type);
if(activities.isEmpty()){
return null;
return new HashSet<>();
}else{
Object[] objects = activities.stream().filter(n -> user.getActivityManager().getActivityMissionMap().keySet().contains(n.getId())).toArray();
Set<Integer> objects = activities.stream().filter(n -> user.getActivityManager().getActivityMissionMap().keySet().contains(n.getId())).map(sGlobalActivity -> sGlobalActivity.getId()).collect(Collectors.toSet());
return objects;
}
}

View File

@ -61,7 +61,7 @@ public interface ActivityType {
int LEVEL_EXPERT = 52; //进阶达人
int BUY_GOLD = 53; //购买金币 点石成金
int COPY_PASS = 54; // 开服福利 副本限时通过奖励
int COPY_PASS = 55; // 开服福利 副本限时通过奖励
}

View File

@ -62,6 +62,7 @@ public class GuildMyInfo extends MongoBase {
this.path.addAll(path);
this.path.remove(0);
}
updateString("path",this.path);
preMoveTimestamp = timestamp;
setPreMoveTimestamp(timestamp);
}

View File

@ -264,7 +264,7 @@ public class UserMissionManager extends MongoBase {
}
break;
case DAILY_MISSION_REWARD:{
dailyMissionIdsType.rewardMission((int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION));
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]);
updateString("dailyMissionIdsType",dailyMissionIdsType);
@ -452,7 +452,7 @@ public class UserMissionManager extends MongoBase {
temp[1] = STreasureSunlongTaskConfig.treasureTaskConfig.get(taskTypeMap.get(i)).getWeight();
randomTask[i] = temp;
}
int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask,typeMissionNum[type-1]);// typeMissionNum[type-1]
int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask,Math.max(typeMissionNum[type-1],randomTask.length));// typeMissionNum[type-1]
List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION);
for(Integer task:tasks){
treasureMissionIdsType.getDoingMissionIds().add(task);

View File

@ -464,7 +464,7 @@ public class MissionLoigc {
//tofix zsx
BaseDataManager missTypeData = DataManagerDistributor.getMissTypeData(MissionType.findByMissionId(missionTypeId));
if(missTypeData instanceof AbstractDataManager){
return ((AbstractDataManager) missTypeData).getProcess(user,user.getUserMissionManager().getCumulationData(),missionSubType);
return ((AbstractDataManager) missTypeData).getProcess(user,cumulationData,missionSubType);
}
Integer count =0;

View File

@ -15,15 +15,15 @@ public class RandomAllTypeTimes extends AbstractDataManager {
@Override
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
int type =(int)parm[0];
int count =(int)parm[1];
data.card_random_type.put(0,data.card_random_type.getOrDefault(0, 0)+count);
return new CumulationData.Result(missionType);
}
@Override
public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) {
double sum = data.card_random_type.entrySet().stream()
.filter(integerIntegerEntry -> integerIntegerEntry.getKey() == 1 || integerIntegerEntry.getKey() == 4 || integerIntegerEntry.getKey() == 5)
.mapToDouble(Map.Entry::getValue).sum();
return sum>=cfgValue[1][0];
return data.card_random_type.getOrDefault(0, 0)>=cfgValue[1][0];
}
@Override

View File

@ -1,5 +1,7 @@
package com.ljsd.jieling.logic.mission.main;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.activity.ActivityType;
import com.ljsd.jieling.logic.dao.CumulationData;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.MissionLoigc;
@ -7,8 +9,10 @@ import com.ljsd.jieling.logic.mission.MissionState;
import com.ljsd.jieling.logic.mission.data.AbstractDataManager;
import com.ljsd.jieling.logic.mission.data.BaseDataManager;
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
import com.ljsd.jieling.util.ItemUtil;
import config.SDailyTasksConfig;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@ -24,9 +28,33 @@ public class DailyMissionIdsType extends AbstractMissionType{
@Override
public int[][] reward(int missionId) {
SDailyTasksConfig sDailyTasksConfigById = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
return sDailyTasksConfigById.getReward();
}
public void rewardMission( User user, int missionId, List<MissionStateChangeInfo> missionTypeEnumListMap){
if (!getFinishMissionIds().contains(missionId)) {
return ;
}
getFinishMissionIds().remove(missionId);
getRewardedMissionIds().set(missionId);
SDailyTasksConfig sDailyTasksConfigById = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
int[][] reward = sDailyTasksConfigById.getReward();
//添加戒灵秘宝奖励
MissionStateChangeInfo stateChangeInfo;
if(ActivityLogic.getInstance().getActivityStatusByType(user,ActivityType.TREASURE).size()!=0){
int[][] mazePoint = sDailyTasksConfigById.getMazePoint();
int[][] ints = new int[reward.length + mazePoint.length][];
System.arraycopy(reward, 0, ints, 0, reward.length);
System.arraycopy(mazePoint, 0, ints, reward.length, mazePoint.length);
stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD, ints);
}else {
stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD, reward);
}
missionTypeEnumListMap.add(stateChangeInfo);
}
@Override
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) {

View File

@ -389,8 +389,13 @@ public class PlayerLogic {
fBuilder.setPlayerBindPhone(CommonProto.PlayerBindPhone.newBuilder().setPhoneNum(phoneBindInfo.getPhoneNum()).setState(phoneBindInfo.getState()).build());
}
//清除日清任务道具
user.getItemManager().removeItem(Global.DAILY_TASK_REMOVE_ITEM);
Item item = user.getItemManager().getItem(Global.DAILY_TASK_REMOVE_ITEM);
if (item != null) {
Map<Integer, Integer> dailyScore = new HashMap<>();
dailyScore.put(Global.DAILY_TASK_REMOVE_ITEM, item.getItemNum());
//清除日清任务道具
ItemUtil.itemCost(user, dailyScore, BIReason.DAILY_SCORE_CONSUME, 1);
}
}

View File

@ -19,6 +19,7 @@ public class SDailyTasksConfig implements BaseConfig {
private int[][] reward;
private int[][] mazePoint;//戒灵秘宝积分
public static Map<Integer, SDailyTasksConfig> config;
public static Map<Integer, List<SDailyTasksConfig>> sTaskConfigByTypeMap;
@ -64,4 +65,8 @@ public class SDailyTasksConfig implements BaseConfig {
}
public int[][] getMazePoint() {
return mazePoint;
}
}

View File

@ -21,6 +21,7 @@ public class SVipLevelConfig implements BaseConfig {
private int[] openRules;
private int moneyLimit;
private int[][] property;
@Override