From 8305e47be942c376430044332780e6e69a3c7a7f Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 28 一月 2019 10:40:46 +0800
Subject: [PATCH] 6077 【后端】【1.5.200】新增一个仙界盛典(特殊版本)活动
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerNewFairyCeremony.py | 321 +++++++++++++++++++++++++++++++++++
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py | 17 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py | 7
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 9
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerNewFairyCeremony.py | 109 ++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 4
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py | 3
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py | 2
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 4
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_PersonalBoss.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_BZZD.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py | 2
ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py | 1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 10 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | 3
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GodArea.py | 2
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 9
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py | 6
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 13 +
24 files changed, 520 insertions(+), 16 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py b/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
index e4dbbe7..c96a5cf 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
@@ -582,6 +582,7 @@
ShareDefine.Def_BT_Campaign_Recharge : 100, #累计充值(开服活动榜)
ShareDefine.Def_BT_Campaign_PetLV : 100, #灵宠等级(开服活动榜)
ShareDefine.Def_BT_FCCostGold : 5, #消费排行榜(仙界盛典)
+ ShareDefine.Def_BT_NewFCCostGold : 5, #消费排行榜(仙界盛典)
ShareDefine.Def_BT_FBHelpBattle : 100, #助战次数榜
ShareDefine.Def_BT_ZhuXianTower : 100, #诛仙塔榜
ShareDefine.Def_BT_HighLadder : 1000, #玩家天梯竞技场排行
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 2c0e374..09ea263 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -22732,7 +22732,7 @@
class tagMCFeastWeekPartyPlayerInfo(Structure):
Head = tagHead()
Count = 0 #(BYTE Count)
- DayInfoList = list() #(vector<tagMCWeekPartyDayPlayerInfo> DayInfoList)//活动完成次数信息
+ DayInfoList = list() #(vector<tagMCFeastWeekPartyDayPlayerInfo> DayInfoList)//活动完成次数信息
data = None
def __init__(self):
@@ -22746,7 +22746,7 @@
_pos = self.Head.ReadData(_lpData, _pos)
self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.Count):
- temDayInfoList = tagMCWeekPartyDayPlayerInfo()
+ temDayInfoList = tagMCFeastWeekPartyDayPlayerInfo()
_pos = temDayInfoList.ReadData(_lpData, _pos)
self.DayInfoList.append(temDayInfoList)
return _pos
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index 89d8e0a..87ed0f0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -37,6 +37,7 @@
import PlayerFamilySWRH
import GameWorldBoss
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import GameWorldProcess
import ChPyNetSendPack
import NetPackCommon
@@ -76,7 +77,11 @@
ipyData = operationActionDict[ShareDefine.OperationActionName_FairyCeremony][0]
if ipyData:
PlayerFairyCeremony.Sync_OperationAction_FairyCeremony(ipyData, curPlayer)
-
+ # 新仙界盛典活动进行中
+ if ShareDefine.OperationActionName_NewFairyCeremony in operationActionDict:
+ ipyData = operationActionDict[ShareDefine.OperationActionName_NewFairyCeremony][0]
+ if ipyData:
+ PlayerNewFairyCeremony.Sync_OperationAction_NewFairyCeremony(ipyData, curPlayer)
# 多倍修行点活动进行中
if ShareDefine.OperationActionName_RealmPoint in operationActionDict:
ipyData = operationActionDict[ShareDefine.OperationActionName_RealmPoint][0]
@@ -455,7 +460,9 @@
elif actName == ShareDefine.OperationActionName_FairyCeremony:
#重置仙界盛典
PlayerFairyCeremony.ResetFairyCeremony()
-
+ elif actName == ShareDefine.OperationActionName_NewFairyCeremony:
+ #重置仙界盛典
+ PlayerNewFairyCeremony.ResetNewFairyCeremony()
if state >= 1 and actName in ShareDefine.NeedWorldLVOperationActNameList:
@@ -478,6 +485,12 @@
PlayerFairyCeremony.Sync_OperationAction_FairyCeremony(ipyData)
if preState != state and state == 0:
PlayerFairyCeremony.OnFairyCeremonyEnd()
+ elif actName == ShareDefine.OperationActionName_NewFairyCeremony:
+ if isReload and ipyData:
+ PlayerNewFairyCeremony.Sync_OperationAction_NewFairyCeremony(ipyData)
+ if preState != state and state == 0:
+ PlayerNewFairyCeremony.OnNewFairyCeremonyEnd()
+
elif actName == ShareDefine.OperationActionName_RealmPoint:
if isReload and ipyData:
Sync_OperationAction_RealmPoint(ipyData)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerNewFairyCeremony.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerNewFairyCeremony.py
new file mode 100644
index 0000000..77e34a0
--- /dev/null
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerNewFairyCeremony.py
@@ -0,0 +1,109 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+#-------------------------------------------------------------------------------
+#
+##@package Player.PlayerNewFairyCeremony
+#
+# @todo:新仙界盛典
+# @author xdh
+# @date 2018-07-23 16:50
+# @version 1.0
+#
+#
+# 详细描述: 新仙界盛典
+#
+#---------------------------------------------------------------------
+"""Version = 2018-07-23 16:50"""
+#---------------------------------------------------------------------
+
+import ChPyNetSendPack
+import GameWorld
+import PlayerDBGSEvent
+import ShareDefine
+import NetPackCommon
+import PlayerBillboard
+import IpyGameDataPY
+import PlayerCompensation
+
+(
+Def_FC_Recharge, #充值大礼
+Def_FC_Fireworks, #烟花
+Def_FC_Party, #全民来嗨
+Def_FC_RechargeRank, #绝版降临
+) = range(1, 5)
+
+def ResetNewFairyCeremony():
+ ##活动开始 重置排行榜信息
+ # 清除排行榜
+
+ PlayerBillboard.ClearBillboardByIndex(ShareDefine.Def_BT_NewFCCostGold)
+ return
+
+def OnNewFairyCeremonyEnd():
+ #活动结束 绝版降临给奖励
+ billBoard = GameWorld.GetBillboard().FindBillboard(ShareDefine.Def_BT_NewFCCostGold)
+ if not billBoard:
+ return
+ worldLvNum = __GetFCWorldLVIndex(Def_FC_RechargeRank)
+
+ billboardCnt = billBoard.GetCount()
+
+ for index in range(0, billboardCnt):
+ ipyData = IpyGameDataPY.GetIpyGameData('UniquenessArrive', worldLvNum, index + 1)
+ if not ipyData:
+ break
+ objBillboard = billBoard.At(index)
+ playerID = objBillboard.GetID()
+ awardInfoDict = ipyData.GetAward()
+ job = objBillboard.GetType2() % 10
+ if str(job) not in awardInfoDict:
+ GameWorld.ErrLog(' 绝版降临给奖励 UniquenessArrive 未配置该职业 job=%s' % job, playerID)
+ continue
+
+ awardList = awardInfoDict[str(job)]
+ PlayerCompensation.SendMailByKey('CeremonyRank', [playerID], awardList, [objBillboard.GetName1(), index + 1])
+
+ GameWorld.DebugLog(' 活动结束 绝版降临给奖励 worldLvNum=%s, billboardCnt=%s' % (worldLvNum, billboardCnt))
+ return
+
+def __GetFCWorldLVIndex(fcType):
+ #获取活动世界等级档
+ playerFCWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % ShareDefine.OperationActionName_NewFairyCeremony)
+ fcWorldlvDict = IpyGameDataPY.GetFuncEvalCfg('CeremonyWorldLv', 1, {})
+ if str(fcType) not in fcWorldlvDict:
+ return 0
+ worldLVIndex = 0
+ worldlvList = fcWorldlvDict[str(fcType)]
+ for index, lvinfo in enumerate(worldlvList):
+ minlv, maxlv = lvinfo
+ if minlv <= playerFCWorldLV <= maxlv:
+ worldLVIndex = index
+ break
+ return worldLVIndex
+
+def Sync_OperationAction_NewFairyCeremony(ipyData, curPlayer=None):
+ ## 通知新仙界盛典活动信息
+ if not ipyData:
+ return
+
+ openServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay) + 1
+ NewFairyCeremonyInfo = ChPyNetSendPack.tagGCNewFairyCeremonyInfo()
+ NewFairyCeremonyInfo.Clear()
+ NewFairyCeremonyInfo.StartDate = GameWorld.GetOperationActionDateStr(ipyData.GetStartDate(), openServerDay)
+ NewFairyCeremonyInfo.EndtDate = GameWorld.GetOperationActionDateStr(ipyData.GetEndDate(), openServerDay)
+ NewFairyCeremonyInfo.WorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % ShareDefine.OperationActionName_NewFairyCeremony)
+ NewFairyCeremonyInfo.LimitLV = ipyData.GetLVLimit()
+ NewFairyCeremonyInfo.ResetType = ipyData.GetResetType()
+ if not curPlayer:
+ # 全服广播在线玩家
+ playerManager = GameWorld.GetPlayerManager()
+ for i in xrange(playerManager.GetPlayerCount()):
+ curPlayer = playerManager.GetPlayerByIndex(i)
+ if curPlayer == None or not curPlayer.GetInitOK():
+ continue
+ NetPackCommon.SendFakePack(curPlayer, NewFairyCeremonyInfo)
+ else:
+ NetPackCommon.SendFakePack(curPlayer, NewFairyCeremonyInfo)
+ return
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 0d747d6..adf7808 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -225,6 +225,7 @@
OperationActionName_BossReborn = "ActBossReborn" # BOSS复活活动
OperationActionName_FlashGiftbag = "ActFlashGiftbag" # 限时礼包活动
OperationActionName_FairyCeremony = "ActFairyCeremony" # 仙界盛典活动
+OperationActionName_NewFairyCeremony = "ActNewFairyCeremony" # 仙界盛典活动
OperationActionName_RealmPoint = "ActRealmPoint" # 多倍修行点活动
OperationActionName_FlashSale = "ActFlashSale" # 限时抢购活动
OperationActionName_WishingWell = "ActWishingWell" # 许愿池活动
@@ -240,10 +241,11 @@
OperationActionName_FlashGiftbag, OperationActionName_FairyCeremony,
OperationActionName_RealmPoint, OperationActionName_FlashSale,
OperationActionName_WishingWell, OperationActionName_TotalRecharge,
- OperationActionName_WeekParty, OperationActionName_LoginAward, ] \
+ OperationActionName_WeekParty, OperationActionName_LoginAward,
+ OperationActionName_NewFairyCeremony, ] \
+ FeastOperationActionNameList
#需要记录开启活动时的世界等级的运营活动
-NeedWorldLVOperationActNameList = [OperationActionName_FairyCeremony, OperationActionName_WishingWell]
+NeedWorldLVOperationActNameList = [OperationActionName_FairyCeremony, OperationActionName_WishingWell, OperationActionName_NewFairyCeremony]
#活动信息字典key定义
ActKey_ID = "ID" # 活动ID,唯一标识的ID,一般是活动开启的time值
@@ -606,6 +608,7 @@
Def_BT_Campaign_PetLV, #灵宠等级(开服活动榜)
Def_BT_ZhuXianTower, #诛仙塔榜
+ Def_BT_NewFCCostGold, #消费排行榜(新仙界盛典)
Def_BT_HighLadder, #天梯竞技场排行
Def_BT_HighLadder_Yester, #天梯竞技场昨日排行
@@ -621,7 +624,7 @@
Def_BT_CostTeHuiLast, #消费特惠排行榜上一期
Def_BT_Max, #排行榜最大类型
-) = range(0, 33 + 2)
+) = range(0, 34 + 2)
#职业对应战力排行榜类型
JobFightPowerBillboardDict = {
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 96ab222..f9b54c8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3714,6 +3714,15 @@
Def_PDict_FCPartyAwardRecord = "FCPartyAwardRecord" #全民来嗨活动领奖记录
Def_PDict_FCCostGold = "FCCostGold" # 绝版降临总累计消费仙玉
+#新仙界盛典
+Def_PDict_NewFairyCeremonyID = "NewFairyCeremonyID" # 玩家身上的仙界盛典活动ID,唯一标识,取活动开始日期time值
+Def_PDict_NewFCActionWorldLV = "NewFCActionWorldLV" #玩家身上的仙界盛典时的世界等级
+Def_PDict_NewFCRechargeState = "NewFCRechargeState" # 充值大礼状态 0-不可领 1-可领 2-已领取
+Def_PDict_NewFCPartyCurCnt = "NewFCPartyCurCnt_%s" #全民来嗨活动当前完成次数 参数活动ID
+Def_PDict_NewFCPartyCurPoint = "NewFCPartyCurPoint" #全民来嗨活动当前总点数
+Def_PDict_NewFCPartyAwardRecord = "NewFCPartyAwardRecord" #全民来嗨活动领奖记录
+Def_PDict_NewFCCostGold = "NewFCCostGold" # 绝版降临总累计消费仙玉
+
#绑玉转盘
Def_PDict_BindJadeWheelCurCnt = "BindJadeWheelCurCnt" # 今日已转次数
Def_PDict_BindJadeWheelHistoryCnt = "BindJadeWheelHistoryCnt" # 历史已转次数
@@ -5195,7 +5204,9 @@
Def_RewardType_WeekPartyAct, # 领取周狂欢活动奖励20
Def_RewardType_WeekPartyPoint, # 领取周狂欢积分奖励21
Def_RewardType_ActLoginAwardAct, # 领取登录奖励活动奖励22
-)= range(23)
+Def_RewardType_NewFairyCRecharge, # 新仙界盛典充值大礼23
+Def_RewardType_NewFairyCParty, # 新仙界盛典全民来嗨24
+)= range(25)
#boss复活相关活动定义
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 2c0e374..09ea263 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -22732,7 +22732,7 @@
class tagMCFeastWeekPartyPlayerInfo(Structure):
Head = tagHead()
Count = 0 #(BYTE Count)
- DayInfoList = list() #(vector<tagMCWeekPartyDayPlayerInfo> DayInfoList)//活动完成次数信息
+ DayInfoList = list() #(vector<tagMCFeastWeekPartyDayPlayerInfo> DayInfoList)//活动完成次数信息
data = None
def __init__(self):
@@ -22746,7 +22746,7 @@
_pos = self.Head.ReadData(_lpData, _pos)
self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.Count):
- temDayInfoList = tagMCWeekPartyDayPlayerInfo()
+ temDayInfoList = tagMCFeastWeekPartyDayPlayerInfo()
_pos = temDayInfoList.ReadData(_lpData, _pos)
self.DayInfoList.append(temDayInfoList)
return _pos
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 37d46ab..e352709 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
@@ -64,6 +64,7 @@
import PlayerRune
import GameFuncComm
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import PlayerSpringSale
import PyGameData
@@ -601,6 +602,9 @@
SyncShoppingResult(curPlayer, itemIndex, clientBuyCount)
if itemIndex in IpyGameDataPY.GetFuncEvalCfg('CeremonyFireParty', 1, {}).values():
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Fireworks, clientBuyCount)
+ if itemIndex in IpyGameDataPY.GetFuncEvalCfg('NewCeremonyFireParty', 1, {}).values():
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Fireworks, clientBuyCount)
+
return
def GetShopJobItem(job, itemID, jobItemList):
@@ -645,7 +649,8 @@
#烟花狂欢
if itemIndex in IpyGameDataPY.GetFuncEvalCfg('CeremonyFireParty', 1, {}).values():
return not PlayerFairyCeremony.IsCanBuyFireworks(curPlayer, itemIndex)
-
+ if itemIndex in IpyGameDataPY.GetFuncEvalCfg('NewCeremonyFireParty', 1, {}).values():
+ return not PlayerNewFairyCeremony.IsCanBuyFireworks(curPlayer, itemIndex)
# if itemIndex in dict(IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList')):
# return not CheckSuperGiftBuy(curPlayer, itemIndex)
if shopNPCID == 16:#神秘限购
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py
index b93ef74..248ab4f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py
@@ -29,6 +29,7 @@
import PlayerActivity
import PlayerBossReborn
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
#------------------------------------------------------------------------------
#获取金币祈愿奖励
@@ -165,6 +166,7 @@
# 每日活动
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_Pray)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Pray, 1)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Pray, 1)
Sync_NotifyDataChange(curPlayer, [buyType])
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
index c613cd0..fd8f148 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -59,6 +59,7 @@
import PlayerMagicWeapon
import PlayerBossReborn
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import PlayerWeekParty
import PlayerHorse
import FBCommon
@@ -5241,6 +5242,7 @@
PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_TaskCRun, addCnt)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_RunTask, addCnt)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RunTask, addCnt)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RunTask, addCnt)
PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_RunTask, addCnt)
elif missionType == QuestCommon.Def_Mission_Type_RunFamily:
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_FamilyRunMission, addCnt)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_BZZD.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_BZZD.py
index 28778dd..4278b5a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_BZZD.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_BZZD.py
@@ -32,6 +32,7 @@
import PlayerSuccess
import PlayerBossReborn
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import PlayerWeekParty
import ItemControler
import GameFuncComm
@@ -186,6 +187,7 @@
FBCommon.AddEnterFBCount(curPlayer, ChConfig.Def_FBMapID_BZZD)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_XJMJ, 1)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_XJMJ, 1)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_XJMJ, 1)
PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_XJMJ, 1)
FBCommon.UpdateFBEnterTick(curPlayer)
gameFB.SetPlayerGameFBDict(playerID, FBPlayerDict_EnterLV, playerLV)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
index e90909c..ab4e88a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
@@ -25,6 +25,7 @@
import IpyGameDataPY
import GameWorldProcess
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import EventReport
import PyGameData
import ItemCommon
@@ -175,6 +176,7 @@
PlayerFamily.AddFamilyActivity(curPlayer, ShareDefine.FamilyActive_Party)
EventReport.WriteEvent_FB(curPlayer, ChConfig.Def_FBMapID_FamilyParty, 0, ChConfig.CME_Log_Start)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_FamilyParty, 1)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_FamilyParty, 1)
lineID = GameWorld.GetGameWorld().GetLineID()
if lineID not in g_familyMapPlayerIDDict:
g_familyMapPlayerIDDict[lineID] = []
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GodArea.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GodArea.py
index 628fdde..24b09d4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GodArea.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GodArea.py
@@ -23,6 +23,7 @@
import PlayerControl
import PlayerBossReborn
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import PlayerWeekParty
import EventReport
import time
@@ -144,6 +145,7 @@
EventReport.WriteEvent_FB(curPlayer, ChConfig.Def_FBMapID_GodArea, 0, ChConfig.CME_Log_Start)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_GodArea, 1)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_GodArea, 1)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_GodArea, 1)
PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GodArea, 1)
elif __IsAngerFull(curPlayer):
#怒气已满,退出副本
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_PersonalBoss.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_PersonalBoss.py
index caff74d..4346259 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_PersonalBoss.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_PersonalBoss.py
@@ -23,6 +23,7 @@
import IpyGameDataPY
import PlayerBossReborn
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import ChConfig
import ChPlayer
import EventReport
@@ -175,6 +176,7 @@
EventReport.WriteEvent_FB(curPlayer, ChConfig.Def_FBMapID_PersonalBoss, 0, ChConfig.CME_Log_Start)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_VIPBOSS, 1)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_VIPBoss, 1)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_VIPBoss, 1)
FBCommon.ClearFBNPC()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py
index 591de6a..f1aece5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py
@@ -36,6 +36,7 @@
import PlayerMagicWeapon
import PlayerBossReborn
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import PlayerWeekParty
import EventReport
@@ -547,6 +548,7 @@
PlayerMagicWeapon.SetMWPrivilegeData(curPlayer, ChConfig.MWPrivilege_SealDemonAddAttr, addCnt, True)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_FMT, addCnt)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_FMT, addCnt)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_FMT, addCnt)
PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_FMT, addCnt)
return prizeItemList
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
index a082088..206b900 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -52,6 +52,7 @@
import PlayerMagicWeapon
import PlayerBossReborn
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import PlayerWeekParty
import FamilyRobBoss
import IpyGameDataPY
@@ -2163,6 +2164,7 @@
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_WorldBOSS)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_WorldBOSS, 1)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_WorldBoss, 1)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_WorldBoss, 1)
PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_WorldBOSS, 1)
if mapID == ChConfig.Def_FBMapID_BossHome:
@@ -2173,6 +2175,7 @@
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_BOSSHome)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_BOSSHome, 1)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_BossHome, 1)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_BossHome, 1)
PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_BOSSHome, 1)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 7ea7fff..605e94c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -102,6 +102,7 @@
import PlayerActTotalRecharge
import PlayerSpringSale
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import CrossRealmPlayer
import ChNetSendPack
import FamilyRobBoss
@@ -711,6 +712,8 @@
PlayerActLogin.OnLogin(curPlayer)
# 仙界盛典活动
PlayerFairyCeremony.OnLogin(curPlayer)
+ # 新仙界盛典活动
+ PlayerNewFairyCeremony.OnLogin(curPlayer)
# 分支下载奖励记录通知
SyncPackDownloadAward(curPlayer)
# 登录触发功能开启(老号处理)
@@ -5344,7 +5347,12 @@
# 领取登录奖励活动奖励
elif rewardType == ChConfig.Def_RewardType_ActLoginAwardAct:
PlayerActLogin.GetLoginAwardActionAward(curPlayer, dataEx, dataExStr)
-
+ # 领取新仙界盛典充值大礼
+ elif rewardType == ChConfig.Def_RewardType_NewFairyCRecharge:
+ PlayerNewFairyCeremony.GetFCRechargeAward(curPlayer)
+ # 领取新仙界盛典全民来嗨
+ elif rewardType == ChConfig.Def_RewardType_NewFairyCParty:
+ PlayerNewFairyCeremony.GetFCPartyAward(curPlayer, dataEx)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
index 711919b..c0c7493 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -44,6 +44,7 @@
import ShareDefine
import PlayerFlashGiftbag
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import PlayerGoldGift
import PlayerActTotalRecharge
import OpenServerCampaign
@@ -286,6 +287,7 @@
#---充值成功后逻辑---
#仙界盛典-充值大礼
PlayerFairyCeremony.OnFCRecharge(curPlayer)
+ PlayerNewFairyCeremony.OnFCRecharge(curPlayer)
PlayerGoldGift.DayChargeRedPackAward(curPlayer)
#累积充值X元
PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin/100)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 92eeea5..0ded4d2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -84,6 +84,7 @@
import PlayerCostRebate
import GY_Query_CrossRealmReg
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import PlayerCrossRealmPK
import FunctionNPCCommon
import CrossRealmPlayer
@@ -2971,6 +2972,7 @@
PlayerCostRebate.AddCostRebateGold(curPlayer, costType, price, infoDict)
# 绝版降临
PlayerFairyCeremony.AddFCCostGold(curPlayer, costType, price)
+ PlayerNewFairyCeremony.AddFCCostGold(curPlayer, costType, price)
# 消费VIP
# if costVIPGold < 0:
# costVIPGold = price
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
index d19a90d..884e9a0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -83,6 +83,7 @@
import PlayerActLogin
import PlayerFlashGiftbag
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import PlayerRefineStove
import PlayerFlashSale
import PlayerWishingWell
@@ -1296,7 +1297,10 @@
elif actionName == ShareDefine.OperationActionName_FairyCeremony:
PlayerFairyCeremony.RefreshOperationAction_FairyCeremony()
-
+
+ elif actionName == ShareDefine.OperationActionName_NewFairyCeremony:
+ PlayerNewFairyCeremony.RefreshOperationAction_NewFairyCeremony()
+
elif actionName == ShareDefine.OperationActionName_FlashSale:
PlayerFlashSale.RefreshflashSaleActionInfo()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerNewFairyCeremony.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerNewFairyCeremony.py
new file mode 100644
index 0000000..bb5f56f
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerNewFairyCeremony.py
@@ -0,0 +1,321 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+#-------------------------------------------------------------------------------
+#
+##@package Player.PlayerNewFairyCeremony
+#
+# @todo:新仙界盛典
+# @author xdh
+# @date 2018-07-23 16:50
+# @version 1.0
+#
+#
+# 详细描述: 新仙界盛典
+#
+#---------------------------------------------------------------------
+"""Version = 2018-07-23 16:50"""
+#---------------------------------------------------------------------
+import IPY_GameWorld
+import GameWorld
+import ChConfig
+import IpyGameDataPY
+import PlayerControl
+import ItemControler
+import ChPyNetSendPack
+import NetPackCommon
+import ShareDefine
+import PyGameData
+import ItemCommon
+import PlayerBillboard
+
+(
+Def_FC_Recharge, #充值大礼
+Def_FC_Fireworks, #烟花
+Def_FC_Party, #全民来嗨
+Def_FC_RechargeRank, #绝版降临
+) = range(1, 5)
+
+
+def OnLogin(curPlayer):
+ isReset = __CheckPlayerNewFairyCeremonyAction(curPlayer)
+ if not isReset:
+ actCostRebateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_NewFairyCeremony, {})
+ # 活动中同步活动信息
+ if actCostRebateInfo.get(ShareDefine.ActKey_State):
+ SyncFCRechargeInfo(curPlayer)
+ SyncFCPartyInfo(curPlayer)
+ return
+
+def RefreshOperationAction_NewFairyCeremony():
+ playerManager = GameWorld.GetPlayerManager()
+ for i in xrange(playerManager.GetPlayerCount()):
+ curPlayer = playerManager.GetPlayerByIndex(i)
+ if curPlayer == None or not curPlayer.GetInitOK():
+ continue
+ __CheckPlayerNewFairyCeremonyAction(curPlayer)
+ return
+
+
+def __CheckPlayerNewFairyCeremonyAction(curPlayer):
+ ## 检查玩家新仙界盛典活动数据信息
+ playerID = curPlayer.GetPlayerID()
+
+ actNewFairyCeremonyInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_NewFairyCeremony, {})
+ NewFairyCeremonyID = actNewFairyCeremonyInfo.get(ShareDefine.ActKey_ID, 0)
+ state = actNewFairyCeremonyInfo.get(ShareDefine.ActKey_State, 0)
+
+ playerNewFairyCeremonyID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFairyCeremonyID) # 玩家身上的活动ID
+
+ # 活动ID 相同的话不处理
+ if NewFairyCeremonyID == playerNewFairyCeremonyID:
+ #GameWorld.DebugLog("新仙界盛典活动ID不变,不处理!", curPlayer.GetPlayerID())
+ return
+ actWorldLV = actNewFairyCeremonyInfo.get(ShareDefine.ActKey_WorldLV, 0)
+ playerFCWorldLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCActionWorldLV)
+ GameWorld.DebugLog("新仙界盛典重置! NewFairyCeremonyID=%s,playerCostRebateID=%s,state=%s,ActWorldLV=%s,playerFCWorldLV=%s"
+ % (NewFairyCeremonyID, playerNewFairyCeremonyID, state, actWorldLV, playerFCWorldLV), playerID)
+
+ # 未领取的奖励邮件发放
+ __SendNewFairyCeremonyMail(curPlayer, playerFCWorldLV)
+
+
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFairyCeremonyID, NewFairyCeremonyID)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCActionWorldLV, actWorldLV)
+ #重置充值大礼记录
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCRechargeState, 0)
+ SyncFCRechargeInfo(curPlayer)
+ #重置全民来嗨
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCPartyCurPoint, 0)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCPartyAwardRecord, 0)
+ for actid in ChConfig.PeoplePartyActIDList:
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCPartyCurCnt % actid, 0)
+ SyncFCPartyInfo(curPlayer)
+ #重置消费
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCCostGold, 0)
+ return True
+
+def __SendNewFairyCeremonyMail(curPlayer, playerFCWorldLV):
+ # 未领取的奖励邮件发放
+ #充值大礼
+ playerID = curPlayer.GetID()
+ playerName = curPlayer.GetName()
+ if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCRechargeState) == 1:
+ worldLvNum = __GetFCWorldLVIndex(curPlayer, Def_FC_Recharge)
+ awardInfoDict = IpyGameDataPY.GetFuncEvalCfg('NewCeremonyRecharge', 1, {})
+ if str(worldLvNum) not in awardInfoDict:
+ GameWorld.ErrLog(' 邮件发放充值大礼奖励 CeremonyRecharge 未配置奖励 worldLvNum=%s' % worldLvNum)
+ else:
+ awardList = awardInfoDict[str(worldLvNum)]
+ PlayerControl.SendMailByKey('CeremonyPayPack', [playerID], awardList, [playerName])
+ #全民来嗨
+ worldLvNum = __GetFCWorldLVIndex(curPlayer, Def_FC_Party)
+ curPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCPartyCurPoint)
+ awardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCPartyAwardRecord)
+ ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('NewAllPeoplePartyAward', {'WorldLvNum':worldLvNum}, True)
+ if not ipyDataList:
+ GameWorld.ErrLog(' 邮件发放全民来嗨奖励 AllPeoplePartyAward 未配置世界等级档 WorldLvNum=%s' % worldLvNum)
+ return
+
+ partyAwardList = []
+ for ipyData in ipyDataList:
+ index = ipyData.GetIndex()
+ if awardRecord & pow(2, index):
+ continue
+ needPoint = ipyData.GetNeedPoint()
+ if curPoint < needPoint:
+ continue
+ awardInfoDict = ipyData.GetAward()
+ job = curPlayer.GetJob()
+ if str(job) not in awardInfoDict:
+ GameWorld.ErrLog(' 邮件发放全民来嗨奖励 AllPeoplePartyAward 未配置职业奖励 job=%s' % job)
+ continue
+ awardList = awardInfoDict[str(job)]
+ partyAwardList += awardList
+ if partyAwardList:
+ PlayerControl.SendMailByKey('CeremonyHaiPoint', [playerID], partyAwardList, [playerName])
+ return
+
+def __IsAtFCAction():
+ ##是否在新仙界盛典活动中
+ actBossRebornInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_NewFairyCeremony, {})
+ state = actBossRebornInfo.get(ShareDefine.ActKey_State, 0)
+ return state == 1
+
+def __GetFCWorldLVIndex(curPlayer, fcType):
+ #获取活动世界等级档
+ playerFCWorldLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCActionWorldLV)
+ fcWorldlvDict = IpyGameDataPY.GetFuncEvalCfg('NewCeremonyWorldLv', 1, {})
+ if str(fcType) not in fcWorldlvDict:
+ return 0
+ worldLVIndex = 0
+ worldlvList = fcWorldlvDict[str(fcType)]
+ for index, lvinfo in enumerate(worldlvList):
+ minlv, maxlv = lvinfo
+ if minlv <= playerFCWorldLV <= maxlv:
+ worldLVIndex = index
+ break
+ return worldLVIndex
+
+#################充值大礼##############################
+def OnFCRecharge(curPlayer):
+ if not __IsAtFCAction():
+ return
+ curState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCRechargeState)
+ if curState != 0:
+ return
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCRechargeState, 1)
+ SyncFCRechargeInfo(curPlayer)
+ return
+
+def GetFCRechargeAward(curPlayer):
+ ## 领取充值大礼奖励
+ curState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCRechargeState)
+ if curState != 1:
+ return
+ worldLvNum = __GetFCWorldLVIndex(curPlayer, Def_FC_Recharge)
+ awardInfoDict = IpyGameDataPY.GetFuncEvalCfg('NewCeremonyRecharge', 1, {})
+ if str(worldLvNum) not in awardInfoDict:
+ GameWorld.ErrLog(' 领取充值大礼奖励 CeremonyRecharge 未配置奖励 worldLvNum=%s' % worldLvNum)
+ return
+ awardList = awardInfoDict[str(worldLvNum)]
+ # 检查背包
+ needSpace = len(awardList)
+ packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
+ if needSpace > packSpace:
+ PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
+ return
+
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCRechargeState, 2)
+ for itemID, itemCnt, isBind in awardList:
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [IPY_GameWorld.rptItem])
+
+ SyncFCRechargeInfo(curPlayer)
+
+ PlayerControl.WorldNotify(0, 'CeremonyRecharge', [curPlayer.GetName()])
+ return
+
+
+def SyncFCRechargeInfo(curPlayer):
+ ## 通知充值大礼活动状态
+ packData = ChPyNetSendPack.tagMCNewXJSDRecharge()
+ packData.State = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCRechargeState)
+ NetPackCommon.SendFakePack(curPlayer, packData)
+ return
+
+#################全民来嗨##############################
+def AddFCPartyActionCnt(curPlayer, actionID, addCnt=1):
+ ##增加全民来嗨完成次数
+ if not __IsAtFCAction():
+ return
+ ipyData = IpyGameDataPY.GetIpyGameData('NewAllPeopleParty', actionID)
+ if not ipyData:
+ return
+ maxCnt = ipyData.GetTotalTimes()
+ curCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCPartyCurCnt % actionID)
+ if curCnt >= maxCnt:
+ return
+ newCnt = min(maxCnt, curCnt + addCnt)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCPartyCurCnt % actionID, newCnt)
+ singlePoint = ipyData.GetAddPoint()
+ addPoint = (newCnt - curCnt) * singlePoint
+ curPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCPartyCurPoint)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCPartyCurPoint, curPoint + addPoint)
+ SyncFCPartyInfo(curPlayer, [actionID])
+ return
+
+def GetFCPartyAward(curPlayer, index):
+ ## 全民来嗨领奖
+ worldLvNum = __GetFCWorldLVIndex(curPlayer, Def_FC_Party)
+
+ ipyData = IpyGameDataPY.GetIpyGameData('NewAllPeoplePartyAward', worldLvNum, index)
+ if not ipyData:
+ return
+
+ curPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCPartyCurPoint)
+ if curPoint < ipyData.GetNeedPoint():
+ GameWorld.DebugLog(' 全民来嗨领奖, 点数不足%s, worldLvNum=%s, index=%s' % (ipyData.GetNeedPoint(), worldLvNum, index), curPlayer.GetID())
+ return
+ awardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCPartyAwardRecord)
+ awardMark = pow(2, index)
+ if awardRecord & awardMark:
+ GameWorld.DebugLog(' 全民来嗨领奖, 已领奖, worldLvNum=%s, index=%s' % (worldLvNum, index), curPlayer.GetID())
+ return
+ awardInfoDict = ipyData.GetAward()
+ job = curPlayer.GetJob()
+ if str(job) not in awardInfoDict:
+ return
+ awardList = awardInfoDict[str(job)]
+ # 检查背包
+ needSpace = len(awardList)
+ packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
+ if needSpace > packSpace:
+ PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
+ return
+ #更新记录
+ awardRecord |= awardMark
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCPartyAwardRecord, awardRecord)
+ for itemID, itemCnt, isBind in awardList:
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [IPY_GameWorld.rptItem])
+ #通知
+ SyncFCPartyInfo(curPlayer, isGetAward=True)
+ return
+
+
+def SyncFCPartyInfo(curPlayer, actIDList=[], isGetAward=False):
+ ##通知全民来嗨信息
+ packData = ChPyNetSendPack.tagMCNewAllPeoplePartyInfo()
+ packData.Clear()
+ packData.CurPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCPartyCurPoint)
+ packData.AwardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCPartyAwardRecord)
+ if not isGetAward:
+ packData.BuyCountList = []
+ for actID in ChConfig.PeoplePartyActIDList:
+ if actIDList and actID not in actIDList:
+ continue
+ finishInfo = ChPyNetSendPack.tagMCNewAllPeoplePartyCount()
+ finishInfo.ActID = actID
+ finishInfo.CurTimes = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCPartyCurCnt % actID)
+ packData.BuyCountList.append(finishInfo)
+ packData.Count = len(packData.BuyCountList)
+
+ NetPackCommon.SendFakePack(curPlayer, packData)
+ return
+
+#################绝版降临##############################
+def AddFCCostGold(curPlayer, costType, costGold):
+ if costGold <= 0:
+ return
+ if costType in ChConfig.CostRebate_DisableType:
+ #GameWorld.DebugLog("不计入绝版降临消费的消费类型!costType=%s" % costType, curPlayer.GetPlayerID())
+ return
+ if not __IsAtFCAction():
+ return
+ curCostGold = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NewFCCostGold)
+ updCostGold = curCostGold + costGold
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NewFCCostGold, updCostGold)
+
+ if updCostGold < IpyGameDataPY.GetFuncCfg('NewCeremonyRankLimit'):
+ return
+
+ #更新排行榜
+ PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_NewFCCostGold, updCostGold)
+
+ GameWorld.DebugLog("玩家绝版降临消费活动: curCostGold=%s,costGold=%s,updCostGold=%s"
+ % (curCostGold, costGold, updCostGold), curPlayer.GetPlayerID())
+ return
+
+#################烟花狂欢##############################
+def IsCanBuyFireworks(curPlayer, itemIndex):
+ ##当前是否可以买烟花
+ if not __IsAtFCAction():
+ GameWorld.Log(' 烟花狂欢买烟花 活动未开启, 无法购买')
+ return False
+ fireworksDict = IpyGameDataPY.GetFuncEvalCfg('NewCeremonyFireParty', 1, {})
+ worldLvNum = __GetFCWorldLVIndex(curPlayer, Def_FC_Fireworks)
+ canBuyID = fireworksDict.get(str(worldLvNum), 0)
+ if canBuyID != itemIndex:
+ GameWorld.Log(' 烟花狂欢买烟花 当前可以买烟花为 %s, 无法购买 %s,worldLvNum=%s'%(canBuyID, itemIndex,worldLvNum), curPlayer.GetID())
+ return False
+ return True
\ No newline at end of file
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py
index d2cc301..f5661e8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py
@@ -30,6 +30,7 @@
import EventShell
import PlayerActivity
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import PlayerVip
import copy
@@ -225,6 +226,7 @@
costItemCnt = sum(needMaterialDict.values())
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_RefineStove, costItemCnt)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RefineStove, 1)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RefineStove, 1)
return
def __GetAlchemyUpItemID(itemID, alchemyLV, alchemyUpCfg):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
index b1ff0f6..fb196d0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
@@ -28,6 +28,7 @@
import NetPackCommon
import PlayerBossReborn
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
import ItemCommon
import ChConfig
@@ -326,9 +327,11 @@
if treasureType == 2:
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RuneTreasure, treasureCount)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RuneTreasure, treasureCount)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_RuneTreasure, treasureCount)
else:
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Treasure, treasureCount)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Treasure, treasureCount)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_Treasure, treasureCount)
# 给物品
mailItemList = []
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 0d747d6..adf7808 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -225,6 +225,7 @@
OperationActionName_BossReborn = "ActBossReborn" # BOSS复活活动
OperationActionName_FlashGiftbag = "ActFlashGiftbag" # 限时礼包活动
OperationActionName_FairyCeremony = "ActFairyCeremony" # 仙界盛典活动
+OperationActionName_NewFairyCeremony = "ActNewFairyCeremony" # 仙界盛典活动
OperationActionName_RealmPoint = "ActRealmPoint" # 多倍修行点活动
OperationActionName_FlashSale = "ActFlashSale" # 限时抢购活动
OperationActionName_WishingWell = "ActWishingWell" # 许愿池活动
@@ -240,10 +241,11 @@
OperationActionName_FlashGiftbag, OperationActionName_FairyCeremony,
OperationActionName_RealmPoint, OperationActionName_FlashSale,
OperationActionName_WishingWell, OperationActionName_TotalRecharge,
- OperationActionName_WeekParty, OperationActionName_LoginAward, ] \
+ OperationActionName_WeekParty, OperationActionName_LoginAward,
+ OperationActionName_NewFairyCeremony, ] \
+ FeastOperationActionNameList
#需要记录开启活动时的世界等级的运营活动
-NeedWorldLVOperationActNameList = [OperationActionName_FairyCeremony, OperationActionName_WishingWell]
+NeedWorldLVOperationActNameList = [OperationActionName_FairyCeremony, OperationActionName_WishingWell, OperationActionName_NewFairyCeremony]
#活动信息字典key定义
ActKey_ID = "ID" # 活动ID,唯一标识的ID,一般是活动开启的time值
@@ -606,6 +608,7 @@
Def_BT_Campaign_PetLV, #灵宠等级(开服活动榜)
Def_BT_ZhuXianTower, #诛仙塔榜
+ Def_BT_NewFCCostGold, #消费排行榜(新仙界盛典)
Def_BT_HighLadder, #天梯竞技场排行
Def_BT_HighLadder_Yester, #天梯竞技场昨日排行
@@ -621,7 +624,7 @@
Def_BT_CostTeHuiLast, #消费特惠排行榜上一期
Def_BT_Max, #排行榜最大类型
-) = range(0, 33 + 2)
+) = range(0, 34 + 2)
#职业对应战力排行榜类型
JobFightPowerBillboardDict = {
--
Gitblit v1.8.0