经验到上限后不发邮件
parent
782cd915fd
commit
49165586a3
|
|
@ -698,44 +698,30 @@ public class ItemUtil {
|
||||||
List<CommonProto.Item> itemProtoList = new ArrayList<>();
|
List<CommonProto.Item> itemProtoList = new ArrayList<>();
|
||||||
List<CommonProto.Item> sendToFront = new ArrayList<>();
|
List<CommonProto.Item> sendToFront = new ArrayList<>();
|
||||||
Map<Integer, Integer> extraItem = new HashMap<>(itemMap.size());
|
Map<Integer, Integer> extraItem = new HashMap<>(itemMap.size());
|
||||||
List<Integer> changeEquipList = null;
|
List<Integer> changeEquipList = new ArrayList<>();
|
||||||
|
|
||||||
for (Map.Entry<Integer, Long> entry : itemMap.entrySet()) {
|
for (Map.Entry<Integer, Long> entry : itemMap.entrySet()) {
|
||||||
int itemId = entry.getKey();
|
int itemId = entry.getKey();
|
||||||
long itemNum = entry.getValue();
|
long itemNum = entry.getValue();
|
||||||
|
|
||||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
|
||||||
if (sItem.getItemType() == GlobalItemType.SOUL_MARK) {
|
|
||||||
equipManager.addSoulGeal(itemId);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sItem.getItemType() == 3 && reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD) {
|
|
||||||
if (changeEquipList == null) {
|
|
||||||
changeEquipList = new ArrayList<>();
|
|
||||||
}
|
|
||||||
itemManager.setEquipBookMap(itemId, itemNum);
|
|
||||||
changeEquipList.add(itemId);
|
|
||||||
}
|
|
||||||
|
|
||||||
long itemNumlimit = sItem.getItemNumlimit();
|
|
||||||
if (itemNum <= 0) {
|
if (itemNum <= 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (itemNum >= itemNumlimit) {
|
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||||
itemNum = itemNumlimit;
|
int id = sItem.getId();
|
||||||
}
|
long itemNumlimit = sItem.getItemNumlimit();
|
||||||
|
|
||||||
|
itemNum = Math.min(itemNum, itemNumlimit);
|
||||||
|
|
||||||
Item item = itemManager.getItem(itemId);
|
Item item = itemManager.getItem(itemId);
|
||||||
if (item == null) {
|
if (item == null) {
|
||||||
item = itemManager.newItem(itemId, itemNum);
|
item = itemManager.newItem(itemId, itemNum);
|
||||||
} else {
|
} else {
|
||||||
if (sItem.getId() == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) {
|
if (id == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) {
|
||||||
itemNumlimit = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(user.getPlayerInfoManager().getLevel()).getMazeTreasureMax();
|
itemNumlimit = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(user.getPlayerInfoManager().getLevel()).getMazeTreasureMax();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.getItemNum() > itemNumlimit) {
|
if (item.getItemNum() > itemNumlimit) {
|
||||||
if (sItem.getId() == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) {
|
if (id == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (reason == BIReason.TAKE_MAIL_REWARD) {
|
if (reason == BIReason.TAKE_MAIL_REWARD) {
|
||||||
|
|
@ -746,9 +732,10 @@ public class ItemUtil {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.getItemNum() + itemNum > itemNumlimit) {
|
long num = item.getItemNum() + itemNum;
|
||||||
if (sItem.getId() == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) {
|
if (num > itemNumlimit) {
|
||||||
item.setItemNum((int) (item.getItemNum() + itemNum));
|
if (id == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) {
|
||||||
|
item.setItemNum(num);
|
||||||
} else {
|
} else {
|
||||||
if (reason == BIReason.TAKE_MAIL_REWARD) {
|
if (reason == BIReason.TAKE_MAIL_REWARD) {
|
||||||
return 2;
|
return 2;
|
||||||
|
|
@ -758,7 +745,7 @@ public class ItemUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
item.setItemNum(item.getItemNum() + itemNum);
|
item.setItemNum(num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -766,51 +753,41 @@ public class ItemUtil {
|
||||||
itemProtoList.add(CBean2Proto.getItem(item, itemNum));
|
itemProtoList.add(CBean2Proto.getItem(item, itemNum));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 触发任务,东海寻仙
|
// 日志记录
|
||||||
if (sItem.getItemType() == GlobalItemType.TRANSFORMATION_CARD) {
|
|
||||||
long count = itemNum;
|
|
||||||
while (count >= Integer.MAX_VALUE) {
|
|
||||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TRANSFIGURATION_CARD_NUM, sItem.getQuantity(), Integer.MAX_VALUE);
|
|
||||||
count -= Integer.MAX_VALUE;
|
|
||||||
}
|
|
||||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TRANSFIGURATION_CARD_NUM, sItem.getQuantity(), (int) count);
|
|
||||||
}
|
|
||||||
|
|
||||||
int eventType = ParamEventBean.UserItemEvent;
|
|
||||||
if (ifCurrency(itemId)) {
|
|
||||||
eventType = ParamEventBean.UserCurrencyEvent;
|
|
||||||
}
|
|
||||||
KtEventUtils.onKtEvent(user, eventType, reason, GlobalsDef.addReason, itemId, itemNum, item.getItemNum());
|
|
||||||
|
|
||||||
baseItemReport(user, itemId, (int) itemNum, 1, reason);
|
baseItemReport(user, itemId, (int) itemNum, 1, reason);
|
||||||
|
// 日志记录
|
||||||
|
ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, item, itemNum));
|
||||||
|
|
||||||
if (sItem.getId() == Global.EXP) {
|
switch (id){
|
||||||
userLevelUp(user, itemNum);
|
case Global.EXP://经验
|
||||||
}
|
userLevelUp(user, itemNum);
|
||||||
if (sItem.getId() == Global.TREASURE_SCORE) {
|
break;
|
||||||
treasureLevelUp(user);
|
case Global.TREASURE_SCORE://青龙秘宝积分
|
||||||
|
treasureLevelUp(user);
|
||||||
|
break;
|
||||||
|
case GlobalItemType.EQUIP://装备
|
||||||
|
if (reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD) {
|
||||||
|
itemManager.setEquipBookMap(itemId, itemNum);
|
||||||
|
changeEquipList.add(itemId);
|
||||||
|
user.getUserMissionManager().onGameEvent(user, GameEvent.GET_EQUIP, id, (int) itemNum);
|
||||||
|
ReportUtil.onReportEvent(user, ReportEventEnum.GET_EQUIP.getType(), id, (int) itemNum, reason);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case GlobalItemType.SOUL_MARK://魂印
|
||||||
|
equipManager.addSoulGeal(itemId);
|
||||||
|
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GOT_SOUL_MARK, id, (int) itemNum);
|
||||||
|
break;
|
||||||
|
case Global.DAILY_TASK_REMOVE_ITEM:
|
||||||
|
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.DAILY_TASK_FINISH, (int) itemNum);
|
||||||
|
break;
|
||||||
|
case GlobalItemType.TRANSFORMATION_CARD://东海寻仙
|
||||||
|
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TRANSFIGURATION_CARD_NUM, sItem.getQuantity(), (int) itemNum);
|
||||||
|
break;
|
||||||
|
default:break;
|
||||||
}
|
}
|
||||||
|
|
||||||
extraDropAop(user, dropBuilder, sItem);
|
extraDropAop(user, dropBuilder, sItem);
|
||||||
sendToFront.add(CBean2Proto.getItem(item, -1));
|
sendToFront.add(CBean2Proto.getItem(item, -1));
|
||||||
|
|
||||||
if (sItem.getItemType() == GlobalItemType.EQUIP) {
|
|
||||||
if (reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD) {
|
|
||||||
user.getUserMissionManager().onGameEvent(user, GameEvent.GET_EQUIP, sItem.getId(), (int) itemNum);
|
|
||||||
ReportUtil.onReportEvent(user, ReportEventEnum.GET_EQUIP.getType(), sItem.getId(), (int) itemNum, reason);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sItem.getItemType() == GlobalItemType.SOUL_MARK) {
|
|
||||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GOT_SOUL_MARK, sItem.getId(), (int) itemNum);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sItem.getId() == Global.DAILY_TASK_REMOVE_ITEM) {
|
|
||||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.DAILY_TASK_FINISH, (int) itemNum);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 日志记录
|
|
||||||
ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, item, itemNum));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送装备图鉴修改推送
|
// 发送装备图鉴修改推送
|
||||||
|
|
@ -832,9 +809,12 @@ public class ItemUtil {
|
||||||
if (extraBol) {
|
if (extraBol) {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
for(Map.Entry<Integer,Integer> entry : extraItem.entrySet()){
|
for(Map.Entry<Integer,Integer> entry : extraItem.entrySet()){
|
||||||
|
SItem item = SItem.getsItemMap().get(entry.getKey());
|
||||||
|
if (item.getItemType() == Global.EXP){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
builder.append(entry.getKey()).append("#").append(entry.getValue());
|
builder.append(entry.getKey()).append("#").append(entry.getValue());
|
||||||
String title = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_title");
|
String title = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_title");
|
||||||
SItem item = SItem.getsItemMap().get(entry.getKey());
|
|
||||||
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())},new int[]{1,0},"#");
|
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())},new int[]{1,0},"#");
|
||||||
MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
||||||
builder = new StringBuilder();
|
builder = new StringBuilder();
|
||||||
|
|
@ -968,13 +948,14 @@ public class ItemUtil {
|
||||||
* 孙龙宝藏升级 //zsx 保留 TODO 由事件分发到 Activitylogic 去处理
|
* 孙龙宝藏升级 //zsx 保留 TODO 由事件分发到 Activitylogic 去处理
|
||||||
*/
|
*/
|
||||||
public static void treasureLevelUp(User user) throws Exception {
|
public static void treasureLevelUp(User user) throws Exception {
|
||||||
|
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||||
|
|
||||||
List<SGlobalActivity> activities = SGlobalActivity.sGlobalActivityMapByType.get(ActivityType.TREASURE);
|
List<SGlobalActivity> activities = SGlobalActivity.sGlobalActivityMapByType.get(ActivityType.TREASURE);
|
||||||
SGlobalActivity activity = activities.stream().filter(a -> user.getActivityManager().getActivityMissionMap().containsKey(a.getId())).findAny().orElse(null);
|
SGlobalActivity activity = activities.stream().filter(a -> user.getActivityManager().getActivityMissionMap().containsKey(a.getId())).findAny().orElse(null);
|
||||||
if(activity==null){
|
if(activity==null){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
STreasureSunlongConfig levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(user.getPlayerInfoManager().getTreasureLevel());
|
STreasureSunlongConfig levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(playerInfoManager.getTreasureLevel());
|
||||||
if (levelConfig != null) {
|
if (levelConfig != null) {
|
||||||
//需要先确定下每级真实需要的经验,与客户端实现方式同步,认为表里填的升到下一级所需经验是前边各级经验总和
|
//需要先确定下每级真实需要的经验,与客户端实现方式同步,认为表里填的升到下一级所需经验是前边各级经验总和
|
||||||
int[][] integral = levelConfig.getIntegral();
|
int[][] integral = levelConfig.getIntegral();
|
||||||
|
|
@ -987,9 +968,9 @@ public class ItemUtil {
|
||||||
costItems = new int[][]{{integral[0][0], integral[0][1] - lastLevelConfig.getIntegral()[0][1]}};
|
costItems = new int[][]{{integral[0][0], integral[0][1] - lastLevelConfig.getIntegral()[0][1]}};
|
||||||
}
|
}
|
||||||
while(levelConfig != null && ItemUtil.itemCost(user, costItems, BIReason.TREASURE_LEVEL_UP_CONSUME, 1)){
|
while(levelConfig != null && ItemUtil.itemCost(user, costItems, BIReason.TREASURE_LEVEL_UP_CONSUME, 1)){
|
||||||
user.getPlayerInfoManager().addTreasureLevel();
|
playerInfoManager.addTreasureLevel();
|
||||||
lastLevelConfig = levelConfig;
|
lastLevelConfig = levelConfig;
|
||||||
levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(user.getPlayerInfoManager().getTreasureLevel());
|
levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(playerInfoManager.getTreasureLevel());
|
||||||
if (levelConfig != null && levelConfig.getIntegral().length > 0) {
|
if (levelConfig != null && levelConfig.getIntegral().length > 0) {
|
||||||
integral = levelConfig.getIntegral();
|
integral = levelConfig.getIntegral();
|
||||||
costItems = new int[][]{{integral[0][0],integral[0][1] - lastLevelConfig.getIntegral()[0][1]}};
|
costItems = new int[][]{{integral[0][0],integral[0][1] - lastLevelConfig.getIntegral()[0][1]}};
|
||||||
|
|
@ -997,8 +978,8 @@ public class ItemUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder()
|
PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder()
|
||||||
.setHadBuy(user.getPlayerInfoManager().getHadBuyTreasure())
|
.setHadBuy(playerInfoManager.getHadBuyTreasure())
|
||||||
.setLevel(user.getPlayerInfoManager().getTreasureLevel()).build();
|
.setLevel(playerInfoManager.getTreasureLevel()).build();
|
||||||
MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()),1,MessageTypeProto.MessageType.TREASURE_LEVELUP_INDICATION_VALUE,indication,true);
|
MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()),1,MessageTypeProto.MessageType.TREASURE_LEVELUP_INDICATION_VALUE,indication,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1100,7 +1081,7 @@ public class ItemUtil {
|
||||||
/**
|
/**
|
||||||
* type = 1获得 2 消耗
|
* type = 1获得 2 消耗
|
||||||
*/
|
*/
|
||||||
public static void baseItemReport(User user,int itemId,int itemNum,int type,int reason) throws Exception {
|
public static void baseItemReport(User user,int itemId, long itemNum,int type,int reason) throws Exception {
|
||||||
ReportEventEnum item;
|
ReportEventEnum item;
|
||||||
switch (itemId){
|
switch (itemId){
|
||||||
case ReportUtil.COIN_ID:
|
case ReportUtil.COIN_ID:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue