Requires PEQ's Lua Multitasking Module: 
https://code.google.com/p/projecteqq...ad_manager.lua
This is an example of using multitasking through co-routines in Lua to make timer based scripts on unique npcs easier to write:
	Code:
	--Some_Crazy_Boss.lua
local ThreadManager = require("thread_manager");
local evt;
function ability_one()
	evt.self:Emote("begins to cast something electrical");
	ThreadManager:Wait(2.5);
	evt.self:Shout("Feel the thunder!");
end
function ability_two()
	evt.self:Emote("begins to cast something fiery");
	ThreadManager:Wait(2.5);
	evt.self:Shout("Feel the fire!");
end
function ability_three()
	evt.self:Emote("begins to cast something cold");
	ThreadManager:Wait(2.5);
	evt.self:Shout("Feel the freeze!");
end
function swapped_abilities()
	local i = 0;
	while true do
		if(i == 0) then
			ability_one();
			i = 1;
		elseif(i == 1)
			ability_two();
			i = 2;
		else
			ability_three();
			i = 0;
		end
		ThreadManager:Wait(15.0);
	end
end
function predictable()
	while true do
		ThreadManager:Wait(10.0);
		evt.self:Emote("begins to cast something predictable");
		ThreadManager:Wait(2.5);
		evt.self:Shout("Feel the Predictableness!");
	end
end
function event_combat(e)
	if(e.joined) then
		eq.set_timer("heartbeat", 500);
		ThreadManager:Clear();
		ThreadManager:Create("Predictable", predictable);
		ThreadManager:Create("Swapping", swapped_abilities);
	else
		eq.stop_timer("heartbeat");
		ThreadManager:Clear();
	end
end
function event_timer(e)
	evt = e;
	ThreadManager:Resume("Predictable");
	ThreadManager:Resume("Swapping");
end