The Final Strike

A place to discuss mods in development and concepts for new mods.
AdmiralZo
Militia Lieutenant
Militia Lieutenant
Posts: 194
Joined: Wed Feb 11, 2015 10:32 am
Location: Scouring Dantalion System for CSC Antarctica...

Fri Mar 02, 2018 12:04 pm

Apologies for the delay! Our freighter encountered another wave of pirates...

Just having trouble uploading the tdb file.

Our freighter has already called for assistance, so should be smooth sailing once help is received.

AdmiralZo
Militia Lieutenant
Militia Lieutenant
Posts: 194
Joined: Wed Feb 11, 2015 10:32 am
Location: Scouring Dantalion System for CSC Antarctica...

Fri Mar 09, 2018 12:40 pm

Our poor freighter was doomed....

Still don't know what it means by: "Crash in state 1 processing message: Esper.OnRead." , when I try uploading the tdb file.

Does anyone know what this is? Otherwise, I'll just have to find somewhere else to upload it...

User avatar
JohnBWatson
Fleet Officer
Fleet Officer
Posts: 1452
Joined: Tue Aug 19, 2014 10:17 pm

Fri Mar 09, 2018 1:32 pm

AdmiralZo wrote:
Fri Mar 09, 2018 12:40 pm
Our poor freighter was doomed....

Still don't know what it means by: "Crash in state 1 processing message: Esper.OnRead." , when I try uploading the tdb file.

Does anyone know what this is? Otherwise, I'll just have to find somewhere else to upload it...
I think there's an issue with uploading files across the board. Ministry won't let me upload save files either.

AdmiralZo
Militia Lieutenant
Militia Lieutenant
Posts: 194
Joined: Wed Feb 11, 2015 10:32 am
Location: Scouring Dantalion System for CSC Antarctica...

Sat Mar 10, 2018 5:57 am

Hmm, it worked the very first time I tried. Then I deleted the tdb file to upload an updated version, and it hasn't worked since....beginner's luck maybe...

relanat
Militia Captain
Militia Captain
Posts: 600
Joined: Tue Nov 05, 2013 9:56 am

Wed Mar 21, 2018 5:21 am

Let me know if you need any more info about anything here, I'm trying to reduce spoilers as much as possible but still give you the info you need. Mostly from 1.7, but some may have been from 1.8a1.
There's nothing really serious here but I'm better at bug reporting than modding so I do that a lot!

Although the first 16 or so UNIDs in TheFinalStrike.xml have 8 digits after the '0x' as is usual, after that they all have 9 digits. eg, dsAquilaShipInterior is 0xDE1100801. Doesn't appear to affect anything though.

Also noticed a problem on line 251 in Playership.xml which reads:

Code: Select all

<!---------- Other Classes ---------->
The numerous dashes before the end '>' are confusing the game. It's looking for --> and, if it can't find it, the code is not recognized until it does. So the initial part of scAquilaPlayer is ignored. There are a few examples of this 'multiple dashes' in the files (including one at the beginning of Playership.xml). It might be worthwhile replacing all of them with <!-- --> to avoid any potential future problems, or stick a space before the second to last dash; so '------- -->'.
Strangely this doesn't affect the Aquila playership. EDIT: Not a critical thing apparently. Just something for future updates. See your Mod Announcements topic for a bit more info.

Gating into the "Y2" Capella/Algol system from "Y1" you arrive at 'Nil', the system center. Not the inbound stargate as expected. Good luck with that. Topology gives me a headache!
Possibly because the mod is a standalone adventure rather than an addition to an existing adventure you can define the additional stargates in the <Node ID="... code, rather than using <OnGlobal...Created> events. I'm a bit hazy on that though, it's been a while. You could check some of the older adventures like A Greater Adventure, Directors Cut and Beyond the Mainline for examples.

The 'stop the Kobols attacking/looting' missions from the CSCs end before you get anywhere near the station. I haven't seen any live Kobols yet after at least 2 dozen missions They are all destroyed long before I get there. One of the stations was over 1300 ls away. In the end I just sat by the CSC on autopilot and watched the target count go down to zero, redocked with the CSC and took all the glory for doing nothing. Centurion guards have killed them I assume. Maybe have the attack start when the playership gets a certain distance from the mission station. And/or a distance limit on the stations as well.
I also got the error message JBW reported:

