zhangshanxue 2019-08-30 10:26:23 +08:00
commit 6fbb86fad2
4 changed files with 53 additions and 12 deletions

View File

@ -328,9 +328,7 @@ public class FriendLogic {
@Override @Override
public void work(User user) throws Exception { public void work(User user) throws Exception {
boolean isOnline = OnlineUserManager.checkUidOnline(user.getId()); boolean isOnline = OnlineUserManager.checkUidOnline(user.getId());
if(isOnline){
MissionEventDistributor.requestStart(); MissionEventDistributor.requestStart();
}
user.getUserMissionManager().onGameEvent(user, GameEvent.FRIEND_NUMS, 1); user.getUserMissionManager().onGameEvent(user, GameEvent.FRIEND_NUMS, 1);
if(isOnline){ if(isOnline){
ISession session = OnlineUserManager.getSessionByUid(user.getId()); ISession session = OnlineUserManager.getSessionByUid(user.getId());
@ -450,7 +448,7 @@ public class FriendLogic {
User friendUser = UserManager.getUser(friendId); User friendUser = UserManager.getUser(friendId);
FriendManager friendManager1 = friendUser.getFriendManager(); FriendManager friendManager1 = friendUser.getFriendManager();
Map<Integer, Integer> haveRewardMap = friendUser.getFriendManager().getHaveRewardMap(); Map<Integer, Integer> haveRewardMap = friendUser.getFriendManager().getHaveRewardMap();
if (haveRewardMap.get(uid) != 0) { if (haveRewardMap.containsKey(uid) && haveRewardMap.get(uid) != 0) {
MessageUtil.sendErrorResponse(iSession, 0, msgId, "已经赠送过"); MessageUtil.sendErrorResponse(iSession, 0, msgId, "已经赠送过");
return; return;
} }
@ -469,7 +467,7 @@ public class FriendLogic {
User friendUser = UserManager.getUser(friendUserId); User friendUser = UserManager.getUser(friendUserId);
FriendManager friendManager1 = friendUser.getFriendManager(); FriendManager friendManager1 = friendUser.getFriendManager();
Map<Integer, Integer> haveRewardMap = friendManager1.getHaveRewardMap(); Map<Integer, Integer> haveRewardMap = friendManager1.getHaveRewardMap();
if (haveRewardMap.get(uid) != 0) { if (haveRewardMap.containsKey(uid) && haveRewardMap.get(uid) != 0) {
continue; continue;
} }
friendManager.updateGiveMap(friendUserId,1); friendManager.updateGiveMap(friendUserId,1);
@ -511,7 +509,7 @@ public class FriendLogic {
MessageUtil.sendErrorResponse(iSession, 0, msgId, "没有该好友"); MessageUtil.sendErrorResponse(iSession, 0, msgId, "没有该好友");
return; return;
} }
if (haveRewardMap.get(friendId) !=1){ if (haveRewardMap.containsKey(friendId) && haveRewardMap.get(friendId) !=1){
MessageUtil.sendErrorResponse(iSession, 0, msgId, "已领取赠礼"); MessageUtil.sendErrorResponse(iSession, 0, msgId, "已领取赠礼");
return; return;
} }
@ -522,7 +520,7 @@ public class FriendLogic {
receieveFriends.add(friendId); receieveFriends.add(friendId);
}else{ }else{
for (Integer friend : friends) { for (Integer friend : friends) {
if (haveRewardMap.get(friend) != 1) { if (haveRewardMap.containsKey(friend) && haveRewardMap.get(friend) != 1) {
continue; continue;
} }
check = playerInfoManager.check(SGameSetting.getGameSetting().getMaxEnergyGet(), 1); check = playerInfoManager.check(SGameSetting.getGameSetting().getMaxEnergyGet(), 1);

View File

@ -4,9 +4,12 @@ import com.ljsd.GameApplication;
import com.ljsd.jieling.chat.logic.ChatLogic; import com.ljsd.jieling.chat.logic.ChatLogic;
import com.ljsd.jieling.config.*; import com.ljsd.jieling.config.*;
import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.core.HandlerLogicThread;
import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent; import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent;
import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.*;
@ -14,6 +17,8 @@ import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.logic.fight.CombatLogic;
import com.ljsd.jieling.logic.item.ItemLogic; import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
import com.ljsd.jieling.network.server.ProtocolsManager;
import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.HeroInfoProto; import com.ljsd.jieling.protocols.HeroInfoProto;
@ -914,7 +919,7 @@ public class HeroLogic {
public Map<Integer,Integer> calHeroNotBufferAttribute(User user, Hero hero,boolean isForce,int teamId){ public Map<Integer,Integer> calHeroNotBufferAttribute(User user, Hero hero,boolean isForce,int teamId){
Map<Integer, Integer> heroAllAttribute = calHeroAllAttribute(hero,isForce); Map<Integer, Integer> heroAllAttribute = calHeroAllAttribute(hero,isForce);
heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),heroAllAttribute.get(GlobalsDef.HP_TYPE)); heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),heroAllAttribute.get(GlobalsDef.HP_TYPE));
Collection<String> values = hero.getEquipByPositionMap().values();
EquipManager equipManager = user.getEquipManager(); EquipManager equipManager = user.getEquipManager();
PokemonManager pokemonManager = user.getPokemonManager(); PokemonManager pokemonManager = user.getPokemonManager();
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
@ -938,8 +943,16 @@ public class HeroLogic {
} }
//装备总战力评分 //装备总战力评分
int equipForce=0; int equipForce=0;
for(String equipId:values){ boolean needRemove = false;
Iterator<Map.Entry<Integer, String>> iterator = hero.getEquipByPositionMap().entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<Integer, String> next = iterator.next();
String equipId = next.getValue();
Equip equip = equipManager.getEquipMap().get(equipId); Equip equip = equipManager.getEquipMap().get(equipId);
if(equip == null){
needRemove = true;
continue;
}
Map<Integer, Integer> propertyValueByIdMap = equip.getPropertyValueByIdMap(); Map<Integer, Integer> propertyValueByIdMap = equip.getPropertyValueByIdMap();
Map<Integer, Integer> secondValueByIdMap = equip.getSecondValueByIdMap(); Map<Integer, Integer> secondValueByIdMap = equip.getSecondValueByIdMap();
// LOGGER.info("cal equip = {}",equip.getEquipId()); // LOGGER.info("cal equip = {}",equip.getEquipId());
@ -947,7 +960,33 @@ public class HeroLogic {
combinedAttribute(secondValueByIdMap,heroAllAttribute); combinedAttribute(secondValueByIdMap,heroAllAttribute);
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equip.getEquipId()); SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equip.getEquipId());
equipForce+=sEquipConfig.getScore(); equipForce+=sEquipConfig.getScore();
// LOGGER.info("cal equip = {} end",equip.getEquipId()); }
if(needRemove){
AyyncWorker ayyncWorker = new AyyncWorker(user,true) {
@Override
public void work(User user) throws Exception {
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
for(Hero heroTmp : heroMap.values()){
Iterator<Map.Entry<Integer, String>> iterator = heroTmp.getEquipByPositionMap().entrySet().iterator();
boolean isUpate = false;
while (iterator.hasNext()){
Map.Entry<Integer, String> next = iterator.next();
String equipId = next.getValue();
Equip equip = equipManager.getEquipMap().get(equipId);
if(equip == null){
iterator.remove();
isUpate = true;
}
}
if(isUpate){
heroTmp.setEquipByPositionMap(heroTmp.getEquipByPositionMap());
}
}
}
};
ProtocolsManager instance = ProtocolsManager.getInstance();
HandlerLogicThread handlerThread = instance.handlerThreads[user.getId() % instance.HANDLER_THREAD_NUM];
handlerThread.addAyyncWorker(ayyncWorker);
} }
//天赋异妖加成 //天赋异妖加成
Map<Integer, Pokemon> ringFireMap = pokemonManager.getRingFireMap(); Map<Integer, Pokemon> ringFireMap = pokemonManager.getRingFireMap();

View File

@ -192,6 +192,10 @@ public class MailLogic {
// mail.setState(Global.MAIL_DRAW_ST_GOT); // mail.setState(Global.MAIL_DRAW_ST_GOT);
// mailManager.addMail(mail); // mailManager.addMail(mail);
} }
if(mailItem.length()==0){
MessageUtil.sendErrorResponse(iSession,0,msgId,"该邮件没有附件可以领取");
return;
}
int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString()); int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString());
boolean isLimit = ItemUtil.checkCardAndEquipLimit(user,itemArr); boolean isLimit = ItemUtil.checkCardAndEquipLimit(user,itemArr);
if (isLimit){ if (isLimit){

View File

@ -274,7 +274,7 @@ public class CBean2Proto {
if (giveMap.size() != 0 && giveMap.containsKey(friendId)){ if (giveMap.size() != 0 && giveMap.containsKey(friendId)){
isGrive = giveMap.get(friendId); isGrive = giveMap.get(friendId);
} }
if (haveRewardMap.size() != 0 && giveMap.containsKey(friendId)){ if (haveRewardMap.size() != 0 && giveMap.containsKey(friendId) && haveRewardMap.containsKey(friendId)){
haveReward = haveRewardMap.get(friendId) ==2?0:haveRewardMap.get(friendId); haveReward = haveRewardMap.get(friendId) ==2?0:haveRewardMap.get(friendId);
} }
} }