673f67eeb4c06

673f67eeb5d2c
6 Guests are here.
 

Topic: SS2 TF's Secmod 3
Page: « 1 ... 25 [26] 27 ... 46 »
Read 212531 times  

673f67eeb6322Nameless Voice

673f67eeb6382
In other words - it's technically possible, but so much work that no one would ever want to do it.

673f67eeb664aThiefsieFool

673f67eeb66af
I don't think it's that hard, I remember I only had to edit the archetypes for the panels and the cameras, depends on how easy it is to add scripts and their parameters with DMLs.

673f67eeb67davoodoo47

673f67eeb682a
it's not really that much work once you are at the point where you understand the setup completely and just write it into the dml. but getting to that point, well, that's a completely different story.
673f67eeb6a01
Alright, thank you very much for the replies!

A "lite" version, perhaps: Camera destruction will always trigger an alarm?


I have been reading up on DML scripting, after voodoo47 kindly helped me a fair bit to understand the underlying concepts. I do realise I am far - very far - from converting this, but I am not even clear on where to find it in the original mod files. The NVscript sections I found do not seem to indicate any links to camera or alarm events. Am I on the wrong track?

673f67eeb6abfvoodoo47

673f67eeb6b0e
it's probably script stuff on the camera and secpanel archetypes.

673f67eeb6c03ThiefsieFool

673f67eeb6c53
Camera destruction triggering alarms is something way too ham-fisted and primitive, it was an interesting idea from older mods but this setup was created specifically to moderate that effect to something more sensible.

To make it work I'm pretty sure that a message is sent from the camera to one of the ecology objects linked to it, using NVScript to detect the camera death, implement a random chance and send the message.

On the secpanel it all comes down to a modified script made by NV, if not then it's the modified player script, which should already be included in SCP.
673f67eeb6d7a
To make it work I'm pretty sure that a message is sent from the camera to one of the ecology objects linked to it, using NVScript to detect the camera death, implement a random chance and send the message.

Cool, thank you very much! I will hopefully find some time this weekend to investigate!
Acknowledged by: ThiefsieFool
673f67eeb7121
This is quite the adventure for me.

It's slowly coming together, though. I found this post from 2008 by you, Nameless Voice, in Flatliner's mod, where cameras also seem to trigger an alarm when destroyed.

If you have NVScript loaded, you could simply add the NVRelayTrap script to the cameras, and the Script->ObjList Args: NVRelayTrapOn="Slain"; NVRelayTrapOff="Null"; NVRelayTrapTOn="Alarm".
I think that should work...

Of course, Flatliner's mod wouldn't have that, since the .osm needs to be loaded into every level.

Just reducing it to SecMod's "camera should trigger alarm when destroyed" core feature: How would one go about adding the above lines to the camera archetypes in a .DML? How does one even get a list(?) of all cameras throughout all levels? By opening each map individually and manually looking for camera entities? Or could one play around with the NVRemovePropertyTrap perhaps?

673f67eeb7242voodoo47

673f67eeb7291
the simplest way would indeed, be to find every camera concrete and use a map dml to send a signal to the corresponding alert ecology when destroyed.

but attempting a gamesys dml would be more fun - you could try to set the camera archetype to send the signal to the nearest ecology (NVRelayTrap can do that), and hope everything will work (I can say right now it won't work all the time, but if it does in about 90% of cases, you are still good, and the dml will be short and easy). //yeah, sending the signal via the switchlinks would work better.

hilight_obj_type -975 in the editor command window will get you ecologies, hilight_obj_type -367 are cameras.
« Last Edit: 07. September 2019, 22:04:03 by voodoo47 »

673f67eeb738fThiefsieFool

673f67eeb73db
You definitely don't need to mess with every object in every level.

on the "Security Camera" archetype
NVRelayTrapOn="Slain"; NVRelayTrapTOn="CameraDed"; NVRelayTrapTDest="&SwitchLink";

on the "Ecology" archetype
NVRelayTrapOn="CameraDed"; NVRelayTrapTOn="TurnOn"; NVRelayTrapTDest="&SwitchLink";

That seems to be all it takes to have a random chance of spawning an enemy on a camera kill, since ecology objects usually have some random chance to spawn an enemy to begin with. Just add those scripts and script parameters with a DML?
673f67eeb75df
Excellent, thank you both so much for the help! Really close now :-)
I am going to demonstrate how much of an idiot I am by posting my naive script attempts here. Feel free to laugh; I just want this to work at this point - and it just doesn't quite, yet. I checked in ShockEd and tested several variants of the following script lines, but so far to no avail:

Code: [Select]
DML1

// ALERT ON CAMERA DESTRUCTION

// ADD ALARM TRIGGER TO ALL CAMERAS
+ObjProp -367 "Scripts"
{
"Script 3" NVRelayTrap
}
+ObjProp -367 "ObjList"
{
"" NVRelayTrapOn="Slain"; NVRelayTrapTOn="CameraDed"; NVRelayTrapTDest="&SwitchLink";
}


// TRIGGER ENEMY SPAWNS AT CAMERA DESTRUCTION
+ObjProp -975 "Scripts"
{
"Script 1" NVRelayTrap
}
+ObjProp -975 "ObjList"
{
"" NVRelayTrapOn="CameraDed"; NVRelayTrapTOn="TurnOn"; NVRelayTrapTDest="&SwitchLink";
}

It also needs to stay compatible with SCP, of course, and the Security Camera archetype seems to be loaded with scripts:


Is this going to be an issue?
« Last Edit: 08. September 2019, 09:36:48 by Dan »

673f67eeb7722voodoo47

673f67eeb776f
just sending an "Alarm" message instead of "CameraDed" should be enough to trigger an alert upon a camera destruction, no shenanigans necessary on the ecology archetype.

yeah, no available script slots on the SCP camera is a problem, you will need to move the NVRelayTrap script up the hierarchy - slot 2 of Security Camera Scripts (-4592) should do for the time being (objlist args should stay on the camera though) - beta5, which is hopefully coming later this autumn, changes things around and frees up slot 3 on the Security Camera again, so this will not be a problem once it's out. right now, just fingerprint the gamesys.dml to not load for SCP, and add a shockscp.gam.dml which will add it on the slot 2 of the -4592 archetype. oh, and you probably don't want this to load for Secmod as well.

Code: [Select]
!FINGERPRINT
{
   GAM shockscp.gam
}
!FINGERPRINT
{
   GAM shocksec.gam
}
673f67eeb8d1b
Hm, so I created a shockscp.gam.dml with the following code:

Code: [Select]
DML1

// TRIGGER ALERT UPON CAMERA DESTRUCTION
+ObjProp "-4592" "Scripts"
{
"Script 2" NVRelayTrap
}
+ObjProp "-367" "ObjList"
{
"" NVRelayTrapOn="Slain"; NVRelayTrapTOn="Alarm"; NVRelayTrapTDest="&SwitchLink";
}

But it still does not seem to trigger the alarm. I do see cameras now have the rectangular frob icon around them for a second or two at the time of destruction for some reason.



PS:
[...] beta5, which is hopefully coming later this autumn [...]
Hurray!  :thumb:
« Last Edit: 08. September 2019, 10:22:31 by Dan »

673f67eeb8e4evoodoo47

673f67eeb8ead
aha, the SCP b4 dml will also need to re-add objlist args already set on the archetype - the final SCP b4 dml (do note the no need for pluses as we are just modifying what already exsits, and no quotes when using archetype ids as those are not names);
Code: [Select]
DML1


