迷宫寻宝

back_recharge
lvxinran 2019-12-18 14:06:07 +08:00
parent 23488394d9
commit 628902282d
6 changed files with 74 additions and 36 deletions

View File

@ -192,6 +192,8 @@ public interface BIReason {
int MISSING_ROOM_SEND_CONSUME = 1048;//迷宫寻宝派遣消耗 int MISSING_ROOM_SEND_CONSUME = 1048;//迷宫寻宝派遣消耗
int MISSING_ROOM_ACCELERATE_CONSUME = 1049;//迷宫寻宝加速消耗

View File

@ -26,6 +26,7 @@ import com.ljsd.jieling.thread.task.RPCServerTask;
import com.ljsd.jieling.util.CBean2Proto; import com.ljsd.jieling.util.CBean2Proto;
import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.MessageUtil;
import config.SChallengeConfig; import config.SChallengeConfig;
import config.SMazeTreasureSetting;
import config.SRechargeCommodityConfig; import config.SRechargeCommodityConfig;
import manager.STableManager; import manager.STableManager;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -136,6 +137,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
endless.setBloodScore(RedisUtil.getInstence().getZSetScore(RedisKey.BLOODY_RANK,Integer.toString(1), Integer.toString(userId)).intValue()); endless.setBloodScore(RedisUtil.getInstence().getZSetScore(RedisKey.BLOODY_RANK,Integer.toString(1), Integer.toString(userId)).intValue());
List<CommonProto.GiftGoodsInfo> goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size()); List<CommonProto.GiftGoodsInfo> goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size());
BuyGoodsLogic.getGoodsBagInfo(userId,goodsBagInfo,true); BuyGoodsLogic.getGoodsBagInfo(userId,goodsBagInfo,true);
int vipPrivilageValue = user.getPlayerInfoManager().getVipPrivilageValue(SMazeTreasureSetting.sMazeTreasureSetting.getRefreshVIP());
PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse
= PlayerInfoProto.GetPlayerInfoResponse.newBuilder() = PlayerInfoProto.GetPlayerInfoResponse.newBuilder()
.setPlayer(player) .setPlayer(player)
@ -164,7 +166,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
.addAllPlayedMapTypes(mapManager.getPlayedMapType()) .addAllPlayedMapTypes(mapManager.getPlayedMapType())
.setAmount(rechargeInfo.getSaveAmt()) .setAmount(rechargeInfo.getSaveAmt())
.setVipDaily(playerInfoManager.getHadTakeDailyBoxVip()) .setVipDaily(playerInfoManager.getHadTakeDailyBoxVip())
.setMissingRefreshCount(user.getUserMissionManager().getMissingRoomMissionType().getCoinRefreshCount()) .setMissingRefreshCount(vipPrivilageValue)
.build(); .build();
try { try {
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_PLAYERINFO_RESPONSE_VALUE, getPlayerInfoResponse, true); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_PLAYERINFO_RESPONSE_VALUE, getPlayerInfoResponse, true);

View File

