Smart Spiders and Arrays

Post about your finished mods here.
gunship256
Militia Commander
Militia Commander
Posts: 451
Joined: Sat Jul 25, 2015 11:41 pm
Location: repairing armor

This mod creates new "smart" devices that replace the vanilla patch spider and solar panel array. Here's what you get when you install the mod:

* Armor repair and solar recharge devices from levels 2 through 9

* External devices that automatically install and uninstall themselves based on armor damage, reactor fuel level, shield status, and the presence of enemies within a 100ls radius

* Slotted devices that work like the patcher arm, but with faster armor regeneration and a higher cost

* Recharge mode that lets external devices come out when you're sitting on a planet and can't be attacked

* A special gift at the beginning of the game. Open it at your own risk!

This is an alpha release. Any feedback and suggestions are welcomed!

http://xelerus.de/index.php?s=mod&id=1503

===
[Edit 2015 January 4: Added bullet points to this post for clarity.]
Last edited by gunship256 on Sun Jan 17, 2016 10:39 pm, edited 1 time in total.
gunship256
Militia Commander
Militia Commander
Posts: 451
Joined: Sat Jul 25, 2015 11:41 pm
Location: repairing armor

Re-uploaded the mod with the following changes:

I made the vanilla overwritten solar panel array a level 2 Heliotrope array with a low price and high mass (4 tons, just shy of the Heliotrope 5 ton cargo hold). This makes it inconvenient to farm Heliotropes for the use of the arrays and hard to sell them for a decent profit.

There is now a new level 3 device, the compact solar panel array, that is intended as the replacement for the vanilla version.
relanat
Militia Captain
Militia Captain
Posts: 941
Joined: Tue Nov 05, 2013 9:56 am

