back_recharge
zhangshanxue 2019-11-04 18:25:51 +08:00
commit 4da9bc7b7d
6 changed files with 45 additions and 23 deletions

View File

@ -866,6 +866,19 @@ public class RedisUtil {
return -1D;
}
public void updateZsetScores(String type,String key, Set<ZSetOperations.TypedTuple<String>> tuples){
String rkey = getKey(type, key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
redisTemplate.opsForZSet().add(rkey,tuples);
return;
} catch (Exception e) {
TimeUtils.sleep(FAILED_SLEEP);
}
}
}
public void incrementZsetScore(String type,String key, String value, int changeScore){
String rkey = getKey(type, key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {

View File

@ -82,6 +82,9 @@ public class GMRequestHandler extends BaseHandler{
CommonProto.GmResponse.Builder gmBuilder = CommonProto.GmResponse.newBuilder();
switch (gmCommandType){
case GlobalGm.ADD_ITEM:
if (prarm1 ==1){
prarm2 = Integer.parseInt(commandArray[2]);
}
gmBuilder.setDrop(ItemUtil.drop(cUser,new int[][]{{prarm1,prarm2}}, BIReason.GM_REWARD));
break;
case GlobalGm.ADD_CARD:

View File

@ -171,10 +171,9 @@ public class GetPlayerInfoHandler extends BaseHandler{
playerInfoManager.setIsdayFirst(1);
}
RedisUtil.getInstence().set(RedisKey.USER_LOGIN_URL + userId, RPCServerTask.userCallBackUrl);
LOGGER.info("back to client!");
if(user.getPlayerInfoManager().getGuidePoints().get(1)!=-1){
/*if(user.getPlayerInfoManager().getGuidePoints().get(1)!=-1){
user.getPlayerInfoManager().updateGuidePoint(1,-1);
}
}*/
} catch (Exception e) {
e.printStackTrace();
}

View File

@ -510,28 +510,31 @@ public class MapLogic {
return false;
}
public boolean updateMapByOnlyConsumeActionPower(ISession session, int curXY, int triggerXY, List<Integer> cells, MessageTypeProto.MessageType messageType) throws Exception {
public boolean updateMapByOnlyConsumeActionPower(ISession session, int triggerXY, List<Integer> cells, MessageTypeProto.MessageType messageType) throws Exception {
if (triggerXY == -1000) {
int uid = session.getUid();
User user = UserManager.getUser(uid);
MapManager mapManager = user.getMapManager();
mapManager.addWalkCells(new HashSet<>(cells));
if(mapManager.getCurMapId()!=0){
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){
int[][] cost = new int[1][];
int costId = SChallengeSetting.getChallengeSetting().getActionPowerId();
int costNum = cells.size();
mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+costNum);
cost[0]= new int[]{costId,costNum};
boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
if(!costResult){
costNum = user.getItemManager().getItem(costId).getItemNum();
cost[0][1]= costNum;
ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
if(!cells.isEmpty()){
int curXY = cells.get(cells.size()-1);
MapManager mapManager = user.getMapManager();
mapManager.addWalkCells(new HashSet<>(cells));
if(mapManager.getCurMapId()!=0){
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){
int[][] cost = new int[1][];
int costId = SChallengeSetting.getChallengeSetting().getActionPowerId();
int costNum = cells.size();
mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+costNum);
cost[0]= new int[]{costId,costNum};
boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
if(!costResult){
costNum = user.getItemManager().getItem(costId).getItemNum();
cost[0][1]= costNum;
ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
}
}
}
mapManager.setCurXY(curXY);
}
mapManager.setCurXY(curXY);
MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder()
.setLeftTime(getLeftTime(user, true))
.build();
@ -544,7 +547,7 @@ public class MapLogic {
public void updateMap(ISession session, int curXY, int triggerXY, List<Integer> cells, MessageTypeProto.MessageType messageType) throws Exception {
LOGGER.info("updateMap() curXY=>{},triggerXY=>{},cells={}", curXY, triggerXY,cells);
if (updateMapByOnlyConsumeActionPower(session, curXY, triggerXY, cells, messageType)) {
if (updateMapByOnlyConsumeActionPower(session, triggerXY, cells, messageType)) {
return;
}
if (triggerXY != curXY) {

View File

@ -604,6 +604,7 @@ public class ArenaLogic {
title = SErrorCodeEerverConfig.getI18NMessage("arena_season_reward_title");
}
Set<ZSetOperations.TypedTuple<String>> arenaRankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.ARENA_RANK,Integer.toString(curSeason), 0, -1);
int nextSeason = curSeason + 1;
if(type == GlobalsDef.ARENA_SEASON_REWARD){
curSeason=0;
}
@ -617,7 +618,6 @@ public class ArenaLogic {
continue;
}
if(type == GlobalsDef.ARENA_DAILY_REWARD){
MissionEventDistributor.requestStart();
user.getUserMissionManager().onGameEvent(user,GameEvent.ARENA_UPDATE_RANK,rank);
ISession sessionByUid = OnlineUserManager.getSessionByUid(uid);
@ -633,12 +633,16 @@ public class ArenaLogic {
user.getPlayerInfoManager().removeRed(GlobalsDef.ARENA_CHALLENGE_TYPE);
String key = RedisUtil.getInstence().getKey(RedisKey.ARENA_RRECORD, Integer.toString(uid));
RedisUtil.getInstence().del(key);
}
String rewardByRank = getRewardByRank(rank++, type);
if(!"".equals(rewardByRank)){
MailLogic.getInstance().sendMail(user.getId(),title,content,rewardByRank,nowTime, Global.MAIL_EFFECTIVE_TIME);
}
}
if(type == GlobalsDef.ARENA_SEASON_REWARD){
RedisUtil.getInstence().updateZsetScores(RedisKey.ARENA_RANK,Integer.toString(nextSeason),arenaRankInfo);
}
MongoUtil.getInstence().lastUpdate();
}

View File

@ -11,10 +11,10 @@ public class BuyGoodsManager implements BaseDataManager {
int itemId = (int)parm[0];
int itemNum = (int)parm[1];
int storeType = (int)parm[2];
if(missionType == MissionType.BUY_GOLD_TIMES && itemId == Global.GOLD){
if(storeType == StoreType.FUNCTION_STORE.getType() && missionType == MissionType.BUY_GOLD_TIMES && itemId == Global.GOLD){
data.buyGoldTimes = data.buyGoldTimes + itemNum;
return new CumulationData.Result(missionType);
}else if(missionType == MissionType.BUY_STAMINA_TIMES && itemId == Global.STAMINA){
}else if(storeType == StoreType.FUNCTION_STORE.getType() && missionType == MissionType.BUY_STAMINA_TIMES && itemId == Global.STAMINA){
data.buyStaminaTimes = data.buyStaminaTimes + itemNum;
return new CumulationData.Result(missionType);
}else if(missionType == MissionType.BUY_GROCERY_TIMES){