Sorry to be late on this-
I have patch, but I guess I don't know what I'm doing (common coming from me), as It doesn'y work, I did look at the patch file and changed the lines I saw there.
Maybe in the future (if you still want to do this) compress/post the changed files and Ill replace here.
I've tested as best I could, and here's the results;
when i first logged in the zone, The table held out, intact. Then I went to an Npc that use QGlobals, and hailed;
just a snip;
Code:
sub EVENT_SAY{
if (($text=~/hail/i)&&(${$name}==2)){
quest::say("I'm glad you managed to escape the slave warrens in one piece. There are many [others] who were not as lucky.");
}
if ($amote==2){
quest::spawn2(189119,0,0,-126.0,-295.8,3.0,124.8);
}
if ($bmote==2){
quest::spawn2(189120,0,0,-385.2,-516.3,-39.3,135.1);
}
if (($text=~/hail/i)&&(${$name}!=2)){
quest::delglobal("$name");
quest::setglobal("$name","2","3","F");
quest::summonitem(59943);
quest::say("I have something that might save you from the same fate. Take this kobold charm. May it bring you good luck, $name.");
}
This made the quest global for $name, and spawns two more npcs that use quest globals;
one of the two;
Code:
sub EVENT_SPAWN
{
$x = $npc->GetX();
$y = $npc->GetY();
quest::set_proximity($x - 50, $x + 50, $y - 50, $y + 50);
quest::delglobal("amote");
quest::setglobal("amote","3","3","F");
$amote=undef;
}
sub EVENT_ENTER
{
quest::emote("A vast mine lays before you. From deep within the mine you can hear the clanging of pulleys and carts. It appears as though they are inhabited . . .");
quest::depop();
quest::delglobal("amote");
quest::setglobal("amote","2","3","F");
$amote=undef;
}
What normaly happens is She gives you a charm, then spawns the "emoters" so you get the emotes as you start the dungeon - she sets a global, so you don't get dupe messages, and the emoters change already set global flags so she doesn't keep spawning more emoters, when they "depop", they set globals back again. for the next player who hails the npc. This slows the emotes down and make them appear on and off, and usually to new players.
It worked a little with your fixes, but is still broken.
this works one time;
Code:
if (($text=~/hail/i)&&(${$name}!=2)){
quest::delglobal("$name");
quest::setglobal("$name","2","3","F"); < sets to 2 instead of wanted 3 three
quest::summonitem(59943);
quest::say("I have something that might save you from the same fate. Take this kobold charm. May it bring you good luck, $name.");
}
The emoters delete their globals but do not make new ones, so they never appear again.
this works;
quest::delglobal("amote");
this doesn't
quest::setglobal("amote","2","3","F");
And even with the global set it goes to a flag where you keep getting duped with charms.
Here's the full pl so you understand the globals I did there;
http://www.nahunta.org/~angelox/files/Vahlara.pl