hxp
2021-04-07 b29c07351d8c6be81f3ba2dd28aeffef3c96257f
8886 【BT2】【后端】线下活动支持(增加单笔累充系统)
8个文件已修改
48 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActSingleRecharge.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -1698,7 +1698,7 @@
struct tagActSingleRechargeAward
{
    DWORD        _TemplateID;    //模板ID
    DWORD        SingleRechargeValue;    //单笔充值额度
    float        SingleRechargeValue;    //单笔充值额度
    BYTE        AwardIndex;        //返利奖励索引0~31,同个模板中不重复
    dict        AwardItem;    //返利物品信息列表 {职业:[(物品ID,个数,是否绑定),...]}
    char        NotifyKey;        //全服广播key,默认两个参数(玩家名, 档位额度)
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -233,6 +233,7 @@
OperationActionName_FeastWish = "ActFeastWish" # 节日祝福活动
OperationActionName_FeastTravel = "ActFeastTravel" # 节日游历活动
OperationActionName_ManyDayRecharge = "ActManyDayRecharge" # 多日连充活动
OperationActionName_SingleRecharge = "ActSingleRecharge" # 单笔累充活动
#节日活动类型列表 - 该类型无视开服天,日期到了就开启
FeastOperationActionNameList = [OperationActionName_FeastWeekParty, OperationActionName_FeastRedPacket,
                                OperationActionName_RechargeRebateGold, OperationActionName_GrowupBuy,
@@ -248,7 +249,7 @@
                           OperationActionName_WishingWell, OperationActionName_TotalRecharge,
                           OperationActionName_WeekParty, OperationActionName_LoginAward, 
                           OperationActionName_NewFairyCeremony, OperationActionName_LuckyTreasure,
                           OperationActionName_DailyGiftbag,
                           OperationActionName_DailyGiftbag, OperationActionName_SingleRecharge,
                           OperationActionName_CollectWords, OperationActionName_ManyDayRecharge,
                           ] + FeastOperationActionNameList
#需要记录开启活动时的世界等级的运营活动
@@ -262,14 +263,14 @@
                                   OperationActionName_CollectWords,
                                   OperationActionName_FeastLogin,
                                   OperationActionName_FeastWish, OperationActionName_FeastTravel,
                                   OperationActionName_ManyDayRecharge,
                                   OperationActionName_ManyDayRecharge, OperationActionName_SingleRecharge,
                                   ]
#支持多活动分组编号的活动名
MultiActNumOperationActNameList = [OperationActionName_TotalRecharge, OperationActionName_CollectWords,
                                   OperationActionName_FlashGiftbag, OperationActionName_CostRebate,
                                   OperationActionName_SpringSale, OperationActionName_FlashSale,
                                   OperationActionName_ManyDayRecharge,
                                   OperationActionName_ManyDayRecharge, OperationActionName_SingleRecharge,
                                   ]
