673f5e9f5d2ad

673f5e9f5e4f2
5 Guests are here.
 

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

673f5e9f5fad8Nameless Voice

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

673f5e9f5fe75ThiefsieFool

673f5e9f5fee8
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.

673f5e9f60043voodoo47

673f5e9f600a3
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.
673f5e9f602c8
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?

673f5e9f60385voodoo47

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

673f5e9f6050eThiefsieFool

673f5e9f6056b
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.
673f5e9f606ec
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
673f5e9f60b7a
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?

673f5e9f60cddvoodoo47

673f5e9f60d3d
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 »

673f5e9f60e71ThiefsieFool

673f5e9f60ecb
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?
673f5e9f610ee
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 »

673f5e9f6126fvoodoo47

673f5e9f612cc
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
}
673f5e9f6177b
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 »

673f5e9f618c0voodoo47

673f5e9f6192d
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.
673f5e9f624fa
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?

673f5e9f6264fvoodoo47

673f5e9f626b9
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 »

673f5e9f6394aRoSoDude

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

673f5e9f63cc7voodoo47

673f5e9f63d2d
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.

673f5e9f63e4fAluminumHaste

673f5e9f63ebb
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 »

673f5e9f642efhemebond

673f5e9f64354
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.

673f5e9f6447cvoodoo47

673f5e9f644ee
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.

673f5e9f645c9AluminumHaste

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

673f5e9f648dchemebond

673f5e9f64938
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.

673f5e9f64a09voodoo47

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

Your name:
This box must be left blank:

How can you challenge a ____, immortal machine? (Fill in the missing word):
5 Guests are here.
And crawling on the planet's face, some insects called the human race, lost in time and lost in space.
Contact SMF 2.0.19 | SMF © 2016, Simple Machines | Terms and Policies
FEEP
673f5e9f6ebb5