fix
parent
56455fefbe
commit
7ef0ac846c
|
@ -50,6 +50,8 @@ public class MapPointConfig implements BaseConfig{
|
|||
|
||||
private int position;
|
||||
|
||||
private int[][] randomProbability;
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
scMapEventMap = STableManager.getConfig(MapPointConfig.class);
|
||||
|
@ -86,4 +88,8 @@ public class MapPointConfig implements BaseConfig{
|
|||
public int getConfused() {
|
||||
return confuced;
|
||||
}
|
||||
|
||||
public int[][] getRandomProbability() {
|
||||
return randomProbability;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,8 @@ public class SPrivilegeTypeConfig implements BaseConfig {
|
|||
|
||||
private int maxTimes;
|
||||
|
||||
private int ifFloat;
|
||||
|
||||
private static Map<Integer,SPrivilegeTypeConfig> sPrivilegeTypeConfigMap;
|
||||
|
||||
|
||||
|
@ -41,5 +43,11 @@ public class SPrivilegeTypeConfig implements BaseConfig {
|
|||
return refreshType;
|
||||
}
|
||||
|
||||
|
||||
public int getMaxTimes() {
|
||||
return maxTimes;
|
||||
}
|
||||
|
||||
public int getIfFloat() {
|
||||
return ifFloat;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package com.ljsd.jieling.core;
|
||||
|
||||
public interface VipPrivilegeType {
|
||||
int ADVENTURE_BASE_REWARD = 1;//探险基础奖励收益
|
||||
int ADVENTURE_MINERAL_REWARD = 2;//探险矿石奖励收益
|
||||
int ADVENTURE_RUNNE_REWARD = 3;//探险符文奖励收益
|
||||
|
||||
int FAST_MAP_LIMIT = 4;//快速探险的次数上限
|
||||
int BUY_STAIM_LIMIT = 5;//购买体力次数上限
|
||||
|
||||
int SECRET_RANDOM_LIMIT = 6;//秘盒抽取次数上限
|
||||
int SIMPLE_MAP_LIMIT = 7;//剧情副本每日恢复次数上限
|
||||
|
||||
int HERO_MAP_LIMIT = 8;//英雄副本每日购买次数上限
|
||||
|
||||
int CHALLENGE_INVASIONBOSS_LIMIT = 9;//外敌入侵每日次数上限
|
||||
|
||||
int STORE_GROCERY_FLUSH_LIMIT = 10;//杂货商店刷新次数
|
||||
int STORE_SOUL_FLUSH_LIMIT = 11;//契魂商店刷新次数
|
||||
|
||||
int BUY_GOLD_DAY_LIMIT = 12; //每日可购买金币的次数
|
||||
|
||||
int POKEMON_NUM = 13; //异妖上阵栏位
|
||||
int FREE_HERO_RANDOM = 14;//免费抽取妖灵师
|
||||
int FREE_SECRET_RANDOM = 15; //解锁免费抽取秘盒
|
||||
|
||||
//功能项解锁
|
||||
int UNLOCK_TWO_FIGHT = 501;//解锁2倍速战斗
|
||||
int UNLOCK_MAP_SWEEP = 502;//解锁副本扫荡功能
|
||||
int UNLOCK_ELEMENT_RANDOM = 503;//解锁元素征募功能
|
||||
|
||||
int UNLOCK_ADVENTURE_ONEKEY = 504;//解锁挂机一键收取
|
||||
int UNLOCK_SKIP_FIGHT = 505;//解锁跳过战斗功能
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package com.ljsd.jieling.globals;
|
||||
|
||||
public interface BIReason {
|
||||
int ADVENTURE_BASE_REWARD = 1; //探险基础收益
|
||||
int ADVENTURE_RANDOM_REWARDD =2;//探险随机收益
|
||||
|
||||
int DECOMPOS_ITEM_REWARD = 3 ;//分解道具奖励
|
||||
int DECOMPOS_EQUIP_REWARD = 4 ;//分解道具奖励
|
||||
int DECOMPOS_HERO_REWARD = 5;//分解妖灵师获取奖励
|
||||
int COMPOS_HERO_REWARD = 6 ;//分解妖灵师获取奖励
|
||||
|
||||
int HERO_RANDOM = 7 ;//抽卡
|
||||
|
||||
int WORKSHOP_CREATEMATERIAL = 8; //
|
||||
int WORKSHOP_CREATEQUIP = 9; // 装备打造
|
||||
int WORKSHOP_MAKEFOOD = 10; // 装备打造
|
||||
|
||||
int TAKE_MISSION_REWARD = 11;// 领取任务奖励
|
||||
int TAKE_ACTIVITY_REWARD = 12;// 领取活动奖励
|
||||
|
||||
int TAKE_SECRET_REWARD = 13; //秘盒奖励
|
||||
int TAKE_SECRET_EXTRA_REWARD = 14;//秘盒额外奖励
|
||||
int USER_BORN_REWARD = 15 ;// 角色出生奖励
|
||||
|
||||
|
||||
int TAKE_MAIL_REWARD = 16 ;// 邮件奖励
|
||||
int TAKE_VIP_LEVEL_REWARD = 17 ;// 邮件奖励
|
||||
int TAKE_VIP_DAILY_REWARD = 18 ;// 邮件奖励
|
||||
|
||||
int STORE_BUY_ITEM = 19; //商店购买
|
||||
|
||||
int MAP_EVENET_REWARD = 20; //地图事件点奖励
|
||||
int MAP_GENERAL_FIGHT_REWARD = 21; //地图战斗
|
||||
int MAP_FAST_FIGHT_REWARD = 22; //地图快速战斗
|
||||
int MAP_MISSION_REWARD = 23; //地图任务奖励
|
||||
int MAP_SWEEP_REWARD = 24; //扫荡地图副本
|
||||
|
||||
int LEVELDIFFICULTY_FIGHT_REWARD = 25; //关卡奖励
|
||||
int LEVELDIFFICULTY_SWEEP_REWARD = 26; //关卡扫荡奖励
|
||||
|
||||
int USER_LEVELUPSTAMINA_REWARD = 27; //玩家升级加经验
|
||||
|
||||
int GM_REWARD = 28; //gm加成
|
||||
|
||||
|
||||
}
|
|
@ -14,8 +14,9 @@ public interface GlobalItemType {
|
|||
int EQUIP = 3; //装备
|
||||
int POKENMON_COMONPENT = 4; //异妖组件
|
||||
int RANDOM_ITME = 5; // 随机道具
|
||||
int RUNNE = 6;
|
||||
int RUNNE = 6; //符文
|
||||
int BLUE_IMAGE=7; // 蓝图
|
||||
int MINERAL=8; // 矿石
|
||||
|
||||
//物品使用类型
|
||||
int NO_USE = 0 ; //不使用
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.ljsd.GameApplication;
|
|||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.globals.GlobalGm;
|
||||
import com.ljsd.jieling.globals.GlobalItemType;
|
||||
|
@ -67,7 +68,7 @@ public class GMRequestHandler extends BaseHandler{
|
|||
CommonProto.GmResponse.Builder gmBuilder = CommonProto.GmResponse.newBuilder();
|
||||
switch (gmCommandType){
|
||||
case GlobalGm.ADD_ITEM:
|
||||
gmBuilder.setDrop(ItemUtil.drop(cUser,new int[][]{{prarm1,prarm2}}));
|
||||
gmBuilder.setDrop(ItemUtil.drop(cUser,new int[][]{{prarm1,prarm2}}, BIReason.GM_REWARD));
|
||||
break;
|
||||
case GlobalGm.ADD_CARD:
|
||||
gmBuilder.setDrop(giveHero(cUser,prarm1,prarm2));
|
||||
|
@ -80,7 +81,7 @@ public class GMRequestHandler extends BaseHandler{
|
|||
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.SEND_RED_POINT_INDICATION_VALUE,redPointInfo,true);
|
||||
break;
|
||||
case GlobalGm.HERO_STAR:
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(cUser, new int[][]{{prarm1, 1}});
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(cUser, new int[][]{{prarm1, 1}},BIReason.GM_REWARD);
|
||||
MongoUtil.getInstence().lastUpdate();
|
||||
CommonProto.Hero heroProto = drop.getHero(0);
|
||||
String heroId = heroProto.getId();
|
||||
|
@ -149,7 +150,7 @@ public class GMRequestHandler extends BaseHandler{
|
|||
}
|
||||
gmDrop[i++] = new int[]{itemId,itemNum};
|
||||
}
|
||||
ItemUtil.drop(cUser,gmDrop);
|
||||
ItemUtil.drop(cUser,gmDrop,BIReason.GM_REWARD);
|
||||
break;
|
||||
}
|
||||
//1:获取当前服务器时间 2: 获取服务器开服时间 3 : 获取玩家创建角色时间 4:修改服务器时间
|
||||
|
@ -218,7 +219,7 @@ public class GMRequestHandler extends BaseHandler{
|
|||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
Map<Integer,Integer> cardMap = new ConcurrentHashMap<>();
|
||||
cardMap.put(cardId,cardNum);
|
||||
ItemUtil.addCard(cUser,cardMap,dropBuilder);
|
||||
ItemUtil.addCard(cUser,cardMap,dropBuilder,BIReason.GM_REWARD);
|
||||
return dropBuilder;
|
||||
}
|
||||
|
||||
|
@ -254,4 +255,5 @@ public class GMRequestHandler extends BaseHandler{
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
StoreLogic.resetStoreRefreshNum(userId);
|
||||
//竞技场免费次数刷新
|
||||
ArenaLogic.getInstance().flushFreeUseTimes(user);
|
||||
playerInfoManager.setHadTakeDailyBoxVip(0);
|
||||
playerInfoManager.vipFlush();
|
||||
|
||||
}
|
||||
playerInfoManager.setLoginTime(TimeUtils.now());
|
||||
|
|
|
@ -2,8 +2,10 @@ package com.ljsd.jieling.handler.map;
|
|||
|
||||
import com.googlecode.protobuf.format.JsonFormat;
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.handler.map.behavior.BaseBehavior;
|
||||
import com.ljsd.jieling.handler.map.behavior.BehaviorUtil;
|
||||
|
@ -273,6 +275,9 @@ public class MapLogic {
|
|||
LOGGER.info("====initMap()====mapPointConfig == null======>{}", scMap1.getEvent());
|
||||
continue;
|
||||
}
|
||||
if(!mapPointCanAAppear(mapPointConfig)){
|
||||
continue;
|
||||
}
|
||||
if(mapPointConfig.getStyle() == EventType.businessman){
|
||||
if(alreadHadYunShop){
|
||||
continue;
|
||||
|
@ -300,6 +305,25 @@ public class MapLogic {
|
|||
initMapMission(mapManager);
|
||||
}
|
||||
|
||||
private boolean mapPointCanAAppear(MapPointConfig mapPointConfig){
|
||||
int[][] randomProbability = mapPointConfig.getRandomProbability();
|
||||
if(randomProbability == null || randomProbability.length==0){
|
||||
return true;
|
||||
}
|
||||
int totalWeight =0;
|
||||
for(int[] weightItem : randomProbability){
|
||||
totalWeight+=weightItem[1];
|
||||
}
|
||||
int random = MathUtils.randomInt(totalWeight);
|
||||
for(int[] weightItem : randomProbability){
|
||||
random-=weightItem[1];
|
||||
if(random<=0){
|
||||
return weightItem[0] == 1;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean updateMapByOnlyConsumeActionPower(ISession session, int curXY, int triggerXY, List<Integer> cells, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
if (triggerXY == -1000) {
|
||||
int uid = session.getUid();
|
||||
|
@ -496,7 +520,7 @@ public class MapLogic {
|
|||
updateMapMission(mapManager,EventType.updatePonintEvent, pointId,0);
|
||||
CommonProto.Drop.Builder dropBuilder = null;
|
||||
if (sOptionConfig.getReward().length > 0) {
|
||||
dropBuilder = ItemUtil.drop(user, sOptionConfig.getReward(), 1, 1);
|
||||
dropBuilder = ItemUtil.drop(user, sOptionConfig.getReward(), 1, 1, BIReason.MAP_EVENET_REWARD);
|
||||
}
|
||||
List<CommonProto.EventBehaviorValues> eventBehaviorValuesList = new ArrayList<>();
|
||||
for (int i = 0; i < sOptionConfig.getBehaviorTypeValues().length; i++) {
|
||||
|
@ -894,7 +918,7 @@ public class MapLogic {
|
|||
BehaviorUtil.destoryApointXY(user, destoryXY);
|
||||
|
||||
SMonsterGroup sMonsterGroup = SMonsterGroup.getsMonsterGroupMap().get(groupId);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1,BIReason.MAP_FAST_FIGHT_REWARD);
|
||||
FightInfoProto.FastFightResponse.Builder fastFightResponse = FightInfoProto.FastFightResponse.newBuilder();
|
||||
fastFightResponse.setEnventDrop(drop.build());
|
||||
fastFightResponse.setResult(resultCode);
|
||||
|
@ -1069,7 +1093,7 @@ public class MapLogic {
|
|||
for (TeamPosHeroInfo teamPosHeroInfo : team){
|
||||
mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(),HeroAttributeEnum.CurHP.getPropertyId(),checkResult[teamPosHeroInfo.getPosition()]);
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1,BIReason.MAP_GENERAL_FIGHT_REWARD);
|
||||
FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse.newBuilder();
|
||||
fightEndResponse.setEnventDrop(drop.build());
|
||||
fightEndResponse.setResult(resultCode);
|
||||
|
@ -1289,7 +1313,7 @@ public class MapLogic {
|
|||
if (mission.getMissionInfo() != null) {
|
||||
checkMissionReturn.newEventId = mission.getMissionInfo();
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMissionEventsConfig.getReward(), 1, 1);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMissionEventsConfig.getReward(), 1, 1,BIReason.MAP_MISSION_REWARD);
|
||||
checkMissionReturn.drop = drop;
|
||||
int useTime = getUseTime(user);
|
||||
mission.setTime(useTime);
|
||||
|
@ -1472,6 +1496,11 @@ public class MapLogic {
|
|||
}
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
boolean allowed = user.getPlayerInfoManager().checkFunctionIsAllowed(VipPrivilegeType.UNLOCK_MAP_SWEEP);
|
||||
if(!allowed){
|
||||
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "not allowed");
|
||||
return;
|
||||
}
|
||||
MapManager mapManager = user.getMapManager();
|
||||
CrossInfo crossInfo = mapManager.getCrossInfoMap().get(mapId);
|
||||
if (crossInfo == null) {
|
||||
|
@ -1494,7 +1523,7 @@ public class MapLogic {
|
|||
SChallengeMapConfig sChallengeMapConfig = SChallengeMapConfig.integerSChallengeMapConfigMap.get(mapId);
|
||||
MapInfoProto.MapSweepResponse.Builder mapSweepResponse = MapInfoProto.MapSweepResponse.newBuilder();
|
||||
for (int i = 0; i < count; i++) {
|
||||
CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, sChallengeMapConfig.getSweepingAward(), 1, 0);
|
||||
CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, sChallengeMapConfig.getSweepingAward(), 1, 0,BIReason.MAP_SWEEP_REWARD);
|
||||
mapSweepResponse.addDrop(dropBuilder);
|
||||
}
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapSweepResponse.build(), true);
|
||||
|
@ -1715,7 +1744,7 @@ public class MapLogic {
|
|||
levelDifficulty.setState(Global.FIGHT_CLEARANCE);
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.STORY_FIGHT,fightId,0);
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,reward, 1, 0);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,reward, 1, 0,BIReason.LEVELDIFFICULTY_FIGHT_REWARD);
|
||||
levelDifficulty.setChallengeTimes(levelDifficulty.getChallengeTimes() +1);
|
||||
//开启关卡
|
||||
openNextFightIds(levelDifficultyManager,playerInfoManager,fightId);
|
||||
|
@ -1727,12 +1756,6 @@ public class MapLogic {
|
|||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true);
|
||||
}
|
||||
|
||||
private CommonProto.FightTeamInfo getFightTeamInfo(Map<Object, Object> valueMap) throws JsonFormat.ParseException {
|
||||
CommonProto.FightTeamInfo.Builder monsterBuilder = CommonProto.FightTeamInfo.newBuilder();
|
||||
JsonFormat.merge((String)valueMap.get(RedisKey.FIGHT_MONSTERS_1), monsterBuilder);
|
||||
return monsterBuilder.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启关卡
|
||||
* @param levelDifficultyManager
|
||||
|
@ -1802,7 +1825,7 @@ public class MapLogic {
|
|||
}
|
||||
if (itemNum > 0){
|
||||
String reward = Global.STAMINA +"#" +itemNum;
|
||||
ItemUtil.drop(user,StringUtil.parseFiledInt2(reward));
|
||||
ItemUtil.drop(user,StringUtil.parseFiledInt2(reward),BIReason.USER_LEVELUPSTAMINA_REWARD);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.handler.map;
|
||||
|
||||
import com.ljsd.jieling.config.SLevelDifficultyConfig;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.handler.map.behavior.BaseBehavior;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
|
@ -82,7 +83,7 @@ public class SweepLogic {
|
|||
ItemUtil.itemCost(user, cost);
|
||||
List<CommonProto.Drop> dropList = new CopyOnWriteArrayList<>();
|
||||
for (int i = 0 ; i < sweepTimes ;i++){
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sLevelDifficultyConfig.getRandomReward(), 1, 0);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sLevelDifficultyConfig.getRandomReward(), 1, 0, BIReason.LEVELDIFFICULTY_SWEEP_REWARD);
|
||||
dropList.add(drop.build());
|
||||
}
|
||||
MapLogic.getInstance().userLevelUp(user,sLevelDifficultyConfig.getExp() * sweepTimes);
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
@ -29,9 +31,6 @@ public class ActivityLogic {
|
|||
|
||||
public void flushEveryDay(User user) {
|
||||
updateActivityMissionProgress(user, ActivityType.SevenLogin,1);
|
||||
//秘盒免费次数刷新
|
||||
ActivityLogic.getInstance().flushSecretBoxFreeTimes(user);
|
||||
|
||||
}
|
||||
|
||||
public void flushForLogin(User user){
|
||||
|
@ -168,7 +167,7 @@ public class ActivityLogic {
|
|||
break;
|
||||
}
|
||||
int[][] reward = sActivityRewardConfig.getReward();
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
activityProgressInfo.setState(ActivityType.HAD_TAKED);
|
||||
activityMission.updateProgressInfo(missionId,activityProgressInfo);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
|
@ -296,15 +295,9 @@ public class ActivityLogic {
|
|||
if(secretBoxManager.getCurSeason() != secretBoxSeasonTimes){
|
||||
flushSecretBoxOfSeasonChange(secretBoxManager);
|
||||
}
|
||||
List<PlayerInfoProto.SecretBoxFreeUseInfo> secretBoxFreeUseInfoList = new ArrayList<>(2);
|
||||
Map<Integer, Integer> freeUseInfos = secretBoxManager.getFreeUseInfos();
|
||||
for(Map.Entry<Integer,Integer> item : freeUseInfos.entrySet()){
|
||||
secretBoxFreeUseInfoList.add(PlayerInfoProto.SecretBoxFreeUseInfo.newBuilder().setId(item.getKey()).setTimes(item.getValue()).build());
|
||||
}
|
||||
PlayerInfoProto.GetSecretBoxInfoResponse build = PlayerInfoProto.GetSecretBoxInfoResponse.newBuilder()
|
||||
.setSeason(secretBoxManager.getCurSeason())
|
||||
.setCount(secretBoxManager.getCount())
|
||||
.addAllSecretBoxFreeUseInfo(secretBoxFreeUseInfoList)
|
||||
.build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_SECRETBOX_RESPONSE_VALUE,build,true);
|
||||
}
|
||||
|
@ -312,13 +305,6 @@ public class ActivityLogic {
|
|||
public void flushSecretBoxOfSeasonChange(SecretBoxManager secretBoxManager){
|
||||
secretBoxManager.setCount(0);
|
||||
secretBoxManager.setCurSeason(secretBoxSeasonTimes);
|
||||
List<Integer> idsBySeasonId = SDifferDemonsBoxSetting.getIdsBySeasonId(secretBoxSeasonTimes);
|
||||
//todo vip系统修改
|
||||
Map<Integer,Integer> freeUseMap = new HashMap<>(idsBySeasonId.size());
|
||||
for(int id:idsBySeasonId){
|
||||
freeUseMap.put(id,0);
|
||||
}
|
||||
secretBoxManager.setFreeUseInfos(freeUseMap);
|
||||
}
|
||||
|
||||
public void randomSecretBox(ISession session,int id) throws Exception {
|
||||
|
@ -341,18 +327,21 @@ public class ActivityLogic {
|
|||
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.SECRETBOX_RANDOM_RESPONSE_VALUE,"今日抽取已达上限");
|
||||
return;
|
||||
}
|
||||
int freeTime = sDifferDemonsBoxSetting.getFreeTime();
|
||||
Map<Integer, Integer> freeUseInfos = secretBoxManager.getFreeUseInfos();
|
||||
if(freeTime>freeUseInfos.get(id)){
|
||||
freeUseInfos.put(id,freeUseInfos.get(id) + 1);
|
||||
secretBoxManager.setFreeUseInfos(freeUseInfos);
|
||||
}else{
|
||||
|
||||
|
||||
boolean allowedFree = false;
|
||||
if(randCount == 1){
|
||||
allowedFree=user.getPlayerInfoManager().check(VipPrivilegeType.FREE_SECRET_RANDOM,1);
|
||||
}
|
||||
if(!allowedFree){
|
||||
int[][] mainCost = sDifferDemonsBoxSetting.getMainCost();
|
||||
boolean enough = ItemUtil.itemCost(user, mainCost);
|
||||
if(!enough){
|
||||
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.SECRETBOX_RANDOM_RESPONSE_VALUE,"道具不足");
|
||||
return;
|
||||
}
|
||||
}else{
|
||||
user.getPlayerInfoManager().updateVipPrivilage(VipPrivilegeType.FREE_SECRET_RANDOM,1);
|
||||
}
|
||||
|
||||
int count = secretBoxManager.getCount();
|
||||
|
@ -364,9 +353,9 @@ public class ActivityLogic {
|
|||
}
|
||||
playerInfoManager.updateVipPrivilage(limitPrivigele,randCount);
|
||||
secretBoxManager.setCount(secretBoxManager.getCount()+randCount);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.dropPer(user, randDrop);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.dropPer(user, randDrop,BIReason.TAKE_SECRET_REWARD);
|
||||
int[] extraItem = sDifferDemonsBoxSetting.getExtraItem();
|
||||
CommonProto.Drop.Builder extraDrop = ItemUtil.drop(user, new int[][]{extraItem});
|
||||
CommonProto.Drop.Builder extraDrop = ItemUtil.drop(user, new int[][]{extraItem},BIReason.TAKE_SECRET_EXTRA_REWARD);
|
||||
PlayerInfoProto.SecretBoxRandomResponse build = PlayerInfoProto.SecretBoxRandomResponse.newBuilder().setDrop(drop).setExtrarReward(extraDrop).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.SECRETBOX_RANDOM_RESPONSE_VALUE,build,true);
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.SECRETBOX,id,randCount);
|
||||
|
@ -420,16 +409,4 @@ public class ActivityLogic {
|
|||
}
|
||||
secretBoxSeasonTimes=0;
|
||||
}
|
||||
|
||||
private void flushSecretBoxFreeTimes(User user){
|
||||
SecretBoxManager secretBoxManager = user.getSecretBoxManager();
|
||||
if(secretBoxManager!=null){
|
||||
Map<Integer, Integer> freeUseInfos = secretBoxManager.getFreeUseInfos();
|
||||
if(freeUseInfos!=null && !freeUseInfos.isEmpty()){
|
||||
for(Integer key : freeUseInfos.keySet()){
|
||||
freeUseInfos.put(key,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ package com.ljsd.jieling.logic.arena;
|
|||
import com.ljsd.common.mogodb.LjsdMongoTemplate;
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
|
@ -134,6 +135,11 @@ public class ArenaLogic {
|
|||
}
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
boolean allowed = user.getPlayerInfoManager().checkFunctionIsAllowed(VipPrivilegeType.UNLOCK_SKIP_FIGHT);
|
||||
if(!allowed){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,"not allowed");
|
||||
return;
|
||||
}
|
||||
String err = checkChallenge(user);
|
||||
if(!"".equals(err)){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,err);
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.dao;
|
|||
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
import com.ljsd.jieling.config.SGameSetting;
|
||||
import com.ljsd.jieling.config.SPrivilegeTypeConfig;
|
||||
import com.ljsd.jieling.config.SVipLevelConfig;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.mongo.MongoKey;
|
||||
|
@ -250,6 +251,10 @@ public class PlayerManager extends MongoBase {
|
|||
return true;
|
||||
}
|
||||
|
||||
public boolean checkFunctionIsAllowed(int privilageId){
|
||||
return vipInfo.containsKey(privilageId);
|
||||
}
|
||||
|
||||
public void updateVipPrivilage(int privilageId,int updateNum){
|
||||
if(!vipInfo.containsKey(privilageId)){
|
||||
return;
|
||||
|
@ -284,4 +289,16 @@ public class PlayerManager extends MongoBase {
|
|||
updateString("hadTakeDailyBoxVip", hadTakeDailyBoxVip);
|
||||
this.hadTakeDailyBoxVip = hadTakeDailyBoxVip;
|
||||
}
|
||||
|
||||
public void vipFlush() {
|
||||
for(Integer id : vipInfo.keySet()){
|
||||
SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(id);
|
||||
int refreshType = sPrivilegeTypeConfig.getRefreshType()[0];
|
||||
if(refreshType == 1){
|
||||
vipInfo.put(id,0);
|
||||
}
|
||||
}
|
||||
updateString("vipInfo", vipInfo);
|
||||
setHadTakeDailyBoxVip(0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ import java.util.Map;
|
|||
public class SecretBoxManager extends MongoBase {
|
||||
private int curSeason;
|
||||
private int count;//总共抽取次数
|
||||
private Map<Integer,Integer> freeUseInfos = new HashMap<>(2);
|
||||
|
||||
public void setCurSeason(int curSeason) {
|
||||
updateString("curSeason",curSeason);
|
||||
|
@ -21,11 +20,6 @@ public class SecretBoxManager extends MongoBase {
|
|||
this.count = count;
|
||||
}
|
||||
|
||||
public void setFreeUseInfos(Map<Integer, Integer> freeUseInfos) {
|
||||
updateString("freeUseInfos",freeUseInfos);
|
||||
this.freeUseInfos = freeUseInfos;
|
||||
}
|
||||
|
||||
public int getCurSeason() {
|
||||
return curSeason;
|
||||
}
|
||||
|
@ -33,8 +27,4 @@ public class SecretBoxManager extends MongoBase {
|
|||
public int getCount() {
|
||||
return count;
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getFreeUseInfos() {
|
||||
return freeUseInfos;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ package com.ljsd.jieling.logic.dao;
|
|||
import com.ljsd.jieling.config.SGameSetting;
|
||||
import com.ljsd.jieling.config.SPlayerLevelConfig;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
|
@ -82,7 +83,7 @@ public class UserManager {
|
|||
playerManager.updateVipInfo(user,0);
|
||||
SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(1);
|
||||
playerManager.setMaxStamina(sPlayerLevelConfig.getMaxEnergy());
|
||||
ItemUtil.drop(user,gameSetting.getBornItem());
|
||||
ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD);
|
||||
HeroManager heroManager = user.getHeroManager();
|
||||
Map<String, Hero> heroMap = heroManager.getHeroMap();
|
||||
TeamPosManager teamPosManager = user.getTeamPosManager();
|
||||
|
|
|
@ -4,8 +4,10 @@ package com.ljsd.jieling.logic.fight;
|
|||
import com.google.common.collect.Sets;
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.handler.map.MapManager;
|
||||
import com.ljsd.jieling.handler.map.behavior.BehaviorUtil;
|
||||
|
@ -343,6 +345,13 @@ public class CombatLogic {
|
|||
User user = UserManager.getUser(uid);
|
||||
Map<Integer, CommonProto.Drop> adventureFastReward =null;
|
||||
if(type == 2){
|
||||
if(position==-1){
|
||||
boolean allowed = user.getPlayerInfoManager().checkFunctionIsAllowed(VipPrivilegeType.UNLOCK_ADVENTURE_ONEKEY);
|
||||
if(!allowed){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_REWARD_RESPONSE_VALUE,"not allowed");
|
||||
return;
|
||||
}
|
||||
}
|
||||
adventureFastReward = getAdventureReward(user, position);
|
||||
}else{
|
||||
//todo 消耗
|
||||
|
@ -390,8 +399,8 @@ public class CombatLogic {
|
|||
}
|
||||
}
|
||||
}
|
||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,BIReason.ADVENTURE_BASE_REWARD);
|
||||
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
|
||||
result.put(1,baseBuilder.build());
|
||||
result.put(2,randomBuilder.build());
|
||||
|
@ -428,8 +437,8 @@ public class CombatLogic {
|
|||
}
|
||||
}
|
||||
}
|
||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,BIReason.ADVENTURE_BASE_REWARD);
|
||||
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
|
||||
result.put(1,baseBuilder.build());
|
||||
result.put(2,randomBuilder.build());
|
||||
|
@ -584,6 +593,13 @@ public class CombatLogic {
|
|||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_BOSS_CHALLENGE_RESPONSE_VALUE,"over fight");
|
||||
return;
|
||||
}
|
||||
if(fightTimes==1 && skipFight==0){
|
||||
boolean allowed = user.getPlayerInfoManager().checkFunctionIsAllowed(VipPrivilegeType.UNLOCK_SKIP_FIGHT);
|
||||
if(!allowed){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_BOSS_CHALLENGE_RESPONSE_VALUE,"not allowed");
|
||||
return;
|
||||
}
|
||||
}
|
||||
AdventureBoss adventureBoss = RedisUtil.getInstence().getMapEntry(RedisKey.ADVENTRUEN_BOSS_INFO, "", bossId, AdventureBoss.class);
|
||||
if(adventureBoss == null){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_BOSS_CHALLENGE_RESPONSE_VALUE,"boss had killed");
|
||||
|
|
|
@ -3,6 +3,8 @@ package com.ljsd.jieling.logic.hero;
|
|||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
@ -156,12 +158,20 @@ public class HeroLogic {
|
|||
}
|
||||
|
||||
//检验消耗
|
||||
boolean allowFree = false;
|
||||
if(perCount == 1){
|
||||
allowFree = user.getPlayerInfoManager().check(VipPrivilegeType.FREE_HERO_RANDOM, 1);
|
||||
}
|
||||
if(!allowFree){
|
||||
int [][] costItems = new int[][]{sLotterySetting.getCostItem()};
|
||||
boolean enoughCost = ItemUtil.itemCost(user, costItems);
|
||||
if(!enoughCost){
|
||||
MessageUtil.sendErrorResponse(session, 0, MessageTypeProto.MessageType.HERO_RAND_RESPONSE_VALUE,"道具不足");
|
||||
return;
|
||||
}
|
||||
}else{
|
||||
user.getPlayerInfoManager().updateVipPrivilage(VipPrivilegeType.FREE_HERO_RANDOM, 1);
|
||||
}
|
||||
//额外获取
|
||||
int length = perCount;
|
||||
int[][] tenTimesMustGetItem = null;
|
||||
|
@ -196,7 +206,7 @@ public class HeroLogic {
|
|||
}
|
||||
}
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.RANDOM_HERO,sLotterySetting.getLotteryType(),perCount);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropHeroAndItem);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropHeroAndItem,BIReason.HERO_RANDOM);
|
||||
HeroInfoProto.HeroRandResponse heroRandResponse = HeroInfoProto.HeroRandResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.HERO_RAND_RESPONSE_VALUE, heroRandResponse, true);
|
||||
}
|
||||
|
@ -324,6 +334,7 @@ public class HeroLogic {
|
|||
MessageUtil.sendErrorResponse(iSession,0,MessageTypeProto.MessageType.TEAM_POS_SAVE_RESPONSE_VALUE,err);
|
||||
return;
|
||||
}
|
||||
|
||||
user.getTeamPosManager().changeTeamInfo(teamId,heroIds,pokemonoIds);
|
||||
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.TEAM_POS_SAVE_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
|
@ -359,7 +370,11 @@ public class HeroLogic {
|
|||
return "no active";
|
||||
}
|
||||
}
|
||||
|
||||
int size = pokemonoIds.size();
|
||||
boolean allowed = user.getPlayerInfoManager().check(VipPrivilegeType.POKEMON_NUM, size);
|
||||
if(!allowed){
|
||||
return "now allowd";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
@ -1112,7 +1127,7 @@ public class HeroLogic {
|
|||
}
|
||||
Map<Integer,Integer> randomMap = new ConcurrentHashMap<>();
|
||||
randomMap.put(itemId,composeNum);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.useRandomItem(user,randomMap);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.useRandomItem(user,randomMap, BIReason.COMPOS_HERO_REWARD);
|
||||
HeroInfoProto.HeroComposeResponse heroComposeResponse = HeroInfoProto.HeroComposeResponse
|
||||
.newBuilder()
|
||||
.setDrop(drop)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.logic.item;
|
||||
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
|
@ -65,7 +66,7 @@ public class ItemLogic {
|
|||
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
|
||||
return;
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt(reward.toString()), 1, 0);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt(reward.toString()), 1, 0,BIReason.DECOMPOS_ITEM_REWARD);
|
||||
sendUseAndPriceItemMessage(iSession, msgId, drop);
|
||||
}
|
||||
|
||||
|
@ -146,7 +147,7 @@ public class ItemLogic {
|
|||
reward.append("#").append(sItem.getResolveReward());
|
||||
}
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,StringUtil.parseFiledInt(reward.toString()),1,0);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,StringUtil.parseFiledInt(reward.toString()),1,0,BIReason.DECOMPOS_EQUIP_REWARD);
|
||||
sendUseAndPriceItemMessage(iSession, msgId, drop);
|
||||
}
|
||||
|
||||
|
@ -212,7 +213,7 @@ public class ItemLogic {
|
|||
}
|
||||
ItemUtil.combineReward(StringUtil.parseFiledInt(reward.toString()),1,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
|
||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap, BIReason.DECOMPOS_HERO_REWARD);
|
||||
sendUseAndPriceItemMessage(iSession, msgId, baseBuilder);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.item;
|
|||
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
|
@ -102,7 +103,7 @@ public class WorkShopLogic {
|
|||
int failExp = sMysteryFoodSetting.getFailExp();
|
||||
totalFailExp+=failExp;
|
||||
}
|
||||
CommonProto.Drop.Builder dropThing = ItemUtil.drop(user, drop);
|
||||
CommonProto.Drop.Builder dropThing = ItemUtil.drop(user, drop,BIReason.WORKSHOP_MAKEFOOD);
|
||||
if(totalFailExp>0){
|
||||
user.getWorkShopController().addCookExp(totalFailExp);
|
||||
}
|
||||
|
@ -238,7 +239,7 @@ public class WorkShopLogic {
|
|||
}
|
||||
Map<Integer,Integer> finalMaterial = new HashMap<>();
|
||||
finalMaterial.put(materialId,nums*sWorkShopFoundationConfig.getNum());
|
||||
ItemUtil.addItem(user,finalMaterial,null);
|
||||
ItemUtil.addItem(user,finalMaterial,null, BIReason.WORKSHOP_CREATEMATERIAL);
|
||||
|
||||
//熟练度提升
|
||||
int type = sWorkShopFoundationConfig.getType();
|
||||
|
@ -298,16 +299,14 @@ public class WorkShopLogic {
|
|||
int addExp = sWorkShopEquipmentConfig.getExp()*nums;
|
||||
if(type == GlobalsDef.WORK_SHOP_TYPE){
|
||||
user.getWorkShopController().addWorkShopExp(user,addExp);
|
||||
while (nums-->0){
|
||||
Equip equip = new Equip(Integer.toString(uid), equipTid, user.getWorkShopController().getWorkShopLevel(),runneIdsList);
|
||||
user.getEquipManager().addEquip(user,equip);
|
||||
dropBuilder.addEquipId(CBean2Proto.getEquipProto(equip));
|
||||
}
|
||||
Map<Integer,Integer> equips = new HashMap<>();
|
||||
equips.put(equipTid,nums);
|
||||
ItemUtil.addEquip(user,equips,dropBuilder,BIReason.WORKSHOP_CREATEQUIP);
|
||||
}else if( type == GlobalsDef.COOK_SHOP_TYPE){
|
||||
user.getWorkShopController().addCookExp(addExp);
|
||||
Map<Integer,Integer> items = new HashMap<>();
|
||||
items.put(equipTid,SMysteryFoodSetting.getsMysteryFoodSetting().getFoodNum());
|
||||
ItemUtil.addItem(user,items,dropBuilder);
|
||||
items.put(equipTid,SMysteryFoodSetting.getsMysteryFoodSetting().getFoodNum()*nums);
|
||||
ItemUtil.addItem(user,items,dropBuilder,BIReason.WORKSHOP_CREATEQUIP);
|
||||
}
|
||||
PlayerInfoProto.WorkShopEquipCreateResponse build = PlayerInfoProto.WorkShopEquipCreateResponse.newBuilder().setType(type).setDrop(dropBuilder).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.WORKSHOP_EQUIP_CREATE_RESPONSE_VALUE,build,true);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.logic.mail;
|
||||
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.MailingSystem;
|
||||
|
@ -187,7 +188,7 @@ public class MailLogic {
|
|||
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
|
||||
return;
|
||||
}
|
||||
CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, itemArr);
|
||||
CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, itemArr, BIReason.TAKE_MAIL_REWARD);
|
||||
for (String mailId:delMailIds){
|
||||
mailManager.removeMail(mailId);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.ljsd.jieling.config.SCHero;
|
|||
import com.ljsd.jieling.config.SLevelDifficultyConfig;
|
||||
import com.ljsd.jieling.config.STaskConfig;
|
||||
import com.ljsd.jieling.config.SVipLevelConfig;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
|
@ -70,7 +71,7 @@ public class MissionLoigc {
|
|||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.VIP_MISSION_REWARD, missionId);
|
||||
List<MissionStateChangeInfo> missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.VIPMISSION);
|
||||
if(!missionStateChangeInfos.isEmpty()){
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups());
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), 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);
|
||||
}else{
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.ljsd.jieling.config.SVipLevelConfig;
|
|||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||
import com.ljsd.jieling.logic.dao.TeamPosManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
|
@ -168,6 +169,7 @@ public class PlayerLogic {
|
|||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
int reson=-1;
|
||||
SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(playerInfoManager.getVipLevel());
|
||||
int[][] rewards=null;
|
||||
if(type == 1){
|
||||
|
@ -177,6 +179,7 @@ public class PlayerLogic {
|
|||
}
|
||||
playerInfoManager.setHadTakeLevelBoxVip(1);
|
||||
rewards = sVipLevelConfig.getVipBoxReward();
|
||||
reson = BIReason.TAKE_VIP_LEVEL_REWARD;
|
||||
}else if(type == 2){
|
||||
if(playerInfoManager.getHadTakeDailyBoxVip() == 1 || playerInfoManager.getHadTakeLevelBoxVip() == 0 ){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_TAKE_REWARD_RESPONSE_VALUE,"had taked the vip daily reward");
|
||||
|
@ -184,8 +187,9 @@ public class PlayerLogic {
|
|||
}
|
||||
playerInfoManager.setHadTakeDailyBoxVip(1);
|
||||
rewards = sVipLevelConfig.getVipBoxDailyReward();
|
||||
reson = BIReason.TAKE_VIP_DAILY_REWARD;
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewards);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewards,reson);
|
||||
PlayerInfoProto.VipTakeBoxResponse build = PlayerInfoProto.VipTakeBoxResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.VIP_TAKE_REWARD_RESPONSE_VALUE,build,true);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.store;
|
|||
import ch.qos.logback.core.util.TimeUtil;
|
||||
import com.ljsd.jieling.config.SStoreConfig;
|
||||
import com.ljsd.jieling.config.SStoreTypeConfig;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||
import com.ljsd.jieling.logic.dao.StoreInfo;
|
||||
import com.ljsd.jieling.logic.dao.StoreManager;
|
||||
|
@ -225,7 +226,7 @@ public class StoreLogic {
|
|||
int goodsId = sStoreConfig.getGoods()[0];
|
||||
int goodsNum = sStoreConfig.getGoods()[1]*itemNum;
|
||||
String reward = goodsId +"#"+goodsNum;
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt2(reward));
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt2(reward), BIReason.STORE_BUY_ITEM);
|
||||
PlayerInfoProto.BuyStoreItemResponse builder = PlayerInfoProto.BuyStoreItemResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(iSession, 1,msgId, builder, true);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
package com.ljsd.jieling.util;
|
||||
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.globals.GlobalItemType;
|
||||
import com.ljsd.jieling.handler.map.MapManager;
|
||||
|
@ -21,7 +24,7 @@ public class ItemUtil {
|
|||
private static Map<Integer,String> dropRewardMap = new ConcurrentHashMap<>();
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtil.class);
|
||||
//指定道具掉落(如:邮件,初始化物品)
|
||||
public static CommonProto.Drop.Builder drop(User user, int[][] itemArr) throws Exception {
|
||||
public static CommonProto.Drop.Builder drop(User user, int[][] itemArr,int reason) throws Exception {
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
Map<Integer, Integer> itemMap = new HashMap<>();
|
||||
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||
|
@ -29,14 +32,14 @@ public class ItemUtil {
|
|||
Map<Integer,Integer> randomMap = new HashMap<>();
|
||||
selectItemArr(itemArr,cardMap,itemMap,equipMap,randomMap);
|
||||
|
||||
useRandomItem(user,randomMap);
|
||||
addItem(user,itemMap,dropBuilder);
|
||||
addCard(user,cardMap,dropBuilder);
|
||||
addEquip(user,equipMap,dropBuilder);
|
||||
useRandomItem(user,randomMap,reason);
|
||||
addItem(user,itemMap,dropBuilder,reason);
|
||||
addCard(user,cardMap,dropBuilder,reason);
|
||||
addEquip(user,equipMap,dropBuilder,reason);
|
||||
return dropBuilder;
|
||||
}
|
||||
|
||||
public static CommonProto.Drop.Builder dropPer(User user, int[][] itemArr) throws Exception {
|
||||
public static CommonProto.Drop.Builder dropPer(User user, int[][] itemArr,int reason) throws Exception {
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
for(int [] item : itemArr){
|
||||
Map<Integer, Integer> itemMap = new HashMap<>();
|
||||
|
@ -44,15 +47,15 @@ public class ItemUtil {
|
|||
Map<Integer,Integer> equipMap = new HashMap<>();
|
||||
Map<Integer,Integer> randomMap = new HashMap<>();
|
||||
selectItemArr(new int[][]{item},cardMap,itemMap,equipMap,randomMap);
|
||||
useRandomItem(user,randomMap);
|
||||
addItem(user,itemMap,dropBuilder);
|
||||
addCard(user,cardMap,dropBuilder);
|
||||
addEquip(user,equipMap,dropBuilder);
|
||||
useRandomItem(user,randomMap,reason);
|
||||
addItem(user,itemMap,dropBuilder,reason);
|
||||
addCard(user,cardMap,dropBuilder,reason);
|
||||
addEquip(user,equipMap,dropBuilder,reason);
|
||||
}
|
||||
return dropBuilder;
|
||||
}
|
||||
//活动额外掉落
|
||||
public static void activityDrop(User user,CommonProto.Drop.Builder dropBuilder ,int[] dropGroupIds, float dropRatio) throws Exception {
|
||||
public static void activityDrop(User user,CommonProto.Drop.Builder dropBuilder ,int[] dropGroupIds, float dropRatio,int reason) throws Exception {
|
||||
Map<Integer, Integer> itemMap = new HashMap<>();
|
||||
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||
Map<Integer, Integer> equipMap = new HashMap<>();
|
||||
|
@ -64,10 +67,10 @@ public class ItemUtil {
|
|||
}
|
||||
selectDrop(sRewardGroup, itemMap, cardMap, equipMap, randomMap, dropRatio);
|
||||
}
|
||||
useRandomItem(user, randomMap);
|
||||
addItem(user, itemMap, dropBuilder);
|
||||
addCard(user, cardMap, dropBuilder);
|
||||
addEquip(user, equipMap, dropBuilder);
|
||||
useRandomItem(user, randomMap,reason);
|
||||
addItem(user, itemMap, dropBuilder,reason);
|
||||
addCard(user, cardMap, dropBuilder,reason);
|
||||
addEquip(user, equipMap, dropBuilder,reason);
|
||||
}
|
||||
|
||||
public static void getactivityDropInfo(int[] dropGroupIds, float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap ,Map<Integer, Integer> randomMap) throws Exception {
|
||||
|
@ -81,12 +84,12 @@ public class ItemUtil {
|
|||
}
|
||||
|
||||
//掉落组概率
|
||||
public static CommonProto.Drop.Builder drop(User user, Map<int [],Float> dropGroupAndRatioMap) throws Exception {
|
||||
public static CommonProto.Drop.Builder drop(User user, Map<int [],Float> dropGroupAndRatioMap,int reason) throws Exception {
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
for (Map.Entry<int [],Float> entry :dropGroupAndRatioMap.entrySet()){
|
||||
int[] dropGroupIds = entry.getKey();
|
||||
float dropRatio = entry.getValue();
|
||||
activityDrop(user,dropBuilder,dropGroupIds,dropRatio);
|
||||
activityDrop(user,dropBuilder,dropGroupIds,dropRatio,reason);
|
||||
}
|
||||
return dropBuilder;
|
||||
}
|
||||
|
@ -100,7 +103,7 @@ public class ItemUtil {
|
|||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static CommonProto.Drop.Builder drop(User user, int[] dropGroupIds,float dropRatio, int isMapping) throws Exception {
|
||||
public static CommonProto.Drop.Builder drop(User user, int[] dropGroupIds,float dropRatio, int isMapping,int reason) throws Exception {
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
Map<Integer, Integer> itemMap = new HashMap<>();
|
||||
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||
|
@ -113,14 +116,14 @@ public class ItemUtil {
|
|||
}
|
||||
selectDrop(sRewardGroup,itemMap,cardMap,equipMap,randomMap,dropRatio);
|
||||
}
|
||||
useRandomItem(user,randomMap);
|
||||
useRandomItem(user,randomMap,reason);
|
||||
if (isMapping == 1) {
|
||||
addItemToTemporaryBag(user, itemMap, equipMap, dropBuilder);
|
||||
} else {
|
||||
addItem(user,itemMap,dropBuilder);
|
||||
addEquip(user,equipMap,dropBuilder);
|
||||
addItem(user,itemMap,dropBuilder,reason);
|
||||
addEquip(user,equipMap,dropBuilder,reason);
|
||||
}
|
||||
addCard(user,cardMap,dropBuilder);
|
||||
addCard(user,cardMap,dropBuilder,reason);
|
||||
return dropBuilder;
|
||||
}
|
||||
|
||||
|
@ -159,11 +162,11 @@ public class ItemUtil {
|
|||
selectItemArr(itemArr,cardMap,itemMap,equipMap,randomMap);
|
||||
}
|
||||
|
||||
public static void drop(User user,CommonProto.Drop.Builder dropBuilder,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap) throws Exception {
|
||||
useRandomItem(user, randomMap);
|
||||
addItem(user, itemMap, dropBuilder);
|
||||
addCard(user, cardMap, dropBuilder);
|
||||
addEquip(user, equipMap, dropBuilder);
|
||||
public static void drop(User user,CommonProto.Drop.Builder dropBuilder,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap,int reason) throws Exception {
|
||||
useRandomItem(user, randomMap, reason);
|
||||
addItem(user, itemMap, dropBuilder,reason);
|
||||
addCard(user, cardMap, dropBuilder,reason);
|
||||
addEquip(user, equipMap, dropBuilder,reason);
|
||||
}
|
||||
|
||||
private static String getReward(Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer, Integer> equipMap, Map<Integer,Integer> randomMap) {
|
||||
|
@ -343,7 +346,7 @@ public class ItemUtil {
|
|||
* @param itemMap
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void addItem(User user, Map<Integer, Integer> itemMap,CommonProto.Drop.Builder dropBuilder) throws Exception {
|
||||
public static void addItem(User user, Map<Integer, Integer> itemMap,CommonProto.Drop.Builder dropBuilder,int reason) throws Exception {
|
||||
if (itemMap.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
@ -358,6 +361,7 @@ public class ItemUtil {
|
|||
if(itemNum <= 0){
|
||||
continue;
|
||||
}
|
||||
itemNum=privilegeAdd(user,reason,sItem.getItemType(),itemNum);
|
||||
if (itemNum >= sItem.getItemNumlimit()){
|
||||
itemNum = sItem.getItemNumlimit();
|
||||
}
|
||||
|
@ -561,7 +565,7 @@ public class ItemUtil {
|
|||
* @param equipMap
|
||||
* @param dropBuilder
|
||||
*/
|
||||
private static void addEquip(User user, Map<Integer, Integer> equipMap, CommonProto.Drop.Builder dropBuilder) throws Exception {
|
||||
public static void addEquip(User user, Map<Integer, Integer> equipMap, CommonProto.Drop.Builder dropBuilder,int reason) throws Exception {
|
||||
if (equipMap.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
@ -626,7 +630,7 @@ public class ItemUtil {
|
|||
* @param dropBuilder
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void addCard(User user,Map<Integer,Integer> cardMap,CommonProto.Drop.Builder dropBuilder) throws Exception {
|
||||
public static void addCard(User user,Map<Integer,Integer> cardMap,CommonProto.Drop.Builder dropBuilder,int reason) throws Exception {
|
||||
if (cardMap.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
@ -770,7 +774,7 @@ public class ItemUtil {
|
|||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static CommonProto.Drop.Builder useRandomItem(User user,Map<Integer,Integer> randomMap) throws Exception {
|
||||
public static CommonProto.Drop.Builder useRandomItem(User user,Map<Integer,Integer> randomMap,int reason) throws Exception {
|
||||
StringBuilder dropIds = new StringBuilder();
|
||||
for (Map.Entry<Integer,Integer> entry : randomMap.entrySet()){
|
||||
int itemId = entry.getKey();
|
||||
|
@ -787,7 +791,7 @@ public class ItemUtil {
|
|||
CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder();
|
||||
if (!dropIds.toString().isEmpty()){
|
||||
int[] ints = StringUtil.parseFiledInt(dropIds.toString());
|
||||
drop = ItemUtil.drop(user, ints, 1, 0);
|
||||
drop = ItemUtil.drop(user, ints, 1, 0,reason);
|
||||
}
|
||||
return drop;
|
||||
}
|
||||
|
@ -886,4 +890,37 @@ public class ItemUtil {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//特权加成收益计算
|
||||
public static int privilegeAdd(User user,int reason,int itemType,int sourceNum){
|
||||
int vipLevel = user.getPlayerInfoManager().getVipLevel();
|
||||
SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevel);
|
||||
Map<Integer, Integer> privilegeMap = sVipLevelConfig.getPrivilegeMap();
|
||||
if(reason == BIReason.ADVENTURE_BASE_REWARD){
|
||||
sourceNum = parseTheValueByPrivilegeMap(privilegeMap,sourceNum, VipPrivilegeType.ADVENTURE_BASE_REWARD);
|
||||
}
|
||||
if(reason == BIReason.ADVENTURE_BASE_REWARD || reason == BIReason.ADVENTURE_RANDOM_REWARDD ){
|
||||
if(itemType == GlobalItemType.MINERAL){
|
||||
sourceNum = parseTheValueByPrivilegeMap(privilegeMap,sourceNum,VipPrivilegeType.ADVENTURE_MINERAL_REWARD);
|
||||
}else if(itemType == GlobalItemType.RUNNE){
|
||||
sourceNum = parseTheValueByPrivilegeMap(privilegeMap,sourceNum,VipPrivilegeType.ADVENTURE_RUNNE_REWARD);
|
||||
}
|
||||
}
|
||||
return sourceNum;
|
||||
}
|
||||
|
||||
private static int parseTheValueByPrivilegeMap( Map<Integer, Integer> privilegeMap,int sourceNum,int privigeId){
|
||||
Integer privigeValue = privilegeMap.get(1);
|
||||
if(privigeValue!=null){
|
||||
SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(1);
|
||||
int dataType = sPrivilegeTypeConfig.getIfFloat();
|
||||
if(dataType == GlobalsDef.PERCENT_TYPE){
|
||||
sourceNum=(10000 + privigeValue) * sourceNum / 10000;
|
||||
}else{
|
||||
sourceNum+=privigeValue;
|
||||
}
|
||||
}
|
||||
return sourceNum;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue