挑战副本 幻境达人 计数
parent
ea6899e50b
commit
b64879f4b2
|
@ -6,6 +6,8 @@ import com.ljsd.jieling.handler.map.MapManager;
|
|||
import com.ljsd.jieling.handler.map.TrialInfo;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
|
@ -35,31 +37,67 @@ class ExpectRankActivity extends AbstractActivity {
|
|||
super(id);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onActivityStart() throws Exception {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
//PlayerManager player = user.getPlayerInfoManager();
|
||||
if (SGlobalActivity.getsGlobalActivityMap().get(id).getType() != 70){
|
||||
return;
|
||||
}
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if (null == activityMission) {
|
||||
return;
|
||||
}
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
|
||||
MapManager mapManager = user.getMapManager();
|
||||
TrialInfo trialInfo = mapManager.getTrialInfo();
|
||||
SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).stream().forEach(n ->
|
||||
{
|
||||
if (trialInfo.getFloor() >= n.getValues()[1][0]) {
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(n.getId(), null);
|
||||
if (null == activityProgressInfo)
|
||||
return;
|
||||
activityProgressInfo.setState(1);
|
||||
}
|
||||
}
|
||||
);
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
void updateProgressWithUser(User user, ActivityMission activityMission, int count) {
|
||||
|
||||
if(SGlobalActivity.getsGlobalActivityMap().get(id).getType() == 70){
|
||||
if (SGlobalActivity.getsGlobalActivityMap().get(id).getType() == 70) {
|
||||
//森罗幻境特殊处理
|
||||
if(SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking()==1){
|
||||
if (SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking() == 1) {
|
||||
MapManager mapManager = user.getMapManager();
|
||||
TrialInfo trialInfo = mapManager.getTrialInfo();
|
||||
//排除神秘关卡
|
||||
if(trialInfo.getFloor()<10000 && trialInfo.getFloor() > activityMission.getV()){
|
||||
if (trialInfo.getFloor() < 10000 && trialInfo.getFloor() > activityMission.getV()) {
|
||||
activityMission.setV(trialInfo.getFloor());
|
||||
}else if(trialInfo.getFloor()>10000){
|
||||
activityMission.setV(trialInfo.getFloor()-10000);
|
||||
} else if (trialInfo.getFloor() > 10000) {
|
||||
activityMission.setV(trialInfo.getFloor() - 10000);
|
||||
|
||||
}
|
||||
RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(),String.valueOf(id),activityMission.getV());
|
||||
}else{
|
||||
RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(), String.valueOf(id), activityMission.getV());
|
||||
} else {
|
||||
activityMission.setV(count + activityMission.getV());
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
activityMission.setV(count + activityMission.getV());
|
||||
if(SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking()==1){
|
||||
if (SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking() == 1) {
|
||||
// String key = RedisKey.getKey(RedisKey.EXPERT_RANK, String.valueOf(id), false);
|
||||
// RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), activityMission.getV());
|
||||
RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(),String.valueOf(id),activityMission.getV());
|
||||
RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(), String.valueOf(id), activityMission.getV());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -100,7 +138,7 @@ class ExpectRankActivity extends AbstractActivity {
|
|||
User user = UserManager.getUser(session.getUid());
|
||||
int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getV();
|
||||
if (value < values[1][0]) {
|
||||
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
|
||||
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -112,28 +150,27 @@ class ExpectRankActivity extends AbstractActivity {
|
|||
ThreadManager.getScheduledExecutor().execute(this::sendReward);
|
||||
}
|
||||
|
||||
protected void sendReward(){
|
||||
Thread.currentThread().setName("sendReward-Activity-"+id);
|
||||
protected void sendReward() {
|
||||
Thread.currentThread().setName("sendReward-Activity-" + id);
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if(sGlobalActivity.getOpenRanking()==0){
|
||||
if (sGlobalActivity.getOpenRanking() == 0) {
|
||||
return;
|
||||
}
|
||||
List<SActivityRankingReward> sActivityRankingReward = SActivityRankingReward.getsActivityRankingRewardMapByActivityId(id);
|
||||
if(null==sActivityRankingReward) {
|
||||
if (null == sActivityRankingReward) {
|
||||
return;
|
||||
}
|
||||
int maxRank = 0;
|
||||
int maxRewardId = 0;
|
||||
Map<Integer, Integer> rank2miss = new HashMap<>();
|
||||
for (SActivityRankingReward sActivityRankingReward1 : sActivityRankingReward) {
|
||||
if(sActivityRankingReward1.getMaxRank()==-1){
|
||||
maxRank =-1;
|
||||
if (sActivityRankingReward1.getMaxRank() == -1) {
|
||||
maxRank = -1;
|
||||
maxRewardId = sActivityRankingReward1.getId();
|
||||
continue;
|
||||
}
|
||||
|
||||
if(maxRank!=-1)
|
||||
{
|
||||
if (maxRank != -1) {
|
||||
maxRank = Math.max(maxRank, sActivityRankingReward1.getMaxRank());
|
||||
}
|
||||
|
||||
|
@ -184,15 +221,15 @@ class ExpectRankActivity extends AbstractActivity {
|
|||
//checkAndUpdate value
|
||||
SActivityRankingReward sActivityRankingReward1 = SActivityRankingReward.getsActivityRankingRewardMap().get(missionId);
|
||||
//sendmail
|
||||
String title = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_title", new Object[]{sGlobalActivity.getSesc()},new int[]{1},"#");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_txt", new Object[]{sGlobalActivity.getSesc(),ranking},new int[]{1,0},"#");
|
||||
String title = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_title", new Object[]{sGlobalActivity.getSesc()}, new int[]{1}, "#");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_txt", new Object[]{sGlobalActivity.getSesc(), ranking}, new int[]{1, 0}, "#");
|
||||
String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward());
|
||||
MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
});
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
rank++;
|
||||
}catch (Exception e) {
|
||||
LOGGER.error("id为{}的玩家,{}活动排行奖励没有发成功 e={}",uid,id,e);
|
||||
} catch (Exception e) {
|
||||
LOGGER.error("id为{}的玩家,{}活动排行奖励没有发成功 e={}", uid, id, e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -121,7 +121,8 @@ public class ChallengeLogic {
|
|||
}
|
||||
ratio = percent[1];
|
||||
}
|
||||
builder.setLossBlood((long)lossBlood);
|
||||
LOGGER.info("输了 lossBlood:"+lossBlood);
|
||||
builder.setLossBloodOrTimes((long)lossBlood);
|
||||
} else if (type == 2) {//回合数
|
||||
long times = result[1];//回合数
|
||||
for (int[] percent : reward1) {
|
||||
|
@ -130,6 +131,8 @@ public class ChallengeLogic {
|
|||
}
|
||||
ratio = percent[1];
|
||||
}
|
||||
builder.setLossBloodOrTimes(times);
|
||||
LOGGER.info("输了 回合数 times :"+times);
|
||||
}
|
||||
LOGGER.info("challengeHandler ====>id:{},ratio:{}", sChallengeConfig.getId(), ratio);
|
||||
for (int[] fix : sChallengeConfig.getPassReward()) {
|
||||
|
@ -198,10 +201,10 @@ public class ChallengeLogic {
|
|||
int endlessNewReplicaLexel = user.getPlayerInfoManager().getEndlessNewReplica();
|
||||
int treasureReplicaLexel = user.getPlayerInfoManager().getTreasureReplica();
|
||||
//限制
|
||||
boolean consume = PlayerLogic.getInstance().checkAndUpdate(user, sChallengeConfig.getPivilegeID()[1], 1);
|
||||
/* boolean consume = PlayerLogic.getInstance().checkAndUpdate(user, sChallengeConfig.getPivilegeID()[1], 1);
|
||||
if (!consume) {
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
}*/
|
||||
Map<Integer, Integer> comDropMap = new HashMap<>();
|
||||
if (model == 2) {
|
||||
//扫荡
|
||||
|
|
Loading…
Reference in New Issue