Go Back   EQEmulator Home > EQEmulator Forums > Quests > Quests::Q&A

Quests::Q&A This is the quest support section

Reply
 
Thread Tools Display Modes
  #1  
Old 11-04-2015, 01:54 PM
Azrealvect
Sarnak
 
Join Date: May 2011
Posts: 53
Default Looking for working PoTimeb Script

As the title says im looking for a working PoTimeB script. for some reason the most current one does not spawn anything past avatar of elements. Here is the current script I have in-case someone can spot a problem with it.

Code:
-- NPC ID 223097
-- initialize variables global to this NPC
local current_phase = "Phase0";
local event_started = 0;
local event_counter = 0;
local instance_id = 0;
local qglobals = {};

function event_spawn(e)
	-- get the zone instance id
	instance_id = eq.get_zone_instance_id();
	-- turn off all the spawn conditions
	ResetSpawnConditions();
	-- load the current quest globals
	qglobals = eq.get_qglobals();
	-- grab the entity list so we can unlock doors if needed.
	local entity_list = eq.get_entity_list();
	-- set the start time so we know what to compare with for the fail timer.
	event_started = os.time();
	-- if there is no phase_bit qglobal for this instance, create one
	if (qglobals[instance_id.."_potimeb_phase_bit"] == nil) then
		eq.set_global(instance_id.."_potimeb_phase_bit","0",7,"H13");
	end
	-- then check the value to decide what to pop
	if (qglobals[instance_id.."_potimeb_status"] == nil) then
		-- if there is no global at all boot all toons and destroy the instance
		-- TODO!!!
	elseif (qglobals[instance_id.."_potimeb_status"] == "Phase1") then
		-- just in case the instance ID gets reused before this one expires, make sure to set phase_bit to 0
		eq.set_global(instance_id.."_potimeb_phase_bit","0",7,"H13");
		-- Spawn phase 1
		eq.spawn2(223169,0,0,13.5,1632.4,492.3,0); -- earth trigger
		eq.spawn2(223170,0,0,10.1,1350,492.6,0); -- air trigger
		eq.spawn2(223171,0,0,18.0,1107,492.2,0); -- undead trigger
		eq.spawn2(223172,0,0,11.5,857,492.5,0); -- water trigger
		eq.spawn2(223173,0,0,13.2,574.2,492.3,0); -- fire trigger
	elseif (qglobals[instance_id.."_potimeb_status"] == "Phase2") then
		-- unlock all the phase 1 doors.
		UnlockPhaseOneDoors(entity_list);
		-- offset event_started by the prior phase(s) since we are not starting at 1
		event_started = event_started - 3600;
		UpdateFailTimer(3600,3600);
		current_phase = "Phase2";
		-- send signal to flavor text NPC
		eq.signal(223227,2);
		-- spawn phase 2 mobs without the named
		SpawnPhaseTwo(false);
	elseif (qglobals[instance_id.."_potimeb_status"] == "Phase3") then
		-- unlock all the phase 1 and 2 doors.
		UnlockPhaseOneDoors(entity_list);
		UnlockPhaseTwoDoors(entity_list);
		-- offset event_started by the prior phase(s) since we are not starting at 1
		event_started = event_started - 7200;
		UpdateFailTimer(7200,4500);
		current_phase = "Phase3";
		-- send signal to flavor text NPC
		eq.signal(223227,3);
		-- begin Phase 3
		ControlPhaseThree();
	elseif (qglobals[instance_id.."_potimeb_status"] == "Phase4") then
		-- unlock all the phase 1 and 2 doors.
		UnlockPhaseOneDoors(entity_list);
		UnlockPhaseTwoDoors(entity_list);
		-- unlock the portal from phase 3 to phase 4
		door = entity_list:FindDoor(62);
		if(door ~= nil) then
			door:SetLockPick(0);
		end
		-- offset event_started by the prior phase(s) since we are not starting at 1
		event_started = event_started - 11700;
		UpdateFailTimer(11700,14400);
		current_phase = "Phase4";
		-- send signal to flavor text NPC
		eq.signal(223227,4);
		SpawnPhaseFour();
	elseif (qglobals[instance_id.."_potimeb_status"] == "Phase5") then
		-- unlock all the phase 1 and 2 doors.
		UnlockPhaseOneDoors(entity_list);
		UnlockPhaseTwoDoors(entity_list);
		-- unlock the portal from phase 3 to phase 4
		door = entity_list:FindDoor(62);
		if(door ~= nil) then
			door:SetLockPick(0);
		end
		-- unlock the stone from phase 4 to phase 5
		door = entity_list:FindDoor(83);
		if(door ~= nil) then
			door:SetLockPick(0);
		end
		-- offset event_started by the prior phase(s) since we are not starting at 1
		event_started = event_started - 26100;
		UpdateFailTimer(26100,14400);
		current_phase = "Phase5";
		-- send signal to flavor text NPC
		eq.signal(223227,5);
		SpawnPhaseFive();
	elseif (qglobals[instance_id.."_potimeb_status"] == "Phase6") then
		-- unlock all the phase 1 and 2 doors.
		UnlockPhaseOneDoors(entity_list);
		UnlockPhaseTwoDoors(entity_list);
		-- unlock the portal from phase 3 to phase 4
		door = entity_list:FindDoor(62);
		if(door ~= nil) then
			door:SetLockPick(0);
		end
		-- unlock the stone from phase 4 to phase 5
		door = entity_list:FindDoor(83);
		if(door ~= nil) then
			door:SetLockPick(0);
		end
		-- unlock the stone from phase 5 to phase 6
		door = entity_list:FindDoor(51);
		if(door ~= nil) then
			door:SetLockPick(0);
		end
		-- offset event_started by the prior phase(s) since we are not starting at 1
		event_started = event_started - 40500;
		UpdateFailTimer(40500,7200);
		current_phase = "Phase6";
		-- send signal to flavor text NPC
		eq.signal(223227,6);
		-- spawn Quarm
		eq.spawn2(223201,0,0,-401,-1106,32.5,92.8125);
		-- spawn #A_Servitor_of_Peace
		eq.spawn2(223101,0,0,244,-1106,-1.125,97.03125);
		-- spawn untargetable Zebuxoruk's Cage
		eq.spawn2(223228,0,0,-579,-1119,60.625,0);
	end