Code: Select all

OnObjDestroyed [CSC Atlantica]: Exception in objUnregisterForEvents; arg = (gSource (objGetObjRefData gSource "Target")) [(gSource (objGetObjRefData gSource "Target"))] ### (objUnregisterForEvents gSource (objGetObjRefData gSource "Target")) ###
It happens after the last Kobol is destroyed and is possibly because the code doesn't like to try and unregisterForEvents a nil value, because there aren't any targets left. But this is just a guess. Others will know more.

The screen description in pane <Success> in &stCelendinneBase mentions 'iewofeaf' missiles. Should this be the item name 'E......'?
Also it would be helpful if the player was told these missiles fire from the NAMI heavy launcher.
Possible idea. You could make variations of this missile to suit whichever launcher the playership has fitted. So an E.... MAG round if there is a MAG launcher installed or an E..... Strelka, etc. Otherwise default to the current missile.

&stPenitentSanctum2; seems a bit overpowered. The expanding ring defense thingy is running so quickly it is only possible to hit the station for what seems like about one percent of the time, if that. The only way to kill it seems to be to standoff over 100 ls away so its not defending itself and snipe from long range. Being able to zip in and dodge about while doing damage would be fun.

One of the Ares crates that had to be destroyed in a mission had spawned over a planet so couldn't be destroyed by normal weapons fire, the planet soaks up the destruction. I had to 'debug screen-objDestroy' it to complete the mission. In another mission one got shunted over the Ares station. Same result, couldn't destroy it. Fortunately the station explosion did it for me. Maybe add a dockscreen with a scuttle action to ensure that all crates can be destroyed.

The 'loot the destroyed Aurochs' mission can't be completed unless you have a hold big enough to carry all the supplies. If you stay in the Wolfen, you're screwed. No way to fit 167 tons of water ice. Maybe a transfer option like in the 'Ares mine looting' mission could be included so partial amounts can be ferried back.

Unknown objects on the LRS in a few systems. There is a green dot but no station or object at that position.
One in Meri in the middle of nowhere. No idea on that one.
Another in Iio Junction next to a planet near an Iocrym station, possibly an object for the character ship to explore to. Maybe use a marker or make the station virtual? Others will know better. EDIT: I think it is stSvalbardPosition1.
Hostile (red) ones seen in Leipon and Kaudrent at the system center over the sun. Possibly a non-existent station used in events or something. Using 'Nil' for the 'pos' value in sysCreateStation can do this.
EDIT: Also seen '(Mission 7E controller)' leaving a red dot on the LRS (not at the system center though). Can't remember which system.

Extracted from the debug log (disregard the date):

Code: Select all

10/14/2017 11:20:15	Starting new game.
10/14/2017 11:20:18	Warning: Unable to find required stargate: Hub1
10/14/2017 11:20:19	Warning: Unable to find required stargate: Inbound
10/14/2017 11:20:26	Crash in CSystem::RemoveObject
10/14/2017 11:20:26	Crash in CSpaceObject::Destroy
10/14/2017 11:20:26	Exception in objDestroy; arg = (230381848)
10/14/2017 11:20:26	OnCreate [Ares headquarters]: Exception in objDestroy; arg = (230381848) [(230381848)] ### (objDestroy theAsteroid) ###
The 'Warning" lines probably have something to do with the Y1 to Y2 stargate glitch mentioned above.
The crash/exception info seems to be related to this code in &stAresShipyard3; in AresPrime.xml

Code: Select all

<Events>
	<OnCreate>
		(enum (sysFindObject gSource "t N:70; +asteroid;") theAsteroid
			(if theAsteroid
				(objDestroy theAsteroid)
				)
			)
	</OnCreate>
</Events>
The mod still works OK though.
===================

Typo in &stRanxFortress; in Ranx.xml
seized --> ceased
Line 518 in pane <Meeting6>.

Typo in &dsRogueFleetMeeting; in PointJuventia.xml
remnents --> remnants
Line 1654.

