View Single Post
  #1  
Old 10-03-2014, 10:30 PM
Asylum
Sarnak
 
Join Date: Jun 2013
Posts: 81
Default Tiered dungeons (Diablo 3-style tiered rift)

I've created a tiered dungeon crawl of citymist instances. Basically, each run through the zone to the top (where the lone black reaver usually spawns on most servers) you encounter an npc who opens the next more difficult instance to you, and grants a reward. The instances get progressively more difficult with new challenges, named mobs, events to spawn the next instance npc, bosses, checks for item collection to continue, zonewide AE-negating items, et cetera. At the moment, I have nine tiers of this zone for level 50-61. Here are the scripts of a few of the npcs involved:

instance generator for each instance
temple_one.pl:
Code:
sub EVENT_SPAWN {
	$npc->TempName("");
}

sub EVENT_SAY {
	if($text=~/hail/i){
	$client->Message(315, "This portal leads to Mirka, The Temple of Mist. Each time you reach this point, a new Temple will be opened and you will be rewarded. Do you really wish to [go] there?");
	$client->Message(315, "You must be level 50+ to enter.");
	}
	if($text =~/go/i && $ulevel >= 50) {
		my $InstId = quest::GetInstanceID("citymist", 1);
		$client->Message(315, "Mirka, The Temple of Mist I");
		if ($InstId > 0) {
			quest::MovePCInstance(90, $InstId,-848,0,3.1,64);
		}
		elsif ($ulevel > 0) {
			my $i_id = quest::CreateInstance("citymist", 1, 21600);
			quest::AssignGroupToInstance($i_id);
			quest::AssignToInstance($i_id);
			quest::MovePCInstance(90, $i_id,-848,0,3.1,64);
		}
		else {
		}
	}
}
temple_two.pl:
Code:
sub EVENT_SPAWN {
	$npc->TempName("");
}

sub EVENT_SAY {
	if($text=~/hail/i){
	$client->Message(315, "This portal leads to Mirka, The Temple of Mist II. Each time you reach this point, a new Temple will be opened and you will be rewarded. Do you really wish to [go] there?");
	$client->Message(315, "You must be level 53+ to enter.");
	$client->Message(315, "Here is your reward for making it this far.");
	quest::summonitem(6503); #Summons lore, no drop, item
	}
	if($text =~/go/i && $ulevel >= 53) {
		my $InstId = quest::GetInstanceID("citymist", 2);
		$client->Message(315, "Mirka, The Temple of Mist II");
		if ($InstId > 0) {
			quest::MovePCInstance(90, $InstId,-848,0,3.1,64);
		}
		elsif ($ulevel > 0) {
			my $i_id = quest::CreateInstance("citymist", 2, 21600);
			quest::AssignGroupToInstance($i_id);
			quest::AssignToInstance($i_id);
			quest::MovePCInstance(90, $i_id,-848,0,3.1,64);
		}
		else {
		}
	}
}
temple_seven.pl: (you get the idea, not posting all of them)
Code:
sub EVENT_SPAWN {
	$npc->TempName("");
	my $a = ChooseRandom(6538, 6540, 6541);
}

sub EVENT_SAY {
	if($text=~/hail/i){
	$client->Message(315, "This portal leads to Mirka, The Temple of Mist VII. Each time you reach this point, a new Temple will be opened and you will be rewarded. Do you really wish to [go] there?");
	$client->Message(315, "You must be level 61+ to enter.");
	$client->Message(315, "Here is your reward for making it this far.");
	quest::summonitem($a); #Summons lore, no drop, item
	}
	if($text =~/go/i && $ulevel >= 61 && plugin::check_hasitem($client, 6488)) {
		my $InstId = quest::GetInstanceID("citymist", 7);
		$client->Message(315, "Mirka, The Temple of Mist VII");
		if ($InstId > 0) {
			quest::MovePCInstance(90, $InstId,-848,0,3.1,64);
		}
		elsif ($ulevel > 0) {
			my $i_id = quest::CreateInstance("citymist", 7, 21600);
			quest::AssignGroupToInstance($i_id);
			quest::AssignToInstance($i_id);
			quest::MovePCInstance(90, $i_id,-848,0,3.1,64);
		}
		else {
		}
	}
}
Think you can make the run without cheating (MQ)? Come test it out over on Jer's Server.
Reply With Quote