Add: 增加仙盟召集功能;
Fix:修复击杀进度同步错误问题;
| | |
| | | Writer = xdh
|
| | | Releaser = xdh
|
| | | RegType = 0
|
| | | RegisterPackCount = 2
|
| | | RegisterPackCount = 3
|
| | |
|
| | | PacketCMD_1=0xA9
|
| | | PacketSubCMD_1=0x03
|
| | |
| | | PacketSubCMD_2=0x04
|
| | | PacketCallFunc_2=OnQueryAllFamilyBossHurt
|
| | |
|
| | | PacketCMD_3=0xAC
|
| | | PacketSubCMD_3=0x05
|
| | | PacketCallFunc_3=OnCallupFamilyMemberToBoss
|
| | |
|
| | | [PlayerXMZZ]
|
| | | ScriptName = Player\PlayerXMZZ.py
|
| | | Writer = xdh
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AC 05 召集仙盟成员打boss #tagCGCallupFamilyMemberToBoss
|
| | |
|
| | | class tagCGCallupFamilyMemberToBoss(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("NPCID", c_int), |
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAC
|
| | | 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 = 0xAC
|
| | | self.SubCmd = 0x05
|
| | | self.NPCID = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGCallupFamilyMemberToBoss)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AC 05 召集仙盟成员打boss //tagCGCallupFamilyMemberToBoss:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | NPCID:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.NPCID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGCallupFamilyMemberToBoss=tagCGCallupFamilyMemberToBoss()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCallupFamilyMemberToBoss.Cmd,m_NAtagCGCallupFamilyMemberToBoss.SubCmd))] = m_NAtagCGCallupFamilyMemberToBoss
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AC 02 仙魔之争战斗结束 #tagCGXMZZOver
|
| | |
|
| | | class tagCGXMZZOver(Structure):
|
| | |
| | | import PyGameData
|
| | | import PlayerGeTui
|
| | | import time
|
| | | import IPY_GameServer
|
| | |
|
| | |
|
| | |
|
| | |
| | | Sync_BossInfo(None, [bossID])
|
| | |
|
| | | # 仙盟归属boss的重置
|
| | | if bossID in PyGameData.g_familyOwnerBossInfo:
|
| | | if isAlive and bossID in PyGameData.g_familyOwnerBossInfo:
|
| | | PyGameData.g_familyOwnerBossInfo.pop(bossID)
|
| | | return
|
| | |
|
| | |
| | | return
|
| | |
|
| | | PyGameData.g_familyOwnerBossInfo.update(msgInfo)
|
| | | #GameWorld.DebugLog(" PyGameData.g_familyOwnerBossInfo=%s" % PyGameData.g_familyOwnerBossInfo)
|
| | | return
|
| | |
|
| | | #// AC 04 查询仙盟抢Boss所有Boss当前进度 #tagCGQueryAllFamilyBossHurt
|
| | |
| | | NetPackCommon.SendFakePack(curPlayer, hurtPack)
|
| | | return
|
| | |
|
| | | #// AC 05 召集仙盟成员打boss #tagCGCallupFamilyMemberToBoss
|
| | | #
|
| | | #struct tagCGCallupFamilyMemberToBoss
|
| | | #{
|
| | | # tagHead Head;
|
| | | # DWORD NPCID;
|
| | | #};
|
| | | def OnCallupFamilyMemberToBoss(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | npcID = clientData.NPCID
|
| | | |
| | | curFamily = curPlayer.GetFamily()
|
| | | if curFamily == None:
|
| | | return
|
| | | curMember = curFamily.FindMember(playerID)
|
| | | if curMember == None:
|
| | | return
|
| | | if curMember.GetFamilyLV() == IPY_GameServer.fmlMember:
|
| | | GameWorld.DebugLog("普通成员无法召集!", playerID)
|
| | | return
|
| | | PlayerControl.FamilyNotify(curFamily.GetID(), "FairyGrabBossHelp", [npcID])
|
| | | return
|
| | |
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AC 05 召集仙盟成员打boss #tagCGCallupFamilyMemberToBoss
|
| | |
|
| | | class tagCGCallupFamilyMemberToBoss(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("NPCID", c_int), |
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAC
|
| | | 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 = 0xAC
|
| | | self.SubCmd = 0x05
|
| | | self.NPCID = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGCallupFamilyMemberToBoss)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AC 05 召集仙盟成员打boss //tagCGCallupFamilyMemberToBoss:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | NPCID:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.NPCID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGCallupFamilyMemberToBoss=tagCGCallupFamilyMemberToBoss()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCallupFamilyMemberToBoss.Cmd,m_NAtagCGCallupFamilyMemberToBoss.SubCmd))] = m_NAtagCGCallupFamilyMemberToBoss
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AC 02 仙魔之争战斗结束 #tagCGXMZZOver
|
| | |
|
| | | class tagCGXMZZOver(Structure):
|
| | |
| | | npcFamilyHisHurtDict = hurtMgr.familyHisHurtDict.get(key, {})
|
| | | npcFamilyPlayerIDDict = hurtMgr.familyPlayerIDDict.get(key, {})
|
| | |
|
| | | ownerFamilyName = ""
|
| | | if ownerFamilyID in npcFamilyHisHurtDict:
|
| | | ownerFamilyHisHurt = npcFamilyHisHurtDict[ownerFamilyID]
|
| | | PlayerControl.WorldNotify(0, "FairyGrabBossDead", [ownerFamilyHisHurt.name, bossID])
|
| | | ownerFamilyName = ownerFamilyHisHurt.name
|
| | | PlayerControl.WorldNotify(0, "FairyGrabBossDead", [ownerFamilyName, bossID])
|
| | |
|
| | | # 击杀结算前强制排序历史玩家伤血
|
| | | npcHisHurtPlayerList = npcPlayerHisHurtDict.values()
|
| | |
| | | if curPlayer:
|
| | | NetPackCommon.SendFakePack(curPlayer, hurtPack)
|
| | |
|
| | | # 击杀时主动同步进度 |
| | | syncMsg = str({bossID:[0, maxHP, ownerFamilyID, ownerFamilyName]})
|
| | | GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, "FamilyOwnerBossInfo", syncMsg, len(syncMsg))
|
| | | |
| | | # 伤血在NPCCommon统一清
|
| | | return
|
| | |
|