Typos in &stPointJuventia; in PointJuventia.xml
messanger --> messenger
There are a couple of screen descriptions that have 'messanger' in them in pane <MessangerArrives>. It's also in some pane names, as you can see, but they don't show during gameplay.

Typo/capital in &dsFleetPromotion; in Other.xml
I saw a screen description of "the captain of the CSC Pacifica commends you for your service." There wasn't a capital on the initial 'the'.
===================

The following are minor stuff and vague suggestions.

Personal bugbear. The training station in Point Juno and its Fleet targets all come up as Unknown friendly or Unknown hostile when we've already been told what they are. For Domina's sake, identify them! :evil: :lol: EDIT: A lot of the Fleet missions have this as well.

Just for consistency, the pane <Intro2> in &scAurochsToRanx; in FriendlyStations.xml (line 557) could have default="1" in the first action. This would allow the use of the Enter key to navigate to the next dockscreen.
Same with the <Meetingx> panes in &stRanxFortress; (Ranx.xml). EDIT: There are a heap of 'talk' dockscreens with multiple actions that could use this.

I noted that the Ranx gunship escorts for the friendly (green) Ranx peace-talks dreadnought were red even though they didn't attack. Might be worth a check when you set Ranx to 'friendly to CorpHier' that these escorts also change color. This has happened before for others IIRC.

&stCelendinneBase; dockscreen pane <Intro3> "...5 million..."could be increased to a much larger amount. It doesn't seem enough.

Docking ports on the Commonwealth Fleet outposts (the round ones, not the Point Juno one) are within the station perimeter. They could be pushed out a bit so the ships are docking next to the station rather than under it. The <DockingPorts> code is in 1.8b1 in Rogue Fleet settlements which use the same image. EDIT: Oops, the docking ports code format in 1.8b1 was introduced in API 38. So you might need to use the older format. It can be found in my Loyal Fleet Settlements mod station code. SECOND EDIT: OK, maybe either format will work. Rereading the API 38 info I think George added more capabilities to the Docking Ports code in API 38 rather than introducing it then. Trial and error perhaps!
Ports are also a bit out of alignment in the peace-talks Ranx fortress too, and possibly the normal Ranx stations after they are made friendly. Might need changes to the game, though, if these are standard stations you have inherited (correct jargon?).

The Sisters station (fuel, etc mission) could probably go straight to the talk dockscreens after the missions have started instead of having to select Matriarch's Chancery every time. The initial visit could still show the first dockscreen though.

The 'loot the Ares mine' Fleet mission could cancel the SetShowAsDestination/target indicator once you dock with the mine. It's confusing when you have looted ore but the station still shows as the mission target. I had 60 tons of ore on board and wasn't sure what to do next.

Point Juventia could have a default dockscreen description of something like "Try the CSCs for missions then check back here. I've got nothing for you ATM." so the player gets an idea to do missions. It's not clear that you need experience to start bigger missions.

The 'bug/track' mission could have the screen desc as "What I want you to do, is dock with the station, and drop several trackers, stay clear of the incoming ships then return here." It wasn't clear to me that you had to dock first then stay away from the station and to be honest I'm still not entirely sure what should happen. Do you need to wait near the station? If you get back before the CentX leaves the system Arnagos has a fit. And the mission sometimes fails for reasons I can't work out.
Great explanation of the next part of the mission where you plant the beacon though. Nice work.

The 'bomb' mission could generate a data ROM with the codes on it. This would be a bit easier than trying to remember them or going back to Point Juventia if you forget. I've been taking a screenshot of the dockscreen to make it easier. Is there a countdown timer on this mission? I can't remember. That would add a bit of urgency.
=======================

Some stuff for future updates:

Armor repair in 1.8b1 and above will be more difficult because of level restrictions on which armors can be repaired with which items. Higher level armor repair items might need to be spawned as trade items in stations and wreck loot.

George has added functions to make Galactic map nodes known or identified at game start in recent game versions. Using these on a couple of systems would be useful IMO to give the player some idea of the size of the adventure.
==================

