Repair Ship Goal Not Working

Razzum frazza

I cannot create a mďsn with a ShipGoal of 5 (Rescue) that works the way it's supposed to.

No, the ship shows up just fine, disabled and everything, but I either cannot board it or I get the usual boarded ship menu. In one instance, I can't even get the ship to take on the STR name or subtitles whose numbers I've referenced in the ShipNameID and ShipSubtitle fields.

Any ideas, folks?

This post has been edited by UncleTwitchy : 30 August 2005 - 08:11 PM

Yup, I don't believe it does work. The bible is somewhat misleading there. All it does is make it start disabled. When you say you cannot board it I expect that what happened was that you boarded it once but there was no cargo to pick up or desc to display so you didn't realise and then you can't board it again.

Twitch Meister,

I was recently working with the rescue ship mission option and it seemed to work OK, but I was initiating the mission via a përs. One thing I noticed was that if I had the ShipSyst set to -6 "Follow player", the darn disabled ship kept appearing even though my mission had already started and was yet to be completed.
If I tried boarding that reappearing disabled ship I would only get the standard plunder ship dialog instead of starting another incarnation of the rescue mission. Once I changed ShipStart to -1 "Initial syst" that little problem went away. Another problem I had was I wanted to pick up survivors from the disabled rescued ship, but I had incorrectly set the cargo PickupMode to 0 "at mďsn start" instead of the correct PickupMode 2 "when boarding special ship". Check all of your mission parameters very closely and keep checking the status of your mission in the pilotlog.txt file are the best things I can suggest. Also, you might try copying the "Refuel Trader" mission and përs from the default Nova scenario and then tweaking it to see if you can get what you want. How are you starting your rescue mission?

My initial version of the mission was a rewrite of the "Refuel Trader" mission, but I was never able to get it to work -- sometime after, oh, say, version 1.0.2 (or maybe 1.0.4), as soon as I changed it even slightly, the ship never worked the same again.

Initial syst, huh? That sucks. Hard. I wanted to be able to do the "the ship is one system away from where the mission is offered" thing -- you know, it shows up in the Mission window as "We've received a distress call from a ship. Go fix it." Or from a përs -- "There's a ship nearby that's broken. Go fix it."

So I can't do this, huh? Can someone point this out to Matt Burch, and see if that's genuinely the way he wanted the mission to work? Because it seems pretty limiting otherwise.

Technically, he only compared -6 to -1. Im sure there are other operational configurations. The escape pod rescue problems have prompted me to start testing this, ill tell you what i come up with later tonight.

Specifically, it should work with -3 (TravelStel's system), -4 (Return/Stel's system) and -5 (System adjacent to initial system). And I can't get it to do so. And I want to know why.

This post has been edited by UncleTwitchy : 31 August 2005 - 12:08 PM

OK, I modified my përs activated rescue mission to instead have an AvailLoc of the Mission BBS on a specific spöb. I then stepped the ShipSyst parameter through -1, -3, -4, and -5 and ran the mission several times for each of those ShipSyst values. What I found was that in each instance the disabled SpecialShip appeared where it was supposed to appear, with the ShipName and Subtitle specified in the mďsn. I was able to board and load the specified cargo (1 ton of survivors). And the mďsn would complete successfully upon arrival at the ReturnStel in each case.

However, two things occurred in each case that I would consider anomalous. First, if I returned to the ShipSyst after having boarded the disabled SpecialShip, but before going to the final ReturnStel, I would find that the SpecialShip was again available for boarding. And when boarded after any number of subsequent returns to the ShipSyst, I could load the "survivors" each time, although my ship's cargo tonnage would still only indicate 1 ton of survivors.

I've never tried going back to the Don'U'Cusyon system in the Pirate storyline after I've once boarded "Ryan's Last Chance" to see if I could board it again, but that should be possible based on this little experiment.

So, Uncle Twitchy, the bottomline is that there is some aberrant behavior when running a ShipGoal of -5 (Rescue them), but not of the specific ilk that you've encountered. If you can get your troublesome rescue mission into a stand-alone plug, I'd be glad to take a look at it for you to see if I can figure out why it's misbehaving.

(edit)
I still have my copy of your SFA alpha release and was just looking through the missions in that. I notice that there are two "rescue" missions (RIDs 282 and 283). I'll mess around with those two missions tomorrow, since your problems may somehow be related to their operation specifically within the SFA scenario environment.

This post has been edited by Arturo : 01 September 2005 - 01:56 AM

