Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
121f54fff3
|
@ -2,7 +2,6 @@ package com.ljsd.jieling.core;
|
|||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.exception.ErrorUtil;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
|
@ -11,7 +10,6 @@ import com.ljsd.jieling.logic.OnlineUserManager;
|
|||
import com.ljsd.jieling.logic.dao.MainLevelManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
|
@ -19,7 +17,6 @@ import com.ljsd.jieling.protocols.MessageTypeProto;
|
|||
import com.ljsd.jieling.util.AyyncWorker;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SChallengeConfig;
|
||||
import config.SErrorCodeEerverConfig;
|
||||
import config.SGlobalSystemConfig;
|
||||
import config.SMainLevelConfig;
|
||||
import manager.STableManager;
|
||||
|
|
|
@ -173,7 +173,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
|
||||
private void getAllMissRewards(User user, ISession session, List<int[][]> itemAttrs) throws Exception {
|
||||
public void getAllMissRewards(User user, ISession session, List<int[][]> itemAttrs) throws Exception {
|
||||
List<Integer> misssIds = new LinkedList<>();
|
||||
List<SActivityRewardConfig> cfgs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
if (null == cfgs) {
|
||||
|
|
|
@ -69,28 +69,11 @@ public class TreasureActivity extends AbstractActivity {
|
|||
private void takeTreasureReward(ISession session, User user, int activityId, int missionId) throws Exception {
|
||||
int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE;
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
int changeState = ActivityType.HAD_TAKED;
|
||||
int hadBuyTreasure = playerInfoManager.getHadBuyTreasure();
|
||||
if (hadBuyTreasure == 1) {
|
||||
changeState = ActivityType.FINISH_TAKED;
|
||||
}
|
||||
int changeState = getChangerState(user);
|
||||
List<int[][]> dropList = new ArrayList<>(2);
|
||||
Set<Integer> missionIds = new HashSet<>();
|
||||
// Set<Integer> missionIds = new HashSet<>();
|
||||
if(missionId==-1){
|
||||
for(int i = 1 ; i<=user.getPlayerInfoManager().getTreasureLevel();i++){
|
||||
Map<Integer, ActivityProgressInfo> progressInfoMap = activityMission.getActivityProgressInfoMap();
|
||||
int state =progressInfoMap.get(i).getState();
|
||||
if(state==changeState||state==ActivityType.FINISH_TAKED) {
|
||||
continue;
|
||||
}
|
||||
missionIds.add(i);
|
||||
dropByState(dropList,state,changeState,i);
|
||||
ActivityProgressInfo progressInfo = new ActivityProgressInfo(0,changeState);
|
||||
activityMission.updateProgressInfo(i, progressInfo);
|
||||
|
||||
}
|
||||
|
||||
getAllTreasureRewards(user,activityMission,changeState,dropList);
|
||||
}else{
|
||||
int state = activityMission.getActivityProgressInfoMap().get(missionId).getState();
|
||||
if(state==changeState||state==ActivityType.FINISH_TAKED){
|
||||
|
@ -99,7 +82,7 @@ public class TreasureActivity extends AbstractActivity {
|
|||
dropByState(dropList,state,changeState,missionId);
|
||||
ActivityProgressInfo progressInfo = new ActivityProgressInfo(0,changeState);
|
||||
activityMission.updateProgressInfo(missionId, progressInfo);
|
||||
missionIds.add(missionId);
|
||||
// missionIds.add(missionId);
|
||||
}
|
||||
// sendActivityProgress(session,activityMission,missionIds);
|
||||
|
||||
|
@ -205,4 +188,31 @@ public class TreasureActivity extends AbstractActivity {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
private int getChangerState(User user){
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
int changeState = ActivityType.HAD_TAKED;
|
||||
int hadBuyTreasure = playerInfoManager.getHadBuyTreasure();
|
||||
if (hadBuyTreasure == 1) {
|
||||
changeState = ActivityType.FINISH_TAKED;
|
||||
}
|
||||
return changeState;
|
||||
}
|
||||
private void getAllTreasureRewards(User user,ActivityMission activityMission,int changeState,List<int[][]> dropList){
|
||||
for(int i = 1 ; i<=user.getPlayerInfoManager().getTreasureLevel();i++){
|
||||
Map<Integer, ActivityProgressInfo> progressInfoMap = activityMission.getActivityProgressInfoMap();
|
||||
int state =progressInfoMap.get(i).getState();
|
||||
if(state==changeState||state==ActivityType.FINISH_TAKED) {
|
||||
continue;
|
||||
}
|
||||
dropByState(dropList,state,changeState,i);
|
||||
ActivityProgressInfo progressInfo = new ActivityProgressInfo(0,changeState);
|
||||
activityMission.updateProgressInfo(i, progressInfo);
|
||||
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void getAllMissRewards(User user, ISession session, List<int[][]> itemAttrs){
|
||||
getAllTreasureRewards(user, user.getActivityManager().getActivityMissionMap().get(id), getChangerState(user), itemAttrs);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -151,7 +151,18 @@ public class GuildLogic {
|
|||
Collection<GuildInfo> guildInfos = GuilidManager.recommandGuild(user);
|
||||
Family.FamilyRecommandResponse.Builder builder = Family.FamilyRecommandResponse.newBuilder();
|
||||
Map<Integer, GuildApply> applyGuildInfos = GuilidManager.getApplyGuildInfos(uid, 1);
|
||||
int now =(int)(System.currentTimeMillis()/1000);
|
||||
if(applyGuildInfos.size()>0){
|
||||
for(Map.Entry<Integer, GuildApply> applyEntry:applyGuildInfos.entrySet()){
|
||||
GuildApply guildApply = applyEntry.getValue();
|
||||
if(now - guildApply.getCreateTime() > SGuildSetting.sGuildSetting.getApplyReserve()){
|
||||
GuilidManager.removeOneApplyGuildInfos(guildApply.getGuildId(),guildApply.getId());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
for(GuildInfo guildInfo : guildInfos){
|
||||
|
||||
builder.addFamilyRecomandInfo(Family.FamilyRecomandInfo.newBuilder().
|
||||
setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo))
|
||||
.setIsApply(applyGuildInfos.containsKey(guildInfo.getId())?1:0)
|
||||
|
|
|
@ -258,10 +258,10 @@ public class CombatLogic {
|
|||
}
|
||||
}
|
||||
int[] randomRewardMin = targetMainLevelConfig.getRandomRewardMin();
|
||||
ItemUtil.combineReward(user,randomRewardMin, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.combineReward(user,randomRewardMin, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,BIReason.ADVENTURE_BASE_REWARD);
|
||||
int timesTemp =times;
|
||||
while (timesTemp-->0){
|
||||
ItemUtil.combineReward(user,targetMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
ItemUtil.combineReward(user,targetMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
}
|
||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,BIReason.ADVENTURE_BASE_REWARD);
|
||||
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
|
@ -900,10 +900,10 @@ public class CombatLogic {
|
|||
Integer times = fightStateInfoItem.getValue();
|
||||
SMainLevelConfig sMainLevelConfig = SMainLevelConfig.config.get(fightId);
|
||||
int[] randomRewardMin = sMainLevelConfig.getRandomRewardMin();
|
||||
ItemUtil.combineReward(user,randomRewardMin, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.combineReward(user,randomRewardMin, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,BIReason.ADVENTURE_BASE_REWARD);
|
||||
int timesTemp =times;
|
||||
while (!viewBaseReward&×Temp-->0){
|
||||
ItemUtil.combineReward(user,sMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
ItemUtil.combineReward(user,sMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
}
|
||||
takeTimes+=times;
|
||||
}
|
||||
|
@ -918,10 +918,10 @@ public class CombatLogic {
|
|||
if(maxTimes>0){
|
||||
times = times > maxTimes?maxTimes:times;
|
||||
int[] randomRewardMin = targetMainLevelConfig.getRandomRewardMin();
|
||||
ItemUtil.combineReward(user,randomRewardMin, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.combineReward(user,randomRewardMin, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,BIReason.ADVENTURE_BASE_REWARD);
|
||||
int timesTemp =times;
|
||||
while (!viewBaseReward&×Temp-->0){
|
||||
ItemUtil.combineReward(user,targetMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
ItemUtil.combineReward(user,targetMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
}
|
||||
lastTimeTakes=times;
|
||||
}
|
||||
|
|
|
@ -329,7 +329,7 @@ public class ItemLogic {
|
|||
}
|
||||
}
|
||||
|
||||
ItemUtil.combineReward(user, StringUtil.parseFiledInt(reward.toString()),1,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.combineReward(user, StringUtil.parseFiledInt(reward.toString()),1,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,-1);
|
||||
|
||||
int reson = BIReason.DECOMPOS_HERO_REWARD;
|
||||
if(null!=filterItem){
|
||||
|
|
|
@ -257,8 +257,27 @@ public class ItemUtil {
|
|||
|
||||
|
||||
|
||||
public static void combineReward(User user,int[] dropGroupIds,float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap){
|
||||
public static void combineReward(User user,int[] dropGroupIds,float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap,int reason){
|
||||
combineRewardDropGroup(user, dropGroupIds, dropRatio, itemMap, cardMap, equipMap, randomMap);
|
||||
ItemManager itemManager = user.getItemManager();
|
||||
for(Map.Entry<Integer,Integer> item : itemMap.entrySet()){
|
||||
Integer itemId = item.getKey();
|
||||
Integer value = item.getValue();
|
||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||
int itemNums = privilegeAdd(user, 1, sItem.getItemType(), value);
|
||||
Item hadItem = itemManager.getItem(itemId);
|
||||
int hadNums = 0;
|
||||
if(hadItem !=null){
|
||||
hadNums = hadItem.getItemNum();
|
||||
}
|
||||
if(hadNums<sItem.getItemNumlimit()){
|
||||
if(hadNums + itemNums >sItem.getItemNumlimit()){
|
||||
itemMap.put(itemId,sItem.getItemNumlimit() - hadNums);
|
||||
}else{
|
||||
itemMap.put(itemId,itemNums);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void combineReward(int[][] itemArr, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap){
|
||||
|
@ -485,7 +504,6 @@ public class ItemUtil {
|
|||
if(itemNum <= 0){
|
||||
continue;
|
||||
}
|
||||
itemNum=privilegeAdd(user,reason,sItem.getItemType(),itemNum);
|
||||
if (itemNum >= sItem.getItemNumlimit()){
|
||||
itemNum = sItem.getItemNumlimit();
|
||||
}
|
||||
|
@ -493,6 +511,9 @@ public class ItemUtil {
|
|||
if (item == null) {
|
||||
item = itemManager.newItem(entry.getKey(), itemNum);
|
||||
} else {
|
||||
if(item.getItemNum()>= sItem.getItemNumlimit()){
|
||||
continue;
|
||||
}
|
||||
if (item.getItemNum() + entry.getValue() >= sItem.getItemNumlimit()){
|
||||
itemNum = sItem.getItemNumlimit() -item.getItemNum();
|
||||
item.setItemNum(sItem.getItemNumlimit());
|
||||
|
@ -1373,36 +1394,60 @@ public class ItemUtil {
|
|||
|
||||
public static boolean checkCardAndEquipLimit( User user ,int[][] itemArr) {
|
||||
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||
for (int[] ints : itemArr) {
|
||||
int itemId = ints[0];
|
||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||
int itemType = getItemType(sItem);
|
||||
if (itemType == GlobalItemType.CARD) {
|
||||
int hasHeroNum = user.getHeroManager().getHeroMap().size();
|
||||
if (hasHeroNum >= gameSetting.getHeroNumlimit()){
|
||||
return true;
|
||||
}
|
||||
} else if (itemType == GlobalItemType.EQUIP) {
|
||||
EquipManager equipManager = user.getEquipManager();
|
||||
int hasEquipNum = equipManager.getEquipMap().size();
|
||||
if (hasEquipNum >= gameSetting.getEquipNumlimit()){
|
||||
return true;
|
||||
}
|
||||
}else if(itemType == GlobalItemType.SOUL_MARK){
|
||||
int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT);
|
||||
if (user.getEquipManager().getSoulEquipMap().size() >=limit){
|
||||
return true;
|
||||
}
|
||||
}else if(itemType == GlobalItemType.ESPECIAL_EQUIP){
|
||||
int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismana_limit);
|
||||
if (user.getEquipManager().getEspecialEquipMap().size() >=limit){
|
||||
return true;
|
||||
}
|
||||
Map<Integer, Integer> itemTypeMap = getItemTypeMap(itemArr);
|
||||
for (Map.Entry<Integer, Integer> entry : itemTypeMap.entrySet()) {
|
||||
switch (entry.getKey()){
|
||||
case GlobalItemType.CARD:
|
||||
int hasHeroNum = user.getHeroManager().getHeroMap().size();
|
||||
if (hasHeroNum+entry.getValue() >= gameSetting.getHeroNumlimit()){
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case GlobalItemType.EQUIP:
|
||||
EquipManager equipManager = user.getEquipManager();
|
||||
int hasEquipNum = equipManager.getEquipMap().size();
|
||||
if (hasEquipNum +entry.getValue()>= gameSetting.getEquipNumlimit()){
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case GlobalItemType.SOUL_MARK:
|
||||
int soulLimit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT);
|
||||
if (user.getEquipManager().getSoulEquipMap().size()+entry.getValue()>=soulLimit){
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case GlobalItemType.ESPECIAL_EQUIP:
|
||||
int especialLimit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismana_limit);
|
||||
if (user.getEquipManager().getEspecialEquipMap().size()+entry.getValue() >=especialLimit){
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物品种类map
|
||||
* @param itemArr
|
||||
* @return
|
||||
*/
|
||||
public static Map<Integer,Integer> getItemTypeMap(int[][] itemArr){
|
||||
Map<Integer,Integer> itemTypeMap = new HashMap<>();
|
||||
for (int[] ints : itemArr) {
|
||||
int itemId = ints[0];
|
||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||
int itemType = getItemType(sItem);
|
||||
if(itemTypeMap.containsKey(itemType)){
|
||||
itemTypeMap.put(itemType,itemTypeMap.get(itemType)+ints[1]);
|
||||
}else{
|
||||
itemTypeMap.put(itemType,ints[1]);
|
||||
}
|
||||
}
|
||||
return itemTypeMap;
|
||||
}
|
||||
|
||||
//特权加成收益计算
|
||||
public static int privilegeAdd(User user,int reason,int itemType,int sourceNum){
|
||||
|
|
Loading…
Reference in New Issue