社稷大典代码提交
parent
6e7465f17d
commit
210f4a1529
|
@ -663,6 +663,17 @@ public class TimeUtils {
|
|||
return _calendar.getTimeInMillis() + addTime;
|
||||
}
|
||||
|
||||
|
||||
public static long getDayTimeWithHour(long time,int hour, int mintue) {
|
||||
Calendar _calendar = Calendar.getInstance();
|
||||
_calendar.setTimeInMillis(time);
|
||||
_calendar.set(Calendar.HOUR_OF_DAY, hour);
|
||||
_calendar.set(Calendar.MINUTE, mintue);
|
||||
_calendar.set(Calendar.SECOND, 0);
|
||||
_calendar.set(Calendar.MILLISECOND, 0);
|
||||
return _calendar.getTimeInMillis();
|
||||
}
|
||||
|
||||
// public static void main(String[] args) throws Exception {
|
||||
// Date now = new Date();
|
||||
// LOGGER.info("date:" + now);
|
||||
|
|
|
@ -235,6 +235,8 @@ public class RedisKey {
|
|||
public static final String SITUATION_RANK = "SITUATION_RANK";
|
||||
|
||||
public static final String GUILD_CHALLENGE_RANK = "GUILD_CHALLENGE_RANK";
|
||||
public static final String GUILD_SHEJI_SOCRE_USER_RANK = "GUILD_SHEJI_SOCRE_USER_RANK";
|
||||
public static final String GUILD_SHEJI_SCORE_RANK = "GUILD_SHEJI_SCORE_RANK";
|
||||
|
||||
|
||||
public static final String DEATH_PAHT_TOTAL_CHALLENGE_COUNT = "DEATH_PAHT_TOTAL_CHALLENGE_COUNT";
|
||||
|
|
|
@ -152,7 +152,9 @@ public enum ErrorCode implements IErrorCode {
|
|||
DAILY_NO_OPEN(118,"进入副本条件不足"),
|
||||
HAD_TAKE_REWARD(124,"奖励已领取"),
|
||||
|
||||
|
||||
HAD_TAKE(125, "已领取"),
|
||||
NOT_IN_TAKE_TIME(126, "不在领取期间"),
|
||||
USER_LEVE_DOWN(127,"玩家等级不够"),
|
||||
SERVER_DEFINE_SELF(20000,"操作失败")
|
||||
|
||||
;
|
||||
|
|
|
@ -151,6 +151,9 @@ public interface BIReason {
|
|||
int JOURNEY_FIGHT_REWARD = 84;//逍遥游击杀boss奖励
|
||||
int JOURNEY_RANDOM_REWARD = 85;//逍遥游转盘奖励
|
||||
int SERVER_UPDATE_REWARD = 86;//服务器更新添加初始化道具
|
||||
int SHEJI_ACTIVITY = 87;//社稷大典
|
||||
|
||||
|
||||
|
||||
int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级
|
||||
int SECRETBOX_CONSUME = 1001;//秘盒抽卡
|
||||
|
@ -273,6 +276,8 @@ public interface BIReason {
|
|||
int JOURNEY_FIGHT_CONSUME = 1066;//逍遥游攻击boss消耗
|
||||
int JOURNEY_DO_CONSUME = 1067;//逍遥游摇骰子消耗
|
||||
|
||||
int SHEJI_CONSUME = 1068; //社稷大典贡献
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,116 @@
|
|||
package com.ljsd.jieling.handler.activity;
|
||||
|
||||
import com.google.protobuf.GeneratedMessage;
|
||||
import com.ljsd.jieling.core.Lockeys;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
|
||||
import com.ljsd.jieling.logic.activity.event.CommitSheJiEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.rank.RankContext;
|
||||
import com.ljsd.jieling.logic.rank.RankEnum;
|
||||
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
|
||||
import com.ljsd.jieling.protocols.ActivityProto;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.Family;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import config.SGlobalActivity;
|
||||
import config.SGodSacrificeSetting;
|
||||
import manager.STableManager;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Description: 社稷大典
|
||||
* Author: zsx
|
||||
* CreateDate: 2020/10/21 19:51
|
||||
*/
|
||||
public class CommitShejiActivityItemRequestHandler extends BaseHandler<ActivityProto.CommitShejiActivityItemRequest> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeneratedMessage processWithProto(int uid, ActivityProto.CommitShejiActivityItemRequest proto) throws Exception {
|
||||
|
||||
User user = UserManager.getUser(uid);
|
||||
if (user == null)
|
||||
throw new ErrorCodeException(ErrorCode.UNKNOWN);
|
||||
//check guild
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
if (guildId == 0) {
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO);
|
||||
}
|
||||
|
||||
int level = user.getPlayerInfoManager().getLevel();
|
||||
if (level<50) {
|
||||
throw new ErrorCodeException(ErrorCode.USER_LEVE_DOWN);
|
||||
}
|
||||
|
||||
//lock all
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
||||
sendUids.addAll(items);
|
||||
}
|
||||
Lockeys.getLockeys().lock("guild", sendUids);
|
||||
|
||||
//check activity open
|
||||
// boolean b = ActivityLogic.getInstance().checkActivityOpen(user, ActivityTypeEnum.SHEJI_ACTIVITY.getType());
|
||||
// if(!b){
|
||||
//
|
||||
// }
|
||||
|
||||
Set<Integer> openActivityIdsByType = ActivityLogic.getInstance().getOpenActivityIdsByType(user, ActivityTypeEnum.SHEJI_ACTIVITY.getType(), true);
|
||||
if(openActivityIdsByType.size()==0){
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
|
||||
HashMap<Integer,Integer> consumeOnce = new HashMap<>();
|
||||
|
||||
consumeOnce.put(proto.getItemId(),proto.getItemNum());
|
||||
|
||||
if(!ItemUtil.checkCost(user,consumeOnce)){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
|
||||
boolean enough = ItemUtil.itemCost(user, consumeOnce, BIReason.SHEJI_CONSUME, uid);
|
||||
if(!enough){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
|
||||
SGodSacrificeSetting sGodSacrificeSetting = STableManager.getConfig(SGodSacrificeSetting.class).get(1);
|
||||
if(null==sGodSacrificeSetting){
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||
}
|
||||
int index = SGodSacrificeSetting.exchangeRate.getOrDefault(proto.getItemId(),-1);
|
||||
if(index == -1){
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||
}
|
||||
int score = proto.getItemNum()*sGodSacrificeSetting.getRewardItemChangRate()[index];
|
||||
int[][] _result = new int[1][2];
|
||||
_result[0][0]=sGodSacrificeSetting.getActivityMoney();
|
||||
_result[0][1]= sGodSacrificeSetting.getRewardItemChangRate()[index+3]*proto.getItemNum();
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, _result, BIReason.SHEJI_ACTIVITY);
|
||||
guildInfo.setGuildSheJiScore(score+guildInfo.getGuildSheJiScore());
|
||||
Poster.getPoster().dispatchEvent(new CommitSheJiEvent(guildId,uid,score));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return ActivityProto.CommitShejiActivityItemResponse.newBuilder().setDrop(drop).build();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,111 @@
|
|||
package com.ljsd.jieling.handler.activity;
|
||||
|
||||
import com.google.protobuf.GeneratedMessage;
|
||||
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.globals.BIReason;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.AbstractActivity;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
|
||||
import com.ljsd.jieling.logic.activity.event.GetSheJiAwardEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.GlobalSystemControl;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.ActivityProto;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import config.SGlobalActivity;
|
||||
import config.SGodSacrificeSetting;
|
||||
import manager.STableManager;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Description: des
|
||||
* Author: zsx
|
||||
* CreateDate: 2020/10/22 9:39
|
||||
*/
|
||||
public class GetShejiAwardRequestHandler extends BaseHandler<ActivityProto.GetShejiAwardRequest> {
|
||||
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeneratedMessage processWithProto(int uid, ActivityProto.GetShejiAwardRequest proto) throws Exception {
|
||||
|
||||
//checkActivity
|
||||
User user = UserManager.getUser(uid);
|
||||
if (user == null)
|
||||
throw new ErrorCodeException(ErrorCode.UNKNOWN);
|
||||
AbstractActivity activityType = ActivityTypeEnum.getActicityType(proto.getActivityId());
|
||||
if(activityType==null){
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(proto.getActivityId());
|
||||
if(activityMission==null){
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
SGodSacrificeSetting sGodSacrificeSetting = STableManager.getConfig(SGodSacrificeSetting.class).get(1);
|
||||
if(null==sGodSacrificeSetting){
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//check time
|
||||
List<Integer> list1 = Arrays.stream(sGodSacrificeSetting.getTimePointList()).boxed().collect(Collectors.toList());
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||
if(!list1.contains(hour)){
|
||||
throw new ErrorCodeException(ErrorCode.NOT_IN_TAKE_TIME);
|
||||
}
|
||||
boolean isInTime=false;
|
||||
for (int i = 0; i <list1.size() ; i++) {
|
||||
Integer integer = list1.get(i);
|
||||
long dayTimeWithHour = TimeUtils.getDayTimeWithHour(System.currentTimeMillis(), integer, 0);
|
||||
long dayTimeWithHourTime = TimeUtils.getDayTimeWithHour(System.currentTimeMillis(), integer, sGodSacrificeSetting.getLastTime());
|
||||
long timeInMillis = calendar.getTimeInMillis();
|
||||
|
||||
if(timeInMillis>=dayTimeWithHour&&timeInMillis<=dayTimeWithHourTime){
|
||||
isInTime=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!isInTime){
|
||||
throw new ErrorCodeException(ErrorCode.NOT_IN_TAKE_TIME);
|
||||
}
|
||||
//check take
|
||||
GlobalSystemControl globalSystemControl = MongoUtil.getInstence().getMyMongoTemplate().findById(GameApplication.serverId, GlobalSystemControl.class);
|
||||
Integer integer = globalSystemControl.getActivityOpenValue().get(proto.getActivityId());
|
||||
int v = activityMission.getV();
|
||||
if(v==integer){
|
||||
throw new ErrorCodeException(ErrorCode.HAD_TAKE);
|
||||
}
|
||||
|
||||
activityMission.setV(integer);
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
activityType.sendActivityProgress(sessionByUid, activityMission, null);
|
||||
int[] dropList = new int[1];
|
||||
dropList[0]=sGodSacrificeSetting.getTimeRewardGroup();
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropList,1,0, BIReason.SHEJI_ACTIVITY);
|
||||
Poster.getPoster().dispatchEvent(new GetSheJiAwardEvent(uid));
|
||||
return ActivityProto.GetShejiAwardResponse.newBuilder().setDrop(drop).build();
|
||||
}
|
||||
}
|
|
@ -340,7 +340,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
*
|
||||
* @param filterMissId miss过滤
|
||||
*/
|
||||
void sendActivityProgress(ISession session, ActivityMission activityMission, Set<Integer> filterMissId) {
|
||||
public void sendActivityProgress(ISession session, ActivityMission activityMission, Set<Integer> filterMissId) {
|
||||
PlayerInfoProto.ActivityUpateProgressIndication.Builder builder = PlayerInfoProto.ActivityUpateProgressIndication.newBuilder();
|
||||
builder.setActivityInfo(CommonProto.ActivityInfo.newBuilder().setValue(activityMission.getV()).addAllMission(getAllMissInfo(activityMission, filterMissId)).setActivityId(id));
|
||||
if (session != null) {
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
|
@ -14,11 +13,11 @@ import com.ljsd.jieling.jbean.ActivityManager;
|
|||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.jbean.LuckWheelMission;
|
||||
import com.ljsd.jieling.ktbeans.ReportEventEnum;
|
||||
import com.ljsd.jieling.ktbeans.ReportUtil;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||
import com.ljsd.jieling.logic.dao.SecretBoxManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||
|
@ -28,7 +27,10 @@ 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.*;
|
||||
import com.ljsd.jieling.util.InnerMessageUtil;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import com.ljsd.jieling.util.ToolsUtil;
|
||||
import config.*;
|
||||
import manager.STableManager;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -602,7 +604,7 @@ public class ActivityLogic implements IEventHandler{
|
|||
}
|
||||
}
|
||||
|
||||
private Set<Integer> getOpenActivityIdsByType(User user, int activityType,boolean withState) {
|
||||
public Set<Integer> getOpenActivityIdsByType(User user, int activityType,boolean withState) {
|
||||
Set<Integer> ids = new HashSet<>();
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
Map<Integer, ActivityMission> activityMissionMap = activityManager.getActivityMissionMap();
|
||||
|
@ -820,20 +822,25 @@ public class ActivityLogic implements IEventHandler{
|
|||
|
||||
|
||||
public void checkSecretBoxSeason() {
|
||||
long now = TimeUtils.now();
|
||||
int newSecretBoxSeasonTimes = 0;
|
||||
for (SDifferDemonsBoxSetting sDifferDemonsBoxSetting : SDifferDemonsBoxSetting.getConfig().values()) {
|
||||
long seasonStartLong = sDifferDemonsBoxSetting.getSeasonStartLong();
|
||||
long seasonEndLong = sDifferDemonsBoxSetting.getSeasonEndLong();
|
||||
if (now >= seasonStartLong && now <= seasonEndLong) {
|
||||
newSecretBoxSeasonTimes = sDifferDemonsBoxSetting.getSeasonTimes();
|
||||
break;
|
||||
try {
|
||||
|
||||
long now = TimeUtils.now();
|
||||
int newSecretBoxSeasonTimes = 0;
|
||||
for (SDifferDemonsBoxSetting sDifferDemonsBoxSetting : SDifferDemonsBoxSetting.getConfig().values()) {
|
||||
long seasonStartLong = sDifferDemonsBoxSetting.getSeasonStartLong();
|
||||
long seasonEndLong = sDifferDemonsBoxSetting.getSeasonEndLong();
|
||||
if (now >= seasonStartLong && now <= seasonEndLong) {
|
||||
newSecretBoxSeasonTimes = sDifferDemonsBoxSetting.getSeasonTimes();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(newSecretBoxSeasonTimes!=secretBoxSeasonTimes){
|
||||
secretBoxSeasonTimes = newSecretBoxSeasonTimes;
|
||||
PlayerInfoProto.UpdateSecretBoxSeasonIndication build = PlayerInfoProto.UpdateSecretBoxSeasonIndication.newBuilder().setNewSeasonId(newSecretBoxSeasonTimes).build();
|
||||
MessageUtil.sendAllOnlineUserMsg(MessageTypeProto.MessageType.UPDATE_SECRET_BOX_SEASON_INDICATION_VALUE,build);
|
||||
if(newSecretBoxSeasonTimes!=secretBoxSeasonTimes){
|
||||
secretBoxSeasonTimes = newSecretBoxSeasonTimes;
|
||||
PlayerInfoProto.UpdateSecretBoxSeasonIndication build = PlayerInfoProto.UpdateSecretBoxSeasonIndication.newBuilder().setNewSeasonId(newSecretBoxSeasonTimes).build();
|
||||
MessageUtil.sendAllOnlineUserMsg(MessageTypeProto.MessageType.UPDATE_SECRET_BOX_SEASON_INDICATION_VALUE,build);
|
||||
}
|
||||
}catch (Exception e){
|
||||
LOGGER.error("Exception::=>{}",e.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1345,4 +1352,26 @@ public class ActivityLogic implements IEventHandler{
|
|||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
}
|
||||
|
||||
|
||||
//检查活动是否开启
|
||||
public boolean checkActivityOpen(User user, int activityType) {
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
Map<Integer, ActivityMission> activityMissionMap = activityManager.getActivityMissionMap();
|
||||
for (Map.Entry<Integer, ActivityMission> item : activityMissionMap.entrySet()) {
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(item.getKey());
|
||||
int targetActivityType = sGlobalActivity.getType();
|
||||
if (targetActivityType == activityType) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查绝对时间 和相对开服时间活动是否开启
|
||||
*/
|
||||
public boolean checkGlobleActivityOpen(int activityId){
|
||||
return openActivityIds.contains(activityId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -77,4 +77,5 @@ public interface ActivityType {
|
|||
int JADE_DYNASTY_RARE_SHOP = 20002;//破阵诛仙珍奇宝阁
|
||||
int ITEMS_STORE= 6000;//百宝商会
|
||||
int TRIAL_EXPERT = 70;//幻境达人
|
||||
int SHEJI_ACTIVITY = 60;//社稷大典
|
||||
}
|
||||
|
|
|
@ -57,7 +57,8 @@ public enum ActivityTypeEnum {
|
|||
JADE_DYNASTY_SHOP(ActivityType.JADE_DYNASTY_SHOP, DefaultEmptyActivity::new),
|
||||
JADE_DYNASTY_RARE_SHOP(ActivityType.JADE_DYNASTY_RARE_SHOP, DefaultEmptyActivity::new),
|
||||
ITEMS_STORE(ActivityType.ITEMS_STORE, DefaultEmptyActivity::new),
|
||||
TRIAL_EXPERT(ActivityType.TRIAL_EXPERT,TrialExpectRankActivity::new)
|
||||
TRIAL_EXPERT(ActivityType.TRIAL_EXPERT,TrialExpectRankActivity::new),
|
||||
SHEJI_ACTIVITY(ActivityType.SHEJI_ACTIVITY,SheJiActivity::new),
|
||||
|
||||
;
|
||||
private int type;
|
||||
|
|
|
@ -119,6 +119,9 @@ public class PlayerManager extends MongoBase {
|
|||
|
||||
private String ip;
|
||||
|
||||
private int sheJiOpenTime;
|
||||
|
||||
|
||||
private Map<Integer,Integer> situationPass = new HashMap<>();
|
||||
|
||||
|
||||
|
@ -798,4 +801,13 @@ public class PlayerManager extends MongoBase {
|
|||
this.situationPass = situationPass;
|
||||
updateString("situationPass",situationPass);
|
||||
}
|
||||
|
||||
public int getSheJiOpenTime() {
|
||||
return sheJiOpenTime;
|
||||
}
|
||||
|
||||
public void setSheJiOpenTime(int sheJiOpenTime) {
|
||||
updateString("sheJiOpenTime",sheJiOpenTime);
|
||||
this.sheJiOpenTime = sheJiOpenTime;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,6 +65,7 @@ public class GuildInfo extends MongoBase {
|
|||
private int buffOverTime;
|
||||
|
||||
private int nextChallengeMessageTime;
|
||||
private int guildSheJiScore;
|
||||
|
||||
public GuildInfo() {
|
||||
setRootCollection(_COLLECTION_NAME);
|
||||
|
@ -323,4 +324,15 @@ public class GuildInfo extends MongoBase {
|
|||
updateString("nextChallengeMessageTime",nextChallengeMessageTime);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public int getGuildSheJiScore() {
|
||||
return guildSheJiScore;
|
||||
}
|
||||
|
||||
public void setGuildSheJiScore(int guildSheJiScore) {
|
||||
updateString("guildSheJiScore",guildSheJiScore);
|
||||
this.guildSheJiScore = guildSheJiScore;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -372,6 +372,8 @@ public class GuildLogic {
|
|||
}finally {
|
||||
RedisUtil.getInstence().releaseDistributedLock(RedisKey.OPERATE_FAMILY,Integer.toString(guildId), Integer.toString(uid));
|
||||
}
|
||||
//社稷大典需要初始化分数
|
||||
Poster.getPoster().dispatchEvent(new CommitSheJiEvent(guildId,uid,0));
|
||||
RedisUtil.getInstence().expire(RedisKey.getKey(RedisKey.FAMILY_JOIN,String.valueOf(uid),false), TimeUtils.DAY);
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.JOIN,user.getPlayerInfoManager().getNickName());
|
||||
Family.FamilyJoinIndicaion build = Family.FamilyJoinIndicaion.newBuilder().setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo)).setFamilyUserInfo(CBean2Proto.getFamilyUserInfo(user, GlobalsDef.MEMBER)).build();
|
||||
|
|
|
@ -28,8 +28,8 @@ public enum RankEnum {
|
|||
DEATH_PATH_EVERY_PERSON_RANK(15,RedisKey.DEATH_PATH_EVERY_PERSON_RANK,DeathPathEveryPersonRank::new),//param1:当前阵玩家伤害 param2:无 param3:无
|
||||
DEATH_PATH_EVERY_GUILD_RANK(16,RedisKey.DEATH_PATH_EVERY_GUILD_RANK, DeathPathEveryGuildRank::new),//param1:当前阵公会伤害 param2:当前工会挑战人数 param3:无
|
||||
DEATH_PATH_TOTAL_PERSON_RANK(17,RedisKey.DEATH_PATH_TOTAL_PERSON_RANK,DeathPathTotalPersonRank::new),//param1:玩家总伤害 param2:无 param3:无
|
||||
DEATH_PATH_TOTAL_GUILD_RANK(18,RedisKey.DEATH_PATH_TOTAL_GUILD_RANK,DeathPathTotalGuildRank::new),//param1:工会总伤害 param2:无 param3:无
|
||||
GUILD_FORCE_RANK(20,RedisKey.GUILD_FORCE_RANK,GuildForceRank::new),//param1:公会总战力 param2:无 param3:无
|
||||
DEATH_PATH_TOTAL_GUILD_RANK(18,RedisKey.DEATH_PATH_TOTAL_GUILD_RANK,DeathPathTotalGuildRank::new),//param1:工会总伤害 param2:无 param3:无
|
||||
//达人排行榜
|
||||
EXPERT_RANK(21,RedisKey.EXPERT_RANK,GoldRank::new),//param1:活动进度 param2:无 param3:无
|
||||
FORCE_CURR_RANK(22,RedisKey.FORCE_CURR_RANK,ForceCurrRank::new),//param1:人物战力 param2:无 param3:无
|
||||
|
@ -39,6 +39,8 @@ public enum RankEnum {
|
|||
SITUATION_RANK(24,RedisKey.SITUATION_RANK,SituationRank::new),//param1:通关次数 param2:无 param3:无
|
||||
|
||||
GUILD_CHALLENGE_RANK(26,RedisKey.GUILD_CHALLENGE_RANK,GuildChallengeRank::new),//param1:伤害 param2:无 param3:无
|
||||
|
||||
GUILD_SHEJI_SCORE_RANK(27,RedisKey.GUILD_SHEJI_SCORE_RANK,GuildSheJiScoreRank::new),//param1:公会社稷贡献 param2:无 param3:无
|
||||
;
|
||||
|
||||
private int type;
|
||||
|
|
|
@ -3,6 +3,9 @@ package config;
|
|||
import manager.STableManager;
|
||||
import manager.Table;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Table(name ="GodSacrificeConfig")
|
||||
|
@ -24,14 +27,30 @@ public class SGodSacrificeConfig implements BaseConfig {
|
|||
|
||||
private int basLineRewardId;
|
||||
|
||||
private static Map<Integer, SGodSacrificeConfig> sGodSacrificeConfigMap;
|
||||
|
||||
@Override
|
||||
private static Map<Integer,Map<Integer, List<SGodSacrificeConfig>>> integerListMap=new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
sGodSacrificeConfigMap = STableManager.getConfig(SGodSacrificeConfig.class);
|
||||
|
||||
for (SGodSacrificeConfig sGodSacrificeConfig : sGodSacrificeConfigMap.values()) {
|
||||
int activityId = sGodSacrificeConfig.getActivityId();
|
||||
Map<Integer, List<SGodSacrificeConfig>> integerListHash = integerListMap.getOrDefault(sGodSacrificeConfig.getRewardType(),new HashMap<>());
|
||||
|
||||
if (!integerListHash.containsKey(activityId)) {
|
||||
integerListHash.put(activityId, new ArrayList<>());
|
||||
}
|
||||
integerListHash.get(activityId).add(sGodSacrificeConfig);
|
||||
|
||||
integerListMap.put(sGodSacrificeConfig.getRewardType(),integerListHash);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public int getId() {
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
@ -63,5 +82,12 @@ public class SGodSacrificeConfig implements BaseConfig {
|
|||
return basLineRewardId;
|
||||
}
|
||||
|
||||
public static Map<Integer, SGodSacrificeConfig> getsGodSacrificeConfigMap() {
|
||||
return sGodSacrificeConfigMap;
|
||||
}
|
||||
|
||||
public static Map<Integer, Map<Integer, List<SGodSacrificeConfig>>> getIntegerListMap() {
|
||||
return integerListMap;
|
||||
}
|
||||
|
||||
}
|
|
@ -3,6 +3,7 @@ package config;
|
|||
import manager.STableManager;
|
||||
import manager.Table;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Table(name ="GodSacrificeSetting")
|
||||
|
@ -32,9 +33,28 @@ public class SGodSacrificeSetting implements BaseConfig {
|
|||
|
||||
private int lastTime;
|
||||
|
||||
public static HashMap<Integer,Integer> exchangeRate= new HashMap<>();
|
||||
|
||||
private int lifeLimit;
|
||||
|
||||
private int joinLimit;
|
||||
|
||||
private int[][] mailId;
|
||||
|
||||
private int l1Score;
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
SGodSacrificeSetting sGodSacrificeSetting = STableManager.getConfig(SGodSacrificeSetting.class).get(1);
|
||||
if(null!=sGodSacrificeSetting){
|
||||
if(sGodSacrificeSetting.getItemDelete()==1){
|
||||
int[] activityItems = sGodSacrificeSetting.getActivityItems();
|
||||
for (int i = 0; i <activityItems.length ; i++) {
|
||||
exchangeRate.put(activityItems[i],i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -88,4 +108,21 @@ public class SGodSacrificeSetting implements BaseConfig {
|
|||
}
|
||||
|
||||
|
||||
public int getLifeLimit() {
|
||||
return lifeLimit;
|
||||
}
|
||||
|
||||
public int getJoinLimit() {
|
||||
return joinLimit;
|
||||
}
|
||||
|
||||
public int[][] getMailId() {
|
||||
return mailId;
|
||||
}
|
||||
|
||||
public int getL1Score() {
|
||||
return l1Score;
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue