View Single Post
  #5  
Old 06-30-2008, 02:46 PM
Striat
Sarnak
 
Join Date: Aug 2006
Posts: 60
Default

You could try this. You can switch things up for environmental damage and whatnot as well.

Code:
$myvar = 0;
sub EVENT_ATTACK {
   if($myvar==0) {
      quest::say("$name, do not attack me.  You have earned this punishment!");

##client is damaged.  Format is: from/amount/spellid/skill
#So, from the npc, 1000dmg, no spell is used, and 1 is for the skill id.

      $client->Damage($npc, 1000, SPELL_UNKNOWN, 1);
      $myvar=1;
   }
}
I recommend using a timer or something to resetting variable though. Either could use combat_event or a timer when he engages. With a timer a:

Code:
$myvar = undef;

sub EVENT_ATTACK {

##client is damaged.  Format is: from/amount/spellid/skill
#So, from the npc, 1000dmg, no spell is used, and 1 is for the skill id

   if(!$myvar) {
      quest::say("$name, do not attack me.  You have earned this punishment!");
	$client->Damage($npc, 1000, SPELL_UNKNOWN, 1);
	$myvar = 1;
	quest::settimer("checkengaged",1);
   }
}

sub EVENT_TIMER {
	if ($timer eq "checkengaged") {
	if (!$npc->IsEngaged();
	$myvar = undef;
	quest::stoptimer("checkengaged");
	}
}
Honestly, combat status toggle is probably better. However, I just was using this method before it was implemented.
Reply With Quote