From a91b826dc1ed03b93d2dc98e72ca718f8d290d52 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 01 三月 2019 18:02:59 +0800
Subject: [PATCH] 6318 【后端】【2.0】召唤兽释放技能增加根据等级来
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSpringSale.py | 84 +++++++++++++++++++++++++----------------
1 files changed, 51 insertions(+), 33 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSpringSale.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSpringSale.py
index 02507ad..811a4f3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSpringSale.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSpringSale.py
@@ -25,14 +25,18 @@
import GameWorld
import ChConfig
+def GetShopTypeList(cfgID, dayIndex, woldLV):
+ if cfgID == None or dayIndex == None:
+ return []
+ ipyData = IpyGameDataPY.GetIpyGameData("ActSpringSale", cfgID)
+ if not ipyData:
+ return []
+ shopTypeList = GameWorld.GetDictValueByRangeKey(ipyData.GetShopTypeList(), woldLV, [])
+ todayShopType = shopTypeList[-1] if dayIndex >= len(shopTypeList) else shopTypeList[dayIndex]
+ return todayShopType
def OnPlayerLogin(curPlayer):
- isReset = __CheckPlayerSpringSaleAction(curPlayer)
- if not isReset:
- actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_SpringSale, {})
- # 活动中同步活动信息
- if actInfo.get(ShareDefine.ActKey_State):
- Sync_SpringSaleActionInfo(curPlayer)
+ __CheckPlayerSpringSaleAction(curPlayer)
return
def RefreshSpringSaleActionInfo():
@@ -53,24 +57,32 @@
actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_SpringSale, {})
actID = actInfo.get(ShareDefine.ActKey_ID, 0)
state = actInfo.get(ShareDefine.ActKey_State, 0)
- shopTypeList = actInfo.get(ShareDefine.ActKey_ShopTypeList, [])
- #if not state or not shopTypeList:
- # return
-
+ cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
+ woldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SpringSaleID) # 玩家身上的活动ID
-
- # 活动ID 相同的话不处理
- if actID == playerActID:
- GameWorld.DebugLog("限时特惠活动ID不变,不处理!", curPlayer.GetPlayerID())
- return
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SpringSaleID, actID)
- FunctionNPCCommon.ResetShopItemBuyCountByShopType(curPlayer, shopTypeList)
-
- GameWorld.DebugLog("限时特惠重置! actID=%s,playerActID=%s,state=%s,shopTypeList=%s" % (actID, playerActID, state, shopTypeList), playerID)
-
- Sync_SpringSaleActionInfo(curPlayer)
- return True
+ isReset = False
+ if actID != playerActID:
+ isReset = True
+ shopTypeList = GetShopTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), woldLV)
+ FunctionNPCCommon.ResetShopItemBuyCountByShopType(curPlayer, shopTypeList)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SpringSaleID, actID)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SpringSaleMailState, 0)
+ #Sync_SpringSaleActionInfo(curPlayer)
+ GameWorld.DebugLog("限时特惠重置! actID=%s,playerActID=%s,state=%s,shopTypeList=%s" % (actID, playerActID, state, shopTypeList), playerID)
+ else:
+ GameWorld.DebugLog("限时特惠活动ID不变,不处理!", playerID)
+
+ playerMailState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SpringSaleMailState) # 玩家身上的活动提醒邮件状态
+ if actID and state and state != playerMailState:
+ springSaleIpyData = IpyGameDataPY.GetIpyGameData("ActSpringSale", cfgID)
+ if springSaleIpyData and springSaleIpyData.GetMailKey() and curPlayer.GetLV() >= springSaleIpyData.GetLVLimit():
+ PlayerControl.SendMailByKey(springSaleIpyData.GetMailKey(), [playerID], springSaleIpyData.GetMailItemPrize())
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SpringSaleMailState, state)
+ GameWorld.DebugLog(" 发送新限时特惠邮件提醒! state=%s,playerMailState=%s" % (state, playerMailState), playerID)
+
+ if cfgID:
+ Sync_SpringSaleActionInfo(curPlayer)
+ return isReset
def Sync_SpringSaleActionInfo(curPlayer):
## 通知限时特惠活动信息
@@ -78,13 +90,15 @@
if not actInfo:
return
- if not actInfo.get(ShareDefine.ActKey_State):
- return
+ #需要提前通知,所以去掉此限制
+ #if not actInfo.get(ShareDefine.ActKey_State):
+ # return
cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- shopTypeList = actInfo.get(ShareDefine.ActKey_ShopTypeList, 0)
-
- if not cfgID or not shopTypeList:
+ if not cfgID:
+ return
+ shopTypeList = GetShopTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
+ if not shopTypeList:
return
springSaleIpyData = IpyGameDataPY.GetIpyGameData("ActSpringSale", cfgID)
@@ -96,10 +110,12 @@
if len(startTimeList) != len(endTimeList):
GameWorld.ErrLog("限时特惠开关时间时分配置错误!cfgID=%s" % cfgID)
return
-
+ job = curPlayer.GetJob()
+ openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
packInfo = ChPyNetSendPack.tagMCSpringSaleInfo()
- packInfo.StartDate = springSaleIpyData.GetStartDate()
- packInfo.EndtDate = springSaleIpyData.GetEndDate()
+ packInfo.StartDate = GameWorld.GetOperationActionDateStr(springSaleIpyData.GetStartDate(), openServerDay)
+ packInfo.EndtDate = GameWorld.GetOperationActionDateStr(springSaleIpyData.GetEndDate(), openServerDay)
+ packInfo.AdvanceMinutes = springSaleIpyData.GetAdvanceMinutes()
packInfo.ActivityTime = []
for i, startTime in enumerate(startTimeList):
timeInfo = ChPyNetSendPack.tagMCSpringSaleTime()
@@ -129,12 +145,14 @@
giftBag.ItemInfo = []
itemList = [[itemIpyData.GetItemID(), itemIpyData.GetItemCnt(), itemIpyData.GetIsBind()]]
itemList += itemIpyData.GetItemListEx()
+ jobItemList = itemIpyData.GetJobItem()
for itemID, itemCount, isBind in itemList:
item = ChPyNetSendPack.tagMCSpringSaleItem()
- item.ItemID = itemID
+ jobItemID = FunctionNPCCommon.GetShopJobItem(job, itemID, jobItemList)
+ item.ItemID = jobItemID
item.ItemCount = itemCount
item.IsBind = isBind
- item.IsMainItem = int(itemID == itemIpyData.GetMainItemID())
+ item.IsMainItem = int(itemID == FunctionNPCCommon.GetShopJobItem(job, itemIpyData.GetMainItemID(), jobItemList))
giftBag.ItemInfo.append(item)
giftBag.GiftItemCount = len(giftBag.ItemInfo)
shop.GiftbagInfo.append(giftBag)
--
Gitblit v1.8.0