mirror of
https://bitbucket.org/seefoe/dsrc.git
synced 2026-07-31 01:15:55 -04:00
79 lines
1.6 KiB
Plaintext
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;
|
|
}
|
|
|