View Single Post
  #18  
Old 09-13-2008, 08:08 PM
joligario's Avatar
joligario
Developer
 
Join Date: Mar 2003
Posts: 1,498
Default

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