View Single Post
  #15  
Old 05-25-2019, 09:09 PM
WarAngel's Avatar
WarAngel
Sarnak
 
Join Date: Oct 2017
Location: Washington State
Posts: 54
Default

Operators get me every time. I am trying to grasp them though, have cheat sheets and keep rereading website info. Thank you.

I am gonna call this script solved and it is posted below for the future folks. If anyone does come up with a better solution or wishes to expand this script to new levels PLEASE do so. I love improvements. Thank you Huppy and cConcrete! It is hard to explain how very important this subject is to me. Makes a world of difference when I play.

Code:
#//////////////////////////////////////////////////////////////////////////////
# Created on 25 May 2019
# I will not take credit for this script. I had an idea and did the typing.
# Huppy did most of the structure and graciously provided the @Swimmers data.
# cOncrete and Huppy provided advice and were my instructors. This script
# has solved an issue that has always affected my personal immersion and
# memories of EverQuest.
# 
# - WarAngel
#//////////////////////////////////////////////////////////////////////////////
# All NPCs seem to default to Flymode=3.
# This script when placed in a global_npc.pl will enable the ground NPCs to 
# make walking sounds while the swimmers maintain...well...swimming.
#
# If you desire to add or remove NPCs look at the "@Swimmers" and add/delete
# the desired NPC ID. Note you can do a block of IDs "####..####".
#
# Flymode=0 grounded mode
# Flymode=1 flying mode
# Flymode=2 levitating mode
# Flymode=3 in water mode
#
# /////////////////////////////////////////////////////////////////////////////

# global_npc.pl   Executes once when the NPC is spawned. Lower CPU usage this way.

sub EVENT_SPAWN 
{
	my @Swimmers = (2005, 2151, 3001, 3002, 8000, 8012, 10028, 10146, 10167, 11073, 11074, 11075, 17025, 17026, 17034, 17052, 19000, 19001, 19047, 19118, 20086..20088, 20162, 21036, 21054, 21057, 21058, 21093, 24001, 24005..24012, 24057, 24058, 24105, 24110, 25102, 25397, 38052, 38055, 38057, 45000, 45014, 45022, 45023, 45041, 45092, 47062, 47155 ,47163, 48037..48039, 48074, 48075, 48121, 48152, 48220, 48223, 48226, 48227, 48242, 51010, 51011, 51036, 51039, 51051, 51121, 51158, 51160, 51171, 52117, 57150, 57152, 57156, 64000, 64002, 64005, 64007, 64008, 64010..64012, 64014, 64017..64019, 64020..64026, 64028, 64030, 64032, 64033, 64038, 64040, 64041, 64043, 64049, 64051, 64056, 64058, 64063, 64073..64075, 64077, 64085..64087, 64089, 64091, 64092, 64094, 64099, 64100..64103, 64105, 64106, 69021, 69054, 69065..69069, 69141, 69151, 74029, 74083, 85039, 85040, 85042, 85043, 85068, 85105, 85106, 85122, 85156, 85157, 85194, 85212, 85217, 85224, 93306, 96039, 96040, 96041..96046, 98001, 98005..98007, 98014, 98015, 98021, 98028..98032, 106006, 117021, 117024..117028, 117029, 117031, 117037, 117046, 117063, 117089..117091, 125000..125005, 125007, 125008, 125011, 125022, 125023, 125033, 125034, 125053, 125062, 125064, 125073, 125074, 154104, 156057, 156062, 156063, 156098, 156099, 160133, 160379, 166074, 166085..166088, 170109..170122, 170169, 170181, 170196, 182150, 204040, 210085, 210086, 216000..216014, 216016..216035, 216037..216043, 216045..216110, 224432, 225220, 225359, 280014, 280025, 280030..280032, 383228, 383231, 384041, 384050, 394043, 408003, 408004, 408006, 408020, 409151..409153, 409251, 414066, 414070, 414074, 414084, 414090, 422029, 422030, 422033, 422034, 422036, 422037, 422040, 422041, 422045..422047, 422049, 422051, 422052, 422053, 422056, 422058..422066, 422068..422073, 422075, 422076, 422078, 422080..422085, 422124, 423006, 423012, 423021, 423027, 423110, 423111, 423126, 423182, 423192, 423203, 423251, 423278, 423300, 423331, 423360, 423388, 423389, 427014, 427016, 427017, 427025, 427032, 427033, 427036, 427048, 427049, 456180, 456181, 456189, 457037, 457045, 457047, 468018, 468020, 480117);
	# my @Flyers = (####, ####..####); # Maybe look into enabling NPC to fly?
	# my @Levitators = (####, ####..####) # Maybe look into enabling NPC to levitate?

		if($npc->GetNPCTypeID() !~ @Swimmers) # Need to look into comparing flyers and Levitators as well.
			{
			$npc->SetFlyMode(0); # 0 Enables the land mobs to make walking sounds.
			}
		#if($npc->GetNPCTypeID() ~~ @Flyers) # script NOT tested!!!
			#{
			#$npc->SetFlyMode(1);
			#}
		#if($npc->GetNPCTypeID() ~~ @Levitators) # script NOT tested!!!
			#{
			#$npc->SetFlyMode(2);
			#}
		if($npc->GetNPCTypeID() ~~ @Swimmers)
			{
			$npc->SetFlyMode(3); # Enables the swimmers to maintain their swimming.
			}
}
-Eric
Reply With Quote