#跨服运营活动表名定义
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3863,6 +3863,13 @@
Def_PDict_ManyDayRechargeWorldLV = "ManyDayRechargeWorldLV_%s" #玩家身上的活动世界等级,参数:(活动编号)
Def_PDict_ManyDayRechargeValue = "ManyDayRechargeValue_%s_%s"  # 每日累充总额,参数:(活动编号, 天索引)
Def_PDict_ManyDayRechargeAward = "ManyDayRechargeAward_%s_%s"  # 领奖记录,参数:(活动编号, key编号)
#单笔累充活动
Def_PDict_SingleRechargeID = "SingleRechargeID_%s"  # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
Def_PDict_SingleRechargeTemplateID = "SingleRechargeTempID_%s"  # 玩家身上的活动模板ID,参数:(活动编号)
Def_PDict_SingleRechargeWorldLV = "SingleRechargeWorldLV_%s" #玩家身上的活动世界等级,参数:(活动编号)
Def_PDict_SingleRechargeValue = "SingleRechargeValue_%s"  # 单笔最高累充,参数:(活动编号)
Def_PDict_SingleRechargeAward = "SingleRechargeAward_%s"  # 领奖记录,参数:(活动编号)
#-------------------------------------------------------------------------------
#开服活动,Def_PDictType_OpenServerCampaign
@@ -5403,7 +5410,9 @@
Def_RewardType_DailyRecharge, #永久每日累充奖励39
Def_RewardType_RechargeGold30, #1元送30倍充值券每日奖励40
Def_RewardType_ManyDayRecharge, #多日连充41
)= range(42)
Def_RewardType_InfiniteMoney, #无限货币42
Def_RewardType_SingleRecharge, #单笔累充 43
)= range(44)
#boss复活相关活动定义
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -1337,7 +1337,7 @@
                "ActSingleRechargeAward":(
                        ("DWORD", "TemplateID", 1),
                        ("DWORD", "SingleRechargeValue", 0),
                        ("float", "SingleRechargeValue", 0),
                        ("BYTE", "AwardIndex", 0),
                        ("dict", "AwardItem", 0),
                        ("char", "NotifyKey", 0),
@@ -4524,7 +4524,7 @@
    
    def __init__(self):
        self.TemplateID = 0
        self.SingleRechargeValue = 0
        self.SingleRechargeValue = 0.0
        self.AwardIndex = 0
        self.AwardItem = {}
        self.NotifyKey = ""
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -108,6 +108,7 @@
import PlayerActRechargePrize
import PlayerActRechargeRebateGold
import PlayerActManyDayRecharge
import PlayerActSingleRecharge
import PlayerSpringSale
import PlayerFairyCeremony
import PlayerNewFairyCeremony
@@ -716,6 +717,8 @@
    PlayerActLogin.OnLogin(curPlayer)
    # 多日连充活动
    PlayerActManyDayRecharge.OnPlayerLogin(curPlayer)
    # 单笔累充活动
    PlayerActSingleRecharge.OnPlayerLogin(curPlayer)
    # 仙界盛典活动
    PlayerFairyCeremony.OnLogin(curPlayer)
    # 新仙界盛典活动
@@ -5375,6 +5378,9 @@
    # 领取多日连充领取
    elif rewardType == ChConfig.Def_RewardType_ManyDayRecharge:
        PlayerActManyDayRecharge.OnGetManyDayRechargeAward(curPlayer, dataEx, dataExStr)
    # 领取单笔累充领取
    elif rewardType == ChConfig.Def_RewardType_SingleRecharge:
        PlayerActSingleRecharge.OnGetSingleRechargeAward(curPlayer, dataEx, dataExStr)
    # 领取boss复活活动奖励
    elif rewardType == ChConfig.Def_RewardType_BossReborn:
        PlayerBossReborn.GetBossRebornActionAward(curPlayer, dataEx)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActSingleRecharge.py
@@ -25,6 +25,7 @@
import NetPackCommon
import GameWorld
import ChConfig
import CommFunc
def GetTemplateID(cfgID, dayIndex):
    if not cfgID or dayIndex == None:
@@ -126,7 +127,7 @@
            continue
        
        singleValue = ipyData.GetSingleRechargeValue()
        if curRechargeValue < singleValue:
        if curRechargeValue < CommFunc.RMBToCoin(singleValue):
            continue
        awardRecord |= pow(2, awardIndex) 
        
@@ -226,7 +227,7 @@
        GameWorld.DebugLog("找不到该单笔累充活动档位索引奖励!actNum=%s,templateID=%s,awardIndex=%s" % (actNum, templateID, awardIndex), playerID)
        return
    
    singleValue = awardIpyData.GetSingleRechargeValue()
    singleValue = CommFunc.RMBToCoin(awardIpyData.GetSingleRechargeValue())
    curRechargeValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SingleRechargeValue % actNum)
    
    if curRechargeValue < singleValue:
