add task & mail
parent
7b94b53fd9
commit
e81666ab37
|
@ -0,0 +1,35 @@
|
|||
package com.ljsd.jieling.config;
|
||||
|
||||
import com.ljsd.jieling.logic.STableManager;
|
||||
import com.ljsd.jieling.logic.Table;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Table(name ="TestWelfare")
|
||||
public class STestWelfare implements BaseConfig {
|
||||
|
||||
private int id;
|
||||
|
||||
private int[] reward;
|
||||
|
||||
public static Map<Integer, STestWelfare> testWelfareMap;
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
testWelfareMap= STableManager.getConfig(STestWelfare.class);
|
||||
}
|
||||
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int[] getReward() {
|
||||
return reward;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -2191,6 +2191,7 @@ public class MapLogic {
|
|||
RedisUtil.getInstence().set(key, fightInfo, sFloodConfig.getBattleTime() + 100);
|
||||
FightInfoProto.FightStartResponse.Builder fightStartResponse = FightInfoProto.FightStartResponse.newBuilder();
|
||||
BehaviorUtil.getLevelDifficultyifficuFightInfo(user, sFloodConfig.getMonster(), teamId, sFloodConfig.getBattleTime(), fightStartResponse, RedisKey.CHALLENGE_MONSTER_ATTACK);
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.MONSTER_ATTACK_PLAY);
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightStartResponse.build(), true);
|
||||
}
|
||||
|
||||
|
@ -2268,6 +2269,7 @@ public class MapLogic {
|
|||
fightEndResponse.setResult(resultCode);
|
||||
fightEndResponse.build();
|
||||
user.getMapManager().setLastMonsterAttack(checkFightId + 1);
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.MONSTER_ATTACK_LEVEL);
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true);
|
||||
}
|
||||
|
||||
|
|
|
@ -255,6 +255,10 @@ public class GlobalDataManaager {
|
|||
PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0);
|
||||
FriendLogic.getInstance().refreshState(session);
|
||||
int sendDays = user.getPlayerInfoManager().getSendDays();
|
||||
int differentDays = TimeUtils.differentDaysByHour(System.currentTimeMillis(), user.getPlayerInfoManager().getLoginTime(), 5);
|
||||
PlayerLogic.getInstance().sendTestWelfareMail(user,sendDays,sendDays+differentDays);
|
||||
user.getPlayerInfoManager().setSendDays(sendDays+differentDays);
|
||||
// MapLogic.getInstance().towerAutoReset(session,fBuilder);
|
||||
if(fBuilder!=null){
|
||||
fBuilder.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(user.getPlayerInfoManager().getSign()+1).setState(user.getPlayerInfoManager().getSignTotay()).build());
|
||||
|
|
|
@ -108,6 +108,8 @@ public class CumulationData {
|
|||
|
||||
public int friendNums;
|
||||
|
||||
public int monsterAttackTimes;
|
||||
|
||||
|
||||
|
||||
//任务重置
|
||||
|
@ -153,6 +155,7 @@ public class CumulationData {
|
|||
heroUpSomeStarTimesMap.clear();
|
||||
givePresents=0;
|
||||
friendNums=0;
|
||||
monsterAttackTimes = 0;
|
||||
}
|
||||
|
||||
private void clearArray(int[] source){
|
||||
|
|
|
@ -80,6 +80,8 @@ public class PlayerManager extends MongoBase {
|
|||
|
||||
private Set<Integer> fixIds = new CopyOnWriteArraySet<>();
|
||||
|
||||
private int sendDays;
|
||||
|
||||
public PlayerManager(){
|
||||
this.setRootCollection(User._COLLECTION_NAME);
|
||||
}
|
||||
|
@ -445,4 +447,13 @@ public class PlayerManager extends MongoBase {
|
|||
updateString("isdayFirst", isdayFirst);
|
||||
this.isdayFirst = isdayFirst;
|
||||
}
|
||||
|
||||
public int getSendDays() {
|
||||
return sendDays;
|
||||
}
|
||||
|
||||
public void setSendDays(int sendDays) {
|
||||
updateString("sendDays", sendDays);
|
||||
this.sendDays = sendDays;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,6 +51,7 @@ public class UserManager {
|
|||
initPlayer(user,openId);
|
||||
UserManager.addUser(user);
|
||||
MongoUtil.getInstence().getMyMongoTemplate().save(user);
|
||||
PlayerLogic.getInstance().sendTestWelfareMail(user,1,2);
|
||||
return user;
|
||||
}
|
||||
|
||||
|
@ -66,6 +67,7 @@ public class UserManager {
|
|||
playerManager.updateGuidePoint(1,1);
|
||||
playerManager.setCreateTime(now);
|
||||
playerManager.setLoginTime(now);
|
||||
playerManager.setSendDays(1);
|
||||
playerManager.updateVipInfo(user,0);
|
||||
playerManager.setRechargeInfo(new RechargeInfo());
|
||||
playerManager.setHeadFrame(SGameSetting.getGameSetting().getDefaultPicture());
|
||||
|
|
|
@ -204,11 +204,14 @@ public class CombatLogic {
|
|||
int fightResult = checkResult[0];
|
||||
if(fightResult == 1){
|
||||
adventureManager.addAdventureStation(new AdventureStateInfo(arenaId));
|
||||
int[][] drop= new int[1][];
|
||||
drop[0] = new int[2];
|
||||
drop[0][0]=SGameSetting.getGameSetting().getAdventureItem();
|
||||
drop[0][1] = 1;
|
||||
ItemUtil.drop(user,drop,BIReason.FIRST_ADVENTURE_REWARD);
|
||||
if(arenaId == 1){
|
||||
int[][] drop= new int[1][];
|
||||
drop[0] = new int[2];
|
||||
drop[0][0]=SGameSetting.getGameSetting().getAdventureItem();
|
||||
drop[0][1] = 1;
|
||||
ItemUtil.drop(user,drop,BIReason.FIRST_ADVENTURE_REWARD);
|
||||
}
|
||||
|
||||
}
|
||||
FightInfoProto.AdventurnChallengeResponse.Builder builder = FightInfoProto.AdventurnChallengeResponse.newBuilder().setFightResult(fightResult);
|
||||
|
||||
|
@ -539,6 +542,7 @@ public class CombatLogic {
|
|||
.setArenaId(adventureStateInfo.getPosition())
|
||||
.setBossGroupId(adventureBoss.getBossGroupId())
|
||||
.setRemainTime(remainTime)
|
||||
.setBossId(bossId)
|
||||
.build()).build();
|
||||
MessageUtil.sendMessage(iSession,1,msgId,build,true);
|
||||
}
|
||||
|
@ -656,12 +660,10 @@ public class CombatLogic {
|
|||
builder.setKillRewards(killReward);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.KILLINVASIONBOSS);
|
||||
RedisUtil.getInstence().removeMapEntrys(RedisKey.ADVENTRUEN_BOSS_INFO,"",bossId);
|
||||
if(adventureBoss.getFindUserId()!=uid){
|
||||
ISession findSession = OnlineUserManager.getSessionByUid(adventureBoss.getFindUserId());
|
||||
if(findSession!=null){
|
||||
FightInfoProto.AdventureBossKillIndication bossKilled = FightInfoProto.AdventureBossKillIndication.newBuilder().setBossId(adventureBoss.getBossId()).setPos(adventureBoss.getArenaId()).build();
|
||||
MessageUtil.sendIndicationMessage(findSession,1, MessageTypeProto.MessageType.ADVENTURE_BOSS_KILL_INDICATION_VALUE,bossKilled,true);
|
||||
}
|
||||
ISession findSession = OnlineUserManager.getSessionByUid(adventureBoss.getFindUserId());
|
||||
if(findSession!=null){
|
||||
FightInfoProto.AdventureBossKillIndication bossKilled = FightInfoProto.AdventureBossKillIndication.newBuilder().setBossId(adventureBoss.getBossId()).setPos(adventureBoss.getArenaId()).build();
|
||||
MessageUtil.sendIndicationMessage(findSession,1, MessageTypeProto.MessageType.ADVENTURE_BOSS_KILL_INDICATION_VALUE,bossKilled,true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -49,4 +49,7 @@ public enum GameEvent {
|
|||
GIVE_PRESENT,//赠送体力
|
||||
FRIEND_NUMS,//好友数量
|
||||
|
||||
MONSTER_ATTACK_PLAY,//参与兽潮来袭
|
||||
MONSTER_ATTACK_LEVEL, // 兽潮来袭到达层
|
||||
|
||||
}
|
||||
|
|
|
@ -578,6 +578,12 @@ public class MissionLoigc {
|
|||
count = num;
|
||||
}
|
||||
break;
|
||||
case JOIN_MONSTER_ATTACK_TIMES:
|
||||
count = cumulationData.monsterAttackTimes;
|
||||
break;
|
||||
case MONSTER_ATTACK_LEVEL:
|
||||
count = user.getMapManager().getLastMonsterAttack() - 1;
|
||||
break;
|
||||
default:
|
||||
count = 0;
|
||||
break;
|
||||
|
|
|
@ -74,6 +74,9 @@ public enum MissionType {
|
|||
GIVE_FRIEND_STAMIN_TIMES(54),//赠送好友体力次数:%s
|
||||
HERO_UP_SOME_STAR_TIMES(55),//进阶x星卡牌个数达到:%s
|
||||
|
||||
JOIN_MONSTER_ATTACK_TIMES(56),//参与兽潮来袭的次数
|
||||
MONSTER_ATTACK_LEVEL(57),//兽潮来袭到达x层
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
@ -199,6 +202,10 @@ public enum MissionType {
|
|||
return GIVE_FRIEND_STAMIN_TIMES;
|
||||
case 55:
|
||||
return HERO_UP_SOME_STAR_TIMES;
|
||||
case 56:
|
||||
return JOIN_MONSTER_ATTACK_TIMES;//参与兽潮来袭的次数
|
||||
case 57:
|
||||
return MONSTER_ATTACK_LEVEL;//兽潮来袭到达x层
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -95,6 +95,9 @@ public class DataManagerDistributor {
|
|||
|
||||
judges.put(MissionType.VIP_LEVEL,new DefaultDataManager());
|
||||
|
||||
judges.put(MissionType.JOIN_MONSTER_ATTACK_TIMES,new JoinMonsterAttackManager());
|
||||
judges.put(MissionType.MONSTER_ATTACK_LEVEL,new DefaultDataManager());
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
package com.ljsd.jieling.logic.mission.data;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
|
||||
public class JoinMonsterAttackManager implements BaseDataManager{
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
data.monsterAttackTimes++;
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
|
@ -231,6 +231,16 @@ public class MissionEventDistributor {
|
|||
eventEnumListMap.put(GameEvent.FRIEND_NUMS,typeList);
|
||||
eventProcessor.put(GameEvent.FRIEND_NUMS,new CumulationDataEventProcessor());
|
||||
|
||||
typeList = new ArrayList<>();
|
||||
typeList.add(MissionType.JOIN_MONSTER_ATTACK_TIMES);
|
||||
eventEnumListMap.put(GameEvent.MONSTER_ATTACK_PLAY,typeList);
|
||||
eventProcessor.put(GameEvent.MONSTER_ATTACK_PLAY,new CumulationDataEventProcessor());
|
||||
|
||||
typeList = new ArrayList<>();
|
||||
typeList.add(MissionType.MONSTER_ATTACK_LEVEL);
|
||||
eventEnumListMap.put(GameEvent.MONSTER_ATTACK_LEVEL,typeList);
|
||||
eventProcessor.put(GameEvent.MONSTER_ATTACK_LEVEL,new CumulationDataEventProcessor());
|
||||
|
||||
}
|
||||
|
||||
private static final ThreadLocal<Map<GameMisionType, List<MissionStateChangeInfo>>> threadMissionChangeList =
|
||||
|
|
|
@ -452,4 +452,19 @@ public class PlayerLogic {
|
|||
PlayerInfoProto.TakeSenvenScoreRewardResponse build = PlayerInfoProto.TakeSenvenScoreRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(iSession,1,msgId,build,true);
|
||||
}
|
||||
|
||||
|
||||
public void sendTestWelfareMail(User user,int sendDay,int duration) throws Exception {
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("welfare_activity_daily_title");
|
||||
for(;sendDay<duration;sendDay++){
|
||||
STestWelfare sTestWelfare = STestWelfare.testWelfareMap.get(sendDay);
|
||||
if(sTestWelfare == null){
|
||||
return;
|
||||
}
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("welfare_activity_daily_txt",new String[]{Integer.toString(sendDay)});
|
||||
String mailReward = ItemUtil.getMailReward(user, sTestWelfare.getReward(), 1.0f);
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,(int)(System.currentTimeMillis()/1000),Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue