Pre-reporting bugs

For test results, bug reports, announcements of new builds etc.

Moderators: winston, another_commander, Getafix

User avatar
TGHC
---- E L I T E ----
---- E L I T E ----
Posts: 2157
Joined: Mon Jan 31, 2005 4:16 pm
Location: Berkshire, UK

Post by TGHC »

@Lestradae Will the constrictor bug be squashed in 3.03?

To avoid it peeps can complete the Constrictor mission before installing RS as it occurs early in the life of Jameson.
The Grey Haired Commander has spoken!
OK so I'm a PC user - "you know whats scary? Out of billions of sperm I was the fastest"
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

Post by Lestradae »

TGHC wrote:
@Lestradae Will the constrictor bug be squashed in 3.03?
To avoid it peeps can complete the Constrictor mission before installing RS as it occurs early in the life of Jameson.
Yes, I will remove that bug for the next version.

You can, by the way, completely remove it by hand if you edit RS 3.02`s shipdata.plist the way I described further up the thread: Search for the "constrictor" shipentry, look for the roles, and remove "pirate (0.01)" from the roles entry, so that only "constrictor" is left standing. Save the edited shipdata.plist, and press shift next time when starting Oolite.

I fear that having the mission completed in and of itself doesn`t fix the bug, because every time a constrictor pirate is shut down, the game is told that the mission was completed - over and over again :(

Only solace is that this bug seems to be (and should be, mathematically) exceedingly rare - but extremely annoying if it surfaces.
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2882
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

Leave the pirate role in but add as death actions:-

Code: Select all

	<key>death_actions</key>
	<array>
	<string>spawn: EQ_QC_MINE 1</string>
	</array>		
	</dict>

Its because you haven't overwritten the orginal's death actions that the mission payment keeps being triggered. Replacing with this will cause it to spawn a mine instead.

Mathemetically, it may actually be quite common sometimes, as the dice are peudo-random. If the chance hits then it always hits on a particular jump and although it only has a 1 in a 1000 chance of being picked as a pirate each time Oolite calls for a pirate, Oolite calls a lot of pirates.
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

Post by Lestradae »

LittleBear wrote:
Leave the pirate role in but add as death actions:-

Code: Select all

	<key>death_actions</key>
	<array>
	<string>spawn: EQ_QC_MINE 1</string>
	</array>		
	</dict>
Its because you haven't overwritten the orginal's death actions that the mission payment keeps being triggered. Replacing with this will cause it to spawn a mine instead.
Yeah, but there is an error in reasoning in this solution, I thought of that before:

The RS Constrictor overwrites the original constrictor! That means, if I or someone else does what you just suggested and they finish the Constrictor mission with this modified RS version in, instead of "mission finished, congrats" and the rewards they get a q-bomb exploding in their face ... :(

So this is perhaps not such a good idea, or am I overlooking anything?

The Constrictor-as-a-pirate can be saved, but then it has to be made a ship of its own (like, NPC-constrictor or somesuch new shipname) before it can be re-implemented with your fix.

8)

L
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2882
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

just name it "RL_Constrictor" and only give it the role pirate. Then it won't overwrite. It'll be a clone (apart from the death_actions) that appears as a pirate and the native game constrictor used in the native mission remains unaffected.
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

Post by Lestradae »

LittleBear wrote:
just name it "RL_Constrictor" and only give it the role pirate. Then it won't overwrite. It'll be a clone (apart from the death_actions) that appears as a pirate and the native game constrictor used in the native mission remains unaffected.
Hi LittleBear,

that`s exactly what I`m going to do! :)

But, for a quick edit of the shipdata.plist I think that`s too complicated, so I will create that fix when the next version of RS comes out ...

Thanks for the helping hand 8)

L
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

LittleBear wrote:
just name it "RL_Constrictor" and only give it the role pirate. Then it won't overwrite. It'll be a clone (apart from the death_actions) that appears as a pirate and the native game constrictor used in the native mission remains unaffected.
Adding new death_actions won't be enough. This will only work with oolite 1.70 and older. Since Oolite 1.71 the constrictor has a script of his own and in that case any death_actions are ignored. On the plus side is that this script explicitly checks if the killer is the player.

Best thing for a mission ship with script is to never use a like_ship and copy the whole shipdata instead and leave out the scripts. And always rename it.
Post Reply