装备加道具日志

master_0.05_aqlm
grimm 2024-03-21 14:32:32 +08:00
parent d5d2ff3d2a
commit b1f60947ca
3 changed files with 49 additions and 20 deletions

View File

@ -24,7 +24,6 @@ public class Item extends MongoBase {
}
public int getItemId() {
return itemId;
}

View File

@ -16,6 +16,9 @@ public class ItemLog {
private String id;
@Field(value = "uid")
private int uid;
/**
* 0 1
*/
@Field(value = "type")
private int type;
@Field(value = "level")
@ -46,6 +49,17 @@ public class ItemLog {
this.itemTotalNum = itemTotalNum;
}
public ItemLog(User user, int type, int reason, int itemId, long itemNum, long itemTotalNum) {
this.uid = user.getId();
this.type = type;
this.level = user.getPlayerInfoManager().getLevel();
this.time = String.valueOf(TimeUtils.now());
this.reason = reason;
this.itemId = itemId;
this.itemNum = itemNum;
this.itemTotalNum = itemTotalNum;
}
public ItemLog(User user, int type, int reason, Item item, long itemNum) {
this.uid = user.getId();
this.type = type;

View File

@ -71,7 +71,7 @@ public class ItemUtil {
addCard(user, itemObj.getCardMap(), dropBuilder,reason);
addEquip(user, itemObj.getEquipMap(), dropBuilder,reason);
addSpecialMonster(user,itemObj,dropBuilder,reason);
addMagicSoldier(user,itemObj.getMagicSoldierMap(),dropBuilder);
addMagicSoldier(user,itemObj.getMagicSoldierMap(),dropBuilder,reason);
addGemNew(user,itemObj.getGemNewMap(),dropBuilder);
}
@ -1189,18 +1189,20 @@ public class ItemUtil {
StringBuilder reward = new StringBuilder();
List<CommonProto.Equip> jewelList = new CopyOnWriteArrayList<>();
Map<String, PropertyItem> propertyItemMap = user.getEquipManager().getEquipMap();
// jewelMap 为了做宝物礼包推送<宝物品质, 数量>
ArrayList<Integer> jewelPush = new ArrayList<>();
for (Map.Entry<Integer, Integer> entry : equipMap.entrySet()) {
Integer key = entry.getKey();
int count = entry.getValue();
long count1 = propertyItemMap.values().stream().filter(v -> v.getEquipId() == key).count();
int itemType = SItem.getsItemMap().get(key).getItemType();
if(!ifPropertyItem(itemType)){
continue;
}
for (int i = 0; i < count; i++) {
// 到达装备上限,发送邮件,不走背包
if (user.getEquipManager().getEquipMap().size() >= gameSetting.getEquipNumlimit()) {
if (propertyItemMap.size() >= gameSetting.getEquipNumlimit()) {
reward.append(key).append("#1").append("|");
if (reward.length() > 0){
reward = new StringBuilder(reward.substring(0, reward.length() - 1));
@ -1211,6 +1213,8 @@ public class ItemUtil {
ReportUtil.onReportEvent(user,ReportEventEnum.GET_TREASURE.getType(), key,reason);
}
}
// 后台日志
ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, key, count, count+count1));
}
if (reward.length() > 0) {
@ -1298,42 +1302,42 @@ public class ItemUtil {
int hasHeroNum = user.getHeroManager().getHeroMap().size();
String title = SErrorCodeEerverConfig.getI18NMessage("card_bag_limit_title");
String content = SErrorCodeEerverConfig.getI18NMessage("card_bag_limit_txt");
int nowInt = TimeUtils.nowInt();
if (hasHeroNum >= gameSetting.getHeroNumlimit()){
String reward = getLimitReward(cardMap);
int nowTime =(int) (TimeUtils.now()/1000);
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME);
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowInt,Global.MAIL_EFFECTIVE_TIME);
MessageUtil.nofityBagIsFull(user);
return;
}
List<CommonProto.Hero> heroList = new CopyOnWriteArrayList<>();
StringBuilder reward = new StringBuilder();
for (Map.Entry<Integer, Integer> entry : cardMap.entrySet()) {
Integer itemId = entry.getKey();
int count = entry.getValue();
for (int i = 0; i < count; i++) {
if (user.getHeroManager().getHeroMap().size() >= gameSetting.getHeroNumlimit()) {
if (reward.length() == 0){
reward = new StringBuilder(entry.getKey() + "#1");
reward = new StringBuilder(itemId + "#1");
}else{
reward.append("|").append(entry.getKey()).append("#1");
reward.append("|").append(itemId).append("#1");
}
continue;
}
addCard(user, entry.getKey(),heroList,reason);
SItem sItem = SItem.getsItemMap().get(entry.getKey());
addCard(user, itemId,heroList,reason);
SItem sItem = SItem.getsItemMap().get(itemId);
extraDropAop(user,dropBuilder,sItem);
}
// 回退所得神将不更新任务或活动
if (reason == BIReason.HERO_RETURN) {
continue;
}
fiveStarEvent(user,entry.getKey());
fiveStarEvent(user, itemId);
if(reason != BIReason.HERO_RANDOM){
fiveStarPushByCombine(user,entry.getKey(),count);
fiveStarPushByCombine(user, itemId,count);
}
}
if (reward.length() > 0) {
int nowTime = (int) (TimeUtils.now() / 1000);
MailLogic.getInstance().sendMail(user.getId(), title, content, reward.toString(), nowTime, Global.MAIL_EFFECTIVE_TIME);
MailLogic.getInstance().sendMail(user.getId(), title, content, reward.toString(), nowInt, Global.MAIL_EFFECTIVE_TIME);
MessageUtil.nofityBagIsFull(user);
}
dropBuilder.addAllHero(heroList);
@ -1866,16 +1870,20 @@ public class ItemUtil {
if(itemObj.getSpecialMonsterMap().isEmpty()){
return;
}
Map<String, Pokemon> pokemonMap = user.getPokemonManager().getPokemonMap();
for(Map.Entry<Integer,Integer> entry:itemObj.getSpecialMonsterMap().entrySet()){
for(int i = 0 ; i <entry.getValue();i++){
Pokemon pokemon = new Pokemon(user.getId(),entry.getKey());
Integer itemId = entry.getKey();
Integer number = entry.getValue();
long count = pokemonMap.values().stream().filter(v -> v.getTmpId() == itemId).count();
for(int i = 0; i < number; i++){
Pokemon pokemon = new Pokemon(user.getId(), itemId);
user.getPokemonManager().addPokemon(pokemon);
if(!user.getPokemonManager().getPokemonGot().contains(pokemon.getTmpId())){
user.getPokemonManager().addPokemonGot(pokemon.getTmpId());
}
dropBuilder.addPokemon(CBean2Proto.getPokemon(pokemon));
SSpiritAnimal animal = STableManager.getConfig(SSpiritAnimal.class).get(entry.getKey());
ReportUtil.onReportEvent(user,ReportEventEnum.GET_BEAST.getType(),entry.getKey(),animal.getQuality(),reason);
SSpiritAnimal animal = STableManager.getConfig(SSpiritAnimal.class).get(itemId);
ReportUtil.onReportEvent(user,ReportEventEnum.GET_BEAST.getType(), itemId,animal.getQuality(),reason);
if (animal.getQuality() >= SSpecialConfig.getIntegerValue(SSpecialConfig.ANIMAL_BROADCAST_QUALITY)&&reason!=BIReason.COMPOS_HERO_REWARD) { //策划资质改成星级
String nameColor = user.getPlayerInfoManager().getNameColor();
String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("animal_get_broadcast_content",
@ -1886,6 +1894,8 @@ public class ItemUtil {
}
}
}
// 后台日志
ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, itemId, count, count+number));
}
// 触发任务,东海寻仙
user.getUserMissionManager().onGameEvent(user,GameEvent.ONE_MISSION_TYPE_CONSUME,MissionType.HAVE_ID_STAR_LV_POKEMON_NUM);
@ -1894,17 +1904,23 @@ public class ItemUtil {
/**
*
*/
private static void addMagicSoldier(User user,Map<Integer,Integer> map,CommonProto.Drop.Builder dropBuilder) {
private static void addMagicSoldier(User user,Map<Integer,Integer> map,CommonProto.Drop.Builder dropBuilder, int reason) {
if(map == null || map.isEmpty()){
return;
}
MagicSoldierManager manager = user.getMagicSoldierManager();
Map<String, MagicSoldier> soldierMap = manager.getMagicSoldierMap();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
for (int i = 0; i < entry.getValue(); i++) {
MagicSoldier soldier = new MagicSoldier(user.getId(), entry.getKey());
Integer itemId = entry.getKey();
Integer number = entry.getValue();
long count = soldierMap.values().stream().filter(v -> v.getTmpId() == itemId).count();
for (int i = 0; i < number; i++) {
MagicSoldier soldier = new MagicSoldier(user.getId(), itemId);
manager.setMagicSoldier(soldier);
dropBuilder.addMagicSoldier(CBean2Proto.toBeanMagicSoldier(soldier));
}
// 后台日志
ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, itemId, count, count+number));
}
}