Awesome stuff. I really like the way you've taken standard game items and objects and created a new completely different adventure. Very creative. Plus I've already got a few code tips from your files too, thanks.
Last edited by relanat on Thu Apr 19, 2018 1:23 am, edited 2 times in total.

NMS
Militia Commander
Militia Commander
Posts: 472
Joined: Tue Mar 05, 2013 8:26 am

Wed Mar 21, 2018 7:55 am

Although the first 16 or so UNIDs in TheFinalStrike.xml have 8 digits after the '0x' as is usual, after that they all have 9 digits. eg, dsAquilaShipInterior is 0xDE1100801. Doesn't appear to affect anything though.
A 32 bit int is equivalent to 8 hexadecimal digits, so I think all but the last 8 will be truncated, in this case giving E1100801. Since E also happens to be a valid value for the first digit of a mod UNID, this works, but it creates the potential for conflict with someone else's mod.

AdmiralZo
Militia Lieutenant
Militia Lieutenant
Posts: 194
Joined: Wed Feb 11, 2015 10:32 am
Location: Scouring Dantalion System for CSC Antarctica...

Thu Mar 22, 2018 9:56 am

1800 words...impressive :o

Although the first 16 or so UNIDs in TheFinalStrike.xml have 8 digits after the '0x' as is usual, after that they all have 9 digits. eg, dsAquilaShipInterior is 0xDE1100801. Doesn't appear to affect anything though.
A 32 bit int is equivalent to 8 hexadecimal digits, so I think all but the last 8 will be truncated, in this case giving E1100801. Since E also happens to be a valid value for the first digit of a mod UNID, this works, but it creates the potential for conflict with someone else's mod.
Oh, I didn't realise that. Better fix it!

The numerous dashes before the end '>' are confusing the game. It's looking for --> and, if it can't find it, the code is not recognized until it does. So the initial part of scAquilaPlayer is ignored. There are a few examples of this 'multiple dashes' in the files (including one at the beginning of Playership.xml). It might be worthwhile replacing all of them with <!-- --> to avoid any potential future problems, or stick a space before the second to last dash; so '------- -->'.
Strangely this doesn't affect the Aquila playership.
So it can only have 2 dashes? I've always used multiple dashes, and so far it hasn't caused any problems.

Gating into the "Y2" Capella/Algol system from "Y1" you arrive at 'Nil', the system center. Not the inbound stargate as expected. Good luck with that. Topology gives me a headache!
Possibly because the mod is a standalone adventure rather than an addition to an existing adventure you can define the additional stargates in the <Node ID="... code, rather than using <OnGlobal...Created> events. I'm a bit hazy on that though, it's been a while. You could check some of the older adventures like A Greater Adventure, Directors Cut and Beyond the Mainline for examples.
Yeah, it's because of the 'noAutoGateCreate' in "Y1" - gives me a headache too!

The 'stop the Kobols attacking/looting' missions from the CSCs end before you get anywhere near the station. I haven't seen any live Kobols yet after at least 2 dozen missions They are all destroyed long before I get there. One of the stations was over 1300 ls away. In the end I just sat by the CSC on autopilot and watched the target count go down to zero, redocked with the CSC and took all the glory for doing nothing. Centurion guards have killed them I assume. Maybe have the attack start when the playership gets a certain distance from the mission station. And/or a distance limit on the stations as well.
This mission used to work fine, until I made the Commonwealth Settlements appear in clusters. Now the Kobols die in a matter of seconds.

The screen description in pane <Success> in &stCelendinneBase mentions 'iewofeaf' missiles. Should this be the item name 'E......'?
Also it would be helpful if the player was told these missiles fire from the NAMI heavy launcher.
Possible idea. You could make variations of this missile to suit whichever launcher the playership has fitted. So an E.... MAG round if there is a MAG launcher installed or an E..... Strelka, etc. Otherwise default to the current missile.
Hahahaha, I forgot to change it after I came up with a name for the missiles. :oops:

