Windower/Lua

戦闘終了

if id == 0x02D then -- Kill Message
    mob_killed = true	
	old_level = windower.ffxi.get_player().main_job_level
elseif mob_killed and id == 0x061 then -- Mob Killed and Char Stats Message	
	local packet = packets.parse('incoming', original)
	(略)
	mob_killed = false
windower.register_event('incoming chunk', function(id, data, modified, injected, blocked)
	if id == 0x029 then -- Action Message
		actionMessageHandler(packets.parse('incoming', data))

function actionMessageHandler(amPacket)
	-- If enemy defeated or falls to the ground message
	if amPacket.Message == 6 or amPacket.Message == 20 then
		local mobData = windower.ffxi.get_mob_by_id(amPacket.Target)

戦闘アクション

https://github.com/Windower/Lua/blob/dev/addons/libs/packets/fields.lua#L1799

enums.action_in = {
    [1] = 'Melee attack',
    [2] = 'Ranged attack finish',
    [3] = 'Weapon Skill finish',
    [4] = 'Casting finish',
    [5] = 'Item finish',
    [6] = 'Job Ability',
    [7] = 'Weapon Skill start',
    [8] = 'Casting start',
    [9] = 'Item start',
    [11] = 'NPC TP finish',
    [12] = 'Ranged attack start',
    [13] = 'Avatar TP finish',
    [14] = 'Job Ability DNC',
    [15] = 'Job Ability RUN',
}

連携

  • https://github.com/Windower/Lua/blob/live/addons/battlemod/parse_action_packet.lua#L340
     if m.add_effect_message > 287 and m.add_effect_message < 303 then m.simp_add_name = skillchain_arr[m.add_effect_message-287]
                   elseif m.add_effect_message > 384 and m.add_effect_message < 399 then m.simp_add_name = skillchain_arr[m.add_effect_message-384]
                   elseif m.add_effect_message > 766 and m.add_effect_message < 769 then m.simp_add_name = skillchain_arr[m.add_effect_message-752]
                   elseif m.add_effect_message > 768 and m.add_effect_message < 771 then m.simp_add_name = skillchain_arr[m.add_effect_message-754]