@ -166,28 +166,33 @@ public class UserMissionManager extends MongoBase {
missingRoomMissionType.getFinishMissionIds().removeIf(value->missingRoomMissionType.getAllMissingTime().get(value)==-1); missingRoomMissionType.getFinishMissionIds().removeIf(value->missingRoomMissionType.getAllMissingTime().get(value)==-1);
missingRoomMissionType.getAllMissingTime().values().removeIf(value->value==-1); missingRoomMissionType.getAllMissingTime().values().removeIf(value->value==-1);
boolean result; boolean result;
SMazeTreasureSetting sMazeTreasureSetting = SMazeTreasureSetting.sMazeTreasureSettingMap.get(1); SMazeTreasureSetting sMazeTreasureSetting = SMazeTreasureSetting.sMazeTreasureSetting;
result = ItemUtil.itemCost(user, new int[][]{sMazeTreasureSetting.getTakeOrder()}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1); result = ItemUtil.itemCost(user, new int[][]{sMazeTreasureSetting.getTakeOrder()}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1);
if(!result){ if(!result){
result = ItemUtil.itemCost(user, new int[][]{sMazeTreasureSetting.getRefreshItem()}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1); result = ItemUtil.itemCost(user, new int[][]{sMazeTreasureSetting.getRefreshItem()}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1);
if(!result){ if(!result){
int coinRefreshCount = missingRoomMissionType.getCoinRefreshCount(); int coinRefreshCount = user.getPlayerInfoManager().getVipPrivilageValue(sMazeTreasureSetting.getRefreshVIP());
int[][] refreshHighTypeNum = SMazeTreasureSetting.sMazeTreasureSettingMap.get(1).getRefreshHighTypeNum();
for(int[] refresh:refreshHighTypeNum){
if(coinRefreshCount==0||coinRefreshCount%refresh[0]!=0){
continue;
}else{
mustAppear.put(refresh[1],mustAppear.get(refresh[1])==null?1:(mustAppear.get(refresh[1])+1));
}
}
int[][] cost = sMazeTreasureSetting.getCost(); int[][] cost = sMazeTreasureSetting.getCost();
int count = (int)MathUtils.calABX(coinRefreshCount, cost[1]); int count = (int)MathUtils.calABX(coinRefreshCount, cost[1]);
result = ItemUtil.itemCost(user, new int[][]{new int[]{cost[0][0], count}}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1); result = ItemUtil.itemCost(user, new int[][]{new int[]{cost[0][0], count}}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1);
missingRoomMissionType.setCoinRefreshCount(coinRefreshCount +1); if(!result){
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
user.getPlayerInfoManager().updateVipPrivilage(sMazeTreasureSetting.getRefreshVIP(),1);
} }
} //高级特权
if(!result){ missingRoomMissionType.privilegeRefresh(user,sMazeTreasureSetting.getHighDailyPrivilege(),mustAppear);
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); //豪华特权
missingRoomMissionType.privilegeRefresh(user,sMazeTreasureSetting.getLuxuryDailyPrivilege(),mustAppear);
int[][] refreshHighTypeNum = sMazeTreasureSetting.getRefreshHighTypeNum();
for(int[] refresh:refreshHighTypeNum){
if(missingRoomMissionType.getRefreshTotalCount()==0||missingRoomMissionType.getRefreshTotalCount()%refresh[0]!=0){
continue;
}else{
mustAppear.put(refresh[1],mustAppear.get(refresh[1])==null?1:(mustAppear.get(refresh[1])+1));
}
}
missingRoomMissionType.setRefreshTotalCount(missingRoomMissionType.getRefreshTotalCount()+1);
} }
missingRoomMissionType.getDoingMissionIds().clear(); missingRoomMissionType.getDoingMissionIds().clear();
} }

View File

@ -707,11 +707,14 @@ public class MissionLoigc {
User user = UserManager.getUser(session.getUid()); User user = UserManager.getUser(session.getUid());
MissingRoomMissionType missingRoomMissionType = user.getUserMissionManager().getMissingRoomMissionType(); MissingRoomMissionType missingRoomMissionType = user.getUserMissionManager().getMissingRoomMissionType();
Set<Integer> finishMissionIds = missingRoomMissionType.getFinishMissionIds(); Set<Integer> finishMissionIds = missingRoomMissionType.getFinishMissionIds();
if(finishMissionIds.contains(missionId)){ if(!finishMissionIds.contains(missionId)){
missingRoomMissionType.setMissingTime(missionId,0);
}else {
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
} }
SMazeTreasure sMazeTreasure = SMazeTreasure.sMazeTreasureMap.get(missionId % 10000);
if(!ItemUtil.itemCost(user,new int[][]{sMazeTreasure.getSpeedUpTake()},BIReason.MISSING_ROOM_ACCELERATE_CONSUME,1)){
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
missingRoomMissionType.setMissingTime(missionId,0);
user.getUserMissionManager().updateString("missingRoomMissionType",missingRoomMissionType); user.getUserMissionManager().updateString("missingRoomMissionType",missingRoomMissionType);
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
} }

