Jump to content

"Science data from space around" missions - infinite money


Recommended Posts

KSP Version: 0.25.0.642 (x64)

The missions called "Science data from space around..." seem to be abuseable for infinite money / reputation. After completing one, just decline missions until you get it again, switch back to the ship already in orbit, and finish again.

Link to comment
Share on other sites

Yes they seem to constantly appear.

The trick is, if you feel like you're exploiting a gameplay mechanic or a bug, just don't do it. I did it once or twice but when I realized they were recurring I just ignore it.

Besides most of the test (x) part on launch are kind of an exploit too. If you just do them you also end up with no expense but a lot of income. You might be interested in trying out the mods "Fineprint" and "Mission controller extender". They add a lot of more interesting contracts to help alleviate the grinding of part contracts.

Link to comment
Share on other sites

Yep. It's a difficult balance. You still want people to be able to fund those 12 million funds mega missions to Jool. Hopefully with the additional contract functionality that's coming with 0.90, there will be more variety and these contracts won't pop up as frequently.

Cheers,

~Claw

Link to comment
Share on other sites

A good fix in my opinion would be enhancing missions so they need to be assigned to a pod or kerbal before launch. Allow transfering them via pods / kerbals so flights that are built together in space still work, but it would not only prevent finishing missions with things already at the target, it would too make the missions tab during flight more lucid.

Btw the whole reputation / science / money gain needs some kind of balancing-love... I'm meanwhile playing on hard setting, reduced rep and science gain to 50%, and it still feels pretty easy. The begining is challenging, not much place for exploding rockets until you get to mun. But once i was there (without the repeating missions cheat), i am again at the point where my science is high enough to get to Jools moons, rep is nearly at max, and money is high enough so that i can fail at the next 8 big rockets launches without getting into problems. Not sure what the goal is of career mode, but currently it feels like "race to the mun and win" - and that's not something that can be balanced with the options slider, if i reduce the income even more, it just becomes unprogressable at the begining. (my above solution for repeating missions would make that more balanceable too in my opinion. When missions are assigned to a spacecraft, the game could handle loosing or recovering a pod with an unfinished mission as a minor failure - mission should still stay open, but it would cost us reputation)

Edited by thyriel
Link to comment
Share on other sites

Both "science from" and "plant flag" missions could be capped with some effort.

"Science from" could be capped if it becomes necessary to actually transmit/recover data. Once a biome is milked dry there is nothing left to learn. Missions should therefore no longer reward funds.

"Plant flag" should require you to actually plant the flag of the company that gives you the mission. You can still do the missions indefinitely but camping on the surface won't do you any good. (Unless of course you set up a camp site with a dozen different pods.)

Link to comment
Share on other sites

Perhaps they should get a law of diminishing returns applied to them?

Payout equals:

Max payout / (1+ number of times same type and target contract has been completed)

OR

Minimum payout

whichever is greater

Here's some pseudocode that should do that. Should look roughly C-like, and somewhat clear what I'm trying to do.

It's meant to convey the idea, not be usable code. If it happens to compile without errors, that's great too.


void OnContractCompletion(CurrentContract);
{

[INDENT]int MaxPayout = GetMaxContractPayout(CurrentContract); // Finds upper bound of payout for this contract, sets MaxContractPayout to that value
int MinPayout = GetMinContractPayout(CurrentContract); // Finds lower bound of payout for this contract, sets MaxContractPayout to that value
str ContractType = GetContractType(CurrentContract); // What kind of contract just got completed? (if they're bitmasking this variable, use int not str)
str ContractTarget = GetContractTarget(CurrentContract); // Where does the contract want stuff from? (again, bitmasked variable = use int not str)
int TimesCompleted = CountMatchingContractsInLog(ContractType,ContractTarget); // Counts how many times this contract has been completed for this target

// I think that's all the variables declared, here's the stuff that actually does the work

If(ContractType == ( "ScienceFrom" || "PlantFlagOn" )); // do stuff if "science from X" or "Plant flag on X" contract (yet again, change var type if bitmasked)
{
[/INDENT]


[INDENT=2]CurrentPayout = MaxPayout / (1+TimesCompleted); // calculate what this contract should pay out.

If( CurrentPayout >= MaxPayout ); // Sanity check on payout, don't let it pay out more than max if the math is off
{
[/INDENT]
[INDENT=3]GiveFunds(MaxPayout);
return end; // exit "If/Elseif/Else" loop
[/INDENT]
[INDENT=2]}

ElseIf( CurrentPayout >= MinPayout ); // Continue if calculated contract payout is above minimum.
{
[/INDENT]
[INDENT=3]GiveFunds(CurrentPayout);
return end; // exit "If/Elseif/Else" loop
[/INDENT]
[INDENT=2]}

Else; // Calculated payout was below minimum, give minimum payout
{
[/INDENT]
[INDENT=3]GiveFunds(MinPayout); // Payout function.
return end; // exit "If/Elseif/Else" loop
[/INDENT]
[INDENT=2]}
endif
[/INDENT]

[INDENT]}

// other contract payout handling loops below this line
[/INDENT]


If you couldn't tell, it's not my first time coding. Haven't coded in years, but even these days I can usually pick out logic or math errors in source code if I care to look at it. I often have a guess of where to look for the problem, as well.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...