back_recharge
lvxinran 2019-08-07 18:17:31 +08:00
commit 9fa5bf9b39
9 changed files with 96 additions and 17 deletions

View File

@ -51,7 +51,7 @@ public class STreasureTaskConfig implements BaseConfig {
treasureTaskConfigByActivityMap.get(activityId).add(sTreasureTaskConfig);
sTreasureTaskConfigListByTypeMapTmp.get(sTreasureTaskConfig.getTaskType()).add(sTreasureTaskConfig);
if(sTreasureTaskConfig.getTaskType() == MissionType.SENVER_HAPPY.getMissionTypeValue()){
sTreasureSevenTaskConfigByActivityMapTmp.put(sTreasureTaskConfig.getActivityId(),sTreasureTaskConfig);
}
}
sTreasureTaskConfigListByActivityMap = treasureTaskConfigByActivityMap;

View File

@ -1,6 +1,8 @@
package com.ljsd.jieling.core;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.SChallengeConfig;
import com.ljsd.jieling.config.SChallengeMapConfig;
import com.ljsd.jieling.config.SGlobalSystemConfig;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.globals.Global;
@ -38,6 +40,15 @@ public class HandlerLogicThread extends Thread{
whiteMsg.add(MessageTypeProto.MessageType.FIGHT_END_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.MAP_OUT_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.MAP_TOWER_CALL_CHIEF_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.MAP_TOWER_USEBOMB_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.MAP_TOWER_USEBUFF_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.ENDLESS_MAP_RESET_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.ENDLESS_MAP_SIGN_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.ENDLESS_EXECUTION_REFRESH_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.ENDLESS_OUT_CONSUME_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.ENDLESS_MAP_HERO_INFO_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.LOGIN_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.GET_PLAYERINFO_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.GET_ITEMINFO_REQUEST_VALUE);
@ -58,6 +69,9 @@ public class HandlerLogicThread extends Thread{
whiteMsg.add(MessageTypeProto.MessageType.GET_RINGFIRE_INFO_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.BUY_STORE_ITEM_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.GET_MISSION_REQUEST_VALUE);
whiteMsg.add(MessageTypeProto.MessageType.REFRESH_ITEM_NUM_REQUEST_VALUE);
//日后删除
whiteMsg.add(MessageTypeProto.MessageType.GET_CHAT_MESSAGE_REQUEST_VALUE);
@ -65,6 +79,7 @@ public class HandlerLogicThread extends Thread{
}
public ConcurrentLinkedQueue<PacketNetData> handlerLinkedQueue = new ConcurrentLinkedQueue();
@ -101,11 +116,11 @@ public class HandlerLogicThread extends Thread{
MessageUtil.sendErrorResponse(session,0,msgId+1,"funciton not");
return;
}
/* b = checkIsPermit(msgId, session);
b = checkIsPermit(msgId, session);
if(!b){
MessageUtil.sendErrorResponse(session,0,msgId+1,"在地图探索中,不可以操作");
return;
}*/
}
}
long curTimeMillis = System.currentTimeMillis();
if(msgId != MessageTypeProto.MessageType.GET_CHAT_MESSAGE_REQUEST_VALUE){
@ -133,6 +148,13 @@ public class HandlerLogicThread extends Thread{
int uid = session.getUid();
User user = UserManager.getUser(uid);
int curMapId = user.getMapManager().getCurMapId();
if(curMapId!=0 && msgId == MessageTypeProto.MessageType.TEAM_POS_SAVE_REQUEST_VALUE){
SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(curMapId);
if(sChallengeConfig.getType()==4){
return true;
}
}
if(curMapId!=0 && !whiteMsg.contains(msgId)){
return false;
}

View File

@ -158,6 +158,12 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
}
@Override
public void onActivityEndOnMySelf(User user) throws Exception {
}
public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(ActivityMission activityMission) {
return getAllMissInfo(activityMission, null);
}

View File

@ -70,6 +70,9 @@ public class ActivityLogic {
Map<Integer, SGlobalActivity> sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap();
for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) {
int time = sGlobalActivity.getTime();
if(ActivityTypeEnum.getActicityCacheSize()==0){//init cache
ActivityTypeEnum.getActicityType(sGlobalActivity.getId());
}
if (time == 2) {
continue;
}
@ -144,6 +147,7 @@ public class ActivityLogic {
ActivityMission activityMission = activityMissionMap.get(activityId);
if (activityMission != null) {
activityManager.removeActivity(activityId);
ActivityTypeEnum.getActicityType(sGlobalActivity.getId()).onActivityEndOnMySelf(user);
LOGGER.info("the uid={},remove the activity id ={}", user.getId(), activityId);
if (builder != null) {
builder.addCloseActivityId(activityId);
@ -162,6 +166,7 @@ public class ActivityLogic {
ActivityMission activityMission = activityMissionMap.get(activityId);
if (activityMission != null) {
activityManager.removeActivity(activityId);
ActivityTypeEnum.getActicityType(sGlobalActivity.getId()).onActivityEndOnMySelf(user);
LOGGER.info("the uid={},remove the activity id ={}", user.getId(), activityId);
if (builder != null) {
builder.addCloseActivityId(activityId);
@ -937,7 +942,7 @@ public class ActivityLogic {
int start = 0;
int maxSize = SGameSetting.getGameSetting().getShowRank();
List<CommonProto.ExpertInfo> expertInfos = new ArrayList<>(maxSize);
List<CommonProto.ExpertInfo> expertInfos = new LinkedList<>();
Set<ZSetOperations.TypedTuple<String>> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.FORCE_RANK, Integer.toString(acitvityId), 0, maxSize - 1);
for (ZSetOperations.TypedTuple<String> item : rankInfo) {
String value = item.getValue();
@ -949,17 +954,21 @@ public class ActivityLogic {
CommonProto.ExpertInfo personInfoBuild = CommonProto.ExpertInfo.newBuilder()
.setName(playerInfoManager.getNickName())
.setScore(score)
.setLevel(playerInfoManager.getLevel())
.setHeadFrame(playerInfoManager.getHeadFrame())
.setHead(0)
.setRank(++start)
.build();
expertInfos.add(personInfoBuild);
}
if (rankInfo.size() > 2 * maxSize) {
//删除多余数据 预留一些 长度maxSize
String key = RedisKey.getKey(RedisKey.EXPERT_RANK, String.valueOf(acitvityId), false);
int size = RedisUtil.getInstence().getZsetSize(key);
RedisUtil.getInstence().removeZSetRangeByRank(key, maxSize, size);
}
//策划要全部数据
// if (rankInfo.size() > 2 * maxSize) {
// //删除多余数据 预留一些 长度maxSize
// String key = RedisKey.getKey(RedisKey.EXPERT_RANK, String.valueOf(acitvityId), false);
// int size = RedisUtil.getInstence().getZsetSize(key);
// RedisUtil.getInstence().removeZSetRangeByRank(key, maxSize, size);
// }
int uid = session.getUid();
int score = RedisUtil.getInstence().getZSetScore(RedisKey.EXPERT_RANK, Integer.toString(acitvityId), Integer.toString(uid)).intValue();
@ -967,10 +976,10 @@ public class ActivityLogic {
PlayerInfoProto.GetExpertInfoResponse buildResponse = PlayerInfoProto.GetExpertInfoResponse.newBuilder()
.setMyRank(myRank)
.setMyScore(score)
.addAllExpert(expertInfos)
.setMyScore(score)
.build();
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.GETF_EXPERT_RANK_INFO_REQUEST_VALUE, buildResponse, true);
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.GETF_EXPERT_RANK_INFO_RESPONSE_VALUE, buildResponse, true);
}

View File

@ -41,7 +41,6 @@ public enum ActivityTypeEnum {
}
public AbstractActivity toActivity(int id) {
if (acticityCache.containsKey(id)) {
return acticityCache.get(id);
}
@ -90,6 +89,10 @@ public enum ActivityTypeEnum {
// }
}
public static Integer getActicityCacheSize() {
return acticityCache.size();
}
public int getType() {
return type;
}

View File

@ -1,9 +1,18 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.config.SErrorCodeEerverConfig;
import com.ljsd.jieling.config.SGlobalActivity;
import com.ljsd.jieling.config.SSevenDaysScore;
import com.ljsd.jieling.config.STreasureTaskConfig;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.dao.ActivityMission;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.main.TreasureMissionType;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import java.util.ArrayList;
@ -25,4 +34,25 @@ public class DefaultEmptyActivity extends AbstractActivity{
user.getActivityManager().setSenvenTime(endTime);
}
}
@Override
public void onActivityEndOnMySelf(User user) throws Exception {
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if(sGlobalActivity.getType() == ActivityType.SERVERHAPPY){
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(id);
TreasureMissionType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType();
if(!sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){
int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores;
sevenHappyMissionType.getDoingMissionIds().remove(sTreasureTaskConfig.getId());
sevenHappyMissionType.getFinishMissionIds().remove(sTreasureTaskConfig.getId());
sevenHappyMissionType.getRewardedMissionIds().set(sTreasureTaskConfig.getId());
user.getUserMissionManager().setSevenHappyMissionType(sevenHappyMissionType);
SSevenDaysScore sSevenDaysScore = SSevenDaysScore.SSevenDaysScoreByActivityIdAndScoreMap.get(id).get(senvenScores);
String mailReward = ItemUtil.getMailReward(sSevenDaysScore.getReward());
String title=SErrorCodeEerverConfig.getI18NMessage("opencarnival_activity_"+id+"_title");
String content = SErrorCodeEerverConfig.getI18NMessage("opencarnival_activity_"+id+"_txt");
MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,(int)(System.currentTimeMillis()/1000), Global.MAIL_EFFECTIVE_TIME);
}
}
}
}

View File

@ -42,6 +42,8 @@ public interface IActivity {
*/
void onActivityEnd() throws Exception;
public void onActivityEndOnMySelf(User user) throws Exception;
List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(ActivityMission activityMission, Set<Integer> filter);
}

View File

@ -16,10 +16,13 @@ class RechargeSumDayActivity extends AbstractActivity {
}
@Override
public void onResume(User user) throws Exception {
public void onResume(User user) {
ActivityManager activityManager = user.getActivityManager();
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
activityMission.setValue(0);
if (activityMission.getValue() == SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) {
activityMission.initMissionInfo(id);
return;
}
int missionId = SActivityRewardConfig.getRechargeDaySum().get(activityMission.getValue() + 1);
if (user.getPlayerInfoManager().getRechargedaily() > SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId).getValues()[0][0]) {
activityMission.setValue(activityMission.getValue() + 1);
@ -51,7 +54,7 @@ class RechargeSumDayActivity extends AbstractActivity {
boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
int[][] values = sActivityRewardConfig.getValues();
User user = UserManager.getUser(session.getUid());
int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getValue()+1;
int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getValue() + 1;
if (value < values[0][1]) {
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "value illegality");
return false;

View File

@ -405,8 +405,12 @@ public class PlayerLogic {
return;
}
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(treasureActivityId);
int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores;
TreasureMissionType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType();
if(sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){
MessageUtil.sendErrorResponse(iSession,0,msgId,"奖励已领取");
return;
}
int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores;
sevenHappyMissionType.getDoingMissionIds().remove(sTreasureTaskConfig.getId());
sevenHappyMissionType.getFinishMissionIds().remove(sTreasureTaskConfig.getId());
sevenHappyMissionType.getRewardedMissionIds().set(sTreasureTaskConfig.getId());