// TRIGGER ALERT UPON CAMERA DESTRUCTION
ObjProp -4592 "Scripts"
{
"Script 2" NVRelayTrap
}
ObjProp -367 "ObjList"
{
"" NVMetaTrapOn="[null]"; NVMetaTrapOff="Unfreeze"; NVMetaTrapMeta="Blind"; NVRelayTrapOn="Slain"; NVRelayTrapTOn="Alarm"; NVRelayTrapTDest="&SwitchLink";
}
this works for me, just tested. the only potential issue is the impact on difficulty - with this, you have no way of destroying the cameras without triggering an alarm.
673f67eeb9545
aha, the SCP b4 dml will also need to re-add objlist args already set on the archetype
Yeah, well, I would have never even dreamed about imagining to think about this... there's a ton of stuff I have yet to learn. Sorry to bother you with this and thank you so much for your help! It works wonderfully!

with this, you have no way of destroying the cameras without triggering an alarm
That's exactly the idea :-) I just tested it in different instances and contexts and the alarm triggers at all times, as soon as a camera is destroyed (even after hacking a security panel / with the "security system offline"). This is very much intended. I am working on a "multiplayer difficulty revamp" script collection which forces players to properly team up and invest in their skillsets as synergetically as possible. There's two things I cannot possibly ever do (proximity voice chat and disabling of automatic respawning) but the rest is now pretty much "complete".
Would it be alright if I posted it in the SS2 Modifications section, giving credit to all of you, who helped so very kindly, of course?

673f67eeb966fvoodoo47

673f67eeb96c1
yeah, there is no way of adding to whatever already exists in the objlist args on a certain archetype, so if you need to do that, you need to copy and paste whatever already is there into the dml, and add everything you want to that.

feel free to post the finished mod if you are happy with it, the topic will get created at Rec, I will move it then.


it would be nice to also edit Polito's audio clip (and strings) so she would not suggest destroying the cameras, but whatever, whoever will want this mod is not a newbie anyway.
« Last Edit: 08. September 2019, 11:48:28 by voodoo47 »

673f67eeb996eRoSoDude

673f67eeb99c5
What would be required to make the cameras not alarm when destroyed under certain conditions, e.g. when the security grid is offline?

673f67eeb9a97voodoo47

673f67eeb9ae5
a good chunk of squirrel scripting, I'd reckon. the way security works is quite annoying, mostly because there are no proper events you could catch (with NVscript, for example).

Secmod accomplishes this by fairly evil trickery, if memory serves.

673f67eeb9bbdAluminumHaste

673f67eeb9c1b
This is going to probably be a stupid question but, can I use this mod AND SCP at the same time? BMM complains that they both modify gamesys, but I swear I read somewhere in this thread that it's okay to run them both but now I can't find it.

EDIT: Also, this is the third time I've registered on this site, do old accounts get deleted or something?
« Last Edit: 18. October 2019, 03:54:06 by AluminumHaste »

673f67eeb9ee7hemebond

673f67eeb9f3a
This is going to probably be a stupid question but, can I use this mod AND SCP at the same time?
I'd be surprised if you could since they both make extensive and incompatible changes to the game.

673f67eeba01dvoodoo47

673f67eeba06b
technically, you can have them activated at the same time and it won't be a problem - as they override each other completely, whatever is on top will get loaded. so there is no reason you should be doing it in the first place.

yeah, inactive users will get an email notification and if ignored, their account will get deleted, a feature I'm not particularly fond of.

673f67eeba10eAluminumHaste

673f67eeba162
Okay, thanks guys.
I don't know if I want to try the new mod without all the greatness that is SCP.....  ¯\_(ツ)_/¯

673f67eeba33fhemebond

673f67eeba399
I don't know if I want to try the new mod without all the greatness that is SCP.....  ¯\_(ツ)_/¯
That doesn't make any sense, but okay.

673f67eeba444voodoo47

673f67eeba497
well, who wouldn't want all those bugfixes and 32bit lighting?

Your name:
This box must be left blank:

Name the main villain of the System Shock series:
6 Guests are here.
Think of a perfect summer night. The contrast between the warm summer breeze and pulsating cold stars.
Contact SMF 2.0.19 | SMF © 2016, Simple Machines | Terms and Policies
FEEP
673f67eebd924