@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.
Pre-reporting bugs
Moderators: winston, another_commander, Getafix
- Lestradae
- ---- E L I T E ----
- Posts: 3095
- Joined: Tue Apr 17, 2007 10:30 pm
- Location: Vienna, Austria
Yes, I will remove that bug for the next version.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.
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.
- LittleBear
- ---- 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.
Leave the pirate role in but add as death actions:-
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.
Code: Select all
<key>death_actions</key>
<array>
<string>spawn: EQ_QC_MINE 1</string>
</array>
</dict>
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.
- Lestradae
- ---- E L I T E ----
- Posts: 3095
- Joined: Tue Apr 17, 2007 10:30 pm
- Location: Vienna, Austria
Yeah, but there is an error in reasoning in this solution, I thought of that before:LittleBear wrote:Leave the pirate role in but add as death actions:-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.Code: Select all
<key>death_actions</key> <array> <string>spawn: EQ_QC_MINE 1</string> </array> </dict>
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.
L
- LittleBear
- ---- 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.
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.
- Lestradae
- ---- E L I T E ----
- Posts: 3095
- Joined: Tue Apr 17, 2007 10:30 pm
- Location: Vienna, Austria
Hi LittleBear,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.
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
L
- Eric Walch
- Slightly Grand Rear Admiral
- Posts: 5536
- Joined: Sat Jun 16, 2007 3:48 pm
- Location: Netherlands
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.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.
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.
UPS-Courier & DeepSpacePirates & others at the box and some older versions