Boot the player, but allow for refuel

Okeydoke, here's my dilema:

A mission gives the player a new ship, with significantly more fuel than his former ship. It then evaluates "Qxxx" to kick him off the planet.

Question: how can I refuel the player, yet still force him off the planet?


Maybe slip an auto-refueler onto the ship either during kick off or prior to landing?

Here's a really convoluted method that'll work. At kickoff,

Saaa mission A: goal is either to observe a ship in-system, or destroy a zero-armor ship.
Gbbb outfit B: ridiculously fast fuel recharge.

Mission A, OnShipDone, aborts itself and calls Dbbb to remove outfit B.

If you go with a zero-armor ship, make its DeathDelay at least 2 so weird graphics glitches don't occur, and long enough to allow full fuel recovery, but not more than maybe 10 or so, in order that the fuel get filled right away.

This post has been edited by Qaanol : 11 February 2010 - 01:06 AM

That brings me to another question:

How do you get the player's outfits to re-evaluate mid-flight? I remember reading elsewhere you have to run some check, like Pxxx or something, but haven't been able to find the old topic.

Desprez discovered it, I believe. You just need to Gxxx or Dxxx something. In fact, I could be wrong, but I think it's sufficient to Dxxx something even if the player doesn't have any.

If you try to Dxxx an item when the player doesn't have any of that item, that part of the expression does not evaluate. The rest, however, will still work.

I disagree. When a set expression includes Dxxx and the player does not have any copies of outfit xxx—including if there is not actually any such outfit as xxx in any data or plug-in file—that part of the expression is evaluated. The result of this evaluation is to check what outfits the player owns and, when the number of outfit xxx owned is found to be zero, no action is taken.

I claim this is different from simply not evaluating that part of the expression. In particular, the game does check what outfits the player owns, which updates the player's ship immediately. To check this, I altered the IR Missile outfit to have a substantial negative modification to turning rate. Then, after buying IR Missiles, my turning rate was extremely slow. After firing all the IR Missiles, my turning rate was still extremely slow (unchanged) because the game does not update the player's stats after firing a weapon.

But I also had a mission that created a derelict ship in the system, with the goal of destroying it. OnShip done I tried having it do nothing, having it abort itself, having it both abort itself and call D129 when I did not own any of outfit 129, and having it both abort itself and call D450 when not only did I not own any but outfit 450 did not exist in any plug-in or data file.

In the first two cases, when I killed the mission ship my turn rate stayed slow. In the latter two cases, when I killed the ship my turn rate immediately jumped back up to normal. Thus, calling Dxxx is sufficient to update the player's ship's stats in flight.

Further tests reveal that D99999, D32767, D640, and D127 do nothing, but D639 works. So if the xxx is outside the allowable range of outfits, then that part of the expression does not evaluate.

Ok, I should rephrase what I said. I said it doesn't evaluate, but I meant nothing happens. It has to evaluate because it wouldn't know the player doesn't have any of that item otherwise.

All that said, though, do you have what you need, n64mon?

Yah, I'm set. I ended up going with sneakily giving the player more fuel capacity and an auto refueler in the end, I just had trouble getting it to work. Thanks for the help.

Log in to reply