When using quest::settimer(id,time), as soon as it hits 0, it will start over and repeat itself. Make sure you are using quest::stoptimer(id).
Another idea (not sure if it will work; you will need to test)... you might be able to have him signal himself. For example, looks like the NPCID is 999247. To start the sequence, I would have the watcher signal the Lord:
Code:
#Watcher.pl ()
sub EVENT_WAYPOINT {
if (defined($qglobals{king})) {
if ($qglobals{king} == 4) {
quest::signalwith(999247,1,1); #Signal 1 to Lord
}
}
}
Then I would have the lord do this:
Code:
#Lord.pl (999247)
sub EVENT_SIGNAL {
if ($signal == 1) { #Sequence started
quest::setsky(14); #Change sky
quest::selfcast(3430); #Light of Nife
quest::signalwith(999247,2,10); #Tell Lord to kneel
}
if ($signal == 2) { #Kneel
$npc->SetAppearance(4); #Kneeling appearance
quest::shout("Ah, so there you are");
quest::signalwith(999247,3,10); #Tell Lord to shout
}
if ($signal == 3) { #Shout
$npc->SetAppearance(0); #Standing appearance
quest::shout2("My servants, hear me and rejoice! For my power and cruelty have returned to me. I now reign supreme. Join me, my minions, and together we shall destroy our enemies!");
quest::signalwith(999247,4,10); #Tell Lord to depop
}
if ($signal == 4) { #Depop
quest::setsky(1); #Change sky to normal
quest::delglobal("king"); #Delete global
$king = undef;
quest::depop(); #Depop
}
}
Once again, you will have to test. I am not sure if the scripting will efficiently allow to signal itself. If not, have the watcher send the signals with 10 second additions.