比数小游戏挂机奖励
parent
264cf180fc
commit
ee077afb31
|
|
@ -462,4 +462,5 @@ public interface BIReason {
|
|||
int SOLDIER_LOTTERY_COST = 1348;//小兵招募消耗
|
||||
int SOLDIER_DISMISS_REWARD = 1349;//小兵遣散获得
|
||||
int SOLDIER_MIAN_LEVEL_REWARD = 1350;//小兵主线奖励
|
||||
int COMPARE_NUM_GAME_REWARD = 1351;//比数小游戏挂机奖励
|
||||
}
|
||||
|
|
@ -13,12 +13,17 @@ import com.ljsd.jieling.util.ItemUtil;
|
|||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SCompareNumChapter;
|
||||
import config.SCompareNumSetting;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 数字小游戏
|
||||
*/
|
||||
@Component
|
||||
public class CompareNumBonusHandler extends BaseHandler {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
|
|
@ -101,8 +106,7 @@ public class CompareNumBonusHandler extends BaseHandler {
|
|||
MessageUtil.sendIndicationMessage(sessionByUid, 1, MessageTypeProto.MessageType.COMPARENUM_DATA_INDICATION_VALUE, indication.build(), true);
|
||||
}
|
||||
|
||||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.COMPARENUM_BONUS_RESPONSE_VALUE,
|
||||
response.build(), true);
|
||||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.COMPARENUM_BONUS_RESPONSE_VALUE, response.build(), true);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.ljsd.jieling.exception.ErrorCodeException;
|
|||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
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.netty.cocdex.PacketNetData;
|
||||
|
|
@ -14,6 +15,7 @@ import com.ljsd.jieling.util.MessageUtil;
|
|||
import config.SCompareNumChapter;
|
||||
import config.SCompareNumSetting;
|
||||
import config.SMainLevelConfig;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
|
@ -21,7 +23,7 @@ import util.TimeUtils;
|
|||
|
||||
import java.util.TreeMap;
|
||||
|
||||
|
||||
@Component
|
||||
public class CompareNumEndGameHandler extends BaseHandler {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
|
|
@ -34,6 +36,7 @@ public class CompareNumEndGameHandler extends BaseHandler {
|
|||
PlayerInfoProto.CompareNumEndGameRequest request = PlayerInfoProto.CompareNumEndGameRequest.parseFrom(bytes);
|
||||
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
PlayerManager playerManager = user.getPlayerInfoManager();
|
||||
int levelId = request.getLevelId();
|
||||
int result = request.getResult();
|
||||
|
||||
|
|
@ -43,7 +46,7 @@ public class CompareNumEndGameHandler extends BaseHandler {
|
|||
return;
|
||||
}
|
||||
|
||||
int curLevelId = user.getPlayerInfoManager().getCompareNumLevelId();
|
||||
int curLevelId = playerManager.getCompareNumLevelId();
|
||||
if (curLevelId <= 0 || curLevelId < levelId) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("invalid CompareNumLevelId"));
|
||||
}
|
||||
|
|
@ -59,8 +62,8 @@ public class CompareNumEndGameHandler extends BaseHandler {
|
|||
}
|
||||
|
||||
int lastId = (int)((TreeMap)SCompareNumSetting.getCompareNumSettingMap()).lastEntry().getKey();
|
||||
if (curLevelId != lastId && user.getPlayerInfoManager().isCompareNumEndGame()) {
|
||||
user.getPlayerInfoManager().setCompareNumEndGame(false);
|
||||
if (curLevelId != lastId && playerManager.isCompareNumEndGame()) {
|
||||
playerManager.setCompareNumEndGame(false);
|
||||
}
|
||||
/*
|
||||
章节解锁条件
|
||||
|
|
@ -70,7 +73,7 @@ public class CompareNumEndGameHandler extends BaseHandler {
|
|||
for (int[] limit: chapterCfg.getLimit()) {
|
||||
|
||||
if (limit[0] == 1) {
|
||||
if (limit[1] > user.getPlayerInfoManager().getLevel()) {
|
||||
if (limit[1] > playerManager.getLevel()) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("invalid level"));
|
||||
}
|
||||
}
|
||||
|
|
@ -94,7 +97,7 @@ public class CompareNumEndGameHandler extends BaseHandler {
|
|||
*/
|
||||
for (int[] limit: cfg.getLevelLimit()) {
|
||||
if (limit[0] == 1) {
|
||||
if (limit[1] > user.getPlayerInfoManager().getLevel()) {
|
||||
if (limit[1] > playerManager.getLevel()) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("invalid level"));
|
||||
}
|
||||
}
|
||||
|
|
@ -108,11 +111,11 @@ public class CompareNumEndGameHandler extends BaseHandler {
|
|||
}
|
||||
}
|
||||
|
||||
if (!user.getPlayerInfoManager().isCompareNumEndGame()) {
|
||||
if (!playerManager.isCompareNumEndGame()) {
|
||||
int nextId = 0;
|
||||
if (lastId == curLevelId) {
|
||||
nextId = curLevelId;
|
||||
user.getPlayerInfoManager().setCompareNumEndGame(true);
|
||||
playerManager.setCompareNumEndGame(true);
|
||||
}
|
||||
else {
|
||||
nextId = curLevelId + 1;
|
||||
|
|
@ -122,13 +125,13 @@ public class CompareNumEndGameHandler extends BaseHandler {
|
|||
}
|
||||
}
|
||||
|
||||
user.getPlayerInfoManager().setCompareNumLevelId(nextId);
|
||||
user.getPlayerInfoManager().setCompareNumLevelTime(TimeUtils.nowInt());
|
||||
playerManager.setCompareNumLevelId(nextId);
|
||||
playerManager.setCompareNumLevelTime(TimeUtils.nowInt());
|
||||
|
||||
PlayerInfoProto.CompareNumDataIndication.Builder indication = PlayerInfoProto.CompareNumDataIndication.newBuilder();
|
||||
indication.setLevelId(user.getPlayerInfoManager().getCompareNumLevelId());
|
||||
indication.setCompleteNum(SCompareNumSetting.getChapterNumById(user.getPlayerInfoManager().getCompareNumLevelId(), user.getPlayerInfoManager().isCompareNumEndGame()));
|
||||
for (int rewardId: user.getPlayerInfoManager().getCompareNumRewardInfo()) {
|
||||
indication.setLevelId(playerManager.getCompareNumLevelId());
|
||||
indication.setCompleteNum(SCompareNumSetting.getChapterNumById(playerManager.getCompareNumLevelId(), playerManager.isCompareNumEndGame()));
|
||||
for (int rewardId: playerManager.getCompareNumRewardInfo()) {
|
||||
indication.addRewardIdArr(rewardId);
|
||||
}
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(session.getUid());
|
||||
|
|
@ -137,6 +140,9 @@ public class CompareNumEndGameHandler extends BaseHandler {
|
|||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, cfg.getPassReward(), BIReason.COMPARENUM_LEVEL_REWARD);
|
||||
response.setDrop(drop);
|
||||
response.setNextId(nextId);
|
||||
if (playerManager.getCompareNumRewardStartTime() == 0){
|
||||
playerManager.setCompareNumRewardStartTime(TimeUtils.now());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,12 +13,14 @@ import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
|||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SCompareNumSetting;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
public class CompareNumInfoHandler extends BaseHandler {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
package com.ljsd.jieling.handler.comparenum;
|
||||
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
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.fight.DuoduiTowerLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SCompareNumSetting;
|
||||
import config.SSpecialConfig;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.FightInfoProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import util.TimeUtils;
|
||||
|
||||
/**
|
||||
* 比数小游戏 领取挂机奖励
|
||||
*/
|
||||
@Component
|
||||
public class CompareNumRewardHandler extends BaseHandler<PlayerInfoProto.CompareNumRewardRequest> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.CompareNumRewardRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processWithProto(ISession iSession, PlayerInfoProto.CompareNumRewardRequest proto) throws Exception {
|
||||
User user = UserManager.getUser(iSession.getUid());
|
||||
PlayerManager playerManager = user.getPlayerInfoManager();
|
||||
|
||||
int levelId = playerManager.getCompareNumLevelId();
|
||||
long now = TimeUtils.now();
|
||||
long startTime = playerManager.getCompareNumRewardStartTime();
|
||||
long timeMinutes = (now - startTime) / 1000 / 60;
|
||||
int accumulationTime = SSpecialConfig.getIntegerValue("Shenlingshilian_accumulation_time");
|
||||
long max = Math.min(timeMinutes, accumulationTime);
|
||||
if (max < 1){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE);
|
||||
}
|
||||
SCompareNumSetting config = SCompareNumSetting.getConfig(levelId);
|
||||
if (config == null || config.getIncome() == null || config.getIncome().length == 0){
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, config.getIncome(), max, BIReason.COMPARE_NUM_GAME_REWARD);
|
||||
PlayerInfoProto.CompareNumRewardResponse.Builder builder = PlayerInfoProto.CompareNumRewardResponse.newBuilder();
|
||||
builder.setDrop(drop);
|
||||
playerManager.setCompareNumRewardStartTime(now);
|
||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.CompareNumRewardResponse_VALUE, builder.build(), true);
|
||||
}
|
||||
}
|
||||
|
|
@ -8,9 +8,11 @@ import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
|||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SCompareNumSetting;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
@Component
|
||||
public class GetCompareInfoHandler extends BaseHandler {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
|
|
@ -30,7 +32,8 @@ public class GetCompareInfoHandler extends BaseHandler {
|
|||
|
||||
response.setLevelId(player.getCompareNumLevelId())
|
||||
.setCompleteNum(SCompareNumSetting.getChapterNumById(player.getCompareNumLevelId(), player.isCompareNumEndGame()))
|
||||
.addAllRewardIdArr(player.getCompareNumRewardInfo());
|
||||
.addAllRewardIdArr(player.getCompareNumRewardInfo())
|
||||
.setRewardStartTime(player.getCompareNumRewardStartTime());
|
||||
|
||||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.GET_COMPARENUM_INFO_RESPONSE_VALUE, response.build(), true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -184,12 +184,10 @@ public class PlayerManager extends MongoBase {
|
|||
|
||||
// 数字小游戏
|
||||
private int compareNumLevelId;
|
||||
|
||||
private Set<Integer> compareNumRewardInfo = new HashSet<>();
|
||||
|
||||
private int compareNumLevelTime;
|
||||
|
||||
private boolean compareNumEndGame;
|
||||
private long compareNumRewardStartTime;
|
||||
|
||||
// 开启的七界层数, key: 七届类型, value: 最高层数
|
||||
private final Map<Integer,Integer> sevenWorldOpenTier = new HashMap<>();
|
||||
|
|
@ -1506,6 +1504,15 @@ public class PlayerManager extends MongoBase {
|
|||
updateString("compareNumEndGame", this.compareNumEndGame);
|
||||
}
|
||||
|
||||
public long getCompareNumRewardStartTime() {
|
||||
return compareNumRewardStartTime;
|
||||
}
|
||||
|
||||
public void setCompareNumRewardStartTime(long compareNumRewardStartTime) {
|
||||
this.compareNumRewardStartTime = compareNumRewardStartTime;
|
||||
updateString("compareNumRewardStartTime", compareNumRewardStartTime);
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getGemDrawCountMap() {
|
||||
return gemDrawCountMap;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ public class DuoduiTowerLogic {
|
|||
}
|
||||
List<SDuoDuiTower> towers = SDuoDuiTower.duoduiMap.get(type).get(tier);
|
||||
if (towers == null || towers.isEmpty() || towers.get(0).getIncome() == null || towers.get(0).getIncome().length == 0){
|
||||
String format = MessageFormat.format("多队获取奖励失败,配置表奖励不存在,类型:{0},当前层数:{1},uid:{3}", type, tier, user.getId());
|
||||
String format = MessageFormat.format("多队获取奖励失败,配置表奖励不存在,类型:{0},当前层数:{1},uid:{2}", type, tier, user.getId());
|
||||
throw new ErrorCodeException(format);
|
||||
}
|
||||
int[][] income = towers.get(0).getIncome();
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ public class SCompareNumSetting implements BaseConfig {
|
|||
private int[][] levelLimit;
|
||||
private int[] buildID;
|
||||
private int[][] passReward;
|
||||
private int[][] income;
|
||||
private int repeat;
|
||||
|
||||
private static Map<Integer, SCompareNumSetting> sCompareNumSettingMap = new HashMap<>();
|
||||
|
|
@ -30,7 +31,7 @@ public class SCompareNumSetting implements BaseConfig {
|
|||
SCompareNumSetting cfg = sCompareNumSettingMap.get(id);
|
||||
if (cfg != null) {
|
||||
List<SCompareNumSetting> list = chapter2List.get(cfg.getChapter());
|
||||
if (list != null && list.size() > 0) {
|
||||
if (list != null && !list.isEmpty()) {
|
||||
SCompareNumSetting info = list.get(0);
|
||||
if (info != null) {
|
||||
int lastId = (int)((TreeMap)SCompareNumSetting.getCompareNumSettingMap()).lastEntry().getKey();
|
||||
|
|
@ -80,16 +81,18 @@ public class SCompareNumSetting implements BaseConfig {
|
|||
return levelLimit;
|
||||
}
|
||||
|
||||
|
||||
public int[][] getPassReward() {
|
||||
return passReward;
|
||||
}
|
||||
|
||||
public int[][] getIncome() {
|
||||
return income;
|
||||
}
|
||||
|
||||
public int getRepeat() {
|
||||
return repeat;
|
||||
}
|
||||
|
||||
|
||||
public static List<SCompareNumSetting> getListByChapter(int chapterId) {
|
||||
return chapter2List.get(chapterId);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue