Soul Tear on 10/1/2015 at 15:12
Is it possible to disable hidden murder behind the AI?
I would like to make a bonus goal to kill the enemy in open battle.
I had another way, but it does not work.
Two conditions must be met to turn on the RequireAllTrap: 1 - some response (Frob object: button), 2 - kill the AI (TrigBraindead script).
If I add Alert response to AI it will works even if I hit the AI stealthily.
If I add Threat response it does not work when I raise sword in front of agressive AI. This will work only if I use an invisible potion and then raise the sword again.
john9818a on 10/1/2015 at 20:56
What do you mean by "hidden murder?" Do you want the AI to scream every time it is killed? If so just modify the schema for that AI so that he dies loudly even if his alert/awareness are low.
GORT on 10/1/2015 at 22:05
@ Soul Tear
There is a way by using a conversation trap by removing the links that enable it by having an actor use remove link.
R Soul on 11/1/2015 at 01:23
I don't think NVAlertMessages will work. An AI will still go to Alert3 if killed or knocked out regardless of whether or not the player was seen.
john9818a on 11/1/2015 at 01:25
Even when an AI is killed when at Alert Level 0 it still goes to Alert Level 3. This might actually occur before the game considers the AI as dying.
R Soul on 11/1/2015 at 01:38
When an AI is having a fight, it gets an AIAttack link to its target.
It's getting late here but I'll list a number of things that could be strung together to get the solution:
NVRelayTrap on the AI, sending some message every X milliseconds, targeting AIAttack links.
Garrett (archetype) responding to that message by triggering a RevertTrap
TrigSlain on the AI
RevertTrap and AI CD linked to RequireAllTrap (both triggers will be on if the AI dies within 5 seconds of having been in a fight with the player)
RAT CD linked to QuestVarTrap that sets the goal to complete. TrapControlFlags: No off (because the RevertTrap will send TurnOff after 5 seconds).
The timing of the RevertTrap can be changed.
Soul Tear on 12/1/2015 at 14:31
Quote Posted by R Soul
When an AI is having a fight, it gets an AIAttack link to its target.
It's getting late here but I'll list a number of things that could be strung together to get the solution:
NVRelayTrap on the AI, sending some message every X milliseconds, targeting AIAttack links.
Garrett (archetype) responding to that message by triggering a RevertTrap
TrigSlain on the AI
Please write the setting, I don't understand this paragraph.
If you mean that I need to write something in Editor, then for me it is a dark forest. :sweat:
BTW, if I used this script elsewhere for other purpose, should I use a different name (NVRelayTrap2, 3, etc)? Before I did not have to deal with it.
R Soul on 12/1/2015 at 21:23
AI Properties:
S > Scripts:
Remove everything, then add three scripts: NVRelayTrap, NVAlertMessages and TrigSlain. The order doesn't matter.
Editor > Design Note:
NVRelayTrapOn="Alert3"; NVRelayTrapDelay=1000; NVRelayTrapRepeat=-1; NVRelayTrapTOn="HaveAtYou"; NVRelayTrapTDest="&AIAttack"; NVRelayTrapOff="Slain"
Give the AI a CD link to a RelayTrap.
This means when the AI becomes fully alert, every second he will send a HaveAtYou message down any AIAttack link he has. Those messages will continue until the AI dies. The message will be sent to anyone the AI is fighting, so the player needs to be modified to respond to that message. The RelayTrap detects the AI dying.Edit the Avatar archetype properties:
S > Scripts:
NVRelayTrap
Design Note:
NVRelayTrapOn="HaveAtYou"; NVRelayTrapTDest="AttackPlayer"
When the AIAttack link goes to the player, the player will send TurnOn to an object called AttackPlayerCreate a RevertTrap, and edit its properties to change its name to AttackPlayer
Give AttackPlayer and the RelayTrap a CD link to a RequireAllTrap
Give the RAT a CD link to a QuestVarTrap.
Trap > Quest Var: =1:goal_state_X
(X is the goal number)
Script > TrapControlFlags: NoOff
AttackPlayer will send TurnOff after the AI dies, so the QuestVarTrap should ignore it because.Summary
AttackPlayer responds to the AI being aware of the player and attacking (or trying to). The RelayTrap responds to the AI dying. If the player escapes, the AIAttack link will be removed and AttackPlayer (a RevertTrap) will send TurnOff after 5 seconds, so the RequireAllTrap will only activate when the AI dies and he tried to attack the player in the last 5 seconds. The 5 seconds can be changed by editing AttackPlayer and setting Script > Timing to a lower number. The NVRelayTrapDelay number should always be lower.If the player hides and the AI loses contact, AttackPlayer will send TurnOff unless the player can kill him within 5 seconds.Quote Posted by Soul Tear
BTW, if I used this script elsewhere for other purpose, should I use a different name (NVRelayTrap2, 3, etc)? Before I did not have to deal with it.
No. The purpose of the 'multiple copies' system is to allow one object to effectively use the same script for different things. NVRelayTrap receives and passes on messages, but you might want one message passed on somewhere, and another message passed on to somewhere else. You would use NVRelayTrap to handle the first destination and NVRelayTrap2 to handle the second one.
Yandros on 12/1/2015 at 21:53
I also use multiple copies of NVRelay with different delays so the initial signal is forwarded on to multiple recipients, but at different times.