Nereid

[1.7.1] Final Frontier - kerbal individual merits 1.5.3-3465

KSP 1.1.0  

617 members have voted

  1. 1. Is FinalFrontier working in KSP 1.1.0?

    • Yes
      223
    • No
      54
    • It doesn't matter; this poll was just created to remove the outdated old one...
      369


Recommended Posts

Quote

I am talking about the 'EVA in Kerbin water ribbon'. EvaInWater.png Awarded for any EVA in Kerbin waters.

Fixed. I will see if I can do anything about the deep space ribbon and release it today.

 

EDIT: The problem with the deep space ribbon is, that there is no event fired when the vessel is beyond Eeloo orbit. FF avoids to check all achievements every few seconds, but depend heavily on ingame events. I will have to change the ribbon for any established orbit around kerbol that will have an apoapsis beyond the apoapis plus the sphere of influence of the outermost planet. It will be arawerded even if the vessel is in the inner parts of the system.

EDIT: This wont work, too; because FF if the orbit is closed before the ApA is beyond Eeloo, it wont be detected.



 

Edited by Nereid

Share this post


Link to post
Share on other sites

Would it be possible to check altitude every say 5 or 10 seconds? If altitude exceeds this value, you are in deep space?

Share this post


Link to post
Share on other sites
On 9.12.2015 at 2:21 AM, blu3wolf said:

Would it be possible to check altitude every say 5 or 10 seconds? If altitude exceeds this value, you are in deep space?

Possible: yes. There are similar checks for some ribbons already in FF (but they do not check the ribbon requirements, but detect significant changes in the vessel situation and fire all ribbon checks if any important value has changed). But I will have to add another class doing this. There was not enough time to do this yesterday. [this was easier than I thought]

 

Edited by Nereid

Share this post


Link to post
Share on other sites

So I just got Jeb out to a solar orbit for the first time on this career save. Just barely faster than kerbin, half a meter a second slower at perikee and we would have stayed in kerbin orbit.

Jeb has earned some ribbons for getting to a solar orbit! This is wonderful, and really about a third of the reason I did the mission. However, he has earned a few that I think he has not actually 'earned' yet. Specifically, he has been given the First Closer Solar Orbit Ribbon, and the First Sun Atmosphere Ribbon also. 

Seeing as his current orbit is almost the same as Kerbin's, I have deemed him unworthy of these ribbons, and stripped them from him. Is there any way to prevent him getting them in the future (unless of course, he does actually get that close)?

Share this post


Link to post
Share on other sites
On 12/3/2015, 4:44:16, Nereid said:

Maybe in the days after xmas. Currently there are a few other games that takes away my attention. And I will have to take a look at the Contract Configurator myself first.

I'm probably not the only contract author excited for this. Looking forward to what you can come up with!

Share this post


Link to post
Share on other sites

When I try to install this mod, KSP won't load. Removing the mod allows KSP to load again.

My GameData folder has these subfolders:

  1. 000_Toolbar
  2. KerbalEngineer
  3. Kerbaltek
  4. PreciseNode
  5. RCSBuildAid
  6. Squad
  7. TriggerTech
  8. toolbar-settings.dat

I am trying to place the Nereid folder (and its contents) into this folder.

Share this post


Link to post
Share on other sites

From the pool:

 

Quote

 

  1. 1. What should I do next

    • Add an option to disable specific ribbons
    • Add compatibility to mods that add/change celestial bodies

 

I'll add the third option:

Add an option to add custom ribbons :P (add a +1 in this vote)

Edited by Araym

Share this post


Link to post
Share on other sites

EDIT: Sorry, wrong quote. 

On 7.12.2015 at 1:45 PM, steve_v said:

Is this yours?


[00:05:55]: Lt. Dan Kerman boarded Mk1 Inline Cockpit on Das Canoe.
 