&stPenitentSanctum2; seems a bit overpowered. The expanding ring defense thingy is running so quickly it is only possible to hit the station for what seems like about one percent of the time, if that. The only way to kill it seems to be to standoff over 100 ls away so its not defending itself and snipe from long range. Being able to zip in and dodge about while doing damage would be fun.
I agree. Maybe I should decrease the 'fireRateAdj' of the station to lower the fire rate of the expanding ring, but increase the fire rate of it's main weapon to compensate.

Unknown objects on the LRS in a few systems. There is a green dot but no station or object at that position.
One in Meri in the middle of nowhere. No idea on that one.
Another in Iio Junction next to a planet near an Iocrym station, possibly an object for the character ship to explore to. Maybe use a marker or make the station virtual? Others will know better. EDIT: I think it is stSvalbardPosition1.
Hostile (red) ones seen in Leipon and Kaudrent at the system center over the sun. Possibly a non-existent station used in events or something. Using 'Nil' for the 'pos' value in sysCreateStation can do this.
EDIT: Also seen '(Mission 7E controller)' leaving a red dot on the LRS (not at the system center though). Can't remember which system.
Correct. Currently many missions are controlled by dodgy 'virtual' stations and unreliable timer events. I need to make them into real virtual stations, but hopefully one day I'll convert them into the new mission types.

&stCelendinneBase; dockscreen pane <Intro3> "...5 million..."could be increased to a much larger amount. It doesn't seem enough.
Hmm. The Black Market will most likely steal low to mid level weapons (as the stations selling them have a weaker defence). Let's say the average price of the weapons is 20,000 credits. So 5 million credits would mean 250 weapons. Maybe 12,000,000 credits?

Docking ports on the Commonwealth Fleet outposts (the round ones, not the Point Juno one) are within the station perimeter. They could be pushed out a bit so the ships are docking next to the station rather than under it. The <DockingPorts> code is in 1.8b1 in Rogue Fleet settlements which use the same image.
Ports are also a bit out of alignment in the peace-talks Ranx fortress too, and possibly the normal Ranx stations after they are made friendly. Might need changes to the game, though, if these are standard stations you have inherited (correct jargon?).
I think these are the docking ports for the Rogue Fleet cache. The Commonwealth Fleet outposts used to use this image, but then I changed to the settlement image without changing the docking ports.

The 'bug/track' mission could have the screen desc as "What I want you to do, is dock with the station, and drop several trackers, stay clear of the incoming ships then return here." It wasn't clear to me that you had to dock first then stay away from the station and to be honest I'm still not entirely sure what should happen. Do you need to wait near the station? If you get back before the CentX leaves the system Arnagos has a fit. And the mission sometimes fails for reasons I can't work out.
Great explanation of the next part of the mission where you plant the beacon though. Nice work.
No, you just have to drop the trackers and stay away from the Centurions. Maybe the 'InProgress' pane is bugged.

The 'bomb' mission could generate a data ROM with the codes on it. This would be a bit easier than trying to remember them or going back to Point Juventia if you forget. I've been taking a screenshot of the dockscreen to make it easier. Is there a countdown timer on this mission? I can't remember. That would add a bit of urgency.
That's a good idea! Yes, there is a time limit. At the moment, all the bombs will automatically detonate after roughly 10,000 ticks.

relanat
Militia Captain
Militia Captain
Posts: 600
Joined: Tue Nov 05, 2013 9:56 am

Tue Mar 27, 2018 4:33 pm

I had a play with the X4, Y1 and Y2 topology code.
I suspect that at least Y1 (and possibly X4 as well) will need to be a fixed system rather than a random choice of 4 system types. (See below for another option that might allow randomization of the system type.)
The auto-generate stargate code <Lookup table="HumanSpaceStargates"/> is placing stargates in whichever system type is randomly selected and, as you have worked out, if you use the noAutoGateCreate attribute it messes up the stargates.
If code in the SystemType UNID <Group/Orbitals> block places the stargates then I think this will work. The <OnGlobal...> events wouldn't be needed then.

If you want to retain the random choice of system type then the 4 system types could be duplicated and manual stargate placement code added to produce variants for Y1 to be randomly selected from. The system would look the same but stargates could be placed precisely. If system code can be inherited this would be much easier and more compact.
=============

