Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 01-27-2015, 02:45 PM
Missneye's Avatar
Missneye
Fire Beetle
 
Join Date: Nov 2014
Posts: 21
Post Guild Hall, Guild Bank, and Dynamic Zones

First, I'm looking into getting my Guild Hall working for all guilds on my server. Currently I can get it to work with all NPCs inside and all of them being functional except the Guild Banker. However, the Guild Hall doors in the Guild Lobby will often not create a Guild Hall instance, and will instead port people right back into the Guild Lobby. I'm guessing this is because of my player.pl file. Does anyone happen to have a working script for the Guild Hall that I could use?

Second, when trying to use the Guild Bank, the game simply crashes. I assume that's because I need a script or it isn't implemented. I am using the SoF and Titanium clients with the AXClassic repack, PEQ database. If it does require a script, could someone let me steal that as well?

And third...I use dynamic zones rather than static. For the most part it works perfectly fine, and I have zones staying up for 30 minutes before shutting down if no one is inside. However, corpses will disappear if someone kills something, camps or zones, then tries to come back on either the same or a different character and loot it. Perhaps I have a rule set to something I shouldn't. Has anyone else had this issue?

Thank you.
Reply With Quote
  #2  
Old 01-27-2015, 03:11 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,178
Default

You are probably using RoF2, the guild bank will make your client act strange so stay away from doing that.

Yes, you can remove instancing with the player.pl file, easy to do.

Keep in mind you will have to edit your doors for Guild Hall on the RoF2 client, otherwise there are none.

Hmm, just reread and you say you are using the SoF client? Most of the issues you discuss are related to RoF2.
Reply With Quote
  #3  
Old 01-27-2015, 04:01 PM
Missneye's Avatar
Missneye
Fire Beetle
 
Join Date: Nov 2014
Posts: 21
Default

Yes, I am using SoF. This repack I'm using doesn't support any higher or I'd use either UF or RoF2.

Any idea if the Guild Hall on Live uses instancing? I'd imagine it does, given the amount of guilds on Live servers, but I'm not entirely sure. I have multiple guilds on my server, so I still want more than just one Guild Hall zone unless I can't get the Guild Bank to work.
Reply With Quote
  #4  
Old 01-27-2015, 05:12 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,178
Default

Okay, I was thinking Guild Lobby, not Guild Hall.

Post your current player.pl for that zone.
Reply With Quote
  #5  
Old 01-27-2015, 05:36 PM
Missneye's Avatar
Missneye
Fire Beetle
 
Join Date: Nov 2014
Posts: 21
Post

This is inside the guildlobby player.pl. I haven't changed it at all.

Code:
sub EVENT_CLICKDOOR {
	my $d_id = ($doorid % 256);
  	if($door_id == 2 || $d_id == 4) {
        	if($uguild_id > 0) {
            		if (defined($qglobals{"ginstance$uguild_id"})) {
                		$guildinstance = $qglobals{"ginstance$uguild_id"};
                		quest::AssignToInstance($guildinstance);
                		quest::MovePCInstance(345, $guildinstance, -1.2, -126, 2.2);
            		}
            		else {
                		$guildinstance = quest::CreateInstance("guildhall", 1, 86400);
                		quest::AssignToInstance($guildinstance); 
                		quest::setglobal("ginstance$uguild_id",$guildinstance,7,"H24");
                		quest::MovePCInstance(345, $guildinstance, -1.2, -126, 2.2);
            		}
        	}
    	}
}

As for the Guild Hall...

Code:
sub EVENT_ENTERZONE {
if (defined $qglobals{whimsy}) {
quest::delglobal("whimsy");
}
if($hasitem{69059}) { 
  quest::settimer(1,72);
  }
}

sub EVENT_SIGNAL {
   if ($signal == 1)
   {
      quest::settimer("DoRegen", 6);
   }
   if ($signal == 2)
   {
      quest::stoptimer("DoRegen");
   }
}

sub EVENT_ZONE {
   #Stop the timer if they zone
   quest::stoptimer("DoRegen");
}

