EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Making Bilge Farfathom rare again (https://www.eqemulator.org/forums/showthread.php?t=21129)

Angelox 07-25-2006 12:51 PM

Making Bilge Farfathom rare again
 
This is a bit of a whopper, but it works. I have posted all the PL files here also, for download;
http://www.nahunta.org/~angelox/ Note: you can use these pls as - is, but will have to make the NPC's and replace the NPC id numbers.
Dagnor's Cauldron (PEQ version) still needs a lot of work done - for starters, all the rats, snakes, skeltons are roamers - so are a lot of the goblins. A lot of the mobs roam from the island in the center, to the borders of the lake. The four NPC's at the npc camp you pass as you head for for the zone of unrest, call themselves the "Fabulous Four" one of them will heal you on request (Nyrien Lyrdarniel), and another Sigan Ilbirkun will "escort" you out whan properly asked. All four of them hate rats, snakes, gobbies, etc., and will gang up on them and kill if they cross their camp. A lot of mobs path through the Fab Four camp and get killed, this serves as a "safe zone" for players and helps "throw" the tracker-class pc types.
At one time, Bilge Farfathom and his "Pearl Kedge Totem" were very sought out - in the days when 1k pp meant something, the Totem had a big price tag on it for around 20K. I had a few friends who went on a "get rich fast" quest and thought they were going to drop Bilge quick. Most never even saw him. You could sit there for days, and never see him - usually, when he did show up, it was because people were playing in the zone, and not someone camping him. I camped him like crazy too for days, never saw him - but once passing through, I got him and another time got him just during normal play, when the zone had a lot of players. I think to this day, no one has never really figured out the Bilge Farfathom spawn pattern - they have a good idea where he spawns, but don't know what mob triggers the Bilge spawn.
Anyways, I figure the trigger must be in the water somewhere, as no one ever plays in the water because there's nothing to do there. heres what I did: made a loop of four spawns in the water;
MobA is outside the loop in the gobbie camp by unrest zone he's the loop starter.
(all are Event_Death)
MobA spawns normal off the eqemu / database.
mobA dies and spawns MobB , then flags himself not to spawn anymore npc's in
the loop when he respawns;
Code:

#Bilge Farfathom spawn
#npc - #aqua_goblin_mariner - randomly spawns 1 of 4 Bilge triggers around the zone)
#zone - Dagnors Cauldron

sub EVENT_DEATH{
 my $a=70060; #npc - an_aqua_goblin_mariner starts the loop
 if ($mdied==1){ #mariner died once
  #quest::say("I already died once!");
 }else{
  #quest::say("Starting cycle");
  quest::spawn2($a,5,0,-296.37,-122.31,-349.32,122);
  $mdied=1; #mark mariner died once
 }
}

rest are in the water ad different locations,
MobB is killed and spawns MobC 90%, and 10% Bilge Farfathom.
MobC is killed and spawns MobD 90%, and 10% Bilge Farfathom.
MobD is killed and spawns MobE 90%, and 10% Bilge Farfathom.
MobE is killed and spawns MobB 90%, and 10% Bilge Farfathom; MobE will start
at the top again.

Code:

#Bilge Farfathom spawn
#npc - #a_caulderon_rat (trigger for #Bilge_Farfathom 70059)
#zone - Dagnors Cauldron

sub EVENT_DEATH{
 my $random_result = int(rand(100));
 my $a=70059; #Bilge
 my $b=70062; #npc - #an_undertow_skeleton
 if($random_result<90){
  quest::spawn2($b,6,0,-974.5,436.4,-343.8,29);
  #quest::say("spawn skele");
  }else{
    #quest::say("Spawning Bilge Farfathom");
    quest::spawn2($a,4,0,-1123.30,-1194.57,-98.32,122);
  };
 };

Code:

#Bilge Farfathom spawn
#npc - #an_undertow_skeleton (trigger for Bilge)
#zone - Dagnors Cauldron

sub EVENT_DEATH{
 my $random_result = int(rand(100));
 my $a=70059; #Bilge
 my $b=70060; #npc - an_aqua_goblin_mariner
 if($random_result<90){
  quest::spawn2($b,6,0,-974.5,436.4,-343.8,29);
  #quest::say("spawn mariner");
  }else{
    #quest::say("Spawning Bilge Farfathom");
    quest::spawn2($a,4,0,-1123.30,-1194.57,-98.32,122);
  };
 };

Code:

#Bilge Farfathom spawn
#npc - an_aqua_goblin_mariner (trigger for #Bilge_Farfathom 70059)
#zone - Dagnors Cauldron

sub EVENT_DEATH{
 my $random_result = int(rand(100));
 my $a=70059; #Bilge
 my $b=70061; #npc - #aqua_goblin_shaman
 if($random_result<90){
  quest::spawn2($b,6,0,-974.5,436.4,-343.8,29);
  #quest::say("spawn shaman");
  }else{
    #quest::say("Spawning Bilge Farfathom");
    quest::spawn2($a,4,0,-1123.30,-1194.57,-98.32,122);
  };
 };

Code:

#Bilge Farfathom spawn
#npc - #aqua_goblin_shaman (trigger for #Bilge_Farfathom 70059)
#zone - Dagnors Cauldron

sub EVENT_DEATH{
 my $random_result = int(rand(100));
 my $a=70059; #Bilge
 my $b=70063; #npc - #a_cauldron_rat
 if($random_result<90){
  quest::spawn2($b,6,0,-974.5,436.4,-343.8,29);
  #quest::say("spawn rat");
  }else{
    #quest::say("Spawning Bilge Farfathom");
    quest::spawn2($a,4,0,-1123.30,-1194.57,-98.32,122);
  };
 };

If Bilge Farfathom happens to spawn, The loop will go on hold tell he dies -
when he dies, he restarts the loop with a 25% chance to any one of the four
above to spawn;

Code:

#Bilge Farfathom spawn
#npc - #Bilge_Farfathom - randomly spawns 1 of 4 Bilge triggers around the zone)
#zone - Dagnors Cauldron
#Angelox

sub EVENT_DEATH{
 my $random_result = int(rand(100));
 my $a=70060; #npc - an_aqua_goblin_mariner
 my $b=70062; #npc - #an_undertow_skeleton
 my $c=70061; #npc - #aqua_goblin_shaman
 my $d=70063; #npc - #a_cauldron_rat
 if($random_result<25){
  #quest::say("Spawning mariner trigger1");
  quest::spawn2($a,5,0,-296.37,-122.31,-349.32,122);
  }elsif(($random_result>=25) && ($random_result<50)){
    #quest::say("Spawning skeleton trigger2");
    quest::spawn2($b,6,0,-974.5,436.4,-343.8,29);
  }elsif(($random_result>=50) && ($random_result<75)){
    #quest::say("Spawning shaman trigger3");
    quest::spawn2($c,7,0,-848.3,-184.8,216.3,37.3);
  }else{
    #quest::say("Spawning rat trigger4");
    quest::spawn2($d,8,0,612.6,625.2,209.0,175.6);
  };
};

Also, you need to make the "Fab Four" group work, so they kill roamers and help keep the cycle covered, If you do, I could use the PLs you make too.
You'll notice that all these spawns eventually end up at the NPC camp, and should get killed.

Angelox 07-25-2006 01:00 PM

Here's a problem I have; I would like to use variables across npc's. Another words - if npcid 1 raises a flag,a different npcid 2 can change or lower it.
I spent two days on just this problem, and none of the quest::* helped either. I don't think it can be done, if anyone does happen to know a way, please post.

bobbydole 07-26-2006 04:27 AM

I've never used it but can you use
Code:

==========
Setglobal:
==========
[old quest format]
setglobal([varname],[value],[options],[duration]);

[perl format]
quest::setglobal([varname],[value],[options],[duration]); (perl format)

The setglobal command allows you to create or modify an existing global variable for the mob you are using the command on.

==========
targlobal:
==========
[old quest format]
targlobal([varname],[value],[duration],[npcid],[charid],[zoneid]);

[perl format]
quest::targlobal([varname],[value],[duration],[npcid],[charid],[zoneid]);

This is a way to "stick" a global variable to a mob. A quick and easy way to give information to a mob or communicate.

==========
delglobal:
==========
[old quest format]
delglobal([varname]);

[perl format]
quest::delglobal([varname]);

This command is used to delete global variables when they are no longer needed. You can only delete global variables that belong to the mob the variable is for.

read more about it here:
http://www.projecteq.net/phpBB2/viewtopic.php?t=149

Angelox 07-26-2006 05:54 AM

Quote:

Originally Posted by bobbydole
I've never used it but can you use

read more about it here:
http://www.projecteq.net/phpBB2/viewtopic.php?t=149

Thanks for your help, I've already tried all this with negative results ;

quest::setglobal is npc specific - If I try make two variables of the same name with different npc's, the database will add the two enties separatly and for the individual npc ids who made them.

quest::targlobal might have been intended to change another NPC's variable value, but all it does is crash the zone. If I use it on the same NPC that made the variable, it will work ok.

quest::delglobal seems to work ok, but useless to me, since the latter two can not apply

I have more success with "global quests" switched off and the regular Perl variables.

It appears these commands are more intented for the many quests in EQ, that require dealing with one npc at a time.

It would be helpful to be able to set a "global" variable that could be use by any npc in the game.

ylosh 07-26-2006 06:54 AM

that's exactly what quest::setglobal() does with the different option sets.

Code:

          +--------+---------+---------+----------+
          |  value |  npcid  |  player |  zone  |
          +--------+---------+---------+----------+
          |  0    |  this  |  this  |  this  |
          |  1    |  all    |  this  |  this  |
          |  2    |  this  |  all  |  this  |
          |  3    |  all    |  all  |  this  |
          |  4    |  this  |  this  |  all    |
          |  5    |  all    |  this  |  all    |
          |  6    |  this  |  all  |  all    |
          |  7    |  all    |  all  |  all    |
          +--------+---------+---------+----------+


Angelox 07-26-2006 07:37 AM

I see now, haven't tried it in that way - I'll try again, thanks

Angelox 10-15-2006 01:18 PM

I'm working on the .pl's for the "Fabulous Four" in this zone, I already have them chatting and doing a few things - I still have to figure out how to get Mr Sigan to kill roamers that pass through the camp. In fact, when EQ was young, all four of them would kill roamers. If anyone knows how to do this, please post.
If anyone wonders how I get info for these PLs, I still have an account with EQ, which I use for stuff like this. I also go to allakhazam and see what I can find there. I think this method is almost 100% accurate.
You can get the quests at my web page.

mattmeck 10-15-2006 01:20 PM

You can have him kill the mobs by using factions, just make them KOS to him.

Angelox 10-16-2006 11:14 PM

Quote:

Originally Posted by mattmeck
You can have him kill the mobs by using factions, just make them KOS to him.

I've looked and set the factions to what I think would work, but still nothing. Is there any other special setting I need to make so he will see they are KOS?

John Adams 10-17-2006 12:19 AM

Not only his faction, but did you set how he reacts to opposing factions? Attack, Assist, Neutral?

Aramid 10-17-2006 12:47 AM

Quote:

Originally Posted by Angelox
I've looked and set the factions to what I think would work, but still nothing. Is there any other special setting I need to make so he will see they are KOS?

Did you set the 'NPC Aggro' flag?

Angelox 10-17-2006 12:52 AM

Quote:

Originally Posted by John Adams
Not only his faction, but did you set how he reacts to opposing factions? Attack, Assist, Neutral?

Thanks, I see now where my mistake is ; But If I make the changes, would this apply to all the NPC's using that faction? or should I just make a new faction for NPC's that will attack other NPC's?

Angelox 10-17-2006 12:54 AM

Quote:

Originally Posted by Aramid
Did you set the 'NPC Aggro' flag?

Thanks for your help-
If you mean npc_aggro, yes

John Adams 10-17-2006 12:57 AM

The data you are changing is in a tabled called npc_faction_entries.

Columns: npc_faction_id | faction_id | value | npc_value
Data: 4 | 106 | -30 | -1

That last bit, npc_value, is the NPCs aggro flad Aramid mentioned. It does look like it might effect all NPCs in that faction, but you can make a custom version of that faction for your NPC/Group that's tied to the base (faction_id). I think. It's early. And I have a 40 mi drive ahead of me. I'll check back later.

Angelox 10-17-2006 01:21 AM

Quote:

Originally Posted by John Adams
The data you are changing is in a tabled called npc_faction_entries.

Columns: npc_faction_id | faction_id | value | npc_value
Data: 4 | 106 | -30 | -1

That last bit, npc_value, is the NPCs aggro flad Aramid mentioned. It does look like it might effect all NPCs in that faction, but you can make a custom version of that faction for your NPC/Group that's tied to the base (faction_id). I think. It's early. And I have a 40 mi drive ahead of me. I'll check back later.

In this case, here in Cauldron, there's a "double" reason for these npc's to kill roamers; one is, it's a place for players to hang out for protection; I'm not finished with Cauldron yet, but the true Dagnor's Cauldron has 90% of the mobs roaming, and can be real dangerous to a new player - the Fab4 camp can be a real safe-haven, if you're playing "straight".
And there's also the issue with Bilge Farfathom spawn: his placeholder eventually ends up in the Fab4 camp and gets killed (so does Bilge, if he spawns and no one takes him). This effect increases the Bilge mystery, as he will appear out of nowhere and no one need really be camping him.


All times are GMT -4. The time now is 07:51 AM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.