8415 【BT开发】]初始赠送 / 【后端】新号上线赠送物品
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A7 20 创角奖励领奖状态 #tagMCCreateRoleAwardState
|
| | |
|
| | | class tagMCCreateRoleAwardState(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("GetState", c_ubyte), # 是否已领取
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA7
|
| | | self.SubCmd = 0x20
|
| | | 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 = 0xA7
|
| | | self.SubCmd = 0x20
|
| | | self.GetState = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCCreateRoleAwardState)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A7 20 创角奖励领奖状态 //tagMCCreateRoleAwardState:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | GetState:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.GetState
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCCreateRoleAwardState=tagMCCreateRoleAwardState()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCreateRoleAwardState.Cmd,m_NAtagMCCreateRoleAwardState.SubCmd))] = m_NAtagMCCreateRoleAwardState
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A7 13 动态障碍物状态 #tagMCDynamicBarrierState
|
| | |
|
| | | class tagMCDynamicBarrier(Structure):
|
| | |
| | |
|
| | | Def_PDict_OnlinePrizeNote = "OnlinePrizeNote%s" # 当日在线奖励领取信息,记录信息 参数天数
|
| | |
|
| | | Def_PDict_CreateRoleAwardState = "CreateRoleAwardState" # 创角奖励领取记录
|
| | | Def_PDict_EquipViewCacheState = "EquipViewCacheState" # 本次上线是否同步过装备缓存
|
| | | Def_PDict_DayOnlineTime = "OnlineTime" # 当日在线时长
|
| | | Def_PDict_OnlineStartTick = "OnlineStartTime" # 在线计算时间
|
| | |
| | | Def_RewardType_DayFreeGoldGift, #每日免费直购礼包29
|
| | | Def_RewardType_ActivityPlace, #活跃放置奖励30
|
| | | Def_RewardType_SkyTowerServerChallengeReward, #天星塔全服挑战层领奖31
|
| | | )= range(32)
|
| | | Def_RewardType_CreateRole, #创角奖励32
|
| | | )= range(33)
|
| | |
|
| | |
|
| | | #boss复活相关活动定义
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A7 20 创角奖励领奖状态 #tagMCCreateRoleAwardState
|
| | |
|
| | | class tagMCCreateRoleAwardState(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("GetState", c_ubyte), # 是否已领取
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA7
|
| | | self.SubCmd = 0x20
|
| | | 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 = 0xA7
|
| | | self.SubCmd = 0x20
|
| | | self.GetState = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCCreateRoleAwardState)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A7 20 创角奖励领奖状态 //tagMCCreateRoleAwardState:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | GetState:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.GetState
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCCreateRoleAwardState=tagMCCreateRoleAwardState()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCreateRoleAwardState.Cmd,m_NAtagMCCreateRoleAwardState.SubCmd))] = m_NAtagMCCreateRoleAwardState
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A7 13 动态障碍物状态 #tagMCDynamicBarrierState
|
| | |
|
| | | class tagMCDynamicBarrier(Structure):
|
| | |
| | | return True
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ## 给奖励物品
|
| | | # @param awardItemInfo 奖励物品信息,支持字典按职业给,或者直接list
|
| | | # @return 布尔值
|
| | | def GiveAwardItem(curPlayer, awardItemInfo):
|
| | | job = curPlayer.GetJob()
|
| | | if isinstance(awardItemInfo, dict):
|
| | | if str(job) not in awardItemInfo:
|
| | | return
|
| | | itemList = awardItemInfo[str(job)]
|
| | | else:
|
| | | itemList = awardItemInfo
|
| | | |
| | | if not itemList:
|
| | | return
|
| | | |
| | | # 检查背包
|
| | | needSpace = len(itemList)
|
| | | packSpace = GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
|
| | | if needSpace > packSpace:
|
| | | PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
|
| | | return
|
| | | |
| | | # 给物品
|
| | | for itemInfo in itemList:
|
| | | itemID, itemCount = itemInfo[:2]
|
| | | ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem])
|
| | | |
| | | return True
|
| | |
|
| | | ##对外接口, 交换物品
|
| | | # @param curPlayer 玩家实例
|
| | | # @param curItem 当前物品
|
| | |
| | | SkillShell.NotifyElementSkillInfo(curPlayer)
|
| | | #Boss首杀
|
| | | GY_Query_BossFirstKill.OnPlayerLogin(curPlayer)
|
| | | #创角奖励
|
| | | Sync_CreateRoleAwardInfo(curPlayer)
|
| | |
|
| | | curPlayer.SetState(0) # 脱机挂恢复为正常上线
|
| | | curPlayer.SetFacePic(0) # 通知数据库是否保存还是下线,做一次恢复,1为保存 0为正常下线
|
| | |
| | | #历史累计充值领取
|
| | | elif rewardType == ChConfig.Def_RewardType_HistoryChargeAward:
|
| | | PlayerGoldGift.OnGetHistoryRechargeAward(curPlayer, dataEx)
|
| | | #天星塔全服挑战层领奖
|
| | | elif rewardType == ChConfig.Def_RewardType_SkyTowerServerChallengeReward:
|
| | | GameLogic_SkyTower.OnGetSkyTowerServerChallengeReward(curPlayer, dataEx)
|
| | | #创角奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_CreateRole:
|
| | | OnGetCreateRoleAward(curPlayer)
|
| | | return
|
| | |
|
| | | ## 领取创角奖励
|
| | | def OnGetCreateRoleAward(curPlayer):
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CreateRoleAwardState):
|
| | | GameWorld.DebugLog("已领取创角奖励!")
|
| | | return
|
| | |
|
| | | if not ItemCommon.GiveAwardItem(curPlayer, IpyGameDataPY.GetFuncEvalCfg("CreateRoleAward")):
|
| | | return
|
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CreateRoleAwardState, 1)
|
| | | Sync_CreateRoleAwardInfo(curPlayer)
|
| | | return
|
| | |
|
| | | ## 通知创角领奖记录
|
| | | def Sync_CreateRoleAwardInfo(curPlayer):
|
| | | sendPack = ChPyNetSendPack.tagMCCreateRoleAwardState()
|
| | | sendPack.Clear()
|
| | | sendPack.GetState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CreateRoleAwardState)
|
| | | NetPackCommon.SendFakePack(curPlayer, sendPack)
|
| | | return
|
| | |
|
| | |
|
| | | ## 通知各奖励领取记录信息
|
| | | # @param curPlayer: 玩家实例
|
| | | # @param rewardType: 奖励类型
|