Another option could be to have P1 to G2 as one nodegroup and Y1 to 'all the rest' as another nodegroup. Then connect them with sysAddStargateTopology.
I think Y1 would still need to be a fixed system which had manual stargate placement code using this method. This would seem to be possible but I have less confidence about it than the first method.
=============

Separately, I'm not sure if you wanted Receptus/AresPrime to appear on the galactic map. If you did then changing

Code: Select all

<SystemMap UNID="&smAresPrimeSpace;"
		displayOn="&smHumanSpace;">
to

Code: Select all

<SystemMap UNID="&smAresPrimeSpace;"
		displayOn="&smSystemMap;">
will make it appear up where Huaramarca usually shows.

AdmiralZo
Militia Lieutenant
Militia Lieutenant
Posts: 194
Joined: Wed Feb 11, 2015 10:32 am
Location: Scouring Dantalion System for CSC Antarctica...

Thu Mar 29, 2018 11:42 am

Hmm, I thought that I might have to make one of them a fixed system. This would mean that if 'X4' needs to be a fixed system, then 'Y2' would need to be too.

I found that it only messes up when you gate from 'Y1' into either 'X4' or 'Y2'. The extraction from the debug.log you showed me, mentions that the stargates, 'Hub1' (which is in 'X4') and 'Inbound' (which is in 'Y2') could not be found. Is it possible to just manually name the required stargate 'Hub1' etc. I think this should fix the problem.


EDIT:

Fixed it! Thankfully, it was an easy fix, as it was possible to just name the stargates 'Hub1' and 'Inbound' - the names can actually be anything. As long as the gateID used in 'sysAddStargateTopology' and 'sysCreateStargate' and in the TopologyCreator are consistent, the gates should work properly.

NOTE: In the code below, I've made the gateID for the inbound stargate in 'Y2' in capitals, so you can differentiate between that and the inbound stargate in 'Y1'.

Code: Select all

			<OnGlobalTopologyCreated>
				(block Nil
					(sysAddStargateTopology "X4" "Hub1" "Y1" "Inbound")
					
					(sysAddStargateTopology "Y2" "INBOUND" "Y1" "Outbound")							
					)
			</OnGlobalTopologyCreated>

			<OnGlobalSystemCreated>
				(block Nil
					(if (eq (sysGetNode) "X4")
						(block (pos)

							(setq pos (sysVectorRandom Nil (random 1200 1500) 300 "t"))

							; Create a stargate in deep space away from everything
							(sysCreateStargate 
								&stMajellenStargate;
								pos
								"Hub1"
								"Y1"
								"Inbound"
								)

							(sysCreateStation &stNavBeacon; (sysVectorPolarOffset pos 90 12))

							(sysCreateStation &stNavBeacon; (sysVectorPolarOffset pos 270 12))
							)
						)

					(if (eq (sysGetNode) "Y2")
						(block (pos)

							(setq pos (sysVectorRandom (random (sysFindObject Nil "t +planetoid;")) (random 20 25) 15 "t"))

							; Create a stargate in deep space away from everything
							(sysCreateStargate 
								&stStargate;
								pos
								"INBOUND"
								"Y1"
								"Outbound"
								)
							)
						)
					)
			</OnGlobalSystemCreated>

relanat
Militia Captain
Militia Captain
Posts: 600
Joined: Tue Nov 05, 2013 9:56 am

Mon Apr 09, 2018 4:43 am

Nice work. No extra stargates are created anywhere.

Now it doesn't matter if HumanSpaceStargates code is in the system code.
This code must draw on the TopologyCreator info to create stargates unless stopped by noAutoGateCreate.
Thanks. Slowly but surely a bit more info sinks into the ol' noggin.

Also if you remove the <OnGlobalTopologyCode> everything still works. Because the stargate IDs are the same as in <TopologyCreator> now the stargate links don't need to be created again apparently.

AdmiralZo
Militia Lieutenant
Militia Lieutenant
Posts: 194
Joined: Wed Feb 11, 2015 10:32 am
Location: Scouring Dantalion System for CSC Antarctica...

Wed Apr 11, 2018 11:05 am

Oh, that will make it much neater and simpler. Thanks. :D

Post Reply