PDA

View Full Version : Frontier Mountains 3-corners spawns


Angelox
07-19-2006, 03:08 PM
Most of the named mobs in Frontier Mountains spawn off a cycle known as "the three corner cycles" - The cycle includes the 3 corners of the zone, SE (fort area), SW (BW entrance area) and NW (droga entrance area). what happens is, when you kill a specific roaming mob in one corner, it will trigger another spawn in another corner- and as you go around killing what spawned in each corner, you will sooner or later see the named mobs pop off the loop.
This is one of three or possibly more 3-corner cycles, should give you an idea on how to do them all, eventually - i will have them all posted for download. If anyone has any information on these spawns , such as what the NPCs the spawn groups have, please PM me or post here.
You have to start with one spawn from the database in order to start the loop. In my case, I used a goblin raider. Set him to only spawn one time only (respawn: 0), as his death will start the loop, and you don't want any more cycles off the same loop.
What follows is one PL from each perl spawngroup I have the full set posted here;
http://www.nahunta.org/~angelox/

Once you have the spawns running properly, you can set grids and remove the "quest::say" text.

First corner;
# 3 corners spawn1
# EOF zone: frontiermtns
# SE corner mob

sub EVENT_DEATH
{
my $a = quest::ChooseRandom(92178,92029,9218); # Gromlok,a mountain giant hillock,mountain giant prospector
quest::say("Spawning SW corner mob");
quest::spawn2($a,0,0,-1798,-29,-109.50,0);
}

Second corner;
# 3 corners spawn1
# EOF zone: frontiermtns
# SW corner mob

sub EVENT_DEATH
{
my $a = quest::ChooseRandom(92154,92065,92173); # eboneyes, burynai miner, burynai grand cenobite
quest::say("Spawning NW corner mob");
quest::spawn2($a,0,0,2486,1386,267.88,192);
}


Third corner;
# 3 corners spawn1
# EOF zone: frontiermtns
# NW corner mob
# Angelox

sub EVENT_DEATH
{
my $a = quest::ChooseRandom(92182,92015,92186); # blugtugin, goblin raider,goblin herbcollector
quest::say("Spawning SE corner mob");
quest::spawn2($a,0,0,-612,-2830,-478.75,122);
}

and this will loop back to the goblin raider spawn group - to increase rareness of the named mobs, you can duplicate normal mob id's - example;
my $a = quest::ChooseRandom(92182,92015,92015,92015,92186) ;
You also need to add grids, as all of these spawns roam the whole corner they spawn in: set them off to roam as soon as they spawn, so no one can catch on to their spawn spot.
Also, notice I used #goblin_raider instead of goblin_raider; this should isolate the npc from the other goblin_raiders in the zone , so they won't all trigger the cycle - same goes for any of the common mobs I used in the zone.

Angelox
07-20-2006, 09:07 AM
You have to start with one spawn from the database in order to start the loop. In my case, I used a goblin raider. Set him to only spawn one time only (respawn: 0), as his death will start the loop, and you don't want any more cycles off the same loop.

This does not work - so far , with everything I have tried , I can't seem to get one mob to spawn and not respawn again. what I do for now, is go in the zone and GM spawn the first mob in the loop.

Angelox
07-21-2006, 03:05 PM
This is a "trigger" mob for all the 3-corner cycles in frontiermtns- once he spawns the first mob in the cycle, he will not respawn them anymore on dieing. The mobs in the cycle (posted above) will continue to spawn each other as they are killed. Probably can make this guy aggro npc's so he can get him self killed and start off the cycles.

# 3 corners trigger mob, goblin traitor, for all loops
# EOF zone: frontiermtns
# Illomen zone

sub EVENT_DEATH
{
my $a=92015; #goblin raider, starts spawn1 cycle
my $b=92067; #goblin traitor, trigger mob
if ($bdied=~ /1/) #traitor died once
{
quest::say("I already died once!");
}
else
{
quest::say("Spawning goblin raider by Nurga");
quest::spawn2($a,0,0,-612,-2830,-478.75,122);
$bdied=1; #mark traitor died once
}
}

Angelox
07-22-2006, 01:21 AM
Can't edit my last post anymore, so this should read
if ($bdied==1) #traitor died once
instead of
if ($bdied=~ /1/) #traitor died once

They both work, only if ($bdied=~ /1/) probably not proper, and might create a future problem.