@@ -249,7 +250,7 @@
    
    notifyKey = awardIpyData.GetNotifyKey()
    if notifyKey:
        PlayerControl.WorldNotify(0, notifyKey, [curPlayer.GetPlayerName(), singleValue])
        PlayerControl.WorldNotify(0, notifyKey, [curPlayer.GetPlayerName(), awardIpyData.GetSingleRechargeValue()])
        
    for itemID, itemCount, isAuctionItem in awardItemList:
        ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, [IPY_GameWorld.rptItem], event=["SingleRechargeAward", False, {}])
@@ -321,7 +322,7 @@
        for awardIpyData in ipyDataList:
            awardInfo = ChPyNetSendPack.tagMCActSingleRechargeAward()
            awardInfo.AwardIndex = awardIpyData.GetAwardIndex()
            awardInfo.SingleRechargeValue = awardIpyData.GetSingleRechargeValue()
            awardInfo.SingleRechargeValue = CommFunc.RMBToCoin(awardIpyData.GetSingleRechargeValue())
            awardInfo.AwardItem = []
            awardItemList = GameWorld.GetDictValueByRangeKey(awardIpyData.GetAwardItem(), actWorldLV, [])
            for itemID, itemCount, isBind in awardItemList:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -50,6 +50,7 @@
import PlayerActTotalRecharge
import PlayerActRechargeRebateGold
import PlayerActManyDayRecharge
import PlayerActSingleRecharge
import PlayerActRechargePrize
import CrossActCTGBillboard
import PlayerActGrowupBuy
@@ -450,6 +451,7 @@
    PlayerGoldGift.OnPlayerChargeGold(curPlayer)
    #累积充值X元
    PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin)
    PlayerActSingleRecharge.UpdSingleRechargeValue(curPlayer, orderCoin, coinType) # 单笔累充
    PlayerFairyCeremony.AddFCCTGRMB(curPlayer, orderCoin)
    PlayerNewFairyCeremony.AddFCCostGold(curPlayer, orderCoin)
    #开服活动
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -233,6 +233,7 @@
OperationActionName_FeastWish = "ActFeastWish" # 节日祝福活动
OperationActionName_FeastTravel = "ActFeastTravel" # 节日游历活动
OperationActionName_ManyDayRecharge = "ActManyDayRecharge" # 多日连充活动
OperationActionName_SingleRecharge = "ActSingleRecharge" # 单笔累充活动
#节日活动类型列表 - 该类型无视开服天,日期到了就开启
FeastOperationActionNameList = [OperationActionName_FeastWeekParty, OperationActionName_FeastRedPacket,
                                OperationActionName_RechargeRebateGold, OperationActionName_GrowupBuy,
@@ -248,7 +249,7 @@
                           OperationActionName_WishingWell, OperationActionName_TotalRecharge,
                           OperationActionName_WeekParty, OperationActionName_LoginAward, 
                           OperationActionName_NewFairyCeremony, OperationActionName_LuckyTreasure,
                           OperationActionName_DailyGiftbag,
                           OperationActionName_DailyGiftbag, OperationActionName_SingleRecharge,
                           OperationActionName_CollectWords, OperationActionName_ManyDayRecharge,
                           ] + FeastOperationActionNameList
#需要记录开启活动时的世界等级的运营活动
@@ -262,14 +263,14 @@
                                   OperationActionName_CollectWords,
                                   OperationActionName_FeastLogin,
                                   OperationActionName_FeastWish, OperationActionName_FeastTravel,
                                   OperationActionName_ManyDayRecharge,
                                   OperationActionName_ManyDayRecharge, OperationActionName_SingleRecharge,
                                   ]
#支持多活动分组编号的活动名
MultiActNumOperationActNameList = [OperationActionName_TotalRecharge, OperationActionName_CollectWords,
                                   OperationActionName_FlashGiftbag, OperationActionName_CostRebate,
                                   OperationActionName_SpringSale, OperationActionName_FlashSale,
                                   OperationActionName_ManyDayRecharge,
                                   OperationActionName_ManyDayRecharge, OperationActionName_SingleRecharge,
                                   ]
#跨服运营活动表名定义