View File

@ -26,7 +26,13 @@ public class MissingRoomMissionType extends AbstractMissionType{
private int missionIndex; private int missionIndex;
private int coinRefreshCount; private int refreshTotalCount;
// private int coinRefreshCount;
//
// private int higherDailyRefreshCount;
//
// private int especialDailyRefreshCount;
@Override @Override
public void openMission(User user, int missionId, List<MissionStateChangeInfo> missionTypeEnumList) { public void openMission(User user, int missionId, List<MissionStateChangeInfo> missionTypeEnumList) {
@ -129,6 +135,19 @@ public class MissingRoomMissionType extends AbstractMissionType{
heroesInfo.put(missionId,heroes); heroesInfo.put(missionId,heroes);
} }
public void privilegeRefresh(User user,int[][] privilege,Map<Integer,Integer> mustAppear){
if(user.getPlayerInfoManager().checkFunctionIsAllowed(privilege[0][0])&&privilege.length>1){
int especialCount = user.getPlayerInfoManager().getVipPrivilageValue(privilege[0][0]);
for(int i = 1; i< privilege.length; i++){
if(privilege[i][0]==especialCount+1){
mustAppear.put(privilege[i][1],mustAppear.get(privilege[i][1])==null?1:(mustAppear.get(privilege[i][1])+1));
}
}
user.getPlayerInfoManager().updateVipPrivilage(privilege[0][0],1);
}
}
public Map<Integer,Integer> getAllMissingTime(){ public Map<Integer,Integer> getAllMissingTime(){
return missingTime; return missingTime;
} }
@ -148,11 +167,12 @@ public class MissingRoomMissionType extends AbstractMissionType{
return missionIndex; return missionIndex;
} }
public int getCoinRefreshCount() { public int getRefreshTotalCount() {
return coinRefreshCount; return refreshTotalCount;
} }
public void setCoinRefreshCount(int coinRefreshCount) { public void setRefreshTotalCount(int refreshTotalCount) {
this.coinRefreshCount = coinRefreshCount; this.refreshTotalCount = refreshTotalCount;
} }
} }

View File

@ -11,8 +11,6 @@ public class SMazeTreasureSetting implements BaseConfig {
private int refreshType; private int refreshType;
private int needItem;
private int refreshNum; private int refreshNum;
private int[] takeOrder; private int[] takeOrder;
@ -23,14 +21,18 @@ public class SMazeTreasureSetting implements BaseConfig {
private int[][] refreshHighTypeNum; private int[][] refreshHighTypeNum;
private int[][] dailyPrivilege; private int[][] highDailyPrivilege;
public static Map<Integer,SMazeTreasureSetting> sMazeTreasureSettingMap; private int[][] luxuryDailyPrivilege;
private int refreshVIP;
public static SMazeTreasureSetting sMazeTreasureSetting;
@Override @Override
public void init() throws Exception { public void init() throws Exception {
sMazeTreasureSettingMap = STableManager.getConfig(SMazeTreasureSetting.class); sMazeTreasureSetting = STableManager.getConfig(SMazeTreasureSetting.class).get(1);
} }
@ -38,10 +40,6 @@ public class SMazeTreasureSetting implements BaseConfig {
return refreshType; return refreshType;
} }
public int getNeedItem() {
return needItem;
}
public int getRefreshNum() { public int getRefreshNum() {
return refreshNum; return refreshNum;
} }
@ -58,11 +56,19 @@ public class SMazeTreasureSetting implements BaseConfig {
return refreshHighTypeNum; return refreshHighTypeNum;
} }
public int[][] getDailyPrivilege() {
return dailyPrivilege;
}
public int[] getTakeOrder() { public int[] getTakeOrder() {
return takeOrder; return takeOrder;
} }
public int[][] getHighDailyPrivilege() {
return highDailyPrivilege;
}
public int[][] getLuxuryDailyPrivilege() {
return luxuryDailyPrivilege;
}
public int getRefreshVIP() {
return refreshVIP;
}
} }