Well done. I like it. And it seems to me you have done it in record time (although you probably feel this isn't the case :) ) and merged two mods as well.

Love the Charon attack from two directions. Very sneaky. It resulted in one very battered Wolfen running for the stargate.

Personally, I wouldn't mind an manual uninstall capability so I can shunt the arrays to PSD drones. Saves waiting for it to uninstall on its own. But I have no idea of how to do it.

With the stolen array, how do you give it back? Can you? I jettisoned it but the Drake blew it up.

Also wanted to say that the no shield check by AP in the other topic was a brilliant idea.

Couple of bugs:

Array only recharges reactor to about 95% in Wolfen?
Watching the reactor display as the panel recharges it, the green bars showing reactor charge don't quite go to the full extent possible. Not sure if this is intentional.
EDIT: Saw the notes in the code. Left this here to save other's posting the same thing.


Esc key opens the box.
Pressing Esc from the 'Open Now, Open Later" dockscreen opens the box and installs the array, instead of returning to the SRS as you would expect. I usually use the Esc key to get back to a previous screen rather than 'Done' or "Continue'.

It's a Default= and Cancel= thing in the code. From Betelgeuse: From Dockscreens! topic in Modding Reference, http://forums.kronosaur.com/viewtopic.php?f=8&t=1833 for more info.
default="1" means when you hit enter it activates
cancel="1" means when you hit Esc it activates
Misc Devices screen in Ship Configuration Dockscreen not reseting
When the array is recharging the reactor, the Misc Devices screen shows a device slot with 'Solar Panel Array' and 'external' in small letters at the top right.
If you are in the dockscreen when the array finishes charging and uninstalls, the word 'external' disappears but 'Solar Panel Array' and small device picture remain. If you move the cursor to the Array slot, the words and picture disappear but a blank device slot remains. It has Nil and Nil as the description.
Going back to the Ship Configuration dockscreen and returning to Misc Devices resets the screen to normal.

Image

System Crash.
Park on the sun.
Wait until the array is recharging the reactor.
Go to the Miscellaneous Devices screen in Ship Configuration.
Put the cursor over the Solar Panel Array device slot (navigate to it, highlight it, not sure of the jargon).
Wait.
System crash with following message.

program state: OnAnimate
program state: miscellaneous animation
game state: docked

I think this is happening when the array has finished charging and uninstalls but only when you are in the Misc Devices screen with the cursor on the Solar Panel Array.

Keep up the good work.
Last edited by relanat on Sun Jan 10, 2016 3:57 am, edited 1 time in total.
Stupid code. Do what I want, not what I typed in!
User avatar
digdug
Fleet Admiral
Fleet Admiral
Posts: 2620
Joined: Mon Oct 29, 2007 9:23 pm
Location: Decoding hieroglyphics on Tan-Ru-Dorem

program state: OnAnimate
program state: miscellaneous animation
game state: docked

I think this is happening when the array has finished charging and uninstalls but only when you are in the Misc Devices screen with the cursor on the Solar Panel Array.
This is a bit nasty. I don't think it's specifically related to this mod, but a bug/regression of the new dockscreens ?
Might be worth to have a look if it's reproducible in a generic test mod and eventually post it in the ministry.
relanat
Militia Captain
Militia Captain
Posts: 941
Joined: Tue Nov 05, 2013 9:56 am

Had a few more ideas.

Maybe make the refurbished patcher arm (available in Eridani) an unknown level 2 device like the cannon accel and laser collimator. Balances having a patcher arm available so early. I've seen one or two at Starton Eridani nearly every game I've played. You'll then have to sort through them to find the device(s) you want.

Also seen the array (which I think is the same as in the box) at Starton Eridani. If this happens there's no need to open the box. Possibly stick a targeting ROM in with the array with a few other goodies, and increase the box weight to 5 tons. This would make it more tempting to open.

I couldn't find any devices available at all at a Rasier manuf plant. I only visited one (so not conclusive) but the new devices may need a particular attribute to be stocked at the manuf plants. Someone will know.

Re digdugs post: I was thinking that if the Nil device slot bug gets fixed then maybe the crash bug would fix itself. They could be connected. Here's hoping.
Stupid code. Do what I want, not what I typed in!
gunship256
Militia Commander
Militia Commander
Posts: 451
Joined: Sat Jul 25, 2015 11:41 pm
Location: repairing armor

Thanks for the helpful feedback! I'd like to make some changes to the mod too, and I could use some suggestions for which direction to go.
Personally, I wouldn't mind an manual uninstall capability so I can shunt the arrays to PSD drones. Saves waiting for it to uninstall on its own. But I have no idea of how to do it.
I think I can do it. The hard part is the UI. I've played a couple ways of using Invoke, but if it's more complicated than a simple toggle, it's hard to turn Recharge mode off if, for example, an explosion pushes your ship off of a planet.

If there's another way to do it, please let me know.
Array only recharges reactor to about 95% in Wolfen?
Watching the reactor display as the panel recharges it, the green bars showing reactor charge don't quite go to the full extent possible. Not sure if this is intentional.
Definitely intentional! As you saw in the notes, if there's no lag time between charging the reactor and the spiders reinstalling themselves, dockscreen lists go crazy, and it's a major pain to buy and sell stuff. It might also increase the frequency of the crashes you mentioned elsewhere.

Right now, the reactor will charge until it's full, the arrays will uninstall themselves, and they won't reinstall until the reactor is at 80% of capacity or less.
Esc key opens the box.
Pressing Esc from the 'Open Now, Open Later" dockscreen opens the box and installs the array, instead of returning to the SRS as you would expect. I usually use the Esc key to get back to a previous screen rather than 'Done' or "Continue
Thanks for the catch! I fixed it and will be re-uploading. Esc now chooses 'Open Later', and Enter does nothing.
Misc Devices screen in Ship Configuration Dockscreen not reseting....
System Crash
I'm not sure how to fix this one. I noticed this problem too when I was playing PSD6 without my mod installed. If I dock with a drone, sometimes the game crashes, and it might be because I put patch spiders on the drones, and they were moving around while I was docked.

I did get a system crash once before I changed the mod so that the solar arrays wouldn't continually install and reinstall. If I have time, I'll try to replicate the crash.

Maybe make the refurbished patcher arm (available in Eridani) an unknown level 2 device like the cannon accel and laser collimator. Balances having a patcher arm available so early. I've seen one or two at Starton Eridani nearly every game I've played. You'll then have to sort through them to find the device(s) you want.
I like that idea. The refurbished patcher arm is more expensive (1500 credits) than the laser collimator (500 credits) or the cannon accelerator (1100 credits). If I make the refurbished patcher arm an unknown device, would that make it too cheap to get? (I don't want to overwrite the unknown device item unless I have to, since it's not directly related to armor repair or solar recharge.)

EDIT: I could cripple the refurbished patcher arm further by allowing it to only regenerate armor up to level 6. That, combined with the low regen rate, would make it more balanced and justify lowering the value to 1100 credits. Would that work?

Along similar lines, what do you think about the pricing of the solar recharge devices? I'm leaning toward making them more expensive, since it's too easy right now to load up on a bunch of solar panel arrays and never worry about fuel again.
Also seen the array (which I think is the same as in the box) at Starton Eridani. If this happens there's no need to open the box. Possibly stick a targeting ROM in with the array with a few other goodies, and increase the box weight to 5 tons. This would make it more tempting to open.
I like this suggestion too. Killing the pirate fleet is a lot harder than defending the agricultural station, but the latter mission pays 5000 credits. What do you think players are looking for at the beginning of the game that wouldn't destroy balance if they had it? I like the idea of the targeting ROM. Anything else?

(In the past, the box has also had a patcher arm, tritium propulsion upgrade, and custom launcher. I thought this was overpowered, so I reduced the prizes to one item and am splitting the launcher off into its own mod.)
I couldn't find any devices available at all at a Rasier manuf plant. I only visited one (so not conclusive) but the new devices may need a particular attribute to be stocked at the manuf plants. Someone will know.
This got me curious, so I looked at the Transcendence XML. As far as I can tell, Rasiermesser dealers and manufacturing plants only sell weapons and armor, not devices! This is weird because there is a Rasiermesser enhancer, but I never use it, so I've never had a reason to look for it in one of their shops.

I changed the manufacturer to Makayev, and the items show up in Makayev shops now. This means that for me at least, I won't have much reason to visit Rasiermesser shops. I use blast plate, the Moskva repeater, and Omsk armor, and adding my own devices to that mix makes their shops appealing to my personal style in a possibly unfair way.

OTHER QUESTIONS:
Have you opened the box in Eridani, stayed for a while instead of leaving right away, and then gated to the next system? When I do this, the pirate attack fleet never shows up. I'm pretty sure that the mod never calls for the fleet, since when I check for the presence of the virtual item that is supposed to serve as the pirate beacon and then delete itself, I find it in my cargo hold.

Do you get a reactor overload when you use the nanotech repair spider? If I try to use more than two, it happens to me sometimes. This is a good thing to keep the spider balanced, but it would be better if the spider chooses not to install itself if the reactor is about to overload. Is there a way to check how close a reactor is to overloading?
With the stolen array, how do you give it back? Can you? I jettisoned it but the Drake blew it up.
It'd be great to implement a way to have the Drake loot the crate, but right now, I can't even get the Drake to loot an object it's destroyed. It just moves away if the player dies. I haven't spent a lot of time trying to fix it, though. Here's the code I'm using:

Code: Select all

			<OnObjDestroyed>
				; For some reason, this code doesn't work properly. Is it because I'm being destroyed by the Corsairs instead of the Drake?
				(block Nil
					; Dock with the wreck of the object that was destroyed
					(shpOrder gSource 'dock aWreckObj)
					(objSendMessage gPlayerShip gSource
						(random (objGetStaticData gSource "msgTableObjectDestroyed"))
						)
					)
			</OnObjDestroyed>
Thanks again for the detailed feedback! I uploaded a new version at 16 downloads:
Fixed a bug in the box dockscreen where hitting Esc caused the player to choose "Open Now" rather than "Open Later".

My devices were not showing up in Rasiermesser shops. Changed the maufacturer of the Rasiermesser devices to Makayev because Rasiermesser shops do not sell devices but Makayev shops do.

Made the refurbished patcher arm an unknown type like the laser collimator and cannon accelerator so it would not be so easy to get in Eridani.
NMS
Militia Captain
Militia Captain
Posts: 569
Joined: Tue Mar 05, 2013 8:26 am

I think you have to use (objRegisterForEvents) to get those kinds of events to execute.
gunship256
Militia Commander
Militia Commander
Posts: 451
Joined: Sat Jul 25, 2015 11:41 pm
Location: repairing armor

Thanks, NMS! That solved the problem.
Reuploaded at 34 downloads. No restart is required.

Besides the compact solar panel array, the box now also contains a targeting ROM and tritium propulsion upgrade to make it more tempting to open. Changed mass of the box to 5 tons per relanats suggestion in the forum thread.

Changed the refurbished patcher arm so it can no longer regenerate level 9 and 10 armor and also raised it to level 3, as it felt overpowered at level 2. Changed its mass to 500kg so it cannot be distinguished from the laser collimator and cannon accelerator until it is identified.

At the suggestion of NMS, added objRegisterForEvents to the code for the Drake enforcer so it can receive events from the playership.
TO DO NEXT: If the player is attacked by the Drake enforcer and ejects a crate, have the Drake dock with the crate. If the items in the crate are worth equal to or more than the items in the original box, have the Drake thank the player and move away.
relanat
Militia Captain
Militia Captain
Posts: 941
Joined: Tue Nov 05, 2013 9:56 am

The unknown device thingy for the Refurbished Patcher Arm works well. Now you have to sort through up to 3 devices to find one (although I usually want a collimator as well). And I like the idea of limiting it to a certain level of armor. Just sounds right.

-----------------------------------------
Have you opened the box in Eridani, stayed for a while instead of leaving right away, and then gated to the next system? When I do this, the pirate attack fleet never shows up.
I got the lack of a Charon attack too, after a long time in Eridani. Only thing I can see is (and I don't know what I'm talking about) in ExtPatcherDockscreens.xml.

Code: Select all

	; Give the player the solar panel array as well as a virtual object that will later act as a pirate beacon
			(objAddItem gPlayerShip &itCompactSolarPanelArray;)
			other stuff
			(objAddItem gPlayerShip &vt064PirateOwnerBeacon;)
							
	; Set this variable equal to true so that the attack will happen the next time the player enters a system
			(setq gunship256_readyForSolarOwnerAttack True)

	; Make the box known and remove it from the ship's cargo hold
			(itmSetKnown gItem)
			(objRemoveItem gSource gItem 1)
How is gItem being defined here after itmSetKnown? Possibly the code is taking gItem to be vt064PirateOwnerBeacon because this is the last item mentioned previously, and removing it from gSource (the ship). But you said the beacon is still there! Dunno!

Or in ExtPatcherVirtual.xml you have

Code: Select all


	(objRemoveItem gPlayerShip (itmCreate &vt064PirateOwnerBeacon; 1))

which to me could be removing and creating (or creating and removing) another PirateBeacon (itmCreate) leaving the existing one there.
Or maybe the 'if' function needs some sort of second command after the 'block Nil' group even if it's a command to do nothing.

Or code it differently? Have the game check after each gating whether the box has been opened, rather than set the box as 'opened' when you 'Open Now'.

I'm thrashing about well above my level of coding knowledge but it might help.

-----------------------------------------------------

Forgot to mention that both the Misc Devices system crash and the 'device slots not resetting' bug mentioned above are easily replicated. Different ship fitouts don't matter. I put a Ministry ticket up coz it might help someone sort it.


Also got another crash.
In St Kats docking with a Bushido Merchant. Had the Compact Solar Array but have no idea what it was doing at the time. Unable to replicate the crash.

01/16/2016 12:41:44 --------------------------------------------------------------------------------
01/16/2016 12:41:44 Start logging session
01/16/2016 12:41:44 Transcendence 1.6.3
01/16/2016 12:41:44 Graphics quality maximum: 110 ms; 2 cores.
01/16/2016 12:41:46 Loaded extension: Extensions\d064_SmartPatchSpiders 0.22 alpha\Smart Spiders and Arrays.xml
01/16/2016 12:41:46 Loading news.
01/16/2016 12:41:46 gethostbyname failed: 11004.
01/16/2016 12:41:46 Unable to resolve address for multiverse.kronosaur.com.
01/16/2016 12:41:46 gethostbyname failed: 11001.
01/16/2016 12:41:46 Unable to verify connection to the Internet.
01/16/2016 12:41:47 Error from Multiverse: You are not connected to the Internet.
01/16/2016 12:41:47 All resources downloaded.
01/16/2016 12:41:49 Loaded game file version: 1069301
01/16/2016 13:13:27 Exception in scrShowScreen; arg = (107417928 65580 { checkMilitaryID:True })
01/16/2016 13:13:27 Exception in scrShowScreen; arg = (107417928 65580 { checkMilitaryID:True }) [(107417928 65580 { checkMilitaryID:True })] ### (scrShowScreen gScreen 65580 { checkMilitaryID:True }) ###
01/16/2016 13:13:27 Unable to continue due to program error.

program state: OnAnimate
program state: miscellaneous animation
game state: docked


Please contact [email protected] with a copy of Debug.log and your save file. We are sorry for the inconvenience.

01/16/2016 13:13:27 gethostbyname failed: 11004.
01/16/2016 13:13:27 Unable to resolve address for multiverse.kronosaur.com.
01/16/2016 13:13:27 gethostbyname failed: 11001.
01/16/2016 13:13:27 Unable to verify connection to the Internet.
01/16/2016 13:13:36 End logging session


With the 'Nil nil device slot not resetting' bug mentioned in a previous post, the problem must be between the 'external' identifier and the refresh/update of the Misc Devices screen. The 'external' disappears so there is an update of some sort. It just has to include the dockcreen (or the number of device slots showing) as well, instead of just the Array. Itempicker lists update when you are in their dockscreen so their code might be helpful.

-----------------------------------------------------------

And since you have dockscreen coding well in hand now, what about a list of what you find in the box coming up on the second dockscreen! And you could make it an option to get one or more unknown ROMs instead of a guaranteed targeting ROM. Or maybe some random ammo? Or a cash card? Or an analyser with a random number of charges left?

----------------------------------------------------------

For my own curiosity, in ExtPatcherVirtual.xml what does <MiscellaneousDevice/> do? Is it something required by virtual devices?

----------------------------------------------------------
Personally, I wouldn't mind an manual uninstall capability so I can shunt the arrays to PSD drones. Saves waiting for it to uninstall on its own. But I have no idea of how to do it.

I think I can do it. The hard part is the UI. I've played a couple ways of using Invoke, but if it's more complicated than a simple toggle, it's hard to turn Recharge mode off if, for example, an explosion pushes your ship off of a planet.
If there's another way to do it, please let me know.
Had an idea. Use 'U' so you can manually install/uninstall the array. Use scrAddAction to put an action in the 'Ship's Interior' dockscreen that will toggle Default and Recharge mode. Haven't thought it through. Just an idea that came to me so I wrote it down before it vanished again!
Stupid code. Do what I want, not what I typed in!
gunship256
Militia Commander
Militia Commander
Posts: 451
Joined: Sat Jul 25, 2015 11:41 pm
Location: repairing armor

Thanks for all of the helpful feedback! I've been distracted with the Swivel Weapons Mount mod, but I spent a couple of hours today taking care of the easy fixes on Smart Spiders and Arrays. The new alpha is on Xelerus now. Here's a list of the changes:

v0.24 alpha

Added an error message that shows up when the cargo hold is too full for a device to uninstall.

Added a hard uninstall for external devices. If a device is invoked to switch from recharge back to default mode, that specific device (and that one only) is uninstalled. This was done to allow the player to manually uninstall solar panel arrays to jettison or sell them. The arrays will automatically reinstall themselves if the reactor is not at least 80% full, however.

Added more items to the Charon Pirate gift box. Changed the dockscreen so that the player can see what he received after he opens the box.

Changed module file names and UNID definitions to reflect the current name of the mod, "Smart Spiders and Arrays," rather than the old title, "Smart Patch Spiders."

I got the lack of a Charon attack too, after a long time in Eridani.
I think the cleanest way to fix this is to use an actual mission instead of storing the attack information in a virtual device. I'll need to re-write that section of the code.
Forgot to mention that both the Misc Devices system crash and the 'device slots not resetting' bug mentioned above are easily replicated. Different ship fitouts don't matter. I put a Ministry ticket up coz it might help someone sort it.

Also got another crash.
In St Kats docking with a Bushido Merchant. Had the Compact Solar Array but have no idea what it was doing at the time. Unable to replicate the crash....

01/16/2016 13:13:27 Exception in scrShowScreen; arg = (107417928 65580 { checkMilitaryID:True })
01/16/2016 13:13:27 Exception in scrShowScreen; arg = (107417928 65580 { checkMilitaryID:True }) [(107417928 65580 { checkMilitaryID:True })] ### (scrShowScreen gScreen 65580 { checkMilitaryID:True }) ###
01/16/2016 13:13:27 Unable to continue due to program error.

program state: OnAnimate
program state: miscellaneous animation
game state: docked
I've only had the crash happen twice in the last month, and the first time, it was also at St. Kat's. I had gated in from Charon to drop some stuff off in between killing Charon bases. I hit the "S" key while at St. Kat's on top of the Charon stargate, and I got the OnAnimate error. It happened so fast that I didn't even see the dockscreen show up.

It's possible that this happened due to a patch spider uninstalling itself, since I hadn't taken much armor damage before gating in.

Unfortunately, even though I had insurance both times the crash happened, when I reloaded the game each time, pressing F2 revealed # of resurrections = 1.
With the 'Nil nil device slot not resetting' bug mentioned in a previous post, the problem must be between the 'external' identifier and the refresh/update of the Misc Devices screen. The 'external' disappears so there is an update of some sort. It just has to include the dockcreen (or the number of device slots showing) as well, instead of just the Array. Itempicker lists update when you are in their dockscreen so their code might be helpful.
What's Itempicker, and what does it do that might help me understand how to fix my dockscreen code?
And since you have dockscreen coding well in hand now, what about a list of what you find in the box coming up on the second dockscreen! And you could make it an option to get one or more unknown ROMs instead of a guaranteed targeting ROM. Or maybe some random ammo? Or a cash card? Or an analyser with a random number of charges left?
Done! It's in the new version.
Had an idea. Use 'U' so you can manually install/uninstall the array. Use scrAddAction to put an action in the 'Ship's Interior' dockscreen that will toggle Default and Recharge mode. Haven't thought it through. Just an idea that came to me so I wrote it down before it vanished again!
In the new version, you can uninstall a device by going to Recharge mode and then invoking that specific device to exit Recharge mode. That device, and that device only, will get uninstalled. It won't do any good if your reactor isn't above 80% capacity, though, as the solar panel array will just reinstall itself.
relanat
Militia Captain
Militia Captain
Posts: 941
Joined: Tue Nov 05, 2013 9:56 am

gunship256 wrote:What's Itempicker, and what does it do that might help me understand how to fix my dockscreen code?
Itempicker lists are used in dockscreens. They fill the left hand side of the dockscreen with all the items in a list. See Periculi's Dockscreens! topic in Modding Reference for a better explanation.

When you are in the list dockscreen, at times during the game the list will update itself and flick you back to the top of the list (or at least it did a couple of versions ago, might still do it).
Examples are when colonies update their ammo stocks after you buy them out, or when docked with a PSD drone that is picking up multiple ore bodies. As items are added the list will change but you are still in the same dockscreen. I think this is what you need for the empty device slot bug. A way to update the dockscreen while remaining in it. I don't know where the code is (help, please, someone) but it seems that you just need to slightly reorder the code so that it updates the entire Misc Devices dockscreen, not just the "External".

Yeah, I know, sounds easy but I haven't ther foggiest idea how to help.

=============================

Also in the <Stolen> dockscreen I'm not sure if the text should read "gifts" now, not gift.
Either way works I think. I'm having a mental blank. :roll:

ExtSmartDockscreen.xml Line 86:
Despite the free gift, you start to wonder whether opening the box was a good idea...."
Stupid code. Do what I want, not what I typed in!
relanat
Militia Captain
Militia Captain
Posts: 941
Joined: Tue Nov 05, 2013 9:56 am

I got the lack of a Charon attack too, after a long time in Eridani.

I think the cleanest way to fix this is to use an actual mission instead of storing the attack information in a virtual device. I'll need to re-write that section of the code.
I was playing 1.7alpha1 and the Korolov freighter I was escorting got killed. After that happened a Drake docked with the wrecked freighter and looted 19 Korolov containers. So there must be "Charon attack " and "dock with wreck" code somewhere in Transcendence_Source in 1.7 that you can copy and modify. This might have been happening for a couple of versions but I just saw it for the first time.
Stupid code. Do what I want, not what I typed in!
gunship256
Militia Commander
Militia Commander
Posts: 451
Joined: Sat Jul 25, 2015 11:41 pm
Location: repairing armor

Thanks for the feedback! Here's a new version addressing a small gameplay issue:

0.25 alpha

CHANGES

Starting the game with the solar panel array made the game a little too predictable and also allowed the player to exploit a bug by waiting in Eridani for a long time so that the Drake does not show up.

Removed the solar panel array from the box, replacing it with a laser amplifier. Now the Drake has a 50% change of dropping the array and a 50% chance of dropping a refurbished patcher arm. You have to kill it to get the prize!
relanat wrote:Itempicker lists are used in dockscreens. They fill the left hand side of the dockscreen with all the items in a list. See Periculi's Dockscreens! topic in Modding Reference for a better explanation.

When you are in the list dockscreen, at times during the game the list will update itself and flick you back to the top of the list (or at least it did a couple of versions ago, might still do it).
Examples are when colonies update their ammo stocks after you buy them out, or when docked with a PSD drone that is picking up multiple ore bodies. As items are added the list will change but you are still in the same dockscreen. I think this is what you need for the empty device slot bug. A way to update the dockscreen while remaining in it. I don't know where the code is (help, please, someone) but it seems that you just need to slightly reorder the code so that it updates the entire Misc Devices dockscreen, not just the "External".
Thanks! I'll need to look into this to see if it solves the problem. There are other update problems, too:

If a device moves in or out of the cargo hold, Itempicker dockscreens get messed up and can select the wrong item to buy/sell. This also happens when a device moves in or out of the cargo hold while viewing the Invoke menu; it can cause a device to be invoked other than the one the player selected. The Invoke menu seems to not be updating when the devices are moving around.
relanat wrote:I was playing 1.7alpha1 and the Korolov freighter I was escorting got killed. After that happened a Drake docked with the wrecked freighter and looted 19 Korolov containers. So there must be "Charon attack " and "dock with wreck" code somewhere in Transcendence_Source in 1.7 that you can copy and modify. This might have been happening for a couple of versions but I just saw it for the first time.
I have the Drake docking with the destroyed playership now. The problem was the same one NMS point out: I needed to use objRegisterForEvents so that the Drake could receive events from the playership.

The hard part will be getting the Drake to dock with an ejected crate, tally up the total value of the items in it, compare that value to the value of the items originally in the box, and decide whether to leave the player alone!
relanat
Militia Captain
Militia Captain
Posts: 941
Joined: Tue Nov 05, 2013 9:56 am

Good news. The system crash in the Misc Devices dockscreen doesn't happen in 1.7.
Now it's just the blank device slot remaining on the screen after the array self-uninstalls.
http://ministry.kronosaur.com/record.hexm?id=30065
Stupid code. Do what I want, not what I typed in!
gunship256
Militia Commander
Militia Commander
Posts: 451
Joined: Sat Jul 25, 2015 11:41 pm
Location: repairing armor

relanat wrote:Good news. The system crash in the Misc Devices dockscreen doesn't happen in 1.7.
Now it's just the blank device slot remaining on the screen after the array self-uninstalls.
http://ministry.kronosaur.com/record.hexm?id=30065
Beautiful. Thanks for making that Ministry record and following up with George!

BTW: The problems with the Itempicker dockscreen still seem to be there in 1.7 alpha 1, although they haven't caused any crashes for me in either 1.6 or 1.7. The problems with the Invoke menu not updating happened in 1.6. I haven't seen them happen in 1.7 yet.
Post Reply