end

function event_signal(e)
	-- grab the entity_list
	local entity_list = eq.get_entity_list();
	-- signal 1 comes from the phase 1 trigger mobs
	if (e.signal == 1 and current_phase == "Phase0") then
		-- npc global for status tracking.
		current_phase = "Phase1";
		-- send signal to flavor text NPC
		eq.signal(223227,1);
		UpdateFailTimer(0,3600);
	-- signal 2 comes from the mobs in the final wave of each phase 1 event
	elseif (e.signal == 2 and current_phase == "Phase1") then
		-- check that all 5 phase 1 events are down.
		event_counter = event_counter + 1;
		if (event_counter == 5) then
			-- update the qglobal in the zone gets reset.
			eq.set_global(instance_id.."_potimeb_status","Phase2",7,"H13");
			current_phase = "Phase2";
			-- unlock all the phase 1 doors.
			UnlockPhaseOneDoors(entity_list);
			-- add 1 hour (3600 seconds) to the fail timer
			UpdateFailTimer(3600,3600);
			-- send signal to flavor text NPC
			eq.signal(223227,2);
			-- reset counter for later use
			event_counter = 0;
			-- spawn phase 2 mobs without the named
			SpawnPhaseTwo();
		end
	-- signal 3 comes from the phase 2 mobs.
	elseif (e.signal == 3) then
		ControlPhaseTwo();
	-- signal 4 comes from the phase 3 mobs.
	elseif (e.signal == 4) then
		ControlPhaseThree();
	-- signal 5 comes from the phase 4 gods.
	elseif (e.signal == 5) then
		event_counter = event_counter + 1;
		if (event_counter == 4) then
			-- update the qglobal in the zone gets reset.
			eq.set_global(instance_id.."_potimeb_status","Phase5",7,"H13");
			eq.set_global(instance_id.."_potimeb_phase_bit","0",7,"H13");
			current_phase = "Phase5";
			-- add 4 hours (14400 seconds) to the fail timer
			UpdateFailTimer(26100,14400);
			-- send signal to flavor text NPC
			eq.signal(223227,5);
			-- reset counter for later use
			event_counter = 0;
			-- spawn phase 5
			SpawnPhaseFive();
			-- unlock the stone from phase 4 to phase 5
			door = entity_list:FindDoor(83);
			if(door ~= nil) then
				door:SetLockPick(0);
			end
		end
	-- signal 6 comes from the phase 5 gods.
	elseif (e.signal == 6) then
		event_counter = event_counter + 1;
		if (event_counter == 4) then
			-- disable the spawn condition
			eq.spawn_condition("potimeb",instance_id,1,0);
			-- update the qglobal in the zone gets reset.
			eq.set_global(instance_id.."_potimeb_status","Phase6",7,"H13");
			current_phase = "Phase6";
			-- add 2 hours (7200 seconds) to the fail timer
			UpdateFailTimer(40500,7200);
			-- send signal to flavor text NPC
			eq.signal(223227,6);
			-- reset counter for later use
			event_counter = 0;
			-- spawn Quarm
			eq.spawn2(223201,0,0,-401,-1106,32.5,92.8125);
			-- spawn #A_Servitor_of_Peace
			eq.spawn2(223101,0,0,244,-1106,-1.125,97.03125);
			-- spawn untargetable Zebuxoruk's Cage
			eq.spawn2(223228,0,0,-579,-1119,60.625,0);
			-- unlock the stone from phase 5 to phase 6
			door = entity_list:FindDoor(51);
			if(door ~= nil) then
				door:SetLockPick(0);
			end
		end
	-- signal 7 comes from Quarm
	elseif (e.signal == 7) then
		-- update the player lockout
		UpdateLockoutGlobal("potimeb_lockout","Phase6","H132");
	-- signal 8 comes from Druzzil_Ro
	elseif (e.signal == 8) then
		-- destroy the instance. this will ensure everyone is removed from the instance
		eq.destroy_instance(instance_id);
		-- port everyone in the zone back to the PoK library top floor
		local client_list = entity_list:GetClientList();
		for c in client_list.entries do
			if (c.valid) then
				c:MovePC(202,1015,20,392,132);
			end
		end
		-- depop the zone nothing else to do here
		eq.depop_zone(false);
	end
