Windower/Lua

メンバーのジョブ等の情報はないので、自前でパケットを解析して保持する必要がある。

  • https://github.com/Tylas11/XivParty/blob/master/xivparty.lua#L148
       if id == 0xDF then -- char update
           local packet = packets.parse('incoming', original)
           if packet then
               local playerId = packet['ID']
               if playerId and playerId > 0 then
                   utils:log('PACKET: Char update for player ID: '..playerId, 0)
                   local foundPlayer = model:getPlayer(nil, playerId, 'char')
                   foundPlayer:updateJobFromPacket(packet)
               else
                   utils:log('Char update: ID not found.', 1)
               end
           end
       end
       if id == 0xDD then -- party member update
           local packet = packets.parse('incoming', original)
           if packet then
               local name = packet['Name']
               local playerId = packet['ID']
               if name and playerId and playerId > 0 then
                   utils:log('PACKET: Party member update for '..name, 0)
                   local foundPlayer = model:getPlayer(name, playerId, 'party')
                   foundPlayer:updateJobFromPacket(packet)
               else
                   utils:log('Party update: name and/or ID not found.', 1)
               end
           end
       end