Quote:
//<====================================================== Test Arena ========================================================>\\
// Test Guide ---------------------------------------------------------------------------------
job_wiz.gat,50,165,4 script Wizard Test Guide::WzTG 123,{
mes "[Test Guide]";
mes "Welcome. I will be your guide for the Wizard Test.";
next;
menu "I would like to take the test.",M_0, "I would like to leave.",M_1;
M_0:
mes "[Test Guide]";
mes "As you have been told you will have 3 minutes to finish each portion of the test.";
mes "I will periodically announce how much time you have left for each room on a minute by minute basis.";
next;
mes "[Test Guide]";
mes "Please enter the 'Wizard Test Waiting Room' when you are ready to take the test.";
mes "When the testing room is ready you will be automatically warped there and the exam will begin.";
next;
mes "[Test Guide]";
mes "Good luck!";
close;
M_1:
mes "[Test Guide]";
mes "I see. I will send you back.";
next;
warp "gef_tower.gat",106, 35;
end;
OnInit:
waitingroom "Wizard Test Waiting Room",8,"WzTG::OnStart",1;
end;
OnStart:
set $@WzUsers, getareausers("job_wiz.gat", 98, 154, 129, 185); // get user count for first lvl
set $@WzUsers, $@WzUsers + getareausers("job_wiz.gat", 100, 82, 131, 113); // get user count for second lvl + first lvl
set $@WzUsers, $@WzUsers + getareausers("job_wiz.gat", 30, 82, 61, 113); // get user count for third lvl + second lvl + first lvl
if ($@WzUsers > 0) end;
if ((getwaitingroomstate(33)) == 0) end; // finds out if there is anyone in the waiting room
disablenpc "waterwrp"; //disables the warps
disablenpc "waterwarpW";
disablenpc "waterwarpN";
disablenpc "waterwarpS";
disablenpc "earthwrp";
disablenpc "earthwarpW";
disablenpc "earthwarpN";
disablenpc "earthwarpS";
disablenpc "firewrp";
disablenpc "firewarpN";
disablenpc "firewarpW";
disablenpc "firewarpS";
killmonsterall "job_wiz.gat"; //makes sure there are no left over mobs from other testers
warpwaitingpc "job_wiz.gat",114,169;
donpcevent "WaterRm::OnStart";
end;
}
// Room of Water -----------------------------------------------------------------------------
job_wiz.gat,1,1,1 script WaterRm -1,{
OnStart:
set $@WzRm, 1; // used to determine which map area(room) to make time announcements in
set $@WzMOB, 8; //used as a counter for the monsters that are summoned
monster "job_wiz.gat",109,174,"Phen",1158,1,"WaterRm::OnMyMobDead1";
monster "job_wiz.gat",118,174,"Kukre",1070,1,"WaterRm::OnMyMobDead1";
monster "job_wiz.gat",98,170,"Kukre",1070,1,"WaterRm::OnMyMobDead1";
monster "job_wiz.gat",109,165,"Vadon",1066,1,"WaterRm::OnMyMobDead1";
monster "job_wiz.gat",118,165,"Cornutus",1067,1,"WaterRm::OnMyMobDead1";
monster "job_wiz.gat",101,157,"Marina",1141,1,"WaterRm::OnMyMobDead1";
monster "job_wiz.gat",126,157,"Marin",1242,1,"WaterRm::OnMyMobDead1";
monster "job_wiz.gat",129,170,"Obeaune",1044,1,"WaterRm::OnMyMobDead1";
initnpctimer "TimerWz";
end;
OnMyMobDead1: //when a monster dies this portion of script is run
set $@WzMOB, $@WzMOB - 1;
if ($@WzMOB > 0) end;
stopnpctimer "TimerWz";
set $@WzMOB, 0;
addtimer 2000, "WaterRm::OnTimer2000";
end;
OnTimer2000:
set $@WzMOB, 5;
areaannounce "job_wiz.gat", 98, 154, 129, 185, "[Test Guide]: You must now defeat the door gaurds! Hurry!",8;
monster "job_wiz.gat",114,169,"Marine Sphere",1142,1,"WaterRm::OnMyMobDead2";
monster "job_wiz.gat",112,169,"Hydra",1068,1,"WaterRm::OnMyMobDead2";
monster "job_wiz.gat",116,169,"Hydra",1068,1,"WaterRm::OnMyMobDead2";
monster "job_wiz.gat",114,171,"Hydra",1068,1,"WaterRm::OnMyMobDead2";
monster "job_wiz.gat",114,167,"Hydra",1068,1,"WaterRm::OnMyMobDead2";
setnpctimer 120000, "TimerWz";
startnpctimer "TimerWz";
end;
OnMyMobDead2:
set $@WzMOB, $@WzMOB - 1;
if ($@WzMOB > 0) end;
stopnpctimer "TimerWz";
set $@WzMOB, 0;
areaannounce "job_wiz.gat", 98, 154, 129, 185, "[Test Guide]: Well done. You have completed the Room of Water. Get ready for the Room of Earth.",8;
percentheal 100,100;
enablenpc "waterwrp";
enablenpc "waterwarpW";
enablenpc "waterwarpN";
enablenpc "waterwarpS";
initnpctimer "waterwrp"; // warps the player after 30 secs even if they don't enter the warps
end;
}
// Room of Earth -----------------------------------------------------------------------------------------------
job_wiz.gat,1,1,1 script EarthRm -1,{
OnStart:
set $@WzRm, 2;
set $@WzMOB, 10;
monster "job_wiz.gat",111,102,"Yoyo",1057,1,"EarthRm::OnMyMobDead1";
monster "job_wiz.gat",120,102, "Deniro",1105,1,"EarthRm::OnMyMobDead1";
monster "job_wiz.gat",111,102, "Caramel",1103,1,"EarthRm::OnMyMobDead1";
monster "job_wiz.gat",120,102,"Hode",1127,1,"EarthRm::OnMyMobDead1";
monster "job_wiz.gat",111,93,"Savage",1166,1,"EarthRm::OnMyMobDead1";
monster "job_wiz.gat",120,93,"Giearth",1121,1,"EarthRm::OnMyMobDead1";
monster "job_wiz.gat",107,98,"Bigfoot",1160,1,"EarthRm::OnMyMobDead1";
monster "job_wiz.gat",124,98,"Orc Warrior",1023,1,"EarthRm::OnMyMobDead1";
monster "job_wiz.gat",104,86,"Vitata",1176,1,"EarthRm::OnMyMobDead1";
monster "job_wiz.gat",127,86,"Mantis",1139,1,"EarthRm::OnMyMobDead1";
initnpctimer "TimerWz";
end;
OnMyMobDead1:
set $@WzMOB, $@WzMOB - 1;
if ($@WzMOB > 0) end;
stopnpctimer "TimerWz";
addtimer 2000, "EarthRm::OnTimer2000";
set $@WzMOB, 0;
end;
OnTimer2000:
set $@WzMOB, 7;
areaannounce "job_wiz.gat", 100, 82, 131, 113, "[Test Guide]: You now must defeat the door gaurds! Hurry!.",8;
monster "job_wiz.gat",116,97,"Flora",1118,1,"EarthRm::OnMyMobDead2";
monster "job_wiz.gat",114,95,"Mandragora",1020,1,"EarthRm::OnMyMobDead2";
monster "job_wiz.gat",118,95,"Mandragora",1020,1,"EarthRm::OnMyMobDead2";
monster "job_wiz.gat",114,99,"Mandragora",1020,1,"EarthRm::OnMyMobDead2";
monster "job_wiz.gat",118,99,"Mandragora",1020,1,"EarthRm::OnMyMobDead2";
monster "job_wiz.gat",116,94,"Mandragora",1020,1,"EarthRm::OnMyMobDead2";
monster "job_wiz.gat",116,100,"Mandragora",1020,1,"EarthRm::OnMyMobDead2";
setnpctimer 120000, "TimerWz";
startnpctimer "TimerWz";
end;
OnMyMobDead2:
set $@WzMOB, $@WzMOB - 1;
if ($@WzMOB > 0) end;
stopnpctimer "TimerWz";
set $@WzMOB, 0;
areaannounce "job_wiz.gat", 100, 82, 131, 113, "[Test Guide]: Well done. You have completed the Room of Earth. Get ready for the Room of Fire.",8;
percentheal 100,100;
enablenpc "earthwrp";
enablenpc "earthwarpN";
enablenpc "earthwarpW";
enablenpc "earthwarpS";
initnpctimer "earthwrp";
end;
}
// Room of Fire ------------------------------------------------------------------------------------------------------------
job_wiz.gat,1,1,1 script FireRm -1,{
OnStart:
set $@WzRm, 3;
set $@WzMOB, 7;
monster "job_wiz.gat",58,110,"Zerom",1178,1,"FireRm::OnMyMobDead1";
monster "job_wiz.gat",33,110,"Flail Goblin",1123,1,"FireRm::OnMyMobDead1";
monster "job_wiz.gat",40,103,"Scorpion",1001,1,"FireRm::OnMyMobDead1";
monster "job_wiz.gat",51,103,"Frilldora",1119,1,"FireRm::OnMyMobDead1";
monster "job_wiz.gat",40,92,"Peco Peco",1019,1,"FireRm::OnMyMobDead1";
monster "job_wiz.gat",51,92,"Elder Willow",1033,1,"FireRm::OnMyMobDead1";
monster "job_wiz.gat",37,89,"Metaller",1058,1,"FireRm::OnMyMobDead1";
initnpctimer "TimerWz";
end;
OnMyMobDead1:
set $@WzMOB, $@WzMOB - 1;
if ($@WzMOB > 0) end;
stopnpctimer "TimerWz";
addtimer 2000, "FireRm::OnTimer2000";
set $@WzMOB, 0;
end;
OnTimer2000:
set $@WzMOB, 3;
areaannounce "job_wiz.gat", 30, 82, 61, 113, "[Test Guide]: You now must defeat the door gaurds! Hurry!.",8;
monster "job_wiz.gat",44,99,"Greatest General",1277,1,"FireRm::OnMyMobDead2";
monster "job_wiz.gat",43,99,"Horong",1129,1,"FireRm::OnMyMobDead2";
monster "job_wiz.gat",45,99,"Horong",1129,1,"FireRm::OnMyMobDead2";
setnpctimer 120000, "TimerWz";
startnpctimer "TimerWz";
end;
OnMyMobDead2:
set $@WzMOB, $@WzMOB - 1;
if ($@WzMOB > 0) end;
stopnpctimer "TimerWz";
set $@WzMOB, 0;
set WIZ_Q, 4;
set WIZ_Q2, 0;
areaannounce "job_wiz.gat", 30, 82, 61, 113, "[Test Guide]: Well done. You have completed the Room of Fire and the entire test.",0;
enablenpc "firewrp";
enablenpc "firewarpN";
enablenpc "firewarpW";
enablenpc "firewarpS";
initnpctimer "firewrp";
end;
}
// Timer -----------------------------------------------------------------------------------------------
job_wiz.gat,1,1,1 script TimerWz -1,{
OnTimer1000:
if($@WzRm==1) areaannounce "job_wiz.gat", 98, 154, 129, 185, "[Test Guide]: Room of Water, testing will begin.",8;
if($@WzRm==2) areaannounce "job_wiz.gat", 100, 82, 131, 113, "[Test Guide]: Room of Earth, testing will begin.",8;
if($@WzRm==3) areaannounce "job_wiz.gat", 30, 82, 61, 113, "[Test Guide]: Room of Fire, testing will begin.",8;
end;
OnTimer4000:
set $@WzTime$, "You have 3 minutes to defeat all of the monsters in this room starting now!";
donpcevent "WzTG::OnStart"; //checks to see if anyone is still in the room, in case of logout or KO
callsub AnnounceWz;
OnTimer34000:
donpcevent "WzTG::OnStart";
end;
OnTimer64000:
set $@WzTime$, "You have 2 minutes left!";
donpcevent "WzTG::OnStart";
callsub AnnounceWz;
OnTimer94000:
donpcevent "WzTG::OnStart";
end;
OnTimer124000:
set $@WzTime$, "You have 1 minute left!";
donpcevent "WzTG::OnStart";
callsub AnnounceWz;
OnTimer154000:
set $@WzTime$, "You have 30 seconds left!";
donpcevent "WzTG::OnStart";
callsub AnnounceWz;
OnTimer174000:
set $@WzTime$, "You have 10 seconds left!";
callsub AnnounceWz;
OnTimer184000:
set $@WzTime$, "Time is up. You have failed the test.";
callsub AnnounceWz;
OnTimer188000:
stopnpctimer;
if($@WzRm==1) areawarp "job_wiz.gat", 98, 154, 129, 185, "gef_tower.gat",106, 35;
if($@WzRm==2) areawarp "job_wiz.gat", 100, 82, 131, 113, "gef_tower.gat",106, 35;
if($@WzRm==3) areawarp "job_wiz.gat", 30, 82, 61, 113, "gef_tower.gat",106, 35;
killmonsterall "job_wiz.gat";
donpcevent "WzTG::OnStart";
end;
AnnounceWz:
if($@WzRm==1) areaannounce "job_wiz.gat", 98, 154, 129, 185, "[Test Guide]: "+$@WzTime$+".",8;
if($@WzRm==2) areaannounce "job_wiz.gat", 100, 82, 131, 113, "[Test Guide]: "+$@WzTime$+".",8;
if($@WzRm==3) areaannounce "job_wiz.gat", 30, 82, 61, 113, "[Test Guide]: "+$@WzTime$+".",8;
end;
}
// Warps ------------------------------------------------------------------------------------------
// Water
job_wiz.gat,129,169,1 script waterwarpE::waterwrp 45,1,1,{
OnTimer30000:
stopnpctimer "waterwrp";
areawarp "job_wiz.gat", 98, 154, 129, 185, "job_wiz.gat",116,98;
donpcevent "EarthRm::OnStart";
end;
}
job_wiz.gat,98,169,1 duplicate(waterwrp) waterwarpW 45,1,1
job_wiz.gat,114,185,1 duplicate(waterwrp) waterwarpN 45,1,1
job_wiz.gat,114,154,1 duplicate(waterwrp) waterwarpS 45,1,1
// Earth
job_wiz.gat,131,98,1 script earthwarpE::earthwrp 45,1,1,{
OnTimer30000:
stopnpctimer "earthwrp";
areawarp "job_wiz.gat", 100, 82, 131, 113, "job_wiz.gat",47,98;
donpcevent "FireRm::OnStart";
end;
}
job_wiz.gat,100,98,1 duplicate(earthwrp) earthwarpW 45,1,1
job_wiz.gat,116,82,1 duplicate(earthwrp) earthwarpN 45,1,1
job_wiz.gat,116,113,1 duplicate(earthwrp) earthwarpS 45,1,1
// Fire
job_wiz.gat,61,97,1 script firewarpE::firewrp 45,1,1,{
OnTimer30000:
stopnpctimer "firewrp";
areawarp "job_wiz.gat", 30, 82, 61, 113, "gef_tower.gat",106,35;
donpcevent "WzTG::OnStart";
end;
}
job_wiz.gat,30,97,1 duplicate(firewrp) firewarpW 45,1,1
job_wiz.gat,46,113,1 duplicate(firewrp) firewarpN 45,1,1
job_wiz.gat,46,82,1 duplicate(firewrp) firewarpS 45,1,1
//==============================================================================
// mapflag
//==============================================================================
job_wiz.gat mapflag nomemo
job_wiz.gat mapflag noteleport
job_wiz.gat mapflag nosave SavePoint
job_wiz.gat mapflag nopenalty
job_wiz.gat mapflag nobranch
job_wiz.gat mapflag noexp
job_wiz.gat mapflag noloot