Files
dsrc/sku.0/sys.server/compiled/game/script/working/jfreeman/combattest.script
T

79 lines
1.6 KiB
Plaintext

inherits systems.combat.combat_base;
trigger OnAttach()
{
debugSpeakMsg( self, "attached. Detaching AI scripts in 5" );
messageTo( self, "detachAI", null, 5, false );
return SCRIPT_CONTINUE;
}
messageHandler detachAI()
{
detachScript( self, "ai.ai" );
detachScript( self, "ai.creature_combat" );
stop( self );
debugSpeakMsg( self, "ai detached!" );
return SCRIPT_CONTINUE;
}
trigger OnHearSpeech(obj_id objSpeaker, string strText)
{
if(strText=="setTarget")
{
debugSpeakMsg(self, "target is set to "+objSpeaker);
setTarget(self, objSpeaker);
}
if(strText=="getTarget")
{
obj_id objTarget = getTarget(self);
debugSpeakMsg(self, "target is "+objTarget);
}
return SCRIPT_CONTINUE;
}
trigger OnDefenderCombatAction( obj_id attacker, obj_id weapon, int combatResult )
{
debugSpeakMsg(self, "defender_action, locomotion is "+getLocomotion(self)+" and posture is "+getPosture(self));
if ( hasCombatAction( self ) )
{
debugSpeakMsg(self, "I've got combat actions already, returning");
return SCRIPT_CONTINUE;
}
obj_id objTarget = getTarget(self);
if((objTarget==null)||(objTarget==obj_id.NULL_ID))
{
debugSpeakMsg(self, "setting target to "+attacker);
setTarget(self, attacker);
}
debugSpeakMsg(self, "queueing attack against "+attacker);
queueCommand( self, ##"defaultAttack", attacker, "Test params", COMMAND_PRIORITY_DEFAULT);
return SCRIPT_CONTINUE;
}
boolean hasCombatAction( obj_id npc )
{
return checkForCombatActions(npc);
}
trigger OnIncapacitated( obj_id attacker )
{
kill( self );
debugSpeakMsg( self, "I am dead" );
detachScript( self, "jfreeman.combattest" );
return SCRIPT_CONTINUE;
}