You could get around it with two missions, although it is a bit annoying. In the OnShipDone field, have it Axxx itself and Sxxx another mission with a ReturnStel. You could also use this to your advantage - for instance, make the SpecialShip mission QuickText "rescue small furry creatures from Alpha Centauri in X system" (trivia question: can you guess where that odd reference is from?), then once you rescue them, change it to "take small furry creatures from Alpha Centauri to Y planet in Z system".

HHGttG

The missions I've been trying to do have been offered from the Mission Computer, not a përs ship -- or, if it's offered by a përs ship, it's a different ship that needs rescuing.

I may have to check the Beta Tester thread to see if there's anyone free who's also a serious EVN coder -- I'm starting to get into some real crunchy bits that are causing me enough grief that I've started posting queries regularly.

(Anyone who's available, hardcore with the coding, and has the time is free to PM me here about this, btw -- I'm wanting to take up that challenge of getting this thing finished by the end of the year, and that's going to involve a crapload of testing and debugging.)

Arturo, on Sep 1 2005, 02:24 AM, said:

However, two things occurred in each case that I would consider anomalous. First, if I returned to the ShipSyst after having boarded the disabled SpecialShip, but before going to the final ReturnStel, I would find that the SpecialShip was again available for boarding. And when boarded after any number of subsequent returns to the ShipSyst, I could load the "survivors" each time, although my ship's cargo tonnage would still only indicate 1 ton of survivors.

I've never tried going back to the Don'U'Cusyon system in the Pirate storyline after I've once boarded "Ryan's Last Chance" to see if I could board it again, but that should be possible based on this little experiment.
View Post

I have an idea. This is entirely theoretical, based solely upon the information in that untrustworthy apocrypha known as the EV: Nova Bible, but it just might work, although crudely. It involves making a special shďp for each type of ship that could ever be the target of your rescue mission.

Make the ship identical to the ship you want rescued. For instance, if you're rescuing a shuttle, make a duplicate Shuttle resource. Change only one thing: add a single bit to the AppearOn field of the shďp. I'll call that bit b666 just for now.

Make a düde containing only the new ship. Make your rescue mission point to that düde. In the OnAccept field of the mission add "b666". Add "!b666" to the OnShipDone field. Now (hopefully) the ship you're supposed to board will exist from when you accept the mission right up until you board it, at which time b666 will be cleared. When you leave the system and come back the ship will be unable to appear because its AppearOn field evaluates to false.

This, of course, is assuming that mďsns don't simply override ship bit requirements. Only testing can show whether I'm right or wrong. I'm probably wrong though. 🆒

Qaanol that's an excellent suggestion, so good in fact that I went ahead and tried it out. There's only one downside. It doesn't work. (rats!)
Apparently, as you surmised, the mďsn handling routines don't check the shďp AppearOn state of the düde pointed to by the mďsn SpecialShips parameter. I even went so far as to set the düde shďp AppearOn to the ubiquitous b9999 which is never set TRUE (1) by anything. Dang SpecialShip düde still showed up. Oh well, good try anyway. In fact, that seems to me to qualify as a game-engine BUG. Too bad that the cutoff for bug reports/fixes in 1.0.9 has already come and gone.

It's probably making it appear anyway because it has to create a ship and there's no other choice. What if you added a second ship in the dude with 1% probability? Or maybe even 0? Since the first ship isn't available it should use the second one, regardless of the probabilities.

So what's next, 1.1.0, or 1.0.10 -- the latter looks silly to me, but unless this is actually intended behavior, this is a pretty scenario-crippling bug.

Guy, on Sep 2 2005, 05:26 PM, said:

It's probably making it appear anyway because it has to create a ship and there's no other choice. What if you added a second ship in the dude with 1% probability? Or maybe even 0? Since the first ship isn't available it should use the second one, regardless of the probabilities.View Post

Yep. If a düde has no available ships, but there must be a ship created with that düde, Nova will ignore AppearOn values. This appears in the stock scenario for the Fed "Kill Raven" mission, as well as for all of the Fed capital ship defense fleets after completing the game. I do not know what happens if a düde with no available ships is referenced in a system.

And the next version of Nova will be 1.0.9 (and I agree that 1.0.10 looks silly, especially since other Ambrosia games seem to use 1.1.*).

Edwards

I meant what's next after 1.0.9 -- should've made that clearer.

And if a düde with no active shďps is referenced in a s˙st resource, no ships will actually appear. I use that a lot in SFA to do things like "These aliens used to be hostile to us, but now they're allies."

UncleTwitchy, on Sep 2 2005, 05:05 PM, said:

So what's next, 1.1.0, or 1.0.10 -- the latter looks silly to me, but unless this is actually intended behavior, this is a pretty scenario-crippling bug.
View Post

Generally speaking software version numbers work as follows:
Rightmost digit is for bug fixes to the current application
Center digit is for feature enhancements to the current application
Leftmost digit is for complete overhauls to the application
So theoretically since EV was 1.0.0, EV:Override should've/could've been EV 2.0.0 and EV:Nova would then be EV 3.0.0 (hence the nickname ev3). But ASW probably decided it was better to market the new games under different names rather than strictly adhere to the version number method.

Edwards, on Sep 2 2005, 05:22 PM, said:

I do not know what happens if a düde with no available ships is referenced in a system.
View Post

I've done the AppearOn thing with all of the Free Trader pirate shďps (I created a separate batch of shďps just for that purpose) as a personal modification to the end of the Pirate storyline. So s˙st düdes do pay attention to AppearOn. In fact, it appears that up until v1.0.6, when the flët escort düdes also began to pay attention to AppearOn, s˙st düdes were the only düde usage that didn't ignore AppearOn.
(edit}
And yeah, the game-engine should never ignore the AppearOn statement. My opinion is that if a mission requests a düde, then any ships in that düde definition with an AppearOn that evaluates to FALSE should not be used. If all of the düde's ships have a FALSE AppearOn value then the mission shouldn't be offered and a warning should be place in the debuglog.txt file. But I'm not the one that invested, what 3, 4, 5 years of my life implementing Escape Velocity so that we could all complain about it. My guess is that this would be a non-trivial modification/fix to implement. I'll go ahead and submit a formal bug report to pipeline, but I wouldn't get my hopes up for either seeing a fix in 1.0.9 or for there ever being a 1.0.10.

This post has been edited by Arturo : 02 September 2005 - 09:31 PM

I've got another couple of potential workarounds. Well, really it's only one workaround, but the most elegant part of it might not work, so I've got a workaround contingency for that eventuality as well.

Mission 1 is the "Rescue" mission. Don't give it any PayVal or anything in its On Complete field, because it's going to get autoaborted. You can give it something in its OnAbort field if you want, but that's not necessary. Anyway, this mission has a ShipGoal of Board. OnShipDone it starts Mission 2 and aborts itself. That is, S2 A1.

Mission 2 is the "Get the rescued ship gone, foo!" and return somewhere mission. It has a goal of simply going to the ReturnStellar of Mission 1. You just need to put the PayVal and whatever other compensation or rewards there are for the mission in the OnComplete field of Mission 2 and you're done.

Possible bug: If cargo is collected off the rescued ship then it's possible for a ship without enough free cargo space to get the mission and complete it. Even if Mission 1 is only available when you have enough space, it's possible you might switch ships en route to the rescue, and then when Mission 2 is autostarted your ship will have the cargo foisted upon it regardless of space. I see no workarounds for this. Does anyone else?

- edit -

Another bug-type thing: The mission cannot have a random return stellar, unless that stellar is not specified at the beginning and doesn't show up on the map, because otherwise Mission 2 might have a different ReturnStel than Mission 1 does, confusing the player.

This post has been edited by Qaanol : 20 September 2005 - 04:01 PM

Qaanol, on Sep 12 2005, 05:50 PM, said:

Possible bugs: If the OnAccept field of Mission 2 is not evaluated when Mission 1 Sxxx's it OnShipDone then a workaround can be made by having Mission 1 Sxxx Mission 3, that is, S3, in addition to S2 OnShipDone. Have Mission 3 introduce a special ship with a generic name that's always in the same system as the player. In Mission 3's OnShipDone field put A1 and A3 to get rid of both special ships.
View Post

Why don't you just put A1 in Missions 1's OnShipDone?

Qaanol, on Sep 12 2005, 05:50 PM, said:

If cargo is collected off the rescued ship then it's possible for a ship without enough free cargo space to get the mission and complete it. Even if Mission 1 is only available when you have enough space, it's possible you might switch ships en route to the rescue, and then when Mission 2 is autostarted your ship will have the cargo foisted upon it regardless of space. I see no workarounds for this. Does anyone else?
View Post

What happens normally if you board a special ship to collect cargo but don't have enough room?

Guy, on Sep 12 2005, 05:13 PM, said:

Why don't you just put A1 in Missions 1's OnShipDone?
View Post

Good call. I edited my above post, and also included another bug-like thing.