sub EVENT_TIMER {
   if ($timer eq "DoRegen")
   {
     quest::stoptimer("DoRegen");
      # Set Regen Percent per tic here
      my $RegenPercent = 5;
      if ($client) {
         my $HPRatio = $client->GetHPRatio();
         if ($HPRatio < 100) {
            my $HPMax = $client->GetMaxHP();
            my $HPNew = (($HPRatio + $RegenPercent) / 100) * $HPMax;
            $client->SetHP($HPNew);
         }
         my $ManaRatio = $client->GetManaRatio();
         if ($ManaRatio < 100) {
            my $ManaMax = $client->GetMaxMana();
            my $ManaNew = (($ManaRatio + $RegenPercent) / 100) * $ManaMax;
            $client->SetMana($ManaNew);
         }
         my $EnduranceRatio = $client->GetEnduranceRatio();
         if ($EnduranceRatio < 100) {
            my $EnduranceMax = $client->GetMaxEndurance();
            my $EnduranceNew = (($EnduranceRatio + $RegenPercent) / 100) * $EnduranceMax;
            $client->SetEndurance($EnduranceNew);
         }
         quest::settimer("DoRegen", 6);
      }
   }
if ($timer == 1) {
  $whimsy_count++;
  }
if($whimsy_count == 1) {
 quest::setglobal("whimsy",1,5,"F");
 }
if($whimsy_count == 2) {
 quest::setglobal("whimsy",2,5,"F");
 }
if($whimsy_count == 3) {
 quest::setglobal("whimsy",3,5,"F");
 }
if($whimsy_count == 4) {
 quest::setglobal("whimsy",4,5,"F");
 }
if($whimsy_count == 5) {
 quest::setglobal("whimsy",5,5,"F");
 }
if($whimsy_count == 6) {
 quest::setglobal("whimsy",6,5,"F");
 }
if($whimsy_count == 7) {
 quest::setglobal("whimsy",7,5,"F");
 }
if($whimsy_count == 8) {
 quest::setglobal("whimsy",8,5,"F");
 }
if($whimsy_count == 9) {
 quest::setglobal("whimsy",9,5,"F");
 }
if($whimsy_count == 10) {
 quest::setglobal("whimsy",10,5,"F");
 quest::stoptimer(1);
 }
}

sub EVENT_POPUPRESPONSE {
	if($popupid == 666) { #hateplaneb
		quest::movepc(186,-393,656,3);
	}
	if($popupid == 674) { #airplane
		quest::movepc(71,539,1384,-664);
	}
	if($popupid == 15891) { #dragonscale
		#quest::movepc(442,-1954,3916,19);
	}
	if($popupid == 2708) { #northkarana
		quest::movepc(13,1209,-3685,-5);
	}
	if($popupid == 4176) { #ecommons
		quest::movepc(22,-140,-1520,3);
	}
	if($popupid == 534) { #lavastorm
		quest::movepc(27,460,460,-86);
	}
	if($popupid == 2707) { #tox
		quest::movepc(38,-916,-1510,-33);
	}
	if($popupid == 2706) { #gfaydark
		quest::movepc(54,-441,-2023,4);
	}
	if($popupid == 2709) { #dreadlands
		quest::movepc(86,9658,3047,1052);
	}
	if($popupid == 2284) { #iceclad
		quest::movepc(110,385,5321,-17);
	}
	if($popupid == 2031) { #coboltscar
		quest::movepc(117,-1634,-1065,299);
	}
	if($popupid == 3615) { #twilight
		quest::movepc(170,-1028,1338,39);
	}
	if($popupid == 3794) { #stonebrunt
		quest::movepc(100,673,-4531,0);
	}
	if($popupid == 6180) { #wallofslaughter
		#quest::movepc(300,-943,13,130);
	}
	if($popupid == 5733) { #barindu
		quest::movepc(283,209,-515,-119);
	}
	if($popupid == 8237) { #eastkorlach
		#quest::movepc(362,-750,-1002,48);
	}
	if($popupid == 8967) { #arcstone
		#quest::movepc(369,1630,-279,5);
	}
	if($popupid == 999) { #mesa
		#quest::movepc(397,-85,-2050,19);
	}
	if($popupid == 1000) { #guild banner
		#not implemented yet
	}
	if($popupid == 416) { #kattacastrum
		#quest::movepc(416,-2,-425,-19);
	}
	if($popupid == 20543) { #potimea
		quest::movepc(219,0,110,8);
	}
	if($popupid == 21986) { #brellsrest
		#quest::movepc(480,-23,-619,36);
	}
}

