back_recharge
zhangshanxue 2020-06-17 09:40:45 +08:00
commit 6519567756
3 changed files with 41 additions and 12 deletions

View File

@ -33,7 +33,7 @@ public class EquipManager extends MongoBase {
updateString("equipMap." + equip.getId(), equip);
equipMap.put(equip.getId(),equip);
// addEquipHandBook(equip.getEquipId());
// user.getUserMissionManager().onGameEvent(user, GameEvent.GET_EQUIP,equip.getEquipId());
user.getUserMissionManager().onGameEvent(user, GameEvent.GET_EQUIP,equip.getEquipId());
Poster.getPoster().dispatchEvent(new EquipEvent(user.getId(),equip.getEquipId()));
}

View File

@ -600,10 +600,43 @@ public class StoreLogic implements IEventHandler {
}
StoreInfo storeInfo = storeInfoMap.get(storeId);
SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeId);
if (sStoreTypeConfig.getIfManualRefresh() != 1){
LOGGER.info("handRefreStore==> uid={},storeId={},ifManualRefresh={}",uid,storeId,sStoreTypeConfig.getIfManualRefresh());
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
int[] ifManualRefresh = sStoreTypeConfig.getIfManualRefresh();
if (ifManualRefresh.length<1|| ifManualRefresh[0]==0){
if(ifManualRefresh[1]==0){
LOGGER.info("handRefreStore==> uid={},storeId={},ifManualRefresh={}",uid,storeId, ifManualRefresh);
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}else{
noFreeRefreshStore(user,sStoreTypeConfig,storeId);
}
}else{
long lastRefreshTime = storeInfo.getLastRefreshTime();
long now = TimeUtils.now();
//当前免费次数
long freeCount = (now - lastRefreshTime) / TimeUtils.HOUR / ifManualRefresh[1];
if(freeCount<1){
//无免费次数
noFreeRefreshStore(user,sStoreTypeConfig,storeId);
}else if(freeCount<ifManualRefresh[0]){
//免费次数不是满的
long refreshTime = lastRefreshTime + TimeUtils.HOUR * ifManualRefresh[1];
storeInfo.setLastRefreshTime(refreshTime);
}else{
//免费次数为满
long refreshTime = now - (TimeUtils.HOUR * (ifManualRefresh[0]-1) * ifManualRefresh[1]);
storeInfo.setLastRefreshTime(refreshTime);
}
}
// playerInfoManager.updateVipPrivilage(refreshPrivilege,1);
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
storeInfo.setItemNumMap(itemNumMap);
CommonProto.StoreInfo.Builder storeBuilder = getBuilder(storeInfo);
PlayerInfoProto.StoreGoodsRefreshResponse builder = PlayerInfoProto.StoreGoodsRefreshResponse.newBuilder().setStoreInfo(storeBuilder).build();
MessageUtil.sendMessage(iSession, 1,msgId, builder, true);
}
//无免费刷新
private static void noFreeRefreshStore(User user,SStoreTypeConfig sStoreTypeConfig,int storeId) throws Exception {
PlayerManager playerInfoManager = user.getPlayerInfoManager();
int refreshPrivilege = sStoreTypeConfig.getRefreshPrivilege();
int refreshNum = playerInfoManager.getVipPrivilageValue(refreshPrivilege);
@ -615,13 +648,9 @@ public class StoreLogic implements IEventHandler {
if (!result){
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
// playerInfoManager.updateVipPrivilage(refreshPrivilege,1);
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
storeInfo.setItemNumMap(itemNumMap);
CommonProto.StoreInfo.Builder storeBuilder = getBuilder(storeInfo);
PlayerInfoProto.StoreGoodsRefreshResponse builder = PlayerInfoProto.StoreGoodsRefreshResponse.newBuilder().setStoreInfo(storeBuilder).build();
MessageUtil.sendMessage(iSession, 1,msgId, builder, true);
}
//自动刷新商店
public static void automaticRefreStore(ISession iSession,int storeId) throws Exception {
int msgId = MessageTypeProto.MessageType.STORE_GOODS_REFRESH_RESPONSE_VALUE;

View File

@ -27,7 +27,7 @@ public class SStoreTypeConfig implements BaseConfig {
private String endTime;
private int ifManualRefresh;
private int[] ifManualRefresh;
private int storeType;
@ -99,7 +99,7 @@ public class SStoreTypeConfig implements BaseConfig {
public int getNumber() {
return number;
}
public int getIfManualRefresh() {
public int[] getIfManualRefresh() {
return ifManualRefresh;
}