|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Support::General Support Post all topics here having to do with errors while trying to connect to an EQEMu server but not about the setup/running of the Server itself. |
 |
|
 |

01-31-2025, 03:29 AM
|
Hill Giant
|
|
Join Date: May 2003
Location: Tacoma, WA
Posts: 229
|
|
RoF2 GuildLobby Issue
I've done a fair amount of searching for solutions for this, even tried one with some code, but it didn't work completely.
The issue is the RoF2 client guildlobby instancing issue. When you zone in from PoK to guildlobby, or from the guild hall to the guildlobby, you get dumped in the instance. Want all clients to go to the same guildlobby and guildhall. I have "buffbots" in the guildlobby, so want all clients to go to the same one.
We recently created a test server using a windows build, (because the linux version seems to only support akkastack now) but that default server setup still does the instancing with the ROF2 client. I can't believe this is a unique situation.
Has anyone got player.pl files for the guildlobby, the guildhall and poknowledge that work the same way with all supported clients that support PoP expansions and above, that they can post the code for?
Thank you...
|
 |
|
 |
 |
|
 |

01-31-2025, 06:29 PM
|
Hill Giant
|
|
Join Date: May 2003
Location: Tacoma, WA
Posts: 229
|
|
I have modified the guildlobby player.pl file to prevent the player with an ROF2 client from getting sent to the instanced version of the guildlobby. That said, the specific issue I have is getting into the guildhall with the ROF2 client. The two doors do not work whatsoever, that makes the ROF2 client unusable until this issue is resolved.
I think this involves the player.pl file from either the guildhall or the guildlobby. To that end, I think the best way to resolve this is to post the 2 files here and hope someone sees something I am obviously missing.
guildlobby player.pl:
Code:
my $Pet_ENT;
sub EVENT_CLICKDOOR {
if($doorid == 2 || $doorid == 4 || $doorid == 40 || $doorid == 42) {
if($uguild_id > 0) {
$client->SendToGuildHall();
}
} elsif((($doorid >= 5) && ($doorid <= 38)) || (($doorid >= 43) && ($doorid <= 76))) {
$client->OpenLFGuildWindow();
}
}
sub EVENT_ENTERZONE {
#off the map
if ($client->GetX() > 315 || $client->GetX() < -315 || $client->GetY() > 685 || $client->GetY() < -60 || $client->GetZ() < -5 || $client->GetZ() > 15) {
$client->MovePC(344, 0, 312, 2, 0); # Zone: guildlobby
}
#if I am idle for more than xx seconds, auto-afk and go invisible/don't draw model
# Disabling AutoAFK rdh 05222023
# quest::settimer("afk_check", 1200); #20 minutes
/* Client version doesn't matter - sending everyone to the ONE instance of guildlobby -rdh01302025
if(($client->GetClientVersionBit() & 4294967264)!= 0) {
if($client->GetInstanceID() != 5) {
quest::settimer(1,10);
$client->Message(0,"Invalid Zone(344:0): You will be redirected to the proper instance in 10 seconds.");
}
} else {
if($client->GetInstanceID() == 5) {
quest::settimer(2,10);
$client->Message(0,"Invalid Zone(344:5): You will be redirected to the proper zone in 10 seconds.");
}
}
}
*/
sub EVENT_SIGNAL {
#signals received from enter/exit proximity of various NPCs
#if ($client->GetRace() != 127) {
#I am not invisible from auto-afk, and I'm still moving around, reset auto-afk timer
#quest::settimer("afk_check", 1200);
#} else {
#I was already set invisible from auto-afk, but now I am moving, set back to base race - not afk
#$client->SetRace($client->GetBaseRace());
#$client->SetGender($client->GetBaseGender());
#if ($client->GetPetID()) {
# $Pet_ENT = $entity_list->GetMobByID($client->GetPetID());
# $Pet_ENT->SetRace($Pet_ENT->GetBaseRace());
#}
#$client->Message(4, "You are no longer idle.");
#quest::settimer("afk_check", 1200);
#}
}
sub EVENT_TIMER {
if($timer == 1) {
# quest::MovePCInstance(344,5,$x,$y,$z,450); # Zone: guildlobby_INSTANCED
quest::movepc(344,$x,$y,$z,225); # Zone: guildlobby
} elsif($timer == 2) {
quest::movepc(344,$x,$y,$z,225); # Zone: guildlobby
} elsif($timer eq "afk_check") {
#I have been idle, go auto-afk and don't draw model
$client->Message(4, "You are idle, Auto-AFK");
if ($client->GetPetID()) {
$Pet_ENT = $entity_list->GetMobByID($client->GetPetID());
$Pet_ENT->SetRace(127);
}
$client->SetRace(127);
$client->SetGender(0);
quest::stoptimer("afk_check");
This is the guildhall player.pl file:
Code:
# Guild Hall Regen Pool Script - Player Portion
sub EVENT_ENTERZONE {
quest::settimer("ZoneIn", 3);
}
sub EVENT_TIMER {
if ($timer eq "ZoneIn") {
quest::stoptimer("ZoneIn");
quest::signalwith(345004,$charid); # NPC: Zeflmin_Werlikanin Portal Crystals
}
}
sub EVENT_POPUPRESPONSE {
if ($popupid == 666) { #hateplaneb
quest::movepc(186,-393,656,3); # Zone: hateplaneb
}
if ($popupid == 674) { #airplane
quest::movepc(71,539,1384,-664); # Zone: airplane
}
if ($popupid == 15891) { #dragonscale
#quest::movepc(442,-1954,3916,19);
}
if ($popupid == 2708) { #northkarana
quest::movepc(13,1209,-3685,-5); # Zone: northkarana
}
if ($popupid == 4176) { #ecommons
quest::movepc(22,-140,-1520,3); # Zone: ecommons
}
if ($popupid == 534) { #lavastorm
quest::movepc(27,460,460,-86); # Zone: lavastorm
}
if ($popupid == 2707) { #tox
quest::movepc(38,-916,-1510,-33); # Zone: tox
}
if ($popupid == 2706) { #gfaydark
quest::movepc(54,-441,-2023,4); # Zone: gfaydark
}
if ($popupid == 2709) { #dreadlands
quest::movepc(86,9658,3047,1052); # Zone: dreadlands
}
if ($popupid == 2284) { #iceclad
quest::movepc(110,385,5321,-17); # Zone: iceclad
}
if ($popupid == 2031) { #coboltscar
quest::movepc(117,-1634,-1065,299); # Zone: cobaltscar
}
if ($popupid == 3615) { #twilight
quest::movepc(170,-1028,1338,39); # Zone: twilight
}
if ($popupid == 3794) { #stonebrunt
quest::movepc(100,673,-4531,0); # Zone: stonebrunt
}
if ($popupid == 6180) { #wallofslaughter
quest::movepc(300,-943,13,130); # Zone: wallofslaughter
}
if ($popupid == 5733) { #barindu
quest::movepc(283,209,-515,-119); # Zone: barindu
}
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); # Zone: potimea
}
if ($popupid == 21986) { #brellsrest
#quest::movepc(480,-23,-619,36);
}
}
sub EVENT_CLICKDOOR
{
# This will move RoF clients to their instance, the rest are handled in the DB
if (($client->GetClientVersionBit() & 4294967264) != 0) {
if ($doorid == 2 || $doorid == 5) {
# Do we really need the check here?
# if ($client->CalculateDistance(-3.4, -162.9, 6.9) <= 30) {
# quest::MovePCInstance(344, 5, 0, 588, 1.75, 260); # Zone: guildlobby
quest::MovePC(344, 0, 312, 2, 0); # Zone: guildlobby
# }
}
}
}
Last edited by Riklin; 01-31-2025 at 06:36 PM..
Reason: Putting coding in brackets...
|
 |
|
 |

02-01-2025, 09:28 AM
|
 |
Discordant
|
|
Join Date: Apr 2014
Posts: 280
|
|
The guild hall is working as intended. It is always an instanced zone on Live based on guild.
I’m on mobile so didn’t read the code snippets but the easiest way to get the functionality you want would be to send players to a public instance of the guild hall.. You’d likely need to add the door back in to go back out the guild lobby but it should work as expected then.
|
 |
|
 |

02-01-2025, 11:53 AM
|
Sarnak
|
|
Join Date: May 2007
Posts: 53
|
|
Quote:
Originally Posted by Riklin
I have modified the guildlobby player.pl file to prevent the player with an ROF2 client from getting sent to the instanced version of the guildlobby. That said, the specific issue I have is getting into the guildhall with the ROF2 client. The two doors do not work whatsoever, that makes the ROF2 client unusable until this issue is resolved.
I think this involves the player.pl file from either the guildhall or the guildlobby. To that end, I think the best way to resolve this is to post the 2 files here and hope someone sees something I am obviously missing.
guildlobby player.pl:
Code:
my $Pet_ENT;
sub EVENT_CLICKDOOR {
if($doorid == 2 || $doorid == 4 || $doorid == 40 || $doorid == 42) {
if($uguild_id > 0) {
$client->SendToGuildHall();
}
} elsif((($doorid >= 5) && ($doorid <= 38)) || (($doorid >= 43) && ($doorid <= 76))) {
$client->OpenLFGuildWindow();
}
}
sub EVENT_ENTERZONE {
#off the map
if ($client->GetX() > 315 || $client->GetX() < -315 || $client->GetY() > 685 || $client->GetY() < -60 || $client->GetZ() < -5 || $client->GetZ() > 15) {
$client->MovePC(344, 0, 312, 2, 0); # Zone: guildlobby
}
#if I am idle for more than xx seconds, auto-afk and go invisible/don't draw model
# Disabling AutoAFK rdh 05222023
# quest::settimer("afk_check", 1200); #20 minutes
/* Client version doesn't matter - sending everyone to the ONE instance of guildlobby -rdh01302025
if(($client->GetClientVersionBit() & 4294967264)!= 0) {
if($client->GetInstanceID() != 5) {
quest::settimer(1,10);
$client->Message(0,"Invalid Zone(344:0): You will be redirected to the proper instance in 10 seconds.");
}
} else {
if($client->GetInstanceID() == 5) {
quest::settimer(2,10);
$client->Message(0,"Invalid Zone(344:5): You will be redirected to the proper zone in 10 seconds.");
}
}
}
*/
sub EVENT_SIGNAL {
#signals received from enter/exit proximity of various NPCs
#if ($client->GetRace() != 127) {
#I am not invisible from auto-afk, and I'm still moving around, reset auto-afk timer
#quest::settimer("afk_check", 1200);
#} else {
#I was already set invisible from auto-afk, but now I am moving, set back to base race - not afk
#$client->SetRace($client->GetBaseRace());
#$client->SetGender($client->GetBaseGender());
#if ($client->GetPetID()) {
# $Pet_ENT = $entity_list->GetMobByID($client->GetPetID());
# $Pet_ENT->SetRace($Pet_ENT->GetBaseRace());
#}
#$client->Message(4, "You are no longer idle.");
#quest::settimer("afk_check", 1200);
#}
}
sub EVENT_TIMER {
if($timer == 1) {
# quest::MovePCInstance(344,5,$x,$y,$z,450); # Zone: guildlobby_INSTANCED
quest::movepc(344,$x,$y,$z,225); # Zone: guildlobby
} elsif($timer == 2) {
quest::movepc(344,$x,$y,$z,225); # Zone: guildlobby
} elsif($timer eq "afk_check") {
#I have been idle, go auto-afk and don't draw model
$client->Message(4, "You are idle, Auto-AFK");
if ($client->GetPetID()) {
$Pet_ENT = $entity_list->GetMobByID($client->GetPetID());
$Pet_ENT->SetRace(127);
}
$client->SetRace(127);
$client->SetGender(0);
quest::stoptimer("afk_check");
This is the guildhall player.pl file:
Code:
# Guild Hall Regen Pool Script - Player Portion
sub EVENT_ENTERZONE {
quest::settimer("ZoneIn", 3);
}
sub EVENT_TIMER {
if ($timer eq "ZoneIn") {
quest::stoptimer("ZoneIn");
quest::signalwith(345004,$charid); # NPC: Zeflmin_Werlikanin Portal Crystals
}
}
sub EVENT_POPUPRESPONSE {
if ($popupid == 666) { #hateplaneb
quest::movepc(186,-393,656,3); # Zone: hateplaneb
}
if ($popupid == 674) { #airplane
quest::movepc(71,539,1384,-664); # Zone: airplane
}
if ($popupid == 15891) { #dragonscale
#quest::movepc(442,-1954,3916,19);
}
if ($popupid == 2708) { #northkarana
quest::movepc(13,1209,-3685,-5); # Zone: northkarana
}
if ($popupid == 4176) { #ecommons
quest::movepc(22,-140,-1520,3); # Zone: ecommons
}
if ($popupid == 534) { #lavastorm
quest::movepc(27,460,460,-86); # Zone: lavastorm
}
if ($popupid == 2707) { #tox
quest::movepc(38,-916,-1510,-33); # Zone: tox
}
if ($popupid == 2706) { #gfaydark
quest::movepc(54,-441,-2023,4); # Zone: gfaydark
}
if ($popupid == 2709) { #dreadlands
quest::movepc(86,9658,3047,1052); # Zone: dreadlands
}
if ($popupid == 2284) { #iceclad
quest::movepc(110,385,5321,-17); # Zone: iceclad
}
if ($popupid == 2031) { #coboltscar
quest::movepc(117,-1634,-1065,299); # Zone: cobaltscar
}
if ($popupid == 3615) { #twilight
quest::movepc(170,-1028,1338,39); # Zone: twilight
}
if ($popupid == 3794) { #stonebrunt
quest::movepc(100,673,-4531,0); # Zone: stonebrunt
}
if ($popupid == 6180) { #wallofslaughter
quest::movepc(300,-943,13,130); # Zone: wallofslaughter
}
if ($popupid == 5733) { #barindu
quest::movepc(283,209,-515,-119); # Zone: barindu
}
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); # Zone: potimea
}
if ($popupid == 21986) { #brellsrest
#quest::movepc(480,-23,-619,36);
}
}
sub EVENT_CLICKDOOR
{
# This will move RoF clients to their instance, the rest are handled in the DB
if (($client->GetClientVersionBit() & 4294967264) != 0) {
if ($doorid == 2 || $doorid == 5) {
# Do we really need the check here?
# if ($client->CalculateDistance(-3.4, -162.9, 6.9) <= 30) {
# quest::MovePCInstance(344, 5, 0, 588, 1.75, 260); # Zone: guildlobby
quest::MovePC(344, 0, 312, 2, 0); # Zone: guildlobby
# }
}
}
}
|
Update your quests in the Guild Hall and Lobby to the newest quests located on PEQs repo. https://github.com/projecteq/projecteqquests
|
 |
|
 |

02-01-2025, 08:17 PM
|
Hill Giant
|
|
Join Date: May 2003
Location: Tacoma, WA
Posts: 229
|
|
Quote:
Originally Posted by fryguy
|
Those the quests didn't completely fix the issue. I end up with being able to go into the guild hall, but the door to return to the guildlobby is gone. I temporarily put a teleport npc there to mediate the issue until I can get a permanent resolution... Oh, and yes, I realized the guildhall has to be an instance, because of there being one for each guild...
You hit the "nail on the head"! I need to clone this server, rebuild the server, then replace the new database with one from a backup. If that works, I'm golden until things change too much again...
Thank you for your assistance...
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 05:06 AM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |