mission
parent
b5e8f34b6f
commit
e7bcf6f9c0
|
@ -703,6 +703,16 @@ public class RedisUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void zsetRemoveOne(String key, String value){
|
||||||
|
for (int i = 0; i < MAX_TRY_TIMES; i++) {
|
||||||
|
try {
|
||||||
|
redisTemplate.opsForZSet().remove(key, value);
|
||||||
|
return;
|
||||||
|
} catch (Exception e) {
|
||||||
|
TimeUtils.sleep(FAILED_SLEEP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
//操作sortset
|
//操作sortset
|
||||||
public Set<ZSetOperations.TypedTuple<String>> getZsetRangeWithScore(String key, double min, double max){
|
public Set<ZSetOperations.TypedTuple<String>> getZsetRangeWithScore(String key, double min, double max){
|
||||||
for (int i = 0; i < MAX_TRY_TIMES; i++) {
|
for (int i = 0; i < MAX_TRY_TIMES; i++) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ import com.ljsd.jieling.logic.dao.ActivityMission;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||||
|
import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType;
|
||||||
import com.ljsd.jieling.logic.mission.main.TreasureMissionType;
|
import com.ljsd.jieling.logic.mission.main.TreasureMissionType;
|
||||||
import com.ljsd.jieling.util.ItemUtil;
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
|
@ -40,7 +41,7 @@ public class DefaultEmptyActivity extends AbstractActivity{
|
||||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||||
if(sGlobalActivity.getType() == ActivityType.SERVERHAPPY){
|
if(sGlobalActivity.getType() == ActivityType.SERVERHAPPY){
|
||||||
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(id);
|
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(id);
|
||||||
TreasureMissionType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType();
|
ServenMissionIdsType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType();
|
||||||
if(!sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){
|
if(!sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){
|
||||||
int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores;
|
int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores;
|
||||||
sevenHappyMissionType.getDoingMissionIds().remove(sTreasureTaskConfig.getId());
|
sevenHappyMissionType.getDoingMissionIds().remove(sTreasureTaskConfig.getId());
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
package com.ljsd.jieling.logic.dao;
|
package com.ljsd.jieling.logic.dao;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.config.SGuildSetting;
|
||||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||||
import com.ljsd.jieling.logic.dao.root.GuildApply;
|
import com.ljsd.jieling.logic.dao.root.GuildApply;
|
||||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||||
import com.ljsd.jieling.logic.dao.root.GuildLog;
|
import com.ljsd.jieling.logic.dao.root.GuildLog;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.logic.family.GuildLogic;
|
||||||
import com.mongodb.BasicDBObject;
|
import com.mongodb.BasicDBObject;
|
||||||
import org.springframework.data.mongodb.core.query.BasicQuery;
|
import org.springframework.data.mongodb.core.query.BasicQuery;
|
||||||
|
import org.springframework.data.redis.core.ZSetOperations;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@ -83,7 +86,51 @@ public class GuilidManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void checkNeedReleaseGuild() throws Exception {
|
||||||
|
int now = (int)(System.currentTimeMillis()/1000);
|
||||||
|
int round=0;
|
||||||
|
boolean needContinue = true;
|
||||||
|
|
||||||
|
String key = RedisUtil.getInstence().getKey("guild-release", "");
|
||||||
|
while (needContinue){
|
||||||
|
Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores("guild-release", "", round*5, (round+1)*5);
|
||||||
|
if(zsetreverseRangeWithScores.isEmpty()){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for(ZSetOperations.TypedTuple<String> item : zsetreverseRangeWithScores){
|
||||||
|
String value = item.getValue();
|
||||||
|
Double score = item.getScore();
|
||||||
|
if(score>now){
|
||||||
|
needContinue=false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
GuildInfo guildInfo = guildInfoMap.get(Integer.parseInt(value));
|
||||||
|
if(guildInfo == null){
|
||||||
|
RedisUtil.getInstence().zsetRemoveOne(key,value);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
GuildLogic.releaseGuild(guildInfo);
|
||||||
|
RedisUtil.getInstence().zsetRemoveOne(key,value);
|
||||||
|
}
|
||||||
|
round++;
|
||||||
|
MongoUtil.getInstence().lastUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static Collection<GuildInfo> recommandGuild(User user) {
|
public static Collection<GuildInfo> recommandGuild(User user) {
|
||||||
return guildInfoMap.values();
|
return guildInfoMap.values();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void addGuildToRelease(GuildInfo guildInfo) {
|
||||||
|
String key = RedisUtil.getInstence().getKey("guild-release", "");
|
||||||
|
int levelTime = guildInfo.getLevelTime();
|
||||||
|
if(levelTime == 0){
|
||||||
|
RedisUtil.getInstence().zsetRemoveOne(key,Integer.toString(guildInfo.getId()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
levelTime+= SGuildSetting.sGuildSetting.getDestroyTime();
|
||||||
|
RedisUtil.getInstence().zsetAddOne(key,Integer.toString(guildInfo.getId()),levelTime);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,9 +9,6 @@ import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mission.*;
|
import com.ljsd.jieling.logic.mission.*;
|
||||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||||
import com.ljsd.jieling.logic.mission.main.*;
|
import com.ljsd.jieling.logic.mission.main.*;
|
||||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
|
||||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -24,11 +21,11 @@ public class UserMissionManager extends MongoBase {
|
||||||
private BeginerTaskIdsType beginerTaskIdsType=new BeginerTaskIdsType();
|
private BeginerTaskIdsType beginerTaskIdsType=new BeginerTaskIdsType();
|
||||||
|
|
||||||
private TreasureMissionType treasureMissionIdsType=new TreasureMissionType();
|
private TreasureMissionType treasureMissionIdsType=new TreasureMissionType();
|
||||||
private TreasureMissionType sevenHappyMissionType =new TreasureMissionType();
|
private ServenMissionIdsType sevenHappyMissionType =new ServenMissionIdsType();
|
||||||
//数据累加项
|
//数据累加项
|
||||||
private CumulationData cumulationData = new CumulationData();
|
private CumulationData cumulationData = new CumulationData();
|
||||||
private CumulationData dailyCumulationData = new CumulationData();
|
private CumulationData dailyCumulationData = new CumulationData();
|
||||||
private CumulationData begiinCumulationData = new CumulationData();
|
private CumulationData beginCumulationData = new CumulationData();
|
||||||
|
|
||||||
private CumulationData treasureCumulationData = new CumulationData();
|
private CumulationData treasureCumulationData = new CumulationData();
|
||||||
private CumulationData sevenHappyCumulationData = new CumulationData();
|
private CumulationData sevenHappyCumulationData = new CumulationData();
|
||||||
|
@ -80,7 +77,6 @@ public class UserMissionManager extends MongoBase {
|
||||||
sevenHappyMissionType.getDoingMissionIds().clear();
|
sevenHappyMissionType.getDoingMissionIds().clear();
|
||||||
sevenHappyMissionType.getFinishMissionIds().clear();
|
sevenHappyMissionType.getFinishMissionIds().clear();
|
||||||
sevenHappyMissionType.getRewardedMissionIds().clear();
|
sevenHappyMissionType.getRewardedMissionIds().clear();
|
||||||
sevenHappyMissionType.getTakeTimes().clear();
|
|
||||||
List<MissionStateChangeInfo> servenMissionmStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION);
|
List<MissionStateChangeInfo> servenMissionmStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION);
|
||||||
for(STreasureTaskConfig sTreasureTaskConfig : sTreasureTaskConfigs){
|
for(STreasureTaskConfig sTreasureTaskConfig : sTreasureTaskConfigs){
|
||||||
sevenHappyMissionType.getDoingMissionIds().add(sTreasureTaskConfig.getId());
|
sevenHappyMissionType.getDoingMissionIds().add(sTreasureTaskConfig.getId());
|
||||||
|
@ -94,9 +90,9 @@ public class UserMissionManager extends MongoBase {
|
||||||
for(Integer id : SBeginnerTask.sBeginnerTaskCongigMap.keySet()){
|
for(Integer id : SBeginnerTask.sBeginnerTaskCongigMap.keySet()){
|
||||||
beginerTaskIdsType.addDoingMission(id);
|
beginerTaskIdsType.addDoingMission(id);
|
||||||
}
|
}
|
||||||
begiinCumulationData.reset();
|
beginCumulationData.reset();
|
||||||
updateString("beginerTaskIdsType", beginerTaskIdsType);
|
updateString("beginerTaskIdsType", beginerTaskIdsType);
|
||||||
updateString("begiinCumulationData", begiinCumulationData);
|
updateString("beginCumulationData", beginCumulationData);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,11 +118,9 @@ public class UserMissionManager extends MongoBase {
|
||||||
case SEVENHAPPY_MISSION_REWARD:{
|
case SEVENHAPPY_MISSION_REWARD:{
|
||||||
int missionId = (int) parm[0];
|
int missionId = (int) parm[0];
|
||||||
List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION);
|
List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION);
|
||||||
sevenHappyMissionType.rewardMission(user,missionId, missionStateChangeInfos,sevenHappyCumulationData);
|
sevenHappyMissionType.rewardMission((int)parm[0], missionStateChangeInfos);
|
||||||
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
||||||
int takeTimes = missionStateChangeInfos.get(0).getProgress();
|
int score = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionId).getPoints();
|
||||||
missionStateChangeInfos.get(0).setProgress(0);
|
|
||||||
int score = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionId).getPoints() * takeTimes;
|
|
||||||
calCumulationDataResult(user,MissionType.SENVER_HAPPY,missionTypeEnumListMap,score);
|
calCumulationDataResult(user,MissionType.SENVER_HAPPY,missionTypeEnumListMap,score);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -161,11 +155,11 @@ public class UserMissionManager extends MongoBase {
|
||||||
if(!beginerTaskIdsType.getDoingMissionIds().isEmpty()){
|
if(!beginerTaskIdsType.getDoingMissionIds().isEmpty()){
|
||||||
List<SBeginnerTask> sBeginnerTasks = SBeginnerTask.sBeginnerByTypeMap.get(missionType.getMissionTypeValue());
|
List<SBeginnerTask> sBeginnerTasks = SBeginnerTask.sBeginnerByTypeMap.get(missionType.getMissionTypeValue());
|
||||||
if (sBeginnerTasks != null) {
|
if (sBeginnerTasks != null) {
|
||||||
CumulationData.Result result = begiinCumulationData.updateData(missionType, parm);
|
CumulationData.Result result = beginCumulationData.updateData(missionType, parm);
|
||||||
if(result!=null){
|
if(result!=null){
|
||||||
beginerTaskIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.BEGINNERMISSION),begiinCumulationData);
|
beginerTaskIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.BEGINNERMISSION), beginCumulationData);
|
||||||
updateString("beginerTaskIdsType",beginerTaskIdsType);
|
updateString("beginerTaskIdsType",beginerTaskIdsType);
|
||||||
updateString("begiinCumulationData",begiinCumulationData);
|
updateString("beginCumulationData", beginCumulationData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -206,7 +200,7 @@ public class UserMissionManager extends MongoBase {
|
||||||
this.vipMissionIdsType = vipMissionIdsType;
|
this.vipMissionIdsType = vipMissionIdsType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSevenHappyMissionType(TreasureMissionType sevenHappyMissionType) {
|
public void setSevenHappyMissionType(ServenMissionIdsType sevenHappyMissionType) {
|
||||||
updateString("sevenHappyMissionType",sevenHappyMissionType);
|
updateString("sevenHappyMissionType",sevenHappyMissionType);
|
||||||
this.sevenHappyMissionType = sevenHappyMissionType;
|
this.sevenHappyMissionType = sevenHappyMissionType;
|
||||||
}
|
}
|
||||||
|
@ -236,7 +230,7 @@ public class UserMissionManager extends MongoBase {
|
||||||
return treasureCumulationData;
|
return treasureCumulationData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TreasureMissionType getSevenHappyMissionType() {
|
public ServenMissionIdsType getSevenHappyMissionType() {
|
||||||
return sevenHappyMissionType;
|
return sevenHappyMissionType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -249,7 +243,7 @@ public class UserMissionManager extends MongoBase {
|
||||||
return beginerTaskIdsType;
|
return beginerTaskIdsType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CumulationData getBegiinCumulationData() {
|
public CumulationData getBeginCumulationData() {
|
||||||
return begiinCumulationData;
|
return beginCumulationData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -494,6 +494,10 @@ public class GuildLogic {
|
||||||
MessageUtil.sendErrorResponse(session,0,msgId,"无权操作");
|
MessageUtil.sendErrorResponse(session,0,msgId,"无权操作");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(type == 1 && guildInfo.getLevelTime()>0){
|
||||||
|
MessageUtil.sendErrorResponse(session,0,msgId,"已操作过了");
|
||||||
|
return;
|
||||||
|
}
|
||||||
//解散公会
|
//解散公会
|
||||||
if(type == 1){
|
if(type == 1){
|
||||||
guildInfo.setLevelTime((int)(System.currentTimeMillis()/1000));
|
guildInfo.setLevelTime((int)(System.currentTimeMillis()/1000));
|
||||||
|
@ -501,7 +505,7 @@ public class GuildLogic {
|
||||||
guildInfo.setLevelTime(0);
|
guildInfo.setLevelTime(0);
|
||||||
}
|
}
|
||||||
sendFamilyBaseUpdateIndication(guildInfo);
|
sendFamilyBaseUpdateIndication(guildInfo);
|
||||||
releaseGuild(guildInfo);
|
GuilidManager.addGuildToRelease(guildInfo);
|
||||||
MessageUtil.sendMessage(session,1,msgId,null,true);
|
MessageUtil.sendMessage(session,1,msgId,null,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1113,7 +1113,7 @@ public class HeroLogic {
|
||||||
float score = sPropertyConfig.getScore();
|
float score = sPropertyConfig.getScore();
|
||||||
|
|
||||||
result += propertyValue*score;
|
result += propertyValue*score;
|
||||||
// LOGGER.info("the value is ={},propertyValue={},score={},result ={},the value={}",propertyValue*score,propertyValue,score,result,propertyValue*score);
|
LOGGER.info("the value is ={},propertyValue={},score={},result ={},the value={}",propertyValue*score,propertyValue,score,result,propertyValue*score);
|
||||||
}
|
}
|
||||||
return (int)result;
|
return (int)result;
|
||||||
}
|
}
|
||||||
|
@ -1531,6 +1531,8 @@ public class HeroLogic {
|
||||||
for(Pokemon pokemon : pokemonMap.values()){
|
for(Pokemon pokemon : pokemonMap.values()){
|
||||||
combinePokemonAttribute(pokemonAttributeMap, pokemon,false);
|
combinePokemonAttribute(pokemonAttributeMap, pokemon,false);
|
||||||
}
|
}
|
||||||
|
int i = calForce(pokemonAttributeMap) * 5;
|
||||||
|
|
||||||
return calForce(pokemonAttributeMap)*5;
|
return calForce(pokemonAttributeMap)*5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class MissionLoigc {
|
||||||
private static void getBeginnerMisssion(User user, List<CommonProto.UserMissionInfo> missionList) {
|
private static void getBeginnerMisssion(User user, List<CommonProto.UserMissionInfo> missionList) {
|
||||||
UserMissionManager userMissionManager = user.getUserMissionManager();
|
UserMissionManager userMissionManager = user.getUserMissionManager();
|
||||||
BeginerTaskIdsType beginerTaskIdsType = userMissionManager.getBeginerTaskIdsType();
|
BeginerTaskIdsType beginerTaskIdsType = userMissionManager.getBeginerTaskIdsType();
|
||||||
CumulationData begiinCumulationData = userMissionManager.getBegiinCumulationData();
|
CumulationData begiinCumulationData = userMissionManager.getBeginCumulationData();
|
||||||
Set<Integer> doingMissionIds = beginerTaskIdsType.getDoingMissionIds();
|
Set<Integer> doingMissionIds = beginerTaskIdsType.getDoingMissionIds();
|
||||||
Set<Integer> finishMissionIds = beginerTaskIdsType.getFinishMissionIds();
|
Set<Integer> finishMissionIds = beginerTaskIdsType.getFinishMissionIds();
|
||||||
Map<Integer, SBeginnerTask> sBeginnerTaskCongigMap = SBeginnerTask.sBeginnerTaskCongigMap;
|
Map<Integer, SBeginnerTask> sBeginnerTaskCongigMap = SBeginnerTask.sBeginnerTaskCongigMap;
|
||||||
|
@ -63,6 +63,41 @@ public class MissionLoigc {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void getServenMision(User user,int treasureActivityId,List<CommonProto.UserMissionInfo> missionList){
|
||||||
|
List<STreasureTaskConfig> sTreasureTaskConfigs = STreasureTaskConfig.sTreasureTaskConfigListByActivityMap.get(treasureActivityId);
|
||||||
|
UserMissionManager userMissionManager = user.getUserMissionManager();
|
||||||
|
ServenMissionIdsType sevenHappyMissionType = userMissionManager.getSevenHappyMissionType();
|
||||||
|
CumulationData dailyCumulationData = userMissionManager.getSevenHappyCumulationData();
|
||||||
|
Set<Integer> doingMissionIds = sevenHappyMissionType.getDoingMissionIds();
|
||||||
|
Set<Integer> finishMissionIds = sevenHappyMissionType.getFinishMissionIds();
|
||||||
|
int missionType = GameMisionType.SEVENMISSION.getType();
|
||||||
|
for(STreasureTaskConfig sTreasureTaskConfig:sTreasureTaskConfigs){
|
||||||
|
int state = 2;
|
||||||
|
int missionId = sTreasureTaskConfig.getId();
|
||||||
|
int progrss = sTreasureTaskConfig.getTaskValue()[1][0];
|
||||||
|
if(doingMissionIds.contains(missionId)){
|
||||||
|
state = 0;
|
||||||
|
if(progrss<0){
|
||||||
|
progrss=0;
|
||||||
|
}
|
||||||
|
progrss = getDoingProgress(user,dailyCumulationData,sTreasureTaskConfig.getTaskType(),sTreasureTaskConfig.getTaskValue()[0]);
|
||||||
|
}else if(finishMissionIds.contains(missionId)){
|
||||||
|
state = 1;
|
||||||
|
if(progrss<0){
|
||||||
|
progrss=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(state!=2 && sTreasureTaskConfig.getTaskType() == MissionType.SENVER_HAPPY.getMissionTypeValue()){
|
||||||
|
if(System.currentTimeMillis()>user.getActivityManager().getSenvenTime()){
|
||||||
|
state=1;
|
||||||
|
}else {
|
||||||
|
state =0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
missionList.add(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionId).setState(state).setType(missionType).setProgress(progrss).build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void getTreasureMission(User user, List<CommonProto.UserMissionInfo> missionList,int activityType) {
|
private static void getTreasureMission(User user, List<CommonProto.UserMissionInfo> missionList,int activityType) {
|
||||||
Map<Integer, ActivityMission> activityMissionMap = user.getActivityManager().getActivityMissionMap();
|
Map<Integer, ActivityMission> activityMissionMap = user.getActivityManager().getActivityMissionMap();
|
||||||
int treasureActivityId = 0;
|
int treasureActivityId = 0;
|
||||||
|
@ -78,9 +113,8 @@ public class MissionLoigc {
|
||||||
CumulationData treasureCumulationData = user.getUserMissionManager().getTreasureCumulationData();
|
CumulationData treasureCumulationData = user.getUserMissionManager().getTreasureCumulationData();
|
||||||
int treasuremissionType = GameMisionType.TREASUREMISSION.getType();
|
int treasuremissionType = GameMisionType.TREASUREMISSION.getType();
|
||||||
if(activityType == ActivityType.SERVERHAPPY){
|
if(activityType == ActivityType.SERVERHAPPY){
|
||||||
treasureMissionIdsType = user.getUserMissionManager().getSevenHappyMissionType();
|
getServenMision(user,treasureActivityId,missionList);
|
||||||
treasureCumulationData = user.getUserMissionManager().getSevenHappyCumulationData();
|
return;
|
||||||
treasuremissionType = GameMisionType.SEVENMISSION.getType();
|
|
||||||
}
|
}
|
||||||
BitSet rewardedMissionIds = treasureMissionIdsType.getRewardedMissionIds();
|
BitSet rewardedMissionIds = treasureMissionIdsType.getRewardedMissionIds();
|
||||||
Map<Integer, Integer> takeTimesMap = treasureMissionIdsType.getTakeTimes();
|
Map<Integer, Integer> takeTimesMap = treasureMissionIdsType.getTakeTimes();
|
||||||
|
@ -118,13 +152,6 @@ public class MissionLoigc {
|
||||||
}else{
|
}else{
|
||||||
takeTimes = takeTimesMap.get(missionId);
|
takeTimes = takeTimesMap.get(missionId);
|
||||||
}
|
}
|
||||||
if(state!=2 && sTreasureTaskConfig.getTaskType() == MissionType.SENVER_HAPPY.getMissionTypeValue()){
|
|
||||||
if(System.currentTimeMillis()>user.getActivityManager().getSenvenTime()){
|
|
||||||
state=1;
|
|
||||||
}else {
|
|
||||||
state =0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(takeTimes == null){
|
if(takeTimes == null){
|
||||||
takeTimes=0;
|
takeTimes=0;
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.mission.event;
|
||||||
import com.ljsd.jieling.config.SBeginnerTask;
|
import com.ljsd.jieling.config.SBeginnerTask;
|
||||||
import com.ljsd.jieling.config.SDailyTasksConfig;
|
import com.ljsd.jieling.config.SDailyTasksConfig;
|
||||||
import com.ljsd.jieling.config.STaskConfig;
|
import com.ljsd.jieling.config.STaskConfig;
|
||||||
|
import com.ljsd.jieling.config.STreasureTaskConfig;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mission.*;
|
import com.ljsd.jieling.logic.mission.*;
|
||||||
|
@ -284,7 +285,7 @@ public class MissionEventDistributor {
|
||||||
progress= MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getDailyCumulationData(),sDailyTasksConfig.getType(),sDailyTasksConfig.getValues()[0]);
|
progress= MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getDailyCumulationData(),sDailyTasksConfig.getType(),sDailyTasksConfig.getValues()[0]);
|
||||||
}else if(gameMisionType == GameMisionType.BEGINNERMISSION){
|
}else if(gameMisionType == GameMisionType.BEGINNERMISSION){
|
||||||
SBeginnerTask sBeginnerTask = SBeginnerTask.sBeginnerTaskCongigMap.get(missionStateChangeInfo.getMissionId());
|
SBeginnerTask sBeginnerTask = SBeginnerTask.sBeginnerTaskCongigMap.get(missionStateChangeInfo.getMissionId());
|
||||||
progress= MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getBegiinCumulationData(),sBeginnerTask.getTaskType(),sBeginnerTask.getTaskValue()[0]);
|
progress= MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getBeginCumulationData(),sBeginnerTask.getTaskType(),sBeginnerTask.getTaskValue()[0]);
|
||||||
}
|
}
|
||||||
}else if(missionState == MissionState.FINISH || missionState == MissionState.REWARD){
|
}else if(missionState == MissionState.FINISH || missionState == MissionState.REWARD){
|
||||||
if(gameMisionType == GameMisionType.VIPMISSION){
|
if(gameMisionType == GameMisionType.VIPMISSION){
|
||||||
|
@ -299,6 +300,10 @@ public class MissionEventDistributor {
|
||||||
SBeginnerTask sBeginnerTask = SBeginnerTask.sBeginnerTaskCongigMap.get(missionStateChangeInfo.getMissionId());
|
SBeginnerTask sBeginnerTask = SBeginnerTask.sBeginnerTaskCongigMap.get(missionStateChangeInfo.getMissionId());
|
||||||
progress= sBeginnerTask.getTaskValue()[1][0];
|
progress= sBeginnerTask.getTaskValue()[1][0];
|
||||||
}
|
}
|
||||||
|
if(gameMisionType == GameMisionType.SEVENMISSION){
|
||||||
|
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionStateChangeInfo.getMissionId());
|
||||||
|
progress= sTreasureTaskConfig.getTaskValue()[1][0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
builder.addUserMissionInfo(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionStateChangeInfo.getMissionId()).setType(gameMisionType.getType()).setState(state).setProgress(progress).setTakeTimes(missionStateChangeInfo.getHadTakes()));
|
builder.addUserMissionInfo(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionStateChangeInfo.getMissionId()).setType(gameMisionType.getType()).setState(state).setProgress(progress).setTakeTimes(missionStateChangeInfo.getHadTakes()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
package com.ljsd.jieling.logic.mission.main;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.config.SDailyTasksConfig;
|
||||||
|
import com.ljsd.jieling.config.STreasureTaskConfig;
|
||||||
|
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||||
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||||
|
import com.ljsd.jieling.logic.mission.MissionState;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class ServenMissionIdsType extends AbstractMissionType{
|
||||||
|
@Override
|
||||||
|
public void openMission(User user, int missionId,List<MissionStateChangeInfo> missionTypeEnumList) {
|
||||||
|
getDoingMissionIds().clear();
|
||||||
|
getFinishMissionIds().clear();
|
||||||
|
getDoingMissionIds().add(missionId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[][] reward(int missionId) {
|
||||||
|
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionId);
|
||||||
|
return sTreasureTaskConfig.getRewward();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) {
|
||||||
|
|
||||||
|
List<STreasureTaskConfig> sTaskConfigs = STreasureTaskConfig.sTreasureTaskConfigListByTypeMap.get(result.subType.getMissionTypeValue());
|
||||||
|
if (sTaskConfigs == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
checkAndUpdateMision(user,sTaskConfigs,missionStateChangeInfos,cumulationData);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void checkAndUpdateMision(User user,List<STreasureTaskConfig> sTaskConfigs, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData){
|
||||||
|
Set<Integer> doingMissionIds = getDoingMissionIds();
|
||||||
|
for (STreasureTaskConfig sTaskConfig : sTaskConfigs) {
|
||||||
|
int missionId = sTaskConfig.getId();
|
||||||
|
if (!doingMissionIds.contains(missionId)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
int finishParm = sTaskConfig.getTaskValue()[1][0];
|
||||||
|
int doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sTaskConfig.getTaskType(), sTaskConfig.getTaskValue()[0]);
|
||||||
|
if((doingProgress!=0 && finishParm<0 && ( doingProgress)>=finishParm)){
|
||||||
|
doingMissionIds.remove(sTaskConfig.getId());
|
||||||
|
getFinishMissionIds().add(sTaskConfig.getId());
|
||||||
|
MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(sTaskConfig.getId(), MissionState.FINISH,1);
|
||||||
|
missionStateChangeInfos.add(missionStateChangeInfo);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(finishParm<0){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
boolean isFinish = doingProgress >= sTaskConfig.getTaskValue()[1][0];
|
||||||
|
if (!isFinish) {
|
||||||
|
MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(missionId,
|
||||||
|
MissionState.DOING, doingProgress);
|
||||||
|
boolean flag = false;
|
||||||
|
for (MissionStateChangeInfo missionStateChangeInfo : missionStateChangeInfos) {
|
||||||
|
if (missionStateChangeInfo.getMissionId() == missionId) {
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!flag) {
|
||||||
|
missionStateChangeInfos.add(doingInfo);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
MissionStateChangeInfo finishInfo = new MissionStateChangeInfo(missionId,
|
||||||
|
MissionState.FINISH, finishParm);
|
||||||
|
Iterator<MissionStateChangeInfo> iterator = missionStateChangeInfos.iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
MissionStateChangeInfo next = iterator.next();
|
||||||
|
if (next.getMissionId() == missionId) {
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
missionStateChangeInfos.add(finishInfo);
|
||||||
|
doingMissionIds.remove(missionId);
|
||||||
|
getFinishMissionIds().add(missionId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,6 +15,7 @@ import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||||
|
import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType;
|
||||||
import com.ljsd.jieling.logic.mission.main.TreasureMissionType;
|
import com.ljsd.jieling.logic.mission.main.TreasureMissionType;
|
||||||
import com.ljsd.jieling.logic.store.GiftGoodsType;
|
import com.ljsd.jieling.logic.store.GiftGoodsType;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
@ -405,7 +406,7 @@ public class PlayerLogic {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(treasureActivityId);
|
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(treasureActivityId);
|
||||||
TreasureMissionType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType();
|
ServenMissionIdsType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType();
|
||||||
if(sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){
|
if(sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){
|
||||||
MessageUtil.sendErrorResponse(iSession,0,msgId,"奖励已领取");
|
MessageUtil.sendErrorResponse(iSession,0,msgId,"奖励已领取");
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -172,9 +172,7 @@ public class ProtocolsManager implements ProtocolsAbstract {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//处理多设备重登
|
//处理多设备重登
|
||||||
if (dealRepeatLogin(session.getUid())==1){
|
dealRepeatLogin(session.getUid());
|
||||||
return;
|
|
||||||
}
|
|
||||||
//刷新token
|
//刷新token
|
||||||
refreshToken(session);
|
refreshToken(session);
|
||||||
//在线列表加入session
|
//在线列表加入session
|
||||||
|
|
|
@ -85,6 +85,7 @@ public class ThreadManager {
|
||||||
LOGGER.info("delayForMinute---->>>>{}" ,delayForMinute);
|
LOGGER.info("delayForMinute---->>>>{}" ,delayForMinute);
|
||||||
scheduledExecutor.scheduleAtFixedRate(platConfigureTask, 10, SLEEP_INTEVAL_TIME, TimeUnit.SECONDS);
|
scheduledExecutor.scheduleAtFixedRate(platConfigureTask, 10, SLEEP_INTEVAL_TIME, TimeUnit.SECONDS);
|
||||||
scheduledExecutor.scheduleAtFixedRate(new MinuteTask(), delayForMinute, 60, TimeUnit.SECONDS);
|
scheduledExecutor.scheduleAtFixedRate(new MinuteTask(), delayForMinute, 60, TimeUnit.SECONDS);
|
||||||
|
scheduledExecutor.scheduleAtFixedRate(new SecondsTask(), 0, 1, TimeUnit.SECONDS);
|
||||||
scheduledExecutor.scheduleAtFixedRate(new Thread(){
|
scheduledExecutor.scheduleAtFixedRate(new Thread(){
|
||||||
public void run () {
|
public void run () {
|
||||||
long lastMilis = System.currentTimeMillis();
|
long lastMilis = System.currentTimeMillis();
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.ljsd.jieling.thread.task;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
public class SecondsTask extends Thread {
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(SecondsTask.class);
|
||||||
|
|
||||||
|
public SecondsTask(){
|
||||||
|
this.setName("SecondsTask");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
|
||||||
|
GuilidManager.checkNeedReleaseGuild();
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOGGER.error("e",e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -350,7 +350,7 @@ public class CBean2Proto {
|
||||||
.setName(guildInfo.getName())
|
.setName(guildInfo.getName())
|
||||||
.setJoinType(guildInfo.getJoinType())
|
.setJoinType(guildInfo.getJoinType())
|
||||||
.setMaxNum(30)
|
.setMaxNum(30)
|
||||||
.setLevle(guildInfo.getLevelTime())
|
.setLevelTime(guildInfo.getLevelTime())
|
||||||
.setLevle(guildInfo.getLevel())
|
.setLevle(guildInfo.getLevel())
|
||||||
.setExp(guildInfo.getExp())
|
.setExp(guildInfo.getExp())
|
||||||
.setTotalNum(guildInfo.getTotalMembers())
|
.setTotalNum(guildInfo.getTotalMembers())
|
||||||
|
|
Loading…
Reference in New Issue