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