From 2eab795c40d64af47f624ffccba94ec88ef591bc Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期一, 03 六月 2019 11:31:22 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py | 102 +++++++------------------------------------------- 1 files changed, 15 insertions(+), 87 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py index 672170c..da0f3a2 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py @@ -194,14 +194,7 @@ return ## 登录 -def ShopItemOnLogin(curPlayer): - if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_SuperGift): - GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_SuperGift, 1) - isGet = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GoldGiftFirstRecord) - if isGet:#首充奖励已领取则代表超值礼包已开启过, - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SuperGiftHasOpen, 1) - - +def ShopItemOnLogin(curPlayer): SyncMysticalLimitShopInfo(curPlayer) SyncShopItemTodayBuyCount(curPlayer) SyncSuperGiftInfo(curPlayer) @@ -363,7 +356,7 @@ diffTime = GameWorld.GetCurrentTime() - GameWorld.GetDateTimeByStr(createRoleTime, ChConfig.TYPE_Time_Format) pastSeconds = diffTime.days*24*60*60 + diffTime.seconds refreshTime = IpyGameDataPY.GetFuncCfg('MysteryShopRefresh', 4) - if pastSeconds % refreshTime == 0: + if refreshTime and pastSeconds % refreshTime == 0: __DoMysticalShopRefresh(curPlayer, True, tick) return @@ -379,7 +372,10 @@ def __DoMysticalShopRefresh(curPlayer, isFree, tick): global g_mysticalShopDict #{等级范围:[等级段,{金钱类型:库}]} - + refreshTime = IpyGameDataPY.GetFuncCfg('MysteryShopRefresh', 4) + if not refreshTime: + return + lastTime = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_MysticalShopLastTime) if lastTime and tick - lastTime < 1000: #GameWorld.DebugLog('神秘商店刷新,过于频繁!') @@ -392,6 +388,8 @@ lvRange = ipyData.GetLVRange() goodsID = ipyData.GetGoodsID() goodsIpyData = IpyGameDataPY.GetIpyGameData('Store', goodsID) + if not goodsIpyData: + continue moneyType = goodsIpyData.GetMoneyType() weight = goodsIpyData.GetLimitValue() lvkey = tuple(lvRange) @@ -402,7 +400,8 @@ g_mysticalShopDict[lvkey][1][moneyType] = [] weightDict[moneyType] = weightDict.get(moneyType, 0) + weight g_mysticalShopDict[lvkey][1][moneyType].append([weightDict[moneyType], goodsID]) - + if not g_mysticalShopDict: + return playerLV = curPlayer.GetLV() curLVDan, shopDict = GameWorld.GetDictValueByRangeKey(g_mysticalShopDict, playerLV) if not shopDict: @@ -422,7 +421,7 @@ cntList.sort() costItemCnt = costItemCntDict[str(cntList[-1])] for cnt in cntList: - if curRefreshCnt <= cnt: + if curRefreshCnt < cnt: costItemCnt = costItemCntDict[str(cnt)] break enough, indexList, hasBind, lackCnt = ItemCommon.GetItem_FromPack_ByID_ExEx(costItemID, itemPack, costItemCnt) @@ -732,7 +731,7 @@ itemControl = ItemControler.PlayerItemControler(curPlayer) for itemID, itemCount, isBind in totalItemList: - curItemObj = ItemControler.GetOutPutItemObj(itemID, itemCount, isBind) + curItemObj = ItemControler.GetOutPutItemObj(itemID, itemCount, False, curPlayer=curPlayer) if not curItemObj: continue userData = curItemObj.GetUserData() @@ -861,10 +860,7 @@ #活动结束 重置 PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SuperGiftStartTime, 0) else: - if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SuperGiftHasOpen): - #老号已开启过超值礼包则不再开启 - return - + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SuperGiftStartTime, curTime) addItemList = IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList', 2) PlayerControl.SendMailByKey('SellMail2', [curPlayer.GetID()], addItemList) @@ -936,46 +932,6 @@ return True - -#--------------------------------------------------------------------- -##检查物品可否修理 -# @param curPlayer 玩家实例 -# @param curItem 物品实例 -# @param farRepair 是否远程修理 -# @return 返回值真, 检查通过 -# @remarks 检查物品可否修理 -#=============================================================================== -# def __CheckRepairItem(curPlayer, curItem, farRepair): -# -# if not ItemCommon.CheckItemCanUse(curItem): -# if not farRepair: -# #封包信息不正确 -# PlayerControl.NotifyCode(curPlayer, "UseResLost04") -# -# return -# -# if curItem.GetCanRepair() == 0: -# if not farRepair: -# #物品不可修理 -# PlayerControl.NotifyCode(curPlayer, "UseResLost13") -# -# return -# -# if ItemControler.IsEventItem(curItem): -# if not farRepair: -# PlayerControl.NotifyCode(curPlayer, "itemuse_chenxin_31379") -# -# return -# -# if curItem.GetEndureReduceType() == ChConfig.Def_EquipReduceType_None or curItem.GetMaxEndure() == 0: -# if not farRepair: -# #耐久字段为0,不符合要求,返回 -# PlayerControl.NotifyCode(curPlayer, "UseResLost13") -# -# return -# -# return True -#=============================================================================== #--------------------出售物品 ##出售物品 # @param curPlayer 玩家实例 @@ -1097,7 +1053,7 @@ # @return 返回值真, 检查通过 # @remarks 检查物品是否可以出售 def __CheckItemSell(curPlayer, curItem) : - if not ItemCommon.CheckItemCanUse(curItem): + if not ItemCommon.CheckItemCanUse(curItem) or ItemControler.GetIsAuctionItem(curItem): PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_644055") return @@ -1142,35 +1098,7 @@ priceType = IPY_GameWorld.TYPE_Price_Silver_Money curItemPrice = curItem.GetSilverPrice() return curItemPrice, priceType - #绑定价格售价为0, 2011.4.27 -# if curItem.GetIsBind(): -# itrmPrice_bind = eval(ReadChConfig.GetChConfig("ItemSellPrice_Bind")) -# return itrmPrice_bind, priceType -# -# #无耐久物品 -# if curItemEndure == 0 : -# return curItemPrice * 0.5, priceType -# -# itrmPrice_notBind = eval(ReadChConfig.GetChConfig("ItemSellPrice_NotBind")) -# return itrmPrice_notBind, priceType -#=============================================================================== -# 2010.11.25 绑定售价和非绑定一致 -# #绑定的 -# if curItem.GetIsBind(): -# return curItemPrice * 0.5 * 0.5, curItemType -# #非绑定的 -# return curItemPrice * 0.5, curItemType -#=============================================================================== -#=============================================================================== -# -# #绑定正常物品出售价格 -# if curItem.GetIsBind() : -# return eval(ChConfig.Def_Formula_ItemSellPrice) * 0.5, curItemType -# -# #未绑定正常物品出售价格 -# return eval(ChConfig.Def_Formula_ItemSellPrice), curItemType -#=============================================================================== -#--------------------------------------------------------------------- + ##检查玩家可否开始NPC事件 # @param curPlayer 玩家实例 # @return 返回值真, 检查通过 -- Gitblit v1.8.0