战力排行
parent
0f34c27c48
commit
3edd6e7ebc
|
@ -43,7 +43,7 @@ public class SLuckyCatConfig implements BaseConfig {
|
|||
if (!configMapByActivityId.containsKey(id)) {
|
||||
configMapByActivityId.put(id, new TreeMap<>());
|
||||
}
|
||||
configMapByActivityId.get(id).put(sLuckyCatConfig.getActivityId(), sLuckyCatConfig);
|
||||
configMapByActivityId.get(id).put(sLuckyCatConfig.getId(), sLuckyCatConfig);
|
||||
}
|
||||
|
||||
for (TreeMap<Integer, SLuckyCatConfig> maps : configMapByActivityId.values()) {
|
||||
|
|
|
@ -108,6 +108,7 @@ public class RedisKey {
|
|||
|
||||
public static final String TOWER_RANK = "TOWER_RANK";
|
||||
|
||||
public static final String FORCE_RANK = "FORCE_RANK";
|
||||
|
||||
public static final String FAMILY_ID = "FAMILY_ID";
|
||||
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package com.ljsd.jieling.handler;
|
||||
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class ForceRankHandler extends BaseHandler {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.GETF_FORCE_RANK_INFO_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
byte[] bytes = netData.parseClientProtoNetData();
|
||||
PlayerInfoProto.GetForceRankInfoRequest getForceRankInfoRequest = PlayerInfoProto.GetForceRankInfoRequest.parseFrom(bytes);
|
||||
ActivityLogic.getInstance().getForceRank(iSession,getForceRankInfoRequest.getPage(),getForceRankInfoRequest.getActiviteId());
|
||||
}
|
||||
}
|
|
@ -23,7 +23,7 @@ public class TakeActivityRewardHandler extends BaseHandler {
|
|||
PlayerInfoProto.TakeActivityRewardRequest takeActivityRewardRequest = PlayerInfoProto.TakeActivityRewardRequest.parseFrom(bytes);
|
||||
int missionId = takeActivityRewardRequest.getMissionId();
|
||||
int activityId = takeActivityRewardRequest.getActivityId();
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(activityId, iSession.getUid());
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(activityId);
|
||||
if (abstractActivity == null) {
|
||||
int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE;
|
||||
MessageUtil.sendErrorResponse(iSession, 0, rewardResponseValue, "no_such_activity_type");
|
||||
|
|
|
@ -26,11 +26,9 @@ import java.util.Map;
|
|||
public abstract class AbstractActivity implements IActivity {
|
||||
static final Logger LOGGER = LoggerFactory.getLogger(AbstractActivity.class);
|
||||
final int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE;
|
||||
int uid;
|
||||
int id;
|
||||
|
||||
public AbstractActivity(int uid, int id) {
|
||||
this.uid = uid;
|
||||
public AbstractActivity(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
@ -59,6 +57,10 @@ public abstract class AbstractActivity implements IActivity {
|
|||
}
|
||||
}
|
||||
|
||||
void updateProgress(User user,ActivityMission activityMission, int count) {
|
||||
updateProgress(activityMission,count);
|
||||
}
|
||||
|
||||
/**
|
||||
* default update to progress
|
||||
* 老的逻辑 将任务进度更新到progress中 现改为子类覆盖在value中存储
|
||||
|
@ -78,7 +80,7 @@ public abstract class AbstractActivity implements IActivity {
|
|||
@Override
|
||||
public void takeReward(ISession session, int missionId) throws Exception {
|
||||
|
||||
User user = UserManager.getUser(uid);
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
//check cfg
|
||||
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
if (sActivityRewardConfig == null || sActivityRewardConfig.getActivityId() != id) {
|
||||
|
@ -119,10 +121,14 @@ public abstract class AbstractActivity implements IActivity {
|
|||
int[][] values = sActivityRewardConfig.getValues();
|
||||
int missionProgress = activityProgressInfo.getProgrss();
|
||||
if (missionProgress < values[0][0]) {
|
||||
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", uid, sActivityRewardConfig.getId(), missionProgress, values[0][0]);
|
||||
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), sActivityRewardConfig.getId(), missionProgress, values[0][0]);
|
||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onActivityEnd() throws Exception{ }
|
||||
}
|
||||
|
|
|
@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.activity;
|
|||
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.handler.activity.BlessInfoConfig;
|
||||
|
@ -13,6 +15,7 @@ import com.ljsd.jieling.logic.dao.root.User;
|
|||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
|
@ -21,6 +24,7 @@ import com.ljsd.jieling.util.MessageUtil;
|
|||
import com.ljsd.jieling.util.TimeUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
@ -54,17 +58,19 @@ public class ActivityLogic {
|
|||
if(time ==2 ){
|
||||
continue;
|
||||
}
|
||||
long startTime = sGlobalActivity.getTimeLong(0,1);
|
||||
long endTime = sGlobalActivity.getTimeLong(0,2);
|
||||
long startTime = sGlobalActivity.getTimeLong(0,time);
|
||||
long endTime = sGlobalActivity.getTimeLong(0,time);
|
||||
if(now<startTime){
|
||||
continue;
|
||||
}
|
||||
if(endTime!=0 && now>endTime && openActivityIds.contains(sGlobalActivity.getId())){
|
||||
openActivityIds.remove(sGlobalActivity.getId());
|
||||
ActivityTypeEnum.getActicityType(sGlobalActivity.getId()).onActivityEnd();
|
||||
continue;
|
||||
}
|
||||
openActivityIds.add(sGlobalActivity.getId());
|
||||
}
|
||||
|
||||
for(Map.Entry<Integer,ISession> entry:OnlineUserManager.sessionMap.entrySet()){
|
||||
User user = UserManager.getUserInMem(entry.getKey());
|
||||
PlayerInfoProto.ActivityUpateIndication.Builder builder = PlayerInfoProto.ActivityUpateIndication.newBuilder();
|
||||
|
@ -152,7 +158,7 @@ public class ActivityLogic {
|
|||
case ActivityType.TREASURE:
|
||||
case ActivityType.LUCKYCAT:
|
||||
case ActivityType.SERVERHAPPY:
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(sGlobalActivity.getId(),user.getId());
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(sGlobalActivity.getId());
|
||||
if (abstractActivity == null) {
|
||||
break;
|
||||
}
|
||||
|
@ -442,7 +448,7 @@ public class ActivityLogic {
|
|||
continue;
|
||||
}
|
||||
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(activityId,user.getId());
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(activityId);
|
||||
if (abstractActivity == null) {
|
||||
continue;
|
||||
}
|
||||
|
@ -1007,4 +1013,46 @@ public class ActivityLogic {
|
|||
return activityMission;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取战力排行榜
|
||||
*/
|
||||
public void getForceRank(ISession session,int page,int acitvityId) throws Exception {
|
||||
|
||||
if (page == 0) {
|
||||
page = 1;
|
||||
}
|
||||
int start = (page - 1) * 20, end = page * 20 - 1;
|
||||
List<CommonProto.UseForceInfo> useForceInfoList = new ArrayList<>(20);
|
||||
Set<ZSetOperations.TypedTuple<String>> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.FORCE_RANK,Integer.toString(acitvityId), start, end);
|
||||
for(ZSetOperations.TypedTuple<String> item : rankInfo){
|
||||
String value = item.getValue();
|
||||
int score =item.getScore().intValue();
|
||||
int uid = Integer.parseInt(value);
|
||||
User user = UserManager.getUser(uid);
|
||||
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
CommonProto.UseForceInfo personInfoBuild = CommonProto.UseForceInfo.newBuilder()
|
||||
.setLeve(playerInfoManager.getLevel())
|
||||
.setName(playerInfoManager.getNickName())
|
||||
.setForce(score)
|
||||
.setRank(++start)
|
||||
.build();
|
||||
useForceInfoList.add(personInfoBuild);
|
||||
}
|
||||
|
||||
int uid = session.getUid();
|
||||
int score = RedisUtil.getInstence().getZSetScore(RedisKey.FORCE_RANK,Integer.toString(acitvityId), Integer.toString(uid)).intValue();
|
||||
int myRank= RedisUtil.getInstence().getZSetreverseRank(RedisKey.FORCE_RANK,Integer.toString(acitvityId),Integer.toString(uid)).intValue();
|
||||
|
||||
PlayerInfoProto.GetForceRankInfoResponse buildResponse = PlayerInfoProto.GetForceRankInfoResponse.newBuilder()
|
||||
.setMyRank(myRank)
|
||||
.setMyForce(score)
|
||||
.addAllUseForceInfo(useForceInfoList)
|
||||
.build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GETF_FORCE_RANK_INFO_RESPONSE_VALUE,buildResponse,true);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.activity;
|
|||
import com.ljsd.jieling.config.SGlobalActivity;
|
||||
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
|
||||
public enum ActivityTypeEnum {
|
||||
|
||||
|
@ -18,42 +19,42 @@ public enum ActivityTypeEnum {
|
|||
FORCERANK(ActivityType.FORCERANK, ForceRankActivity::new),
|
||||
FORCESTANDARD(ActivityType.FORCESTANDARD, ForceStandardActivity::new);
|
||||
private int type;
|
||||
private BiFunction<Integer, Integer, AbstractActivity> toActivityFunction;
|
||||
private Function<Integer, AbstractActivity> toActivityFunction;
|
||||
|
||||
ActivityTypeEnum(int type, BiFunction<Integer, Integer, AbstractActivity> toActivityFunction) {
|
||||
ActivityTypeEnum(int type, Function<Integer, AbstractActivity> toActivityFunction) {
|
||||
this.type = type;
|
||||
this.toActivityFunction = toActivityFunction;
|
||||
}
|
||||
|
||||
public AbstractActivity toActivity(int uid,int id) {
|
||||
return toActivityFunction.apply(uid, id);
|
||||
public AbstractActivity toActivity(int id) {
|
||||
return toActivityFunction.apply(id);
|
||||
}
|
||||
|
||||
public static AbstractActivity getActicityType(int id, int uid) {
|
||||
public static AbstractActivity getActicityType(int id) {
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
switch ( sGlobalActivity.getType()) {
|
||||
case ActivityType.OnlineReward:
|
||||
return ONLINEREWARD.toActivity(uid,id);
|
||||
return ONLINEREWARD.toActivity(id);
|
||||
case ActivityType.SevenLogin:
|
||||
return SEVENLOGIN.toActivity(uid,id);
|
||||
return SEVENLOGIN.toActivity(id);
|
||||
case ActivityType.ChapterReward:
|
||||
return CHAPTERREWARD.toActivity(uid,id);
|
||||
return CHAPTERREWARD.toActivity(id);
|
||||
case ActivityType.FirstRecharge:
|
||||
return FIRSTRECHARGE.toActivity(uid,id);
|
||||
return FIRSTRECHARGE.toActivity(id);
|
||||
case ActivityType.RechargeTotal:
|
||||
return RECHARGETOTAL.toActivity(uid,id);
|
||||
return RECHARGETOTAL.toActivity(id);
|
||||
case ActivityType.GrowthFund:
|
||||
return GROWTHFUND.toActivity(uid,id);
|
||||
return GROWTHFUND.toActivity(id);
|
||||
case ActivityType.BLESSACTIVITY:
|
||||
return BLESSACTIVITY.toActivity(uid,id);
|
||||
return BLESSACTIVITY.toActivity(id);
|
||||
case ActivityType.TREASURE:
|
||||
return TREASUREACTIVITY.toActivity(uid,id);
|
||||
return TREASUREACTIVITY.toActivity(id);
|
||||
case ActivityType.LUCKYCAT:
|
||||
return LUCKYCAT.toActivity(uid,id);
|
||||
return LUCKYCAT.toActivity(id);
|
||||
case ActivityType.FORCERANK:
|
||||
return FORCERANK.toActivity(uid,id);
|
||||
return FORCERANK.toActivity(id);
|
||||
case ActivityType.FORCESTANDARD:
|
||||
return FORCESTANDARD.toActivity(uid,id);
|
||||
return FORCESTANDARD.toActivity(id);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
||||
public class BlessActivity extends AbstractActivity {
|
||||
|
||||
public BlessActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public BlessActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,14 +11,14 @@ import com.ljsd.jieling.util.MessageUtil;
|
|||
|
||||
class ChapterRewardActivity extends AbstractActivity {
|
||||
|
||||
public ChapterRewardActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public ChapterRewardActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
int[][] values = sActivityRewardConfig.getValues();
|
||||
User user = UserManager.getUser(uid);
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
LevelDifficulty levelDifficulty = user.getLevelDifficultyManager().getLevelDifficultyInfosMap().get(values[0][0]);
|
||||
if (levelDifficulty == null || levelDifficulty.getState() != Global.FIGHT_CLEARANCE) {
|
||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "not pass");
|
||||
|
|
|
@ -3,7 +3,7 @@ package com.ljsd.jieling.logic.activity;
|
|||
|
||||
public class FirstRechargeActivity extends AbstractActivity {
|
||||
|
||||
public FirstRechargeActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public FirstRechargeActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,38 +2,115 @@ package com.ljsd.jieling.logic.activity;
|
|||
|
||||
|
||||
import com.ljsd.jieling.config.SActivityRewardConfig;
|
||||
import com.ljsd.jieling.config.SErrorCodeEerverConfig;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
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.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import com.ljsd.jieling.util.TimeUtils;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
class ForceRankActivity extends AbstractActivity {
|
||||
|
||||
public ForceRankActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public ForceRankActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
void updateProgress(ActivityMission activityMission, int count) {
|
||||
void updateProgress(User user, ActivityMission activityMission, int count) {
|
||||
//历史最高
|
||||
if (count > activityMission.getValue())
|
||||
if (count > activityMission.getValue()) {
|
||||
activityMission.setValue(count);
|
||||
String key = RedisKey.getKey(RedisKey.FORCE_RANK, String.valueOf(id), false);
|
||||
RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), count);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityEnd() throws Exception {
|
||||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
int maxRank = 0;
|
||||
Map<Integer, Integer> rank2miss = new HashMap<>();
|
||||
for (SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs) {
|
||||
int[][] values = sActivityRewardConfig.getValues();
|
||||
if (values[0].length < 3) {
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
int value = values[0][2];
|
||||
int up = values[0][0];
|
||||
int down = values[0][1];
|
||||
maxRank = Math.max(maxRank, down);
|
||||
for (Integer rank : getRankSet(up, down)) {
|
||||
rank2miss.put(rank, sActivityRewardConfig.getId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Set<ZSetOperations.TypedTuple<String>> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.FORCE_RANK, Integer.toString(id), 0, maxRank);
|
||||
int rank = 1;
|
||||
int nowTime = (int) (TimeUtils.now() / 1000);
|
||||
for (ZSetOperations.TypedTuple<String> item : rankInfo) {
|
||||
String value = item.getValue();
|
||||
int uid = Integer.parseInt(value);
|
||||
User user = UserManager.getUser(uid);
|
||||
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if (activityMission == null || activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
|
||||
continue;
|
||||
}
|
||||
int missionId = rank2miss.get(rank++);
|
||||
ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
|
||||
if (activityProgressInfo == null || activityProgressInfo.getState() == ActivityType.HAD_TAKED) {
|
||||
continue;
|
||||
}
|
||||
//check value
|
||||
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
int[][] values = sActivityRewardConfig.getValues();
|
||||
if (values[0].length < 3) {
|
||||
continue;
|
||||
}
|
||||
int value2 = values[0][2];
|
||||
int missionProgress = activityProgressInfo.getProgrss();
|
||||
if (missionProgress < value) {
|
||||
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", uid, sActivityRewardConfig.getId(), missionProgress, values[0][0]);
|
||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
|
||||
return false;
|
||||
if (missionProgress < value2) {
|
||||
continue;
|
||||
}
|
||||
return true;
|
||||
//sendmail
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("powerrank_activity_title");
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("powerrank_activity_txt", new Object[]{rank});
|
||||
String mailReward = ItemUtil.getMailReward(sActivityRewardConfig.getReward());
|
||||
MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
//暂时不删
|
||||
// RedisUtil.getInstence().del(key);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private Set<Integer> getRankSet(int start, int end) {
|
||||
Set<Integer> set = new HashSet<>();
|
||||
if (start > end) {
|
||||
return set;
|
||||
}
|
||||
for (int i = start; i <= end; i++) {
|
||||
set.add(i);
|
||||
}
|
||||
return set;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ import com.ljsd.jieling.logic.dao.ActivityMission;
|
|||
|
||||
class ForceStandardActivity extends AbstractActivity {
|
||||
|
||||
public ForceStandardActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public ForceStandardActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -11,14 +11,14 @@ import com.ljsd.jieling.util.MessageUtil;
|
|||
|
||||
class GrowthFundActivity extends AbstractActivity {
|
||||
|
||||
public GrowthFundActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public GrowthFundActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
int[][] values = sActivityRewardConfig.getValues();
|
||||
User user = UserManager.getUser(uid);
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
int type = values[0][0];
|
||||
int value = values[0][1];
|
||||
if(type == 9){
|
||||
|
|
|
@ -8,6 +8,7 @@ public interface IActivity {
|
|||
|
||||
/**
|
||||
* 初始化存库信息
|
||||
*
|
||||
* @param user 未入库 传入依赖
|
||||
* Todo 目前之后招财猫活动用 其他的后面一起添加
|
||||
*/
|
||||
|
@ -20,8 +21,11 @@ public interface IActivity {
|
|||
|
||||
/**
|
||||
* 活动阶段节点处理逻辑
|
||||
*
|
||||
* @param missionId 节点id
|
||||
*/
|
||||
void takeReward(ISession session, int missionId) throws Exception;
|
||||
|
||||
void onActivityEnd() throws Exception;
|
||||
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.activity;
|
|||
import com.ljsd.jieling.chat.logic.ChatLogic;
|
||||
import com.ljsd.jieling.config.SErrorCodeEerverConfig;
|
||||
import com.ljsd.jieling.config.SGlobalActivity;
|
||||
import com.ljsd.jieling.config.SItem;
|
||||
import com.ljsd.jieling.config.SLuckyCatConfig;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
|
@ -26,8 +27,8 @@ import java.util.TreeMap;
|
|||
|
||||
public class LuckyCatActivity extends AbstractActivity {
|
||||
|
||||
public LuckyCatActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public LuckyCatActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -48,7 +49,7 @@ public class LuckyCatActivity extends AbstractActivity {
|
|||
|
||||
@Override
|
||||
public void takeReward(ISession session, int missionId) throws Exception {
|
||||
User user = UserManager.getUser(uid);
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) {
|
||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "");
|
||||
|
@ -116,7 +117,9 @@ public class LuckyCatActivity extends AbstractActivity {
|
|||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId);
|
||||
String nickName = user.getPlayerInfoManager().getNickName();
|
||||
String message = SErrorCodeEerverConfig.getI18NMessage("luck_cat_take_reward_content", new Object[]{nickName,temp2[0],temp2[1]});
|
||||
SItem sItem = SItem.getsItemMap().get(temp2[0]);
|
||||
|
||||
String message = SErrorCodeEerverConfig.getI18NMessage("luck_cat_take_reward_content", new Object[]{nickName,sItem.getName(),temp2[1]});
|
||||
ChatLogic.getInstance().sendSysChatMessage(message, Global.LUCKCAT,0,0,0,0,0,0);
|
||||
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
|
|
|
@ -11,8 +11,8 @@ import com.ljsd.jieling.util.TimeUtils;
|
|||
|
||||
class OnlineRewardActivity extends AbstractActivity {
|
||||
|
||||
public OnlineRewardActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public OnlineRewardActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -21,13 +21,13 @@ class OnlineRewardActivity extends AbstractActivity {
|
|||
int[][] values = sActivityRewardConfig.getValues();
|
||||
int missionProgress = activityProgressInfo.getProgrss();
|
||||
long now = TimeUtils.now();
|
||||
User user = UserManager.getUser(uid);
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
long loginTime = playerInfoManager.getLoginTime();
|
||||
int limitTime = values[0][0];
|
||||
long remainTime = now - loginTime - limitTime * TimeUtils.ONE_MINUTE + missionProgress * TimeUtils.ONE_SECOND;
|
||||
if (now - loginTime - limitTime * TimeUtils.ONE_MINUTE + missionProgress * TimeUtils.ONE_SECOND < 0) {
|
||||
LOGGER.error("the uid={} remain time is={}ms,the require time is={}ms", uid, remainTime, limitTime * TimeUtils.ONE_MINUTE);
|
||||
LOGGER.error("the uid={} remain time is={}ms,the require time is={}ms", session.getUid(), remainTime, limitTime * TimeUtils.ONE_MINUTE);
|
||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -11,8 +11,8 @@ import com.ljsd.jieling.util.TimeUtils;
|
|||
|
||||
class RechargeTotalActivity extends AbstractActivity {
|
||||
|
||||
public RechargeTotalActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public RechargeTotalActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,11 +20,11 @@ class RechargeTotalActivity extends AbstractActivity {
|
|||
int[][] values = sActivityRewardConfig.getValues();
|
||||
int missionProgress = activityProgressInfo.getProgrss();
|
||||
long now = TimeUtils.now();
|
||||
User user = UserManager.getUser(uid);
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo();
|
||||
int days = TimeUtils.differentDays(rechargeInfo.getCreateTime(), now) + 1;
|
||||
if (missionProgress < values[0][0] || days < values[0][1]) {
|
||||
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", uid, sActivityRewardConfig.getId(), missionProgress, values[0][0]);
|
||||
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), sActivityRewardConfig.getId(), missionProgress, values[0][0]);
|
||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "not finish");
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ class SevenLoginActivity extends AbstractActivity {
|
|||
user.getActivityManager().addActivity(sGlobalActivity.getId(), activityMission);
|
||||
}
|
||||
|
||||
public SevenLoginActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public SevenLoginActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,8 +25,8 @@ import java.util.Map;
|
|||
|
||||
public class TreasureActivity extends AbstractActivity {
|
||||
|
||||
public TreasureActivity(int uid, int id) {
|
||||
super(uid, id);
|
||||
public TreasureActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -48,7 +48,7 @@ public class TreasureActivity extends AbstractActivity {
|
|||
|
||||
@Override
|
||||
public void takeReward(ISession session, int missionId) throws Exception {
|
||||
User user = UserManager.getUser(uid);
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) {
|
||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "");
|
||||
|
|
|
@ -6,6 +6,8 @@ import com.ljsd.jieling.db.redis.RedisKey;
|
|||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.fight.CombatLogic;
|
||||
|
@ -216,8 +218,10 @@ public class PlayerLogic {
|
|||
if(user.getPlayerInfoManager().getMaxForce() < teamForce){
|
||||
user.getPlayerInfoManager().setMaxForce(teamForce);
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.USER_FORCE_CHANGE);
|
||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FORCERANK,teamForce,null);
|
||||
}
|
||||
}
|
||||
|
||||
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.USER_FORCE_CHANGE_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue