What is a better method of disabling a script?

So I have this script that disables two other scripts, but it seems quite unstable. So I was wondering what better method to doing this is?

function OrcStunned(){
		var movementscript = transform.GetComponent(OrcMovment);
		var damagetrigger  = transform.Find("Armature/Bone/Bone_008/Bone_007/Bone_012/Bone_014/Bone_016/Bone_018/Bone_020/Bone_022/OrcSword").GetComponent(OrcSwordTrigger);
		movementscript.enabled = false;
		damagetrigger.enabled = false;
		yield WaitForSeconds(2);
		animation.Play("Stunned");
		yield WaitForSeconds(5);
		animation.Stop("Stunned");
		movementscript.enabled = true;
		damagetrigger.enabled = true;
		KunaHit = false;
}

Another problem is that this script doesn’t seem to stop when it is disabled. It just keeps running. Any explanation as to why this doesn’t stop triggering when disabled?

OrcSwordTrigger script:

var Player : GameObject;
var playerdeath : Death;

function OnTriggerEnter (other : Collider) {
if(other.collider.tag == Player.tag && playerdeath.stuncooldown == false) {
playerdeath.OrcStun = true;
}
}

OnTriggerEnter is not affected by “enabled” - only Update, LateUpdate, FixedUpdate and Coroutines gets disabled that way so you should check the .enabled and exit the OnTriggerEnter if it’s turned off.