67311f70d1bb1

Post Reply

Warning - While you were reading 5 new replies have been posted. You may wish to review your post.
Your name:
Subject:
Message Icon:

Verification:
This box must be left blank:

System Shock 2 takes place on the star ship named ...:

Shortcuts: Alt+s to submit/post; Alt+p to preview


Topic Summary

Posted by: sarge945
« on: 17. October 2024, 14:10:10 »

I already needed to fix them for Lonely Shock, so it cost me nothing to report them here too. Feel free to tackle them or leave them.

They should be an easy enough fix, though, so it's probably worth doing if it means the 1 person who wants to play this mod seriously (why though???) can have a better experience.
Posted by: ZylonBane
« on: 17. October 2024, 14:06:08 »

I might fix some of those, but it really doesn't matter that much since this mod is just for screwing around, not serious gameplay.
Posted by: sarge945
« on: 17. October 2024, 05:42:59 »

Also, some potential issues you might want to look into. I haven't verified these directly, so some of these could be non-issues. I am currently working on updating Lonely Shock to work in a similar fashion for removing EXP traps, since being able to find all the EXP traps in the map was the final puzzle piece that forced me to do it manually, so my code now does some similar things to yours, and I have run into these issues so you might want to check them as well:

  • CM's can be randomised into any container, including hackable crates. Are you sure you want to lock some CMs behind hacking? Hackable containers have a script on their archetypes, but I think your script check only checks the concrete itself, not the archetype, because it's using PossessedSimple?
  • CM's can be randomised into body bags. This isn't a bug or anything, but in the vanilla game they only ever put hypos or nanites in body bags, so it might feel a bit weird for players. You might want to skip them.
  • There's an experience trap in hydro1, which is supposed to conditionally give you the 17 CMs from Polito's email about researching Toxin A, if you haven't already received the email in hydro2. From what I can tell, you're not handling this case, so the player is getting the extra 17 CM's twice, once in hydro1 and again in hydro2. You can invalidate it by using -Link 1351 1350 "~SwitchLink" since you're checking for SwitchLinks on each experience trap. The same thing happens in ops, which will give the player a whopping 65 bonus cyber modules (25 exp "deck completion" trap is counted 3 times instead of once, 15 exp trap is counted 3 times instead of twice).
Posted by: ZylonBane
« on: 17. October 2024, 02:17:56 »

https://www.ttlg.com/forums/showthread.php?t=147760&p=2514253&viewfull=1#post2514253

The code recursively walks the metaprop links from the starting object. If a link is to a negative object ID, it calls itself to scan that archetype. If the link is to a positive object ID, it adds the ID to the list of found objects. You could theoretically build a list of every object in an entire mission by starting with the root object, but I've never been brave enough to try that.
Posted by: sarge945
« on: 17. October 2024, 02:02:22 »

Just an editing question. I'm wondering how you fetch all the archetypes dynamically (which is super useful, and I thought was impossible).

I looked at your code, and here is the relevant function

Code: [Select]
// return all concrete descendants of the requested archetype
function getConcretes(archetype) {
local obj, lnk;
local objList = [];
foreach (lnk in Link.GetAll("~MetaProp", archetype)) {
obj = LinkDest(lnk);
if (obj < 0) {
objList.extend(getConcretes(obj));
}
else {
objList.push(obj);
}
}
return objList;
}

I don't understand it. It's getting all the reverse MetaProp links for a given archetype? Why would that return all the concretes? What is this dark weirdness??

I think this function should be added to some forum post somewhere, along with a few others, because it's super useful.
Posted by: sarge945
« on: 08. July 2024, 13:12:27 »

That sounds much better than using a list. I should see if the randomiser works with it, since I have no idea how it'll handle objects added via scripts.
Posted by: ZylonBane
« on: 08. July 2024, 13:01:30 »

Oh hell no. The script just scans each map for experience traps, sums up the experience available, then randomly distributes them into the level as exp cookies, divvied up based on the total exp and the available containers. This actually ended up being the largest function in the mod.
Posted by: sarge945
« on: 08. July 2024, 09:21:36 »

Do you have a list of the quest related Cyber Modules for each map?

Will be very helpful for lonely shock, and may have randomiser implications as well
Posted by: ZylonBane
« on: 08. July 2024, 07:29:56 »

System Shock 2 Mission Zero
8 July 2024
by ZylonBane

- Requires SS2 NewDark patch v2.48 or higher.
- Compatible with main campaign only, vanilla or SCP Beta 5 or higher.
- Should not be activated or deactivated mid-game.

This mod replicates the original System Shock's Mission: 0 difficulty setting. Removes all quests, logs, emails, announcements, psychic messages, key cards, apparitions, and plot-related scripted sequences. Unlocks all doors and enables all elevators.

Quest reward cyber modules for each map are randomly distributed among the containers and corpses in the map as physical cyber modules.
Contact SMF 2.0.19 | SMF © 2016, Simple Machines | Terms and Policies
FEEP
67311f70d3227