View Single Post
  #2  
Old 01-31-2025, 06:29 PM
Riklin
Hill Giant
 
Join Date: May 2003
Location: Tacoma, WA
Posts: 229
Default

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...
Reply With Quote