Merge branch 'online_1121'

# Conflicts:
#	serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java
back_recharge
lvxinran 2019-12-08 01:28:38 +08:00
commit 4d4ccd4703
23 changed files with 299 additions and 150 deletions

View File

@ -48,12 +48,12 @@ public class GmService implements RPCRequestGMIFace.Iface {
try {
if(cmd.contains("restartthread")){
Field configurableApplicationContextField = GameApplication.class.getDeclaredField("configurableApplicationContext");
configurableApplicationContextField.setAccessible(true);
ConfigurableApplicationContext configurableApplicationContext =(ConfigurableApplicationContext) configurableApplicationContextField.get(GameApplication.class);
DataReportTask bean = configurableApplicationContext.getBean(DataReportTask.class);
bean.start();
result.setResultCode(1);
LOGGER.info("restartthread....");
HandlerLogicThread handlerLogicThread = new HandlerLogicThread();
ProtocolsManager.getInstance().handlerThreads[Integer.parseInt(arg[1].trim())] = handlerLogicThread;
handlerLogicThread.setPriority(9);//优先级最高
handlerLogicThread.setName("h-" + Integer.parseInt(arg[1].trim()));
handlerLogicThread.start();
return result;
}

View File

@ -110,10 +110,11 @@ public class ChatLogic {
char[] original = unSymbolWord.toCharArray();
char[] tmpChar = tmp.toCharArray();
int j=0;
int length = original.length;
char[] result = new char[chars.length];
for(int i=0;i<chars.length;i++){
char c= chars[i];
if(original[j] == chars[i]){
if(j<length && original[j] == chars[i]){
c = tmpChar[j];
j++;
}

View File

@ -64,8 +64,8 @@ public class Repot37EventUtil {
report37CheckChat.setUid(String.valueOf(user.getPlayerInfoManager().getOpenId()));//uid
report37CheckChat.setActor_name(user.getPlayerInfoManager().getNickName());
report37CheckChat.setActor_id(String.valueOf(user.getId()));
report37CheckChat.setGid(String.valueOf(user.getPlayerInfoManager().getGid()));
report37CheckChat.setPid(String.valueOf(user.getPlayerInfoManager().getPid()));
report37CheckChat.setGid(SDK37Constans.gid);
report37CheckChat.setPid(SDK37Constans.pid);
report37CheckChat.setDsid(String.valueOf(GameApplication.serverId));
report37CheckChat.setType(parm[0].toString());//类型
report37CheckChat.setContent(parm[1].toString());//内容

View File

@ -2,6 +2,7 @@ package com.ljsd.jieling.handler.activity;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.MessageTypeProto;

View File

@ -1,6 +1,7 @@
package com.ljsd.jieling.handler.activity;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.activity.AbstractActivity;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
@ -17,6 +18,8 @@ public class BlessInfoHandler extends BaseHandler {
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
///
ActivityLogic.getInstance().blessInfo(iSession,MessageTypeProto.MessageType.BLESS_INFO_RESPONSE);
}
}

View File

@ -27,5 +27,7 @@ public class BlessSaveRewardHandler extends BaseHandler {
info[i] = rewardIdsList.get(i);
}
ActivityLogic.getInstance().blessSaveOptionalReward(iSession,info,MessageTypeProto.MessageType.BLESS_SAVE_REWARD_RESPONSE);
////
}
}

View File

@ -1228,7 +1228,6 @@ public class MapLogic {
groupId = newGroupId;
}
}
SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(user.getMapManager().getCurMapId());
int mostTime = sChallengeConfig.getMostTime();
PVEFightEvent pveFightEvent = new PVEFightEvent(uid, mapManager.getTeamId(), mostTime, "", GameFightType.MapFastFight, groupId, 3);
@ -1424,6 +1423,7 @@ public class MapLogic {
}
FightInfoProto.FightStartResponse.Builder fightStartResponse = FightInfoProto.FightStartResponse.newBuilder();
SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId());
LOGGER.info("EventId为{},groupId为{}",bigEventId,groupId);
BehaviorUtil.getFightInfo(user, groupId, fightStartResponse, pointId, sChallengeConfig.getMostTime(), true);
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightStartResponse.build(), true);
}
@ -1520,8 +1520,10 @@ public class MapLogic {
fightEndResponse.addAllRemainHpList(remainHp);
fightEndResponse.setLastXY(mapManager.getLastXY());
mapManager.setCurXY(mapManager.getLastXY());
if (SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType() == 2) {
fightEndResponse.setLastTowerTime((int) (mapManager.getCurrTowerTime() / 1000));
if(mapManager.getCurMapId()!=0){
if (SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType() == 2) {
fightEndResponse.setLastTowerTime((int) (mapManager.getCurrTowerTime() / 1000));
}
}
if (sOptionConfig != null) {

View File

@ -1,5 +1,7 @@
package com.ljsd.jieling.handler.store;
import com.ljsd.GameApplication;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.store.BuyGoodsLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
@ -17,6 +19,11 @@ public class TestBuyGiftGoodsHandler extends BaseHandler {
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
if(!GameApplication.serverProperties.isDebug()){
throw new ErrorCodeException("In a formal setting");
}
PlayerInfoProto.TestBuyGiftGoodsRequest testBuyGiftGoodsRequest = PlayerInfoProto.TestBuyGiftGoodsRequest.parseFrom(netData.parseClientProtoNetData());
BuyGoodsLogic.testBuyGoods(iSession,testBuyGiftGoodsRequest.getGoodsId());
}

View File

@ -0,0 +1,35 @@
package com.ljsd.jieling.kefu;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.server.ProtocolsManager;
import com.ljsd.jieling.util.AyncWorkerRunnable;
import com.ljsd.jieling.util.AyyncWorker;
import java.util.List;
public class Cmd_fixindb extends GmAbstract{
@Override
public boolean exec(String[] args) throws Exception {
List<User> userList = MongoUtil.getInstence().getMyMongoTemplate().findAll(User.getCollectionName(), User.class);
userList.forEach(user -> {
try {
User userInMem = UserManager.getUser(user.getId());
AyyncWorker ayyncWorker = new AyyncWorker(userInMem, true, new AyncWorkerRunnable() {
@Override
public void work(User user) throws Exception {
MongoUtil.getLjsdMongoTemplate().save(user);
}
});
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
} catch (Exception e) {
e.printStackTrace();
}
});
return false;
}
}

View File

@ -705,10 +705,129 @@ public class ActivityLogic {
}
private int getBlessActivityId(User user){
Map<Integer, ActivityMission> activityMissionMap = user.getActivityManager().getActivityMissionMap();
for(Integer activityId:activityMissionMap.keySet()){
if(SGlobalActivity.getsGlobalActivityMap().get(activityId).getType()==ActivityType.BLESSACTIVITY){
return activityId;
}
}
return 0;
}
/**
*
*
* @param session
* @param locationId
* @param messageType
* @throws Exception
*/
public void blessChoose(ISession session, int locationId, MessageTypeProto.MessageType messageType) throws Exception {
User user = UserManager.getUser(session.getUid());
int blessActivityId = getBlessActivityId(user);
if(blessActivityId==0){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(blessActivityId);
if (activityMission == null) {
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap();
if (activityProgressInfoMap.get(locationId + BlessInfoConfig.START_CAPACITY).getProgrss() != 0) {
throw new ErrorCodeException(ErrorCode.newDefineCode("已经抽过改格子"));
}
int resultRewardId = 0;
if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() == -1) {
Map<Integer, SBlessingRewardPool> poolMap = STableManager.getConfig(SBlessingRewardPool.class);
int[][] result = new int[BlessInfoConfig.START_CAPACITY][];
int index = 0;
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityProgressInfoMap.entrySet()) {
if (entry.getKey() > BlessInfoConfig.START_CAPACITY) {
continue;
}
int[] temp = new int[2];
temp[0] = entry.getValue().getProgrss();
temp[1] = poolMap.get(entry.getValue().getProgrss()).getExtractWeight();
result[index] = temp;
index++;
}
int[] order = MathUtils.randomFromWeightWithTaking(result, BlessInfoConfig.START_CAPACITY);
for (int i = 0; i < order.length; i++) {
LOGGER.info("获取顺序{}", order[i]);
}
index = 0;
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityProgressInfoMap.entrySet()) {
if (entry.getKey() > BlessInfoConfig.START_CAPACITY) {
continue;
}
ActivityProgressInfo progress = new ActivityProgressInfo();
progress.setProgrss(order[index]);
activityMission.updateProgressInfo(entry.getKey(), progress);
index++;
}
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo(1, 0));
}
//检验消耗道具
int[][] costConfig = SBlessingConfig.blessingConfigMap.get(blessActivityId).getCost();
int[][] cost = new int[1][];
int[] temp = new int[2];
temp[0] = costConfig[0][0];
temp[1] = (int) MathUtils.calABX(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss(), costConfig[1]);
cost[0] = temp;
LOGGER.info("本次为第{}次抽取,消耗{}个数为{}", activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss(), temp[0], temp[1]);
boolean costResult = ItemUtil.itemCost(user, cost, BIReason.BLESS_CHOOSE_CONSUME, 1);
if (!costResult) {
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() > 0) {
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityProgressInfoMap.entrySet()) {
if (entry.getKey() > BlessInfoConfig.START_CAPACITY) {
continue;
}
if (entry.getValue().getProgrss() == 0) {
continue;
}
resultRewardId = entry.getValue().getProgrss();
ActivityProgressInfo progress = new ActivityProgressInfo();
progress.setProgrss(entry.getValue().getProgrss());
activityMission.updateProgressInfo(locationId + BlessInfoConfig.START_CAPACITY, progress);
activityMission.updateProgressInfo(entry.getKey(), new ActivityProgressInfo());
break;
}
}
LOGGER.info("本次抽取的Id为{}", resultRewardId);
Map<Integer, SBlessingRewardPool> poolMap = STableManager.getConfig(SBlessingRewardPool.class);
int[][] dropItem = new int[1][];
for (Integer count : SBlessingConfig.blessingConfigMap.get(blessActivityId).getCounts()) {
if (count != activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()) {
continue;
}
dropItem = new int[2][];
dropItem[1] = poolMap.get(activityProgressInfoMap.get(BlessInfoConfig.COUNT_REWARD_START_ID + count).getProgrss()).getReward();
break;
}
int[] reward = poolMap.get(resultRewardId).getReward();
dropItem[0] = reward;
CommonProto.Drop.Builder drop = ItemUtil.dropPer(user, dropItem, BIReason.BLESS_REWARD);
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() + 1, 0));
// if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() == BlessInfoConfig.START_CAPACITY + 1) {
// if (SBlessingConfig.sBlessingConfig.getIsRefresh() != 0) {
// blessRefresh(user);
// }
// }
PlayerInfoProto.blessChooseResponse response = PlayerInfoProto.blessChooseResponse.newBuilder().setReward(drop).setChooseRewardId(resultRewardId).build();
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true);
}
//云梦请求数据
public void blessInfo(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
User user = UserManager.getUser(session.getUid());
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId());
int blessActivityId = getBlessActivityId(user);
if(blessActivityId==0){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(blessActivityId);
if (activityMission == null) {
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
@ -816,11 +935,24 @@ public class ActivityLogic {
public void blessSaveOptionalReward(ISession session, int[] rewardIds, MessageTypeProto.MessageType messageType) throws Exception {
User user = UserManager.getUser(session.getUid());
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId());
// for(Map.Entry<Integer,SBlessingConfig> entry:SBlessingConfig.blessingConfigMap.entrySet()){
//
// int activityOpenState = getActivityOpenState(user, entry.getKey());
// if(activityOpenState==ActivityType.OPEN_STATE){
// blessingConfig = entry.getValue();
// continue;
// }
// }
int blessActivityId = getBlessActivityId(user);
if(blessActivityId==0){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
SBlessingConfig blessingConfig =SBlessingConfig.blessingConfigMap.get(blessActivityId) ;
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(blessActivityId);
if (activityMission.getActivityProgressInfoMap().get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() != 0) {
throw new ErrorCodeException(ErrorCode.newDefineCode("您当前不能进行保存"));
}
if (SBlessingConfig.sBlessingConfig.getRandomNum() != BlessInfoConfig.START_CAPACITY - rewardIds.length) {
if (blessingConfig.getRandomNum() != BlessInfoConfig.START_CAPACITY - rewardIds.length) {
throw new ErrorCodeException(ErrorCode.newDefineCode("选择数量不对"));
}
for (int i = 0; i < rewardIds.length; i++) {
@ -836,108 +968,6 @@ public class ActivityLogic {
MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true);
}
/**
*
*
* @param session
* @param locationId
* @param messageType
* @throws Exception
*/
public void blessChoose(ISession session, int locationId, MessageTypeProto.MessageType messageType) throws Exception {
User user = UserManager.getUser(session.getUid());
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId());
if (activityMission == null) {
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap();
if (activityProgressInfoMap.get(locationId + BlessInfoConfig.START_CAPACITY).getProgrss() != 0) {
throw new ErrorCodeException(ErrorCode.newDefineCode("已经抽过改格子"));
}
int resultRewardId = 0;
if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() == -1) {
Map<Integer, SBlessingRewardPool> poolMap = STableManager.getConfig(SBlessingRewardPool.class);
int[][] result = new int[BlessInfoConfig.START_CAPACITY][];
int index = 0;
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityProgressInfoMap.entrySet()) {
if (entry.getKey() > BlessInfoConfig.START_CAPACITY) {
continue;
}
int[] temp = new int[2];
temp[0] = entry.getValue().getProgrss();
temp[1] = poolMap.get(entry.getValue().getProgrss()).getExtractWeight();
result[index] = temp;
index++;
}
int[] order = MathUtils.randomFromWeightWithTaking(result, BlessInfoConfig.START_CAPACITY);
for (int i = 0; i < order.length; i++) {
LOGGER.info("获取顺序{}", order[i]);
}
index = 0;
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityProgressInfoMap.entrySet()) {
if (entry.getKey() > BlessInfoConfig.START_CAPACITY) {
continue;
}
ActivityProgressInfo progress = new ActivityProgressInfo();
progress.setProgrss(order[index]);
activityMission.updateProgressInfo(entry.getKey(), progress);
index++;
}
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo(1, 0));
}
//检验消耗道具
int[][] costConfig = SBlessingConfig.sBlessingConfig.getCost();
int[][] cost = new int[1][];
int[] temp = new int[2];
temp[0] = costConfig[0][0];
temp[1] = (int) MathUtils.calABX(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss(), costConfig[1]);
cost[0] = temp;
LOGGER.info("本次为第{}次抽取,消耗{}个数为{}", activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss(), temp[0], temp[1]);
boolean costResult = ItemUtil.itemCost(user, cost, BIReason.BLESS_CHOOSE_CONSUME, 1);
if (!costResult) {
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() > 0) {
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityProgressInfoMap.entrySet()) {
if (entry.getKey() > BlessInfoConfig.START_CAPACITY) {
continue;
}
if (entry.getValue().getProgrss() == 0) {
continue;
}
resultRewardId = entry.getValue().getProgrss();
ActivityProgressInfo progress = new ActivityProgressInfo();
progress.setProgrss(entry.getValue().getProgrss());
activityMission.updateProgressInfo(locationId + BlessInfoConfig.START_CAPACITY, progress);
activityMission.updateProgressInfo(entry.getKey(), new ActivityProgressInfo());
break;
}
}
LOGGER.info("本次抽取的Id为{}", resultRewardId);
Map<Integer, SBlessingRewardPool> poolMap = STableManager.getConfig(SBlessingRewardPool.class);
int[][] dropItem = new int[1][];
for (Integer count : SBlessingConfig.sBlessingConfig.getCounts()) {
if (count != activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()) {
continue;
}
dropItem = new int[2][];
dropItem[1] = poolMap.get(activityProgressInfoMap.get(BlessInfoConfig.COUNT_REWARD_START_ID + count).getProgrss()).getReward();
break;
}
int[] reward = poolMap.get(resultRewardId).getReward();
dropItem[0] = reward;
CommonProto.Drop.Builder drop = ItemUtil.dropPer(user, dropItem, BIReason.BLESS_REWARD);
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() + 1, 0));
// if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() == BlessInfoConfig.START_CAPACITY + 1) {
// if (SBlessingConfig.sBlessingConfig.getIsRefresh() != 0) {
// blessRefresh(user);
// }
// }
PlayerInfoProto.blessChooseResponse response = PlayerInfoProto.blessChooseResponse.newBuilder().setReward(drop).setChooseRewardId(resultRewardId).build();
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true);
}
// /**
// * 云梦手动刷新
// *

View File

@ -22,7 +22,7 @@ public interface ActivityType {
int FirstRecharge = 4; //首充
int RechargeTotal = 5; //累计充值
int GrowthFund = 6; //成长基金
int BLESSACTIVITY = 7;
int BLESSACTIVITY = 7;//云梦祈福
int TREASURE = 8; //孙龙的宝藏
int LUCKYCAT = 9;//招財貓
int SERVERHAPPY = 10; //七日狂欢

View File

@ -1,11 +1,23 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.handler.activity.BlessInfoConfig;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.dao.ActivityManager;
import com.ljsd.jieling.logic.dao.ActivityMission;
import com.ljsd.jieling.logic.dao.ActivityProgressInfo;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import config.SBlessingConfig;
import config.SBlessingRewardPool;
import config.SGlobalActivity;
@ -39,17 +51,21 @@ public class BlessActivity extends AbstractActivity {
* @return
*/
private ActivityMission blessInfoInit(ActivityManager activityManager, int activityId) {
SBlessingConfig sBlessingConfig = SBlessingConfig.blessingConfigMap.get(activityId);
if(sBlessingConfig==null){
return null;
}
//第一次9种
int fixRewardPool = SBlessingConfig.sBlessingConfig.getRandomPoolId();
int fixRewardNum = SBlessingConfig.sBlessingConfig.getRandomNum();
int fixRewardPool = sBlessingConfig.getRandomPoolId();
int fixRewardNum = sBlessingConfig.getRandomNum();
List<int[]> fixRewardArray = new ArrayList<>();
//第二次6,6种
int legendPool = SBlessingConfig.sBlessingConfig.getLegendPoolId();
int legendNum = SBlessingConfig.sBlessingConfig.getLegendNum();
int legendPool = sBlessingConfig.getLegendPoolId();
int legendNum = sBlessingConfig.getLegendNum();
List<int[]> legendRewardArray = new ArrayList<>();
int supremePool = SBlessingConfig.sBlessingConfig.getSupremePoolId();
int supremeNum = SBlessingConfig.sBlessingConfig.getSupremeNum();
int supremePool = sBlessingConfig.getSupremePoolId();
int supremeNum = sBlessingConfig.getSupremeNum();
List<int[]> supremeRewardArray = new ArrayList<>();
for (Map.Entry<Integer, SBlessingRewardPool> entry : STableManager.getConfig(SBlessingRewardPool.class).entrySet()) {
@ -62,8 +78,8 @@ public class BlessActivity extends AbstractActivity {
}
}
//第三次次数奖励6个
int[] countPool = SBlessingConfig.sBlessingConfig.getCopuntsPoolId();
int[] counts = SBlessingConfig.sBlessingConfig.getCounts();
int[] countPool = sBlessingConfig.getCopuntsPoolId();
int[] counts = sBlessingConfig.getCounts();
int[] countResult = new int[counts.length];
int countIndex = 0;
for (Integer cpool : countPool) {

View File

@ -19,6 +19,7 @@ import com.ljsd.jieling.util.MessageUtil;
import config.SActivityRewardConfig;
import config.SGlobalActivity;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -79,9 +80,12 @@ public class NewWelfareActivity extends AbstractActivity {
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
}
for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){
activityProgressInfo.setState(2);
for(Map.Entry<Integer,ActivityProgressInfo> item: activityProgressInfoMap.entrySet()){
item.getValue().setState(2);
activityMission.updateProgressInfo(item.getKey(),item.getValue());
}
sendActivityProgress(session, activityMission, null);
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfigs.get(0).getReward(), BIReason.TAKE_ACTIVITY_REWARD);
@ -107,6 +111,12 @@ public class NewWelfareActivity extends AbstractActivity {
for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){
activityProgressInfo.setState(2);
}
for(Map.Entry<Integer,ActivityProgressInfo> item: activityProgressInfoMap.entrySet()){
item.getValue().setState(2);
activityMission.updateProgressInfo(item.getKey(),item.getValue());
}
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
itemAttrs.add(sActivityRewardConfigs.get(0).getReward());
}

View File

@ -34,6 +34,7 @@ public class EquipManager extends MongoBase {
}
public void addEquip(User user,Equip equip) throws Exception {
equip.init(this.getRootId(),getMongoKey() + ".equipMap." + equip.getId());
updateString("equipMap." + equip.getId(), equip);
equipMap.put(equip.getId(),equip);
// addEquipHandBook(equip.getEquipId());
@ -42,6 +43,7 @@ public class EquipManager extends MongoBase {
}
public void addEspecialEquip(User user,EspecialEquip especialEquip){
especialEquip.init(this.getRootId(),getMongoKey() + ".especialEquipMap." + especialEquip.getId());
updateString("especialEquipMap." + especialEquip.getId(), especialEquip);
addEquipHandBook(especialEquip.getEquipId());
especialEquipMap.put(especialEquip.getId(), especialEquip);

View File

@ -453,7 +453,9 @@ public class GuildLogic {
case 2: //全部拒绝
Family.RefuseJoinFamily refuse = Family.RefuseJoinFamily.newBuilder().setName(guildInfo.getName()).build();
for(Map.Entry<Integer, GuildApply> entry:applyGuild.entrySet()){
MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(applyId),1, MessageTypeProto.MessageType.FAMILY_REFUSE_JOIN_INDICATION_VALUE,refuse,true);
if(OnlineUserManager.checkUidOnline(applyId)){
MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(applyId),1, MessageTypeProto.MessageType.FAMILY_REFUSE_JOIN_INDICATION_VALUE,refuse,true);
}
GuilidManager.removeOneApplyGuildInfos(entry.getValue().getGuildId(),entry.getValue().getId());
}
break;

View File

@ -204,6 +204,7 @@ public class CombatLogic {
if(adventureFastReward.get(1).getItemlistCount()==0){
throw new ErrorCodeException(ErrorCode.REWARD_COLLECTING);
}
user.getUserMissionManager().onGameEvent(user,GameEvent.ADVENTURE_TAKEREWARD,1);
}else{
String err ="";
if(position == 0){
@ -231,7 +232,7 @@ public class CombatLogic {
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
result.put(1,baseBuilder.build());
result.put(2,randomBuilder.build());
user.getUserMissionManager().onGameEvent(user,GameEvent.ADVENTURE_TAKEREWARD,1);
return result;
}

View File

@ -382,6 +382,7 @@ public class FriendLogic {
User friendUser;
FriendManager friendfriendManager;
List<Integer> friendFriendList;
List<Integer> alreadyFriendList = new ArrayList<>();
int nums =0;
for (Integer applyfriendId :applyFriends){
friendUser = UserManager.getUser(applyfriendId);
@ -393,20 +394,27 @@ public class FriendLogic {
if(friendManager.getBlackFriends().contains(applyfriendId)){
continue;
}
if (friends.size() >= maxFriends){
if (friends.size()+1> maxFriends){
// throw new ErrorCodeException(ErrorCode.FRIENDS_MAX);
continue;
}
if (friendFriendList.size() >= maxFriends){
if (friendFriendList.size()>= maxFriends){
continue;
}
friendManager.setApplyFriends(new CopyOnWriteArrayList<>());
alreadyFriendList.add(applyfriendId);
// friendManager.delApplyFriend(applyfriendId);
friendfriendManager.addFriendId(uid);
friendManager.addFriendId(applyfriendId);
UserManager.getUser(applyfriendId).getFriendManager().delMyApplyFriend(uid);
initFriendGriveAndRreward(applyfriendId, uid, friendManager, friendfriendManager);
sendFriendInfoIndication(uid,applyfriendId,2);
nums++;
updateFriendUserInfo(friendUser);
nums++;
}
if(!alreadyFriendList.isEmpty()){
for(Integer id:alreadyFriendList){
friendManager.delApplyFriend(id);
}
}
return nums;
}
@ -587,6 +595,7 @@ public class FriendLogic {
takeTimes++;
rewardStr = reward.toString();
}else{
int i=0;
for (Integer friend : friends) {
if (!haveRewardMap.containsKey(friend)) {
continue;
@ -594,9 +603,11 @@ public class FriendLogic {
if (haveRewardMap.containsKey(friend) && haveRewardMap.get(friend) != 1) {
continue;
}
check = playerInfoManager.check(STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1);
if(!check){
break;
if(i++>0){
check = playerInfoManager.check(STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1);
if(!check){
break;
}
}
playerInfoManager.updateVipPrivilage(STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(),1);
friendManager.updateHaveRewardMap(friend,2);
@ -604,7 +615,10 @@ public class FriendLogic {
receieveFriends.add(friend);
takeTimes++;
}
rewardStr = reward.toString().substring(0,reward.toString().length()-1);
if(reward.length()!=0){
rewardStr = reward.toString().substring(0,reward.toString().length()-1);
}
}
if (StringUtil.isEmpty(rewardStr)){

View File

@ -732,9 +732,9 @@ public class HeroLogic{
// recyleHeroBySystem(user,removeHeroIds);
targetHero.upStar( 1 );
Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getStar()));
if(targetHero.getStar()==5){
Poster.getPoster().dispatchEvent(new HeroFiveStarGetEvent(user.getId()));
}
// if(targetHero.getStar()==5){
// Poster.getPoster().dispatchEvent(new HeroFiveStarGetEvent(user.getId()));
// }
targetHero.setStarBreakId(scHeroRankUpConfig.getId());
user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,2,targetHero.getTemplateId(),targetHero.getStar());
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,baseBuilder.build(),true);

View File

@ -207,11 +207,15 @@ public class MailLogic {
if (mail == null){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
if(mail.getState() == Global.MAIL_DRAW_ST_GOT){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
if (mailItem.length() == 0){
mailItem = new StringBuilder(mail.getMailItem());
}else{
mailItem.append("|").append(mail.getMailItem());
}
}
if(mailItem.length()==0){
throw new ErrorCodeException(ErrorCode.MAIL_NO_REWARD);
@ -223,9 +227,6 @@ public class MailLogic {
}
for (String mailId : mailIdsList){
Mail mail = mailManager.getMail(mailId);
if (mail == null){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
mail.setState(Global.MAIL_DRAW_ST_GOT);
// mail.setMailItem("");
mail.setNoUseDeleteTime(TimeUtils.now()+TimeUtils.DAY*Global.MAIL_NOUSE_DELETE_TIME);

View File

@ -500,7 +500,9 @@ public class PlayerLogic {
}
public void getOneTeamInfo(ISession session, int id,int teamId,MessageTypeProto.MessageType messageType) throws Exception {
if(id==0){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(id);
if(sArenaRobotConfig!=null){
getRobotTeamInfo(session,sArenaRobotConfig,messageType);

View File

@ -416,7 +416,7 @@ public class CBean2Proto {
.setAnnouce(guildInfo.getAnnounce())
.setName(guildInfo.getName())
.setJoinType(guildInfo.getJoinType())
.setMaxNum(30)
.setMaxNum(STableManager.getConfig(SGuildLevelConfig.class).get(guildInfo.getLevel()).getNum())
.setLevelTime(guildInfo.getLevelTime())
.setLevle(guildInfo.getLevel())
.setExp(guildInfo.getExp())

View File

@ -1,10 +1,14 @@
package com.ljsd.jieling.util;
import com.ljsd.jieling.config.clazzStaticCfg.MapStaticConfig;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.protocols.CommonProto;
import config.SMonsterConfig;
import config.SMonsterGroup;
import manager.STableManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.HashMap;
@ -15,10 +19,16 @@ import java.util.concurrent.CopyOnWriteArrayList;
public class MonsterUtil {
public static Map<Integer, List<CommonProto.FightUnitInfo>> getMonsterByGroup(int groupId){
private static final Logger LOGGER = LoggerFactory.getLogger(MonsterUtil.class);
public static Map<Integer, List<CommonProto.FightUnitInfo>> getMonsterByGroup(int groupId) {
SMonsterGroup sMonsterGroup = SMonsterGroup.getsMonsterGroupMap().get(groupId);
int[][] groupIds = sMonsterGroup.getContents();
Map<Integer, List<CommonProto.FightUnitInfo>> map = new ConcurrentHashMap<>();
if(sMonsterGroup==null){
LOGGER.info("{}怪物组为空",groupId);
return map;
}
int[][] groupIds = sMonsterGroup.getContents();
Map<Integer, CommonProto.FightUnitInfo> monsterMap = STableManager.getFigureConfig(MapStaticConfig.class).getMonsterMap();
for (int i = 0; i < groupIds.length; i++) {
int[] monsterIds = groupIds[i];

View File

@ -3,6 +3,10 @@ package config;
import manager.STableManager;
import manager.Table;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Stream;
@Table(name ="BlessingConfig")
public class SBlessingConfig implements BaseConfig {
@ -38,11 +42,17 @@ public class SBlessingConfig implements BaseConfig {
private int countsNum;
public static SBlessingConfig sBlessingConfig;
public static Map<Integer,SBlessingConfig> sBlessingConfig;
public static Map<Integer,SBlessingConfig> blessingConfigMap;
@Override
public void init() throws Exception {
sBlessingConfig = STableManager.getConfig(SBlessingConfig.class).get(1);
sBlessingConfig = STableManager.getConfig(SBlessingConfig.class);
blessingConfigMap = new HashMap<>();
for(Map.Entry<Integer,SBlessingConfig> blessingConfigEntry:sBlessingConfig.entrySet()){
blessingConfigMap.put(blessingConfigEntry.getValue().getActivityId(),blessingConfigEntry.getValue());
}
}