神尊特权
parent
41b599a9f0
commit
3715b8b869
|
@ -35,6 +35,7 @@ public interface Global {
|
|||
int MAIL_TYPE_IDIP = 2; //idip 邮件
|
||||
int MAIL_TYPE_GM = 3; // GM 邮件
|
||||
int MAIL_EFFECTIVE_TIME = 720 * 60 * 60; // 有效时间 30天
|
||||
int MAIL_EFFECTIVE_TIME_SERVEN = 168 * 60 * 60; // 有效时间 7天
|
||||
int MAIL_NOUSE_DELETE_TIME = 3;//已读邮件和已领取邮件3天后自动删除
|
||||
//sysMail state
|
||||
int SYS_MAIL_STATE_NEW = 1; //未发布
|
||||
|
|
|
@ -9,10 +9,7 @@ import com.ljsd.jieling.core.FunctionManager;
|
|||
import com.ljsd.jieling.core.function.FunctionContext;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.handler.map.MapLogic;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.FightMainEventHandler;
|
||||
import com.ljsd.jieling.logic.activity.RemoveEventHeroHandler;
|
||||
import com.ljsd.jieling.logic.activity.UserLevelEventHandler;
|
||||
import com.ljsd.jieling.logic.activity.*;
|
||||
import com.ljsd.jieling.logic.activity.activityLogic.WeekCardLogic;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent;
|
||||
|
@ -520,6 +517,11 @@ public class GlobalDataManaager implements IManager {
|
|||
HeroLogic.getInstance().resetWishDrawCardInfoMap(user);
|
||||
//玉虚论道每日刷新
|
||||
user.getArenaManager().setCrossYuxulundaoDailyRewad(new ArrayList<>(Arrays.asList(0,0,0)));
|
||||
//终身卡在线跨天
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(9901);
|
||||
if(abstractActivity instanceof WholeLifeActivity){
|
||||
((WholeLifeActivity)abstractActivity).calWhenLogin(user);
|
||||
}
|
||||
///清空当天推送的礼包次数
|
||||
user.getPlayerInfoManager().getNewRechargeInfo().ClearDayPushMap();
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ import java.util.*;
|
|||
public abstract class AbstractActivity implements IActivity, IEventHandler {
|
||||
static final Logger LOGGER = LoggerFactory.getLogger(AbstractActivity.class);
|
||||
final int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE;
|
||||
int id; //活动id
|
||||
int id; //活动idid
|
||||
|
||||
public AbstractActivity(int id) {
|
||||
this.id = id;
|
||||
|
|
|
@ -131,4 +131,5 @@ public interface ActivityType {
|
|||
int LING_LONG_PAVILION = 20005;//玲珑宝阁
|
||||
|
||||
int DAILY_SPECIAL = 10004;//每日特惠
|
||||
int WHOLE_LIFE_CARD = 99;//终生卡
|
||||
}
|
||||
|
|
|
@ -108,6 +108,7 @@ public enum ActivityTypeEnum {
|
|||
EXPLORE_EXPECT_ACTIVITY(ActivityType.EXPLORE_EXPECT_ACTIVITY,ExploreExpectActivity::new),
|
||||
POWER_RICE_ACTIVITY(ActivityType.POWER_RICE_ACTIVITY,PowerRiceActivity::new),//战力冲刺
|
||||
DONGHAI_XUNXIAN_ACTIVITY(ActivityType.DonghaiXunxian,DonghaiXunxianActivity::new),//东海寻仙
|
||||
WHOEL_LIFE_ACTIVITY(ActivityType.WHOLE_LIFE_CARD,WholeLifeActivity::new),//东海寻仙
|
||||
;
|
||||
|
||||
private int type;
|
||||
|
|
|
@ -0,0 +1,128 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.jbean.ActivityManager;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.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 config.SActivityRewardConfig;
|
||||
import config.SErrorCodeEerverConfig;
|
||||
import config.SRechargeCommodityNewConfig;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* 【神尊特权】活动 终生卡
|
||||
*/
|
||||
public class WholeLifeActivity extends AbstractActivity {
|
||||
|
||||
|
||||
public WholeLifeActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
super.initActivity(user);
|
||||
ActivityMission mission = new ActivityMission();
|
||||
// 活动信息初始化
|
||||
//SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(1000);
|
||||
/*List<SActivityRewardConfig> rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
ArrayList<Integer> integers = new ArrayList<>(rewardConfigs.size());
|
||||
rewardConfigs.forEach(v->integers.add(v.getId()));*/
|
||||
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
|
||||
mission.setCreatTime(0);
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
LOGGER.info("神尊特权初始化...uid={} activityId={}", user.getId(), id);
|
||||
}
|
||||
|
||||
public void calWhenLogin(User user) throws Exception{
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
||||
if (activityMission == null) {
|
||||
return;
|
||||
}
|
||||
if (activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
|
||||
return;
|
||||
}
|
||||
if(activityMission.getCreatTime() == 0){
|
||||
return;
|
||||
}
|
||||
activityMission.setV(1);
|
||||
if(user.getPlayerInfoManager().getLastWholeLifeTime() ==0 ){
|
||||
return;
|
||||
}
|
||||
int day = (int) TimeUtils.getGapDaysByTwoTime(TimeUtils.getTimeStamp2(user.getPlayerInfoManager().getLastWholeLifeTime()),
|
||||
TimeUtils.getTimeStamp2(TimeUtils.now()));
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("shenzuntequan_mail_title");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("shenzuntequan_mail_txt");
|
||||
SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(1000);
|
||||
String mailReward = ItemUtil.getMailReward(config.getExtraReward());
|
||||
int nowTime = (int) (TimeUtils.now() / 1000);
|
||||
for(int i =day;i>0;i--){
|
||||
MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME_SERVEN);
|
||||
}
|
||||
//ActivityLogic.getInstance().sendActivityInfo(user, id);
|
||||
/*long times;
|
||||
if (user.getPlayerInfoManager().getLastWholeLifeTime() == 0) {
|
||||
times = activityMission.getCreatTime();
|
||||
} else {
|
||||
times = user.getPlayerInfoManager().getLastWholeLifeTime();
|
||||
}
|
||||
int day = (int) TimeUtils.getGapDaysByTwoTime(TimeUtils.getTimeStamp2(times),
|
||||
TimeUtils.getTimeStamp2(TimeUtils.now()));
|
||||
activityMission.setV(activityMission.getV() + day > 7 ? 7 : day);*/
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig,
|
||||
ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
||||
if (activityMission == null) {
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
if (activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
if (activityMission.getV() != 1) {
|
||||
return false;
|
||||
|
||||
}
|
||||
activityMission.setV(2);
|
||||
user.getPlayerInfoManager().setLastWholeLifeTime(TimeUtils.now());
|
||||
SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(1000);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, config.getExtraReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) {
|
||||
try{
|
||||
User user = UserManager.getUser(uid);
|
||||
calWhenLogin(user);
|
||||
}catch (Exception e){
|
||||
|
||||
}
|
||||
return true;
|
||||
}*/
|
||||
}
|
|
@ -231,6 +231,17 @@ public class PlayerManager extends MongoBase {
|
|||
|
||||
private int exploreKillTotalNum; //探索杀敌总数
|
||||
|
||||
private long lastWholeLifeTime;//最近一次领取终身卡的时间
|
||||
|
||||
public long getLastWholeLifeTime() {
|
||||
return lastWholeLifeTime;
|
||||
}
|
||||
|
||||
public void setLastWholeLifeTime(long lastWholeLifeTime) {
|
||||
this.lastWholeLifeTime = lastWholeLifeTime;
|
||||
updateString("lastWholeLifeTime", lastWholeLifeTime);
|
||||
}
|
||||
|
||||
public int getExploreKillTotalNum() {
|
||||
return exploreKillTotalNum;
|
||||
}
|
||||
|
|
|
@ -473,6 +473,14 @@ public class BuyGoodsNewLogic {
|
|||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(ActivityType.DAILY_PREFERENTIAL_GIFT);
|
||||
abstractActivity.initActivity(user);
|
||||
}
|
||||
if(type ==GiftGoodsType.WholeLife){
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(9901);
|
||||
abstractActivity.initActivity(user);
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(9901);
|
||||
activityMission.setV(2);
|
||||
activityMission.setCreatTime(TimeUtils.now());
|
||||
user.getActivityManager().getActivityMissionMap().put(9901, activityMission);
|
||||
}
|
||||
if(drop!=null&&session!=null){
|
||||
PlayerInfoProto.DirectBuyIndication build = PlayerInfoProto.DirectBuyIndication.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.DIRECT_BUY_GOODS_INDICATION_VALUE,build,true);
|
||||
|
|
|
@ -16,6 +16,7 @@ public interface GiftGoodsType {
|
|||
int ENDLESS_TREASURE = 14;//无尽秘宝
|
||||
int DailyPreferentialGift = 17 ;//每日特惠礼包
|
||||
int RechargeSumDay = 18 ;//超值返利礼包(在积天豪礼活动里购买)
|
||||
int WholeLife = 18 ;//【神尊特权】活动 购买后每日领取奖励
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -66,6 +66,7 @@ public class SRechargeCommodityNewConfig implements BaseConfig {
|
|||
private String[][] condition;
|
||||
|
||||
private int isRecommond;
|
||||
private int[][] extraReward;
|
||||
|
||||
public static Map<Integer,SRechargeCommodityNewConfig> configMap;
|
||||
public static Map<String,SRechargeCommodityNewConfig> sdkconfigMap;
|
||||
|
@ -216,4 +217,8 @@ public class SRechargeCommodityNewConfig implements BaseConfig {
|
|||
public int getIsRecommond() {
|
||||
return isRecommond;
|
||||
}
|
||||
|
||||
public int[][] getExtraReward() {
|
||||
return extraReward;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue