Jump to content

Concealed Turret Concept


Recommended Posts

Envisioning using a customized version of the StatuePlinth01.nif in a settlement whereby animated panels on the four sides would open to reveal a set of devastating bubble turrets. I am envisioning a control volume which is monitored by a script so when an enemy enters the volume the panels open and the turrets would blast them. Once the enemies are eliminated, the panels would close. Before I get too far with the concept, I was wondering how the bubble turrets would behave under such a scenario (i.e., would they start blasting before the panels are opened?) I suppose one could enable/disable them via the script once the panels open/close. Would the response time be quick enough? Welcome your thoughts here.

Edited by pepperman35
Link to comment
Share on other sites

I think turrets won't fire through collision. The turret is a creature and its rules of behavior are identical to other creatures. They "see" the collision. In the game, when you go around a corner, the turret does not open fire. They shoot at you only when there are no obstacles between you. But, ideally, it's best to make sure that the panels recline and the power of the turrets turns on at the same time. Obviously, the panels should react to the enemy, not the turret. So the panels have a trigger, and the trigger is able to work as a switch and turn on the power of the turrets.
Link to comment
Share on other sites

off topic: (sort of)

I wanted to make something similar but i wanted turrets that rose from the ground using the missile silos from the sub and platform helpers but cant attach the damn turrets to the helper.. :P

Link to comment
Share on other sites

Brilliant idea. I tried building something similar by hand in workshop using hatches (Zebrina's workshop devices) flipped along Y axis and autodoors sensors to have them open and shut when enemies are within/outside some radius, also adding target switches that would close the hatch if they were fired upon too much and hopefully hitting the backboard (preventing them from needing repairs). This was way too much work , even with replicable blueprints, to be any fun. Turns out bubble turrets actually *do* attempt to shoot through walls and stuff so your need some form of LOS manipulation, at least to be sure and if wanting to use missile bubble turrets.

Link to comment
Share on other sites

First hack at a script which doesn't work quite right yet (i.e., not properly detecting enemies). Script is based on the Trigger.psc script.

Scriptname FBR:FBR_PlinthTrigger extends ObjectReference  
{Trigger that watches for a target(s) to enter and exit.  fireTriggerEvent function is called whenever 
the targets enters or leaves the trigger.  The fireTriggerEvent function for whatever you need -- you 
can use IsTargetInTrigger to check if the target has just entered or left.}

Group Required_Properties
	ObjectReference property FBR_EaglesLandingPlinth01 auto const mandatory
	Faction Property pPlayerEnemyFaction Auto Const mandatory
EndGroup

bool bTargetInTrigger = false conditional

Actor property targetRef auto
{ if None (default), watching for player
  otherwise, watching for this reference
}

Event onLoad()
	if targetRef == None
		targetRef = game.getPlayer()
	endif
endEvent

Event onTriggerEnter(objectReference triggerRef)
	if(triggerRef == targetRef)
		;target has entered the trigger
		SetTargetInTrigger(true)
; 		debug.trace(self + " target has entered the trigger")
	endif
endEvent

Event onTriggerLeave(objectReference triggerRef)
	if (triggerRef == targetRef)
		;target has left the trigger
		SetTargetInTrigger(false)
; 		debug.trace(self + " target has left the trigger")
	endif
endEvent

bool function IsTargetInTrigger()
	return bTargetInTrigger
endFunction

; PRIVATE function - do not call from outside this script
function SetTargetInTrigger(bool isInTrigger)
	bTargetInTrigger = isInTrigger
	fireTriggerEvent()
endFunction

function fireTriggerEvent()
	; perform a set of actions when an enemy target enters/leaves trigger
	if (bTargetInTrigger == true && targetRef.IsInFaction(pPlayerEnemyFaction))
		; open the secret doors on the plinth when the enemies enter
		FBR_EaglesLandingPlinth01.SetOpen(True)
	else
		; close the secret doors on the plinth when the enemies leave or die
		; Utility.Wait(1.5)
		FBR_EaglesLandingPlinth01.SetOpen(False)
	endif
endFunction
Edited by pepperman35
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...