bt:新增特权

back_recharge
duhui 2022-09-08 15:40:52 +08:00
parent 73a0b91d3e
commit 8c86bb20f7
5 changed files with 80 additions and 25 deletions

View File

@ -55,4 +55,10 @@ public interface VipPrivilegeType {
int HOME_DAY_TIME_NUM = 4021;//每日浮生特权秒时间次数%
int HOME_ADD_EARNINGS = 4022;//浮生特权增加浮生门产出建筑产量
int CHALLENGE_MAINLINE_ADD_USER_EXP = 2402;//挑战关卡主角经验产出提升%
int CHALLENGE_MAINLINE_ADD_ONE_RECHARGE_NUM = 2501;//挑战关卡掉落一元直充卡数量增加%
int HANGUP_ADD_ONE_RECHARGE_NUM = 2201;//挂机掉落GM直充卡提升%
}

View File

@ -45,6 +45,8 @@ public interface GlobalItemType {
int LIKABILITY_CHIP = 35;//好感度碎片
int EQUIP_CHIP = 36;//装备碎片
int ONE_RECHARGE_CARD = 000;//一元直充卡
//物品使用类型
int NO_USE = 0 ; //不使用
int RANDOM_USE = 1; // 随机使用

View File

@ -1829,11 +1829,6 @@ public class MapLogic {
FightInfoProto.MainLevelFightUpdateIndication build = FightInfoProto.MainLevelFightUpdateIndication.newBuilder().setState(mainLevelManager.getState()).setFightId(mainLevelManager.getFightId()).build();
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.MAIN_LEVEL_FIGHT_UPDATE_INDICATION_VALUE, build, true);
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true);
int integerValue = SSpecialConfig.getIntegerValue(SSpecialConfig.DISCOUNT_MAIN);
// String rankKey = RedisKey.getKey(RedisKey.MAINLEVEL_RANK, "", false);
// RedisUtil.getInstence().zsetAddOne(rankKey, String.valueOf(user.getId()), sMainLevelConfig.getVirtureId());
RankContext.getRankEnum(RankEnum.MAIN_LEVEL_RANK.getType()).addRank(uid, "", sMainLevelConfig.getVirtureId(), user.getPlayerInfoManager().getMaxForce());
ReportUtil.onReportEvent(user, ReportEventEnum.PASS_STAGE.getType(), String.valueOf(fightId), "", sMainLevelConfig.getReward(), new Date());

View File

@ -1829,29 +1829,82 @@ public class ItemUtil {
return itemTypeMap;
}
//特权加成收益计算
public static long privilegeAdd(User user,int reason,int itemType,long sourceNum){
// int vipLevel = user.getPlayerInfoManager().getVipLevel();
// SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevel);
// Map<Integer, Integer> privilegeMap = sVipLevelConfig.getPrivilegeMap();
/**
*
* @param user
* @param reason
* @param itemType
* @param sourceNum
* @return
*/
public static long privilegeAdd(User user,int reason,int itemType,long sourceNum){
// 基础奖励,挑战
if(reason == BIReason.ADVENTURE_BASE_REWARD){
if(itemType == Global.EXP){
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_EXP_REWARD);
return sourceNum;
}
if(itemType!=Global.MISSING_ROOM_ITEM){
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum, VipPrivilegeType.ADVENTURE_BASE_REWARD);
}
sourceNum = baseReward(user, itemType, sourceNum);
}
if(reason == BIReason.ADVENTURE_BASE_REWARD || reason == BIReason.ADVENTURE_RANDOM_REWARDD ){
if(itemType == GlobalItemType.MINERAL){
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_MINERAL_REWARD);
}else if(itemType == GlobalItemType.RUNNE){
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_RUNNE_REWARD);
}
// 随机奖励,挂机
if(reason == BIReason.ADVENTURE_RANDOM_REWARDD){
sourceNum = randomReward(user, itemType, sourceNum);
}
return sourceNum;
}
/**
*
* @param user
* @param itemType
* @param sourceNum
* @return
*/
private static long baseReward(User user,int itemType,long sourceNum){
switch (itemType){
case Global.EXP:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_EXP_REWARD);
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.CHALLENGE_MAINLINE_ADD_USER_EXP);
break;
case Global.MISSING_ROOM_ITEM:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum, VipPrivilegeType.ADVENTURE_BASE_REWARD);
break;
case GlobalItemType.MINERAL:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_MINERAL_REWARD);
break;
case GlobalItemType.RUNNE:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_RUNNE_REWARD);
break;
case GlobalItemType.ONE_RECHARGE_CARD:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.CHALLENGE_MAINLINE_ADD_ONE_RECHARGE_NUM);
break;
default:
break;
}
return sourceNum;
}
/**
*
* @param user
* @param reason
* @param itemType
* @param sourceNum
* @return
*/
private static long randomReward(User user,int itemType,long sourceNum){
switch (itemType){
case GlobalItemType.MINERAL:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_MINERAL_REWARD);
break;
case GlobalItemType.RUNNE:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_RUNNE_REWARD);
break;
case GlobalItemType.ONE_RECHARGE_CARD:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.HANGUP_ADD_ONE_RECHARGE_NUM);
break;
default:
break;
}
return sourceNum;
}
public static int[][] mapToArray(Map<Integer,Integer> map){
int[][] itemArray = new int[map.size()][];
@ -1888,7 +1941,6 @@ public class ItemUtil {
private static long parseTheValueByPrivilegeMap(User user,long sourceNum,int privigeId){
int privigeValue = PlayerLogic.getInstance().getMaxCountByPrivilegeType(user,privigeId);
// Integer privigeValue = privilegeMap.get(privigeId);
if(privigeValue!=0){
SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privigeId);
int dataType = sPrivilegeTypeConfig.getIfFloat();

View File

@ -133,8 +133,8 @@ public class SSpecialConfig implements BaseConfig {
public static final String GodSignOpenStar = "GodSignOpenStar";//神印格子开启所需神将星级
public static final String ChangingPosUnlock = "ChangingPosUnlock";//3个变身卡化身位解锁所需的化身之力等级
public static final String EquipTalismanaUpperLimit = "EquipTalismanaUpperLimit ";//法宝等级上限
public static final String EquipRankResetCost = "EquipRankResetCost";//摘星阁装备强化精炼重置消耗
public static final String ShenZhunTeQuan = "ShenZhunTeQuan";//神尊特权加个兑换10仙晶兑换1神尊经验
@Override
public void init() throws Exception {