From e4fc3ac2dea951d1345acb647cf9bc36142951e9 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 12 二月 2026 11:41:47 +0800
Subject: [PATCH] 16 卡牌服务端(删除不需要的旧活动:成长必买、限时特惠、限时礼包、每日礼包、限时抢购、极品白拿、运势活动、天帝礼包、转盘、许愿池、幸运鉴宝;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 49
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 602 -----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 4016 -------------------------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py | 5
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py | 2
/dev/null | 453 ----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini | 76
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 716 ------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 44
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py | 44
PySysDB/PySysDBPY.h | 281 --
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 6
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py | 9
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 145 -
14 files changed, 30 insertions(+), 6,418 deletions(-)
diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 6e349c9..0156339 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -1286,23 +1286,6 @@
DWORD UnlockValue; //解锁所需值
};
-//限时特惠表
-
-struct tagActSpringSale
-{
- DWORD _CfgID; //配置ID
- char StartDate; //开启日期
- char EndDate; //结束日期
- list StartTimeList; //开启时间列表, 支持多个时段
- list EndTimeList; //结束时间列表, 支持多个时段
- WORD AdvanceMinutes; //前端提前X分钟展示活动
- WORD LVLimit; //限制等级
- BYTE IsDayReset; //是否每天重置
- dict ShopTypeList; //商店类型列表
- char MailKey; //活动更新时发送邮件key
- list MailItemPrize; //活动更新时发送邮件奖励物品
-};
-
//每日任务表
struct DailyTask
@@ -1572,78 +1555,6 @@
list AwardItemList; //奖励物品信息列表 [[物品ID,个数,是否拍品],...]
};
-//极品白拿表
-
-struct tagFreeGoods
-{
- BYTE _ID; //ID
- dict AwardItem; //奖励 {"职业":[[物品ID,个数],...], ...}
- WORD NeedMoney; //需要仙玉
- DWORD ReturnDays; //返还所需天
-};
-
-//限时礼包活动表
-
-struct tagActFlashGiftbag
-{
- DWORD _CfgID; //配置ID
- char StartDate; //开启日期
- char EndDate; //结束日期
- list StartTimeList; //开启时间列表, 支持多个时段
- list EndTimeList; //结束时间列表, 支持多个时段
- WORD AdvanceMinutes; //前端提前X分钟展示活动
- WORD LVLimit; //限制等级
- BYTE IsDayReset; //是否每天重置
- BYTE IsJueban; //是否绝版礼包
- dict GiftbagTypeList; //礼包类型列表
- char MailKey; //活动更新时发送邮件key
- list MailItemPrize; //活动更新时发送邮件奖励物品
-};
-
-//限时礼包模板表
-
-struct tagFlashGiftbag
-{
- DWORD _GiftbagID; //礼包编号
- WORD GiftbagType; //礼包类型
- float OriginalRMB; //原价(RMB)
- WORD BuyCountLimit; //限购次数,0不限购
- list GiftItemList; //礼包物品信息列表 [(物品ID,个数,是否绑定),...]
- DWORD MainItemID; //标的物品ID
- char NotifyKey; //全服广播key,默认两个参数(玩家名, 档位额度)
-};
-
-//每日礼包活动表
-
-struct tagActDailyGiftbag
-{
- DWORD _CfgID; //配置ID
- char StartDate; //开启日期
- char EndDate; //结束日期
- WORD LVLimit; //限制等级
- WORD GiftbagType; //礼包模板类型
-};
-
-//每日礼包模板表
-
-struct tagDailyGiftbag
-{
- WORD _GiftbagType; //礼包模板类型
- DWORD _GiftbagID; //礼包编号
- WORD BuyCountLimit; //限购次数,0不限购
- eval GiftItemList; //礼包物品信息列表 [(物品ID,个数,是否绑定),...]
- WORD Discount; //折扣百分比
-};
-
-//双倍经验活动表
-
-struct tagActExpRate
-{
- DWORD _CfgID; //配置ID
- WORD LVLimit; //限制等级
- DWORD AddExpRate; //经验倍率加成,万分率
-};
-
//买一送多活动表
struct tagActBuyOne
@@ -1742,46 +1653,6 @@
list LayerWeightItemList; //通关该层额外随机奖励 [[权重,物品ID,个数], ...]
};
-//天帝礼包活动时间表
-
-struct tagActGodGift
-{
- DWORD _CfgID; //配置ID
- char StartDate; //开启日期
- char EndDate; //结束日期
- BYTE IsDayReset; //是否每天重置
- WORD LVLimit; //限制等级
- BYTE UseMoneyType; //消耗货币类型
- list UseGoldList; //抽奖消耗货币列表
- BYTE PrizeMoneyType; //奖励货币类型
- list PrizeMoneyList; //奖励货币列表
- BYTE ResetLimitTimes; //至少抽几次可重置
- BYTE ResetCountMax; //可重置次数
- dict TemplateIDInfo; //奖池模板信息 {(世界等级A,B):[模板编号列表, ...], ...}
-};
-
-//天帝礼包奖池表
-
-struct tagActGodGiftAward
-{
- DWORD _TemplateID; //奖池模板编号
- BYTE AwardLibType; //奖励库类型
- BYTE UnlockAwardLimitTimes; //抽X次后可产出本库
- BYTE ChooseItemCount; //选择个数
- dict LibItemInfo; //物品编号对应物品信息 {物品编号:[物品ID,个数,是否拍品,可选次数], ...} 0不限次数
- list NotifyItemNumList; //需要广播的编号列表
-};
-
-//多倍修行点活动时间表
-
-struct tagActRealmPoint
-{
- DWORD _CfgID; //配置ID
- WORD Multiple; //倍数
- WORD LVLimit; //限制等级
- DWORD PointLimit; //限制额外修行点
-};
-
//宗门试炼兑换表
struct tagTrialExchange
@@ -1794,25 +1665,6 @@
DWORD CostItemCount; //消耗物品个数
};
-//仙界盛典-全民来嗨表
-
-struct tagAllPeopleParty
-{
- BYTE _ID; //ID
- WORD TotalTimes; //总次数
- WORD AddPoint; //每完成次数获得嗨点
-};
-
-//仙界盛典-全民来嗨奖励表
-
-struct tagAllPeoplePartyAward
-{
- BYTE _WorldLvNum; //世界等级档
- DWORD _Index; //索引
- DWORD NeedPoint; //需要点数
- dict Award; //奖励 {"职业":[[物品ID,个数,是否绑定],...], ...}
-};
-
//地图NPC配置表-挂机点
struct tagMapEventPoint
@@ -1822,51 +1674,6 @@
WORD LowLV; // 推荐最低等级
WORD HighestLV; // 推荐最高等级
DWORD Defense; // 推荐防御
-};
-
-//限时抢购表
-
-struct tagActFlashSale
-{
- DWORD _CfgID; //配置ID
- char StartDate; //开启日期
- char EndDate; //结束日期
- list StartTimeList; //开启时间列表, 支持多个时段
- list EndTimeList; //结束时间列表, 支持多个时段
- WORD AdvanceMinutes; //前端提前X分钟展示活动
- WORD LVLimit; //限制等级
- BYTE IsDayReset; //是否每天重置
- dict ShopTypeList; //商店类型列表
- char MailKey; //活动更新时发送邮件key
- list MailItemPrize; //活动更新时发送邮件奖励物品
-};
-
-//许愿池活动时间表
-
-struct tagActWishingWell
-{
- DWORD _CfgID; //配置ID
- char StartDate; //开启日期
- char EndDate; //结束日期
- BYTE IsDayReset; //是否每天重置
- BYTE ResetType; //重置类型,0-0点重置;1-5点重置
- WORD LVLimit; //限制等级
- BYTE TemplateID; //模板编号
-};
-
-//许愿池库模板表
-
-struct tagWishingWell
-{
- BYTE _TemplateID; //模板ID
- BYTE IsFree; //是否免费库
- list WorldLVLimit; //世界等级范围
- DWORD ItemID; //物品ID
- WORD ItemCnt; //物品数量
- BYTE IsBind; //是否绑定
- DWORD Weight; //权重
- DWORD Mark; //排序用标识
- BYTE Rare; //珍稀值
};
//表情包表
@@ -1903,17 +1710,6 @@
char NotifyKey; //全服广播key,默认两个参数(玩家名, 档位额度)
};
-//成长必买活动表
-
-struct tagActGrowupBuy
-{
- DWORD _CfgID; //配置ID
- char StartDate; //开启日期
- char EndDate; //结束日期
- WORD LVLimit; //限制等级
- list CTGIDGroupList; //充值编号组列表 [[ctgID, ...], ...]
-};
-
//多日连充活动表
struct tagActManyDayRecharge
@@ -1935,27 +1731,6 @@
BYTE AwardIndex; //奖励索引
dict AwardItemInfo; //奖励物品信息 {世界等级范围:[[物品ID,个数,是否拍品], ...]}
char NotifyKey; //广播
-};
-
-//转盘活动表
-
-struct tagActTurntable
-{
- DWORD _CfgID; //配置ID
- char StartDate; //开启日期
- char EndDate; //结束日期
- WORD LVLimit; //限制等级
- BYTE IsDayReset; //是否每天重置
- BYTE CTGTypeEffValue; //充值有效类型值
- list CTGPrizeList; //累计充值奖励次数
- BYTE UseMoneyType; //累计消费货币类型
- list UseMoneyPrizeList; //累计消费X货币奖励次数
- list LibChooseCountList; //各道具库选择个数
- list SuperItemLimitRule; //终极库产出万分率|至少X次后可产出
- dict CommItemLib; //普通道具库 {(世界等级A,世界等级B):[[可选物品ID, 个数, 是否拍品], ...], ...}
- dict GoodItemLib; //极品道具库 {(世界等级A,世界等级B):[[可选物品ID, 个数, 是否拍品], ...], ...}
- dict SuperItemLib; //超级道具库 {(世界等级A,世界等级B):[[可选物品ID, 个数, 是否拍品], ...], ...}
- char WorldNotifyKey; //好物品全服广播mark,极品及超级道具默认全服广播
};
//单笔累充活动表
@@ -2087,18 +1862,6 @@
WORD PosY; //坐标Y
};
-//运势活动时间表
-
-struct tagActYunshi
-{
- DWORD _CfgID; //配置ID
- char StartDate; //开启日期
- char EndDate; //结束日期
- WORD LVLimit; //限制等级
- BYTE ResetType; //重置类型,0-0点重置;1-5点重置
- DWORD TreasureType; //商城类型
-};
-
//轮回殿活动时间表
struct ActLunhuidian
@@ -2198,50 +1961,6 @@
BYTE DayNum; //第X天从1开始
list LoginAwardItemList; //奖励列表[[物品ID,个数,是否拍品], ...]
list LoginAwardItemListEx; //扩展奖励列表[[物品ID,个数,是否拍品], ...]
-};
-
-//新仙界盛典-全民来嗨表
-
-struct tagNewAllPeopleParty
-{
- BYTE _ID; //ID
- WORD TotalTimes; //总次数
- WORD AddPoint; //每完成次数获得嗨点
-};
-
-//新仙界盛典-全民来嗨奖励表
-
-struct tagNewAllPeoplePartyAward
-{
- BYTE _WorldLvNum; //世界等级档
- DWORD _Index; //索引
- DWORD NeedPoint; //需要点数
- dict Award; //奖励 {"职业":[[物品ID,个数,是否绑定],...], ...}
-};
-
-//幸运鉴宝活动时间表
-
-struct tagActLuckyTreasure
-{
- DWORD _CfgID; //配置ID
- char StartDate; //开启日期
- char EndDate; //结束日期
- BYTE ResetType; //重置类型,0-0点重置;1-5点重置
- WORD LVLimit; //限制等级
- BYTE TemplateID; //模板编号
- WORD LuckyPoint; //总幸运值
-};
-
-//幸运鉴宝库模板表
-
-struct tagLuckyTreasureTemplate
-{
- BYTE _TemplateID; //模板ID
- list WorldLVLimit; //世界等级范围
- DWORD ItemID; //物品ID
- WORD ItemCnt; //物品数量
- BYTE IsBind; //是否绑定
- DWORD Weight; //权重
};
//装备位背包索引映射表
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
index b2832bd..3461340 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
@@ -727,54 +727,6 @@
PacketSubCMD_4=0x06
PacketCallFunc_4=OnQueryRecharge
-;限时抢购
-[PlayerFlashSale]
-ScriptName = Player\PlayerFlashSale.py
-Writer = xdh
-Releaser = xdh
-RegType = 0
-RegisterPackCount = 1
-
-PacketCMD_1=0xAA
-PacketSubCMD_1=0x05
-PacketCallFunc_1=OnFlashSaleAppointment
-
-;许愿池
-[PlayerWishingWell]
-ScriptName = Player\PlayerWishingWell.py
-Writer = xdh
-Releaser = xdh
-RegType = 0
-RegisterPackCount = 2
-
-PacketCMD_1=0xAA
-PacketSubCMD_1=0x07
-PacketCallFunc_1=OnActWishingRefresh
-
-PacketCMD_2=0xAA
-PacketSubCMD_2=0x06
-PacketCallFunc_2=OnActWishingDrag
-
-;天帝礼包活动
-[PlayerActGodGift]
-ScriptName = Player\PlayerActGodGift.py
-Writer = hxp
-Releaser = hxp
-RegType = 0
-RegisterPackCount = 3
-
-PacketCMD_1=0xAA
-PacketSubCMD_1=0x20
-PacketCallFunc_1=OnActGodGiftChooseItem
-
-PacketCMD_2=0xAA
-PacketSubCMD_2=0x21
-PacketCallFunc_2=OnActGodGiftlottery
-
-PacketCMD_3=0xAA
-PacketSubCMD_3=0x22
-PacketCallFunc_3=OnActGodGiftReset
-
;炼器活动
[PlayerActLianqi]
ScriptName = Player\PlayerActLianqi.py
@@ -798,34 +750,6 @@
PacketCMD_1=0xAA
PacketSubCMD_1=0x09
PacketCallFunc_1=OnActCollectWordsExchange
-
-;幸运鉴宝
-[PlayerLuckyTreasure]
-ScriptName = Player\PlayerLuckyTreasure.py
-Writer = xdh
-Releaser = xdh
-RegType = 0
-RegisterPackCount = 1
-
-PacketCMD_1=0xAA
-PacketSubCMD_1=0x08
-PacketCallFunc_1=OnStartLuckyTreasure
-
-;转盘活动
-[PlayerActTurntable]
-ScriptName = Player\PlayerActTurntable.py
-Writer = hxp
-Releaser = hxp
-RegType = 0
-RegisterPackCount = 2
-
-PacketCMD_1=0xAA
-PacketSubCMD_1=0x12
-PacketCallFunc_1=OnTurntableChooseItem
-
-PacketCMD_2=0xAA
-PacketSubCMD_2=0x13
-PacketCallFunc_2=OnTurntableStart
;竞技场
[PlayerArena]
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 45e4e42..ca959be 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3419,20 +3419,12 @@
#物品个数
Def_PDict_ItemCount = "ItemCount_%s" # 存储不放在背包的物品个数, 参数(物品ID)
-#极品白拿
-Def_PDict_FreeGoodsOpenTime = "FreeGoodsOpenTime" #极品白拿开启时间
-Def_PDict_FreeGoodsBuyState = "FreeGoodsBuyState_%s" #极品白拿购买状态,参数编号 0-未买 time值-购买时间 1-已返还
-
#累计充值活动
Def_PDict_TotalRechargeID = "TotalRechargeID_%s" # 玩家身上的累计充值活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
Def_PDict_TotalRechargeTemplateID = "TotalRechargeTemplateID_%s" # 玩家身上的累计充值模板ID,参数:(活动编号)
Def_PDict_TotalRechargeGold = "TotalRechargeGold_%s" # 消费返利总累计充值X元,参数:(活动编号)
Def_PDict_TotalRechargeAwardRecord = "TotalRechargeAwardRecord_%s" # 累计充值领奖记录,参数:(活动编号)
Def_PDict_TotalRechargeWorldLV = "TotalRechargeWorldLV_%s" #累计充值活动开启时世界等级,参数:(活动编号)
-
-#成长必买活动
-Def_PDict_GrowupBuyID = "GrowupBuyID" # 玩家身上的重置成长必买活动ID,唯一标识,取活动开始日期time值
-Def_PDict_GrowupBuyState = "GrowupBuyState" # 当前可购买的活动充值ID索引状态,按组索引位存储对应组可购买的充值ID所对应的索引
#买一送多
Def_PDict_BuyOneID = "BuyOneID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time,参数(活动编号)
@@ -3442,37 +3434,10 @@
Def_PDict_FamilyCTGAssistID = "FamilyCTGAssistID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time,参数(活动编号)
Def_PDict_FamilyCTGAssistAward = "FamilyCTGAssistAward_%s" # 玩家领取记录,参数(活动编号)
-#限时特惠活动
-Def_PDict_SpringSaleID = "SpringSaleID_%s" # 玩家身上的限时特惠活动ID,唯一标识,取活动开始日期time,参数(活动编号)
-Def_PDict_SpringSaleMailState = "SpringSaleMailState_%s" # 玩家身上的活动更新提醒邮件状态,参数(活动编号)
-
-#限时礼包活动
-Def_PDict_FlashGiftbagID = "FlashGiftbagID_%s" # 玩家身上的限时礼包活动ID,唯一标识,取活动开始日期time,参数(活动编号)
-Def_PDict_FlashGiftbagBuyCount = "FlashGiftbagBuy_%s_%s" # 限时礼包已购买次数,参数(活动编号, 礼包ID)
-Def_PDict_FlashGiftbagMailState = "FlashGiftbagMail_%s" # 玩家身上的活动更新提醒邮件状态,参数(活动编号)
-
-#每日礼包活动
-Def_PDict_DailyGiftbagID = "DailyGiftbagID" # 玩家身上的每日礼包活动ID,唯一标识,取活动开始日期time
-Def_PDict_DailyGiftbagBuyCount = "DailyGiftbagBuyCount_%s" # 每日礼包已购买次数,参数(礼包ID)
-
#集字活动
Def_PDict_CollectWordsID = "CollectWordsID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数(活动编号 1 或 2)
Def_PDict_CollectWordsExchangeCount = "CollectWordsCount_%s_%s" # 兑换编号对应已兑换次数,参数(活动编号, 兑换编号)
Def_PDict_CollectWordsGJSeconds = "CollectWordsGJSeconds_%s" # 挂机未处理收益的秒数,参数(活动编号)
-
-#限时抢购活动
-Def_PDict_FlashSaleID = "FlashSaleID_%s" # 玩家身上的限时抢购活动ID,唯一标识,取活动开始日期time,参数(活动编号)
-Def_PDict_FlashSaleState = "FlashSaleState_%s" # 玩家身上的限时抢购活动state,参数(活动编号)
-Def_PDict_FlashSaleMailState = "FlashSaleMailState_%s" # 玩家身上的活动更新提醒邮件状态,参数(活动编号)
-Def_PDict_FlashSaleYY = "FlashSaleYY_%s_%s" # 玩家预约限时抢购商品,参数(活动编号, 商品标识)
-
-#许愿池活动
-Def_PDict_WishingWellID = "WishingWellID" # 玩家身上的许愿池活动ID,唯一标识,取活动开始日期time值
-Def_PDict_WishingWellFreeTime = "WishingWellFreeTime" # 许愿池免费开始计时时间
-Def_PDict_WishingWellAwardTime = "WishingWellAwardTime" # 许愿池许愿时间
-Def_PDict_WishingWellRefreshCnt = "WishingWellRefreshCnt" # 付费刷新次数
-Def_PDict_WishingWellItem = "WishingWellItem_%s_%s" # 物品ID,是否极品、是否绑定信息 参数(类型,物品数据)
-Def_PDict_WishingWellItemCnt = "WishingWellItemCnt_%s_%s" # 物品数量记录 参数(类型,物品数据)
# 称号
Def_PDict_TitleState = "TitleState_%s" # 称号状态,参数(key编号)
@@ -3513,12 +3478,6 @@
Def_PDict_TravelGridInfo = "TravelGridInfo_%s_%s" # 格子信息,参数(行, 列) 事件ID*100+是否双倍*10+开启状态
Def_PDict_TravelState = "TravelState" # 本盘游历记录,1-已领取景观奖励
-#幸运鉴宝
-Def_PDict_LuckyTreasureID = "LuckyTreasureID" # 玩家身上的活动ID,唯一标识,取活动开始日期time值
-Def_PDict_LuckyTreasureFree = "LuckyTreasureFree" #是否免费过
-Def_PDict_LuckyTreasurePoint = "LuckyTreasurePoint" #幸运值
-Def_PDict_LuckyTreasureCnt = "LuckyTreasureCnt" #鉴宝次数
-
#多日连充活动
Def_PDict_ManyDayRechargeID = "ManyDayRechargeID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
Def_PDict_ManyDayRechargeTempID = "ManyDayRechargeTempID_%s" # 玩家身上的模板ID,参数:(活动编号)
@@ -3532,17 +3491,6 @@
Def_PDict_SingleRechargeWorldLV = "SingleRechargeWorldLV_%s" #玩家身上的活动世界等级,参数:(活动编号)
Def_PDict_SingleRechargeValue = "SingleRechargeValue_%s_%s" # 领奖值,已领奖次数*1000+可领奖次数,参数:(活动编号,档位索引)
-#转盘活动
-Def_PDict_TurntableID = "TurntableID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
-Def_PDict_TurntableWorldLV = "TurntableWorldLV_%s" #玩家身上的活动世界等级,参数:(活动编号)
-Def_PDict_TurntableLoginState = "TurntableLoginState_%s" # 登录加次数状态,参数:(活动编号)
-Def_PDict_TurntableCTGValue = "TurntableCTGValue_%s" # 累计充值,参数:(活动编号)
-Def_PDict_TurntableUseGold = "TurntableUseGold_%s" # 累计消费仙玉,参数:(活动编号)
-Def_PDict_TurntableCanUseCount = "TurntableCanUseCount_%s" # 可使用转盘次数,参数:(活动编号)
-Def_PDict_TurntableItemID = "TurntableItemID_%s_%s" # 转盘物品ID*10+物品库类型,参数:(活动编号, 物品编号)
-Def_PDict_TurntableItemCount = "TurntableCount_%s_%s" # 转盘物品个数,参数:(活动编号, 物品编号)
-Def_PDict_TurntableItemState = "TurntableItemState_%s" # 转盘物品是否已抽中,按物品编号二进制位代表是否已抽中,参数:(活动编号)
-
#炼器活动
Def_PDict_CA_LianqiID = "CA_LianqiID" # 玩家身上的活动ID,唯一标识,取活动开始日期time值
Def_PDict_LianqiScore = "LianqiScore" # 当前积分
@@ -3553,13 +3501,6 @@
Def_PDict_LianqiItemUse = "LianqiItemUse_%s" # 辅助道具单局已使用次数,参数:(物品ID)
Def_PDict_LianqiLVAwardMax = "LianqiLVAwardMax" # 激活的最大合成奖励等级
Def_PDict_LianqiLVAwardState = "LianqiLVAwardState" # 最大合成等级奖励领取记录,按二进制位存储是否已领取
-
-#天帝礼包活动
-Def_PDict_GodGiftID = "ActGodGiftID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
-Def_PDict_GodGiftWorldLV = "ActGodGiftWorldLV_%s" #玩家身上的活动世界等级,参数:(活动编号)
-Def_PDict_GodGiftResetCount = "ActGodGiftResetCount_%s" #已重置次数,参数:(活动编号)
-Def_PDict_GodGiftAwardPool = "ActGodGiftAwardPool_%s" #奖池状态,参数:(活动编号) 0-未选择;1-已选择;2-已抽完
-Def_PDict_GodGiftItemState = "ActGodGiftItemState_%s_%s_%s" #库物品状态,参数:(活动编号, 库, 编号) 已被选择次数*100+本奖池是否被选择*10+本奖池是否已被抽中
#每日打包直购礼包
Def_PDict_DailyPackBuyGiftBuy = "DailyPackBuyGiftBuy" # 每日打包直购礼包 - 今日购买状态,按索引位记录今日是否已购买
@@ -3587,10 +3528,6 @@
Def_PDict_ActTaskValue = "ActTaskValue_%s_%s" # 任务活动当前任务进度值,参数:(活动编号, 任务类型)
Def_PDict_ActTaskAward = "ActTaskAward_%s_%s" # 任务活动奖励记录,按位记录任务ID是否已领取,参数:(活动编号,key编号)
Def_PDict_ActTaskRound = "ActTaskRound_%s" # 任务轮次,参数:(活动编号)
-
-#运势活动
-Def_PDict_ActYunshiID = "ActYunshiID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
-Def_PDict_ActYunshiTreasureType = "ActYunshiTreasureType_%s" # 活动寻宝类型,参数:(活动编号)
#轮回殿活动
Def_PDict_ActLunhuidianID = "ActLunhuidianID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
@@ -4202,18 +4139,18 @@
Def_Cost_28, # 发家族钻石红包
Def_Cost_EnterFB, # 进入副本
Def_Cost_GameServer, # GameServer 30
-Def_Cost_FreeGoods, # 极品白拿
+Def_Cost_31, # 极品白拿
Def_Cost_DogzEquipPlus, # 神兽装备强化
Def_Cost_RuneHole, # 符印孔解锁
Def_Cost_AlchemyPray, # 丹药祈福
Def_Cost_ResetGreatMasterSkill, # 重置天赋技能 35
Def_Cost_BindJadeWheel, # 绑玉转盘
-Def_Cost_WishingWell, # 许愿池刷新
+Def_Cost_37, # 许愿池刷新
Def_Cost_38, # 神兵
Def_Cost_FBHelpBattle, # 副本助战
Def_Cost_FBGatherSoulBoss, # 聚魂副本BOSS召唤 40
Def_Cost_CrossRealmPK, # 跨服PK
-Def_Cost_LuckyTreasure, #幸运鉴宝
+Def_Cost_42, #幸运鉴宝
Def_Cost_43, # 神秘商店刷新
Def_Cost_AuctionBid, # 拍卖行竞价
Def_Cost_45, # 购买活动次数 45
@@ -4225,7 +4162,7 @@
Def_Cost_FaQi, # 法器
Def_Cost_Love, # 情缘
Def_Cost_BuyOrderInfo, # 购买充值商品
-Def_Cost_ActGodGift, # 天帝礼包活动
+Def_Cost_54, # 天帝礼包活动
Def_Cost_CrossBattlefield, # 跨服战场
Def_Cost_TongTianLing, # 通天令
Def_Cost_LianTi, # 炼体
@@ -4244,7 +4181,7 @@
Def_Cost_Reason_SonKey = "reason_name_son" # 消费点原因子类说明key
# 消费返利不处理的消费类型列表
-CostRebate_DisableType = [Def_Cost_BourseBuy, Def_Cost_BourseCharge, Def_Cost_FreeGoods,
+CostRebate_DisableType = [Def_Cost_BourseBuy, Def_Cost_BourseCharge,
Def_Cost_Unknown, "GMSetMoney", "Warehouse", Def_Cost_AuctionBid]
# 可在跨服中消费的类型列表
@@ -4298,16 +4235,13 @@
Def_Cost_Rename:"Rename",
Def_Cost_SkillLvUp:"SkillLvUp",
Def_Cost_FamilyBroadcast:"FamilyBroadcast",
-Def_Cost_FreeGoods:"FreeGoods",
Def_Cost_DogzEquipPlus:"DogzEquipPlus",
Def_Cost_RuneHole:"RuneHole",
Def_Cost_AlchemyPray:"AlchemyPray",
Def_Cost_BindJadeWheel:"BindJadeWheel",
-Def_Cost_WishingWell:"WishingWell",
Def_Cost_FBHelpBattle:"FBHelpBattle",
Def_Cost_FBGatherSoulBoss:"FBGatherSoulBoss",
Def_Cost_CrossRealmPK:"CrossRealmPK",
-Def_Cost_LuckyTreasure:"LuckyTreasure",
Def_Cost_AuctionBid:"AuctionBid",
Def_Cost_CreatFamily:"CreatFamily",
Def_Cost_BuyKillBossCnt:"BuyKillBossCnt",
@@ -4316,7 +4250,6 @@
Def_Cost_FaQi:"FaQi",
Def_Cost_Love:"Love",
Def_Cost_BuyOrderInfo:"BuyOrderInfo",
-Def_Cost_ActGodGift:"ActGodGift",
Def_Cost_CrossBattlefield:"CrossBattlefield",
Def_Cost_LianTi:"LianTi",
}
@@ -4348,13 +4281,13 @@
Def_GiveMoney_21,
Def_GiveMoney_Trade, # 交易
Def_GiveMoney_23,
-Def_GiveMoney_FreeGoods, # 极品白拿
+Def_GiveMoney_24, # 极品白拿
Def_GiveMoney_BindJadeWheel, # 绑玉转盘 25
Def_GiveMoney_GatherSoulDecompose, #聚魂分解 26
Def_GiveMoney_AuctionBidReturn, #拍卖竞价返还
Def_GiveMoney_AuctionGain, #拍卖获得利润
Def_GiveMoney_TransformItem, #物品直接转化
-Def_GiveMoney_ActGodGift, #天帝礼包
+Def_GiveMoney_30, #天帝礼包
Def_GiveMoney_BuyOrderInfo, #购买充值商品编号
) = range(1000, 1000 + 32)
@@ -4380,13 +4313,11 @@
Def_GiveMoney_SellPackItem:"SellPackItem",
Def_GiveMoney_CollectNPC:"CollectNPC",
Def_GiveMoney_Trade:"Trade",
-Def_GiveMoney_FreeGoods:"FreeGoods",
Def_GiveMoney_BindJadeWheel:"BindJadeWheel",
Def_GiveMoney_GatherSoulDecompose:"GatherSoulDecompose",
Def_GiveMoney_AuctionBidReturn:"AuctionBidReturn",
Def_GiveMoney_AuctionGain:"AuctionGain",
Def_GiveMoney_TransformItem:"TransformItem",
-Def_GiveMoney_ActGodGift:"ActGodGift",
Def_GiveMoney_BuyOrderInfo:"BuyOrderInfo",
}
@@ -4414,7 +4345,7 @@
ItemGive_Refine, # 炼丹
ItemGive_Chests, # 宝箱
ItemGive_TrialExchange, # 宗门兑换
-ItemGive_LuckyTreasure, #幸运鉴宝
+ItemGive_20, #幸运鉴宝
ItemGive_LingQiEquipBreak, #灵器突破
) = range(1000, 1000 + 22)
@@ -4438,7 +4369,6 @@
ItemGive_Refine:"Refine",
ItemGive_Chests:"Chests",
ItemGive_TrialExchange:"TrialExchange",
- ItemGive_LuckyTreasure:"LuckyTreasure",
ItemGive_LingQiEquipBreak:"LingQiEquipBreak",
}
@@ -4765,27 +4695,27 @@
Def_RewardType_LineupRecommend, # 阵容推荐奖励 4
Def_RewardType_LVAward, # 玩家等级奖励5
Def_RewardType_BeautyLVAward, # 红颜等级奖励 6
-Def_RewardType_DayRealmPoint, # 每日任务修行点奖励7
+Def_RewardType_7, # 每日任务修行点奖励7
Def_RewardType_FirstCharge, # 首充礼包奖励8
Def_RewardType_OSACelebrationPointAward, # 开服庆典积分阶段奖励 9
-Def_RewardType_FreeGoods, # 极品白拿10
+Def_RewardType_10, # 极品白拿10
Def_RewardType_CostRebate, # 消费返利11
Def_RewardType_BossReborn, # BOSS复活12
-Def_RewardType_FCRecharge, # 仙界盛典充值大礼13
-Def_RewardType_FCParty, # 仙界盛典全民来嗨14
+Def_RewardType_13, # 仙界盛典充值大礼13
+Def_RewardType_14, # 仙界盛典全民来嗨14
Def_RewardType_DownLoad, # 分包下载奖励15
-Def_RewardType_WishingWell, # 许愿池奖励16
+Def_RewardType_16,
Def_RewardType_OpenFunc, # 功能开启奖励17
Def_RewardType_TotalRecharge, # 累计充值奖励18
Def_RewardType_IceLodeStar, # 冰晶矿脉星级奖励19
Def_RewardType_20,
Def_RewardType_21,
Def_RewardType_ActLoginAwardAct, # 领取登录奖励活动奖励22
-Def_RewardType_NewFairyCRecharge, # 新仙界盛典充值大礼23
-Def_RewardType_NewFairyCParty, # 新仙界盛典全民来嗨24
+Def_RewardType_23, # 新仙界盛典充值大礼23
+Def_RewardType_24, # 新仙界盛典全民来嗨24
Def_RewardType_25,
Def_RewardType_26,
-Def_RewardType_FairyAdventuresAward, #缥缈奇遇领取27
+Def_RewardType_27, #缥缈奇遇领取27
Def_RewardType_HistoryChargeAward, #历史累计充值领取28
Def_RewardType_DayFreeGoldGift, #每日免费直购礼包29
Def_RewardType_ActivityPlace, #活跃放置奖励30
@@ -4842,49 +4772,6 @@
Def_RewardType_ADAward, # 广告奖励 81
Def_RewardType_TreeFreeTime, # 仙树免费减时 82
)= range(83)
-
-#全民来嗨活动定义(仙界盛典)
-PeoplePartyActIDList = (
-Def_PPAct_Fireworks, #购买烟花 1
-Def_PPAct_Treasure, #极品寻宝 2
-Def_PPAct_RuneTreasure, #符印寻宝 3
-Def_PPAct_GodArea, #古神禁地 4
-Def_PPAct_XJMJ, #仙界秘境 5
-Def_PPAct_RunTask, #师门悬赏 6
-Def_PPAct_WorldBoss, #世界BOSS 7
-Def_PPAct_FMT, #封魔坛 8
-Def_PPAct_FamilyParty, #仙盟宴会 9
-Def_PPAct_RefineStove, #炼丹 10
-Def_PPAct_Pray, #祈愿 11
-Def_PPAct_BossHome, #boss之家 12
-Def_PPAct_VIPBoss, #vipBOSS 13
-Def_PPAct_RunFamilyTask, #仙盟任务 14
-Def_PPAct_FamilyBoss, #仙盟Boss 15
-Def_PPAct_FairyDomain, #缥缈仙域 16
-Def_PPAct_JSTreasure, #绝世寻宝 17
-) = range(1, 17+1)
-
-#登录奖励活动定义
-LoginAwardActIDList = (
-Def_LoginAct_Login, #每日登录1
-Def_LoginAct_Pray, #祈愿2
-Def_LoginAct_TowerSweep, #符印塔扫荡 3
-Def_LoginAct_KirinHome, #麒麟之府 4
-Def_LoginAct_RunTask, #师门悬赏5
-Def_LoginAct_XJMJ, #仙境秘境 6
-Def_LoginAct_FMT, #封魔坛7
-Def_LoginAct_MunekadoTrial, #宗门试炼8
-Def_LoginAct_FamilyParty, #仙盟宴会9
-Def_LoginAct_WorldBOSS, #世界boss 10
-Def_LoginAct_QueenRelices, #娲皇遗迹 11
-Def_LoginAct_IceLode, #冰晶矿脉 12
-Def_LoginAct_GodArea, #古神禁地 13
-Def_LoginAct_ZhuXianTower, #诛仙塔挑战 14
-Def_LoginAct_ZhuXianBOSS, #诛仙boss 15
-Def_LoginAct_Alchemy, #炼丹 16
-Def_LoginAct_EquipPlus, #强化 17
-Def_LoginAct_EquipWash, #洗炼 18
-) = range(1, 18+1)
#任务活动 - 任务类型
ActTaskTypeList = (
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index b820f08..7f6125f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -8887,241 +8887,6 @@
#------------------------------------------------------
-# AA 20 天帝礼包选择物品 #tagCMActGodGiftChooseItem
-
-class tagCMActGodGiftChooseItemInfo(Structure):
- ItemLibType = 0 #(BYTE ItemLibType)//物品库类型
- Count = 0 #(BYTE Count)//选择个数
- ItemNumList = list() #(vector<BYTE> ItemNumList)//选择物品编号列表
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.ItemLibType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
- self.ItemNumList.append(value)
- return _pos
-
- def Clear(self):
- self.ItemLibType = 0
- self.Count = 0
- self.ItemNumList = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += 1
- length += 1 * self.Count
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.ItemLibType)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteBYTE(data, self.ItemNumList[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- ItemLibType:%d,
- Count:%d,
- ItemNumList:%s
- '''\
- %(
- self.ItemLibType,
- self.Count,
- "..."
- )
- return DumpString
-
-
-class tagCMActGodGiftChooseItem(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)//活动编号
- ChooseLibCount = 0 #(BYTE ChooseLibCount)//选择库个数
- ChooseItemList = list() #(vector<tagCMActGodGiftChooseItemInfo> ChooseItemList)//选择库物品信息列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x20
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ChooseLibCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ChooseLibCount):
- temChooseItemList = tagCMActGodGiftChooseItemInfo()
- _pos = temChooseItemList.ReadData(_lpData, _pos)
- self.ChooseItemList.append(temChooseItemList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x20
- self.ActNum = 0
- self.ChooseLibCount = 0
- self.ChooseItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- for i in range(self.ChooseLibCount):
- length += self.ChooseItemList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteBYTE(data, self.ChooseLibCount)
- for i in range(self.ChooseLibCount):
- data = CommFunc.WriteString(data, self.ChooseItemList[i].GetLength(), self.ChooseItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- ChooseLibCount:%d,
- ChooseItemList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.ChooseLibCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagCMActGodGiftChooseItem=tagCMActGodGiftChooseItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftChooseItem.Head.Cmd,m_NAtagCMActGodGiftChooseItem.Head.SubCmd))] = m_NAtagCMActGodGiftChooseItem
-
-
-#------------------------------------------------------
-# AA 21 天帝礼包抽奖 #tagCMActGodGiftlottery
-
-class tagCMActGodGiftlottery(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), #活动编号
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x21
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x21
- self.ActNum = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMActGodGiftlottery)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 21 天帝礼包抽奖 //tagCMActGodGiftlottery:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum
- )
- return DumpString
-
-
-m_NAtagCMActGodGiftlottery=tagCMActGodGiftlottery()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftlottery.Cmd,m_NAtagCMActGodGiftlottery.SubCmd))] = m_NAtagCMActGodGiftlottery
-
-
-#------------------------------------------------------
-# AA 22 天帝礼包重置 #tagCMActGodGiftReset
-
-class tagCMActGodGiftReset(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), #活动编号
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x22
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x22
- self.ActNum = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMActGodGiftReset)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 22 天帝礼包重置 //tagCMActGodGiftReset:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum
- )
- return DumpString
-
-
-m_NAtagCMActGodGiftReset=tagCMActGodGiftReset()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftReset.Cmd,m_NAtagCMActGodGiftReset.SubCmd))] = m_NAtagCMActGodGiftReset
-
-
-#------------------------------------------------------
# AA 25 炼器操作 #tagCMActLianqiOP
class tagCMActLianqiOP(Structure):
@@ -9183,373 +8948,6 @@
m_NAtagCMActLianqiOP=tagCMActLianqiOP()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActLianqiOP.Cmd,m_NAtagCMActLianqiOP.SubCmd))] = m_NAtagCMActLianqiOP
-
-
-#------------------------------------------------------
-# AA 12 选择转盘活动物品 #tagCMActTurntableChooseItem
-
-class tagCMActTurntableChooseItem(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)// 活动编号
- GoodItemNumCount = 0 #(BYTE GoodItemNumCount)
- GoodItemNumList = list() #(vector<BYTE> GoodItemNumList)// 选择的极品物品编号列表
- SuperItemNumCount = 0 #(BYTE SuperItemNumCount)
- SuperItemNumList = list() #(vector<BYTE> SuperItemNumList)// 选择的终极物品编号列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x12
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.GoodItemNumCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GoodItemNumCount):
- value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
- self.GoodItemNumList.append(value)
- self.SuperItemNumCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.SuperItemNumCount):
- value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
- self.SuperItemNumList.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x12
- self.ActNum = 0
- self.GoodItemNumCount = 0
- self.GoodItemNumList = list()
- self.SuperItemNumCount = 0
- self.SuperItemNumList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- length += 1 * self.GoodItemNumCount
- length += 1
- length += 1 * self.SuperItemNumCount
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteBYTE(data, self.GoodItemNumCount)
- for i in range(self.GoodItemNumCount):
- data = CommFunc.WriteBYTE(data, self.GoodItemNumList[i])
- data = CommFunc.WriteBYTE(data, self.SuperItemNumCount)
- for i in range(self.SuperItemNumCount):
- data = CommFunc.WriteBYTE(data, self.SuperItemNumList[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- GoodItemNumCount:%d,
- GoodItemNumList:%s,
- SuperItemNumCount:%d,
- SuperItemNumList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.GoodItemNumCount,
- "...",
- self.SuperItemNumCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagCMActTurntableChooseItem=tagCMActTurntableChooseItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActTurntableChooseItem.Head.Cmd,m_NAtagCMActTurntableChooseItem.Head.SubCmd))] = m_NAtagCMActTurntableChooseItem
-
-
-#------------------------------------------------------
-# AA 13 启动转盘 #tagCMActTurntableStart
-
-class tagCMActTurntableStart(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), # 活动编号
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x13
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x13
- self.ActNum = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMActTurntableStart)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 13 启动转盘 //tagCMActTurntableStart:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum
- )
- return DumpString
-
-
-m_NAtagCMActTurntableStart=tagCMActTurntableStart()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActTurntableStart.Cmd,m_NAtagCMActTurntableStart.SubCmd))] = m_NAtagCMActTurntableStart
-
-
-#------------------------------------------------------
-# AA 07 许愿池活动刷新奖池 #tagCMActWishingRefresh
-
-class tagCMActWishingRefresh(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("IsFree", c_ubyte), # 是否免费刷新
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x07
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x07
- self.IsFree = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMActWishingRefresh)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 07 许愿池活动刷新奖池 //tagCMActWishingRefresh:
- Cmd:%s,
- SubCmd:%s,
- IsFree:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.IsFree
- )
- return DumpString
-
-
-m_NAtagCMActWishingRefresh=tagCMActWishingRefresh()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActWishingRefresh.Cmd,m_NAtagCMActWishingRefresh.SubCmd))] = m_NAtagCMActWishingRefresh
-
-
-#------------------------------------------------------
-# AA 06 许愿池活动许愿 #tagCMActWishing
-
-class tagCMActWishing(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("SrcWellType", c_ubyte), # 来源库 0-可选库 1-结果库
- ("SrcIndex", c_ubyte), # 来源索引
- ("DesWellType", c_ubyte), # 目标库 0-可选库 1-结果库
- ("DesIndex", c_ubyte), # 目标索引
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x06
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x06
- self.SrcWellType = 0
- self.SrcIndex = 0
- self.DesWellType = 0
- self.DesIndex = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMActWishing)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 06 许愿池活动许愿 //tagCMActWishing:
- Cmd:%s,
- SubCmd:%s,
- SrcWellType:%d,
- SrcIndex:%d,
- DesWellType:%d,
- DesIndex:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.SrcWellType,
- self.SrcIndex,
- self.DesWellType,
- self.DesIndex
- )
- return DumpString
-
-
-m_NAtagCMActWishing=tagCMActWishing()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActWishing.Cmd,m_NAtagCMActWishing.SubCmd))] = m_NAtagCMActWishing
-
-
-#------------------------------------------------------
-# AA 05 限时抢购预约 #tagCMFlashSaleAppointment
-
-class tagCMFlashSaleAppointment(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), #活动编号
- ("GoodsID", c_int), # 抢购商品标识
- ("State", c_ubyte), # 1-预约 0-取消
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x05
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x05
- self.ActNum = 0
- self.GoodsID = 0
- self.State = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMFlashSaleAppointment)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 05 限时抢购预约 //tagCMFlashSaleAppointment:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d,
- GoodsID:%d,
- State:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum,
- self.GoodsID,
- self.State
- )
- return DumpString
-
-
-m_NAtagCMFlashSaleAppointment=tagCMFlashSaleAppointment()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFlashSaleAppointment.Cmd,m_NAtagCMFlashSaleAppointment.SubCmd))] = m_NAtagCMFlashSaleAppointment
-
-
-#------------------------------------------------------
-# AA 08 开始幸运鉴宝 #tagCMStartLuckyTreasure
-
-class tagCMStartLuckyTreasure(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x08
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x08
- return
-
- def GetLength(self):
- return sizeof(tagCMStartLuckyTreasure)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 08 开始幸运鉴宝 //tagCMStartLuckyTreasure:
- Cmd:%s,
- SubCmd:%s
- '''\
- %(
- self.Cmd,
- self.SubCmd
- )
- return DumpString
-
-
-m_NAtagCMStartLuckyTreasure=tagCMStartLuckyTreasure()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMStartLuckyTreasure.Cmd,m_NAtagCMStartLuckyTreasure.SubCmd))] = m_NAtagCMStartLuckyTreasure
#------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 6f221a9..aad6ec3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -5238,121 +5238,6 @@
#------------------------------------------------------
-# A3 18 极品白拿信息 #tagMCFreeGoodsInfo
-
-class tagMCFreeGoods(Structure):
- _pack_ = 1
- _fields_ = [
- ("ID", c_ubyte), # 礼包ID
- ("BuyState", c_int), # 购买状态 0-未购买 1-已领返还 time值-购买时间
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ID = 0
- self.BuyState = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCFreeGoods)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 18 极品白拿信息 //tagMCFreeGoodsInfo:
- ID:%d,
- BuyState:%d
- '''\
- %(
- self.ID,
- self.BuyState
- )
- return DumpString
-
-
-class tagMCFreeGoodsInfo(Structure):
- Head = tagHead()
- OpenTime = 0 #(DWORD OpenTime)// 活动开启时间
- Count = 0 #(BYTE Count)// 个数
- FreeGoodsList = list() #(vector<tagMCFreeGoods> FreeGoodsList)// 信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x18
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.OpenTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- temFreeGoodsList = tagMCFreeGoods()
- _pos = temFreeGoodsList.ReadData(_lpData, _pos)
- self.FreeGoodsList.append(temFreeGoodsList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x18
- self.OpenTime = 0
- self.Count = 0
- self.FreeGoodsList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 1
- for i in range(self.Count):
- length += self.FreeGoodsList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.OpenTime)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.FreeGoodsList[i].GetLength(), self.FreeGoodsList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- OpenTime:%d,
- Count:%d,
- FreeGoodsList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.OpenTime,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCFreeGoodsInfo=tagMCFreeGoodsInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFreeGoodsInfo.Head.Cmd,m_NAtagMCFreeGoodsInfo.Head.SubCmd))] = m_NAtagMCFreeGoodsInfo
-
-
-#------------------------------------------------------
# A3 22 功能NPC已采集次数 #tagMCFuncNPCCollectionCnt
class tagMCFuncNPCCollectionCnt(Structure):
@@ -18887,671 +18772,6 @@
#------------------------------------------------------
-# AA 60 天帝礼包活动信息 #tagMCActGodGiftInfo
-
-class tagMCActGodGiftItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemNum", c_ubyte), # 物品在本库中的编号
- ("ItemID", c_int),
- ("ItemCount", c_ushort),
- ("IsBind", c_ubyte),
- ("CanChooseTimes", c_ubyte), #可选择次数,0代表不限次数
- ("ChooseTimes", c_ubyte), #已选次数
- ("IsChoose", c_ubyte), #本次奖池是否被选择
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemNum = 0
- self.ItemID = 0
- self.ItemCount = 0
- self.IsBind = 0
- self.CanChooseTimes = 0
- self.ChooseTimes = 0
- self.IsChoose = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCActGodGiftItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 60 天帝礼包活动信息 //tagMCActGodGiftInfo:
- ItemNum:%d,
- ItemID:%d,
- ItemCount:%d,
- IsBind:%d,
- CanChooseTimes:%d,
- ChooseTimes:%d,
- IsChoose:%d
- '''\
- %(
- self.ItemNum,
- self.ItemID,
- self.ItemCount,
- self.IsBind,
- self.CanChooseTimes,
- self.ChooseTimes,
- self.IsChoose
- )
- return DumpString
-
-
-class tagMCActGodGiftItemLib(Structure):
- ItemLibType = 0 #(BYTE ItemLibType)//物品库类型
- NeedChooseCount = 0 #(BYTE NeedChooseCount)//需要选择个数
- GodGiftItemCount = 0 #(BYTE GodGiftItemCount)//可选择物品个数
- GodGiftItemList = list() #(vector<tagMCActGodGiftItem> GodGiftItemList)//可选物品列表
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.ItemLibType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.NeedChooseCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.GodGiftItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GodGiftItemCount):
- temGodGiftItemList = tagMCActGodGiftItem()
- _pos = temGodGiftItemList.ReadData(_lpData, _pos)
- self.GodGiftItemList.append(temGodGiftItemList)
- return _pos
-
- def Clear(self):
- self.ItemLibType = 0
- self.NeedChooseCount = 0
- self.GodGiftItemCount = 0
- self.GodGiftItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += 1
- length += 1
- for i in range(self.GodGiftItemCount):
- length += self.GodGiftItemList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.ItemLibType)
- data = CommFunc.WriteBYTE(data, self.NeedChooseCount)
- data = CommFunc.WriteBYTE(data, self.GodGiftItemCount)
- for i in range(self.GodGiftItemCount):
- data = CommFunc.WriteString(data, self.GodGiftItemList[i].GetLength(), self.GodGiftItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- ItemLibType:%d,
- NeedChooseCount:%d,
- GodGiftItemCount:%d,
- GodGiftItemList:%s
- '''\
- %(
- self.ItemLibType,
- self.NeedChooseCount,
- self.GodGiftItemCount,
- "..."
- )
- return DumpString
-
-
-class tagMCActGodGiftInfo(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)// 活动编号
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- IsDayReset = 0 #(BYTE IsDayReset)// 是否每日重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- CostMoneyType = 0 #(BYTE CostMoneyType)//消耗货币类型
- CostMoneyValueCount = 0 #(BYTE CostMoneyValueCount)
- CostMoneyValueList = list() #(vector<DWORD> CostMoneyValueList)//消耗货币值列表
- PrizeMoneyType = 0 #(BYTE PrizeMoneyType)//奖励货币类型
- PrizeMoneyValueCount = 0 #(BYTE PrizeMoneyValueCount)
- PrizeMoneyValueList = list() #(vector<DWORD> PrizeMoneyValueList)//奖励货币值列表
- ResetLimitTimes = 0 #(BYTE ResetLimitTimes)//至少抽几次才可重置奖池
- ResetCountMax = 0 #(BYTE ResetCountMax)//最大可重置奖池次数
- IsAwardPoolOK = 0 #(BYTE IsAwardPoolOK)//奖池是否选择完毕,否的话需要先选择奖池才可抽奖
- ItemLibCount = 0 #(BYTE ItemLibCount)//奖池库个数
- ItemLibList = list() #(vector<tagMCActGodGiftItemLib> ItemLibList)//奖池库信息列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x60
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.CostMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.CostMoneyValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.CostMoneyValueCount):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.CostMoneyValueList.append(value)
- self.PrizeMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.PrizeMoneyValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.PrizeMoneyValueCount):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.PrizeMoneyValueList.append(value)
- self.ResetLimitTimes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ResetCountMax,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.IsAwardPoolOK,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ItemLibCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ItemLibCount):
- temItemLibList = tagMCActGodGiftItemLib()
- _pos = temItemLibList.ReadData(_lpData, _pos)
- self.ItemLibList.append(temItemLibList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x60
- self.ActNum = 0
- self.StartDate = ""
- self.EndtDate = ""
- self.IsDayReset = 0
- self.LimitLV = 0
- self.CostMoneyType = 0
- self.CostMoneyValueCount = 0
- self.CostMoneyValueList = list()
- self.PrizeMoneyType = 0
- self.PrizeMoneyValueCount = 0
- self.PrizeMoneyValueList = list()
- self.ResetLimitTimes = 0
- self.ResetCountMax = 0
- self.IsAwardPoolOK = 0
- self.ItemLibCount = 0
- self.ItemLibList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 10
- length += 10
- length += 1
- length += 2
- length += 1
- length += 1
- length += 4 * self.CostMoneyValueCount
- length += 1
- length += 1
- length += 4 * self.PrizeMoneyValueCount
- length += 1
- length += 1
- length += 1
- length += 1
- for i in range(self.ItemLibCount):
- length += self.ItemLibList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.CostMoneyType)
- data = CommFunc.WriteBYTE(data, self.CostMoneyValueCount)
- for i in range(self.CostMoneyValueCount):
- data = CommFunc.WriteDWORD(data, self.CostMoneyValueList[i])
- data = CommFunc.WriteBYTE(data, self.PrizeMoneyType)
- data = CommFunc.WriteBYTE(data, self.PrizeMoneyValueCount)
- for i in range(self.PrizeMoneyValueCount):
- data = CommFunc.WriteDWORD(data, self.PrizeMoneyValueList[i])
- data = CommFunc.WriteBYTE(data, self.ResetLimitTimes)
- data = CommFunc.WriteBYTE(data, self.ResetCountMax)
- data = CommFunc.WriteBYTE(data, self.IsAwardPoolOK)
- data = CommFunc.WriteBYTE(data, self.ItemLibCount)
- for i in range(self.ItemLibCount):
- data = CommFunc.WriteString(data, self.ItemLibList[i].GetLength(), self.ItemLibList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- StartDate:%s,
- EndtDate:%s,
- IsDayReset:%d,
- LimitLV:%d,
- CostMoneyType:%d,
- CostMoneyValueCount:%d,
- CostMoneyValueList:%s,
- PrizeMoneyType:%d,
- PrizeMoneyValueCount:%d,
- PrizeMoneyValueList:%s,
- ResetLimitTimes:%d,
- ResetCountMax:%d,
- IsAwardPoolOK:%d,
- ItemLibCount:%d,
- ItemLibList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.StartDate,
- self.EndtDate,
- self.IsDayReset,
- self.LimitLV,
- self.CostMoneyType,
- self.CostMoneyValueCount,
- "...",
- self.PrizeMoneyType,
- self.PrizeMoneyValueCount,
- "...",
- self.ResetLimitTimes,
- self.ResetCountMax,
- self.IsAwardPoolOK,
- self.ItemLibCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCActGodGiftInfo=tagMCActGodGiftInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActGodGiftInfo.Head.Cmd,m_NAtagMCActGodGiftInfo.Head.SubCmd))] = m_NAtagMCActGodGiftInfo
-
-
-#------------------------------------------------------
-# AA 61 天帝礼包活动玩家信息 #tagMCActGodGiftPlayerInfo
-
-class tagMCActGodGiftAwardItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemLibType", c_ubyte), #物品库类型
- ("ItemNum", c_ubyte), #物品在本库中的编号
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemLibType = 0
- self.ItemNum = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCActGodGiftAwardItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 61 天帝礼包活动玩家信息 //tagMCActGodGiftPlayerInfo:
- ItemLibType:%d,
- ItemNum:%d
- '''\
- %(
- self.ItemLibType,
- self.ItemNum
- )
- return DumpString
-
-
-class tagMCActGodGiftPlayerInfo(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)// 活动编号
- ResetCount = 0 #(BYTE ResetCount)// 本次活动已重置次数
- AwardItemCount = 0 #(BYTE AwardItemCount)// 本次奖池已抽中奖品个数,也代表本次奖池已抽奖次数
- AwardItemList = list() #(vector<tagMCActGodGiftAwardItem> AwardItemList)// 本次奖池已抽中物品列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x61
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ResetCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.AwardItemCount):
- temAwardItemList = tagMCActGodGiftAwardItem()
- _pos = temAwardItemList.ReadData(_lpData, _pos)
- self.AwardItemList.append(temAwardItemList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x61
- self.ActNum = 0
- self.ResetCount = 0
- self.AwardItemCount = 0
- self.AwardItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- length += 1
- for i in range(self.AwardItemCount):
- length += self.AwardItemList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteBYTE(data, self.ResetCount)
- data = CommFunc.WriteBYTE(data, self.AwardItemCount)
- for i in range(self.AwardItemCount):
- data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- ResetCount:%d,
- AwardItemCount:%d,
- AwardItemList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.ResetCount,
- self.AwardItemCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCActGodGiftPlayerInfo=tagMCActGodGiftPlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActGodGiftPlayerInfo.Head.Cmd,m_NAtagMCActGodGiftPlayerInfo.Head.SubCmd))] = m_NAtagMCActGodGiftPlayerInfo
-
-
-#------------------------------------------------------
-# AA 31 成长必买活动信息 #tagMCActGrowupBuyInfo
-
-class tagMCActGrowupBuyCTGItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int),
- ("ItemCount", c_ushort),
- ("IsBind", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemID = 0
- self.ItemCount = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCActGrowupBuyCTGItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 31 成长必买活动信息 //tagMCActGrowupBuyInfo:
- ItemID:%d,
- ItemCount:%d,
- IsBind:%d
- '''\
- %(
- self.ItemID,
- self.ItemCount,
- self.IsBind
- )
- return DumpString
-
-
-class tagMCActGrowupBuyCTGInfo(Structure):
- CTGID = 0 #(WORD CTGID)// 充值表ID
- GainItemCount = 0 #(BYTE GainItemCount)// 获得物品数
- GainItemList = list() #(vector<tagMCActGrowupBuyCTGItem> GainItemList)// 获得物品列表,替换充值表中的 GainItemList 字段信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.CTGID,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.GainItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GainItemCount):
- temGainItemList = tagMCActGrowupBuyCTGItem()
- _pos = temGainItemList.ReadData(_lpData, _pos)
- self.GainItemList.append(temGainItemList)
- return _pos
-
- def Clear(self):
- self.CTGID = 0
- self.GainItemCount = 0
- self.GainItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += 2
- length += 1
- for i in range(self.GainItemCount):
- length += self.GainItemList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteWORD(data, self.CTGID)
- data = CommFunc.WriteBYTE(data, self.GainItemCount)
- for i in range(self.GainItemCount):
- data = CommFunc.WriteString(data, self.GainItemList[i].GetLength(), self.GainItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- CTGID:%d,
- GainItemCount:%d,
- GainItemList:%s
- '''\
- %(
- self.CTGID,
- self.GainItemCount,
- "..."
- )
- return DumpString
-
-
-class tagMCActGrowupBuyGroup(Structure):
- BuyCount = 0 #(BYTE BuyCount)// 循环购买礼包数
- BuyCTGIDList = list() #(vector<tagMCActGrowupBuyCTGInfo> BuyCTGIDList)// 循环购买礼包充值ID信息列表
- PlayerBuyIndex = 0 #(BYTE PlayerBuyIndex)// 玩家当前可购买的礼包充值ID在列表中索引
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.BuyCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.BuyCount):
- temBuyCTGIDList = tagMCActGrowupBuyCTGInfo()
- _pos = temBuyCTGIDList.ReadData(_lpData, _pos)
- self.BuyCTGIDList.append(temBuyCTGIDList)
- self.PlayerBuyIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.BuyCount = 0
- self.BuyCTGIDList = list()
- self.PlayerBuyIndex = 0
- return
-
- def GetLength(self):
- length = 0
- length += 1
- for i in range(self.BuyCount):
- length += self.BuyCTGIDList[i].GetLength()
- length += 1
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.BuyCount)
- for i in range(self.BuyCount):
- data = CommFunc.WriteString(data, self.BuyCTGIDList[i].GetLength(), self.BuyCTGIDList[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.PlayerBuyIndex)
- return data
-
- def OutputString(self):
- DumpString = '''
- BuyCount:%d,
- BuyCTGIDList:%s,
- PlayerBuyIndex:%d
- '''\
- %(
- self.BuyCount,
- "...",
- self.PlayerBuyIndex
- )
- return DumpString
-
-
-class tagMCActGrowupBuyInfo(Structure):
- Head = tagHead()
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- GroupCount = 0 #(BYTE GroupCount)// 循环购买礼包组数
- GroupList = list() #(vector<tagMCActGrowupBuyGroup> GroupList)//循环购买礼包组列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x31
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.GroupCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GroupCount):
- temGroupList = tagMCActGrowupBuyGroup()
- _pos = temGroupList.ReadData(_lpData, _pos)
- self.GroupList.append(temGroupList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x31
- self.StartDate = ""
- self.EndtDate = ""
- self.LimitLV = 0
- self.GroupCount = 0
- self.GroupList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 10
- length += 10
- length += 2
- length += 1
- for i in range(self.GroupCount):
- length += self.GroupList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.GroupCount)
- for i in range(self.GroupCount):
- data = CommFunc.WriteString(data, self.GroupList[i].GetLength(), self.GroupList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- StartDate:%s,
- EndtDate:%s,
- LimitLV:%d,
- GroupCount:%d,
- GroupList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.StartDate,
- self.EndtDate,
- self.LimitLV,
- self.GroupCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCActGrowupBuyInfo=tagMCActGrowupBuyInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActGrowupBuyInfo.Head.Cmd,m_NAtagMCActGrowupBuyInfo.Head.SubCmd))] = m_NAtagMCActGrowupBuyInfo
-
-
-#------------------------------------------------------
# AA 69 登录活动信息新 #tagMCActLoginNew
class tagMCActLoginNewItem(Structure):
@@ -21864,983 +21084,6 @@
#------------------------------------------------------
-# AA 52 转盘活动信息 #tagMCActTurntableInfo
-
-class tagMCActTurntableItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemNum", c_ubyte), #物品编号 1~n;注意转盘已确定物品编号 与 极品终极物品待选择库编号可能相同,但并不代表同一物品
- ("ItemLibType", c_ubyte), #物品库类型;1-常规,2-极品,3-终极
- ("ItemID", c_int),
- ("ItemCount", c_ushort),
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemNum = 0
- self.ItemLibType = 0
- self.ItemID = 0
- self.ItemCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCActTurntableItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 52 转盘活动信息 //tagMCActTurntableInfo:
- ItemNum:%d,
- ItemLibType:%d,
- ItemID:%d,
- ItemCount:%d
- '''\
- %(
- self.ItemNum,
- self.ItemLibType,
- self.ItemID,
- self.ItemCount
- )
- return DumpString
-
-
-class tagMCActTurntableInfo(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)// 活动编号
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- IsDayReset = 0 #(BYTE IsDayReset)// 是否每天重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- CTGPrizeCount = 0 #(BYTE CTGPrizeCount)
- CTGPrizeList = list() #(vector<DWORD> CTGPrizeList)// 累计充值额度奖励次数列表 [奖励第1次所需累计充值额度, 第2次, ...]
- UseMoneyType = 0 #(BYTE UseMoneyType)// 累计消费货币类型
- UseMoneyPrizeCount = 0 #(BYTE UseMoneyPrizeCount)
- UseMoneyPrizeList = list() #(vector<DWORD> UseMoneyPrizeList)// 累计消费货币奖励次数列表 [奖励第1次所需累计消费货币, 第2次, ...]
- TurnItemCount = 0 #(BYTE TurnItemCount)
- TurnItemList = list() #(vector<tagMCActTurntableItem> TurnItemList)// 转盘已确定的物品列表,包含常规物品+极品物品+终极物品,活动开始时,后端直接随机生成常规物品,已确定的物品不包含极品、终极物品时需要先选择才能使用转盘;
- GoodItemCount = 0 #(BYTE GoodItemCount)
- GoodItemList = list() #(vector<tagMCActTurntableItem> GoodItemList)// 极品物品待选择库,由玩家从库中选择放入转盘的物品;注意此库中的物品编号仅表示在该库中的编号,可能与转盘已确定的物品编号重复,但并不代表同一物品;
- GoodItemCanChooseCount = 0 #(BYTE GoodItemCanChooseCount)// 极品物品可选择个数
- SuperItemCount = 0 #(BYTE SuperItemCount)
- SuperItemList = list() #(vector<tagMCActTurntableItem> SuperItemList)// 终极物品待选择库,由玩家从库中选择放入转盘的物品;注意此库中的物品编号仅表示在该库中的编号,可能与转盘已确定的物品编号重复,但并不代表同一物品;
- SuperItemCanChooseCount = 0 #(BYTE SuperItemCanChooseCount)// 终极物品可选择个数
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x52
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.CTGPrizeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.CTGPrizeCount):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.CTGPrizeList.append(value)
- self.UseMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.UseMoneyPrizeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.UseMoneyPrizeCount):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.UseMoneyPrizeList.append(value)
- self.TurnItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.TurnItemCount):
- temTurnItemList = tagMCActTurntableItem()
- _pos = temTurnItemList.ReadData(_lpData, _pos)
- self.TurnItemList.append(temTurnItemList)
- self.GoodItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GoodItemCount):
- temGoodItemList = tagMCActTurntableItem()
- _pos = temGoodItemList.ReadData(_lpData, _pos)
- self.GoodItemList.append(temGoodItemList)
- self.GoodItemCanChooseCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.SuperItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.SuperItemCount):
- temSuperItemList = tagMCActTurntableItem()
- _pos = temSuperItemList.ReadData(_lpData, _pos)
- self.SuperItemList.append(temSuperItemList)
- self.SuperItemCanChooseCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x52
- self.ActNum = 0
- self.StartDate = ""
- self.EndtDate = ""
- self.IsDayReset = 0
- self.LimitLV = 0
- self.CTGPrizeCount = 0
- self.CTGPrizeList = list()
- self.UseMoneyType = 0
- self.UseMoneyPrizeCount = 0
- self.UseMoneyPrizeList = list()
- self.TurnItemCount = 0
- self.TurnItemList = list()
- self.GoodItemCount = 0
- self.GoodItemList = list()
- self.GoodItemCanChooseCount = 0
- self.SuperItemCount = 0
- self.SuperItemList = list()
- self.SuperItemCanChooseCount = 0
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 10
- length += 10
- length += 1
- length += 2
- length += 1
- length += 4 * self.CTGPrizeCount
- length += 1
- length += 1
- length += 4 * self.UseMoneyPrizeCount
- length += 1
- for i in range(self.TurnItemCount):
- length += self.TurnItemList[i].GetLength()
- length += 1
- for i in range(self.GoodItemCount):
- length += self.GoodItemList[i].GetLength()
- length += 1
- length += 1
- for i in range(self.SuperItemCount):
- length += self.SuperItemList[i].GetLength()
- length += 1
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.CTGPrizeCount)
- for i in range(self.CTGPrizeCount):
- data = CommFunc.WriteDWORD(data, self.CTGPrizeList[i])
- data = CommFunc.WriteBYTE(data, self.UseMoneyType)
- data = CommFunc.WriteBYTE(data, self.UseMoneyPrizeCount)
- for i in range(self.UseMoneyPrizeCount):
- data = CommFunc.WriteDWORD(data, self.UseMoneyPrizeList[i])
- data = CommFunc.WriteBYTE(data, self.TurnItemCount)
- for i in range(self.TurnItemCount):
- data = CommFunc.WriteString(data, self.TurnItemList[i].GetLength(), self.TurnItemList[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.GoodItemCount)
- for i in range(self.GoodItemCount):
- data = CommFunc.WriteString(data, self.GoodItemList[i].GetLength(), self.GoodItemList[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.GoodItemCanChooseCount)
- data = CommFunc.WriteBYTE(data, self.SuperItemCount)
- for i in range(self.SuperItemCount):
- data = CommFunc.WriteString(data, self.SuperItemList[i].GetLength(), self.SuperItemList[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.SuperItemCanChooseCount)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- StartDate:%s,
- EndtDate:%s,
- IsDayReset:%d,
- LimitLV:%d,
- CTGPrizeCount:%d,
- CTGPrizeList:%s,
- UseMoneyType:%d,
- UseMoneyPrizeCount:%d,
- UseMoneyPrizeList:%s,
- TurnItemCount:%d,
- TurnItemList:%s,
- GoodItemCount:%d,
- GoodItemList:%s,
- GoodItemCanChooseCount:%d,
- SuperItemCount:%d,
- SuperItemList:%s,
- SuperItemCanChooseCount:%d
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.StartDate,
- self.EndtDate,
- self.IsDayReset,
- self.LimitLV,
- self.CTGPrizeCount,
- "...",
- self.UseMoneyType,
- self.UseMoneyPrizeCount,
- "...",
- self.TurnItemCount,
- "...",
- self.GoodItemCount,
- "...",
- self.GoodItemCanChooseCount,
- self.SuperItemCount,
- "...",
- self.SuperItemCanChooseCount
- )
- return DumpString
-
-
-m_NAtagMCActTurntableInfo=tagMCActTurntableInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTurntableInfo.Head.Cmd,m_NAtagMCActTurntableInfo.Head.SubCmd))] = m_NAtagMCActTurntableInfo
-
-
-#------------------------------------------------------
-# AA 53 转盘活动玩家信息 #tagMCActTurntablePlayerInfo
-
-class tagMCActTurntablePlayerInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), #活动编号
- ("CanUseCount", c_ubyte), #可转盘次数
- ("CTGTotal", c_int), #累计充值额度
- ("UseMoneyTotal", c_int), #累计消费货币额度
- ("TurnItemState", c_int), #转盘物品已抽中记录,按转盘物品编号二进制位代表是否已抽中
- ("GetItemNum", c_ubyte), #本次抽中的物品编号,非转盘结果时为0,大于0时为通知本次转到的物品编号
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x53
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x53
- self.ActNum = 0
- self.CanUseCount = 0
- self.CTGTotal = 0
- self.UseMoneyTotal = 0
- self.TurnItemState = 0
- self.GetItemNum = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCActTurntablePlayerInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 53 转盘活动玩家信息 //tagMCActTurntablePlayerInfo:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d,
- CanUseCount:%d,
- CTGTotal:%d,
- UseMoneyTotal:%d,
- TurnItemState:%d,
- GetItemNum:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum,
- self.CanUseCount,
- self.CTGTotal,
- self.UseMoneyTotal,
- self.TurnItemState,
- self.GetItemNum
- )
- return DumpString
-
-
-m_NAtagMCActTurntablePlayerInfo=tagMCActTurntablePlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTurntablePlayerInfo.Cmd,m_NAtagMCActTurntablePlayerInfo.SubCmd))] = m_NAtagMCActTurntablePlayerInfo
-
-
-#------------------------------------------------------
-# AA 1B 许愿池拖动结果 #tagMCActWishingDragResult
-
-class tagMCPlayerWishingDragInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("WellType", c_ubyte), # 库 0-可选库 1-结果库
- ("Index", c_ubyte), # 索引
- ("ItemID", c_int), # 物品ID
- ("ItemCnt", c_ushort), # 物品数量
- ("IsBind", c_ubyte), # 是否绑定
- ("IsSpecial", c_ubyte), # 是否极品
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.WellType = 0
- self.Index = 0
- self.ItemID = 0
- self.ItemCnt = 0
- self.IsBind = 0
- self.IsSpecial = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCPlayerWishingDragInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 1B 许愿池拖动结果 //tagMCActWishingDragResult:
- WellType:%d,
- Index:%d,
- ItemID:%d,
- ItemCnt:%d,
- IsBind:%d,
- IsSpecial:%d
- '''\
- %(
- self.WellType,
- self.Index,
- self.ItemID,
- self.ItemCnt,
- self.IsBind,
- self.IsSpecial
- )
- return DumpString
-
-
-class tagMCActWishingDragResult(Structure):
- Head = tagHead()
- Cnt = 0 #(BYTE Cnt)
- InfoList = list() #(vector<tagMCPlayerWishingDragInfo> InfoList)
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x1B
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Cnt):
- temInfoList = tagMCPlayerWishingDragInfo()
- _pos = temInfoList.ReadData(_lpData, _pos)
- self.InfoList.append(temInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x1B
- self.Cnt = 0
- self.InfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.Cnt):
- length += self.InfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.Cnt)
- for i in range(self.Cnt):
- data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Cnt:%d,
- InfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Cnt,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCActWishingDragResult=tagMCActWishingDragResult()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActWishingDragResult.Head.Cmd,m_NAtagMCActWishingDragResult.Head.SubCmd))] = m_NAtagMCActWishingDragResult
-
-
-#------------------------------------------------------
-# AA 19 许愿池活动信息 #tagMCActWishingWellInfo
-
-class tagMCWishingWellItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int), # 物品ID
- ("ItemCnt", c_ushort), # 物品数量
- ("IsBind", c_ubyte), # 是否绑定
- ("Mark", c_int), # 排序标识
- ("Rare", c_ubyte), # 珍稀值
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemID = 0
- self.ItemCnt = 0
- self.IsBind = 0
- self.Mark = 0
- self.Rare = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCWishingWellItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 19 许愿池活动信息 //tagMCActWishingWellInfo:
- ItemID:%d,
- ItemCnt:%d,
- IsBind:%d,
- Mark:%d,
- Rare:%d
- '''\
- %(
- self.ItemID,
- self.ItemCnt,
- self.IsBind,
- self.Mark,
- self.Rare
- )
- return DumpString
-
-
-class tagMCActWishingWellInfo(Structure):
- Head = tagHead()
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
- ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- Count = 0 #(WORD Count)// 物品数
- WellItemInfo = list() #(vector<tagMCWishingWellItem> WellItemInfo)// 随机库物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x19
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
- for i in range(self.Count):
- temWellItemInfo = tagMCWishingWellItem()
- _pos = temWellItemInfo.ReadData(_lpData, _pos)
- self.WellItemInfo.append(temWellItemInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x19
- self.StartDate = ""
- self.EndtDate = ""
- self.IsDayReset = 0
- self.ResetType = 0
- self.LimitLV = 0
- self.Count = 0
- self.WellItemInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 10
- length += 10
- length += 1
- length += 1
- length += 2
- length += 2
- for i in range(self.Count):
- length += self.WellItemInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteBYTE(data, self.ResetType)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteWORD(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.WellItemInfo[i].GetLength(), self.WellItemInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- StartDate:%s,
- EndtDate:%s,
- IsDayReset:%d,
- ResetType:%d,
- LimitLV:%d,
- Count:%d,
- WellItemInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.StartDate,
- self.EndtDate,
- self.IsDayReset,
- self.ResetType,
- self.LimitLV,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCActWishingWellInfo=tagMCActWishingWellInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActWishingWellInfo.Head.Cmd,m_NAtagMCActWishingWellInfo.Head.SubCmd))] = m_NAtagMCActWishingWellInfo
-
-
-#------------------------------------------------------
-# AA 1A 许愿池活动玩家信息 #tagMCActWishingWellPlayerInfo
-
-class tagMCPlayerWishingWellItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int), # 物品ID
- ("ItemCnt", c_ushort), # 物品数量
- ("IsBind", c_ubyte), # 是否绑定
- ("IsSpecial", c_ubyte), # 是否极品
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemID = 0
- self.ItemCnt = 0
- self.IsBind = 0
- self.IsSpecial = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCPlayerWishingWellItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 1A 许愿池活动玩家信息 //tagMCActWishingWellPlayerInfo:
- ItemID:%d,
- ItemCnt:%d,
- IsBind:%d,
- IsSpecial:%d
- '''\
- %(
- self.ItemID,
- self.ItemCnt,
- self.IsBind,
- self.IsSpecial
- )
- return DumpString
-
-
-class tagMCActWishingWellPlayerInfo(Structure):
- Head = tagHead()
- FreeStartTime = 0 #(DWORD FreeStartTime)// 免费开始倒计时时间
- WishCnt = 0 #(DWORD WishCnt)// 许愿付费刷新次数
- WellItemCnt = 0 #(BYTE WellItemCnt)//许愿池物品数量
- WellItemInfo = list() #(vector<tagMCPlayerWishingWellItem> WellItemInfo)// 随机库物品信息
- CurAwardCnt = 0 #(BYTE CurAwardCnt)// 当前奖励物品数量
- CurAwardItemInfo = list() #(vector<tagMCPlayerWishingWellItem> CurAwardItemInfo)// 当前奖励物品
- LastAwardCnt = 0 #(BYTE LastAwardCnt)// 可领取奖励物品数量
- LastAwardItemInfo = list() #(vector<tagMCPlayerWishingWellItem> LastAwardItemInfo)// 可领取奖励物品
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x1A
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.FreeStartTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.WishCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.WellItemCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.WellItemCnt):
- temWellItemInfo = tagMCPlayerWishingWellItem()
- _pos = temWellItemInfo.ReadData(_lpData, _pos)
- self.WellItemInfo.append(temWellItemInfo)
- self.CurAwardCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.CurAwardCnt):
- temCurAwardItemInfo = tagMCPlayerWishingWellItem()
- _pos = temCurAwardItemInfo.ReadData(_lpData, _pos)
- self.CurAwardItemInfo.append(temCurAwardItemInfo)
- self.LastAwardCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.LastAwardCnt):
- temLastAwardItemInfo = tagMCPlayerWishingWellItem()
- _pos = temLastAwardItemInfo.ReadData(_lpData, _pos)
- self.LastAwardItemInfo.append(temLastAwardItemInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x1A
- self.FreeStartTime = 0
- self.WishCnt = 0
- self.WellItemCnt = 0
- self.WellItemInfo = list()
- self.CurAwardCnt = 0
- self.CurAwardItemInfo = list()
- self.LastAwardCnt = 0
- self.LastAwardItemInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 4
- length += 1
- for i in range(self.WellItemCnt):
- length += self.WellItemInfo[i].GetLength()
- length += 1
- for i in range(self.CurAwardCnt):
- length += self.CurAwardItemInfo[i].GetLength()
- length += 1
- for i in range(self.LastAwardCnt):
- length += self.LastAwardItemInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.FreeStartTime)
- data = CommFunc.WriteDWORD(data, self.WishCnt)
- data = CommFunc.WriteBYTE(data, self.WellItemCnt)
- for i in range(self.WellItemCnt):
- data = CommFunc.WriteString(data, self.WellItemInfo[i].GetLength(), self.WellItemInfo[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.CurAwardCnt)
- for i in range(self.CurAwardCnt):
- data = CommFunc.WriteString(data, self.CurAwardItemInfo[i].GetLength(), self.CurAwardItemInfo[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.LastAwardCnt)
- for i in range(self.LastAwardCnt):
- data = CommFunc.WriteString(data, self.LastAwardItemInfo[i].GetLength(), self.LastAwardItemInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- FreeStartTime:%d,
- WishCnt:%d,
- WellItemCnt:%d,
- WellItemInfo:%s,
- CurAwardCnt:%d,
- CurAwardItemInfo:%s,
- LastAwardCnt:%d,
- LastAwardItemInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.FreeStartTime,
- self.WishCnt,
- self.WellItemCnt,
- "...",
- self.CurAwardCnt,
- "...",
- self.LastAwardCnt,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCActWishingWellPlayerInfo=tagMCActWishingWellPlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActWishingWellPlayerInfo.Head.Cmd,m_NAtagMCActWishingWellPlayerInfo.Head.SubCmd))] = m_NAtagMCActWishingWellPlayerInfo
-
-
-#------------------------------------------------------
-# AA 87 运势活动信息 #tagMCActYunshiInfo
-
-class tagMCActYunshiInfo(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)// 活动编号
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- TreasureType = 0 #(BYTE TreasureType)// 活动寻宝类型
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x87
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.TreasureType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x87
- self.ActNum = 0
- self.StartDate = ""
- self.EndtDate = ""
- self.ResetType = 0
- self.LimitLV = 0
- self.TreasureType = 0
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 10
- length += 10
- length += 1
- length += 2
- length += 1
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.ResetType)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.TreasureType)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- StartDate:%s,
- EndtDate:%s,
- ResetType:%d,
- LimitLV:%d,
- TreasureType:%d
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.StartDate,
- self.EndtDate,
- self.ResetType,
- self.LimitLV,
- self.TreasureType
- )
- return DumpString
-
-
-m_NAtagMCActYunshiInfo=tagMCActYunshiInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActYunshiInfo.Head.Cmd,m_NAtagMCActYunshiInfo.Head.SubCmd))] = m_NAtagMCActYunshiInfo
-
-
-#------------------------------------------------------
-# AA 15 仙界盛典全民来嗨玩家信息 #tagMCAllPeoplePartyInfo
-
-class tagMCAllPeoplePartyCount(Structure):
- _pack_ = 1
- _fields_ = [
- ("ActID", c_int), #活动ID
- ("CurTimes", c_ushort), #已完成次数
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ActID = 0
- self.CurTimes = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCAllPeoplePartyCount)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 15 仙界盛典全民来嗨玩家信息 //tagMCAllPeoplePartyInfo:
- ActID:%d,
- CurTimes:%d
- '''\
- %(
- self.ActID,
- self.CurTimes
- )
- return DumpString
-
-
-class tagMCAllPeoplePartyInfo(Structure):
- Head = tagHead()
- CurPoint = 0 #(DWORD CurPoint)//当前总点数
- AwardRecord = 0 #(DWORD AwardRecord)//领奖记录 按奖励索引二进制位存储是否已领取
- Count = 0 #(BYTE Count)
- BuyCountList = list() #(vector<tagMCAllPeoplePartyCount> BuyCountList)//活动完成次数信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x15
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.CurPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- temBuyCountList = tagMCAllPeoplePartyCount()
- _pos = temBuyCountList.ReadData(_lpData, _pos)
- self.BuyCountList.append(temBuyCountList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x15
- self.CurPoint = 0
- self.AwardRecord = 0
- self.Count = 0
- self.BuyCountList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 4
- length += 1
- for i in range(self.Count):
- length += self.BuyCountList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.CurPoint)
- data = CommFunc.WriteDWORD(data, self.AwardRecord)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- CurPoint:%d,
- AwardRecord:%d,
- Count:%d,
- BuyCountList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.CurPoint,
- self.AwardRecord,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCAllPeoplePartyInfo=tagMCAllPeoplePartyInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAllPeoplePartyInfo.Head.Cmd,m_NAtagMCAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCAllPeoplePartyInfo
-
-
-#------------------------------------------------------
# AA 90 炼器跨服活动信息 #tagMCCrossActLianqiInfo
class tagMCCrossActLianqiItem(Structure):
@@ -23345,321 +21588,6 @@
#------------------------------------------------------
-# AA 25 每日礼包活动信息 #tagMCDailyGiftbagInfo
-
-class tagMCDailyGiftbagItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int),
- ("ItemCount", c_ushort),
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemID = 0
- self.ItemCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCDailyGiftbagItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 25 每日礼包活动信息 //tagMCDailyGiftbagInfo:
- ItemID:%d,
- ItemCount:%d
- '''\
- %(
- self.ItemID,
- self.ItemCount
- )
- return DumpString
-
-
-class tagMCDailyGiftbag(Structure):
- GiftID = 0 #(DWORD GiftID)//礼包ID,0为免费
- OrderInfoLen = 0 #(BYTE OrderInfoLen)
- OrderInfo = "" #(String OrderInfo)//商品编号
- BuyCountLimit = 0 #(BYTE BuyCountLimit)//限购数
- RMB = 0 #(DWORD RMB)//所需RMB,元
- GiftItemCount = 0 #(BYTE GiftItemCount)// 礼包物品数
- ItemInfo = list() #(vector<tagMCDailyGiftbagItem> ItemInfo)// 物品信息
- Discount = 0 #(WORD Discount)// 折扣力度百分比
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.GiftID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.OrderInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.OrderInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.OrderInfoLen)
- self.BuyCountLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.RMB,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.GiftItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GiftItemCount):
- temItemInfo = tagMCDailyGiftbagItem()
- _pos = temItemInfo.ReadData(_lpData, _pos)
- self.ItemInfo.append(temItemInfo)
- self.Discount,_pos = CommFunc.ReadWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.GiftID = 0
- self.OrderInfoLen = 0
- self.OrderInfo = ""
- self.BuyCountLimit = 0
- self.RMB = 0
- self.GiftItemCount = 0
- self.ItemInfo = list()
- self.Discount = 0
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 1
- length += len(self.OrderInfo)
- length += 1
- length += 4
- length += 1
- for i in range(self.GiftItemCount):
- length += self.ItemInfo[i].GetLength()
- length += 2
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.GiftID)
- data = CommFunc.WriteBYTE(data, self.OrderInfoLen)
- data = CommFunc.WriteString(data, self.OrderInfoLen, self.OrderInfo)
- data = CommFunc.WriteBYTE(data, self.BuyCountLimit)
- data = CommFunc.WriteDWORD(data, self.RMB)
- data = CommFunc.WriteBYTE(data, self.GiftItemCount)
- for i in range(self.GiftItemCount):
- data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer())
- data = CommFunc.WriteWORD(data, self.Discount)
- return data
-
- def OutputString(self):
- DumpString = '''
- GiftID:%d,
- OrderInfoLen:%d,
- OrderInfo:%s,
- BuyCountLimit:%d,
- RMB:%d,
- GiftItemCount:%d,
- ItemInfo:%s,
- Discount:%d
- '''\
- %(
- self.GiftID,
- self.OrderInfoLen,
- self.OrderInfo,
- self.BuyCountLimit,
- self.RMB,
- self.GiftItemCount,
- "...",
- self.Discount
- )
- return DumpString
-
-
-class tagMCDailyGiftbagInfo(Structure):
- Head = tagHead()
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- GiftbagCount = 0 #(BYTE GiftbagCount)// 礼包数
- GiftbagInfo = list() #(vector<tagMCDailyGiftbag> GiftbagInfo)// 礼包信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x25
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GiftbagCount):
- temGiftbagInfo = tagMCDailyGiftbag()
- _pos = temGiftbagInfo.ReadData(_lpData, _pos)
- self.GiftbagInfo.append(temGiftbagInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x25
- self.LimitLV = 0
- self.GiftbagCount = 0
- self.GiftbagInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 2
- length += 1
- for i in range(self.GiftbagCount):
- length += self.GiftbagInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.GiftbagCount)
- for i in range(self.GiftbagCount):
- data = CommFunc.WriteString(data, self.GiftbagInfo[i].GetLength(), self.GiftbagInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- LimitLV:%d,
- GiftbagCount:%d,
- GiftbagInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.LimitLV,
- self.GiftbagCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCDailyGiftbagInfo=tagMCDailyGiftbagInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDailyGiftbagInfo.Head.Cmd,m_NAtagMCDailyGiftbagInfo.Head.SubCmd))] = m_NAtagMCDailyGiftbagInfo
-
-
-#------------------------------------------------------
-# AA 26 每日礼包玩家活动信息 #tagMCDailyGiftbagPlayerInfo
-
-class tagMCDailyGiftbagBuyCount(Structure):
- _pack_ = 1
- _fields_ = [
- ("GiftbagID", c_int), #礼包ID
- ("BuyCount", c_ushort), #本次活动已购买次数
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.GiftbagID = 0
- self.BuyCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCDailyGiftbagBuyCount)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 26 每日礼包玩家活动信息 //tagMCDailyGiftbagPlayerInfo:
- GiftbagID:%d,
- BuyCount:%d
- '''\
- %(
- self.GiftbagID,
- self.BuyCount
- )
- return DumpString
-
-
-class tagMCDailyGiftbagPlayerInfo(Structure):
- Head = tagHead()
- Count = 0 #(BYTE Count)
- BuyCountList = list() #(vector<tagMCDailyGiftbagBuyCount> BuyCountList)//礼包购买次数信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x26
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- temBuyCountList = tagMCDailyGiftbagBuyCount()
- _pos = temBuyCountList.ReadData(_lpData, _pos)
- self.BuyCountList.append(temBuyCountList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x26
- self.Count = 0
- self.BuyCountList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.Count):
- length += self.BuyCountList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Count:%d,
- BuyCountList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCDailyGiftbagPlayerInfo=tagMCDailyGiftbagPlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDailyGiftbagPlayerInfo.Head.Cmd,m_NAtagMCDailyGiftbagPlayerInfo.Head.SubCmd))] = m_NAtagMCDailyGiftbagPlayerInfo
-
-
-#------------------------------------------------------
# AA 03 每日打包直购礼包 #tagMCDailyPackBuyGiftInfo
class tagMCDailyPackBuyGiftInfo(Structure):
@@ -23832,1659 +21760,6 @@
#------------------------------------------------------
-# AA 12 限时礼包活动信息 #tagMCFlashGiftbagInfo
-
-class tagMCFlashGiftbagItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int),
- ("ItemCount", c_ushort),
- ("IsBind", c_ubyte),
- ("IsMainItem", c_ubyte), #是否标的物
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemID = 0
- self.ItemCount = 0
- self.IsBind = 0
- self.IsMainItem = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCFlashGiftbagItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 12 限时礼包活动信息 //tagMCFlashGiftbagInfo:
- ItemID:%d,
- ItemCount:%d,
- IsBind:%d,
- IsMainItem:%d
- '''\
- %(
- self.ItemID,
- self.ItemCount,
- self.IsBind,
- self.IsMainItem
- )
- return DumpString
-
-
-class tagMCFlashGiftbag(Structure):
- GiftID = 0 #(DWORD GiftID)//礼包ID
- OrderInfoLen = 0 #(BYTE OrderInfoLen)
- OrderInfo = "" #(String OrderInfo)//商品编号
- BuyCountLimit = 0 #(BYTE BuyCountLimit)//限购数
- RMB = 0 #(DWORD RMB)//所需RMB,元
- RMBOriginal = 0 #(DWORD RMBOriginal)//原价
- GiftItemCount = 0 #(BYTE GiftItemCount)// 礼包物品数
- ItemInfo = list() #(vector<tagMCFlashGiftbagItem> ItemInfo)// 物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.GiftID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.OrderInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.OrderInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.OrderInfoLen)
- self.BuyCountLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.RMB,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.RMBOriginal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.GiftItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GiftItemCount):
- temItemInfo = tagMCFlashGiftbagItem()
- _pos = temItemInfo.ReadData(_lpData, _pos)
- self.ItemInfo.append(temItemInfo)
- return _pos
-
- def Clear(self):
- self.GiftID = 0
- self.OrderInfoLen = 0
- self.OrderInfo = ""
- self.BuyCountLimit = 0
- self.RMB = 0
- self.RMBOriginal = 0
- self.GiftItemCount = 0
- self.ItemInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 1
- length += len(self.OrderInfo)
- length += 1
- length += 4
- length += 4
- length += 1
- for i in range(self.GiftItemCount):
- length += self.ItemInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.GiftID)
- data = CommFunc.WriteBYTE(data, self.OrderInfoLen)
- data = CommFunc.WriteString(data, self.OrderInfoLen, self.OrderInfo)
- data = CommFunc.WriteBYTE(data, self.BuyCountLimit)
- data = CommFunc.WriteDWORD(data, self.RMB)
- data = CommFunc.WriteDWORD(data, self.RMBOriginal)
- data = CommFunc.WriteBYTE(data, self.GiftItemCount)
- for i in range(self.GiftItemCount):
- data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- GiftID:%d,
- OrderInfoLen:%d,
- OrderInfo:%s,
- BuyCountLimit:%d,
- RMB:%d,
- RMBOriginal:%d,
- GiftItemCount:%d,
- ItemInfo:%s
- '''\
- %(
- self.GiftID,
- self.OrderInfoLen,
- self.OrderInfo,
- self.BuyCountLimit,
- self.RMB,
- self.RMBOriginal,
- self.GiftItemCount,
- "..."
- )
- return DumpString
-
-
-class tagMCFlashGiftbagType(Structure):
- GiftbagCount = 0 #(BYTE GiftbagCount)// 礼包数
- GiftbagInfo = list() #(vector<tagMCFlashGiftbag> GiftbagInfo)// 礼包信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GiftbagCount):
- temGiftbagInfo = tagMCFlashGiftbag()
- _pos = temGiftbagInfo.ReadData(_lpData, _pos)
- self.GiftbagInfo.append(temGiftbagInfo)
- return _pos
-
- def Clear(self):
- self.GiftbagCount = 0
- self.GiftbagInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- for i in range(self.GiftbagCount):
- length += self.GiftbagInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.GiftbagCount)
- for i in range(self.GiftbagCount):
- data = CommFunc.WriteString(data, self.GiftbagInfo[i].GetLength(), self.GiftbagInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- GiftbagCount:%d,
- GiftbagInfo:%s
- '''\
- %(
- self.GiftbagCount,
- "..."
- )
- return DumpString
-
-
-class tagMCFlashGiftbagTime(Structure):
- StartTime = "" #(char StartTime[5])// 开始时间 H:M
- EndtTime = "" #(char EndtTime[5])// 结束时间 H:M
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.StartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
- self.EndtTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
- return _pos
-
- def Clear(self):
- self.StartTime = ""
- self.EndtTime = ""
- return
-
- def GetLength(self):
- length = 0
- length += 5
- length += 5
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, 5, self.StartTime)
- data = CommFunc.WriteString(data, 5, self.EndtTime)
- return data
-
- def OutputString(self):
- DumpString = '''
- StartTime:%s,
- EndtTime:%s
- '''\
- %(
- self.StartTime,
- self.EndtTime
- )
- return DumpString
-
-
-class tagMCFlashGiftbagInfo(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)//活动编号
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
- ActivityTimeCount = 0 #(BYTE ActivityTimeCount)
- ActivityTime = list() #(vector<tagMCFlashGiftbagTime> ActivityTime)//活动时间
- IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- GiftbagTypeCount = 0 #(BYTE GiftbagTypeCount)// 礼包类型数
- GiftbagTypeInfo = list() #(vector<tagMCFlashGiftbagType> GiftbagTypeInfo)// 礼包类型信息, 当有多个且有多个活动时间段时则每个时间段对应一个礼包类型;
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x12
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ActivityTimeCount):
- temActivityTime = tagMCFlashGiftbagTime()
- _pos = temActivityTime.ReadData(_lpData, _pos)
- self.ActivityTime.append(temActivityTime)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.GiftbagTypeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GiftbagTypeCount):
- temGiftbagTypeInfo = tagMCFlashGiftbagType()
- _pos = temGiftbagTypeInfo.ReadData(_lpData, _pos)
- self.GiftbagTypeInfo.append(temGiftbagTypeInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x12
- self.ActNum = 0
- self.StartDate = ""
- self.EndtDate = ""
- self.AdvanceMinutes = 0
- self.ActivityTimeCount = 0
- self.ActivityTime = list()
- self.IsDayReset = 0
- self.LimitLV = 0
- self.GiftbagTypeCount = 0
- self.GiftbagTypeInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 10
- length += 10
- length += 2
- length += 1
- for i in range(self.ActivityTimeCount):
- length += self.ActivityTime[i].GetLength()
- length += 1
- length += 2
- length += 1
- for i in range(self.GiftbagTypeCount):
- length += self.GiftbagTypeInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteWORD(data, self.AdvanceMinutes)
- data = CommFunc.WriteBYTE(data, self.ActivityTimeCount)
- for i in range(self.ActivityTimeCount):
- data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.GiftbagTypeCount)
- for i in range(self.GiftbagTypeCount):
- data = CommFunc.WriteString(data, self.GiftbagTypeInfo[i].GetLength(), self.GiftbagTypeInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- StartDate:%s,
- EndtDate:%s,
- AdvanceMinutes:%d,
- ActivityTimeCount:%d,
- ActivityTime:%s,
- IsDayReset:%d,
- LimitLV:%d,
- GiftbagTypeCount:%d,
- GiftbagTypeInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.StartDate,
- self.EndtDate,
- self.AdvanceMinutes,
- self.ActivityTimeCount,
- "...",
- self.IsDayReset,
- self.LimitLV,
- self.GiftbagTypeCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCFlashGiftbagInfo=tagMCFlashGiftbagInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashGiftbagInfo.Head.Cmd,m_NAtagMCFlashGiftbagInfo.Head.SubCmd))] = m_NAtagMCFlashGiftbagInfo
-
-
-#------------------------------------------------------
-# AA 13 限时礼包玩家活动信息 #tagMCFlashGiftbagPlayerInfo
-
-class tagMCFlashGiftbagBuyCount(Structure):
- _pack_ = 1
- _fields_ = [
- ("GiftbagID", c_int), #礼包ID
- ("BuyCount", c_ushort), #本次活动已购买次数
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.GiftbagID = 0
- self.BuyCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCFlashGiftbagBuyCount)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 13 限时礼包玩家活动信息 //tagMCFlashGiftbagPlayerInfo:
- GiftbagID:%d,
- BuyCount:%d
- '''\
- %(
- self.GiftbagID,
- self.BuyCount
- )
- return DumpString
-
-
-class tagMCFlashGiftbagPlayerInfo(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)//活动编号
- Count = 0 #(BYTE Count)
- BuyCountList = list() #(vector<tagMCFlashGiftbagBuyCount> BuyCountList)//礼包购买次数信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x13
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- temBuyCountList = tagMCFlashGiftbagBuyCount()
- _pos = temBuyCountList.ReadData(_lpData, _pos)
- self.BuyCountList.append(temBuyCountList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x13
- self.ActNum = 0
- self.Count = 0
- self.BuyCountList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- for i in range(self.Count):
- length += self.BuyCountList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- Count:%d,
- BuyCountList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCFlashGiftbagPlayerInfo=tagMCFlashGiftbagPlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashGiftbagPlayerInfo.Head.Cmd,m_NAtagMCFlashGiftbagPlayerInfo.Head.SubCmd))] = m_NAtagMCFlashGiftbagPlayerInfo
-
-
-#------------------------------------------------------
-# AA 18 限时抢购活动玩家预约信息 #tagMCFlashSaleAppointmentInfo
-
-class tagMCFlashSaleAppointmentState(Structure):
- _pack_ = 1
- _fields_ = [
- ("GoodsMark", c_int), # 商品标识
- ("State", c_ubyte), # 是否预约
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.GoodsMark = 0
- self.State = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCFlashSaleAppointmentState)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 18 限时抢购活动玩家预约信息 //tagMCFlashSaleAppointmentInfo:
- GoodsMark:%d,
- State:%d
- '''\
- %(
- self.GoodsMark,
- self.State
- )
- return DumpString
-
-
-class tagMCFlashSaleAppointmentInfo(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)//活动编号
- IsAll = 0 #(BYTE IsAll)// 是否全部
- GoodsCount = 0 #(WORD GoodsCount)// 商品数
- GoodsList = list() #(vector<tagMCFlashSaleAppointmentState> GoodsList)// 预约的商品
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x18
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.GoodsCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
- for i in range(self.GoodsCount):
- temGoodsList = tagMCFlashSaleAppointmentState()
- _pos = temGoodsList.ReadData(_lpData, _pos)
- self.GoodsList.append(temGoodsList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x18
- self.ActNum = 0
- self.IsAll = 0
- self.GoodsCount = 0
- self.GoodsList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- length += 2
- for i in range(self.GoodsCount):
- length += self.GoodsList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteBYTE(data, self.IsAll)
- data = CommFunc.WriteWORD(data, self.GoodsCount)
- for i in range(self.GoodsCount):
- data = CommFunc.WriteString(data, self.GoodsList[i].GetLength(), self.GoodsList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- IsAll:%d,
- GoodsCount:%d,
- GoodsList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.IsAll,
- self.GoodsCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCFlashSaleAppointmentInfo=tagMCFlashSaleAppointmentInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashSaleAppointmentInfo.Head.Cmd,m_NAtagMCFlashSaleAppointmentInfo.Head.SubCmd))] = m_NAtagMCFlashSaleAppointmentInfo
-
-
-#------------------------------------------------------
-# AA 17 限时抢购活动信息 #tagMCFlashSaleInfo
-
-class tagMCFlashSaleGiftbag(Structure):
- _pack_ = 1
- _fields_ = [
- ("GiftID", c_int), #商城表的物品ID
- ("BuyCountLimit", c_ubyte), #限购数
- ("ServerBuyCountLimit", c_ushort), #全服限购数
- ("MoneyType", c_ubyte), #消耗货币类型
- ("MoneyNumber", c_int), #消耗货币数量
- ("MoneyOriginal", c_int), #原价
- ("ItemID", c_int),
- ("ItemCount", c_ushort),
- ("IsBind", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.GiftID = 0
- self.BuyCountLimit = 0
- self.ServerBuyCountLimit = 0
- self.MoneyType = 0
- self.MoneyNumber = 0
- self.MoneyOriginal = 0
- self.ItemID = 0
- self.ItemCount = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCFlashSaleGiftbag)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 17 限时抢购活动信息 //tagMCFlashSaleInfo:
- GiftID:%d,
- BuyCountLimit:%d,
- ServerBuyCountLimit:%d,
- MoneyType:%d,
- MoneyNumber:%d,
- MoneyOriginal:%d,
- ItemID:%d,
- ItemCount:%d,
- IsBind:%d
- '''\
- %(
- self.GiftID,
- self.BuyCountLimit,
- self.ServerBuyCountLimit,
- self.MoneyType,
- self.MoneyNumber,
- self.MoneyOriginal,
- self.ItemID,
- self.ItemCount,
- self.IsBind
- )
- return DumpString
-
-
-class tagMCFlashSaleShop(Structure):
- DayIndex = 0 #(BYTE DayIndex)// 活动第几天
- TimeIndex = 0 #(BYTE TimeIndex)// 第几个时间段
- GiftbagCount = 0 #(BYTE GiftbagCount)// 商店礼包数
- GiftbagInfo = list() #(vector<tagMCFlashSaleGiftbag> GiftbagInfo)// 礼包信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.DayIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.TimeIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GiftbagCount):
- temGiftbagInfo = tagMCFlashSaleGiftbag()
- _pos = temGiftbagInfo.ReadData(_lpData, _pos)
- self.GiftbagInfo.append(temGiftbagInfo)
- return _pos
-
- def Clear(self):
- self.DayIndex = 0
- self.TimeIndex = 0
- self.GiftbagCount = 0
- self.GiftbagInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += 1
- length += 1
- for i in range(self.GiftbagCount):
- length += self.GiftbagInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.DayIndex)
- data = CommFunc.WriteBYTE(data, self.TimeIndex)
- data = CommFunc.WriteBYTE(data, self.GiftbagCount)
- for i in range(self.GiftbagCount):
- data = CommFunc.WriteString(data, self.GiftbagInfo[i].GetLength(), self.GiftbagInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- DayIndex:%d,
- TimeIndex:%d,
- GiftbagCount:%d,
- GiftbagInfo:%s
- '''\
- %(
- self.DayIndex,
- self.TimeIndex,
- self.GiftbagCount,
- "..."
- )
- return DumpString
-
-
-class tagMCFlashSaleTime(Structure):
- StartTime = "" #(char StartTime[5])// 开始时间 H:M
- EndtTime = "" #(char EndtTime[5])// 结束时间 H:M
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.StartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
- self.EndtTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
- return _pos
-
- def Clear(self):
- self.StartTime = ""
- self.EndtTime = ""
- return
-
- def GetLength(self):
- length = 0
- length += 5
- length += 5
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, 5, self.StartTime)
- data = CommFunc.WriteString(data, 5, self.EndtTime)
- return data
-
- def OutputString(self):
- DumpString = '''
- StartTime:%s,
- EndtTime:%s
- '''\
- %(
- self.StartTime,
- self.EndtTime
- )
- return DumpString
-
-
-class tagMCFlashSaleInfo(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)//活动编号
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
- ActivityTimeCount = 0 #(BYTE ActivityTimeCount)
- ActivityTime = list() #(vector<tagMCFlashSaleTime> ActivityTime)//活动时间
- IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- ShopCount = 0 #(BYTE ShopCount)// 商店数
- ShopInfo = list() #(vector<tagMCFlashSaleShop> ShopInfo)// 商店信息, 当有多个商店且有多个活动时间段时则每个时间段对应一个商店;
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x17
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ActivityTimeCount):
- temActivityTime = tagMCFlashSaleTime()
- _pos = temActivityTime.ReadData(_lpData, _pos)
- self.ActivityTime.append(temActivityTime)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.ShopCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ShopCount):
- temShopInfo = tagMCFlashSaleShop()
- _pos = temShopInfo.ReadData(_lpData, _pos)
- self.ShopInfo.append(temShopInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x17
- self.ActNum = 0
- self.StartDate = ""
- self.EndtDate = ""
- self.AdvanceMinutes = 0
- self.ActivityTimeCount = 0
- self.ActivityTime = list()
- self.IsDayReset = 0
- self.LimitLV = 0
- self.ShopCount = 0
- self.ShopInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 10
- length += 10
- length += 2
- length += 1
- for i in range(self.ActivityTimeCount):
- length += self.ActivityTime[i].GetLength()
- length += 1
- length += 2
- length += 1
- for i in range(self.ShopCount):
- length += self.ShopInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteWORD(data, self.AdvanceMinutes)
- data = CommFunc.WriteBYTE(data, self.ActivityTimeCount)
- for i in range(self.ActivityTimeCount):
- data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.ShopCount)
- for i in range(self.ShopCount):
- data = CommFunc.WriteString(data, self.ShopInfo[i].GetLength(), self.ShopInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- StartDate:%s,
- EndtDate:%s,
- AdvanceMinutes:%d,
- ActivityTimeCount:%d,
- ActivityTime:%s,
- IsDayReset:%d,
- LimitLV:%d,
- ShopCount:%d,
- ShopInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.StartDate,
- self.EndtDate,
- self.AdvanceMinutes,
- self.ActivityTimeCount,
- "...",
- self.IsDayReset,
- self.LimitLV,
- self.ShopCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCFlashSaleInfo=tagMCFlashSaleInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashSaleInfo.Head.Cmd,m_NAtagMCFlashSaleInfo.Head.SubCmd))] = m_NAtagMCFlashSaleInfo
-
-
-#------------------------------------------------------
-# AA 1F 幸运鉴宝活动信息 #tagMCLuckyTreasureInfo
-
-class tagMCLuckyTreasureItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int), # 物品ID
- ("ItemCnt", c_ushort), # 物品数量
- ("IsBind", c_ubyte), # 是否绑定
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemID = 0
- self.ItemCnt = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCLuckyTreasureItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 1F 幸运鉴宝活动信息 //tagMCLuckyTreasureInfo:
- ItemID:%d,
- ItemCnt:%d,
- IsBind:%d
- '''\
- %(
- self.ItemID,
- self.ItemCnt,
- self.IsBind
- )
- return DumpString
-
-
-class tagMCLuckyTreasureInfo(Structure):
- Head = tagHead()
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- LuckyPoint = 0 #(WORD LuckyPoint)// 总幸运值
- Count = 0 #(WORD Count)// 物品数
- ItemList = list() #(vector<tagMCLuckyTreasureItem> ItemList)// 随机库物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x1F
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.LuckyPoint,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
- for i in range(self.Count):
- temItemList = tagMCLuckyTreasureItem()
- _pos = temItemList.ReadData(_lpData, _pos)
- self.ItemList.append(temItemList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x1F
- self.StartDate = ""
- self.EndtDate = ""
- self.ResetType = 0
- self.LimitLV = 0
- self.LuckyPoint = 0
- self.Count = 0
- self.ItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 10
- length += 10
- length += 1
- length += 2
- length += 2
- length += 2
- for i in range(self.Count):
- length += self.ItemList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.ResetType)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteWORD(data, self.LuckyPoint)
- data = CommFunc.WriteWORD(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- StartDate:%s,
- EndtDate:%s,
- ResetType:%d,
- LimitLV:%d,
- LuckyPoint:%d,
- Count:%d,
- ItemList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.StartDate,
- self.EndtDate,
- self.ResetType,
- self.LimitLV,
- self.LuckyPoint,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCLuckyTreasureInfo=tagMCLuckyTreasureInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCLuckyTreasureInfo.Head.Cmd,m_NAtagMCLuckyTreasureInfo.Head.SubCmd))] = m_NAtagMCLuckyTreasureInfo
-
-
-#------------------------------------------------------
-# AA 1E 幸运鉴宝结果信息 #tagMCLuckyTreasureResultInfo
-
-class tagMCLuckyTreasureResultInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("LuckyPoint", c_ushort), # 当前幸运点
- ("HasFree", c_ubyte), # 是否免费过
- ("ItemID", c_int), # 物品ID
- ("ItemCnt", c_ushort), #物品数量
- ("IsBind", c_ubyte), # 是否绑定
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x1E
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x1E
- self.LuckyPoint = 0
- self.HasFree = 0
- self.ItemID = 0
- self.ItemCnt = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCLuckyTreasureResultInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 1E 幸运鉴宝结果信息 //tagMCLuckyTreasureResultInfo:
- Cmd:%s,
- SubCmd:%s,
- LuckyPoint:%d,
- HasFree:%d,
- ItemID:%d,
- ItemCnt:%d,
- IsBind:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.LuckyPoint,
- self.HasFree,
- self.ItemID,
- self.ItemCnt,
- self.IsBind
- )
- return DumpString
-
-
-m_NAtagMCLuckyTreasureResultInfo=tagMCLuckyTreasureResultInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCLuckyTreasureResultInfo.Cmd,m_NAtagMCLuckyTreasureResultInfo.SubCmd))] = m_NAtagMCLuckyTreasureResultInfo
-
-
-#------------------------------------------------------
-# AA 23 新仙界盛典全民来嗨玩家信息 #tagMCNewAllPeoplePartyInfo
-
-class tagMCNewAllPeoplePartyCount(Structure):
- _pack_ = 1
- _fields_ = [
- ("ActID", c_int), #活动ID
- ("CurTimes", c_ushort), #已完成次数
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ActID = 0
- self.CurTimes = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCNewAllPeoplePartyCount)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 23 新仙界盛典全民来嗨玩家信息 //tagMCNewAllPeoplePartyInfo:
- ActID:%d,
- CurTimes:%d
- '''\
- %(
- self.ActID,
- self.CurTimes
- )
- return DumpString
-
-
-class tagMCNewAllPeoplePartyInfo(Structure):
- Head = tagHead()
- CurPoint = 0 #(DWORD CurPoint)//当前总点数
- AwardRecord = 0 #(DWORD AwardRecord)//领奖记录 按奖励索引二进制位存储是否已领取
- Count = 0 #(BYTE Count)
- BuyCountList = list() #(vector<tagMCNewAllPeoplePartyCount> BuyCountList)//活动完成次数信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x23
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.CurPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- temBuyCountList = tagMCNewAllPeoplePartyCount()
- _pos = temBuyCountList.ReadData(_lpData, _pos)
- self.BuyCountList.append(temBuyCountList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x23
- self.CurPoint = 0
- self.AwardRecord = 0
- self.Count = 0
- self.BuyCountList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 4
- length += 1
- for i in range(self.Count):
- length += self.BuyCountList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.CurPoint)
- data = CommFunc.WriteDWORD(data, self.AwardRecord)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- CurPoint:%d,
- AwardRecord:%d,
- Count:%d,
- BuyCountList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.CurPoint,
- self.AwardRecord,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCNewAllPeoplePartyInfo=tagMCNewAllPeoplePartyInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewAllPeoplePartyInfo.Head.Cmd,m_NAtagMCNewAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCNewAllPeoplePartyInfo
-
-
-#------------------------------------------------------
-# AA 22 新仙界盛典充值大礼 #tagMCNewXJSDRecharge
-
-class tagMCNewXJSDRecharge(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("State", c_ubyte), #0-不可领 1-可领 2-已领取
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x22
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x22
- self.State = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCNewXJSDRecharge)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 22 新仙界盛典充值大礼 //tagMCNewXJSDRecharge:
- Cmd:%s,
- SubCmd:%s,
- State:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.State
- )
- return DumpString
-
-
-m_NAtagMCNewXJSDRecharge=tagMCNewXJSDRecharge()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewXJSDRecharge.Cmd,m_NAtagMCNewXJSDRecharge.SubCmd))] = m_NAtagMCNewXJSDRecharge
-
-
-#------------------------------------------------------
-# AA 11 限时特惠活动信息 #tagMCSpringSaleInfo
-
-class tagMCSpringSaleItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int),
- ("ItemCount", c_ushort),
- ("IsBind", c_ubyte),
- ("IsMainItem", c_ubyte), #是否标的物
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemID = 0
- self.ItemCount = 0
- self.IsBind = 0
- self.IsMainItem = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCSpringSaleItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 11 限时特惠活动信息 //tagMCSpringSaleInfo:
- ItemID:%d,
- ItemCount:%d,
- IsBind:%d,
- IsMainItem:%d
- '''\
- %(
- self.ItemID,
- self.ItemCount,
- self.IsBind,
- self.IsMainItem
- )
- return DumpString
-
-
-class tagMCSpringSaleGiftbag(Structure):
- GiftID = 0 #(DWORD GiftID)//商城表的物品ID
- BuyCountLimit = 0 #(BYTE BuyCountLimit)//限购数
- MoneyType = 0 #(BYTE MoneyType)//消耗货币类型
- MoneyNumber = 0 #(DWORD MoneyNumber)//消耗货币数量
- MoneyOriginal = 0 #(DWORD MoneyOriginal)//原价
- GiftItemCount = 0 #(BYTE GiftItemCount)// 礼包物品数
- ItemInfo = list() #(vector<tagMCSpringSaleItem> ItemInfo)// 物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.GiftID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.BuyCountLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.MoneyNumber,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.MoneyOriginal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.GiftItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GiftItemCount):
- temItemInfo = tagMCSpringSaleItem()
- _pos = temItemInfo.ReadData(_lpData, _pos)
- self.ItemInfo.append(temItemInfo)
- return _pos
-
- def Clear(self):
- self.GiftID = 0
- self.BuyCountLimit = 0
- self.MoneyType = 0
- self.MoneyNumber = 0
- self.MoneyOriginal = 0
- self.GiftItemCount = 0
- self.ItemInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 1
- length += 1
- length += 4
- length += 4
- length += 1
- for i in range(self.GiftItemCount):
- length += self.ItemInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.GiftID)
- data = CommFunc.WriteBYTE(data, self.BuyCountLimit)
- data = CommFunc.WriteBYTE(data, self.MoneyType)
- data = CommFunc.WriteDWORD(data, self.MoneyNumber)
- data = CommFunc.WriteDWORD(data, self.MoneyOriginal)
- data = CommFunc.WriteBYTE(data, self.GiftItemCount)
- for i in range(self.GiftItemCount):
- data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- GiftID:%d,
- BuyCountLimit:%d,
- MoneyType:%d,
- MoneyNumber:%d,
- MoneyOriginal:%d,
- GiftItemCount:%d,
- ItemInfo:%s
- '''\
- %(
- self.GiftID,
- self.BuyCountLimit,
- self.MoneyType,
- self.MoneyNumber,
- self.MoneyOriginal,
- self.GiftItemCount,
- "..."
- )
- return DumpString
-
-
-class tagMCSpringSaleShop(Structure):
- GiftbagCount = 0 #(BYTE GiftbagCount)// 商店礼包数
- GiftbagInfo = list() #(vector<tagMCSpringSaleGiftbag> GiftbagInfo)// 礼包信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.GiftbagCount):
- temGiftbagInfo = tagMCSpringSaleGiftbag()
- _pos = temGiftbagInfo.ReadData(_lpData, _pos)
- self.GiftbagInfo.append(temGiftbagInfo)
- return _pos
-
- def Clear(self):
- self.GiftbagCount = 0
- self.GiftbagInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- for i in range(self.GiftbagCount):
- length += self.GiftbagInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.GiftbagCount)
- for i in range(self.GiftbagCount):
- data = CommFunc.WriteString(data, self.GiftbagInfo[i].GetLength(), self.GiftbagInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- GiftbagCount:%d,
- GiftbagInfo:%s
- '''\
- %(
- self.GiftbagCount,
- "..."
- )
- return DumpString
-
-
-class tagMCSpringSaleTime(Structure):
- StartTime = "" #(char StartTime[5])// 开始时间 H:M
- EndtTime = "" #(char EndtTime[5])// 结束时间 H:M
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.StartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
- self.EndtTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
- return _pos
-
- def Clear(self):
- self.StartTime = ""
- self.EndtTime = ""
- return
-
- def GetLength(self):
- length = 0
- length += 5
- length += 5
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, 5, self.StartTime)
- data = CommFunc.WriteString(data, 5, self.EndtTime)
- return data
-
- def OutputString(self):
- DumpString = '''
- StartTime:%s,
- EndtTime:%s
- '''\
- %(
- self.StartTime,
- self.EndtTime
- )
- return DumpString
-
-
-class tagMCSpringSaleInfo(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)//活动编号
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
- ActivityTimeCount = 0 #(BYTE ActivityTimeCount)
- ActivityTime = list() #(vector<tagMCSpringSaleTime> ActivityTime)//活动时间
- IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- ShopCount = 0 #(BYTE ShopCount)// 商店数
- ShopInfo = list() #(vector<tagMCSpringSaleShop> ShopInfo)// 商店信息, 当有多个商店且有多个活动时间段时则每个时间段对应一个商店;
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x11
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ActivityTimeCount):
- temActivityTime = tagMCSpringSaleTime()
- _pos = temActivityTime.ReadData(_lpData, _pos)
- self.ActivityTime.append(temActivityTime)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.ShopCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ShopCount):
- temShopInfo = tagMCSpringSaleShop()
- _pos = temShopInfo.ReadData(_lpData, _pos)
- self.ShopInfo.append(temShopInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x11
- self.ActNum = 0
- self.StartDate = ""
- self.EndtDate = ""
- self.AdvanceMinutes = 0
- self.ActivityTimeCount = 0
- self.ActivityTime = list()
- self.IsDayReset = 0
- self.LimitLV = 0
- self.ShopCount = 0
- self.ShopInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 10
- length += 10
- length += 2
- length += 1
- for i in range(self.ActivityTimeCount):
- length += self.ActivityTime[i].GetLength()
- length += 1
- length += 2
- length += 1
- for i in range(self.ShopCount):
- length += self.ShopInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteWORD(data, self.AdvanceMinutes)
- data = CommFunc.WriteBYTE(data, self.ActivityTimeCount)
- for i in range(self.ActivityTimeCount):
- data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.ShopCount)
- for i in range(self.ShopCount):
- data = CommFunc.WriteString(data, self.ShopInfo[i].GetLength(), self.ShopInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- StartDate:%s,
- EndtDate:%s,
- AdvanceMinutes:%d,
- ActivityTimeCount:%d,
- ActivityTime:%s,
- IsDayReset:%d,
- LimitLV:%d,
- ShopCount:%d,
- ShopInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.StartDate,
- self.EndtDate,
- self.AdvanceMinutes,
- self.ActivityTimeCount,
- "...",
- self.IsDayReset,
- self.LimitLV,
- self.ShopCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCSpringSaleInfo=tagMCSpringSaleInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSpringSaleInfo.Head.Cmd,m_NAtagMCSpringSaleInfo.Head.SubCmd))] = m_NAtagMCSpringSaleInfo
-
-
-#------------------------------------------------------
# AA 16 通知超值礼包信息 #tagMCSuperGiftInfo
class tagMCSuperGiftInfo(Structure):
@@ -25594,70 +21869,6 @@
m_NAtagMCTotalRechargePlayerInfo=tagMCTotalRechargePlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTotalRechargePlayerInfo.Cmd,m_NAtagMCTotalRechargePlayerInfo.SubCmd))] = m_NAtagMCTotalRechargePlayerInfo
-
-
-#------------------------------------------------------
-# AA 14 仙界盛典充值大礼 #tagMCXJSDRecharge
-
-class tagMCXJSDRecharge(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("State", c_ubyte), #0-不可领 1-可领 2-已领取
- ("CTGTotal", c_int), #本次活动已累计充值,单位元
- ("FireworksBuyCount", c_ushort), #已购买高级烟花数
- ("FirewordsScore", c_int), #当前累计所有烟花总积分
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x14
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x14
- self.State = 0
- self.CTGTotal = 0
- self.FireworksBuyCount = 0
- self.FirewordsScore = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCXJSDRecharge)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 14 仙界盛典充值大礼 //tagMCXJSDRecharge:
- Cmd:%s,
- SubCmd:%s,
- State:%d,
- CTGTotal:%d,
- FireworksBuyCount:%d,
- FirewordsScore:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.State,
- self.CTGTotal,
- self.FireworksBuyCount,
- self.FirewordsScore
- )
- return DumpString
-
-
-m_NAtagMCXJSDRecharge=tagMCXJSDRecharge()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCXJSDRecharge.Cmd,m_NAtagMCXJSDRecharge.SubCmd))] = m_NAtagMCXJSDRecharge
#------------------------------------------------------
@@ -25778,233 +21989,6 @@
m_NAtagGCCrossActEnd=tagGCCrossActEnd()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossActEnd.Head.Cmd,m_NAtagGCCrossActEnd.Head.SubCmd))] = m_NAtagGCCrossActEnd
-
-
-#------------------------------------------------------
-# AC 06 多倍经验活动信息 #tagGCMultiExpRateInfo
-
-class tagGCMultiExpRateTime(Structure):
- StartTime = "" #(char StartTime[5])// 开始时间 H:M
- EndtTime = "" #(char EndtTime[5])// 结束时间 H:M
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.StartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
- self.EndtTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
- return _pos
-
- def Clear(self):
- self.StartTime = ""
- self.EndtTime = ""
- return
-
- def GetLength(self):
- length = 0
- length += 5
- length += 5
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, 5, self.StartTime)
- data = CommFunc.WriteString(data, 5, self.EndtTime)
- return data
-
- def OutputString(self):
- DumpString = '''
- StartTime:%s,
- EndtTime:%s
- '''\
- %(
- self.StartTime,
- self.EndtTime
- )
- return DumpString
-
-
-class tagGCMultiExpRateInfo(Structure):
- Head = tagHead()
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- ActivityTimeCount = 0 #(BYTE ActivityTimeCount)
- ActivityTime = list() #(vector<tagGCMultiExpRateTime> ActivityTime)//活动时间
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- AddExpRate = 0 #(DWORD AddExpRate)// 增加的经验倍率,万分率
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x06
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ActivityTimeCount):
- temActivityTime = tagGCMultiExpRateTime()
- _pos = temActivityTime.ReadData(_lpData, _pos)
- self.ActivityTime.append(temActivityTime)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.AddExpRate,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x06
- self.StartDate = ""
- self.EndtDate = ""
- self.ActivityTimeCount = 0
- self.ActivityTime = list()
- self.LimitLV = 0
- self.AddExpRate = 0
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 10
- length += 10
- length += 1
- for i in range(self.ActivityTimeCount):
- length += self.ActivityTime[i].GetLength()
- length += 2
- length += 4
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.ActivityTimeCount)
- for i in range(self.ActivityTimeCount):
- data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer())
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteDWORD(data, self.AddExpRate)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- StartDate:%s,
- EndtDate:%s,
- ActivityTimeCount:%d,
- ActivityTime:%s,
- LimitLV:%d,
- AddExpRate:%d
- '''\
- %(
- self.Head.OutputString(),
- self.StartDate,
- self.EndtDate,
- self.ActivityTimeCount,
- "...",
- self.LimitLV,
- self.AddExpRate
- )
- return DumpString
-
-
-m_NAtagGCMultiExpRateInfo=tagGCMultiExpRateInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMultiExpRateInfo.Head.Cmd,m_NAtagGCMultiExpRateInfo.Head.SubCmd))] = m_NAtagGCMultiExpRateInfo
-
-
-#------------------------------------------------------
-# AC 0A 多倍修行点活动信息 #tagGCMultiRealmPointInfo
-
-class tagGCMultiRealmPointInfo(Structure):
- Head = tagHead()
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- Multiple = 0 #(BYTE Multiple)// 倍数
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- LimitPoint = 0 #(DWORD LimitPoint)// 限制获得修行点
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x0A
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.Multiple,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.LimitPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x0A
- self.StartDate = ""
- self.EndtDate = ""
- self.Multiple = 0
- self.LimitLV = 0
- self.LimitPoint = 0
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 10
- length += 10
- length += 1
- length += 2
- length += 4
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.Multiple)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteDWORD(data, self.LimitPoint)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- StartDate:%s,
- EndtDate:%s,
- Multiple:%d,
- LimitLV:%d,
- LimitPoint:%d
- '''\
- %(
- self.Head.OutputString(),
- self.StartDate,
- self.EndtDate,
- self.Multiple,
- self.LimitLV,
- self.LimitPoint
- )
- return DumpString
-
-
-m_NAtagGCMultiRealmPointInfo=tagGCMultiRealmPointInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMultiRealmPointInfo.Head.Cmd,m_NAtagGCMultiRealmPointInfo.Head.SubCmd))] = m_NAtagGCMultiRealmPointInfo
#------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ClearFreeGoods.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ClearFreeGoods.py
deleted file mode 100644
index b8f115b..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ClearFreeGoods.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-#-------------------------------------------------------------------------------
-#
-##@package GM.Commands.ClearFreeGoods
-#
-# @todo:重置极品白拿
-# @author xdh
-# @date 2018-07-11
-# @version 1.0
-#
-# 详细描述: 重置极品白拿
-#
-#---------------------------------------------------------------------
-"""Version = 2018-07-11 11:30"""
-
-import PlayerControl
-import time
-import ChConfig
-import GameWorld
-import IpyGameDataPY
-import PlayerFreeGoods
-#---------------------------------------------------------------------
-#逻辑实现
-## GM命令执行入口
-# @param curPlayer 当前玩家
-# @param list 参数列表 [npcID]
-# @return None
-# @remarks 函数详细说明.
-def OnExec(curPlayer, list):
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FreeGoodsOpenTime, int(time.time()))
- for i in xrange(IpyGameDataPY.IPY_Data().GetFreeGoodsCount()):
- ipyData = IpyGameDataPY.IPY_Data().GetFreeGoodsByIndex(i)
- goodsID = ipyData.GetID()
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FreeGoodsBuyState % goodsID, 0)
-
- GameWorld.DebugAnswer(curPlayer, "重置极品白拿成功!")
- PlayerFreeGoods.Sync_FreeGoodsInfo(curPlayer)
- return
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 1092cb9..6ae3f33 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -1057,20 +1057,6 @@
("DWORD", "UnlockValue", 0),
),
- "ActSpringSale":(
- ("DWORD", "CfgID", 1),
- ("char", "StartDate", 0),
- ("char", "EndDate", 0),
- ("list", "StartTimeList", 0),
- ("list", "EndTimeList", 0),
- ("WORD", "AdvanceMinutes", 0),
- ("WORD", "LVLimit", 0),
- ("BYTE", "IsDayReset", 0),
- ("dict", "ShopTypeList", 0),
- ("char", "MailKey", 0),
- ("list", "MailItemPrize", 0),
- ),
-
"DailyTask":(
("WORD", "TaskID", 0),
("BYTE", "TaskType", 1),
@@ -1286,60 +1272,6 @@
("list", "AwardItemList", 0),
),
- "FreeGoods":(
- ("BYTE", "ID", 1),
- ("dict", "AwardItem", 0),
- ("WORD", "NeedMoney", 0),
- ("DWORD", "ReturnDays", 0),
- ),
-
- "ActFlashGiftbag":(
- ("DWORD", "CfgID", 1),
- ("char", "StartDate", 0),
- ("char", "EndDate", 0),
- ("list", "StartTimeList", 0),
- ("list", "EndTimeList", 0),
- ("WORD", "AdvanceMinutes", 0),
- ("WORD", "LVLimit", 0),
- ("BYTE", "IsDayReset", 0),
- ("BYTE", "IsJueban", 0),
- ("dict", "GiftbagTypeList", 0),
- ("char", "MailKey", 0),
- ("list", "MailItemPrize", 0),
- ),
-
- "FlashGiftbag":(
- ("DWORD", "GiftbagID", 1),
- ("WORD", "GiftbagType", 0),
- ("float", "OriginalRMB", 0),
- ("WORD", "BuyCountLimit", 0),
- ("list", "GiftItemList", 0),
- ("DWORD", "MainItemID", 0),
- ("char", "NotifyKey", 0),
- ),
-
- "ActDailyGiftbag":(
- ("DWORD", "CfgID", 1),
- ("char", "StartDate", 0),
- ("char", "EndDate", 0),
- ("WORD", "LVLimit", 0),
- ("WORD", "GiftbagType", 0),
- ),
-
- "DailyGiftbag":(
- ("WORD", "GiftbagType", 1),
- ("DWORD", "GiftbagID", 1),
- ("WORD", "BuyCountLimit", 0),
- ("eval", "GiftItemList", 0),
- ("WORD", "Discount", 0),
- ),
-
- "ActExpRate":(
- ("DWORD", "CfgID", 1),
- ("WORD", "LVLimit", 0),
- ("DWORD", "AddExpRate", 0),
- ),
-
"ActBuyOne":(
("DWORD", "CfgID", 1),
("char", "StartDate", 0),
@@ -1414,37 +1346,6 @@
("list", "LayerWeightItemList", 0),
),
- "ActGodGift":(
- ("DWORD", "CfgID", 1),
- ("char", "StartDate", 0),
- ("char", "EndDate", 0),
- ("BYTE", "IsDayReset", 0),
- ("WORD", "LVLimit", 0),
- ("BYTE", "UseMoneyType", 0),
- ("list", "UseGoldList", 0),
- ("BYTE", "PrizeMoneyType", 0),
- ("list", "PrizeMoneyList", 0),
- ("BYTE", "ResetLimitTimes", 0),
- ("BYTE", "ResetCountMax", 0),
- ("dict", "TemplateIDInfo", 0),
- ),
-
- "ActGodGiftAward":(
- ("DWORD", "TemplateID", 1),
- ("BYTE", "AwardLibType", 0),
- ("BYTE", "UnlockAwardLimitTimes", 0),
- ("BYTE", "ChooseItemCount", 0),
- ("dict", "LibItemInfo", 0),
- ("list", "NotifyItemNumList", 0),
- ),
-
- "ActRealmPoint":(
- ("DWORD", "CfgID", 1),
- ("WORD", "Multiple", 0),
- ("WORD", "LVLimit", 0),
- ("DWORD", "PointLimit", 0),
- ),
-
"TrialExchange":(
("DWORD", "ID", 1),
("list", "ExchangeItemIDList", 0),
@@ -1454,61 +1355,12 @@
("DWORD", "CostItemCount", 0),
),
- "AllPeopleParty":(
- ("BYTE", "ID", 1),
- ("WORD", "TotalTimes", 0),
- ("WORD", "AddPoint", 0),
- ),
-
- "AllPeoplePartyAward":(
- ("BYTE", "WorldLvNum", 1),
- ("DWORD", "Index", 1),
- ("DWORD", "NeedPoint", 0),
- ("dict", "Award", 0),
- ),
-
"MapEventPoint":(
("DWORD", "MapID", 1),
("DWORD", "NPCID", 1),
("WORD", "LowLV", 0),
("WORD", "HighestLV", 0),
("DWORD", "Defense", 0),
- ),
-
- "ActFlashSale":(
- ("DWORD", "CfgID", 1),
- ("char", "StartDate", 0),
- ("char", "EndDate", 0),
- ("list", "StartTimeList", 0),
- ("list", "EndTimeList", 0),
- ("WORD", "AdvanceMinutes", 0),
- ("WORD", "LVLimit", 0),
- ("BYTE", "IsDayReset", 0),
- ("dict", "ShopTypeList", 0),
- ("char", "MailKey", 0),
- ("list", "MailItemPrize", 0),
- ),
-
- "ActWishingWell":(
- ("DWORD", "CfgID", 1),
- ("char", "StartDate", 0),
- ("char", "EndDate", 0),
- ("BYTE", "IsDayReset", 0),
- ("BYTE", "ResetType", 0),
- ("WORD", "LVLimit", 0),
- ("BYTE", "TemplateID", 0),
- ),
-
- "WishingWell":(
- ("BYTE", "TemplateID", 1),
- ("BYTE", "IsFree", 0),
- ("list", "WorldLVLimit", 0),
- ("DWORD", "ItemID", 0),
- ("WORD", "ItemCnt", 0),
- ("BYTE", "IsBind", 0),
- ("DWORD", "Weight", 0),
- ("DWORD", "Mark", 0),
- ("BYTE", "Rare", 0),
),
"EmojiPack":(
@@ -1536,14 +1388,6 @@
("char", "NotifyKey", 0),
),
- "ActGrowupBuy":(
- ("DWORD", "CfgID", 1),
- ("char", "StartDate", 0),
- ("char", "EndDate", 0),
- ("WORD", "LVLimit", 0),
- ("list", "CTGIDGroupList", 0),
- ),
-
"ActManyDayRecharge":(
("DWORD", "CfgID", 1),
("char", "StartDate", 0),
@@ -1559,24 +1403,6 @@
("BYTE", "AwardIndex", 0),
("dict", "AwardItemInfo", 0),
("char", "NotifyKey", 0),
- ),
-
- "ActTurntable":(
- ("DWORD", "CfgID", 1),
- ("char", "StartDate", 0),
- ("char", "EndDate", 0),
- ("WORD", "LVLimit", 0),
- ("BYTE", "IsDayReset", 0),
- ("BYTE", "CTGTypeEffValue", 0),
- ("list", "CTGPrizeList", 0),
- ("BYTE", "UseMoneyType", 0),
- ("list", "UseMoneyPrizeList", 0),
- ("list", "LibChooseCountList", 0),
- ("list", "SuperItemLimitRule", 0),
- ("dict", "CommItemLib", 0),
- ("dict", "GoodItemLib", 0),
- ("dict", "SuperItemLib", 0),
- ("char", "WorldNotifyKey", 0),
),
"ActSingleRecharge":(
@@ -1671,15 +1497,6 @@
("WORD", "PosY", 0),
),
- "ActYunshi":(
- ("DWORD", "CfgID", 1),
- ("char", "StartDate", 0),
- ("char", "EndDate", 0),
- ("WORD", "LVLimit", 0),
- ("BYTE", "ResetType", 0),
- ("DWORD", "TreasureType", 0),
- ),
-
"ActLunhuidian":(
("DWORD", "CfgID", 1),
("list", "PlatformList", 0),
@@ -1758,38 +1575,6 @@
("BYTE", "DayNum", 0),
("list", "LoginAwardItemList", 0),
("list", "LoginAwardItemListEx", 0),
- ),
-
- "NewAllPeopleParty":(
- ("BYTE", "ID", 1),
- ("WORD", "TotalTimes", 0),
- ("WORD", "AddPoint", 0),
- ),
-
- "NewAllPeoplePartyAward":(
- ("BYTE", "WorldLvNum", 1),
- ("DWORD", "Index", 1),
- ("DWORD", "NeedPoint", 0),
- ("dict", "Award", 0),
- ),
-
- "ActLuckyTreasure":(
- ("DWORD", "CfgID", 1),
- ("char", "StartDate", 0),
- ("char", "EndDate", 0),
- ("BYTE", "ResetType", 0),
- ("WORD", "LVLimit", 0),
- ("BYTE", "TemplateID", 0),
- ("WORD", "LuckyPoint", 0),
- ),
-
- "LuckyTreasureTemplate":(
- ("BYTE", "TemplateID", 1),
- ("list", "WorldLVLimit", 0),
- ("DWORD", "ItemID", 0),
- ("WORD", "ItemCnt", 0),
- ("BYTE", "IsBind", 0),
- ("DWORD", "Weight", 0),
),
"EquipPlaceIndexMap":(
@@ -3530,25 +3315,6 @@
def GetUnlockType(self): return self.attrTuple[10] # 解锁类型 BYTE
def GetUnlockValue(self): return self.attrTuple[11] # 解锁所需值 DWORD
-# 限时特惠表
-class IPY_ActSpringSale():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
- def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
- def GetStartTimeList(self): return self.attrTuple[3] # 开启时间列表, 支持多个时段 list
- def GetEndTimeList(self): return self.attrTuple[4] # 结束时间列表, 支持多个时段 list
- def GetAdvanceMinutes(self): return self.attrTuple[5] # 前端提前X分钟展示活动 WORD
- def GetLVLimit(self): return self.attrTuple[6] # 限制等级 WORD
- def GetIsDayReset(self): return self.attrTuple[7] # 是否每天重置 BYTE
- def GetShopTypeList(self): return self.attrTuple[8] # 商店类型列表 dict
- def GetMailKey(self): return self.attrTuple[9] # 活动更新时发送邮件key char
- def GetMailItemPrize(self): return self.attrTuple[10] # 活动更新时发送邮件奖励物品 list
-
# 每日任务表
class IPY_DailyTask():
@@ -3854,90 +3620,6 @@
def GetAwardIndex(self): return self.attrTuple[2] # 奖励记录索引 0~30 BYTE
def GetAwardItemList(self): return self.attrTuple[3] # 奖励物品信息列表 [[物品ID,个数,是否拍品],...] list
-# 极品白拿表
-class IPY_FreeGoods():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetID(self): return self.attrTuple[0] # ID BYTE
- def GetAwardItem(self): return self.attrTuple[1] # 奖励 {"职业":[[物品ID,个数],...], ...} dict
- def GetNeedMoney(self): return self.attrTuple[2] # 需要仙玉 WORD
- def GetReturnDays(self): return self.attrTuple[3] # 返还所需天 DWORD
-
-# 限时礼包活动表
-class IPY_ActFlashGiftbag():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
- def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
- def GetStartTimeList(self): return self.attrTuple[3] # 开启时间列表, 支持多个时段 list
- def GetEndTimeList(self): return self.attrTuple[4] # 结束时间列表, 支持多个时段 list
- def GetAdvanceMinutes(self): return self.attrTuple[5] # 前端提前X分钟展示活动 WORD
- def GetLVLimit(self): return self.attrTuple[6] # 限制等级 WORD
- def GetIsDayReset(self): return self.attrTuple[7] # 是否每天重置 BYTE
- def GetIsJueban(self): return self.attrTuple[8] # 是否绝版礼包 BYTE
- def GetGiftbagTypeList(self): return self.attrTuple[9] # 礼包类型列表 dict
- def GetMailKey(self): return self.attrTuple[10] # 活动更新时发送邮件key char
- def GetMailItemPrize(self): return self.attrTuple[11] # 活动更新时发送邮件奖励物品 list
-
-# 限时礼包模板表
-class IPY_FlashGiftbag():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetGiftbagID(self): return self.attrTuple[0] # 礼包编号 DWORD
- def GetGiftbagType(self): return self.attrTuple[1] # 礼包类型 WORD
- def GetOriginalRMB(self): return self.attrTuple[2] # 原价(RMB) float
- def GetBuyCountLimit(self): return self.attrTuple[3] # 限购次数,0不限购 WORD
- def GetGiftItemList(self): return self.attrTuple[4] # 礼包物品信息列表 [(物品ID,个数,是否绑定),...] list
- def GetMainItemID(self): return self.attrTuple[5] # 标的物品ID DWORD
- def GetNotifyKey(self): return self.attrTuple[6] # 全服广播key,默认两个参数(玩家名, 档位额度) char
-
-# 每日礼包活动表
-class IPY_ActDailyGiftbag():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
- def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
- def GetLVLimit(self): return self.attrTuple[3] # 限制等级 WORD
- def GetGiftbagType(self): return self.attrTuple[4] # 礼包模板类型 WORD
-
-# 每日礼包模板表
-class IPY_DailyGiftbag():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetGiftbagType(self): return self.attrTuple[0] # 礼包模板类型 WORD
- def GetGiftbagID(self): return self.attrTuple[1] # 礼包编号 DWORD
- def GetBuyCountLimit(self): return self.attrTuple[2] # 限购次数,0不限购 WORD
- def GetGiftItemList(self): return self.attrTuple[3] # 礼包物品信息列表 [(物品ID,个数,是否绑定),...] eval
- def GetDiscount(self): return self.attrTuple[4] # 折扣百分比 WORD
-
-# 双倍经验活动表
-class IPY_ActExpRate():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetLVLimit(self): return self.attrTuple[1] # 限制等级 WORD
- def GetAddExpRate(self): return self.attrTuple[2] # 经验倍率加成,万分率 DWORD
-
# 买一送多活动表
class IPY_ActBuyOne():
@@ -4052,52 +3734,6 @@
def GetLayerAwardItemList(self): return self.attrTuple[5] # 通关该层固定奖励 [[物品ID,个数,是否拍品], ...] list
def GetLayerWeightItemList(self): return self.attrTuple[6] # 通关该层额外随机奖励 [[权重,物品ID,个数], ...] list
-# 天帝礼包活动时间表
-class IPY_ActGodGift():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
- def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
- def GetIsDayReset(self): return self.attrTuple[3] # 是否每天重置 BYTE
- def GetLVLimit(self): return self.attrTuple[4] # 限制等级 WORD
- def GetUseMoneyType(self): return self.attrTuple[5] # 消耗货币类型 BYTE
- def GetUseGoldList(self): return self.attrTuple[6] # 抽奖消耗货币列表 list
- def GetPrizeMoneyType(self): return self.attrTuple[7] # 奖励货币类型 BYTE
- def GetPrizeMoneyList(self): return self.attrTuple[8] # 奖励货币列表 list
- def GetResetLimitTimes(self): return self.attrTuple[9] # 至少抽几次可重置 BYTE
- def GetResetCountMax(self): return self.attrTuple[10] # 可重置次数 BYTE
- def GetTemplateIDInfo(self): return self.attrTuple[11] # 奖池模板信息 {(世界等级A,B):[模板编号列表, ...], ...} dict
-
-# 天帝礼包奖池表
-class IPY_ActGodGiftAward():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetTemplateID(self): return self.attrTuple[0] # 奖池模板编号 DWORD
- def GetAwardLibType(self): return self.attrTuple[1] # 奖励库类型 BYTE
- def GetUnlockAwardLimitTimes(self): return self.attrTuple[2] # 抽X次后可产出本库 BYTE
- def GetChooseItemCount(self): return self.attrTuple[3] # 选择个数 BYTE
- def GetLibItemInfo(self): return self.attrTuple[4] # 物品编号对应物品信息 {物品编号:[物品ID,个数,是否拍品,可选次数], ...} 0不限次数 dict
- def GetNotifyItemNumList(self): return self.attrTuple[5] # 需要广播的编号列表 list
-
-# 多倍修行点活动时间表
-class IPY_ActRealmPoint():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetMultiple(self): return self.attrTuple[1] # 倍数 WORD
- def GetLVLimit(self): return self.attrTuple[2] # 限制等级 WORD
- def GetPointLimit(self): return self.attrTuple[3] # 限制额外修行点 DWORD
-
# 宗门试炼兑换表
class IPY_TrialExchange():
@@ -4112,29 +3748,6 @@
def GetCostItemID(self): return self.attrTuple[4] # 消耗物品ID DWORD
def GetCostItemCount(self): return self.attrTuple[5] # 消耗物品个数 DWORD
-# 仙界盛典-全民来嗨表
-class IPY_AllPeopleParty():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetID(self): return self.attrTuple[0] # ID BYTE
- def GetTotalTimes(self): return self.attrTuple[1] # 总次数 WORD
- def GetAddPoint(self): return self.attrTuple[2] # 每完成次数获得嗨点 WORD
-
-# 仙界盛典-全民来嗨奖励表
-class IPY_AllPeoplePartyAward():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetWorldLvNum(self): return self.attrTuple[0] # 世界等级档 BYTE
- def GetIndex(self): return self.attrTuple[1] # 索引 DWORD
- def GetNeedPoint(self): return self.attrTuple[2] # 需要点数 DWORD
- def GetAward(self): return self.attrTuple[3] # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...} dict
-
# 地图NPC配置表-挂机点
class IPY_MapEventPoint():
@@ -4147,57 +3760,6 @@
def GetLowLV(self): return self.attrTuple[2] # 推荐最低等级 WORD
def GetHighestLV(self): return self.attrTuple[3] # 推荐最高等级 WORD
def GetDefense(self): return self.attrTuple[4] # 推荐防御 DWORD
-
-# 限时抢购表
-class IPY_ActFlashSale():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
- def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
- def GetStartTimeList(self): return self.attrTuple[3] # 开启时间列表, 支持多个时段 list
- def GetEndTimeList(self): return self.attrTuple[4] # 结束时间列表, 支持多个时段 list
- def GetAdvanceMinutes(self): return self.attrTuple[5] # 前端提前X分钟展示活动 WORD
- def GetLVLimit(self): return self.attrTuple[6] # 限制等级 WORD
- def GetIsDayReset(self): return self.attrTuple[7] # 是否每天重置 BYTE
- def GetShopTypeList(self): return self.attrTuple[8] # 商店类型列表 dict
- def GetMailKey(self): return self.attrTuple[9] # 活动更新时发送邮件key char
- def GetMailItemPrize(self): return self.attrTuple[10] # 活动更新时发送邮件奖励物品 list
-
-# 许愿池活动时间表
-class IPY_ActWishingWell():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
- def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
- def GetIsDayReset(self): return self.attrTuple[3] # 是否每天重置 BYTE
- def GetResetType(self): return self.attrTuple[4] # 重置类型,0-0点重置;1-5点重置 BYTE
- def GetLVLimit(self): return self.attrTuple[5] # 限制等级 WORD
- def GetTemplateID(self): return self.attrTuple[6] # 模板编号 BYTE
-
-# 许愿池库模板表
-class IPY_WishingWell():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetTemplateID(self): return self.attrTuple[0] # 模板ID BYTE
- def GetIsFree(self): return self.attrTuple[1] # 是否免费库 BYTE
- def GetWorldLVLimit(self): return self.attrTuple[2] # 世界等级范围 list
- def GetItemID(self): return self.attrTuple[3] # 物品ID DWORD
- def GetItemCnt(self): return self.attrTuple[4] # 物品数量 WORD
- def GetIsBind(self): return self.attrTuple[5] # 是否绑定 BYTE
- def GetWeight(self): return self.attrTuple[6] # 权重 DWORD
- def GetMark(self): return self.attrTuple[7] # 排序用标识 DWORD
- def GetRare(self): return self.attrTuple[8] # 珍稀值 BYTE
# 表情包表
class IPY_EmojiPack():
@@ -4239,19 +3801,6 @@
def GetAwardItem(self): return self.attrTuple[3] # 返利物品信息列表 {职业:[(物品ID,个数,是否绑定),...]} dict
def GetNotifyKey(self): return self.attrTuple[4] # 全服广播key,默认两个参数(玩家名, 档位额度) char
-# 成长必买活动表
-class IPY_ActGrowupBuy():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
- def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
- def GetLVLimit(self): return self.attrTuple[3] # 限制等级 WORD
- def GetCTGIDGroupList(self): return self.attrTuple[4] # 充值编号组列表 [[ctgID, ...], ...] list
-
# 多日连充活动表
class IPY_ActManyDayRecharge():
@@ -4278,29 +3827,6 @@
def GetAwardIndex(self): return self.attrTuple[3] # 奖励索引 BYTE
def GetAwardItemInfo(self): return self.attrTuple[4] # 奖励物品信息 {世界等级范围:[[物品ID,个数,是否拍品], ...]} dict
def GetNotifyKey(self): return self.attrTuple[5] # 广播 char
-
-# 转盘活动表
-class IPY_ActTurntable():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
- def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
- def GetLVLimit(self): return self.attrTuple[3] # 限制等级 WORD
- def GetIsDayReset(self): return self.attrTuple[4] # 是否每天重置 BYTE
- def GetCTGTypeEffValue(self): return self.attrTuple[5] # 充值有效类型值 BYTE
- def GetCTGPrizeList(self): return self.attrTuple[6] # 累计充值奖励次数 list
- def GetUseMoneyType(self): return self.attrTuple[7] # 累计消费货币类型 BYTE
- def GetUseMoneyPrizeList(self): return self.attrTuple[8] # 累计消费X货币奖励次数 list
- def GetLibChooseCountList(self): return self.attrTuple[9] # 各道具库选择个数 list
- def GetSuperItemLimitRule(self): return self.attrTuple[10] # 终极库产出万分率|至少X次后可产出 list
- def GetCommItemLib(self): return self.attrTuple[11] # 普通道具库 {(世界等级A,世界等级B):[[可选物品ID, 个数, 是否拍品], ...], ...} dict
- def GetGoodItemLib(self): return self.attrTuple[12] # 极品道具库 {(世界等级A,世界等级B):[[可选物品ID, 个数, 是否拍品], ...], ...} dict
- def GetSuperItemLib(self): return self.attrTuple[13] # 超级道具库 {(世界等级A,世界等级B):[[可选物品ID, 个数, 是否拍品], ...], ...} dict
- def GetWorldNotifyKey(self): return self.attrTuple[14] # 好物品全服广播mark,极品及超级道具默认全服广播 char
# 单笔累充活动表
class IPY_ActSingleRecharge():
@@ -4454,20 +3980,6 @@
def GetPosX(self): return self.attrTuple[4] # 坐标X WORD
def GetPosY(self): return self.attrTuple[5] # 坐标Y WORD
-# 运势活动时间表
-class IPY_ActYunshi():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
- def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
- def GetLVLimit(self): return self.attrTuple[3] # 限制等级 WORD
- def GetResetType(self): return self.attrTuple[4] # 重置类型,0-0点重置;1-5点重置 BYTE
- def GetTreasureType(self): return self.attrTuple[5] # 商城类型 DWORD
-
# 轮回殿活动时间表
class IPY_ActLunhuidian():
@@ -4582,58 +4094,6 @@
def GetDayNum(self): return self.attrTuple[1] # 第X天从1开始 BYTE
def GetLoginAwardItemList(self): return self.attrTuple[2] # 奖励列表[[物品ID,个数,是否拍品], ...] list
def GetLoginAwardItemListEx(self): return self.attrTuple[3] # 扩展奖励列表[[物品ID,个数,是否拍品], ...] list
-
-# 新仙界盛典-全民来嗨表
-class IPY_NewAllPeopleParty():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetID(self): return self.attrTuple[0] # ID BYTE
- def GetTotalTimes(self): return self.attrTuple[1] # 总次数 WORD
- def GetAddPoint(self): return self.attrTuple[2] # 每完成次数获得嗨点 WORD
-
-# 新仙界盛典-全民来嗨奖励表
-class IPY_NewAllPeoplePartyAward():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetWorldLvNum(self): return self.attrTuple[0] # 世界等级档 BYTE
- def GetIndex(self): return self.attrTuple[1] # 索引 DWORD
- def GetNeedPoint(self): return self.attrTuple[2] # 需要点数 DWORD
- def GetAward(self): return self.attrTuple[3] # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...} dict
-
-# 幸运鉴宝活动时间表
-class IPY_ActLuckyTreasure():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
- def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
- def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
- def GetResetType(self): return self.attrTuple[3] # 重置类型,0-0点重置;1-5点重置 BYTE
- def GetLVLimit(self): return self.attrTuple[4] # 限制等级 WORD
- def GetTemplateID(self): return self.attrTuple[5] # 模板编号 BYTE
- def GetLuckyPoint(self): return self.attrTuple[6] # 总幸运值 WORD
-
-# 幸运鉴宝库模板表
-class IPY_LuckyTreasureTemplate():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetTemplateID(self): return self.attrTuple[0] # 模板ID BYTE
- def GetWorldLVLimit(self): return self.attrTuple[1] # 世界等级范围 list
- def GetItemID(self): return self.attrTuple[2] # 物品ID DWORD
- def GetItemCnt(self): return self.attrTuple[3] # 物品数量 WORD
- def GetIsBind(self): return self.attrTuple[4] # 是否绑定 BYTE
- def GetWeight(self): return self.attrTuple[5] # 权重 DWORD
# 装备位背包索引映射表
class IPY_EquipPlaceIndexMap():
@@ -5175,7 +4635,6 @@
self.__LoadFileData("VIPAward", onlyCheck)
self.__LoadFileData("VipPrivilege", onlyCheck)
self.__LoadFileData("Store", onlyCheck)
- self.__LoadFileData("ActSpringSale", onlyCheck)
self.__LoadFileData("DailyTask", onlyCheck)
self.__LoadFileData("DailyLivenessReward", onlyCheck)
self.__LoadFileData("BOSSInfo", onlyCheck)
@@ -5194,12 +4653,6 @@
self.__LoadFileData("TreasureHouse", onlyCheck)
self.__LoadFileData("TreasureItemLib", onlyCheck)
self.__LoadFileData("TreasureCntAward", onlyCheck)
- self.__LoadFileData("FreeGoods", onlyCheck)
- self.__LoadFileData("ActFlashGiftbag", onlyCheck)
- self.__LoadFileData("FlashGiftbag", onlyCheck)
- self.__LoadFileData("ActDailyGiftbag", onlyCheck)
- self.__LoadFileData("DailyGiftbag", onlyCheck)
- self.__LoadFileData("ActExpRate", onlyCheck)
self.__LoadFileData("ActBuyOne", onlyCheck)
self.__LoadFileData("ActBuyOneTemplate", onlyCheck)
self.__LoadFileData("ActFamilyCTGAssist", onlyCheck)
@@ -5208,23 +4661,13 @@
self.__LoadFileData("CollectWordsExchange", onlyCheck)
self.__LoadFileData("ActLianqiBillTemp", onlyCheck)
self.__LoadFileData("CrossActFamilyGCZSQ", onlyCheck)
- self.__LoadFileData("ActGodGift", onlyCheck)
- self.__LoadFileData("ActGodGiftAward", onlyCheck)
- self.__LoadFileData("ActRealmPoint", onlyCheck)
self.__LoadFileData("TrialExchange", onlyCheck)
- self.__LoadFileData("AllPeopleParty", onlyCheck)
- self.__LoadFileData("AllPeoplePartyAward", onlyCheck)
self.__LoadFileData("MapEventPoint", onlyCheck)
- self.__LoadFileData("ActFlashSale", onlyCheck)
- self.__LoadFileData("ActWishingWell", onlyCheck)
- self.__LoadFileData("WishingWell", onlyCheck)
self.__LoadFileData("EmojiPack", onlyCheck)
self.__LoadFileData("ActTotalRecharge", onlyCheck)
self.__LoadFileData("TotalRechargeTemplate", onlyCheck)
- self.__LoadFileData("ActGrowupBuy", onlyCheck)
self.__LoadFileData("ActManyDayRecharge", onlyCheck)
self.__LoadFileData("ActManyDayRechargeAward", onlyCheck)
- self.__LoadFileData("ActTurntable", onlyCheck)
self.__LoadFileData("ActSingleRecharge", onlyCheck)
self.__LoadFileData("ActSingleRechargeAward", onlyCheck)
self.__LoadFileData("IceLodeStarAward", onlyCheck)
@@ -5237,7 +4680,6 @@
self.__LoadFileData("CrossPenglaiZoneMap", onlyCheck)
self.__LoadFileData("CrossDemonLandZoneMap", onlyCheck)
self.__LoadFileData("CrossFamilyFlagwarZoneMap", onlyCheck)
- self.__LoadFileData("ActYunshi", onlyCheck)
self.__LoadFileData("ActLunhuidian", onlyCheck)
self.__LoadFileData("ActLunhuidianAward", onlyCheck)
self.__LoadFileData("ActBuyCountGift", onlyCheck)
@@ -5245,10 +4687,6 @@
self.__LoadFileData("ActTaskTemp", onlyCheck)
self.__LoadFileData("ActLoginNew", onlyCheck)
self.__LoadFileData("ActLoginNewAward", onlyCheck)
- self.__LoadFileData("NewAllPeopleParty", onlyCheck)
- self.__LoadFileData("NewAllPeoplePartyAward", onlyCheck)
- self.__LoadFileData("ActLuckyTreasure", onlyCheck)
- self.__LoadFileData("LuckyTreasureTemplate", onlyCheck)
self.__LoadFileData("EquipPlaceIndexMap", onlyCheck)
self.__LoadFileData("EquipShenAttr", onlyCheck)
self.__LoadFileData("EquipShenEvolve", onlyCheck)
@@ -6170,13 +5608,6 @@
self.CheckLoadData("Store")
return self.ipyStoreCache[index]
- def GetActSpringSaleCount(self):
- self.CheckLoadData("ActSpringSale")
- return self.ipyActSpringSaleLen
- def GetActSpringSaleByIndex(self, index):
- self.CheckLoadData("ActSpringSale")
- return self.ipyActSpringSaleCache[index]
-
def GetDailyTaskCount(self):
self.CheckLoadData("DailyTask")
return self.ipyDailyTaskLen
@@ -6303,48 +5734,6 @@
self.CheckLoadData("TreasureCntAward")
return self.ipyTreasureCntAwardCache[index]
- def GetFreeGoodsCount(self):
- self.CheckLoadData("FreeGoods")
- return self.ipyFreeGoodsLen
- def GetFreeGoodsByIndex(self, index):
- self.CheckLoadData("FreeGoods")
- return self.ipyFreeGoodsCache[index]
-
- def GetActFlashGiftbagCount(self):
- self.CheckLoadData("ActFlashGiftbag")
- return self.ipyActFlashGiftbagLen
- def GetActFlashGiftbagByIndex(self, index):
- self.CheckLoadData("ActFlashGiftbag")
- return self.ipyActFlashGiftbagCache[index]
-
- def GetFlashGiftbagCount(self):
- self.CheckLoadData("FlashGiftbag")
- return self.ipyFlashGiftbagLen
- def GetFlashGiftbagByIndex(self, index):
- self.CheckLoadData("FlashGiftbag")
- return self.ipyFlashGiftbagCache[index]
-
- def GetActDailyGiftbagCount(self):
- self.CheckLoadData("ActDailyGiftbag")
- return self.ipyActDailyGiftbagLen
- def GetActDailyGiftbagByIndex(self, index):
- self.CheckLoadData("ActDailyGiftbag")
- return self.ipyActDailyGiftbagCache[index]
-
- def GetDailyGiftbagCount(self):
- self.CheckLoadData("DailyGiftbag")
- return self.ipyDailyGiftbagLen
- def GetDailyGiftbagByIndex(self, index):
- self.CheckLoadData("DailyGiftbag")
- return self.ipyDailyGiftbagCache[index]
-
- def GetActExpRateCount(self):
- self.CheckLoadData("ActExpRate")
- return self.ipyActExpRateLen
- def GetActExpRateByIndex(self, index):
- self.CheckLoadData("ActExpRate")
- return self.ipyActExpRateCache[index]
-
def GetActBuyOneCount(self):
self.CheckLoadData("ActBuyOne")
return self.ipyActBuyOneLen
@@ -6401,27 +5790,6 @@
self.CheckLoadData("CrossActFamilyGCZSQ")
return self.ipyCrossActFamilyGCZSQCache[index]
- def GetActGodGiftCount(self):
- self.CheckLoadData("ActGodGift")
- return self.ipyActGodGiftLen
- def GetActGodGiftByIndex(self, index):
- self.CheckLoadData("ActGodGift")
- return self.ipyActGodGiftCache[index]
-
- def GetActGodGiftAwardCount(self):
- self.CheckLoadData("ActGodGiftAward")
- return self.ipyActGodGiftAwardLen
- def GetActGodGiftAwardByIndex(self, index):
- self.CheckLoadData("ActGodGiftAward")
- return self.ipyActGodGiftAwardCache[index]
-
- def GetActRealmPointCount(self):
- self.CheckLoadData("ActRealmPoint")
- return self.ipyActRealmPointLen
- def GetActRealmPointByIndex(self, index):
- self.CheckLoadData("ActRealmPoint")
- return self.ipyActRealmPointCache[index]
-
def GetTrialExchangeCount(self):
self.CheckLoadData("TrialExchange")
return self.ipyTrialExchangeLen
@@ -6429,47 +5797,12 @@
self.CheckLoadData("TrialExchange")
return self.ipyTrialExchangeCache[index]
- def GetAllPeoplePartyCount(self):
- self.CheckLoadData("AllPeopleParty")
- return self.ipyAllPeoplePartyLen
- def GetAllPeoplePartyByIndex(self, index):
- self.CheckLoadData("AllPeopleParty")
- return self.ipyAllPeoplePartyCache[index]
-
- def GetAllPeoplePartyAwardCount(self):
- self.CheckLoadData("AllPeoplePartyAward")
- return self.ipyAllPeoplePartyAwardLen
- def GetAllPeoplePartyAwardByIndex(self, index):
- self.CheckLoadData("AllPeoplePartyAward")
- return self.ipyAllPeoplePartyAwardCache[index]
-
def GetMapEventPointCount(self):
self.CheckLoadData("MapEventPoint")
return self.ipyMapEventPointLen
def GetMapEventPointByIndex(self, index):
self.CheckLoadData("MapEventPoint")
return self.ipyMapEventPointCache[index]
-
- def GetActFlashSaleCount(self):
- self.CheckLoadData("ActFlashSale")
- return self.ipyActFlashSaleLen
- def GetActFlashSaleByIndex(self, index):
- self.CheckLoadData("ActFlashSale")
- return self.ipyActFlashSaleCache[index]
-
- def GetActWishingWellCount(self):
- self.CheckLoadData("ActWishingWell")
- return self.ipyActWishingWellLen
- def GetActWishingWellByIndex(self, index):
- self.CheckLoadData("ActWishingWell")
- return self.ipyActWishingWellCache[index]
-
- def GetWishingWellCount(self):
- self.CheckLoadData("WishingWell")
- return self.ipyWishingWellLen
- def GetWishingWellByIndex(self, index):
- self.CheckLoadData("WishingWell")
- return self.ipyWishingWellCache[index]
def GetEmojiPackCount(self):
self.CheckLoadData("EmojiPack")
@@ -6492,13 +5825,6 @@
self.CheckLoadData("TotalRechargeTemplate")
return self.ipyTotalRechargeTemplateCache[index]
- def GetActGrowupBuyCount(self):
- self.CheckLoadData("ActGrowupBuy")
- return self.ipyActGrowupBuyLen
- def GetActGrowupBuyByIndex(self, index):
- self.CheckLoadData("ActGrowupBuy")
- return self.ipyActGrowupBuyCache[index]
-
def GetActManyDayRechargeCount(self):
self.CheckLoadData("ActManyDayRecharge")
return self.ipyActManyDayRechargeLen
@@ -6512,13 +5838,6 @@
def GetActManyDayRechargeAwardByIndex(self, index):
self.CheckLoadData("ActManyDayRechargeAward")
return self.ipyActManyDayRechargeAwardCache[index]
-
- def GetActTurntableCount(self):
- self.CheckLoadData("ActTurntable")
- return self.ipyActTurntableLen
- def GetActTurntableByIndex(self, index):
- self.CheckLoadData("ActTurntable")
- return self.ipyActTurntableCache[index]
def GetActSingleRechargeCount(self):
self.CheckLoadData("ActSingleRecharge")
@@ -6604,13 +5923,6 @@
self.CheckLoadData("CrossFamilyFlagwarZoneMap")
return self.ipyCrossFamilyFlagwarZoneMapCache[index]
- def GetActYunshiCount(self):
- self.CheckLoadData("ActYunshi")
- return self.ipyActYunshiLen
- def GetActYunshiByIndex(self, index):
- self.CheckLoadData("ActYunshi")
- return self.ipyActYunshiCache[index]
-
def GetActLunhuidianCount(self):
self.CheckLoadData("ActLunhuidian")
return self.ipyActLunhuidianLen
@@ -6659,34 +5971,6 @@
def GetActLoginNewAwardByIndex(self, index):
self.CheckLoadData("ActLoginNewAward")
return self.ipyActLoginNewAwardCache[index]
-
- def GetNewAllPeoplePartyCount(self):
- self.CheckLoadData("NewAllPeopleParty")
- return self.ipyNewAllPeoplePartyLen
- def GetNewAllPeoplePartyByIndex(self, index):
- self.CheckLoadData("NewAllPeopleParty")
- return self.ipyNewAllPeoplePartyCache[index]
-
- def GetNewAllPeoplePartyAwardCount(self):
- self.CheckLoadData("NewAllPeoplePartyAward")
- return self.ipyNewAllPeoplePartyAwardLen
- def GetNewAllPeoplePartyAwardByIndex(self, index):
- self.CheckLoadData("NewAllPeoplePartyAward")
- return self.ipyNewAllPeoplePartyAwardCache[index]
-
- def GetActLuckyTreasureCount(self):
- self.CheckLoadData("ActLuckyTreasure")
- return self.ipyActLuckyTreasureLen
- def GetActLuckyTreasureByIndex(self, index):
- self.CheckLoadData("ActLuckyTreasure")
- return self.ipyActLuckyTreasureCache[index]
-
- def GetLuckyTreasureTemplateCount(self):
- self.CheckLoadData("LuckyTreasureTemplate")
- return self.ipyLuckyTreasureTemplateLen
- def GetLuckyTreasureTemplateByIndex(self, index):
- self.CheckLoadData("LuckyTreasureTemplate")
- return self.ipyLuckyTreasureTemplateCache[index]
def GetEquipPlaceIndexMapCount(self):
self.CheckLoadData("EquipPlaceIndexMap")
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 3731bd0..2764be9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -42,31 +42,21 @@
import PlayerGoldInvest
import PlayerActivity
import FBCommon
-import PlayerWishingWell
import PlayerSuccess
-import PlayerFreeGoods
import GameFuncComm
import PlayerFamilyTaofa
import PlayerTreasure
import IpyGameDataPY
import EventReport
import PassiveBuffEffMng
-import PlayerFlashSale
-import PlayerFlashGiftbag
-import PlayerDailyGiftbag
import PlayerActBuyOne
-import PlayerActGrowupBuy
import PlayerActCollectWords
import PlayerActTotalRecharge
import PlayerActLianqi
-import PlayerActGodGift
import PlayerActFamilyCTGAssist
import PlayerActManyDayRecharge
import PlayerActSingleRecharge
-import PlayerSpringSale
-import PlayerLuckyTreasure
import PlayerFuncSysPrivilege
-import PlayerActTurntable
import OpenServerActivity
import ChNetSendPack
import PlayerArena
@@ -94,7 +84,6 @@
import PlayerActBuyCountGift
import PlayerActLunhuidian
import PlayerActFamilyGCZ
-import PlayerActYunshi
import PlayerActTask
import PlayerMail
import DBDataMgr
@@ -537,16 +526,6 @@
#NotifyPlayerBasePoint(curPlayer)
#累计充值
PlayerActTotalRecharge.OnPlayerLogin(curPlayer)
- #成长必买
- PlayerActGrowupBuy.OnPlayerLogin(curPlayer)
- #限时特惠
- PlayerSpringSale.OnPlayerLogin(curPlayer)
- #限时礼包
- PlayerFlashGiftbag.OnPlayerLogin(curPlayer)
- #每日礼包
- PlayerDailyGiftbag.OnPlayerLogin(curPlayer)
- #限时抢购
- PlayerFlashSale.OnPlayerLogin(curPlayer)
#买一送多活动
PlayerActBuyOne.OnPlayerLogin(curPlayer)
#仙盟充值互助
@@ -558,36 +537,24 @@
FunctionNPCCommon.ShopItemOnLogin(curPlayer)
# 通知设置的被动功法
#PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
- # 极品白拿
- PlayerFreeGoods.OnLogin(curPlayer)
# 购买次数礼包活动
PlayerActBuyCountGift.OnPlayerLogin(curPlayer)
# 任务活动
PlayerActTask.OnPlayerLogin(curPlayer)
- # 运势活动
- PlayerActYunshi.OnPlayerLogin(curPlayer)
# 登录活动
PlayerActLoginNew.OnPlayerLogin(curPlayer)
# 炼器活动
PlayerActLianqi.OnPlayerLogin(curPlayer)
- # 天帝礼包活动
- PlayerActGodGift.OnPlayerLogin(curPlayer)
# 多日连充活动
PlayerActManyDayRecharge.OnPlayerLogin(curPlayer)
# 单笔累充活动
PlayerActSingleRecharge.OnPlayerLogin(curPlayer)
- # 转盘活动
- PlayerActTurntable.OnPlayerLogin(curPlayer)
# 分支下载奖励记录通知
SyncPackDownloadAward(curPlayer)
# 登录触发功能开启(老号处理)
GameFuncComm.DoFuncOpenLogic(curPlayer)
# 神兽
PlayerDogz.OnPlayerLogin(curPlayer)
- # 许愿池
- PlayerWishingWell.OnLogin(curPlayer)
- #幸运鉴宝
- PlayerLuckyTreasure.OnLogin(curPlayer)
# 小助手
SyncLittleHelper(curPlayer)
PlayerFB.OnLogin(curPlayer)
@@ -3386,16 +3353,10 @@
elif rewardType == ChConfig.Def_RewardType_LunhuidianAward:
PlayerActLunhuidian.GetLunhuidianAward(curPlayer, dataEx, dataExStr)
-
- # 每日免费直购礼包
- elif rewardType == ChConfig.Def_RewardType_DayFreeGoldGift:
- PlayerDailyGiftbag.OnGetDailyFreeGiftbag(curPlayer)
+
# 首充礼包奖励
elif rewardType == ChConfig.Def_RewardType_FirstCharge:
PlayerGoldGift.GetPlayerFirstCharge(curPlayer, dataEx, dataExStr)
- # 领取极品白拿
- elif rewardType == ChConfig.Def_RewardType_FreeGoods:
- PlayerFreeGoods.OnGetFreeGoods(curPlayer, dataEx)
# 领取累计充值奖励
elif rewardType == ChConfig.Def_RewardType_TotalRecharge:
PlayerActTotalRecharge.OnGetTotalRechargeAward(curPlayer, dataEx, dataExStr)
@@ -3405,9 +3366,6 @@
# 领取单笔累充领取
elif rewardType == ChConfig.Def_RewardType_SingleRecharge:
PlayerActSingleRecharge.OnGetSingleRechargeAward(curPlayer, dataEx, dataExStr)
- # 领取许愿池奖励
- elif rewardType == ChConfig.Def_RewardType_WishingWell:
- PlayerWishingWell.DoGetWishingAward(curPlayer)
# 领取登录活动奖励
elif rewardType == ChConfig.Def_RewardType_ActLoginAwardNew:
PlayerActLoginNew.OnGetActLoginAward(curPlayer, dataEx, dataExStr)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGodGift.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGodGift.py
deleted file mode 100644
index 5807545..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGodGift.py
+++ /dev/null
@@ -1,479 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerActGodGift
-#
-# @todo:天帝礼包活动
-# @author hxp
-# @date 2022-01-14
-# @version 1.0
-#
-# 详细描述: 天帝礼包活动
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2022-01-14 15:00"""
-#-------------------------------------------------------------------------------
-
-import PyGameData
-import ShareDefine
-import PlayerControl
-import IpyGameDataPY
-import ItemControler
-import ChPyNetSendPack
-import NetPackCommon
-import IPY_GameWorld
-import ItemCommon
-import GameWorld
-import ChConfig
-
-def OnPlayerLogin(curPlayer):
-
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_GodGift, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- __CheckPlayerGodGiftAction(curPlayer, actNum)
-
- return
-
-def RefreshGodGiftActionInfo(actNum):
- ## 收到GameServer同步的活动信息,刷新活动信息
- playerManager = GameWorld.GetPlayerManager()
- for index in xrange(playerManager.GetPlayerCount()):
- curPlayer = playerManager.GetPlayerByIndex(index)
- if not GameWorld.IsNormalPlayer(curPlayer):
- continue
- __CheckPlayerGodGiftAction(curPlayer, actNum)
- return
-
-def __CheckPlayerGodGiftAction(curPlayer, actNum):
- ## 检查玩家活动数据信息
-
- playerID = curPlayer.GetPlayerID()
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_GodGift, actNum)
- actID = actInfo.get(ShareDefine.ActKey_ID, 0)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
-
- playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodGiftID % actNum) # 玩家身上的活动ID
-
- # 活动ID 相同的话不处理
- if actID == playerActID:
- GameWorld.DebugLog("天帝礼包活动ID不变,不处理!actNum=%s,actID=%s" % (actNum, actID), playerID)
- else:
- actWorldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
- templateID = __GetActTemplateID(actInfo)
- GameWorld.DebugLog("天帝礼包重置! actNum=%s,actID=%s,playerActID=%s,state=%s,cfgID=%s,actWorldLV=%s,templateID=%s"
- % (actNum, actID, playerActID, state, cfgID, actWorldLV, templateID), playerID)
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodGiftID % actNum, actID)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodGiftWorldLV % actNum, actWorldLV)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodGiftResetCount % actNum, 0)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodGiftAwardPool % actNum, 0)
-
- awardIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActGodGiftAward", templateID) if templateID else []
- if awardIpyDataList:
- for awardIpyData in awardIpyDataList:
- libType = awardIpyData.GetAwardLibType()
- libItemInfoDict = awardIpyData.GetLibItemInfo()
- for num in libItemInfoDict.keys():
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodGiftItemState % (actNum, libType, num), 0)
-
- if state:
- Sync_GodGifActionInfo(curPlayer, actNum)
- Sync_GodGiftPlayerInfo(curPlayer, actNum)
-
- return True
-
-def __GetActTemplateID(actInfo):
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- dayIndex = actInfo.get(ShareDefine.ActKey_DayIndex, 0)
- worldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
- if cfgID == None or dayIndex == None:
- return 0
- ipyData = IpyGameDataPY.GetIpyGameData("ActGodGift", cfgID)
- if not ipyData:
- return 0
- templateIDInfo = ipyData.GetTemplateIDInfo()
- templateIDList = GameWorld.GetDictValueByRangeKey(templateIDInfo, worldLV)
- if not templateIDList:
- return 0
- templateID = templateIDList[-1] if dayIndex >= len(templateIDList) else templateIDList[dayIndex]
- return templateID
-
-def GetGodGiftItemState(curPlayer, actNum, libType, num):
- itemState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodGiftItemState % (actNum, libType, num))
- chooseTimes = itemState / 100
- isChoose = (itemState - chooseTimes * 100) / 10
- isGot = itemState % 10
- return chooseTimes, isChoose, isGot
-
-def SetGodGiftItemState(curPlayer, actNum, libType, num, chooseTimes, isChoose, isGot):
- updItemState = chooseTimes * 100 + isChoose * 10 + isGot
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodGiftItemState % (actNum, libType, num), updItemState)
- return updItemState
-
-
-#// AA 20 天帝礼包选择物品 #tagCMActGodGiftChooseItem
-#
-#struct tagCMActGodGiftChooseItemInfo
-#{
-# BYTE ItemLibType; //物品库类型
-# BYTE Count; //选择个数
-# BYTE ItemNumList[Count]; //选择物品编号列表
-#};
-#
-#struct tagCMActGodGiftChooseItem
-#{
-# tagHead Head;
-# BYTE ActNum; //活动编号
-# BYTE ChooseLibCount; //选择库个数
-# tagCMActGodGiftChooseItemInfo ChooseItemList[ChooseLibCount]; //选择库物品信息列表
-#};
-def OnActGodGiftChooseItem(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- playerID = curPlayer.GetPlayerID()
- actNum = clientData.ActNum
- chooseItemNumDict = {info.ItemLibType:info.ItemNumList for info in clientData.ChooseItemList}
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_GodGift, actNum)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- templateID = __GetActTemplateID(actInfo)
- GameWorld.DebugLog("天帝礼包选择物品: actNum=%s,state=%s,cfgID=%s,templateID=%s,chooseItemNumDict=%s"
- % (actNum, state, cfgID, templateID, chooseItemNumDict), playerID)
- if not state or not cfgID or not templateID:
- GameWorld.DebugLog("天帝礼包活动状态异常!", playerID)
- return
-
- if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodGiftAwardPool % actNum):
- GameWorld.DebugLog("天帝礼包奖池已经选择完毕,无法重复选择!", playerID)
- return
-
- awardIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActGodGiftAward", templateID) if templateID else []
- if not awardIpyDataList:
- return
-
- chooseOKLibList = []
- for awardIpyData in awardIpyDataList:
- libType = awardIpyData.GetAwardLibType()
- chooseItemNumList = chooseItemNumDict.get(libType, [])
-
- libItemInfoDict = awardIpyData.GetLibItemInfo()
- needChooseCount = awardIpyData.GetChooseItemCount()
- hadChooseNumList, canChooseNumList = [], []
- for num, itemInfo in libItemInfoDict.items():
- canChooseTimes = itemInfo[4]
- chooseTimes, isChoose, _ = GetGodGiftItemState(curPlayer, actNum, libType, num)
- if isChoose:
- hadChooseNumList.append(num)
- elif not canChooseTimes or chooseTimes < canChooseTimes:
- canChooseNumList.append(num)
-
- GameWorld.DebugLog("天帝礼包选择库奖品! libType=%s,chooseItemNumList=%s" % (libType, chooseItemNumList), playerID)
- GameWorld.DebugLog(" needChooseCount=%s,hadChooseNumList=%s,canChooseNumList=%s" % (needChooseCount, hadChooseNumList, str(canChooseNumList)), playerID)
- hadChooseCount = len(hadChooseNumList)
- if hadChooseCount >= needChooseCount:
- GameWorld.DebugLog(" 该库已超过选择完毕! libType=%s" % libType, playerID)
- chooseOKLibList.append(libType)
- continue
-
- for num in chooseItemNumList:
- if num in hadChooseNumList:
- GameWorld.DebugLog(" 已被选择! libType=%s,num=%s" % (libType, num), playerID)
- continue
- if num not in canChooseNumList:
- GameWorld.DebugLog(" 不可选择! libType=%s,num=%s not in %s" % (libType, num, canChooseNumList), playerID)
- continue
-
- chooseTimes, isChoose, isGot = GetGodGiftItemState(curPlayer, actNum, libType, num)
- chooseTimes += 1
- isChoose = 1
- updItemState = SetGodGiftItemState(curPlayer, actNum, libType, num, chooseTimes, isChoose, isGot)
- GameWorld.DebugLog(" 选择奖品! libType=%s,num=%s,chooseTimes=%s,isChoose=%s,isGot=%s,updItemState=%s"
- % (libType, num, chooseTimes, isChoose, isGot, updItemState), playerID)
-
- canChooseNumList.remove(num)
- hadChooseCount += 1
- if hadChooseCount >= needChooseCount or not canChooseNumList:
- chooseOKLibList.append(libType)
- break
-
- if chooseOKLibList and len(chooseOKLibList) == len(awardIpyDataList):
- GameWorld.DebugLog("天帝礼包生成奖池OK!", playerID)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodGiftAwardPool % actNum, 1)
- else:
- GameWorld.DebugLog("天帝礼包奖池未选择完毕! chooseOKLibList=%s" % chooseOKLibList, playerID)
-
- Sync_GodGifActionInfo(curPlayer, actNum)
- return
-
-#// AA 21 天帝礼包抽奖 #tagCMActGodGiftlottery
-#
-#struct tagCMActGodGiftlottery
-#{
-# tagHead Head;
-# BYTE ActNum; //活动编号
-#};
-def OnActGodGiftlottery(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- playerID = curPlayer.GetPlayerID()
- actNum = clientData.ActNum
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_GodGift, actNum)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- templateID = __GetActTemplateID(actInfo)
- GameWorld.DebugLog("天帝礼包活动抽奖: actNum=%s,state=%s,cfgID=%s,templateID=%s" % (actNum, state, cfgID, templateID), playerID)
- if not state or not cfgID or not templateID:
- GameWorld.DebugLog("天帝礼包活动状态异常!", playerID)
- return
-
- if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodGiftAwardPool % actNum):
- GameWorld.DebugLog("天帝礼包奖池未选择完毕,无法抽奖!", playerID)
- return
-
- ipyData = IpyGameDataPY.GetIpyGameData("ActGodGift", cfgID)
- if not ipyData:
- return
- CostMoneyType = ipyData.GetUseMoneyType()
- costMoneyValueList = ipyData.GetUseGoldList()
- PrizeMoneyType = ipyData.GetPrizeMoneyType()
- prizeMoneyValueList = ipyData.GetPrizeMoneyList()
-
- awardIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActGodGiftAward", templateID) if templateID else []
- if not awardIpyDataList:
- return
-
- gotAwardList = [] # 已抽奖品次数
- randItemWeightList = []
- for awardIpyData in awardIpyDataList:
- libType = awardIpyData.GetAwardLibType()
- libItemInfoDict = awardIpyData.GetLibItemInfo()
- notifyItemNumList = awardIpyData.GetNotifyItemNumList()
-
- for num, itemInfo in libItemInfoDict.items():
- weight, itemID, itemCount, isBind = itemInfo[:4]
- chooseTimes, isChoose, isGot = GetGodGiftItemState(curPlayer, actNum, libType, num)
- if isGot:
- gotAwardList.append([libType, num])
- continue
- if not isChoose:
- continue
- isNotify = num in notifyItemNumList
- randItemWeightList.append([weight, libType, num, itemID, itemCount, isBind, chooseTimes, isChoose, isGot, isNotify])
-
- if not randItemWeightList:
- GameWorld.DebugLog("本次奖池已抽完!", playerID)
- return
-
- awardCount = len(gotAwardList) # 已抽奖次数
-
- costMoneyValue = costMoneyValueList[awardCount] if awardCount < len(costMoneyValueList) else costMoneyValueList[-1]
- prizeMoneyValue = prizeMoneyValueList[awardCount] if awardCount < len(prizeMoneyValueList) else prizeMoneyValueList[-1]
-
- if not PlayerControl.HaveMoney(curPlayer, CostMoneyType, costMoneyValue):
- return
-
- if not ItemCommon.CheckPackHasSpace(curPlayer, IPY_GameWorld.rptItem, True):
- return
-
- GameWorld.DebugLog(" 已抽库,编号列表: awardCount=%s, %s" % (awardCount, gotAwardList), playerID)
- GameWorld.DebugLog(" costMoneyValue=%s,prizeMoneyValue=%s" % (costMoneyValue, prizeMoneyValue), playerID)
- GameWorld.DebugLog(" randItemWeightList=%s" % randItemWeightList, playerID)
- randItemInfo = GameWorld.GetResultByWeightList(randItemWeightList)
- if not randItemInfo:
- return
- libType, num, itemID, itemCount, isBind, chooseTimes, isChoose, isGot, isNotify = randItemInfo
- GameWorld.DebugLog(" 抽中: libType=%s,num=%s,itemID=%s,itemCount=%s,isBind=%s,chooseTimes=%s,isChoose=%s,isGot=%s"
- % (libType, num, itemID, itemCount, isBind, chooseTimes, isChoose, isGot), playerID)
-
- infoDict = {"actNum":actNum, "awardCount":awardCount}
- if not PlayerControl.PayMoney(curPlayer, CostMoneyType, costMoneyValue, ChConfig.Def_Cost_ActGodGift, infoDict):
- return
-
- isGot = 1
- updItemState = SetGodGiftItemState(curPlayer, actNum, libType, num, chooseTimes, isChoose, isGot)
- GameWorld.DebugLog(" 更新库编号物品状态: libType=%s,num=%s,updItemState=%s" % (libType, num, updItemState), playerID)
- Sync_GodGiftPlayerInfo(curPlayer, actNum)
-
- addDataDict = {"actNum":actNum, "awardCount":awardCount}
- PlayerControl.GiveMoney(curPlayer, PrizeMoneyType, prizeMoneyValue, ChConfig.Def_GiveMoney_ActGodGift, addDataDict)
-
- if ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem], event=["ActGodGift", False, {}]):
- if isNotify:
- PlayerControl.WorldNotify(0, "ActGodGiftNotify", [curPlayer.GetPlayerName(), itemID, itemCount])
-
- if len(randItemWeightList) == 1:
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodGiftAwardPool % actNum, 2)
- GameWorld.DebugLog(" 奖池已被抽完!", playerID)
-
- return
-
-#// AA 22 天帝礼包重置 #tagCMActGodGiftReset
-#
-#struct tagCMActGodGiftReset
-#{
-# tagHead Head;
-# BYTE ActNum; //活动编号
-#};
-def OnActGodGiftReset(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- playerID = curPlayer.GetPlayerID()
- actNum = clientData.ActNum
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_GodGift, actNum)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- templateID = __GetActTemplateID(actInfo)
- GameWorld.DebugLog("天帝礼包重置奖池: actNum=%s,state=%s,cfgID=%s,templateID=%s" % (actNum, state, cfgID, templateID), playerID)
- if not state or not cfgID or not templateID:
- GameWorld.DebugLog("天帝礼包活动状态异常!", playerID)
- return
-
- ipyData = IpyGameDataPY.GetIpyGameData("ActGodGift", cfgID)
- if not ipyData:
- return
- resetLimitTimes = ipyData.GetResetLimitTimes()
- resetCountMax = ipyData.GetResetCountMax()
-
- resetCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodGiftResetCount % actNum)
- if resetCount >= resetCountMax:
- GameWorld.DebugLog("天帝礼包已超过最大重置奖池次数! cfgID=%s,resetCount=%s >= %s" % (cfgID, resetCount, resetCountMax), playerID)
- return
-
- awardIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActGodGiftAward", templateID) if templateID else []
- if not awardIpyDataList:
- return
-
- if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodGiftAwardPool % actNum) != 2:
- awardCount = 0
- for awardIpyData in awardIpyDataList:
- libType = awardIpyData.GetAwardLibType()
- libItemInfoDict = awardIpyData.GetLibItemInfo()
- for num in libItemInfoDict.keys():
- _, _, isGot = GetGodGiftItemState(curPlayer, actNum, libType, num)
- if isGot:
- awardCount += 1
-
- if awardCount < resetLimitTimes:
- GameWorld.DebugLog("天帝礼包已抽奖次数不足,无法重置奖池! cfgID=%s,awardCount=%s < %s" % (cfgID, awardCount, resetLimitTimes), playerID)
- return
- else:
- GameWorld.DebugLog("奖池已抽完,重置时不需要判断次数!", playerID)
-
- # 重置奖池
- for awardIpyData in awardIpyDataList:
- libType = awardIpyData.GetAwardLibType()
- libItemInfoDict = awardIpyData.GetLibItemInfo()
- for num in libItemInfoDict.keys():
- chooseTimes, isChoose, isGot = GetGodGiftItemState(curPlayer, actNum, libType, num)
- if not isChoose and not isGot:
- continue
- isChoose, isGot = 0, 0
- updItemState = SetGodGiftItemState(curPlayer, actNum, libType, num, chooseTimes, isChoose, isGot)
- GameWorld.DebugLog(" 重置库奖品状态: libType=%s,num=%s,chooseTimes=%s,updItemState=%s"
- % (libType, num, chooseTimes, updItemState), playerID)
-
- updResetCount = resetCount + 1
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodGiftResetCount % actNum, updResetCount)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodGiftAwardPool % actNum, 0)
- GameWorld.DebugLog(" 重置奖池成功: updResetCount=%s" % updResetCount, playerID)
-
- Sync_GodGifActionInfo(curPlayer, actNum)
- Sync_GodGiftPlayerInfo(curPlayer, actNum)
- return
-
-def Sync_GodGifActionInfo(curPlayer, actNum):
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_GodGift, actNum)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not state or not cfgID:
- return
-
- templateID = __GetActTemplateID(actInfo)
- if not templateID:
- return
-
- ipyData = IpyGameDataPY.GetIpyGameData("ActGodGift", cfgID)
- if not ipyData:
- return 0
-
- startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData)
- clientPack = ChPyNetSendPack.tagMCActGodGiftInfo()
- clientPack.ActNum = actNum
- clientPack.StartDate = startDateStr
- clientPack.EndtDate = endDateStr
- clientPack.IsDayReset = ipyData.GetIsDayReset()
- clientPack.LimitLV = ipyData.GetLVLimit()
- clientPack.CostMoneyType = ipyData.GetUseMoneyType()
- clientPack.CostMoneyValueList = ipyData.GetUseGoldList()
- clientPack.CostMoneyValueCount = len(clientPack.CostMoneyValueList)
- clientPack.PrizeMoneyType = ipyData.GetPrizeMoneyType()
- clientPack.PrizeMoneyValueList = ipyData.GetPrizeMoneyList()
- clientPack.PrizeMoneyValueCount = len(clientPack.PrizeMoneyValueList)
- clientPack.ResetLimitTimes = ipyData.GetResetLimitTimes()
- clientPack.ResetCountMax = ipyData.GetResetCountMax()
- clientPack.ItemLibList = []
- awardIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActGodGiftAward", templateID) if templateID else []
- if awardIpyDataList:
- for awardIpyData in awardIpyDataList:
- libType = awardIpyData.GetAwardLibType()
- libItemInfoDict = awardIpyData.GetLibItemInfo()
- needChooseCount = awardIpyData.GetChooseItemCount()
-
- itemLib = ChPyNetSendPack.tagMCActGodGiftItemLib()
- itemLib.ItemLibType = libType
- itemLib.NeedChooseCount = needChooseCount
- itemLib.GodGiftItemList = []
- for num, itemInfo in libItemInfoDict.items():
- _, itemID, itemCount, isBind, canChooseTimes = itemInfo
- chooseTimes, isChoose, _ = GetGodGiftItemState(curPlayer, actNum, libType, num)
- item = ChPyNetSendPack.tagMCActGodGiftItem()
- item.ItemNum = num
- item.ItemID = itemID
- item.ItemCount = itemCount
- item.IsBind = isBind
- item.CanChooseTimes = canChooseTimes
- item.ChooseTimes = chooseTimes
- item.IsChoose = isChoose
- itemLib.GodGiftItemList.append(item)
-
- itemLib.GodGiftItemCount = len(itemLib.GodGiftItemList)
- clientPack.ItemLibList.append(itemLib)
-
- clientPack.ItemLibCount = len(clientPack.ItemLibList)
- clientPack.IsAwardPoolOK = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodGiftAwardPool % actNum)
- NetPackCommon.SendFakePack(curPlayer, clientPack)
- return
-
-def Sync_GodGiftPlayerInfo(curPlayer, actNum):
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_GodGift, actNum)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- if not state:
- return
-
- templateID = __GetActTemplateID(actInfo)
- if not templateID:
- return
-
- clientPack = ChPyNetSendPack.tagMCActGodGiftPlayerInfo()
- clientPack.ActNum = actNum
- clientPack.ResetCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodGiftResetCount % actNum)
- clientPack.AwardItemList = []
-
- awardIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActGodGiftAward", templateID) if templateID else []
- if awardIpyDataList:
- for awardIpyData in awardIpyDataList:
- libType = awardIpyData.GetAwardLibType()
- libItemInfoDict = awardIpyData.GetLibItemInfo()
- for num in libItemInfoDict.keys():
- _, _, isGot = GetGodGiftItemState(curPlayer, actNum, libType, num)
- if not isGot:
- continue
- awardItem = ChPyNetSendPack.tagMCActGodGiftAwardItem()
- awardItem.ItemLibType = libType
- awardItem.ItemNum = num
- clientPack.AwardItemList.append(awardItem)
-
- clientPack.AwardItemCount = len(clientPack.AwardItemList)
- NetPackCommon.SendFakePack(curPlayer, clientPack)
- return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGrowupBuy.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGrowupBuy.py
deleted file mode 100644
index 4e47cc6..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGrowupBuy.py
+++ /dev/null
@@ -1,188 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerActGrowupBuy
-#
-# @todo:运营活动 - 成长必买
-# @author hxp
-# @date 2020-11-23
-# @version 1.0
-#
-# 详细描述: 运营活动 - 成长必买
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2020-11-23 21:00"""
-#-------------------------------------------------------------------------------
-
-
-import PyGameData
-import ShareDefine
-import PlayerControl
-import IpyGameDataPY
-import ChPyNetSendPack
-import NetPackCommon
-import GameWorld
-import ChConfig
-
-def OnPlayerLogin(curPlayer):
- isReset = __CheckPlayerGrowupBuyAction(curPlayer)
- if not isReset:
- actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_GrowupBuy, {})
- # 活动中同步活动信息
- if actInfo.get(ShareDefine.ActKey_State):
- Sync_GrowupActionInfo(curPlayer)
- return
-
-def RefreshGrowupBuyActionInfo():
- ## 收到GameServer同步的活动信息,刷新活动信息
- playerManager = GameWorld.GetPlayerManager()
- for index in xrange(playerManager.GetPlayerCount()):
- curPlayer = playerManager.GetPlayerByIndex(index)
- if not GameWorld.IsNormalPlayer(curPlayer):
- continue
- __CheckPlayerGrowupBuyAction(curPlayer)
- return
-
-def __CheckPlayerGrowupBuyAction(curPlayer):
- ## 检查玩家充值返利活动数据信息
-
- playerID = curPlayer.GetPlayerID()
-
- actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_GrowupBuy, {})
- actID = actInfo.get(ShareDefine.ActKey_ID, 0)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
-
- playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GrowupBuyID) # 玩家身上的活动ID
-
- # 活动ID 相同的话不处理
- if actID == playerActID:
- GameWorld.DebugLog("成长必买活动ID不变,不处理!", curPlayer.GetPlayerID())
- return
- GameWorld.DebugLog("成长必买重置! actID=%s,playerActID=%s,state=%s" % (actID, playerActID, state), playerID)
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GrowupBuyID, actID)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GrowupBuyState, 0)
-
- Sync_GrowupActionInfo(curPlayer)
- return True
-
-def DoUpdateGrowupBuyStateOnDay(curPlayer):
- ## 成长必买过天更新购买状态
-
- actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_GrowupBuy, {})
- if not actInfo:
- return
- if not actInfo.get(ShareDefine.ActKey_State):
- return
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
- ipyData = IpyGameDataPY.GetIpyGameData("ActGrowupBuy", cfgID)
- if not ipyData:
- return
- ctgIDGroupList = ipyData.GetCTGIDGroupList()
-
- buyState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GrowupBuyState)
- GameWorld.DebugLog("更新成长必买今日可购买礼包索引! buyState=%s,ctgIDGroupList=%s" % (buyState, ctgIDGroupList))
-
- for i, ctgIDList in enumerate(ctgIDGroupList):
-
- buyIndex = GameWorld.GetDataByDigitPlace(buyState, i)
- updBuyIndex = 0
- yestodayCtgID = ctgIDList[buyIndex]
- if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TodayCTGCount % yestodayCtgID):
- updBuyIndex = 0
- GameWorld.DebugLog(" 昨日礼包没买,重置!yestodayCtgID=%s" % yestodayCtgID)
- else:
- if buyIndex >= len(ctgIDList) - 1:
- updBuyIndex = len(ctgIDList) - 1
- GameWorld.DebugLog(" 昨日礼包已买,最后一档礼包保持不变! yestodayCtgID=%s,updBuyIndex=%s" % (yestodayCtgID, updBuyIndex))
- else:
- updBuyIndex = buyIndex + 1
- GameWorld.DebugLog(" 昨日礼包已买,更新后续礼包索引! yestodayCtgID=%s,updBuyIndex=%s" % (yestodayCtgID, updBuyIndex))
-
- buyState = GameWorld.ChangeDataByDigitPlace(buyState, i, updBuyIndex)
- GameWorld.DebugLog(" updState=%s" % buyState)
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GrowupBuyState, buyState)
- Sync_GrowupActionInfo(curPlayer)
- return
-
-def CheckGrowupBuyState(curPlayer, ctgID):
- ## 检查是否可购买成长必买礼包ID
- # @return: 是否可买, 不可买原因说明
- actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_GrowupBuy, {})
- if not actInfo:
- return False, "not grow up buy action info!"
- if not actInfo.get(ShareDefine.ActKey_State):
- return False, "grow up buy action state is 0!"
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
- ipyData = IpyGameDataPY.GetIpyGameData("ActGrowupBuy", cfgID)
- if not ipyData:
- return False, "not grow up buy action ipyData cfgID(%s)!" % cfgID
- ctgIDGroupList = ipyData.GetCTGIDGroupList()
- buyState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GrowupBuyState)
- curCTGIDList = []
- playerBuyIndex = -1
- for i, ctgIDList in enumerate(ctgIDGroupList):
- if ctgID in ctgIDList:
- curCTGIDList = ctgIDList
- playerBuyIndex = GameWorld.GetDataByDigitPlace(buyState, i)
- break
- if not curCTGIDList:
- return False, "ctgID(%s) is not in this grow up buy action ctgIDGroupList(%s)!" % (ctgID, ctgIDGroupList)
- ctgIDIndex = curCTGIDList.index(ctgID)
- if playerBuyIndex != ctgIDIndex:
- return False, "ctgIDIndex(%s) is not equal to playerBuyIndex(%s) !" % (ctgIDIndex, playerBuyIndex)
-
- return True, ""
-
-def Sync_GrowupActionInfo(curPlayer):
- ## 通知活动信息 - 成长必买
- actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_GrowupBuy, {})
- if not actInfo:
- return
-
- if not actInfo.get(ShareDefine.ActKey_State):
- return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
-
- ipyData = IpyGameDataPY.GetIpyGameData("ActGrowupBuy", cfgID)
- if not ipyData:
- return
- ctgIDGroupList = ipyData.GetCTGIDGroupList()
- if not ctgIDGroupList:
- return
-
- import PlayerCoin
- buyState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GrowupBuyState)
-
- startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData)
- actPack = ChPyNetSendPack.tagMCActGrowupBuyInfo()
- actPack.StartDate = startDateStr
- actPack.EndtDate = endDateStr
- actPack.LimitLV = ipyData.GetLVLimit()
- actPack.GroupList = []
- for i, ctgIDList in enumerate(ctgIDGroupList):
- groupInfo = ChPyNetSendPack.tagMCActGrowupBuyGroup()
- groupInfo.BuyCTGIDList = []
- for ctgID in ctgIDList:
- ctgIpyData = IpyGameDataPY.GetIpyGameData("CTG", ctgID)
- ctgGiveItemList = PlayerCoin.GetCTGGiveItemList(ctgIpyData)
- ctgInfo = ChPyNetSendPack.tagMCActGrowupBuyCTGInfo()
- ctgInfo.CTGID = ctgID
- ctgInfo.GainItemList = []
- for itemID, itemCount, isAuctionItem in ctgGiveItemList:
- ctgItem = ChPyNetSendPack.tagMCActGrowupBuyCTGItem()
- ctgItem.ItemID = itemID
- ctgItem.ItemCount = itemCount
- ctgItem.IsBind = isAuctionItem
- ctgInfo.GainItemList.append(ctgItem)
- ctgInfo.GainItemCount = len(ctgInfo.GainItemList)
- groupInfo.BuyCTGIDList.append(ctgInfo)
- groupInfo.BuyCount = len(groupInfo.BuyCTGIDList)
- groupInfo.PlayerBuyIndex = GameWorld.GetDataByDigitPlace(buyState, i)
- actPack.GroupList.append(groupInfo)
- actPack.GroupCount = len(actPack.GroupList)
- NetPackCommon.SendFakePack(curPlayer, actPack)
- return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTurntable.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTurntable.py
deleted file mode 100644
index db34ee5..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTurntable.py
+++ /dev/null
@@ -1,549 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerActTurntable
-#
-# @todo:转盘活动
-# @author hxp
-# @date 2021-05-06
-# @version 1.0
-#
-# 详细描述: 转盘活动
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2021-05-06 16:30"""
-#-------------------------------------------------------------------------------
-
-
-import PyGameData
-import ShareDefine
-import PlayerControl
-import IpyGameDataPY
-import ItemControler
-import ChPyNetSendPack
-import IPY_GameWorld
-import NetPackCommon
-import GameWorld
-import ChConfig
-import CommFunc
-
-import random
-
-# 物品库类型
-(
-ItemLibType_Comm, # 常规物品
-ItemLibType_Good, # 极品物品
-ItemLibType_Super, # 终极物品
-) = range(1, 3 + 1)
-
-def OnPlayerLogin(curPlayer):
-
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_Turntable, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- isReset = __CheckPlayerTurntableAction(curPlayer, actNum)
- if not isReset:
- # 活动中同步活动信息
- if actInfo.get(ShareDefine.ActKey_State):
- AddTurntableUseCountByLogin(curPlayer, actNum)
- Sync_TurntableActionInfo(curPlayer, actNum)
- Sync_TurntablePlayerInfo(curPlayer, actNum)
-
- return
-
-def PlayerOnDay(curPlayer):
-
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_Turntable, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- if not actInfo.get(ShareDefine.ActKey_State):
- continue
-
- # 过天重置
- AddTurntableUseCountByLogin(curPlayer, actNum)
- Sync_TurntablePlayerInfo(curPlayer, actNum)
-
- return
-
-def RefreshTurntableActionInfo(actNum):
- ## 收到GameServer同步的活动信息,刷新活动信息
- playerManager = GameWorld.GetPlayerManager()
- for index in xrange(playerManager.GetPlayerCount()):
- curPlayer = playerManager.GetPlayerByIndex(index)
- if not GameWorld.IsNormalPlayer(curPlayer):
- continue
- __CheckPlayerTurntableAction(curPlayer, actNum)
- return
-
-def __CheckPlayerTurntableAction(curPlayer, actNum):
- ## 检查玩家活动数据信息
-
- playerID = curPlayer.GetPlayerID()
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_Turntable, actNum)
- actID = actInfo.get(ShareDefine.ActKey_ID, 0)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
-
- playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableID % actNum) # 玩家身上的活动ID
-
- # 活动ID 相同的话不处理
- if actID == playerActID:
- GameWorld.DebugLog("转盘活动ID不变,不处理!actNum=%s,actID=%s" % (actNum, actID), playerID)
- return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- actWorldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
-
- GameWorld.DebugLog("转盘活动重置! cfgID=%s,actNum=%s,actID=%s,playerActID=%s,state=%s" % (cfgID, actNum, actID, playerActID, state), playerID)
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableID % actNum, actID)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableWorldLV % actNum, actWorldLV)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableLoginState % actNum, 0)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableCTGValue % actNum, 0)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableUseGold % actNum, 0)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableCanUseCount % actNum, 0)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableItemState % actNum, 0)
-
- ipyData = None if not cfgID else IpyGameDataPY.GetIpyGameData("ActTurntable", cfgID)
- if ipyData:
- numCountList = ipyData.GetLibChooseCountList()
- numCountTotal = sum([numCount for numCount in numCountList])
- for num in xrange(1, numCountTotal + 1):
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableItemID % (actNum, num), 0)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableItemCount % (actNum, num), 0)
-
- if state:
- # 随机生成常规物品
- commItemCount = numCountList[0]
- commItemLib = GameWorld.GetDictValueByRangeKey(ipyData.GetCommItemLib(), actWorldLV, [])
- random.shuffle(commItemLib) # 打乱下顺序
- commItemList = commItemLib[:commItemCount]
- GameWorld.DebugLog(" 随机生成常规物品: %s, %s" % (commItemCount, commItemList))
- for num, itemInfo in enumerate(commItemList, 1):
- itemID, itemCount, _ = itemInfo
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableItemID % (actNum, num), itemID * 10 + ItemLibType_Comm)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableItemCount % (actNum, num), itemCount)
-
- # 增加登录奖励转盘次数
- AddTurntableUseCountByLogin(curPlayer, actNum)
-
- Sync_TurntableActionInfo(curPlayer, actNum)
- Sync_TurntablePlayerInfo(curPlayer, actNum)
- return True
-
-def AddTurntableUseCountByLogin(curPlayer, actNum):
- ## 登录增加转盘次数
- todayTime = GameWorld.GetTodayTime()
- loginState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableLoginState % actNum)
- if loginState == todayTime:
- GameWorld.DebugLog("登录增加转盘次数,已经增加过: actNum=%s,todayTime=%s" % (actNum, todayTime))
- return
- GameWorld.DebugLog("登录增加转盘次数: actNum=%s,todayTime=%s" % (actNum, todayTime))
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableLoginState % actNum, todayTime)
- AddTurntableUseCount(curPlayer, actNum, 1)
- return
-
-def AddTurntableUseCount(curPlayer, actNum, addCount):
- ## 增加转盘次数
- canUseCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableCanUseCount % actNum) + addCount
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableCanUseCount % actNum, canUseCount)
- GameWorld.DebugLog(" 增加转盘活动次数: actNum=%s,addCount=%s,canUseCount=%s" % (actNum, addCount, canUseCount))
- return
-
-def OnPlayerRecharge(curPlayer, curRechargeValue, coinType):
- ## 玩家充值
- if curRechargeValue <= 0:
- return
-
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_Turntable, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- if not actInfo.get(ShareDefine.ActKey_State):
- GameWorld.DebugLog("转盘当前未开启! actNum=%s" % actNum)
- continue
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not cfgID:
- continue
-
- ipyData = IpyGameDataPY.GetIpyGameData("ActTurntable", cfgID)
- if not ipyData:
- continue
-
- ctgTypeEffValue = ipyData.GetCTGTypeEffValue()
- if not ctgTypeEffValue & pow(2, coinType):
- GameWorld.DebugLog("转盘活动充值类型对该活动无效! actNum=%s,coinType=%s,ctgTypeEffValue=%s"
- % (actNum, coinType, ctgTypeEffValue), curPlayer.GetPlayerID())
- continue
-
- ctgPrizeList = [CommFunc.RMBToCoin(floatRMB) for floatRMB in ipyData.GetCTGPrizeList()]
- nowCTGValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableCTGValue % actNum)
- if nowCTGValue >= max(ctgPrizeList):
- GameWorld.DebugLog("转盘活动充值已达最大记录,actNum=%s,nowCTGValue=%s,maxCTGValue=%s"
- % (actNum, nowCTGValue, max(ctgPrizeList)))
- continue
-
- updCTGValue = nowCTGValue + curRechargeValue
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableCTGValue % actNum, updCTGValue)
- GameWorld.DebugLog("转盘活动充值,actNum=%s,nowCTGValue=%s,updCTGValue=%s,curRechargeValue=%s"
- % (actNum, nowCTGValue, updCTGValue, curRechargeValue))
-
- addTurntableCount = 0
- for ctgValue in ctgPrizeList:
- if updCTGValue < ctgValue:
- break
-
- if nowCTGValue < ctgValue and updCTGValue >= ctgValue:
- addTurntableCount += 1
- GameWorld.DebugLog(" ctgValue=%s,addTurntableCount=%s" % (ctgValue, addTurntableCount))
-
- if addTurntableCount > 0:
- AddTurntableUseCount(curPlayer, actNum, addTurntableCount)
- Sync_TurntablePlayerInfo(curPlayer, actNum)
-
- return
-
-def OnPlayerUseGold(curPlayer, moneyType, addUseGold):
- ## 玩家消耗货币
-
- if addUseGold <= 0:
- return
-
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_Turntable, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- if not actInfo.get(ShareDefine.ActKey_State):
- GameWorld.DebugLog("转盘当前未开启! actNum=%s" % actNum)
- continue
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not cfgID:
- continue
-
- ipyData = IpyGameDataPY.GetIpyGameData("ActTurntable", cfgID)
- if not ipyData:
- continue
-
- if moneyType != ipyData.GetUseMoneyType():
- continue
-
- useMoneyPrizeList = ipyData.GetUseMoneyPrizeList()
- nowUseGold = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableUseGold % actNum)
- if nowUseGold >= max(useMoneyPrizeList):
- GameWorld.DebugLog("转盘活动消耗货币已达最大记录,actNum=%s,moneyType=%s,nowUseGold=%s,maxUseMoneyValue=%s"
- % (actNum, moneyType, nowUseGold, max(useMoneyPrizeList)))
- continue
-
- updUseGold = nowUseGold + addUseGold
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableUseGold % actNum, updUseGold)
- GameWorld.DebugLog("转盘活动消耗货币,actNum=%s,moneyType=%s,nowUseGold=%s,updUseGold=%s,addUseGold=%s"
- % (actNum, moneyType, nowUseGold, updUseGold, addUseGold))
-
- addTurntableCount = 0
- for useGold in useMoneyPrizeList:
- if updUseGold < useGold:
- break
-
- if nowUseGold < useGold and updUseGold >= useGold:
- addTurntableCount += 1
- GameWorld.DebugLog(" useGold=%s,addTurntableCount=%s" % (useGold, addTurntableCount))
-
- if addTurntableCount > 0:
- AddTurntableUseCount(curPlayer, actNum, addTurntableCount)
- Sync_TurntablePlayerInfo(curPlayer, actNum)
-
- return
-
-#// AA 12 选择转盘活动物品 #tagCMActTurntableChooseItem
-#
-#struct tagCMActTurntableChooseItem
-#{
-# tagHead Head;
-# BYTE ActNum; // 活动编号
-# BYTE GoodItemNumCount;
-# BYTE GoodItemNumList[GoodItemNumCount]; // 选择的极品物品编号列表
-# BYTE SuperItemNumCount;
-# BYTE SuperItemNumList[SuperItemNumCount]; // 选择的终极物品编号列表
-#};
-def OnTurntableChooseItem(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- actNum = clientData.ActNum
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_Turntable, actNum)
- if not actInfo.get(ShareDefine.ActKey_State):
- return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
- if not cfgID:
- return
-
- ipyData = IpyGameDataPY.GetIpyGameData("ActTurntable", cfgID)
- if not ipyData:
- return
-
- numCountList = ipyData.GetLibChooseCountList()
- numCountTotal = sum([numCount for numCount in numCountList])
- if len(numCountList) != 3:
- return
- commCount, goodCount, superCount = numCountList
-
- canChoose = True
- for num in xrange(1, numCountTotal + 1):
- itemIDInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableItemID % (actNum, num))
- itemID, itemLibType = itemIDInfo / 10, itemIDInfo % 10
- if itemID and itemLibType != ItemLibType_Comm:
- canChoose = False
- GameWorld.DebugLog(" 已经选择过了转盘物品了,无法重复选择!")
- break
-
- if not canChoose:
- return
-
- actWorldLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableWorldLV % actNum)
- goodItemLib = GameWorld.GetDictValueByRangeKey(ipyData.GetGoodItemLib(), actWorldLV, [])
- chooseGoodItemNumList = clientData.GoodItemNumList
- if not chooseGoodItemNumList or len(chooseGoodItemNumList) != goodCount or min(chooseGoodItemNumList) <= 0 or max(chooseGoodItemNumList) > len(goodItemLib):
- GameWorld.ErrLog(" 转盘活动极品物品选择错误!actNum=%s,chooseGoodItemNumList=%s,goodCount=%s,goodItemLibLen=%s"
- % (actNum, chooseGoodItemNumList, goodCount, len(goodItemLib)))
- return
-
- superItemLib = GameWorld.GetDictValueByRangeKey(ipyData.GetSuperItemLib(), actWorldLV, [])
- chooseSuperItemNumList = clientData.SuperItemNumList
- if not chooseSuperItemNumList or len(chooseSuperItemNumList) != superCount or min(chooseSuperItemNumList) <= 0 or max(chooseSuperItemNumList) > len(superItemLib):
- GameWorld.ErrLog(" 转盘活动终极物品选择错误!actNum=%s,chooseSuperItemNumList=%s,superCount=%s,superItemLibLen=%s"
- % (actNum, chooseSuperItemNumList, superCount, len(superItemLib)))
- return
-
- useNum = commCount # 以普通物品个数为编号,递增
- GameWorld.DebugLog("转盘活动选择物品: actNum=%s,chooseGoodItemNumList=%s,chooseSuperItemNumList=%s" % (actNum, chooseGoodItemNumList, chooseSuperItemNumList))
- for chooseGoodNum in chooseGoodItemNumList:
- useNum += 1
- itemID, itemCount, _ = goodItemLib[chooseGoodNum - 1]
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableItemID % (actNum, useNum), itemID * 10 + ItemLibType_Good)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableItemCount % (actNum, useNum), itemCount)
- GameWorld.DebugLog(" 存储选择极品物品: useNum=%s,itemID=%s,itemCount=%s" % (useNum, itemID, itemCount))
-
- for chooseSuperNum in chooseSuperItemNumList:
- useNum += 1
- itemID, itemCount, _ = superItemLib[chooseSuperNum - 1]
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableItemID % (actNum, useNum), itemID * 10 + ItemLibType_Super)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableItemCount % (actNum, useNum), itemCount)
- GameWorld.DebugLog(" 存储选择终极物品: useNum=%s,itemID=%s,itemCount=%s" % (useNum, itemID, itemCount))
-
- Sync_TurntableActionInfo(curPlayer, actNum)
- return
-
-#// AA 13 启动转盘 #tagCMActTurntableStart
-#
-#struct tagCMActTurntableStart
-#{
-# tagHead Head;
-# BYTE ActNum; // 活动编号
-#};
-def OnTurntableStart(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- actNum = clientData.ActNum
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_Turntable, actNum)
- if not actInfo.get(ShareDefine.ActKey_State):
- return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
- if not cfgID:
- return
-
- ipyData = IpyGameDataPY.GetIpyGameData("ActTurntable", cfgID)
- if not ipyData:
- return
-
- canUseCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableCanUseCount % actNum)
- if canUseCount <= 0:
- GameWorld.DebugLog("没有转盘活动次数!actNum=%s" % actNum)
- return
-
- itemState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableItemState % actNum)
-
- numCountList = ipyData.GetLibChooseCountList()
- numCountTotal = sum([numCount for numCount in numCountList])
-
- canStart = False
- hadGetCount = 0
- isAuctionItem = 0 # 默认非拍品
- canGetItemInfoDict = {} # 还可以获得的物品信息 {itemLibType:{num:itemInfo, ...}, ...}
- for num in xrange(1, numCountTotal + 1):
- itemIDInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableItemID % (actNum, num))
- itemCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableItemCount % (actNum, num))
- itemID, itemLibType = itemIDInfo / 10, itemIDInfo % 10
- if not itemID or not itemCount:
- continue
-
- if itemLibType != ItemLibType_Comm:
- canStart = True
-
- if itemState & pow(2, num):
- hadGetCount += 1
- continue
-
- if itemLibType not in canGetItemInfoDict:
- canGetItemInfoDict[itemLibType] = {}
- canGetItemInfoDict[itemLibType][num] = [itemID, itemCount, isAuctionItem]
-
- if not canStart:
- GameWorld.DebugLog("未选择转盘活动极品终极物品,无法启动转盘!")
- return
-
- if not ItemControler.CheckPackHasSpace(curPlayer, isNotify=True):
- return
-
- superRate, superLimitTurnCount = ipyData.GetSuperItemLimitRule() # 终极库产出万分率|至少X次后可产出
-
- GameWorld.DebugLog("启动转盘活动! actNum=%s,itemState=%s,hadGetCount=%s, superLimitTurnCount=%s,superRate=%s"
- % (actNum, itemState, hadGetCount, superLimitTurnCount, superRate))
- GameWorld.DebugLog(" canGetItemInfoDict=%s" % canGetItemInfoDict)
-
- if not canGetItemInfoDict:
- return
-
- randNum = 0
- worldNotifyKey = ""
- giveItemInfo = []
- canGetCommNumList = canGetItemInfoDict.get(ItemLibType_Comm, {}).keys()
- canGetGoodNumList = canGetItemInfoDict.get(ItemLibType_Good, {}).keys()
- randNumWithoutSuperList = canGetCommNumList + canGetGoodNumList
- GameWorld.DebugLog(" 不含终极物品的编号: %s" % (randNumWithoutSuperList))
-
- if hadGetCount >= superLimitTurnCount and ItemLibType_Super in canGetItemInfoDict:
- GameWorld.DebugLog(" 有机会获得终极物品: superRate=%s" % superRate)
- if not randNumWithoutSuperList or GameWorld.CanHappen(superRate): # 没有其他物品了必出终极
- randNum = random.choice(canGetItemInfoDict[ItemLibType_Super].keys())
- giveItemInfo = canGetItemInfoDict[ItemLibType_Super][randNum]
- GameWorld.DebugLog(" 获得终极物品! randNum=%s,giveItemInfo=%s" % (randNum, giveItemInfo))
- worldNotifyKey = ipyData.GetWorldNotifyKey()
-
- if not giveItemInfo and randNumWithoutSuperList:
- randNum = random.choice(randNumWithoutSuperList)
-
- if randNum in canGetGoodNumList:
- giveItemInfo = canGetItemInfoDict[ItemLibType_Good][randNum]
- GameWorld.DebugLog(" 获得极品物品! randNum=%s,giveItemInfo=%s" % (randNum, giveItemInfo))
- worldNotifyKey = ipyData.GetWorldNotifyKey()
- else:
- giveItemInfo = canGetItemInfoDict[ItemLibType_Comm][randNum]
- GameWorld.DebugLog(" 获得常规物品! randNum=%s,giveItemInfo=%s" % (randNum, giveItemInfo))
-
- if not giveItemInfo or not randNum:
- return
-
- updItemState = itemState | pow(2, randNum)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableItemState % actNum, updItemState)
- updCanUseCount = canUseCount - 1
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TurntableCanUseCount % actNum, updCanUseCount)
- GameWorld.DebugLog(" randNum=%s,updItemState=%s,updCanUseCount=%s" % (randNum, updItemState, updCanUseCount))
-
- itemID, itemCount, isAuctionItem = giveItemInfo
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, [IPY_GameWorld.rptItem], event=["ActTurntable", False, {}])
-
- if worldNotifyKey:
- PlayerControl.WorldNotify(0, worldNotifyKey, [curPlayer.GetPlayerName(), itemID, itemCount])
-
- Sync_TurntablePlayerInfo(curPlayer, actNum, randNum)
- return
-
-
-def Sync_TurntablePlayerInfo(curPlayer, actNum, getItemNum=0):
- ## 通知玩家数据信息
- # @param getItemNum: 本次转盘获得的对应物品编号
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_Turntable, actNum)
- if not actInfo.get(ShareDefine.ActKey_State):
- return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
- if not cfgID:
- return
-
- ipyData = IpyGameDataPY.GetIpyGameData("ActTurntable", cfgID)
- if not ipyData:
- return
-
- playerActInfo = ChPyNetSendPack.tagMCActTurntablePlayerInfo()
- playerActInfo.ActNum = actNum
- playerActInfo.CanUseCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableCanUseCount % actNum)
- playerActInfo.CTGTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableCTGValue % actNum)
- playerActInfo.UseMoneyTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableUseGold % actNum)
- playerActInfo.TurnItemState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableItemState % actNum)
- playerActInfo.GetItemNum = getItemNum
- NetPackCommon.SendFakePack(curPlayer, playerActInfo)
- return
-
-def Sync_TurntableActionInfo(curPlayer, actNum):
- ## 通知活动信息
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_Turntable, actNum)
- if not actInfo.get(ShareDefine.ActKey_State):
- return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
- if not cfgID:
- return
-
- ipyData = IpyGameDataPY.GetIpyGameData("ActTurntable", cfgID)
- if not ipyData:
- return
-
- actWorldLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableWorldLV % actNum)
- startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData)
-
- clientPack = ChPyNetSendPack.tagMCActTurntableInfo()
- clientPack.ActNum = actNum
- clientPack.StartDate = startDateStr
- clientPack.EndtDate = endDateStr
- clientPack.IsDayReset = ipyData.GetIsDayReset()
- clientPack.LimitLV = ipyData.GetLVLimit()
- clientPack.CTGPrizeList = [CommFunc.RMBToCoin(floatRMB) for floatRMB in ipyData.GetCTGPrizeList()]
- clientPack.CTGPrizeCount = len(clientPack.CTGPrizeList)
- clientPack.UseMoneyType = ipyData.GetUseMoneyType()
- clientPack.UseMoneyPrizeList = ipyData.GetUseMoneyPrizeList()
- clientPack.UseMoneyPrizeCount = len(clientPack.UseMoneyPrizeList)
-
- numCountList = ipyData.GetLibChooseCountList()
- numCountTotal = sum([numCount for numCount in numCountList])
-
- clientPack.TurnItemList = []
- for num in xrange(1, numCountTotal + 1):
- itemIDInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableItemID % (actNum, num))
- itemCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TurntableItemCount % (actNum, num))
- itemID, itemLibType = itemIDInfo / 10, itemIDInfo % 10
- if not itemID:
- break
- packItem = ChPyNetSendPack.tagMCActTurntableItem()
- packItem.ItemNum = num
- packItem.ItemLibType = itemLibType
- packItem.ItemID = itemID
- packItem.ItemCount = itemCount
- clientPack.TurnItemList.append(packItem)
- clientPack.TurnItemCount = len(clientPack.TurnItemList)
-
- clientPack.GoodItemCanChooseCount = numCountList[1] if len(numCountList) > 1 else 0
- goodItemLib = GameWorld.GetDictValueByRangeKey(ipyData.GetGoodItemLib(), actWorldLV, [])
- for num, itemInfo in enumerate(goodItemLib, 1):
- itemID, itemCount, _ = itemInfo
- packItem = ChPyNetSendPack.tagMCActTurntableItem()
- packItem.ItemNum = num
- packItem.ItemLibType = ItemLibType_Good
- packItem.ItemID = itemID
- packItem.ItemCount = itemCount
- clientPack.GoodItemList.append(packItem)
- clientPack.GoodItemCount = len(clientPack.GoodItemList)
-
- clientPack.SuperItemCanChooseCount = numCountList[2] if len(numCountList) > 2 else 0
- superItemLib = GameWorld.GetDictValueByRangeKey(ipyData.GetSuperItemLib(), actWorldLV, [])
- for num, itemInfo in enumerate(superItemLib, 1):
- itemID, itemCount, _ = itemInfo
- packItem = ChPyNetSendPack.tagMCActTurntableItem()
- packItem.ItemNum = num
- packItem.ItemLibType = ItemLibType_Super
- packItem.ItemID = itemID
- packItem.ItemCount = itemCount
- clientPack.SuperItemList.append(packItem)
- clientPack.SuperItemCount = len(clientPack.SuperItemList)
-
- NetPackCommon.SendFakePack(curPlayer, clientPack)
- return
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActYunshi.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActYunshi.py
deleted file mode 100644
index 879c89a..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActYunshi.py
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerActYunshi
-#
-# @todo:运势活动
-# @author hxp
-# @date 2024-11-08
-# @version 1.0
-#
-# 详细描述: 运势活动
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2024-11-08 15:00"""
-#-------------------------------------------------------------------------------
-
-import PyGameData
-import ShareDefine
-import PlayerControl
-import IpyGameDataPY
-import ChPyNetSendPack
-import PlayerTreasure
-import NetPackCommon
-import GameWorld
-import ChConfig
-
-def OnPlayerLogin(curPlayer):
-
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_Yunshi, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- isReset = __CheckPlayerActYunshiAction(curPlayer, actNum)
- # 活动中同步活动信息
- if not isReset and actInfo.get(ShareDefine.ActKey_State):
- Sync_ActYunshiActionInfo(curPlayer, actNum)
- return
-
-def RefreshActYunshiActionInfo(actNum):
- ## 收到GameServer同步的活动信息,刷新活动信息
- playerManager = GameWorld.GetPlayerManager()
- for index in xrange(playerManager.GetPlayerCount()):
- curPlayer = playerManager.GetPlayerByIndex(index)
- if not GameWorld.IsNormalPlayer(curPlayer):
- continue
- __CheckPlayerActYunshiAction(curPlayer, actNum)
- return
-
-def __CheckPlayerActYunshiAction(curPlayer, actNum):
- ## 检查玩活动数据信息
-
- playerID = curPlayer.GetPlayerID()
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_Yunshi, actNum)
- actID = actInfo.get(ShareDefine.ActKey_ID, 0)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
-
- playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActYunshiID % actNum) # 玩家身上的活动ID
- lastTreasureType = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActYunshiTreasureType % actNum)
-
- # 活动ID 相同的话不处理
- if actID == playerActID:
- GameWorld.DebugLog("运势活动ID不变,不处理! actNum=%s,cfgID=%s,actID=%s" % (actNum, cfgID, actID), playerID)
- return
- GameWorld.DebugLog("运势活动重置! actNum=%s,cfgID=%s,actID=%s,playerActID=%s,state=%s,lastTreasureType=%s"
- % (actNum, cfgID, actID, playerActID, state, lastTreasureType), playerID)
- if lastTreasureType:
- PlayerTreasure.ResetTreasureType(curPlayer, [lastTreasureType])
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActYunshiID % actNum, actID)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActYunshiTreasureType % actNum, 0)
-
- if state:
- ipyData = IpyGameDataPY.GetIpyGameData("ActYunshi", cfgID)
- if ipyData:
- treasureType = ipyData.GetTreasureType()
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActYunshiTreasureType % actNum, treasureType)
- PlayerTreasure.ResetTreasureType(curPlayer, [treasureType])
-
- Sync_ActYunshiActionInfo(curPlayer, actNum)
- return True
-
-def IsActTreasureType(curPlayer, treasureType):
- ## 是否活动中的寻宝类型
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_Yunshi, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- if not actInfo.get(ShareDefine.ActKey_State):
- continue
- if treasureType == curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActYunshiTreasureType % actNum):
- return True
- return False
-
-def Sync_ActYunshiActionInfo(curPlayer, actNum):
- ## 通知活动信息
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_Yunshi, actNum)
- if not actInfo:
- return
- if not actInfo.get(ShareDefine.ActKey_State):
- return
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
- ipyData = IpyGameDataPY.GetIpyGameData("ActYunshi", cfgID)
- if not ipyData:
- return
-
- startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData)
- actPack = ChPyNetSendPack.tagMCActYunshiInfo()
- actPack.Clear()
- actPack.ActNum = actNum
- actPack.StartDate = startDateStr
- actPack.EndtDate = endDateStr
- actPack.ResetType = ipyData.GetResetType()
- actPack.LimitLV = ipyData.GetLVLimit()
- actPack.TreasureType = ipyData.GetTreasureType()
- NetPackCommon.SendFakePack(curPlayer, actPack)
- 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 0996c27..db22045 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -41,15 +41,11 @@
import NetPackCommon
import IpyGameDataPY
import ShareDefine
-import PlayerFlashGiftbag
-import PlayerDailyGiftbag
import PlayerGoldGift
import PlayerActTotalRecharge
import PlayerActManyDayRecharge
import PlayerActSingleRecharge
-import PlayerActGrowupBuy
import PlayerGoldInvest
-import PlayerActTurntable
import PlayerZhanling
import PlayerGoldRush
import PlayerLLMJ
@@ -173,7 +169,6 @@
## 充值相关过天
#在重置之前需要处理的
- PlayerActGrowupBuy.DoUpdateGrowupBuyStateOnDay(curPlayer) # 成长必买
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TodayCTGCoinTotal, 0)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGRealToday, 0)
@@ -485,13 +480,6 @@
return
moneyType, addGold, prizeGold, giveItemList, ctgIpyData = ctgResultInfo
- elif ipyData.GetGiftbagID():
- giftbagID = ipyData.GetGiftbagID()
- if 100 <= giftbagID < 199:
- if not PlayerDailyGiftbag.OnPlayerOrderDailyGiftbag(curPlayer, giftbagID, addDRDict):
- return
- elif not PlayerFlashGiftbag.OnPlayerOrderGiftbag(curPlayer, [ipyData.GetGiftbagID()], addDRDict):
- return
else:
#用于支付其他的商品,待扩展...
DataRecordPack.DR_CTGError(curPlayer, "The orderInfo is useless!", addDRDict)
@@ -524,13 +512,6 @@
addDRDict.update({"recordID":recordID})
- # 成长必买类型
- if ipyData.GetPayType() == PayType_GrowupBuy:
- canBuy, errInfo = PlayerActGrowupBuy.CheckGrowupBuyState(curPlayer, recordID)
- if not canBuy:
- DataRecordPack.DR_CTGError(curPlayer, errInfo, addDRDict)
- return
-
totalBuyCountLimit = ipyData.GetTotalBuyCount()
totalBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGGoodsBuyCount % recordID)
if totalBuyCountLimit:
@@ -664,27 +645,9 @@
return []
gainItemList = ipyData.GetGainItemList()
- actWorldLVGainItemInfo = ipyData.GetActWorldLVGainItemInfo()
- giveItemList = []
- # 活动世界等级对应物品信息,如果有对应活动支持 且 该配置有配,则默认走该配置,否则使用常规的默认物品配置
- payTypeActNameDict = {PayType_GrowupBuy:ShareDefine.OperationActionName_GrowupBuy,
-
- # ... 有新增的活动需要支持,则在此新增配置上即可,后面取物品的逻辑都是一样的
- }
- if actWorldLVGainItemInfo and ipyData.GetPayType() in payTypeActNameDict:
- actName = payTypeActNameDict[ipyData.GetPayType()]
- actInfo = PyGameData.g_operationActionDict.get(actName, {}) # 注:相关状态在前置逻辑已经判断过,这里不再判断
- actWorldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
- actWorldLVList = [int(strWorldLV) for strWorldLV in actWorldLVGainItemInfo.keys()]
- actWorldLVList.sort() # 使用 int 的值排,否则可能引起排序错误
- for worldLV in actWorldLVList:
- if actWorldLV <= worldLV:
- giveItemList = actWorldLVGainItemInfo[str(worldLV)]
- break
- if not giveItemList:
- giveItemList = actWorldLVGainItemInfo[str(actWorldLVList[-1])] # 没有匹配到的话默认取最后一个等级配置
- else:
- giveItemList = gainItemList
+ #actWorldLVGainItemInfo = ipyData.GetActWorldLVGainItemInfo()
+ #giveItemList = []
+ giveItemList = gainItemList
return giveItemList
def __OnCTGReal(curPlayer, orderCoin):
@@ -813,7 +776,6 @@
#累积充值X元
PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin, coinType)
PlayerActSingleRecharge.UpdSingleRechargeValue(curPlayer, orderCoin, coinType) # 单笔累充
- PlayerActTurntable.OnPlayerRecharge(curPlayer, orderCoin, coinType) # 转盘
#投资
if ctgIpyData:
ctgID = ctgIpyData.GetRecordID()
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 aff7785..143459c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -3959,12 +3959,6 @@
totalExpRate = GetPlayerExpRate(curPlayer)
fightExpRate = curPlayer.GetFightExpRate() # 系统及功能累加
- actExpRateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_ExpRate, {})# 多倍经验活动加成
- if actExpRateInfo.get(ShareDefine.ActKey_State):
- actExpIpyData = IpyGameDataPY.GetIpyGameData("ActExpRate", actExpRateInfo.get(ShareDefine.ActKey_CfgID))
- if actExpIpyData and curPlayer.GetLV() >= actExpIpyData.GetLVLimit():
- fightExpRate += actExpIpyData.GetAddExpRate()
-
#if curPlayer.GetMapID() not in [ChConfig.Def_FBMapID_FamilyInvade]: #守卫人皇不加组队加成
# fightExpRate += curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_TeamExpRate) # 组队
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py
deleted file mode 100644
index 7c81f58..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py
+++ /dev/null
@@ -1,247 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerDailyGiftbag
-#
-# @todo:每日礼包
-# @author hxp
-# @date 2020年3月12日
-# @version 1.0
-#
-# 详细描述: 每日礼包
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2020年3月12日 12:00"""
-#-------------------------------------------------------------------------------
-
-import PyGameData
-import ShareDefine
-import PlayerControl
-import IpyGameDataPY
-import NetPackCommon
-import ChPyNetSendPack
-import DataRecordPack
-import ItemControler
-import IPY_GameWorld
-import ItemCommon
-import GameWorld
-import ChConfig
-import CommFunc
-import PlayerCoin
-
-def OnPlayerLogin(curPlayer):
- __CheckPlayerDailyGiftbagAction(curPlayer)
- return
-
-def RefreshDailyGiftbagActionInfo():
- ## 收到GameServer同步的活动信息,刷新活动信息
- playerManager = GameWorld.GetPlayerManager()
- for index in xrange(playerManager.GetPlayerCount()):
- curPlayer = playerManager.GetPlayerByIndex(index)
- if not GameWorld.IsNormalPlayer(curPlayer):
- continue
- __CheckPlayerDailyGiftbagAction(curPlayer)
- return
-
-def __CheckPlayerDailyGiftbagAction(curPlayer):
- ## 检查玩家每日礼包活动数据信息
-
- playerID = curPlayer.GetPlayerID()
-
- actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_DailyGiftbag, {})
- actID = actInfo.get(ShareDefine.ActKey_ID, 0)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not state or not cfgID:
- return
-
- playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DailyGiftbagID) # 玩家身上的活动ID
- cfgIpyData = IpyGameDataPY.GetIpyGameData("ActDailyGiftbag", cfgID)
- if not cfgIpyData:
- return
- giftbagType = cfgIpyData.GetGiftbagType()
-
- isReset = False
- if actID != playerActID:
- isReset = True
- __ResetGiftbagItemBuyCount(curPlayer, giftbagType)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DailyGiftbagID, actID)
- GameWorld.DebugLog("每日礼包重置! actID=%s,playerActID=%s,state=%s,giftbagType=%s" % (actID, playerActID, state, giftbagType), playerID)
- else:
- GameWorld.DebugLog("每日礼包活动ID不变,不处理!", curPlayer.GetPlayerID())
- SyncDailyGiftbagBuyCount(curPlayer, giftbagType)
-
- Sync_DailyGiftbagActionInfo(curPlayer)
- return isReset
-
-def __ResetGiftbagItemBuyCount(curPlayer, giftbagType):
- ##重置每日礼包限购物品次数
-
- giftbagIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("DailyGiftbag", {"GiftbagType":giftbagType}, True, True)
- if not giftbagIpyDataList:
- return
- for giftIpyData in giftbagIpyDataList:
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DailyGiftbagBuyCount % giftIpyData.GetGiftbagID(), 0)
- SyncDailyGiftbagBuyCount(curPlayer, giftbagType)
- return
-
-def OnPlayerOrderDailyGiftbag(curPlayer, giftbagID, addDRDict, isCTG=True):
- ## 玩家订购每日礼包
- actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_DailyGiftbag, {})
- if not actInfo:
- if isCTG:
- DataRecordPack.DR_CTGError(curPlayer, "DailyGiftbag action info is null!", addDRDict)
- return
-
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- if not state:
- if isCTG:
- DataRecordPack.DR_CTGError(curPlayer, "DailyGiftbag state is 0!", addDRDict)
- return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- cfgIpyData = IpyGameDataPY.GetIpyGameData("ActDailyGiftbag", cfgID)
- if not cfgIpyData:
- if isCTG:
- DataRecordPack.DR_CTGError(curPlayer, "DailyGiftbag GiftbagType is null!", addDRDict)
- return
- giftbagType = cfgIpyData.GetGiftbagType()
-
- giftbagIpyData = IpyGameDataPY.GetIpyGameData("DailyGiftbag", giftbagType, giftbagID)
- if not giftbagIpyData:
- if isCTG:
- DataRecordPack.DR_CTGError(curPlayer, "DailyGiftbag giftbagType=%s giftbagID=%s can not found!"
- % (giftbagType, giftbagID), addDRDict)
- return
- actWorldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
- giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob(), actWorldLV)
- addDRDict.update({"giftbagType":giftbagType, "giftbagID":giftbagID, "giftItemList":giftItemList})
- buyCountLimit = giftbagIpyData.GetBuyCountLimit()
- buyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DailyGiftbagBuyCount % giftbagID)
- if buyCountLimit:
- addDRDict.update({"buyCountLimit":buyCountLimit, "buyCount":buyCount})
- if buyCount >= buyCountLimit:
- if isCTG:
- PlayerCoin.ExchangePayCoin(curPlayer, "DailyGiftbag Pay count limit !buyCount=%s,buyCountLimit=%s"
- % (buyCount, buyCountLimit), addDRDict)
- return
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DailyGiftbagBuyCount % giftbagID, buyCount + 1)
-
- if giftItemList:
- eventName = "DailyGiftbag" if not isCTG else ChConfig.ItemGive_CTG
- ItemControler.GivePlayerItemOrMail(curPlayer, giftItemList, "", event=[eventName, True, addDRDict])
-
- SyncDailyGiftbagBuyCount(curPlayer, giftbagType)
- return True
-
-def OnGetDailyFreeGiftbag(curPlayer):
- ## 领取每日免费直购礼包
- giftbagID = 0 # 免费礼包ID固定为0
- addDRDict = {}
- OnPlayerOrderDailyGiftbag(curPlayer, giftbagID, addDRDict, False)
- return
-
-def __GetJobItemList(giftItemInfo, job, worldLV):
- jobItemList = []
- if isinstance(giftItemInfo, dict):
- itemList = GameWorld.GetDictValueByRangeKey(giftItemInfo, worldLV, [])
- else:
- itemList = giftItemInfo
- for itemID, itemCnt, isBind in itemList:
- if type(itemID) == int:
- jobItemList.append([itemID, itemCnt, isBind])
- elif job in itemID:
- jobItemList.append([itemID[job], itemCnt, isBind])
- return jobItemList
-
-def SyncDailyGiftbagBuyCount(curPlayer, giftbagType):
- ## 通知每日礼包玩家活动信息
-
- giftbagIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("DailyGiftbag", {"GiftbagType":giftbagType}, True, True)
- if not giftbagIpyDataList:
- return
-
- giftbagBuyInfo = ChPyNetSendPack.tagMCDailyGiftbagPlayerInfo()
- giftbagBuyInfo.BuyCountList = []
- for giftIpyData in giftbagIpyDataList:
- giftbagID = giftIpyData.GetGiftbagID()
- buyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DailyGiftbagBuyCount % giftbagID)
- if buyCnt <= 0:
- continue
- buyCountInfo = ChPyNetSendPack.tagMCDailyGiftbagBuyCount()
- buyCountInfo.GiftbagID = giftbagID
- buyCountInfo.BuyCount = buyCnt
- giftbagBuyInfo.BuyCountList.append(buyCountInfo)
- giftbagBuyInfo.Count = len(giftbagBuyInfo.BuyCountList)
- NetPackCommon.SendFakePack(curPlayer, giftbagBuyInfo)
- return
-
-def Sync_DailyGiftbagActionInfo(curPlayer):
- ## 通知每日礼包活动信息
- actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_DailyGiftbag, {})
- if not actInfo:
- return
-
- if not actInfo.get(ShareDefine.ActKey_State):
- return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not cfgID:
- return
-
- cfgIpyData = IpyGameDataPY.GetIpyGameData("ActDailyGiftbag", cfgID)
- if not cfgIpyData:
- return
- giftbagType = cfgIpyData.GetGiftbagType()
-
- giftbagIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("DailyGiftbag", {"GiftbagType":giftbagType}, True, True)
- if not giftbagIpyDataList:
- return
-
- actWorldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
- # 取玩家APPID,混服使用
- appID = GameWorld.GetPlayerPlatform(curPlayer)
-
- packInfo = ChPyNetSendPack.tagMCDailyGiftbagInfo()
- packInfo.GiftbagInfo = []
- packInfo.LimitLV = cfgIpyData.GetLVLimit()
- for giftIpyData in giftbagIpyDataList:
- giftbagID = giftIpyData.GetGiftbagID()
- orderIpyData = GetGiftbagIDOrderInfoIpyData(giftbagID, appID)
-
- giftBag = ChPyNetSendPack.tagMCDailyGiftbag()
- giftBag.GiftID = giftbagID
- giftBag.OrderInfo = "" if not orderIpyData else orderIpyData.GetOrderInfo()
- giftBag.OrderInfoLen = len(giftBag.OrderInfo)
- giftBag.BuyCountLimit = giftIpyData.GetBuyCountLimit()
- giftBag.RMB = 0 if not orderIpyData else CommFunc.RMBToCoin(orderIpyData.GetPayRMBNum())
- giftBag.ItemInfo = []
- for itemID, itemCount, isBind in __GetJobItemList(giftIpyData.GetGiftItemList(), curPlayer.GetJob(), actWorldLV):
- item = ChPyNetSendPack.tagMCDailyGiftbagItem()
- item.ItemID = itemID
- item.ItemCount = itemCount
- giftBag.ItemInfo.append(item)
- giftBag.GiftItemCount = len(giftBag.ItemInfo)
- giftBag.Discount = giftIpyData.GetDiscount()
- packInfo.GiftbagInfo.append(giftBag)
-
- packInfo.GiftbagCount = len(packInfo.GiftbagInfo)
- NetPackCommon.SendFakePack(curPlayer, packInfo)
- return
-
-def GetGiftbagIDOrderInfoIpyData(giftbagID, appID):
- ## 获取礼包ID对应数据配置
- key = "GiftbagIpyDataDict"
- GiftbagIpyDataDict = IpyGameDataPY.GetConfigEx(key)
- if not GiftbagIpyDataDict:
- GiftbagIpyDataDict = {}
- ipyDataMgr = IpyGameDataPY.IPY_Data()
- for i in xrange(ipyDataMgr.GetOrderInfoCount()):
- ipyData = ipyDataMgr.GetOrderInfoByIndex(i)
- if not ipyData.GetGiftbagID():
- continue
- GiftbagIpyDataDict[(ipyData.GetGiftbagID(), ipyData.GetAppID())] = ipyData
- IpyGameDataPY.SetConfigEx(key, GiftbagIpyDataDict)
- return GiftbagIpyDataDict.get((giftbagID, appID))
-
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 36abc3f..e191eca 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -32,16 +32,13 @@
import PlayerGoldGift
import PlayerActivity
import FBCommon
-import PlayerFreeGoods
import ChItem
import GameLogic_Tianzi
import PlayerGoldInvest
-import PlayerActTurntable
import PlayerActTask
import PlayerActBuyCountGift
import PlayerActLoginNew
import PlayerOfflineSupport
-import PlayerWishingWell
import PlayerTreasure
import PlayerZhanling
import PlayerLove
@@ -291,8 +288,6 @@
#寻宝
PlayerTreasure.OnDay(curPlayer)
PlayerGoldGift.OnDay(curPlayer)
- #转盘
- PlayerActTurntable.PlayerOnDay(curPlayer)
#情缘
PlayerLove.DoPlayerOnDay(curPlayer)
#仙宫
@@ -311,8 +306,6 @@
PlayerFamily.PlayerOnDay(curPlayer)
# 重置物品每日使用次数
ChItem.ResetItemUseCntToday(curPlayer)
- # 极品白拿
- PlayerFreeGoods.OnDay(curPlayer)
#采集次数重置
NPCCommon.PlayerOnDay(curPlayer)
#竞技场
@@ -320,8 +313,6 @@
# 以下为支持两种重置模式切换配置的
FBCommon.FBOnDay(curPlayer, onEventType)
- #许愿池
- PlayerWishingWell.OnDay(curPlayer)
#任务活动
PlayerActTask.OnDay(curPlayer)
#登录活动
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py
deleted file mode 100644
index 43af6b8..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py
+++ /dev/null
@@ -1,338 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerFlashGiftbag
-#
-# @todo:限时礼包
-# @author hxp
-# @date 2018-7-20
-# @version 1.0
-#
-# 详细描述: 限时礼包
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2018-7-20 17:30"""
-#-------------------------------------------------------------------------------
-
-import PyGameData
-import ShareDefine
-import PlayerControl
-import IpyGameDataPY
-import NetPackCommon
-import ChPyNetSendPack
-import DataRecordPack
-import ItemControler
-import GameWorld
-import ChConfig
-import CommFunc
-import PlayerCoin
-
-
-def GetGiftbagTypeList(cfgID, dayIndex, woldLV):
- if cfgID == None or dayIndex == None:
- return []
- ipyData = IpyGameDataPY.GetIpyGameData("ActFlashGiftbag", cfgID)
- if not ipyData:
- return []
- giftbagTypeList = GameWorld.GetDictValueByRangeKey(ipyData.GetGiftbagTypeList(), woldLV, [])
- todayGiftbag = giftbagTypeList[-1] if dayIndex >= len(giftbagTypeList) else giftbagTypeList[dayIndex]
- return todayGiftbag
-
-def OnPlayerLogin(curPlayer):
-
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FlashGiftbag, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- isReset = __CheckPlayerFlashGiftbagAction(curPlayer, actNum)
- if not isReset:
- pass
-
- return
-
-def RefreshFlashGiftbagActionInfo(actNum):
- ## 收到GameServer同步的活动信息,刷新活动信息
- playerManager = GameWorld.GetPlayerManager()
- for index in xrange(playerManager.GetPlayerCount()):
- curPlayer = playerManager.GetPlayerByIndex(index)
- if not GameWorld.IsNormalPlayer(curPlayer):
- continue
- __CheckPlayerFlashGiftbagAction(curPlayer, actNum)
- return
-
-def __CheckPlayerFlashGiftbagAction(curPlayer, actNum):
- ## 检查玩家显示礼包活动数据信息
-
- playerID = curPlayer.GetPlayerID()
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_FlashGiftbag, actNum)
- actID = actInfo.get(ShareDefine.ActKey_ID, 0)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
-
- playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagID % actNum) # 玩家身上的活动ID
- giftbagTypeList = [] if not cfgID else GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
- isReset = False
- if actID != playerActID:
- isReset = True
- Sync_FlashGiftbagActionInfo(curPlayer, actNum)
- __ResetGiftbagItemBuyCount(curPlayer, giftbagTypeList, actNum)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashGiftbagID % actNum, actID)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashGiftbagMailState % actNum, 0)
- GameWorld.DebugLog("限时礼包重置! actNum=%s,actID=%s,playerActID=%s,state=%s,giftbagTypeList=%s"
- % (actNum, actID, playerActID, state, giftbagTypeList), playerID)
- else:
- GameWorld.DebugLog("限时礼包活动ID不变,不处理!actNum=%s,playerActID=%s" % (actNum, playerActID), curPlayer.GetPlayerID())
-
- playerMailState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagMailState % actNum) # 玩家身上的活动提醒邮件状态
- if actID and state and state != playerMailState:
- flashGiftbagIpyData = IpyGameDataPY.GetIpyGameData("ActFlashGiftbag", cfgID)
- if flashGiftbagIpyData and flashGiftbagIpyData.GetMailKey() and curPlayer.GetLV() >= flashGiftbagIpyData.GetLVLimit():
- PlayerControl.SendMailByKey(flashGiftbagIpyData.GetMailKey(), [playerID], flashGiftbagIpyData.GetMailItemPrize())
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashGiftbagMailState % actNum, state)
- GameWorld.DebugLog(" 发送新限时礼包邮件提醒! state=%s,playerMailState=%s" % (state, playerMailState), playerID)
-
- if not isReset and cfgID:
- Sync_FlashGiftbagActionInfo(curPlayer, actNum)
- if giftbagTypeList:
- SyncFlashGiftbagBuyCount(curPlayer, actNum, giftbagTypeList=giftbagTypeList)
- return isReset
-
-def __ResetGiftbagItemBuyCount(curPlayer, giftbagTypeList, actNum):
- ##重置限时礼包限购物品次数
- syncIDList = []
- ipyDataMgr = IpyGameDataPY.IPY_Data()
- for i in xrange(ipyDataMgr.GetFlashGiftbagCount()):
- giftbag = ipyDataMgr.GetFlashGiftbagByIndex(i)
- if not giftbag.GetBuyCountLimit():
- continue
- if giftbag.GetGiftbagType() not in giftbagTypeList:
- continue
- buyCntKey = ChConfig.Def_PDict_FlashGiftbagBuyCount % (actNum, giftbag.GetGiftbagID())
- if curPlayer.NomalDictGetProperty(buyCntKey) <= 0:
- continue
- PlayerControl.NomalDictSetProperty(curPlayer, buyCntKey, 0)
- syncIDList.append(giftbag.GetGiftbagID())
- if syncIDList:
- SyncFlashGiftbagBuyCount(curPlayer, actNum, syncIDList)
- return
-
-def OnPlayerOrderGiftbag(curPlayer, giftbagIDList, addDRDict):
- ## 玩家订购限时礼包
-
- canBuy = False
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FlashGiftbag, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
-
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- if not state:
- continue
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
-
- if not giftbagTypeList:
- continue
- actGiftbagType = giftbagTypeList[-1] if state > len(giftbagTypeList) else giftbagTypeList[state - 1]
- giftbagIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("FlashGiftbag", {"GiftbagType":actGiftbagType}, True, True)
- actGiftbagIDList = []
- giftbagIpyData = None
- for ipyData in giftbagIpyDataList:
- actGiftbagIDList.append(ipyData.GetGiftbagID())
- if ipyData.GetGiftbagID() in giftbagIDList:
- giftbagIpyData = ipyData
- break
-
- if not giftbagIpyData:
- continue
-
- flashGiftbagIpyData = IpyGameDataPY.GetIpyGameData("ActFlashGiftbag", cfgID)
- if not flashGiftbagIpyData:
- continue
- isJueban = flashGiftbagIpyData.GetIsJueban()
- if isJueban:
- for ipyData in giftbagIpyDataList:
- juebanGiftbagID = ipyData.GetGiftbagID()
- juebanBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagBuyCount % (actNum, juebanGiftbagID))
- if juebanGiftbagID not in giftbagIDList and juebanBuyCount > 0:
- DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag JueBan pay limit! have already bought other giftbagID=%s" % juebanGiftbagID, addDRDict)
- return
-
- giftbagID = giftbagIpyData.GetGiftbagID()
- giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob())
- addDRDict.update({"giftbagID":giftbagID, "giftItemList":giftItemList})
- buyCountLimit = giftbagIpyData.GetBuyCountLimit()
- buyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagBuyCount % (actNum, giftbagID))
- if buyCountLimit:
- addDRDict.update({"buyCountLimit":buyCountLimit, "buyCount":buyCount})
- if buyCount >= buyCountLimit:
- PlayerCoin.ExchangePayCoin(curPlayer, "FlashGiftbag Pay count limit !buyCount=%s,buyCountLimit=%s"
- % (buyCount, buyCountLimit), addDRDict)
- return
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashGiftbagBuyCount % (actNum, giftbagID), buyCount + 1)
-
- if giftItemList:
- ItemControler.GivePlayerItemOrMail(curPlayer, giftItemList, "", event=[ChConfig.ItemGive_CTG, True, addDRDict])
-
- # 取玩家APPID,混服使用
- appID = GameWorld.GetPlayerPlatform(curPlayer)
- notifyKey = giftbagIpyData.GetNotifyKey()
- if notifyKey:
- orderIpyData = GetFlashGiftbagIDOrderInfoIpyData(giftbagID, appID)
- rmb = "0" if not orderIpyData else str(orderIpyData.GetPayRMBNum()) # RMB支持小数,这里直接转str广播
- PlayerControl.WorldNotify(0, notifyKey, [curPlayer.GetPlayerName(), rmb, giftbagIpyData.GetMainItemID()])
-
- SyncFlashGiftbagBuyCount(curPlayer, actNum, [giftbagID])
-
- canBuy = True
- GameWorld.DebugLog(" 购买限时礼包: actNum=%s,actGiftbagType=%s,giftbagID=%s,buyCount=%s,isJueban=%s"
- % (actNum, actGiftbagType, giftbagID, buyCount + 1, isJueban))
- break
-
- if not canBuy:
- DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag can not buy!", addDRDict)
- return
-
- return True
-
-def __GetJobItemList(itemList, job):
- jobItemList = []
- for itemID, itemCnt, isBind in itemList:
- if type(itemID) == int:
- jobItemList.append([itemID, itemCnt, isBind])
- elif job in itemID:
- jobItemList.append([itemID[job], itemCnt, isBind])
- return jobItemList
-
-def SyncFlashGiftbagBuyCount(curPlayer, actNum, syncIDList=[], giftbagTypeList=[]):
- ## 通知限时礼包玩家活动信息
- giftbagBuyInfo = ChPyNetSendPack.tagMCFlashGiftbagPlayerInfo()
- giftbagBuyInfo.ActNum = actNum
- giftbagBuyInfo.BuyCountList = []
- if syncIDList:
- for giftID in syncIDList:
- buyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagBuyCount % (actNum, giftID))
- buyCountInfo = ChPyNetSendPack.tagMCFlashGiftbagBuyCount()
- buyCountInfo.GiftbagID = giftID
- buyCountInfo.BuyCount = buyCnt
- giftbagBuyInfo.BuyCountList.append(buyCountInfo)
- else:
- ipyDataMgr = IpyGameDataPY.IPY_Data()
- for i in xrange(ipyDataMgr.GetFlashGiftbagCount()):
- giftbag = ipyDataMgr.GetFlashGiftbagByIndex(i)
- if not giftbag.GetBuyCountLimit():
- continue
- if giftbagTypeList and giftbag.GetGiftbagType() not in giftbagTypeList:
- continue
- giftID = giftbag.GetGiftbagID()
- buyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagBuyCount % (actNum, giftID))
- if buyCnt <= 0:
- continue
- buyCountInfo = ChPyNetSendPack.tagMCFlashGiftbagBuyCount()
- buyCountInfo.GiftbagID = giftID
- buyCountInfo.BuyCount = buyCnt
- giftbagBuyInfo.BuyCountList.append(buyCountInfo)
- giftbagBuyInfo.Count = len(giftbagBuyInfo.BuyCountList)
- NetPackCommon.SendFakePack(curPlayer, giftbagBuyInfo)
- return
-
-def Sync_FlashGiftbagActionInfo(curPlayer, actNum):
- ## 通知限时礼包活动信息
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_FlashGiftbag, actNum)
- if not actInfo:
- return
-
- #需要提前通知,所以去掉此限制
- #if not actInfo.get(ShareDefine.ActKey_State):
- # return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not cfgID:
- return
- giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
-
- if not giftbagTypeList:
- return
-
- flashGiftbagIpyData = IpyGameDataPY.GetIpyGameData("ActFlashGiftbag", cfgID)
- if not flashGiftbagIpyData:
- return
-
- startTimeList = flashGiftbagIpyData.GetStartTimeList()
- endTimeList = flashGiftbagIpyData.GetEndTimeList()
- if len(startTimeList) != len(endTimeList):
- GameWorld.ErrLog("限时礼包开关时间时分配置错误!cfgID=%s" % cfgID)
- return
-
- # 取玩家APPID,混服使用
- appID = GameWorld.GetPlayerPlatform(curPlayer)
-
- startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(flashGiftbagIpyData)
- packInfo = ChPyNetSendPack.tagMCFlashGiftbagInfo()
- packInfo.ActNum = actNum
- packInfo.StartDate = startDateStr
- packInfo.EndtDate = endDateStr
- packInfo.AdvanceMinutes = flashGiftbagIpyData.GetAdvanceMinutes()
- packInfo.ActivityTime = []
- for i, startTime in enumerate(startTimeList):
- timeInfo = ChPyNetSendPack.tagMCFlashGiftbagTime()
- timeInfo.StartTime = startTime
- timeInfo.EndtTime = endTimeList[i]
- packInfo.ActivityTime.append(timeInfo)
- packInfo.ActivityTimeCount = len(packInfo.ActivityTime)
- packInfo.IsDayReset = flashGiftbagIpyData.GetIsDayReset()
- packInfo.LimitLV = flashGiftbagIpyData.GetLVLimit()
- packInfo.GiftbagTypeInfo = []
- for giftbagType in giftbagTypeList:
-
- giftbagIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("FlashGiftbag", {"GiftbagType":giftbagType}, True, True)
- if not giftbagIpyDataList:
- continue
-
- giftType = ChPyNetSendPack.tagMCFlashGiftbagType()
- giftType.GiftbagInfo = []
-
- for giftIpyData in giftbagIpyDataList:
- giftbagID = giftIpyData.GetGiftbagID()
- orderIpyData = GetFlashGiftbagIDOrderInfoIpyData(giftbagID, appID)
- giftBag = ChPyNetSendPack.tagMCFlashGiftbag()
- giftBag.GiftID = giftbagID
- giftBag.OrderInfo = "" if not orderIpyData else orderIpyData.GetOrderInfo()
- giftBag.OrderInfoLen = len(giftBag.OrderInfo)
- giftBag.BuyCountLimit = giftIpyData.GetBuyCountLimit()
- giftBag.RMB = 0 if not orderIpyData else CommFunc.RMBToCoin(orderIpyData.GetPayRMBNum())
- giftBag.RMBOriginal = CommFunc.RMBToCoin(giftIpyData.GetOriginalRMB())
- giftBag.ItemInfo = []
- for itemID, itemCount, isBind in __GetJobItemList(giftIpyData.GetGiftItemList(), curPlayer.GetJob()):
- item = ChPyNetSendPack.tagMCFlashGiftbagItem()
- item.ItemID = itemID
- item.ItemCount = itemCount
- item.IsBind = isBind
- item.IsMainItem = int(itemID == giftIpyData.GetMainItemID())
- giftBag.ItemInfo.append(item)
- giftBag.GiftItemCount = len(giftBag.ItemInfo)
- giftType.GiftbagInfo.append(giftBag)
-
- giftType.GiftbagCount = len(giftType.GiftbagInfo)
- packInfo.GiftbagTypeInfo.append(giftType)
-
- packInfo.GiftbagTypeCount = len(packInfo.GiftbagTypeInfo)
- NetPackCommon.SendFakePack(curPlayer, packInfo)
- return
-
-def GetFlashGiftbagIDOrderInfoIpyData(giftbagID, appID):
- ## 获取礼包ID对应实际售价
- key = "FlashGiftbagIDRMB"
- FlashGiftbagIDRMBDict = IpyGameDataPY.GetConfigEx(key)
- if not FlashGiftbagIDRMBDict:
- FlashGiftbagIDRMBDict = {}
- ipyDataMgr = IpyGameDataPY.IPY_Data()
- for i in xrange(ipyDataMgr.GetOrderInfoCount()):
- ipyData = ipyDataMgr.GetOrderInfoByIndex(i)
- #if ipyData.GetAppID() != appID:
- # continue
- if not ipyData.GetGiftbagID():
- continue
- FlashGiftbagIDRMBDict[(ipyData.GetGiftbagID(), ipyData.GetAppID())] = ipyData
- IpyGameDataPY.SetConfigEx(key, FlashGiftbagIDRMBDict)
- return FlashGiftbagIDRMBDict.get((giftbagID, appID))
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py
deleted file mode 100644
index 400d4e8..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py
+++ /dev/null
@@ -1,323 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerFlashSale
-#
-# @todo:限时抢购活动
-# @author xdh
-# @date 2018-7-17
-# @version 1.0
-#
-# 详细描述: 限时抢购活动
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2018-7-17 12:00"""
-#-------------------------------------------------------------------------------
-
-import PyGameData
-import ShareDefine
-import PlayerControl
-import IpyGameDataPY
-import FunctionNPCCommon
-import ChPyNetSendPack
-import NetPackCommon
-import GameWorld
-import ChConfig
-
-import datetime
-
-def GetActNumDictType(actNum):
- '''获取活动分组编号对应的字典类型
- 因为本功能用了 ClearNomalDict 不同的活动分组必须不一样的字典类型,不能可能导致不同活动分组数据异常
- '''
- actType = actNum / 10
- if actType == ShareDefine.ActType_OpenComm:
- return ChConfig.Def_PDictType_FlashSale
- if actType == ShareDefine.ActType_MixServer:
- return ChConfig.Def_PDictType_FlashSaleMix
- if actType == ShareDefine.ActType_Feast:
- return ChConfig.Def_PDictType_FlashSaleFeast
- return 0
-
-def GetShopTypeList(cfgID, dayIndex, state, woldLV):
- if cfgID == 0 or state == 0:
- return []
- ipyData = IpyGameDataPY.GetIpyGameData("ActFlashSale", cfgID)
- if not ipyData:
- return []
- shopTypeList = GameWorld.GetDictValueByRangeKey(ipyData.GetShopTypeList(), woldLV, [])
- if not shopTypeList:
- return []
- todayShopTypeList = shopTypeList[-1] if dayIndex >= len(shopTypeList) else shopTypeList[dayIndex]
- return [todayShopTypeList[state - 1] if state - 1 < len(todayShopTypeList) else todayShopTypeList[-1]]
-
-
-def OnPlayerLogin(curPlayer):
-
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FlashSale, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- __CheckPlayerflashSaleAction(curPlayer, actNum)
-
- return
-
-def RefreshflashSaleActionInfo(actNum):
- ## 收到GameServer同步的活动信息,刷新活动信息
- playerManager = GameWorld.GetPlayerManager()
- for index in xrange(playerManager.GetPlayerCount()):
- curPlayer = playerManager.GetPlayerByIndex(index)
- if not GameWorld.IsNormalPlayer(curPlayer):
- continue
- __CheckPlayerflashSaleAction(curPlayer, actNum)
- return
-
-
-def __CheckPlayerflashSaleAction(curPlayer, actNum):
- ## 检查玩家限时抢购活动数据信息
-
- playerID = curPlayer.GetPlayerID()
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_FlashSale, actNum)
- actID = actInfo.get(ShareDefine.ActKey_ID, 0)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- dayIndex = actInfo.get(ShareDefine.ActKey_DayIndex, 0)
- woldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
- dType = GetActNumDictType(actNum)
-
- playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleID % actNum, 0, dType) # 玩家身上的活动ID
- playerActState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleState % actNum, 0, dType) # 玩家身上的活动State
- playerMailState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleMailState % actNum, 0, dType) # 玩家身上的活动提醒邮件状态
- isReset = False
- if actID != playerActID or (state != playerActState):
- isReset = True
- if cfgID:
- flashSaleIpyData = IpyGameDataPY.GetIpyGameData("ActFlashSale", cfgID)
- if not flashSaleIpyData:
- return
- startDate, _ = GameWorld.GetOperationActionDateStr(flashSaleIpyData)
- startTimeNum = GameWorld.ChangeTimeStrToNum(startDate, timeFormat=ChConfig.TYPE_Time_Format_Day)
- else:
- startTimeNum = 0
- if playerMailState != startTimeNum:
- GameWorld.DebugLog(' 限时抢购活动重置! actNum=%s,dType=%s' % (actNum, dType), playerID)
- curPlayer.ClearNomalDict(dType)
-
- shopTypeList = GetShopTypeList(cfgID, dayIndex, state, woldLV)
- if shopTypeList:
- FunctionNPCCommon.ResetShopItemBuyCountByShopType(curPlayer, shopTypeList)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashSaleID % actNum, actID, dType)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashSaleState % actNum, state, dType)
- #Sync_flashSaleActionInfo(curPlayer)
- GameWorld.DebugLog("限时抢购单场重置! actNum=%s,actID=%s,playerActID=%s,dayIndex=%s,state=%s,playerActState=%s,shopTypeList=%s,playerMailState=%s" % (actNum, actID, playerActID, dayIndex, state, playerActState, shopTypeList,playerMailState), playerID)
- else:
- GameWorld.DebugLog("限时抢购活动ID不变,不处理!actNum=%s,actID=%s,state=%s" % (actNum, actID, state), playerID)
-
- if cfgID:
- Sync_flashSaleActionInfo(curPlayer, actNum)
- Sync_FlashSaleAppointmentInfo(curPlayer, actNum)
- return isReset
-
-def IsFlashSaleShopType(shopType):
- ## 判断是否活动中的商店
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FlashSale, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
-
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- if not state:
- continue
- shopTypeList = GetShopTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0), state, actInfo.get(ShareDefine.ActKey_WorldLV, 0))
- if not shopTypeList:
- continue
- actShopType = shopTypeList[0]
- if shopType == actShopType:
- GameWorld.DebugLog("限时抢购活动中的商店类型: actNum=%s,shopType=%s" % (actNum, shopType))
- return True
-
- GameWorld.DebugLog("限时抢购非活动中或非活动中的商店类型!shopType=%s" % (shopType))
- return False
-
-def ProcessFlashSaleMail(curPlayer, tick):
- if not GameWorld.SetPlayerTickTime(curPlayer, ChConfig.TYPE_Player_Tick_FlashSale, tick):
- return
-
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FlashSale, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- if not actInfo:
- continue
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not cfgID:
- continue
- dType = GetActNumDictType(actNum)
- playerMailState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleMailState % actNum, 0, dType) # 玩家身上的活动提醒邮件状态
- if playerMailState:
- continue
- flashSaleIpyData = IpyGameDataPY.GetIpyGameData("ActFlashSale", cfgID)
- if not flashSaleIpyData:
- continue
- mailKey = flashSaleIpyData.GetMailKey()
- LVLimit = flashSaleIpyData.GetLVLimit()
- if not mailKey or curPlayer.GetLV() < LVLimit:
- continue
- startDate, endDate = GameWorld.GetOperationActionDateStr(flashSaleIpyData)
- startTimeList = flashSaleIpyData.GetStartTimeList()
- endTimeList = flashSaleIpyData.GetEndTimeList()
- if not startTimeList or not endTimeList:
- continue
- advanceMinutes = flashSaleIpyData.GetAdvanceMinutes()
- startTime = datetime.datetime.strptime("%s %s:00" % (startDate, startTimeList[0]), ChConfig.TYPE_Time_Format) + datetime.timedelta(minutes=-advanceMinutes)
- endTime = datetime.datetime.strptime("%s %s:00" % (endDate, endTimeList[-1]), ChConfig.TYPE_Time_Format)
- curDateTime = GameWorld.GetCurrentTime()
- if startTime <= curDateTime <= endTime:
- paramList = [startDate.replace('-','/'), endDate.replace('-','/'), GameWorld.GbkToCode('、').join(startTimeList)]
- PlayerControl.SendMailByKey(mailKey, [curPlayer.GetID()], flashSaleIpyData.GetMailItemPrize(), paramList)
- startTimeNum = GameWorld.ChangeTimeStrToNum(startDate, timeFormat=ChConfig.TYPE_Time_Format_Day)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashSaleMailState % actNum, startTimeNum, dType)
- GameWorld.DebugLog(" 发送新限时抢购邮件提醒!", curPlayer.GetID())
- # else:
- # GameWorld.DebugLog(" 发送新限时抢购邮件提醒 时间没到!startTime=%s,endTime=%s,curDateTime=%s"%(startTime,endTime,curDateTime), curPlayer.GetID())
- return
-
-
-def Sync_flashSaleActionInfo(curPlayer, actNum):
- ## 通知限时抢购活动信息
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_FlashSale, actNum)
- if not actInfo:
- return
-
- #需要提前通知,所以去掉此限制
- #if not actInfo.get(ShareDefine.ActKey_State):
- # return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not cfgID:
- return
-
- flashSaleIpyData = IpyGameDataPY.GetIpyGameData("ActFlashSale", cfgID)
- if not flashSaleIpyData:
- return
- woldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
- shopTypeList = GameWorld.GetDictValueByRangeKey(flashSaleIpyData.GetShopTypeList(), woldLV, [])
- startTimeList = flashSaleIpyData.GetStartTimeList()
- endTimeList = flashSaleIpyData.GetEndTimeList()
- if len(startTimeList) != len(endTimeList):
- GameWorld.ErrLog("限时抢购开关时间时分配置错误!cfgID=%s" % cfgID)
- return
- job = curPlayer.GetJob()
- startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(flashSaleIpyData)
- packInfo = ChPyNetSendPack.tagMCFlashSaleInfo()
- packInfo.ActNum = actNum
- packInfo.StartDate = startDateStr
- packInfo.EndtDate = endDateStr
- packInfo.AdvanceMinutes = flashSaleIpyData.GetAdvanceMinutes()
- packInfo.ActivityTime = []
- for i, startTime in enumerate(startTimeList):
- timeInfo = ChPyNetSendPack.tagMCFlashSaleTime()
- timeInfo.StartTime = startTime
- timeInfo.EndtTime = endTimeList[i]
- packInfo.ActivityTime.append(timeInfo)
- packInfo.ActivityTimeCount = len(packInfo.ActivityTime)
- packInfo.IsDayReset = flashSaleIpyData.GetIsDayReset()
- packInfo.LimitLV = flashSaleIpyData.GetLVLimit()
- packInfo.ShopInfo = []
- for dayIndex, shopList in enumerate(shopTypeList):
- for timeIndex, shopType in enumerate(shopList):
- shopItemIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("Store", {"ShopType":shopType}, True, True)
- if not shopItemIpyDataList:
- continue
-
- shop = ChPyNetSendPack.tagMCFlashSaleShop()
- shop.DayIndex = dayIndex
- shop.TimeIndex = timeIndex
- shop.GiftbagInfo = []
-
- for itemIpyData in shopItemIpyDataList:
- giftBag = ChPyNetSendPack.tagMCFlashSaleGiftbag()
- giftBag.GiftID = itemIpyData.GetID()
- giftBag.BuyCountLimit = itemIpyData.GetLimitCnt()
- giftBag.ServerBuyCountLimit = 0
- giftBag.MoneyType = itemIpyData.GetMoneyType()
- giftBag.MoneyNumber = itemIpyData.GetMoneyNum()
- giftBag.MoneyOriginal = itemIpyData.GetMoneyOriginal()
- giftBag.ItemID = itemIpyData.GetItemID()
- giftBag.ItemCount = itemIpyData.GetItemCnt()
- giftBag.IsBind = 0
- shop.GiftbagInfo.append(giftBag)
-
- shop.GiftbagCount = len(shop.GiftbagInfo)
- packInfo.ShopInfo.append(shop)
-
- packInfo.ShopCount = len(packInfo.ShopInfo)
- NetPackCommon.SendFakePack(curPlayer, packInfo)
- return
-
-
-#// AA 05 限时抢购预约 #tagCMFlashSaleAppointment
-#
-#struct tagCMFlashSaleAppointment
-#{
-# tagHead Head;
-# BYTE ActNum; //活动编号
-# DWORD GoodsID; // 抢购商品标识
-# BYTE State; // 1-预约 0-取消
-#};
-def OnFlashSaleAppointment(index, packData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- actNum = packData.ActNum
- goodsID = packData.GoodsID
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_FlashSale, actNum)
- if not actInfo:
- return
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not cfgID:
- return
- dType = GetActNumDictType(actNum)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashSaleYY % (actNum, goodsID), packData.State, dType)
- Sync_FlashSaleAppointmentInfo(curPlayer, actNum, goodsID)
- return
-
-
-def Sync_FlashSaleAppointmentInfo(curPlayer, actNum, goodsID=0):
- ##通知限时抢购预约情况
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_FlashSale, actNum)
- if not actInfo:
- return
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not cfgID:
- return
- flashSaleIpyData = IpyGameDataPY.GetIpyGameData("ActFlashSale", cfgID)
- if not flashSaleIpyData:
- return
- woldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
- dType = GetActNumDictType(actNum)
-
- packInfo = ChPyNetSendPack.tagMCFlashSaleAppointmentInfo()
- packInfo.ActNum = actNum
- packInfo.GoodsList = []
- if goodsID == 0:
- packInfo.IsAll = 1
- shopTypeList = GameWorld.GetDictValueByRangeKey(flashSaleIpyData.GetShopTypeList(), woldLV, [])
- for dayIndex, shopList in enumerate(shopTypeList):
- for timeIndex, shopType in enumerate(shopList):
- shopItemIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("Store", {"ShopType":shopType}, True, True)
- if not shopItemIpyDataList:
- continue
- for i in xrange(len(shopItemIpyDataList)):
- goodsMark = dayIndex * 10000 + timeIndex * 100 + i #商品标识
- isAppointment = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleYY % (actNum, goodsMark), 0, dType)
- if isAppointment:
- appoinetmentPack = ChPyNetSendPack.tagMCFlashSaleAppointmentState()
- appoinetmentPack.GoodsMark = goodsMark
- appoinetmentPack.State = 1
- packInfo.GoodsList.append(appoinetmentPack)
- else:
- packInfo.IsAll = 0
- isAppointment = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleYY % (actNum, goodsID), 0, dType)
- appoinetmentPack = ChPyNetSendPack.tagMCFlashSaleAppointmentState()
- appoinetmentPack.GoodsMark = goodsID
- appoinetmentPack.State = isAppointment
- packInfo.GoodsList.append(appoinetmentPack)
- packInfo.GoodsCount = len(packInfo.GoodsList)
- NetPackCommon.SendFakePack(curPlayer, packInfo)
- return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFreeGoods.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFreeGoods.py
deleted file mode 100644
index ff2cbd0..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFreeGoods.py
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerFreeGoods
-#
-# @todo:极品白拿
-# @author xdh
-# @date 2018-07-10 16:50
-# @version 1.0
-#
-#
-# 详细描述: 极品白拿
-#
-#---------------------------------------------------------------------
-"""Version = 2018-07-10 16:50"""
-#---------------------------------------------------------------------
-
-import GameWorld
-import ChConfig
-import IPY_GameWorld
-import IpyGameDataPY
-import ChPyNetSendPack
-import PlayerControl
-import ItemControler
-import NetPackCommon
-
-import time
-
-
-
-def DoFreeGoodsOpen(curPlayer):
- ## 极品白拿开启 记录开启时间
-
- FreeGoodsOpenTime = IpyGameDataPY.GetFuncCfg("FreeGoodsOpenTime")
- if not FreeGoodsOpenTime:
- return
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FreeGoodsOpenTime, int(time.time()))
-
- Sync_FreeGoodsInfo(curPlayer)
- return
-
-## 登陆通知
-# @param curPlayer
-# @return None
-def OnLogin(curPlayer):
- openTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsOpenTime)
- if not openTime:
- return
- Sync_FreeGoodsInfo(curPlayer)
- return
-
-## 过天
-# @param curPlayer
-# @return None
-def OnDay(curPlayer):
- '''当抢购倒计时结束,玩家有可领取返还的仙玉,且没有在可领取倒计时中的仙玉时,
- 若玩家在最后一个可领取返还仙玉倒计时结束的当天未领取仙玉,则在隔天凌晨5:00帮其把所有未领取仙玉领取通过邮件发放
- '''
- openTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsOpenTime)
- if not openTime:
- return
- curTimeNum = int(time.time())
- if curTimeNum - openTime <= IpyGameDataPY.GetFuncCfg('FreeGoodsOpenTime'):
- #GameWorld.DebugLog("极品白拿购买时间未到期,不处理!")
- return
- giveMoney = 0
- giveGoodsIDList = []
- for i in xrange(IpyGameDataPY.IPY_Data().GetFreeGoodsCount()):
- ipyData = IpyGameDataPY.IPY_Data().GetFreeGoodsByIndex(i)
- goodsID = ipyData.GetID()
- goodsState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsBuyState % goodsID)
- if goodsState in [0, 1]:
- continue
- buyTime = goodsState
- passDays = GameWorld.GetDiff_Day(curTimeNum, buyTime)
- if passDays <= ipyData.GetReturnDays():
- giveMoney = 0
- giveGoodsIDList = []
- #GameWorld.DebugLog(" 还有白拿奖励领奖时间未预期,不处理! goodsID=%s,passDays=%s" % (goodsID, passDays))
- break
- giveMoney += ipyData.GetNeedMoney()
- giveGoodsIDList.append(goodsID)
- if giveMoney:
- GameWorld.DebugLog(' 极品白拿邮件返还 giveMoney=%s,giveGoodsIDList=%s' % (giveMoney, giveGoodsIDList), curPlayer.GetID())
- for goodsID in giveGoodsIDList:
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FreeGoodsBuyState % goodsID, 1)
- PlayerControl.SendMailByKey('WhiteTakeJade', [curPlayer.GetID()], [], [], giveMoney)
-
- Sync_FreeGoodsInfo(curPlayer)
- return
-
-def OnGetFreeGoods(curPlayer, freeGoodsID):
- #购买or领取返还
- openTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsOpenTime)
- if not openTime:
- GameWorld.DebugLog(' 极品白拿活动未开启!', curPlayer.GetID())
- return
- ipyData = IpyGameDataPY.GetIpyGameData('FreeGoods', freeGoodsID)
- if not ipyData:
- return
- curTimeNum = int(time.time())
- goodsState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsBuyState % freeGoodsID)
- addDataDict = {"freeGoodsID":freeGoodsID}
- if goodsState == 1:
- GameWorld.DebugLog(' 极品白拿已领取该奖励!', curPlayer.GetID())
- return
- if goodsState != 0:
- #领取返还
- buyTime = goodsState
- passDays = GameWorld.GetDiff_Day(curTimeNum, buyTime)
- if passDays < ipyData.GetReturnDays():
- GameWorld.DebugLog(' 极品白拿 未到返还时间!freeGoodsID=%s, buyTime=%s, passDays=%s < %s'
- % (freeGoodsID, GameWorld.ChangeTimeNumToStr(buyTime), passDays, ipyData.GetReturnDays()), curPlayer.GetID())
- return
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FreeGoodsBuyState % freeGoodsID, 1)
- returnMoney = ipyData.GetNeedMoney()
-
- PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, returnMoney, ChConfig.Def_GiveMoney_FreeGoods, addDataDict)
-
- else:
- #购买
- if curTimeNum - openTime > IpyGameDataPY.GetFuncCfg('FreeGoodsOpenTime'):
- GameWorld.DebugLog(' 极品白拿活动已过期!', curPlayer.GetID())
- return
- needMoney = ipyData.GetNeedMoney()
- if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, needMoney, ChConfig.Def_Cost_FreeGoods, addDataDict):
- return
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FreeGoodsBuyState % freeGoodsID, curTimeNum)
- #给物品
- awardItemDict = ipyData.GetAwardItem()
- awardItemList = awardItemDict.get(str(curPlayer.GetJob()), [])
- ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, "WhiteTakeBagFull", event=["FreeGoods", False, addDataDict])
-
- Sync_FreeGoodsInfo(curPlayer, [freeGoodsID])
- return
-
-def Sync_FreeGoodsInfo(curPlayer, freeGoodsIDList=[]):
- #通知极品白拿信息
- sendPack = ChPyNetSendPack.tagMCFreeGoodsInfo()
- sendPack.Clear()
- sendPack.OpenTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsOpenTime)
- sendPack.FreeGoodsList = []
- for i in xrange(IpyGameDataPY.IPY_Data().GetFreeGoodsCount()):
- ipyData = IpyGameDataPY.IPY_Data().GetFreeGoodsByIndex(i)
- goodsID = ipyData.GetID()
- if freeGoodsIDList and goodsID not in freeGoodsIDList:
- continue
- goodsInfo = ChPyNetSendPack.tagMCFreeGoods()
- goodsInfo.ID = goodsID
- goodsInfo.BuyState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsBuyState % goodsID)
- sendPack.FreeGoodsList.append(goodsInfo)
-
- sendPack.Count = len(sendPack.FreeGoodsList)
- NetPackCommon.SendFakePack(curPlayer, sendPack)
- return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerLuckyTreasure.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerLuckyTreasure.py
deleted file mode 100644
index 4418f33..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerLuckyTreasure.py
+++ /dev/null
@@ -1,242 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerLuckyTreasure
-#
-# @todo:幸运鉴宝
-# @author xdh
-# @date 2019-2-12 19:50
-# @version 1.0
-#
-#
-# 详细描述: 幸运鉴宝
-#
-#---------------------------------------------------------------------
-"""Version = 2019-2-12 19:50"""
-#---------------------------------------------------------------------
-
-import IPY_GameWorld
-import GameWorld
-import ChConfig
-import IpyGameDataPY
-import PlayerControl
-import ChPyNetSendPack
-import NetPackCommon
-import ShareDefine
-import PyGameData
-import ItemControler
-import ItemCommon
-
-
-
-def OnLogin(curPlayer):
- isReset = __CheckPlayerLuckyTreasureAction(curPlayer)
- if not isReset:
- actCostRebateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_LuckyTreasure, {})
- # 活动中同步活动信息
- if actCostRebateInfo.get(ShareDefine.ActKey_State):
- SyncLuckyTreasureInfo(curPlayer)
- SyncLuckyTreasureResultInfo(curPlayer)
-
- return
-
-def RefreshLuckyTreasureAction():
- __InitLuckyTreasureRateList()
- playerManager = GameWorld.GetPlayerManager()
- for i in xrange(playerManager.GetPlayerCount()):
- curPlayer = playerManager.GetPlayerByIndex(i)
- if not GameWorld.IsNormalPlayer(curPlayer):
- continue
- __CheckPlayerLuckyTreasureAction(curPlayer)
- return
-
-def __CheckPlayerLuckyTreasureAction(curPlayer):
- ## 检查玩家幸运鉴宝活动数据信息
- global g_randomWellDict
-
- playerID = curPlayer.GetPlayerID()
-
- actLuckyTreasureInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_LuckyTreasure, {})
- LuckyTreasureID = actLuckyTreasureInfo.get(ShareDefine.ActKey_ID, 0)
- state = actLuckyTreasureInfo.get(ShareDefine.ActKey_State, 0)
- #cfgID = actLuckyTreasureInfo.get(ShareDefine.ActKey_CfgID, 0)
- worldLV = actLuckyTreasureInfo.get(ShareDefine.ActKey_WorldLV, 0)
- playerLuckyTreasureID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_LuckyTreasureID) # 玩家身上的活动ID
-
- # 活动ID 相同的话不处理
- if LuckyTreasureID == playerLuckyTreasureID:
- #GameWorld.DebugLog("幸运鉴宝活动ID不变,不处理!", curPlayer.GetPlayerID())
- return
- msgStr = str([ShareDefine.Def_UniversalGameRecType_LuckyTreasure, 2])
- GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'DelUniversalGameRec', msgStr, len(msgStr))
- GameWorld.DebugLog("幸运鉴宝重置! LuckyTreasureID=%s,playerLuckyTreasureID=%s,state=%s,worldLv=%s"
- % (LuckyTreasureID, playerLuckyTreasureID, state, worldLV), playerID)
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasureID, LuckyTreasureID)
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasureFree, 0)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasurePoint, 0)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasureCnt, 0)
-
-
- SyncLuckyTreasureInfo(curPlayer)
- SyncLuckyTreasureResultInfo(curPlayer)
- return True
-
-def __InitLuckyTreasureRateList():
- global g_itemRateList
- actLuckyTreasureInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_LuckyTreasure, {})
- state = actLuckyTreasureInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actLuckyTreasureInfo.get(ShareDefine.ActKey_CfgID, 0)
- worldLV = actLuckyTreasureInfo.get(ShareDefine.ActKey_WorldLV, 0)
- if not cfgID or not worldLV or not state:
- return
- actIpyData = IpyGameDataPY.GetIpyGameData("ActLuckyTreasure", cfgID)
- if not actIpyData:
- return
- templateID = actIpyData.GetTemplateID()
- ipyDataList = IpyGameDataPY.GetIpyGameDataList('LuckyTreasureTemplate', templateID)
- if not ipyDataList:
- return
- tWeight = 0
- g_itemRateList = []
- for ipyData in ipyDataList:
- worldLVLimit = ipyData.GetWorldLVLimit()
- if worldLV < worldLVLimit[0] or worldLV > worldLVLimit[1]:
- continue
- itemID = ipyData.GetItemID()
- itemCnt = ipyData.GetItemCnt()
- isBind = ipyData.GetIsBind()
- weight = ipyData.GetWeight()
- tWeight += weight
- g_itemRateList.append([tWeight, [itemID, itemCnt, isBind]])
- return
-
-def __GetRandomRateList():
- if not g_itemRateList:
- __InitLuckyTreasureRateList()
- return g_itemRateList
-
-
-#// AA 08 开始幸运鉴宝 #tagCMStartLuckyTreasure
-#struct tagCMStartLuckyTreasure
-#{
-# tagHead Head;
-#};
-def OnStartLuckyTreasure(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- actBossRebornInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_LuckyTreasure, {})
- state = actBossRebornInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actBossRebornInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not state or not cfgID:
- return
- actIpyData = IpyGameDataPY.GetIpyGameData("ActLuckyTreasure", cfgID)
- if not actIpyData:
- return
-
- hasFree = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_LuckyTreasureFree)
- if hasFree:
- costMoney = IpyGameDataPY.GetFuncCfg('LuckyAppraisal')
- if not PlayerControl.HaveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costMoney):
- return
- # 检查背包
- needSpace = 1
- packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
- if needSpace > packSpace:
- PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
- return
-
- randomRateList = __GetRandomRateList()
- if not randomRateList:
- return
- greatItem = randomRateList[-1][1]
-
- curLuckyPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_LuckyTreasurePoint)
- curLuckyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_LuckyTreasureCnt)
-
- maxLuckyPoint = actIpyData.GetLuckyPoint()
- singlePoint = IpyGameDataPY.GetFuncCfg('LuckyAppraisal', 2)
- if curLuckyPoint + singlePoint >= maxLuckyPoint:
- giveItem = greatItem
- newLuckyPoint = 0
- else:
- if curLuckyCnt < IpyGameDataPY.GetFuncCfg('LuckyAppraisal', 3):
- #前X次鉴宝不能出大奖
- randomResultList = GameWorld.GetResultByRandomListEx(randomRateList[:-1], 1, [])
- else:
- randomResultList = GameWorld.GetResultByRandomListEx(randomRateList, 1, [])
- if len(randomResultList) != 1:
- GameWorld.DebugLog(' 开始幸运鉴宝 随机库结果 获取错误 !')
- return
- giveItem = randomResultList[0]
- if giveItem == greatItem:
- newLuckyPoint = 0
- playerName = curPlayer.GetName()
- PlayerControl.WorldNotify(0, 'LuckyAppraisal_1', [playerName, greatItem[0]])
- msgStr = str([ShareDefine.Def_UniversalGameRecType_LuckyTreasure, [], [curPlayer.GetName()], 2, 0])
- GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'AddUniversalGameRec', msgStr, len(msgStr))
-
- else:
- newLuckyPoint = curLuckyPoint + singlePoint
- if hasFree:
- PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costMoney, ChConfig.Def_Cost_LuckyTreasure)
- else:
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasureFree, 1)
- #更新幸运值
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasurePoint, newLuckyPoint)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasureCnt, curLuckyCnt + 1)
-
- for itemID, itemCount, isBind in [giveItem]:
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem], event=[ChConfig.ItemGive_LuckyTreasure, False, {"isFree":not hasFree}])
-
- SyncLuckyTreasureResultInfo(curPlayer, giveItem)
- return
-
-
-def SyncLuckyTreasureInfo(curPlayer):
- ##同步幸运鉴宝活动信息
- actBossRebornInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_LuckyTreasure, {})
- state = actBossRebornInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actBossRebornInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not state or not cfgID:
- return
- actIpyData = IpyGameDataPY.GetIpyGameData("ActLuckyTreasure", cfgID)
- if not actIpyData:
- return
- startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(actIpyData)
- actInfo = ChPyNetSendPack.tagMCLuckyTreasureInfo()
- actInfo.Clear()
- actInfo.StartDate = startDateStr
- actInfo.EndtDate = endDateStr
- actInfo.ResetType = actIpyData.GetResetType()
- actInfo.LimitLV = actIpyData.GetLVLimit()
- actInfo.LuckyPoint = actIpyData.GetLuckyPoint()
- actInfo.ItemList = []
- randomItemList = __GetRandomRateList()
- for itemInfo in randomItemList:
- itemID, itemCnt, isBind = itemInfo[1]
- wellItemInfo = ChPyNetSendPack.tagMCLuckyTreasureItem()
- wellItemInfo.ItemID = itemID
- wellItemInfo.ItemCnt = itemCnt
- wellItemInfo.IsBind = isBind
- actInfo.ItemList.append(wellItemInfo)
- actInfo.Count = len(actInfo.ItemList)
- NetPackCommon.SendFakePack(curPlayer, actInfo)
- return
-
-
-def SyncLuckyTreasureResultInfo(curPlayer, itemInfo=[]):
- ##同步幸运鉴宝玩家信息
- packInfo = ChPyNetSendPack.tagMCLuckyTreasureResultInfo()
- packInfo.Clear()
- packInfo.LuckyPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_LuckyTreasurePoint)
- packInfo.HasFree = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_LuckyTreasureFree)
- if itemInfo:
- packInfo.ItemID = itemInfo[0]
- packInfo.ItemCnt = itemInfo[1]
- packInfo.IsBind = itemInfo[2]
- NetPackCommon.SendFakePack(curPlayer, packInfo)
- return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSpringSale.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSpringSale.py
deleted file mode 100644
index 8abbaef..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSpringSale.py
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerSpringSale
-#
-# @todo:限时特惠活动
-# @author hxp
-# @date 2018-7-17
-# @version 1.0
-#
-# 详细描述: 限时特惠活动
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2018-7-17 12:00"""
-#-------------------------------------------------------------------------------
-
-import PyGameData
-import ShareDefine
-import PlayerControl
-import IpyGameDataPY
-import FunctionNPCCommon
-import ChPyNetSendPack
-import NetPackCommon
-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):
-
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_SpringSale, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
- __CheckPlayerSpringSaleAction(curPlayer, actNum)
-
- return
-
-def RefreshSpringSaleActionInfo(actNum):
- ## 收到GameServer同步的活动信息,刷新活动信息
- playerManager = GameWorld.GetPlayerManager()
- for index in xrange(playerManager.GetPlayerCount()):
- curPlayer = playerManager.GetPlayerByIndex(index)
- if not GameWorld.IsNormalPlayer(curPlayer):
- continue
- __CheckPlayerSpringSaleAction(curPlayer, actNum)
- return
-
-def __CheckPlayerSpringSaleAction(curPlayer, actNum):
- ## 检查玩家限时特惠活动数据信息
-
- playerID = curPlayer.GetPlayerID()
-
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_SpringSale, actNum)
- actID = actInfo.get(ShareDefine.ActKey_ID, 0)
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- woldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
- playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SpringSaleID % actNum) # 玩家身上的活动ID
- 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 % actNum, actID)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SpringSaleMailState % actNum, 0)
- #Sync_SpringSaleActionInfo(curPlayer)
- GameWorld.DebugLog("限时特惠重置! actNum=%s,actID=%s,playerActID=%s,state=%s,shopTypeList=%s" % (actNum, actID, playerActID, state, shopTypeList), playerID)
- else:
- GameWorld.DebugLog("限时特惠活动ID不变,不处理!actNum=%s,actID=%s" % (actNum, actID), playerID)
-
- playerMailState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SpringSaleMailState % actNum) # 玩家身上的活动提醒邮件状态
- 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 % actNum, state)
- GameWorld.DebugLog(" 发送新限时特惠邮件提醒! state=%s,playerMailState=%s" % (state, playerMailState), playerID)
-
- if cfgID:
- Sync_SpringSaleActionInfo(curPlayer, actNum)
- return isReset
-
-def IsSpringSaleShopType(shopType):
- ## 判断是否活动中的商店
- for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_SpringSale, {}).values():
- actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
-
- state = actInfo.get(ShareDefine.ActKey_State, 0)
- if not state:
- continue
- shopTypeList = GetShopTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
- if not shopTypeList:
- continue
- actShopType = shopTypeList[-1] if state > len(shopTypeList) else shopTypeList[state - 1]
- if shopType == actShopType:
- GameWorld.DebugLog("限时特惠活动中的商店类型: actNum=%s,shopType=%s" % (actNum, shopType))
- return True
-
- GameWorld.DebugLog("限时特惠非活动中或非活动中的商店类型!shopType=%s" % (shopType))
- return False
-
-def Sync_SpringSaleActionInfo(curPlayer, actNum):
- ## 通知限时特惠活动信息
- actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_SpringSale, actNum)
- if not actInfo:
- return
-
- #需要提前通知,所以去掉此限制
- #if not actInfo.get(ShareDefine.ActKey_State):
- # return
-
- cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
- 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)
- if not springSaleIpyData:
- return
-
- startTimeList = springSaleIpyData.GetStartTimeList()
- endTimeList = springSaleIpyData.GetEndTimeList()
- if len(startTimeList) != len(endTimeList):
- GameWorld.ErrLog("限时特惠开关时间时分配置错误!cfgID=%s" % cfgID)
- return
- job = curPlayer.GetJob()
- startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(springSaleIpyData)
- packInfo = ChPyNetSendPack.tagMCSpringSaleInfo()
- packInfo.ActNum = actNum
- packInfo.StartDate = startDateStr
- packInfo.EndtDate = endDateStr
- packInfo.AdvanceMinutes = springSaleIpyData.GetAdvanceMinutes()
- packInfo.ActivityTime = []
- for i, startTime in enumerate(startTimeList):
- timeInfo = ChPyNetSendPack.tagMCSpringSaleTime()
- timeInfo.StartTime = startTime
- timeInfo.EndtTime = endTimeList[i]
- packInfo.ActivityTime.append(timeInfo)
- packInfo.ActivityTimeCount = len(packInfo.ActivityTime)
- packInfo.IsDayReset = springSaleIpyData.GetIsDayReset()
- packInfo.LimitLV = springSaleIpyData.GetLVLimit()
- packInfo.ShopInfo = []
- for shopType in shopTypeList:
-
- shopItemIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("Store", {"ShopType":shopType}, True, True)
- if not shopItemIpyDataList:
- continue
-
- shop = ChPyNetSendPack.tagMCSpringSaleShop()
- shop.GiftbagInfo = []
-
- for itemIpyData in shopItemIpyDataList:
- giftBag = ChPyNetSendPack.tagMCSpringSaleGiftbag()
- giftBag.GiftID = itemIpyData.GetID()
- giftBag.BuyCountLimit = itemIpyData.GetLimitCnt()
- giftBag.MoneyType = itemIpyData.GetMoneyType()
- giftBag.MoneyNumber = itemIpyData.GetMoneyNum()
- giftBag.MoneyOriginal = itemIpyData.GetMoneyOriginal()
- giftBag.ItemInfo = []
- itemList = [[itemIpyData.GetItemID(), itemIpyData.GetItemCnt(), 0]]
- itemList += itemIpyData.GetItemListEx()
- for itemID, itemCount, isBind in itemList:
- item = ChPyNetSendPack.tagMCSpringSaleItem()
- item.ItemID = itemID
- item.ItemCount = itemCount
- item.IsBind = isBind
- #item.IsMainItem = int(itemID == FunctionNPCCommon.GetShopJobItem(job, itemIpyData.GetMainItemID(), jobItemList))
- giftBag.ItemInfo.append(item)
- giftBag.GiftItemCount = len(giftBag.ItemInfo)
- shop.GiftbagInfo.append(giftBag)
-
- shop.GiftbagCount = len(shop.GiftbagInfo)
- packInfo.ShopInfo.append(shop)
-
- packInfo.ShopCount = len(packInfo.ShopInfo)
- NetPackCommon.SendFakePack(curPlayer, packInfo)
- return
-
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
index 20d6a29..f72b7e7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
@@ -1041,8 +1041,6 @@
#成就
PlayerSuccess.FinishDelayAddSuccessProgress(curPlayer, tick, False)
- #限时抢购
- #PlayerFlashSale.ProcessFlashSaleMail(curPlayer, tick)
#淘金
PlayerGoldRush.OnProcess(curPlayer)
#游历
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 ae679c0..b710702 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
@@ -24,7 +24,6 @@
import ItemControler
import NetPackCommon
import PlayerActLunhuidian
-import PlayerActYunshi
import PlayerActivity
import PlayerSuccess
import PlayerGoldInvest
@@ -127,8 +126,8 @@
def IsActTreasureType(curPlayer, treasureType):
## 是否活动中的寻宝类型
- if PlayerActYunshi.IsActTreasureType(curPlayer, treasureType):
- return True
+ #if PlayerActYunshi.IsActTreasureType(curPlayer, treasureType):
+ # return True
return False
#// A5 69 寻宝心愿物品选择 #tagCSTreasureWishSelect
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py
deleted file mode 100644
index 599b016..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py
+++ /dev/null
@@ -1,453 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerWishingWell
-#
-# @todo:许愿池
-# @author xdh
-# @date 2018-10-18 19:50
-# @version 1.0
-#
-#
-# 详细描述: 许愿池
-#
-#---------------------------------------------------------------------
-"""Version = 2018-10-18 19:50"""
-#---------------------------------------------------------------------
-
-import IPY_GameWorld
-import GameWorld
-import ChConfig
-import IpyGameDataPY
-import PlayerControl
-import ChPyNetSendPack
-import NetPackCommon
-import ShareDefine
-import PyGameData
-import ItemControler
-import ItemCommon
-
-import datetime
-import time
-
-g_randomWellDict = {}
-
-
-(
-WellType_Select, #可选库
-WellType_Result, #结果库
-WellType_Get, #可领取库
-) = range(3)
-
-
-def __GetItemInfoByData(curPlayer, wellType, i):
- itemData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WishingWellItem % (wellType, i))
- itemCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WishingWellItemCnt % (wellType, i))
- itemID, isBind, isSpecial = itemData / 100, itemData % 100 / 10, itemData % 10
- return itemID, itemCnt, isBind, isSpecial
-
-
-def __SetItemData(curPlayer, wellType, i, itemID, itemCnt, isBind, isSpecial):
- itemID = __GetJobItemID(curPlayer, itemID)
- itemData = itemID * 100 + isBind * 10 + isSpecial
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellItem % (wellType, i), itemData)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellItemCnt % (wellType, i), itemCnt)
- return
-
-
-def __GetJobItemID(curPlayer, itemID):
- if type(itemID) == int:
- return itemID
- if type(itemID) != dict:
- return 0
- return itemID.get(curPlayer.GetJob(), 0)
-
-
-def OnLogin(curPlayer):
- isReset = __CheckPlayerWishingWellAction(curPlayer)
- if not isReset:
- actCostRebateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {})
- # 活动中同步活动信息
- if actCostRebateInfo.get(ShareDefine.ActKey_State):
- SyncWishingWellInfo(curPlayer)
- SyncWishingWellPlayerInfo(curPlayer)
- elif __GetItemInfoByData(curPlayer, WellType_Get, 0)[0]:
- SyncWishingWellPlayerInfo(curPlayer)
- return
-
-def OnDay(curPlayer):
- actCostRebateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {})
- if not actCostRebateInfo.get(ShareDefine.ActKey_State):
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellFreeTime, 0)
- __SendWishingWellMail(curPlayer, int(time.time()))
- return
-
-def RefreshWishingWellAction():
- __InitWishRateList()
- playerManager = GameWorld.GetPlayerManager()
- for i in xrange(playerManager.GetPlayerCount()):
- curPlayer = playerManager.GetPlayerByIndex(i)
- if not GameWorld.IsNormalPlayer(curPlayer):
- continue
- __CheckPlayerWishingWellAction(curPlayer)
- return
-
-
-def __CheckPlayerWishingWellAction(curPlayer):
- ## 检查玩家许愿池活动数据信息
- global g_randomWellDict
-
- playerID = curPlayer.GetPlayerID()
-
- actWishingWellInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {})
- WishingWellID = actWishingWellInfo.get(ShareDefine.ActKey_ID, 0)
- state = actWishingWellInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actWishingWellInfo.get(ShareDefine.ActKey_CfgID, 0)
- worldLV = actWishingWellInfo.get(ShareDefine.ActKey_WorldLV, 0)
- playerWishingWellID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WishingWellID) # 玩家身上的活动ID
-
- # 活动ID 相同的话不处理
- if WishingWellID == playerWishingWellID:
- #GameWorld.DebugLog("许愿池活动ID不变,不处理!", curPlayer.GetPlayerID())
- return
-
- GameWorld.DebugLog("许愿池重置! WishingWellID=%s,playerWishingWellID=%s,state=%s,worldLv=%s"
- % (WishingWellID, playerWishingWellID, state, worldLV), playerID)
-
- # 未领取的奖励邮件发放
- curDataTime = GameWorld.GetCurrentTime()
- curDayTime = datetime.datetime(curDataTime.year, curDataTime.month, curDataTime.day, 0, 0, 0)
- curDayTimeNum = GameWorld.ChangeTimeStrToNum(str(curDayTime))
- __SendWishingWellMail(curPlayer, WishingWellID or curDayTimeNum, state)
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellID, WishingWellID)
- #每天开始随机一次免费盘
- if state:
- #g_randomWellDict = {}
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellRefreshCnt, 0)
- __DoActWishingRefresh(curPlayer, 1, True)
-
- SyncWishingWellInfo(curPlayer)
- SyncWishingWellPlayerInfo(curPlayer)
- return True
-
-
-def __SendWishingWellMail(curPlayer, curTime, state=-1):
- lastAwardTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WishingWellAwardTime)
-
- if not lastAwardTime:
- if state != -1:
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellAwardTime, curTime)
- GameWorld.DebugLog('__SendWishingWellMail curTime =%s'%curTime)
- return
- GameWorld.DebugLog('许愿池未领取的奖励邮件发放检查 lastAwardTime=%s,state=%s,pass=%s'%(lastAwardTime, state, curTime - lastAwardTime))
- passDay = (curTime - lastAwardTime)/86000
- if passDay <= 0:
- return
- isOver = True
- count = IpyGameDataPY.GetFuncCfg('WishingWellCfg', 4)
- mailItemList = []
- saveItemList = []
- for i in xrange(count):
- itemID, itemCnt, isBind, isSpecial = __GetItemInfoByData(curPlayer, WellType_Get, i)
- if itemID:
- mailItemList.append([itemID, itemCnt, isBind])
- __SetItemData(curPlayer, WellType_Get, i, 0, 0, 0, 0)
- j = 0
- for i in xrange(count):
- itemID, itemCnt, isBind, isSpecial = __GetItemInfoByData(curPlayer, WellType_Result, i)
- if not itemID:
- continue
-
- if passDay == 1: #相差一天,存储奖励
- __SetItemData(curPlayer, WellType_Get, j, itemID, itemCnt, isBind, isSpecial)
- saveItemList.append([itemID, itemCnt, isBind])
- isOver = False
- elif passDay > 1: #大于1天,直接邮件发奖励
- mailItemList.append([itemID, itemCnt, isBind])
- __SetItemData(curPlayer, WellType_Result, i, 0, 0, 0, 0)
- j +=1
- if state > 0:
- isOver = False
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellAwardTime, 0 if isOver else curTime)
- if mailItemList:
- PlayerControl.SendMailByKey('WishPool', [curPlayer.GetID()], mailItemList)
- if state == -1:
- SyncWishingWellPlayerInfo(curPlayer)
- GameWorld.DebugLog('许愿池距离时间 passDay=%s,mailItemList=%s,saveItemList=%s,isOver=%s,curTime=%s'%(passDay, mailItemList, saveItemList, isOver, curTime), curPlayer.GetID())
- return
-
-
-def __InitWishRateList():
- ## 初始许愿池随机库
- global g_randomWellDict
- actWishingWellInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {})
- state = actWishingWellInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actWishingWellInfo.get(ShareDefine.ActKey_CfgID, 0)
- worldLV = actWishingWellInfo.get(ShareDefine.ActKey_WorldLV, 0)
- if not cfgID or not state:
- return
- actIpyData = IpyGameDataPY.GetIpyGameData("ActWishingWell", cfgID)
- if not actIpyData:
- return
- templateID = actIpyData.GetTemplateID()
- ipyDataList = IpyGameDataPY.GetIpyGameDataList('WishingWell', templateID)
- if not ipyDataList:
- return
- g_randomWellDict = {} # {是否免费:[[权重,[物品ID,数量,是否绑定,标识]]]}
- weightDict = {}
- for ipyData in ipyDataList:
- worldLVLimit = ipyData.GetWorldLVLimit()
- if worldLV < worldLVLimit[0] or worldLV > worldLVLimit[1]:
- continue
- isFree = ipyData.GetIsFree()
- itemID = ipyData.GetItemID()
- itemCnt = ipyData.GetItemCnt()
- isBind = ipyData.GetIsBind()
- weight = ipyData.GetWeight()
- mark = ipyData.GetMark()
- rare = ipyData.GetRare()
- weightDict[isFree] = weightDict.get(isFree, 0) + weight
- if isFree not in g_randomWellDict:
- g_randomWellDict[isFree] = []
- g_randomWellDict[isFree].append([weightDict[isFree], [itemID, itemCnt, isBind, mark, rare]])
-
-
- GameWorld.DebugLog(' 初始许愿池随机库 g_randomWellDict=%s' % (g_randomWellDict))
- return
-
-
-def __GetRandomRateList(isFree):
- ## 获取增长列表
- if not g_randomWellDict:
- __InitWishRateList()
- return g_randomWellDict.get(isFree, [])
-
-
-#// AA 07 许愿池活动刷新奖池 #tagCMActWishingRefresh
-#struct tagCMActWishingRefresh
-#{
-# tagHead Head;
-# BYTE IsFree; // 是否免费刷新
-#};
-def OnActWishingRefresh(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- actBossRebornInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {})
- state = actBossRebornInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actBossRebornInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not state or not cfgID:
- return
-
- isFree = clientData.IsFree
- __DoActWishingRefresh(curPlayer, isFree)
- #通知
- SyncWishingWellPlayerInfo(curPlayer)
- return
-
-def __DoActWishingRefresh(curPlayer, isFree, isSystem=False):
- randomRateList = __GetRandomRateList(isFree)
- if not randomRateList:
- GameWorld.DebugLog(' 许愿池活动刷新奖池 随机库获取错误 !')
- return
- playerID = curPlayer.GetID()
- GameWorld.DebugLog(' isFree=%s, randomRateList=%s' % (isFree, randomRateList))
-
- if isFree:
- if not isSystem:
- freeStartTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WishingWellFreeTime)
- curTime = int(time.time())
- freeCountCD = IpyGameDataPY.GetFuncCfg('WishingWellCfg')
- if curTime - freeStartTime < freeCountCD:
- GameWorld.DebugLog('许愿池活动免费刷新奖池, 免费CD未到! freeCountCD=%s, passTime=%s' % (freeCountCD, curTime - freeStartTime), playerID)
- return
- else:
- refreshCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WishingWellRefreshCnt)
- infoDict = {'refreshCnt':refreshCnt}
- costMoney = eval(IpyGameDataPY.GetFuncCompileCfg('WishingWellCfg', 2))
- if not PlayerControl.HaveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costMoney):
- return
-
- randomCnt = IpyGameDataPY.GetFuncCfg('WishingWellCfg', 3)
- randomResultList = GameWorld.GetResultByRandomListEx(randomRateList, randomCnt, [])
- if len(randomResultList) != randomCnt:
- GameWorld.DebugLog(' 许愿池活动刷新奖池 随机库结果 获取错误 !randomCnt=%s, randomResultList=%s' % (randomCnt, randomResultList))
- return
-
- if not isFree:
- PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costMoney, ChConfig.Def_Cost_WishingWell, infoDict)
- #增加次数
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellRefreshCnt, refreshCnt+1)
- elif not isSystem:
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellFreeTime, int(time.time()))
-
- for i, info in enumerate(randomResultList):
- itemID, itemCnt, isBind, mark, rare = info
- isSpecial = rare
- __SetItemData(curPlayer, WellType_Select, i, itemID, itemCnt, isBind, isSpecial)
- GameWorld.DebugLog(' 许愿池活动刷新 isFree=%s, randomResultList=%s' % (isFree, randomResultList), playerID)
- return
-
-#// AA 06 许愿池活动许愿 #tagCMActWishing
-#struct tagCMActWishing
-#{
-# tagHead Head;
-# BYTE SrcWellType; // 来源库 0-可选库 1-结果库
-# BYTE SrcIndex; // 来源索引
-# BYTE DesWellType; // 目标库 0-可选库 1-结果库
-# BYTE DesIndex; // 目标索引
-#};
-def OnActWishingDrag(index, clientData, tick):
- srcWellType = clientData.SrcWellType
- srcIndex = clientData.SrcIndex
- desWellType = clientData.DesWellType
- desIndex = clientData.DesIndex
- if srcWellType not in [WellType_Select, WellType_Result] or desWellType not in [WellType_Select, WellType_Result]:
- return
- if srcWellType == desWellType:
- return
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- playerID = curPlayer.GetID()
- srcitemID, srcitemCnt, srcisBind, srcisSpecial = __GetItemInfoByData(curPlayer, srcWellType, srcIndex)
- if not srcitemID:
- GameWorld.DebugLog('许愿池活动拖拽物品 来源位置没有物品 srcWellType=%s, srcIndex=%s' % (srcWellType, srcIndex), playerID)
- return
- desitemID, desitemCnt, desisBind, desisSpecial = __GetItemInfoByData(curPlayer, desWellType, desIndex)
- __SetItemData(curPlayer, desWellType, desIndex, srcitemID, srcitemCnt, srcisBind, srcisSpecial)
- if desitemID:
- __SetItemData(curPlayer, srcWellType, srcIndex, desitemID, desitemCnt, desisBind, desisSpecial)
- else:
- __SetItemData(curPlayer, srcWellType, srcIndex, 0, 0, 0, 0)
- GameWorld.DebugLog('许愿池活动拖拽物品 desWellType=%s,desIndex=%s,srcitemID=%s'%(desWellType, desIndex,srcitemID))
- #通知
- SyncWellItemChange(curPlayer, [[srcWellType, srcIndex],[desWellType, desIndex]])
- return
-
-def SyncWellItemChange(curPlayer, changeList):
- packData = ChPyNetSendPack.tagMCActWishingDragResult()
- packData.InfoList = []
- for wellType, index in changeList:
- itemID, itemCnt, isBind, isSpecial = __GetItemInfoByData(curPlayer, wellType, index)
- changeInfo = ChPyNetSendPack.tagMCPlayerWishingDragInfo()
- changeInfo.WellType = wellType
- changeInfo.Index = index
- changeInfo.ItemID = itemID
- changeInfo.ItemCnt = itemCnt
- changeInfo.IsBind = isBind
- changeInfo.IsSpecial = isSpecial
- packData.InfoList.append(changeInfo)
- packData.Cnt = len(packData.InfoList)
- NetPackCommon.SendFakePack(curPlayer, packData)
- return
-
-def DoGetWishingAward(curPlayer):
- ## 领取许愿池奖励
- count = IpyGameDataPY.GetFuncCfg('WishingWellCfg', 4)
- giveItemList = []
- for i in xrange(count):
- itemID, itemCnt, isBind, isSpecial = __GetItemInfoByData(curPlayer, WellType_Get, i)
- if itemID:
- giveItemList.append([itemID, itemCnt, isBind])
- if not giveItemList:
- GameWorld.Log('领取许愿池奖励 没有奖励可领取!', curPlayer.GetID())
- return
-
- needSpace = len(giveItemList)
- packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
- if needSpace > packSpace:
- PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
- return
- for itemID, itemCnt, isBind in giveItemList:
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 0, [IPY_GameWorld.rptItem])
- for i in xrange(count):
- __SetItemData(curPlayer, WellType_Get, i, 0, 0, 0, 0)
- SyncWishingWellPlayerInfo(curPlayer)
- return
-
-
-def SyncWishingWellInfo(curPlayer):
- ##同步许愿池活动信息
- actBossRebornInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {})
- state = actBossRebornInfo.get(ShareDefine.ActKey_State, 0)
- cfgID = actBossRebornInfo.get(ShareDefine.ActKey_CfgID, 0)
- if not state or not cfgID:
- return
- actIpyData = IpyGameDataPY.GetIpyGameData("ActWishingWell", cfgID)
- if not actIpyData:
- return
- startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(actIpyData)
- actInfo = ChPyNetSendPack.tagMCActWishingWellInfo()
- actInfo.Clear()
- actInfo.StartDate = startDateStr
- actInfo.EndtDate = endDateStr
- actInfo.IsDayReset = actIpyData.GetIsDayReset()
- actInfo.ResetType = actIpyData.GetResetType()
- actInfo.LimitLV = actIpyData.GetLVLimit()
- actInfo.WellItemInfo = []
- randomItemList = __GetRandomRateList(0)
- for itemInfo in randomItemList:
- itemID, itemCnt, isBind, mark, rare = itemInfo[1]
- wellItemInfo = ChPyNetSendPack.tagMCWishingWellItem()
- wellItemInfo.ItemID = itemID
- wellItemInfo.ItemCnt = itemCnt
- wellItemInfo.IsBind = isBind
- wellItemInfo.Mark = mark
- wellItemInfo.Rare = rare
- actInfo.WellItemInfo.append(wellItemInfo)
- actInfo.Count = len(actInfo.WellItemInfo)
- NetPackCommon.SendFakePack(curPlayer, actInfo)
- return
-
-
-def SyncWishingWellPlayerInfo(curPlayer):
- ##同步许愿池玩家信息
- packData = ChPyNetSendPack.tagMCActWishingWellPlayerInfo()
- freeStartTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WishingWellFreeTime)
- if not freeStartTime:#没有则默认活动开始时间
- actBossRebornInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {})
- cfgID = actBossRebornInfo.get(ShareDefine.ActKey_CfgID, 0)
- actIpyData = IpyGameDataPY.GetIpyGameData("ActWishingWell", cfgID)
- if actIpyData:
- startDate, _ = GameWorld.GetOperationActionDateStr(actIpyData)
-
- resetType = actIpyData.GetResetType() # 重置类型,0-0点重置;1-5点重置
- if resetType == 1:
- startDayDate = "%s 05:00:00" % (startDate)
- else:
- startDayDate = "%s 00:00:00" % (startDate)
- freeStartTime = GameWorld.ChangeTimeStrToNum(startDayDate, timeFormat=ChConfig.TYPE_Time_Format)
- GameWorld.DebugLog('许愿池活动开始时间 startDayDate=%s'%startDayDate)
-
-
- packData.FreeStartTime = freeStartTime
- packData.WishCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WishingWellRefreshCnt)
- packData.WellItemInfo = []
- __AddWishingWellItemPackInfo(curPlayer, packData.WellItemInfo, WellType_Select)
- packData.WellItemCnt = len(packData.WellItemInfo)
- packData.CurAwardItemInfo = []
- __AddWishingWellItemPackInfo(curPlayer, packData.CurAwardItemInfo, WellType_Result)
- packData.CurAwardCnt = len(packData.CurAwardItemInfo)
- packData.LastAwardItemInfo = []
- __AddWishingWellItemPackInfo(curPlayer, packData.LastAwardItemInfo, WellType_Get)
- packData.LastAwardCnt = len(packData.LastAwardItemInfo)
- NetPackCommon.SendFakePack(curPlayer, packData)
- return
-
-
-def __AddWishingWellItemPackInfo(curPlayer, itemList, wellType):
- if wellType == WellType_Select:
- count = IpyGameDataPY.GetFuncCfg('WishingWellCfg', 3)
- else:
- count = IpyGameDataPY.GetFuncCfg('WishingWellCfg', 4)
- for i in xrange(count):
- itemID, itemCnt, isBind, isSpecial = __GetItemInfoByData(curPlayer, wellType, i)
- packData = ChPyNetSendPack.tagMCPlayerWishingWellItem()
- packData.ItemID = itemID
- packData.ItemCnt = itemCnt
- packData.IsBind = isBind
- packData.IsSpecial = isSpecial
- itemList.append(packData)
- return
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index aa92533..7b4759e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -215,62 +215,30 @@
#所有的运营活动列表,默认都支持多活动分组编号的活动名
OperationActionNameList = [OperationActionName_Lunhuidian]
-OperationActionName_ExpRate = "ActExpRate" # 多倍经验活动
-OperationActionName_SpringSale = "ActSpringSale" # 限时特惠活动
-OperationActionName_FlashGiftbag = "ActFlashGiftbag" # 限时礼包活动
-OperationActionName_DailyGiftbag = "ActDailyGiftbag" # 每日礼包活动
-OperationActionName_FairyCeremony = "ActFairyCeremony" # 仙界盛典活动
-OperationActionName_NewFairyCeremony = "ActNewFairyCeremony" # 仙界盛典活动
-OperationActionName_RealmPoint = "ActRealmPoint" # 多倍修行点活动
-OperationActionName_FlashSale = "ActFlashSale" # 限时抢购活动
-OperationActionName_WishingWell = "ActWishingWell" # 许愿池活动
OperationActionName_TotalRecharge = "ActTotalRecharge" # 累计充值活动
OperationActionName_CollectWords = "ActCollectWords" # 集字活动
-OperationActionName_LuckyTreasure = "ActLuckyTreasure" # 幸运鉴宝活动
-OperationActionName_GrowupBuy = "ActGrowupBuy" # 成长必买活动
OperationActionName_ManyDayRecharge = "ActManyDayRecharge" # 多日连充活动
OperationActionName_SingleRecharge = "ActSingleRecharge" # 单笔累充活动
-OperationActionName_Turntable = "ActTurntable" # 转盘活动
-OperationActionName_GodGift = "ActGodGift" # 天帝礼包活动
OperationActionName_BuyOne = "ActBuyOne" # 买一送多活动
OperationActionName_ActLoginNew = "ActLoginNew" # 登录活动-新
OperationActionName_ActTask = "ActTask" # 活动任务
OperationActionName_BuyCountGift = "ActBuyCountGift" # 购买次数礼包活动
OperationActionName_FamilyCTGAssist = "ActFamilyCTGAssist" # 仙盟充值协助
-OperationActionName_Yunshi = "ActYunshi" # 运势活动
-##节日活动类型列表 - 该类型无视开服天,日期到了就开启
-#FeastOperationActionNameList = [OperationActionName_GrowupBuy,
-# ]
##所有的运营活动列表,含节日活动
-#OperationActionNameList = [OperationActionName_ExpRate,
-# OperationActionName_SpringSale,
-# OperationActionName_FlashGiftbag, OperationActionName_FairyCeremony,
-# OperationActionName_RealmPoint, OperationActionName_FlashSale,
-# OperationActionName_WishingWell, OperationActionName_TotalRecharge,
-# OperationActionName_LoginAward,
-# OperationActionName_NewFairyCeremony, OperationActionName_LuckyTreasure,
-# OperationActionName_DailyGiftbag, OperationActionName_SingleRecharge,
+#OperationActionNameList = [
+# OperationActionName_TotalRecharge,
+# OperationActionName_SingleRecharge,
# OperationActionName_CollectWords, OperationActionName_ManyDayRecharge,
-# OperationActionName_Turntable,
-# OperationActionName_GodGift,
# OperationActionName_BuyOne,
# OperationActionName_ActLoginNew, OperationActionName_ActTask,
# OperationActionName_BuyCountGift, OperationActionName_FamilyCTGAssist,
-# OperationActionName_Yunshi,
# OperationActionName_Lunhuidian,
-# ] + FeastOperationActionNameList
+# ]
##需要记录开启活动时的世界等级的运营活动
-#NeedWorldLVOperationActNameList = [OperationActionName_FairyCeremony, OperationActionName_WishingWell,
-# OperationActionName_NewFairyCeremony, OperationActionName_FlashSale,
-# OperationActionName_TotalRecharge,
-# OperationActionName_FlashGiftbag,
-# OperationActionName_SpringSale, OperationActionName_LuckyTreasure,
-# OperationActionName_DailyGiftbag, OperationActionName_GrowupBuy,
-# OperationActionName_Turntable,
+#NeedWorldLVOperationActNameList = [OperationActionName_TotalRecharge,
# OperationActionName_CollectWords,
# OperationActionName_ManyDayRecharge, OperationActionName_SingleRecharge,
-# OperationActionName_GodGift,
# ]
#跨服运营活动表名定义
@@ -513,7 +481,7 @@
CDBPlayerRefresh_168, # 战盟仓库积分
CDBPlayerRefresh_Rune, # 符印精华点
CDBPlayerRefresh_RuneSplinters, # 符印碎片 170
-CDBPlayerRefresh_RealmPoint, # 境界修炼点
+CDBPlayerRefresh_171, # 境界修炼点
CDBPlayerRefresh_Ysog, # 魔精
CDBPlayerRefresh_FamilyCoin, # 仙盟公会币
CDBPlayerRefresh_ParryRateDef, # 抗格挡
@@ -636,7 +604,7 @@
TYPE_Price_Gold_Paper_Money = 5 # 金钱类型,(先用礼券,再用金子)
TYPE_Price_FamilyExp = 6 # 战盟经验
TYPE_Price_10 = 10 # 战盟仓库积分
-TYPE_Price_RealmPoint = 13 # 境界修炼点
+TYPE_Price_13 = 13 # 境界修炼点
TYPE_Price_Ysog = 14 # 魔精
TYPE_Price_FamilyCoin = 15 # 仙盟公会贡献币
TYPE_Price_FBHelpPoint = 16 # 副本助战积分, 废弃
@@ -712,7 +680,6 @@
#TYPE_Price_RuneSplinters:CDBPlayerRefresh_RuneSplinters,
#TYPE_Price_TreasureScore:CDBPlayerRefresh_TreasureScore,
#TYPE_Price_BourseMoney:None,
- #TYPE_Price_RealmPoint:CDBPlayerRefresh_RealmPoint,
#TYPE_Price_Ysog:CDBPlayerRefresh_Ysog,
#TYPE_Price_Danjing:CDBPlayerRefresh_Danjing,
#TYPE_Price_SoulDust:CDBPlayerRefresh_SoulDust,
@@ -844,7 +811,7 @@
Def_UniversalGameRecType_FBHelpBattleCheckInPlayer, #助战玩家登记记录9
Def_UniversalGameRecType_SkyTowerPassPlayer, #天星塔过关玩家记录10
Def_UniversalGameRecType_ZhuXianBossRecord, #诛仙BOSS结算记录11
- Def_UniversalGameRecType_LuckyTreasure, #幸运鉴宝大奖记录12
+ Def_UniversalGameRecType_12,
Def_UniversalGameRecType_FairyDomain, #缥缈仙域事件次数记录13
Def_UniversalGameRecType_Reward, # 通用奖励表(TopBar)14
Def_UniversalGameRecType_ArenaBattleRecord, # 竞技场玩家挑战记录 15
--
Gitblit v1.8.0