(Filename: /home/builduser/buildslave/unity/build/artifacts/LinuxStandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

FF: no Hall of Fame entry found for kerbal Lt. Dan Kerman
 
(Filename: /home/builduser/buildslave/unity/build/artifacts/LinuxStandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)

FF: creating new hall of fame entry for kerbal Lt. Dan Kerman
 
(Filename: /home/builduser/buildslave/unity/build/artifacts/LinuxStandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
NullReferenceException: Object reference not set to an instance of an object
  at Nereid.FinalFrontier.BoardingAction.DoAction (Double timeOfAction, Nereid.FinalFrontier.HallOfFameEntry entry, System.String data) [0x00000] in <filename unknown>:0 
  at Nereid.FinalFrontier.HallOfFame.RecordBoarding (.ProtoCrewMember kerbal) [0x00000] in <filename unknown>:0 
  at Nereid.FinalFrontier.AchievementRecorder.RecordBoarding (.ProtoCrewMember crew) [0x00000] in <filename unknown>:0 
  at Nereid.FinalFrontier.EventObserver.OnCrewBoardVessel (FromToAction`2 action) [0x00000] in <filename unknown>:0 
  at EventData`1[GameEvents+FromToAction`2[Part,Part]].Fire (FromToAction`2 data) [0x00000] in <filename unknown>:0 
  at KerbalEVA.proceedAndBoard (.Part p) [0x00000] in <filename unknown>:0 
  at KerbalEVA.BoardPart (.Part p) [0x00000] in <filename unknown>:0 
  at KerbalEVA.<SetupFSM>m__93 () [0x00000] in <filename unknown>:0 
  at KerbalFSM.RunEvent (.KFSMEvent evt) [0x00000] in <filename unknown>:0 
  at KerbalFSM.updateFSM (KFSMUpdateMode mode) [0x00000] in <filename unknown>:0 
  at KerbalFSM.UpdateFSM () [0x00000] in <filename unknown>:0 
  at KerbalEVA.Update () [0x00000] in <filename unknown>:0 

I'm seeing it in the context of a rescue contract from the current release of inigma's  GAP, and it appears to be duplicating my rescued kerbal.
I'm running a fair few other mods so It may well be some obscure conflict, I'd be up for more testing (and complete logs etc.) if needed, but first: sleep.).
After removing FF :( the rescue goes as expected, but that's not a very nice solution.

I'm currently investigating this. At first I thought I can reproduce this and well... I can. But this seems to be a little more complicated. I will have to get in contact with nightingale before I can continue.
 

On 16.12.2015 at 6:43 PM, inigma said:

I'm probably not the only contract author excited for this. Looking forward to what you can come up with!

 

Well, this is delayed a few days.
 

Edited by Nereid

Share this post


Link to post
Share on other sites
17 hours ago, Nereid said:

I'm currently investigating this. At first I thought I can reproduce this and well... I can. But this seems to be a little more complicated. I will have to get in contact with nightingale before I can continue.

I can no longer repro this, in the same save or otherwise, with CC 1.9.1 / GAP 0.3.

Share this post


Link to post
Share on other sites
On 12/27/2015 at 8:54 AM, Nereid said:

EDIT: Sorry, wrong quote. 

I'm currently investigating this. At first I thought I can reproduce this and well... I can. But this seems to be a little more complicated. I will have to get in contact with nightingale before I can continue.
 

 

Well, this is delayed a few days.
 

Lt. Dan Kerman is a spawned crew  member that you either pick up or load at craft launch. He is created using the @nightingale CC function NewKerbal and is removed by CC from the roster with every contract completion to ensure that players don't use him otherwise. Here is a sample CC contract: 

https://github.com/inigmatus/GAP/blob/master/CoastGuard-Certification.cfg

Informing @steve_v

Edited by inigma

Share this post


Link to post
Share on other sites

There was at least one issue relating to spawned Kerbals not being properly cleaned up that was fixed in 1.9.1.  Likely that Final Frontier was having problems as a result of one of those bugs.

Share this post


Link to post
Share on other sites
On 29.12.2015 at 6:00 AM, nightingale said:

There was at least one issue relating to spawned Kerbals not being properly cleaned up that was fixed in 1.9.1.  Likely that Final Frontier was having problems as a result of one of those bugs.

That would make sense. if anybody using CC 1.9.1 still has this issue, please let me know.

Share this post


Link to post
Share on other sites
On 16.12.2015 at 0:22 AM, Wcmille said:

When I try to install this mod, KSP won't load. Removing the mod allows KSP to load again.

 

We finally solved this one. Wcmille has a lot of save games (including quicksaves). Unfortunately there is a nasty bug in the save game converter of FF: It scans all saves (and this could take a while if there are quite a lot save games...) and then if it will find any old save game, it will ask to convert them. If this is done, it never scans again. But if the converter will not find any old save games, then it will not ask and its scanning the next start of KSP again. You will not even notice this if you have 10 or 20 saves/quicksaves, but if you have a lot it could take minutes!

I will fix this in the upcoming release which will also include support for CC+ contract ribbons. But CC+ has to be updated too, to get this to work.

Until then: reduce the number of save games and you will be fine.

Edited by Nereid

Share this post


Link to post
Share on other sites

I have updated FF to 0.8.13-1728

There are 7 new ribbons included:

  • 4 ribbons for records (altitude, distance, speed and depth)
  • The Deep Space ribbon should work now
  • 2 more research ribbons (2000 and 5000 research points; but maybe they get tuned later a little bit)

The most important change is an API for other plugins to award ribbons themself. You can find the code here: FinalFrontierAdapter

An example (included in the above link):

using System;
using UnityEngine;

namespace MyPlugin
{
   // KSPAddon.Startup.MainMenu makes sure we already have loaded all ingame textures
   // make sure once is set to true
   [KSPAddon(KSPAddon.Startup.MainMenu, true)]
   class Example : MonoBehaviour
   {
      // place your ribbon png files (size 120x32 pixel) here...
      private const String RIBBON_BASE = "MyPluginInGameData/Ribbons/";

      // UNIQUE (!) ribbon code
      private const String RIBBON_CODE = "KSP";

      private FinalFrontierAdapter adapter;

      // optional (if you want to award ribbons by their corresponding objects instead of ribbon code)
      private object KspRibbon;

      public void Start()
      {
         // just a log that this plugin has started
         Debug.Log("starting example");

         // create the adapter
         this.adapter = new FinalFrontierAdapter();
         // plugin to Final Frontier
         this.adapter.Plugin();

         // optional: log the version fo Final Frontier
         Debug.Log("Final Frontier version: "+adapter.GetVersion());

         if (this.adapter.IsInstalled()) // optional test
         {
            // register the ribbon with a unique code, a path to the png file and a name for a ribbon and an optional description
            // prestige and boolean attribute for a ribbon that has to be a first awarded ribbon are optional
            // IMPORTANT: do not register ribbons twice and not before all textures are loaded (not until GameScene LOADING is done)!
            KspRibbon = this.adapter.RegisterRibbon(
               RIBBON_CODE,                                                        // unique ribbon code
               RIBBON_BASE + "SpaceProgram",                                       // path to ribbon png file
               "Space Program Ribbon",                                             // name of ribbon
               "Awarded to every applicant that joines the kerbal space program"   // description (optional)
              );
         }

         // example usage:
         // ok, we want to award this ribbon to every applicant that enters the space program for real duties;
         // see callback below
         GameEvents.OnCrewmemberHired.Add(this.OnCrewmemberHired);
         
         // example usage:
         // everytime a vessel is recovered, we want to log some statistical data of the crew
         // see callback below
         GameEvents.onVesselRecovered.Add(this.OnVesselRecovered);
      }

      // callback for new crew member hired
      private void OnCrewmemberHired(ProtoCrewMember kerbal, int value)
      {
         Debug.Log("applicant " + kerbal.name+ " will receive the KSP ribbon");
         //
         // now we want to award the KSP ribbon
         this.adapter.AwardRibbonToKerbal(RIBBON_CODE, kerbal);
         // an alternative to award the ribbon:
         //this.adapter.AwardRibbonToKerbal(KspRibbon, kerbal);
      }

      // callback for vessel recovered
      private void OnVesselRecovered(ProtoVessel vessel)
      {
         // its better to be safe than sorry
         if (vessel == null) return;
         //
         // log crew statistics (not really useful)
         foreach (ProtoCrewMember kerbal in vessel.GetVesselCrew())
         {
            Debug.Log("crew member " + kerbal.name + " total missions: " + adapter.GetMissionsFlownForKerbal(kerbal)); // without the current one
            Debug.Log("crew member " + kerbal.name + " research points: " + adapter.GetResearchForKerbal(kerbal));
            Debug.Log("crew member " + kerbal.name + " dockings: " + adapter.GetDockingsForKerbal(kerbal));
            Debug.Log("crew member " + kerbal.name + " contracts complteted: " + adapter.GetContractsCompletedForKerbal(kerbal));
         }
      }
   }
}

 

Edited by Nereid

Share this post


Link to post
Share on other sites
On Freitag, 11. Dezember 2015 at 11:35 AM, blu3wolf said:

So I just got Jeb out to a solar orbit for the first time on this career save. Just barely faster than kerbin, half a meter a second slower at perikee and we would have stayed in kerbin orbit.

Jeb has earned some ribbons for getting to a solar orbit! This is wonderful, and really about a third of the reason I did the mission. However, he has earned a few that I think he has not actually 'earned' yet. Specifically, he has been given the First Closer Solar Orbit Ribbon, and the First Sun Atmosphere Ribbon also.

Seeing as his current orbit is almost the same as Kerbin's, I have deemed him unworthy of these ribbons, and stripped them from him. Is there any way to prevent him getting them in the future (unless of course, he does actually get that close)?

If a ribbon is broken, just delete the corresponding png-file in the Ribbons folder.

I will take a look what could cause this. The "First Closer Solar Orbit" gave me already some headaches.

EDIT: I cannot reproduce this. If anybody knows how to reproduce this please let me know or send me a quicksave just before the ribbons are awarded.

Edited by Nereid

Share this post


Link to post
Share on other sites

how do I get the ribbons when I post? I've seen it lots of times.

                                                                                        

Share this post


Link to post
Share on other sites

The ribbons in my post above, I uploaded to the web to better illustrate my point. I got them from the installed mod folder in KSP.

Share this post


Link to post
Share on other sites
On 17.12.2015 at 9:27 AM, Araym said:

I'll add the third option:

Add an option to add custom ribbons :P (add a +1 in this vote)


I have added a feature for user defined custom ribbons or ribbon packs in 0.9.1. I will upload it later this day. An example for a ribbon pack can be found here ExampleRibbonPack.zip.

All you have to do, is add a file called "FinalFrontierCustomRibbons.cfg" anywhere in the GameDataFolder (preferably in "GameData/RibbonPacks/FooRibbonpack").

The file should content something like this:


# Final Frontier Ribbon Pack 
#
# Syntax of file:
# ---------------
# NAME:<name of ribbon pack>
# FOLDER:<folder containing ribbons>
# BASE:<base for ribbon IDs (optional, default: 0)>
# <ribbon ID>:<filename without suffix>:<name of ribbon>:<description>[:<prestige (defaults to ID)>]
# <ribbon ID>:<filename without suffix>:<name of ribbon>:<description>[:<prestige (defaults to ID)>]
# <ribbon ID>:<filename without suffix>:<name of ribbon>:<description>[:<prestige (defaults to ID)>]
# [...]
#
# Do not use any <Ribbon ID> twice even its is used by another ribbon pack.
#
# If a base for this ribbon pack is set, all IDs are offsets from this base. If a ribbon gets ID 17 and the BASE is set to 7000, the used ID is 7017.
#
# Do not use IDs below 1001!
#

NAME:Example Ribbon Pack
FOLDER:Ribbons
BASE:1000
1:CustomPack1001:Custom:A user defined custom ribbon
2:CustomPack1002:Second:A user defined custom ribbon with prestige of 17000:17000
3:CustomPack1003:Third:Another user defined custom ribbon
4:CustomPack1004:Custom 4:Another user defined custom ribbon
5:CustomPack1005:Custom 5:Another user defined custom ribbon
6:CustomPack1006:Custom 6:Another user defined custom ribbon
7:CustomPack1007:Custom 7:Another user defined custom ribbon
8:CustomPack1008:Custom 8:Another user defined custom ribbon
9:CustomPack1009:Custom 9:Another user defined custom ribbon
10:CustomPack1010:Custom 10:Another user defined custom ribbon

All you have to do is to place the ribbon file (in this example the first file is called CustomPack1001.png) in the correct folder (GameData/RibbonPacks/FooRibbonpack/Ribbons) in this example.

Any ID must be greater than 1000 and must not used twice (in any of all packs).

 

Edited by Nereid

Share this post


Link to post
Share on other sites

Oh-Oh-Oh

I missed that in all this time *_*

*Araym goes to experiment*

Share this post


Link to post
Share on other sites
12 hours ago, Nereid said:

I have added a feature for user defined custom ribbons or ribbon packs in 0.9.1. I will upload it later this day. An example for a ribbon pack can be found here ExampleRibbonPack.zip.

All you have to do, is add a file called "FinalFrontierCustomRibbons.cfg" anywhere in the GameDataFolder (preferably in "GameData/RibbonPacks/FooRibbonpack").

The file should content something like this:


# Final Frontier Ribbon Pack 
#
# Syntax of file:
# ---------------
# NAME:<name of ribbon pack>
# FOLDER:<folder containing ribbons>
# BASE:<base for ribbon IDs (optional, default: 0)>
# <ribbon ID>:<filename without suffix>:<name of ribbon>:<description>[:<prestige (defaults to ID)>]
# <ribbon ID>:<filename without suffix>:<name of ribbon>:<description>[:<prestige (defaults to ID)>]
# <ribbon ID>:<filename without suffix>:<name of ribbon>:<description>[:<prestige (defaults to ID)>]
# [...]
#
# Do not use any <Ribbon ID> twice even its is used by another ribbon pack.
#
# If a base for this ribbon pack is set, all IDs are offsets from this base. If a ribbon gets ID 17 and the BASE is set to 7000, the used ID is 7017.
#
# Do not use IDs below 1001!
#

NAME:Example Ribbon Pack
FOLDER:Ribbons
BASE:1000
1:CustomPack1001:Custom:A user defined custom ribbon
2:CustomPack1002:Second:A user defined custom ribbon with prestige of 17000:17000
3:CustomPack1003:Third:Another user defined custom ribbon
4:CustomPack1004:Custom 4:Another user defined custom ribbon
5:CustomPack1005:Custom 5:Another user defined custom ribbon
6:CustomPack1006:Custom 6:Another user defined custom ribbon
7:CustomPack1007:Custom 7:Another user defined custom ribbon
8:CustomPack1008:Custom 8:Another user defined custom ribbon
9:CustomPack1009:Custom 9:Another user defined custom ribbon
10:CustomPack1010:Custom 10:Another user defined custom ribbon

All you have to do is to place the ribbon file (in this example the first file is called CustomPack1001.png) in the correct folder (GameData/RibbonPacks/FooRibbonpack/Ribbons) in this example.

Any ID must be greater than 1000 and must not used twice (in any of all packs).

 

Tested for my first series (the "KerbFleet" - StarTrek-alike series also already shown here, pages ago) and IT WORKS LIKE A CHARM!!! :D

And that was just a "small part" of my ideas I had (it was limited just by the 20 custom ribbons Final Frontier had previously):
Now I CAN DO THE REAL IDEA: a full series with ALL the major army forces specializations.

I'm italian, so my ideas will be take across the world, but a lot will resemble, by analogies with NASA choices:

- Air Force (air)
- Army (ground)
- Navy (sea)
- Coast Guard
- Air Navy (because I know, in some nations that it's considered a sort of whole "different" army pilot type :P)
- maybe something like the USA's Marines (or italian "San Marco", as I'm italian)??? KFMK (Kerbal Fleet Marine Korp)???

... and obviously, now, i could be able to do ALL the ranks (from simple "private" to "5 star General" and equivalent in all the branches)
I'm accepting ideas for names and branches (p.m. me if anyone like give to me any one)
 

Share this post


Link to post
Share on other sites
On Montag, 4. Januar 2016 at 7:10 AM, skykooler said:

Is there a ribbon for "First kerbal to die and come back to life" in a game where crews respawn?

No. Personally I don't like such kind of ribbons. But if someone else wants it, I will give it a try.
 

Share this post


Link to post
Share on other sites
2 hours ago, Nereid said:

No. Personally I don't like such kind of ribbons. But if someone else wants it, I will give it a try.
 

Perhaps a "Lost and Found" ribbon for that particular case. ;) 

Share this post


Link to post
Share on other sites
1 hour ago, Snarfster said:

Perhaps a "Lost and Found" ribbon for that particular case. ;)

Ok. Now: Can anybody tell me, how to "respawn" a kerbal to test this? Do I just have to wait for a dead kerbal to come back?
 

Share this post


Link to post
Share on other sites

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.