end

function ResetSpawnConditions()
	-- reset all spawn conditions to 0 we want nothing up at zone boot or repop
	for i = 1, 10, 1 do
		eq.spawn_condition("potimeb",instance_id,i,0);
	end
end

function ControlPhaseTwo()
	if (current_phase == "Phase2") then
		event_counter = event_counter + 1;
		if (event_counter == 45) then
			event_counter = 0;
			current_phase = "Phase2.5";
			-- spawn them again. this time the named will spawn with them
			SpawnPhaseTwo();
		end
	elseif (current_phase == "Phase2.5") then
		event_counter = event_counter + 1;
		if (event_counter == 50) then
			event_counter = 0;
			current_phase = "Phase3";
			ControlPhaseThree();
			-- send signal to flavor text NPC
			eq.signal(223227,3);
			-- grab the entity list so we can unlock doors.
			local entity_list = eq.get_entity_list();
			-- unlock all of the Phase 2 doors
			UnlockPhaseTwoDoors(entity_list);
			-- update the status global
			eq.set_global(instance_id.."_potimeb_status","Phase3",7,"H13");
			-- add 1 hour and 15 minutes (4500 seconds) to the fail timer
			UpdateFailTimer(7200,4500);
			-- update the lockout for all players to 5 days 12 hours.
			-- need to figure out how to do this
		end
	end