sub EVENT_COMBINE_SUCCESS {
  if (($recipe_id == 10904) || ($recipe_id == 10905) || ($recipe_id == 10906) || ($recipe_id == 10907)) {
    $client->Message(15,"The gem resonates with power as the shards placed within glow unlocking some of the stone's power. You were successful in assembling most of the stone but there are four slots left to fill, where could those four pieces be?");
  }
  if ($recipe_id == 10903) {
    if (($class eq "Bard") || ($class eq "Beastlord") || ($class eq "Paladin") || ($class eq "Ranger") ||  ($class eq "Shadowknight")) {
      quest::summonitem(67666);
      quest::summonitem(67704);
    }
    elsif (($class eq "Warrior") || ($class eq "Monk") || ($class eq "Berserker")  || ($class eq "Rogue"))  {
      quest::summonitem(67665);
      quest::summonitem(67704);
    }
    elsif (($class eq "Cleric") || ($class eq "Shaman") || ($class eq "Druid")) {
      quest::summonitem(67667);  
      quest::summonitem(67704);
    }
    elsif (($class eq "Necromancer") || ($class eq "Wizard") || ($class eq "Enchanter")  || ($class eq "Magician")) {
      quest::summonitem(67668);
      quest::summonitem(67704);
    }
    $client->Message(1,"Success");
  }
  if ($recipe_id == 10346) {
    if (($class eq "Bard") || ($class eq "Beastlord") || ($class eq "Paladin") || ($class eq "Ranger") ||  ($class eq "Shadowknight")) {
      quest::summonitem(67661);
      quest::summonitem(67704);
    }
    elsif (($class eq "Warrior") || ($class eq "Monk") || ($class eq "Berserker")  || ($class eq "Rogue"))  {
      quest::summonitem(67660);
      quest::summonitem(67704);
    }
    elsif (($class eq "Cleric") || ($class eq "Shaman") || ($class eq "Druid")) {
      quest::summonitem(67662);
      quest::summonitem(67704);
    }
    elsif (($class eq "Necromancer") || ($class eq "Wizard") || ($class eq "Enchanter")  || ($class eq "Magician")) {
      quest::summonitem(67663);
      quest::summonitem(67704);
    }
    $client->Message(1,"Success");
  }
  if ($recipe_id == 10334) {
    if (($class eq "Bard") || ($class eq "Beastlord") || ($class eq "Paladin") || ($class eq "Ranger") ||  ($class eq "Shadowknight")) {
      quest::summonitem(67654);
      quest::summonitem(67704);
    }
    elsif (($class eq "Warrior") || ($class eq "Monk") || ($class eq "Berserker")  || ($class eq "Rogue"))  {
      quest::summonitem(67653);
      quest::summonitem(67704);
    }
    elsif (($class eq "Cleric") || ($class eq "Shaman") || ($class eq "Druid")) {
      quest::summonitem(67655);
      quest::summonitem(67704);
    }
    elsif (($class eq "Necromancer") || ($class eq "Wizard") || ($class eq "Enchanter")  || ($class eq "Magician")) {
      quest::summonitem(67656);
      quest::summonitem(67704);
    }
    $client->Message(1,"Success");
  }
}

Last edited by Missneye; 01-27-2015 at 05:39 PM.. Reason: Adding information
Reply With Quote
  #6  
Old 01-28-2015, 10:16 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,947
Default

AXClassic is quite old and outdated. Your source code is probably from before the guild bank was even implemented into EQEmu at all. I am guessing SoF is the newest client your server supports?

If you want guild bank to work, you are most likely going to have to update your source code (compile the latest), and update your database to match the latest source. We have an auto-update script for database updates now, but I am pretty sure it doesn't go back as far as AXClassic would need yet. So, you would probably have to do some of it manually.

As far as scripts go; you can download the PEQ scripts and check them out/copy them yourself.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #7  
Old 02-01-2015, 09:27 PM
Missneye's Avatar
Missneye
Fire Beetle
 
Join Date: Nov 2014
Posts: 21
Default

Thanks, trevius!

I've been using some of the files from current PEQ and testing them the last few days. The GH seems to work fine now, and I managed to fix a lot PoP raids just by replacing those files or editing the scripts a little. Oddly enough, some of my old files worked where the most recent PEQ files didn't, such as with the PoNightmare maze raid. My server only goes up to LDoN, so getting PoP fully functional is pretty much essential. Thanks again.
Reply With Quote
Reply

Tags
bank, dynamic, guild, hall, zone

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 02:37 PM.


 

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 - 2019, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3