-
Posts
2,475 -
Joined
-
Last visited
Content Type
Profiles
Forums
Developer Articles
KSP2 Release Notes
Everything posted by blizzy78
-
Can we nominate mods to the Daily Kerbal?
blizzy78 replied to czokletmuss's topic in KSP1 Discussion
Steam Gauges was already mentioned in a previous KSP Weekly. -
I have seen this quite a few times when using the Stretchy Tanks mod and resizing multiple symmetry-attached tanks at once. It seems to confuse Engineer so much that it refuses to work anymore. As 5thHorseman describes, there is no other way than to restart KSP completely, or use another mod to display delta-V (MechJeb, for example.)
-
http://forum.kerbalspaceprogram.com/threads/24858-Old-versions-of-KSP-(some-versions-still-wanted!)
-
It may look like that at first glance, but it actually isn't that simple. For example, consider the following - simplified - snippet that returns multiple achievements, one for each body in the system: public IEnumerable<Achievement> getAchievements() { List<Achievement> achievements = new List<Achievement>(); foreach (Body body in Body.ALL_LANDABLE)) { achievements.Add(new BodyLanding(body, "One Small Step - " + body.name)); } return achievements; } In this example, the BodyLanding class can be used over and over again, with a different body parameter resulting in a different achievement requirement (the body being landed on.) I don't quite see how to achieve that degree of flexibility using a declarative approach.
-
[0.24.2] Achievements 1.6.3 - Earn 136 achievements while playing
blizzy78 replied to blizzy78's topic in KSP1 Mod Releases
Achievements Plugin 1.4.6 is now available for download. This release now opens up the API to other mod authors who may wish to contribute their own achievements. Update note: When updating the plugin, make sure to keep the achievements.dat file in the plugin's folder. If you delete it, all your earned achievements are lost. -
Hi, some of you may know that I've made an Achievements Plugin. I figured that with now over a hundred achievements, maybe other mod authors might want to chime in and contribute new achievements related to their mods. I have now opened up the API of the Achievements Plugin to allow just that. Requirements To contribute new achievements, you only need the Achievements.dll from the plugin, starting with version 1.4.6. You need to reference that in your project. Note that you probably don't want to make the Achievements.dll a direct dependency of your mod's DLL. Because of that, it is best to start a new DLL project that has dependencies on both your mod's DLL and the Achievements.dll. If the player doesn't have the Achievements Plugin installed, only your achievements DLL will fail to load, but your base mod DLL will run fine. Code To add a new achievement, you need to write a bit of code. Don't worry, it's not that much. Most of it goes into checking for achievement requirements, such as "is landed" or "is in orbit", and things like that. Please consider the following complete and annotated example. It should readily compile and be usable in the game. Note: The following example source code is hereby placed into the public domain, for obvious reasons. Feel free to use it as you wish. I do not reserve any rights to it whatsoever. using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; // This is an achievements factory. It is used to create actual achievement instances and to provide // information about the category of those achievements. // // Achievements factory classes are searched for in all assemblies. When found, an achievements factory // is instantiated automatically using its no-args constructor. // // You can have as many achievements factories as you like, but in general, you need at least one per // category. class NorthPoleFactory : AchievementFactory { // Returns the actual achievements. public IEnumerable<Achievement> getAchievements() { return new Achievement[] { new NorthPole() }; } // Returns the category of the achievements returned by getAchievements(). public Category getCategory() { return Category.LANDING; } } // An actual achievement. // // While achievements must only implement the Achievement interface, it is best to subclass from // the AchievementBase class. This class provides several helper functions to register event // callbacks. // // An achievement is basically a finite state machine. The main method being used is check(), which // will be invoked in a specific interval. In this method, you should check for any requirements // that your achievement has. If check() returns true, this means that the player has earned the // achievement, and the method will never be invoked again. As long as it returns false, the method // will be invoked again at a later time. // // Other interesting classes to look at (check the Achievement Plugin's source code): // // - Body (celestial bodies, also try Vessel.getCurrentBody() from Extensions) // - Category (achievement categories) // - CountingAchievement (base class for achievements that count up) // - Extensions (various extension methods) // - Location (surface locations) class NorthPole : AchievementBase { // You can register event callbacks in the constructor. Most of the time, this will be // registerOnVesselChange() to reset achievement state when the player changes the vessel // being actively controlled. // // See the AchievementBase class for other event handling methods. public NorthPole() { registerOnVesselChange(onVesselChange); } // While check() is invoked in specific intervals, update() will be invoked every frame. // You can use this method to check for achievement requirements, too. // // USE ONLY IF check() DOESN'T ABSOLUTELY MEET YOUR NEEDS. public override void update() { } // This is the main method to check for achievement requirements. If check() returns true, // this means that the player has earned the achievement, and check() will never be invoked again. // // vessel is the actively controlled vessel. Note that this can be null, for instance if the // player is in the tracking station. You should always check for null if you need the current // vessel. public override bool check(Vessel vessel) { return (vessel != null) && vessel.isOnSurface() && (vessel.horizontalSrfSpeed < 1d) && Location.KERBIN_NORTH_POLE.isAtLocation(vessel); } // The vessel change event callback that was registered in the constructor. private void onVesselChange(Vessel vessel) { // reset achievement state here } // Initialize achievement state from the achievements save file, as saved earlier in save(). // // node is a config node specific to this achievement. You can't accidentally interfere with // other achievements. public override void init(ConfigNode node) { } // Save achievement state to the achievements save file. State can be loaded again in init(). // // node is a config node specific to this achievement. You can't accidentally interfere with // other achievements. // // Note that the config node values "flight" and "time" are reserved. If you set them, they will // be overwritten. public override void save(ConfigNode node) { } // Returns this achievement's title. Keep short so that it fits into the "toast" texture. // Always use "Headline Style". public override string getTitle() { return "North Pole Landing"; } // Returns this achievement's text. Keep short (two lines of text) so that it fits into the // "toast" texture. public override string getText() { return "Land at Kerbin's north pole."; } // Returns this achievement's key. The key must be unique across all achievements. // // This key MUST NOT change once an achievement has been made public. It is used to check if // the player has already earned the achievement. If the key changes, the achievement will need to // be earned again by the player, which makes them unhappy. // // It is best to use some sort of ad-hoc categories, for example: landing.kerbin.surface.northPole public override string getKey() { return "landing.northPole"; } } For more example code, check out the source code of the builtin achievements. Title and Text Guidelines Titles should always use "Headline Style". Keep them rather short and memorable, preferably humorous, but related to the achievement and its text. If you can't come up with something neat, ask someone else! Most people will love to toss ideas at you. - Good example: I See What You Did There - Bad example: I see what you did there Achievement text must not exceed two lines of text, or it will be longer than the "toast" texture. Always check with the achievements list in the game to see if your text is short enough. Also, the text should not be too verbose. Try to keep the list of requirements short. You can leave out obvious requirements, even though your achievement code is checking for them. Spell out acronyms, such as "Kerbal Space Center" instead of "KSC". To keep the player immersed, do not use real-world names and phrases. Bad example: Send a probe on a Voyager mission. Note that the Sun's name is not Kerbol in the game, is is "Sun". - Good example: Land on the Kerbal Space Center runway from an altitude of at least 10000 m. - Bad example: Launch, get up to 10000 m, then land on the KSC runway, not crashing and no parts breaking off. Hidden Achievements Achievements are usually visible in the achievements list window, even if the player has not earned them yet. But you can "hide" an achievement, so that it remains hidden unless the player has earned it. After that, it will stay visible. Please use hiding of achievements only sparingly, if at all. It should remain reserved for special "surprise" achievements that are not obvious. For example, an achievement that is rewarded for extracting Kethane from the ground of another celestial body should not be hidden because the act of doing so is pretty obvious.
-
[0.24.2] Achievements 1.6.3 - Earn 136 achievements while playing
blizzy78 replied to blizzy78's topic in KSP1 Mod Releases
Well thank you, although it didn't bring much news for players I suppose. -
Did you try running the server as Administrator?
-
He's talking about exactly 6000 threads in this subforum. But who cares?
-
[0.24.2] Achievements 1.6.3 - Earn 136 achievements while playing
blizzy78 replied to blizzy78's topic in KSP1 Mod Releases
Achievements Plugin 1.4.5 is now available for download. You can now click on achievements in the list to see when they were earned, and with which vessel. Update note: When updating the plugin, make sure to keep the achievements.dat file in the plugin's folder. If you delete it, all your earned achievements are lost. -
Pulling Hair out ( not that i have much left)
blizzy78 replied to griffin247's topic in KSP1 Gameplay Questions and Tutorials
Please provide a screenshot. -
This does not answer OP's question. He specifically asked about crafts still being within physics range. So to answer that question, yes, SAS will work on all craft within physics range, regardless of being currently controlled or not.
-
[WEB] Online engine cluster calculator
blizzy78 replied to blizzy78's topic in KSP1 Tools and Applications
I have now found the culprit why the previous modifications made calculations much slower. It is actually quite simple: Increasing the number of spots where engines can be placed will increase the total number of permutations that will be considered. This is even more so if the number of spots in the center stack is increased. So this, coupled with the fact that more permutations are being considered now, drastically increased the total calculation time to get a result. As a kind of "solution", I have now changed the default number of center stack radial engines to be 0 maximum. I gather that most designs will be using booster stacks anyway, so center stack radial engines can often just get in the way when constructing the lifter. The result of the change is a dramatic increase of calculation speed, even with all engine packs enabled. Of course, you can always add radial engines to the center stack if you so desire. I have also done a few optimizations to the calculation to speed it up, but they won't really help much if there are many permutations to consider. In other news, you can now choose to only consider true radial engines for the radial engine spots. For example, if you choose to use only true radial engines for those spots, you will no longer get a result where you are advised to use a LV-T30 in such a spot. -
http://forum.kerbalspaceprogram.com/threads/12384-PART-0-22-Anatid-Robotics-MuMech-MechJeb-Autopilot-v2-1?p=763793&viewfull=1#post763793
-
do plugins take up as much space as some part packs?
blizzy78 replied to Helix935's topic in KSP1 Mods Discussions
It actually depends on how much memory a plugin would be using instead of the pure DLL size, but in general, I think it's safe to say that parts use WAY more memory than plugins, if only because of texture size. -
Command pod orientation inverts upon reload
blizzy78 replied to Greys's topic in KSP1 Mod Development
I had a similar funny thing yesterday: I was launching a rocket like usual, with MechJeb. Shortly after liftoff, the thing began to roll like crazy. Or so I thought: It rolled by exactly 180 degrees, then stopped, and went perfectly for the rest of the launch. There was a subassembly involved for the lifter, but I haven't investigated further. Also, I have the planets mod installed, but I really doubt that's causing problems there. Not that I have the source.... -
Well you have figured it out yourself. The fastest way is to burn fuel to decrease the synodic period below the orbital period. The cost-efficient way is to just wait one or more orbits. Or just don't start with nearly similar orbits to begin with. For example, have a station at 200-250 km, and bring visitor crafts to only 100. That will give you a nice low synodic period where you don't need to wait for as long.
-
Understanding the Delta-V formula.
blizzy78 replied to Rage097's topic in KSP1 Gameplay Questions and Tutorials
I think this should be your first visit: http://en.wikipedia.org/wiki/Natural_logarithm Other than that, if you don't really care what it is, it's just a function on your calculator. -
[0.24.2] Achievements 1.6.3 - Earn 136 achievements while playing
blizzy78 replied to blizzy78's topic in KSP1 Mod Releases
Thanks! Thanks, I had fun doing the graphic. It was the first time I did something serious with vector paths -
[0.24.2] Achievements 1.6.3 - Earn 136 achievements while playing
blizzy78 replied to blizzy78's topic in KSP1 Mod Releases
Achievements Plugin 1.4.4 is now available for download, with LOTS of new achievements related to Kragrathea's Planet Factory mod. Update note: When updating the plugin, make sure to keep the achievements.dat file in the plugin's folder. If you delete it, all your earned achievements are lost. -
[0.22-0.23.0] Payload Fraction Challenge
blizzy78 replied to mhoram's topic in KSP1 Challenges & Mission ideas
I've posted a screenshot of the editor in my 100 t entry, and yes, I did use MechJeb for the ascent -
It's not odd when you think about it: Scientists can do much more with an actual Goo return sample as compared to if only receiving some pictures and crew reports about it. On the other hand, a regular crew or EVA report is just that, a report.
-
That's because they're just simple counters between the dots.
-
Krag's Planet Factory Pre-release Thread
blizzy78 replied to Mr Shifty's topic in KSP1 Mod Development
I wonder why his first video looks like a slideshow. And the second video cannot be watched from Germany because of copyrighted music.