end

function SpawnPhaseTwo()
	if (eq.get_spawn_condition("potimeb",instance_id,10) == 0) then
		-- if it is not set, set it.
		eq.spawn_condition("potimeb",instance_id,10,1);
	else
		-- turn it off and back on to force a full repop
		eq.spawn_condition("potimeb",instance_id,10,0);
		eq.clear_spawn_timers();
		eq.spawn_condition("potimeb",instance_id,10,1);
		-- now spawn the named also since this is wave 2.
		-- Earthen_Overseer
		eq.spawn2(223134,0,0,262,1644,493,192.5);
		-- Windshapen_Warlord_of_Air
		eq.spawn2(223118,0,0,262,1354,493,192.5);
		-- Ralthos_Enrok
		eq.spawn2(223127,0,0,262,1109,493,192.5);
		-- War_Shapen_Emissary
		eq.spawn2(223096,0,0,262,869,493,192.5);
		-- Gutripping_War_Beast
		eq.spawn2(223146,0,0,262,574,493,192.5);
	end
end

function ControlPhaseThree()
	if (current_phase == "Phase3") then
		--spawn phase 3
		-- set the spawn condition for the first wave
		eq.spawn_condition("potimeb",instance_id,2,1);
		-- spawn the untargetable version of the phase 3 named
		eq.spawn2(223010,0,0,1280,1010,359.38,195); -- A_Needletusk_Warboar
		eq.spawn2(223011,0,0,1280,1030,359.38,195); -- Deathbringer_Rianit
		eq.spawn2(223012,0,0,1260,1250,359.38,195); -- Sinrunal_Gorgedreal
		eq.spawn2(223013,0,0,1260,1270,359.38,195); -- Herlsoakian
		eq.spawn2(223014,0,0,1280,1210,359.38,195); -- Xerskel_Gerodnsal
		eq.spawn2(223015,0,0,1280,1190,359.38,195); -- Dersool_Fal`Giersnaol
		eq.spawn2(223016,0,0,1260,970,359.38,195); -- Xeroan_Xi`Geruonask
		eq.spawn2(223017,0,0,1260,950,359.38,195); -- Kraksmaal_Fir`Dethsin
		eq.spawn2(223018,0,0,1300,1070,359.38,195); -- Dreamwarp
		eq.spawn2(223019,0,0,1300,1090,359.38,195); -- Champion_of_Torment
		eq.spawn2(223020,0,0,1300,1130,359.38,195); -- Dark_Knight_of_Terris
		eq.spawn2(223021,0,0,1300,1150,359.38,195); -- Undead_Squad_Leader
		eq.spawn2(223022,0,0,1230,1330,359.38,175); -- A_Deadly_Warboar
		eq.spawn2(223023,0,0,1230,1310,359.38,175); -- Deathbringer_Skullsmash
		--eq.spawn2(223155,0,0,1250,1135,359.5,192); -- A_Ferocious_Warboar
		--eq.spawn2(223156,0,0,1250,1085,359.5,192); -- Deathbringer_Blackheart
		-- depop untargetable and pop targetable versions
		--eq.depop(223155); -- A_Ferocious_Warboar
		--eq.depop(223156); -- Deathbringer_Blackheart
		eq.spawn2(223008,0,0,1250,1135,359.5,192); -- A_Ferocious_Warboar
		eq.spawn2(223009,0,0,1250,1085,359.5,192); -- Deathbringer_Blackheart
		current_phase = "Phase3.1";
	elseif (current_phase == "Phase3.1") then
		event_counter = event_counter + 1;
		if (event_counter == 10) then
			event_counter = 0;
			current_phase = "Phase3.2";
			-- spawn phase 3 wave 2
			eq.spawn_condition("potimeb",instance_id,2,0);
			eq.clear_spawn_timers();
			eq.spawn_condition("potimeb",instance_id,3,1);
			-- depop untargetable and pop targetable versions
			eq.depop(223016); -- Xeroan_Xi`Geruonask
			eq.depop(223017); -- Kraksmaal_Fir`Dethsin
			eq.spawn2(223024,0,0,1250,1085,359.5,192); -- Kraksmaal_Fir`Dethsin
			eq.spawn2(223025,0,0,1250,1135,359.5,192); -- Xeroan_Xi`Geruonask
		end
	elseif (current_phase == "Phase3.2") then
		event_counter = event_counter + 1;
		if (event_counter == 10) then
			event_counter = 0;
			current_phase = "Phase3.3";
			-- spawn phase 3 wave 3
			eq.spawn_condition("potimeb",instance_id,3,0);
			eq.clear_spawn_timers();
			eq.spawn_condition("potimeb",instance_id,4,1);
			eq.depop(223022); -- A_Deadly_Warboar
			eq.depop(223023); -- Deathbringer_Skullsmash
			eq.spawn2(223031,0,0,1250,1085,359.5,192); -- Deathbringer_Skullsmash
			eq.spawn2(223032,0,0,1250,1135,359.5,192); -- A_Deadly_Warboar
		end
	elseif (current_phase == "Phase3.3") then
		event_counter = event_counter + 1;
		if (event_counter == 10) then
			event_counter = 0;
			current_phase = "Phase3.4";
			-- spawn phase 3 wave 4
			eq.spawn_condition("potimeb",instance_id,4,0);
			eq.clear_spawn_timers();
			eq.spawn_condition("potimeb",instance_id,5,1);
			eq.depop(223012); -- Sinrunal_Gorgedreal
			eq.depop(223013); -- Herlsoakian
			eq.spawn2(223038,0,0,1250,1085,359.5,192); -- Sinrunal_Gorgedreal
			eq.spawn2(223037,0,0,1250,1135,359.5,192); -- Herlsoakian
			end
	elseif (current_phase == "Phase3.4") then
		event_counter = event_counter + 1;
		if (event_counter == 10) then
			event_counter = 0;
			current_phase = "Phase3.5";
			-- spawn phase 3 wave 5
			eq.spawn_condition("potimeb",instance_id,5,0);
			eq.clear_spawn_timers();
			eq.spawn_condition("potimeb",instance_id,6,1);
			eq.depop(223010); -- A_Needletusk_Warboar
			eq.depop(223011); -- Deathbringer_Rianit
			eq.spawn2(223047,0,0,1250,1085,359.5,192); -- A_Needletusk_Warboar
			eq.spawn2(223046,0,0,1250,1135,359.5,192); -- Deathbringer_Rianit
		end
	elseif (current_phase == "Phase3.5") then
		event_counter = event_counter + 1;
		if (event_counter == 10) then
			event_counter = 0;
			current_phase = "Phase3.6";
			-- spawn phase 3 wave 6
			eq.spawn_condition("potimeb",instance_id,6,0);
			eq.clear_spawn_timers();
			eq.spawn_condition("potimeb",instance_id,7,1);
			eq.depop(223014); -- Xerskel_Gerodnsal
			eq.depop(223015); -- Dersool_Fal`Giersnaol
			eq.spawn2(223050,0,0,1250,1085,359.5,192); -- Dersool_Fal`Giersnaol
			eq.spawn2(223051,0,0,1250,1135,359.5,192); -- Xerskel_Gerodnsal
		end
	elseif (current_phase == "Phase3.6") then
		event_counter = event_counter + 1;
		if (event_counter == 10) then
			event_counter = 0;
			current_phase = "Phase3.7";
			-- spawn phase 3 wave 7
			eq.spawn_condition("potimeb",instance_id,7,0);
			eq.clear_spawn_timers();
			eq.spawn_condition("potimeb",instance_id,8,1);
			eq.depop(223020); -- Dark_Knight_of_Terris
			eq.depop(223021); -- Undead_Squad_Leader
			eq.spawn2(223058,0,0,1250,1085,359.5,192); -- Dark_Knight_of_Terris
			eq.spawn2(223057,0,0,1250,1135,359.5,192); -- Undead_Squad_Leader
		end
	elseif (current_phase == "Phase3.7") then
		event_counter = event_counter + 1;
		if (event_counter == 10) then
			event_counter = 0;
			current_phase = "Phase3.8";
			-- spawn phase 3 wave 8
			eq.spawn_condition("potimeb",instance_id,8,0);
			eq.clear_spawn_timers();
			eq.spawn_condition("potimeb",instance_id,9,1);
			eq.depop(223018); -- Dreamwarp
			eq.depop(223019); -- Champion_of_Torment
			eq.spawn2(223066,0,0,1250,1085,359.5,192); -- Dreamwarp
			eq.spawn2(223065,0,0,1250,1135,359.5,192); -- Champion_of_Torment
		end
	elseif (current_phase == "Phase3.8") then
		event_counter = event_counter + 1;
		if (event_counter == 10) then
			event_counter = 0;
			current_phase = "Phase3.9";
			-- turn off spawn condition for wave 8
			eq.spawn_condition("potimeb",instance_id,9,0);
			eq.clear_spawn_timers();
			-- spawn golems
			eq.spawn2(223073,0,0,1492,1110,374.1,195.5); -- Avatar_of_the_Elements
			eq.spawn2(223074,0,0,1563,1110,374.1,195.5); -- Supernatural_Guardian
		end
	elseif (current_phase == "Phase3.9") then
		event_counter = event_counter + 1;
		if (event_counter == 2) then
			event_counter = 0;
			current_phase = "Phase4";
			-- send signal to flavor text NPC
			eq.signal(223227,4);
			-- grab the entity list so we can unlock door.
			local entity_list = eq.get_entity_list();
			-- unlock the portal to port up to phase 4
			local door = nil;
			door = entity_list:FindDoor(62);
			if(door ~= nil) then
				door:SetLockPick(0);
			end
			-- update the status global
			eq.set_global(instance_id.."_potimeb_status","Phase4",7,"H13");
			-- add 4 hours (14400 seconds) to the fail timer
			UpdateFailTimer(11700,14400);
			-- update the lockout for all players to 5 days 12 hours.
			UpdateLockoutGlobal("potimeb_lockout","Phase3","H132");
			-- spawn phase 4
			SpawnPhaseFour();
		end
	end
end

function SpawnPhaseFour()
	-- update qglobals
	qglobals = eq.get_qglobals();
	local phase_bit = tonumber(qglobals[instance_id.."_potimeb_phase_bit"]);
	if (phase_bit == 15) then
		-- this a rare crash handling instance. extremely hard to make happen
		eq.set_global(instance_id.."_potimeb_status","Phase5",7,"H13");
		eq.set_global(instance_id.."_potimeb_phase_bit","0",7,"H13");
		eq.repop_zone();
	else
		if (bit.band(phase_bit, 1) == 0) then
			eq.spawn2(223075,0,0,-310,307,365,95); -- Terris Thule
		else
			event_counter = event_counter + 1;
		end
		if (bit.band(phase_bit, 2) == 0) then
			eq.spawn2(223076,0,0,-320,-316,358,32.5); -- Saryrn
		else
			event_counter = event_counter + 1;
		end
		if (bit.band(phase_bit, 4) == 0) then
			eq.spawn2(223077,0,0,405,-84,358,192); -- Tallon Zek
		else
			event_counter = event_counter + 1;
		end
		if (bit.band(phase_bit, 8) == 0) then
			eq.spawn2(223078,0,0,405,75,358,192); -- Vallon Zek
		else
			event_counter = event_counter + 1;
		end
	end
end

function SpawnPhaseFive()
	-- update qglobals
	qglobals = eq.get_qglobals();
	local phase_bit = tonumber(qglobals[instance_id.."_potimeb_phase_bit"]);
	if (phase_bit == 15) then
		-- this a rare crash handling instance. extremely hard to make happen
		eq.set_global(instance_id.."_potimeb_status","Phase6",7,"H13");
		eq.set_global(instance_id.."_potimeb_phase_bit","0",7,"H13");
		eq.repop_zone();
	else
		-- Armies haven't been killed.  Spawn Armies and fake version of each
		-- god that hasn't yet been killed.
		if (bit.band(phase_bit, 16) == 0) then 
			if (bit.band(phase_bit, 1) == 0) then
				eq.spawn2(223098,0,0,-299,-297,23.3,31); -- Fake Bertoxxulous
			else
				event_counter = event_counter + 1;
			end
			if (bit.band(phase_bit, 2) == 0) then
				eq.spawn2(223165,0,0,-257,255,6,101.5); -- Fake Cazic
			else
				event_counter = event_counter + 1;
			end
			if (bit.band(phase_bit, 4) == 0) then
				eq.spawn2(223000,0,0,303.3,306,13.3,161.5); -- Fake Innoruuk
			else
				event_counter = event_counter + 1;
			end
			if (bit.band(phase_bit, 8) == 0) then
				eq.spawn2(223001,0,0,264,-279,18.75,217.5); -- Fake Rallos
			else
				event_counter = event_counter + 1;
			end
			-- spawn the armies
			-- TO DO: need to split armies into spawn groups for each god.
			eq.spawn_condition("potimeb",instance_id,1,1);
			-- timer is waiting for the armies to be killed so we can set that bit.
			eq.set_timer(instance_id .. "_potimeb_p5army", 3000);
		-- Armies are dead, which gods should we pop
		else 
			if (bit.band(phase_bit, 1) == 0) then
				eq.spawn2(223142,0,0,-299,-297,23.3,31); -- Real Bertoxxulous
			else 
				event_counter = event_counter + 1;
			end
			if (bit.band(phase_bit, 2) == 0) then
				eq.spawn2(223166,0,0,-257,255,6,101.5); -- Real Cazic
			else 
				event_counter = event_counter + 1;
			end
			if (bit.band(phase_bit, 4) == 0) then
				eq.spawn2(223167,0,0,303.3,306,13.3,161.5); -- Real Innoruuk
			else 
				event_counter = event_counter + 1;
			end
			if (bit.band(phase_bit, 8) == 0) then
				eq.spawn2(223168,0,0,264,-279,18.75,217.5); -- Real Rallos
			else 
				event_counter = event_counter + 1;
			end
		end
	end

end

function UpdateLockoutGlobal(global_name,global_value,global_duration)
-- not active pending implmentation of a eq.get_players_in_instance
--[[
	local player_list = eq.get_players_in_instance(instance_id);
	-- Lua loop basics:
	-- k = key which is generally the current index of the array
	-- v = value for the current key, in this example it would be the character ID
	for k,v in pairs(player_list) do
		eq.target_global(global_name, global_value, global_duration, 0,v, 0);
	end
--]]
end

function UpdateFailTimer(prior_phases,seconds_to_add)
	-- calculate the remaining time since the event started.
	local current_remainder = prior_phases - os.difftime(os.time(),event_started);
--[[
	-- usefull example for showing what you are setting leaving commented out.
	eq.zone_emote(14,"event_start = " .. event_started);
	eq.zone_emote(14,"prior_phases = " .. prior_phases);
	eq.zone_emote(14,"current_remainder = " .. current_remainder);
	eq.zone_emote(14,"seconds_to_add = " .. seconds_to_add);
	eq.zone_emote(14,"(current_remainder + seconds_to_add) = " .. (current_remainder + seconds_to_add));
--]]
	-- stop and restart the timer with the new time added.
	eq.stop_timer("fail_timer");
	eq.set_timer("fail_timer",(current_remainder + seconds_to_add) * 1000); -- * 1000 to convert to milliseconds
	-- eq.zone_emote(14,"fail_timer set to " .. ((current_remainder + seconds_to_add) * 1000) .. " milliseconds");
end

function event_timer(e)
	if (e.timer == "fail_timer") then
		-- change the qglobal so zone status will not reset things if the zone reboots.
		eq.set_global(instance_id.."_potimeb_status","Failed",7,"H13");
		current_status = "Failed";
		eq.stop_timer("fail_timer");
		-- destroy the instance. this will ensure everyone is removed from the instance
		eq.destroy_instance(instance_id);
		-- depop the zone on event fail.
		eq.depop_zone(false);
	elseif (e.timer == instance_id .. "_potimeb_p5army") then
		-- List of NPCIDs of the army npcs
		local myTable = { 223194, 223195, 223196, 223197, 223198, 223199, 223200, 223002, 223003 };
		local armiesdead = 1;
		for i=1,#myTable do
			if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(myTable[i]) == true ) then
				armiesdead = 0;
			end
		end
		if ( armiesdead == 1 ) then
			local phase_bit = tonumber(qglobals[instance_id.."_potimeb_phase_bit"]);
			eq.set_global(instance_id.."_potimeb_phase_bit",tostring(bit.bor(phase_bit,16)),7,"H13");
			eq.stop_timer(instance_id .. "_potimeb_p5army");
		end
	end
end

-- on Live the doors do not show as locked when clicked. instead the player receives the collowing emote in white text:
-- [Thu Jul 25 19:43:29 2013] The wall feels both insubstantial and solid at the same time, almost as if you were not in phase with it.
-- to make this work on PEQ, we can set the doors to have an open type in the DB that does not move the door
-- and then change the open type on the fly with a quest interaction.
function UnlockPhaseOneDoors(entity_list)
	-- all the clock doors are numbered 1-4, 5-8, etc. from top left (hours 9-12) going clockwise.
	-- the open type needs change as follows to allow them to open properly.
	-- opentype 81: bottom left (hours 6-9)
	-- opentype 79: top left (hours 9-12)
	-- opentype 78: top right (hours 12-3)
	-- opentype 80: bottom right (hours 3-6)
	for i = 1, 20, 4 do
		entity_list:FindDoor(i+0):SetOpenType(78); -- top left
		entity_list:FindDoor(i+1):SetOpenType(79); -- top right
		entity_list:FindDoor(i+2):SetOpenType(80); -- bottom right
		entity_list:FindDoor(i+3):SetOpenType(81); -- bottom left
	end
end

function UnlockPhaseTwoDoors(entity_list)
	-- same thing here
	for i = 21, 32, 4 do
		entity_list:FindDoor(i+0):SetOpenType(78); -- top left
		entity_list:FindDoor(i+1):SetOpenType(79); -- top right
		entity_list:FindDoor(i+2):SetOpenType(80); -- bottom right
		entity_list:FindDoor(i+3):SetOpenType(81); -- bottom left
	end
end
Reply With Quote
  #2  
Old 12-07-2016, 02:24 AM
javewow's Avatar
javewow
Sarnak
 
Join Date: Aug 2012
Location: work
Posts: 74
Default

I I want to change the time, why can't to 20 hours


if (qglobals[instance_id.."_potimeb_phase_bit"] == nil) then
eq.set_global(instance_id.."_potimeb_phase_bit","0 ",7,"H13");

alter

if (qglobals[instance_id.."_potimeb_phase_bit"] == nil) then
eq.set_global(instance_id.."_potimeb_phase_bit","0 ",7,"H24");

this not working???
__________________
To create the most beautiful server for "!!~[BP] PLARYBOT EQ~!" Welcome to our server
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 10:04 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3