神尊特权

xuexinpeng 2022-05-24 00:10:32 +08:00
parent 41b599a9f0
commit 3715b8b869
10 changed files with 163 additions and 5 deletions

View File

@ -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; //未发布

View File

@ -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();
}

View File

@ -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;

View File

@ -131,4 +131,5 @@ public interface ActivityType {
int LING_LONG_PAVILION = 20005;//玲珑宝阁
int DAILY_SPECIAL = 10004;//每日特惠
int WHOLE_LIFE_CARD = 99;//终生卡
}

View File

@ -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;

View File

@ -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;
}*/
}

View File

@ -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;
}

View File

@ -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);

View File

@ -16,6 +16,7 @@ public interface GiftGoodsType {
int ENDLESS_TREASURE = 14;//无尽秘宝
int DailyPreferentialGift = 17 ;//每日特惠礼包
int RechargeSumDay = 18 ;//超值返利礼包(在积天豪礼活动里购买)
int WholeLife = 18 ;//【神尊特权】活动 购买后每日领取奖励
}

View File

@ -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;
}
}