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
public void work(User user) throws Exception {
boolean isOnline = OnlineUserManager.checkUidOnline(user.getId());
if(isOnline){
MissionEventDistributor.requestStart();
}
MissionEventDistributor.requestStart();
user.getUserMissionManager().onGameEvent(user, GameEvent.FRIEND_NUMS, 1);
if(isOnline){
ISession session = OnlineUserManager.getSessionByUid(user.getId());
@ -450,7 +448,7 @@ public class FriendLogic {
User friendUser = UserManager.getUser(friendId);
FriendManager friendManager1 = friendUser.getFriendManager();
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, "已经赠送过");
return;
}
@ -469,7 +467,7 @@ public class FriendLogic {
User friendUser = UserManager.getUser(friendUserId);
FriendManager friendManager1 = friendUser.getFriendManager();
Map<Integer, Integer> haveRewardMap = friendManager1.getHaveRewardMap();
if (haveRewardMap.get(uid) != 0) {
if (haveRewardMap.containsKey(uid) && haveRewardMap.get(uid) != 0) {
continue;
}
friendManager.updateGiveMap(friendUserId,1);
@ -511,7 +509,7 @@ public class FriendLogic {
MessageUtil.sendErrorResponse(iSession, 0, msgId, "没有该好友");
return;
}
if (haveRewardMap.get(friendId) !=1){
if (haveRewardMap.containsKey(friendId) && haveRewardMap.get(friendId) !=1){
MessageUtil.sendErrorResponse(iSession, 0, msgId, "已领取赠礼");
return;
}
@ -522,7 +520,7 @@ public class FriendLogic {
receieveFriends.add(friendId);
}else{
for (Integer friend : friends) {
if (haveRewardMap.get(friend) != 1) {
if (haveRewardMap.containsKey(friend) && haveRewardMap.get(friend) != 1) {
continue;
}
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.config.*;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.core.HandlerLogicThread;
import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.globals.BIReason;
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.Poster;
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.item.ItemLogic;
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.protocols.CommonProto;
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){
Map<Integer, Integer> heroAllAttribute = calHeroAllAttribute(hero,isForce);
heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),heroAllAttribute.get(GlobalsDef.HP_TYPE));
Collection<String> values = hero.getEquipByPositionMap().values();
EquipManager equipManager = user.getEquipManager();
PokemonManager pokemonManager = user.getPokemonManager();
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
@ -938,16 +943,50 @@ public class HeroLogic {
}
//装备总战力评分
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);
if(equip == null){
needRemove = true;
continue;
}
Map<Integer, Integer> propertyValueByIdMap = equip.getPropertyValueByIdMap();
Map<Integer, Integer> secondValueByIdMap = equip.getSecondValueByIdMap();
// LOGGER.info("cal equip = {}",equip.getEquipId());
// LOGGER.info("cal equip = {}",equip.getEquipId());
combinedAttribute(propertyValueByIdMap,heroAllAttribute);
combinedAttribute(secondValueByIdMap,heroAllAttribute);
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equip.getEquipId());
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();

View File

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

View File

@ -274,7 +274,7 @@ public class CBean2Proto {
if (giveMap.size() != 0 && giveMap.containsKey(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);
}
}