Jump to content

dsonbill

Members
  • Posts

    169
  • Joined

  • Last visited

Everything posted by dsonbill

  1. New Update! Bullet effects are kind of working! I think things like the vulcan's effects might still be broken, but I need to do more research to really understand why my latest test failed. Any way, the new video, with successful test results
  2. It seems a bit funky, but I only did some preliminary testing - very fun though. I already kind of know what I need to do to fix it, though. As another note, missiles and explosions are totally broken, and I may just be maintaining a fork of BahaTurret.dll - I'll let everyone know what happens soon. In the mean time, I'm going to work on adding control locks for the ai system - this will fix guard mode and controlling of other player's guns in spectate mode. This will, however, reintroduce the requirement of a server plugin.
  3. I have no idea! Also, thanks to DMP magic, this no longer requires a DMP server plugin.
  4. I'll cite this as my inspiration. Though Unknown601 is the one who told me I should just do it I'll just leave this here...
  5. PLEASE GO TO JEDIMINER'S THREAD FOR AN UPDATED VERSION OF THIS. THIS VERSION WILL NO LONGER BE UPDATED. GO HERE: http://forum.kerbalspaceprogram.com/threads/130464-WIP-1-0-4-BDArmoury-DMP-Add-on ORIGINAL VERSION BELOW Source: https://github.com/dsonbill/BDDMP # License is CC0 - Public Domain BDA Modified Fork: https://github.com/dsonbill/BDArmory/tree/hit-manager # License is CC-BY-SA. Source has been modified. Program by BahamutoD. This fork is not endorsed by the original mod authors. The early stages... Effect positions are now correct! Effects and damage now obey the temporal laws of DMP physics!
  6. Yes, I'm sure there are people like you who will consider bugs that pop up every time you play the game and make you want to turn it off "minor". Squad does too, which is why the control lock issue hasn't been fixed. Also, go ahead and list what you consider "high and critical windows bugs". I'd love to see what you actually consider game-breaking.
  7. Did I say the Linux version "is not working"? No, did not. I never said "the entire thing does not work". Don't put words in my mouth just for the sake of argument. Better yet, don't do it at all. There are many bugs with the linux version, but these are the biggest: Broken control locks Losing power doesn't stop reaction wheels from working (due to above) Numpad doesn't work at all Camera stutter when panning Right-click becomes hit-and-miss at random Honestly, I shouldn't have to list anything. You can go on the bug tracker and find many examples of bugs that only occur in the linux version.
  8. Except you playing with a bunch of broken mods doesn't somehow make the problems of stock better. Bugs like this game has (especially on the linux version) are simply not acceptable for a release game. Think about it - you're playing a game that you can't even save on. You really think that is an acceptable release quality? Just because *you* can deal with the game being a piece of crap doesn't mean other people *who are paying good money for it* should have to. Especially when they're paying nearly $50 for said broken-ass game, unlike those of us who have had it for a while - we payed at the least ~$12, at the most ~$20. They are paying full price for this game. Full price. Keep that in mind. KSP is no longer in early release - this is supposed to be a completed product, not broken garbage.
  9. Yes and yes. People are free to fork(make their own repo) or clone(download code), compile, and distribute compiled objects of the source code with absolutely no changes. This is a basic right you have with the software.
  10. It's not quite that simple. There are a few ways I can solve this, though. Just know I'm taking a look at it.
  11. I don't think they were trying to be rude; just giving their input
  12. Please, don't try to discourage people from forking. While me and RockyTV will probably continue to work out of Godarklight/DarkMultiPlayer, we want people to fork DMP. Maybe some people in the community think otherwise, but forking has classically been essential to open-source, libre software. Balkanization is almost never a problem, as one dominant version always takes precedence - usually the original repo. Darklight himself has been waiting (READ: begging) for another dominant fork to appear and take over, but this has not happened yet. He's expressed this opinion as far back as when I first got on the project. Also, Squad is entirely free to do so. The code is under a license which allows you to use it in closed-source, commercial projects. At least me and Darklight also wanted to go public domain with DMP when we switched licenses, which would have allowed people to use it in commercial projects without even being required to provide source code. Having multiple versions of DMP is a good thing. We are not a closed-source commercial project with a restrictive license, we do not accept donations (nor will we accept them any time in the near future), we do not have funding, and we are not making a product. This project was made for fun, and if people can have fun with their own forked, hacked-up versions of DMP, then that is exactly what we want to happen. Finally, remember - there are already 65 forks of DMP out there
  13. Also, I wish people would understand the difference between lag and bugs. Because, you know, someone who knows what a 2400 baud modem feels like should probably understand at least that much. EDIT: Man, just look at that 4 FPS action!
  14. I'll never understand why people feel the need to say stuff like this :/
  15. @BahamutoD: Do you have/would be able to compile a simple list of things that need to be synced between clients for DMP, and the name of their respective .cs files? I took a *very* brief look at the git repo, but I was wondering if you already had this information on hand. If the information can be found in the thread somewhere, I'll go and search for it. Actually, I'll do that right now If I'm asking for too much information, feel free to let me know and I'll just start digging through BDArmory. I'm also in #DMP right now if you'd rather talk that way. EDIT: Is it basically just the "can't update other player's crafts" problem? I think I might be able to work around this...
  16. Well, there's nothing wrong with MonoDevelop. It's a decent program that does it's job. The problem is that once you really get involved in modding the game, you generally completely stop playing it. At least, that has been the effect for all of us who contribute to DMP; out of Darklight, RockyTV, VITAS, and myself, none of us really play KSP anymore. I know RockyTV is still doing some work, and I'll be doing some stuff in the upcoming months - so DMP isn't completely dead/inactive. Whether or not this work gets continued in the main repo or in a fork, well only time will tell. To clarify a bit, all of RockyTV's work and improvements will probably go into unstable/master, so you will get these updates like any other. This is assuming RockyTV continues to work on DMP, which I am inclined to believe is true. The work that I'm planning to do will mainly involve GUI code improvements/new features/very obvious bugs/coding horror reversal. RockyTV has been working on immediate issues with the 1.0 release and some bugs with scenario modules. I'm not sure what he plans to work on next. While I haven't discussed this with darklight yet (I'm just coming up with it now), there are a few possibilities we have from here, with darklight taking a (temporary?) bow: We can start a new fork of DMP. Pros: New fork? We screw over Darklight and steal all his work. Screw that guy anyway, who even cares about 'em? Cons: Some. Darklight wouldn't really care though, incase you didn't realise the last line was a joke Please make your own fork! Go for it! Hack it up! Do... stuff! We can start a new set of branches of DMP in Darklight's repo. Pros: Some. Cons: Not a whole lot, but we need to make some changes to the updater/build bot or something, and the current system requires Darklight to keep it going. We can continue to code into Unstable/Master Pros: Nothing changes for you. Cons: We code into Unstable/Master, and the current system requires Darklight to keep it going. We also diverge from the current codebase (maybe only slightly though?) in the main repo, but the git history is always there. In the end, we will probably be picking the last option, unless RockyTV/someone else wants to start a new fork/Darklight wants us to move on XD Anyone is free to do so, and several have been in the works before, but none have come to fruition as far as I'm aware. I hope this calms the minds of anyone who might be worried about the future of DMP. As Darklight said, there hasn't been a great deal of work done on it for a while (I know I sure haven't contributed anything in a long time), so nothing is really changing with the state of the mod. And of course, anyone is free to make pull requests or suggest features in the github issue tracker. However, I would suggest discussing your ideas for contribution/bug fixes with us in #DMP/the issue tracker first so we can make sure your pull request will be accepted to the main repo Finally, again, anyone can feel free to fork the mod and start your own version/whatever of DMP. You can even use the code in commercial, closed-source projects, provided the actual DMP code used is still open-source
  17. WARNING: This can be incredibly dangerous; don't do something stupid with this - always think carefully about what you are putting in the shell folder, especially on Linux! DMPExtendedPlugins is a plugin for DarkMultiPlayer server. It adds scripted admin commands to DMPServer via batch (windows), shell/bash/whatever (linux, hopefully - untested. someone take a look at the code and tell me if it's going to work, or just try it), and IronPython (Python 2.7, included binaries). IronPython is licensed under the Apache License, Version 2.0 http://opensource.org/licenses/apache2.0.php The source for IronPython can be found at http://ironpython.net/ DMPScriptedCommands is released under CC0 1.0 https://creativecommons.org/publicdomain/zero/1.0/ The source for DMPScriptedCommands can be found at http://pastebin.com/B6vJyK62 Installation & Download 1. Download DMPExtendedPlugins, bundled with IronPython: https://mega.co.nz/#!i9VkgTRY!0CwvSsONNhkrblyb2fJp7zvim9yK2h6_ZUCxX1Qg9Mc 2. Extract all contents to DMPServer directory 3. Run DMPServer, it will make the necessary directories in Plugins 4. Put batch/shell scripts in Plugins/shell 5. Put python scripts in Plugins/py List of Available DMP Python Functions/Methods/Whathaveyou DarkLog.Normal(str) DarkLog.Debug(srt) DarkLog.Error(srt) DarkLog.Fatal(str) MessageReader/Writer Clients # Clients is ClientHandler DarkMultiPlayerCommon # Must instantiate Common class, and probably enums too OnRegister function # See Example in Plugins/py Execute function # See Example in Plugins/py Ability to register script or just execute when loaded, leading to whatever possibility you can think of using it for Basic DMPPlugin interface functions; can't register it's own message types yet, because this is still "server-side only" Will soon have other fancy functions to make your modding/scripting life easier with DMP Want another function delegated to scripts? Ask in the thread! Basic Example Python Script description = "A simple test script" #register_command = False #Default is True. If set to False, Execute will be called as soon as the script is read. call_onregister = True #Default is False. If set to True, runs OnRegister once upon registering command. call_onmessagereceived = True #Default is False. #call_onclientconnect = True #Default is False. #call_onclientdisconnect = True #Default is False. #call_onclientauthenticated = True #Default is False. #call_onupdate = True #Default is False. #OnRegister is ignored if register_command is set to False #OnRegister must take a string arg, because I'm very hacky def OnRegister(compliance): # OnRegister Test DarkLog.Debug("Called OnRegister!") #Do heavy initialization here for commands. def Execute(args): # Logging Test DarkLog.Normal("Logging from Python! [args] is " + args) DarkLog.Normal("Messaging Testing") DarkLog.Error("Messaging Testing") DarkLog.Debug("Messaging Testing") DarkLog.Fatal("Messaging Testing") # Common Access Test comn = Common() DarkLog.Debug("Python Common Access Test: DMP " + comn.PROGRAM_VERSION) # Clients Access Test clients = Clients() DarkLog.Debug("Python ClientHandler Access Test: Active Clients: " + str(clients.GetActiveClientCount())) #DMP Plugin Interface def OnUpdate(): pass def OnClientConnect(client): DarkLog.Debug("[ExamplePluginTest] " + client.playerName + " connected with the server") def OnClientAuthenticated(client): DarkLog.Debug("[ExamplePluginTest] " + client.playerName + " authenticated with the server") def OnClientDisconnect(client): DarkLog.Debug("[ExamplePluginTest] " + client.playerName + " disconnected from the server") def OnMessageReceived(client, message): DarkLog.Debug("[ExamplePluginTest] " + "Got a " + str(message.type) + " message from " + client.playerName) DMPServer Example Output: [19:53:36][DEBUG] : Loading settings... [19:53:36][DEBUG] : System.IO compression works: True, test time: 6 ms. [19:53:36][DEBUG] : Loading plugins! [19:53:36][DEBUG] : Loaded C:\Users\Lance\Desktop\DMPServer\Plugins\DMPScriptedC ommands.dll [19:53:36][DEBUG] : Loading plugin: DMPScriptedCommands.ShellCommands [19:53:36][INFO] : [ScriptedCommands|ShellCommands] Registered Command: test [19:53:36][INFO] : [ScriptedCommands|ShellCommands] Registered Command: test1 [19:53:36][INFO] : [ScriptedCommands|ShellCommands] Registered Command: test2 [19:53:36][INFO] : [ScriptedCommands|ShellCommands] Registered Command: test3 [19:53:36][DEBUG] : Loaded plugin: DMPScriptedCommands.ShellCommands [19:53:36][DEBUG] : Loading plugin: DMPScriptedCommands.PyCommands [19:53:37][INFO] : [ScriptedCommands|PyCommands] Registered Command: pytest [19:53:37][INFO] : [ScriptedCommands|PyCommands] Registered Command: pytest2 [19:53:37][DEBUG] : Loaded plugin: DMPScriptedCommands.PyCommands [19:53:37][DEBUG] : Done! [19:53:37][INFO] : Starting DMPServer v0.2.1.2, protocol 37 [19:53:37][INFO] : Loading universe... [19:53:37][INFO] : Starting SUBSPACE server on port 6703... [19:53:37][INFO] : Removed 0 debris [19:53:38][INFO] : Ready! /pytest2 [19:54:02][INFO] : Command input: /pytest2 [19:54:02][INFO] : Logging from Python! [args] is [19:54:02][INFO] : Messaging Testing [19:54:02][ERROR] : Messaging Testing [19:54:02][DEBUG] : Messaging Testing [19:54:02][FATAL] : Messaging Testing [19:54:02][ERROR] : [PYTHON COMMAND ERROR] index out of range: 0 /pytest2 arg1 asd;lajk [19:54:09][INFO] : Command input: /pytest2 arg1 asd;lajk [19:54:09][INFO] : Logging from Python! [args] is arg1 asd;lajk [19:54:09][INFO] : Messaging Testing [19:54:09][ERROR] : Messaging Testing [19:54:09][DEBUG] : Messaging Testing [19:54:09][FATAL] : Messaging Testing [19:54:09][INFO] : Arg 1: arg1 Arg 2: asd;lajk /test [19:54:38][INFO] : Command input: /test /reloadPython [19:54:42][INFO] : Command input: /reloadPython [19:54:42][INFO] : [ScriptedCommands|PyCommands] Registered Command: pytest [19:54:42][INFO] : [ScriptedCommands|PyCommands] Registered Command: pytest2 [19:54:43][INFO] : [Shell Output]========================[Shell Output] Super epic results! And here's the second line! Waiting for 5 seconds, press a key to continue ..0 Output after sleeping 5 seconds! /pytest2 arg1 asd;laj [19:54:55][INFO] : Command input: /pytest2 arg1 asd;laj [19:54:55][INFO] : Logging from Python! [args] is arg1 asd;laj [19:54:55][INFO] : Messaging Testing [19:54:55][ERROR] : Messaging Testing [19:54:55][DEBUG] : Messaging Testing [19:54:55][FATAL] : Messaging Testing [19:54:55][INFO] : Arg 1: arg1 Arg 2: asd;laj [19:54:55][INFO] : File Changed /help [19:55:06][INFO] : Command input: /help [19:55:06][INFO] : exit - Shuts down the server [19:55:06][INFO] : quit - Shuts down the server [19:55:06][INFO] : shutdown - Shuts down the server [19:55:06][INFO] : restart - Restarts the server [19:55:06][INFO] : kick - Kicks a player from the server [19:55:06][INFO] : ban - Bans a player from the server [19:55:06][INFO] : banip - Bans an IP Address from the server [19:55:06][INFO] : bankey - Bans a Guid from the server [19:55:06][INFO] : pm - Sends a message to a player [19:55:06][INFO] : admin - Sets a player as admin/removes admin from t he player [19:55:06][INFO] : whitelist - Change the server whitelist [19:55:06][INFO] : test - Shell Command [19:55:06][INFO] : test1 - Shell Command [19:55:06][INFO] : test2 - Shell Command [19:55:06][INFO] : test3 - Shell Command [19:55:06][INFO] : reloadShell - Reloads the shell commands from scom [19:55:06][INFO] : pytest - Python Command [19:55:06][INFO] : pytest2 - A simple test script [19:55:06][INFO] : reloadPython - Reloads the python commands from pycom [19:55:06][INFO] : help - Displays this help [19:55:06][INFO] : say - Broadcasts a message to clients [19:55:06][INFO] : dekessler - Clears out debris from the server [19:55:06][INFO] : nukeksc - Clears ALL vessels from KSC and the Runway [19:55:06][INFO] : listclients - Lists connected clients [19:55:06][INFO] : countclients - Counts connected clients [19:55:06][INFO] : connectionstats - Displays network traffic usage #Contents of Plugins/scom/test.cmd @echo off echo Super epic results! echo And here's the second line! timeout 5 echo Output after sleeping 5 seconds! #Contents of Plugins/pycom/pytest.py description = "A simple test script" def Execute(args): # Logging Test DarkLog.Normal("Logging from Python! [args] is " + args) DarkLog.Normal("Messaging Testing") DarkLog.Error("Messaging Testing") DarkLog.Debug("Messaging Testing") DarkLog.Fatal("Messaging Testing") # Args test arg_list = args.split() DarkLog.Normal("Arg 1: " + arg_list[0] + " Arg 2: " + arg_list[1]) DarkLog.Normal("File Changed") Changelog ----------------- The scripts can now be run automatically as part of plugin load, so you can write complete plugins in Python as long as what you need is there. Since the scripts run in their own threads, you can just run indefinitely - just be careful about what you do, obviously. I believe the scripts need access to more functions. Changed name to DMPExtendedPlugins, as per above functionality. Added quite a few functions/data stuffs. Changed pycom and scom to py and shell, respectively, to reflect the more general nature of the scripts. Added the basic DMPPlugin Interface. Prevent everything from dying upon failed scriptstuffs.
  18. Steve Madding/Erendrake/kOS Team: I'm playing with kOS code, and I've come across the FunctionManager. Now, I'd like to add my own functions to kOS, but it seems I also have to add the opcode directly, and I'm not exactly sure how to inject that without totally modifying kOS. I'm going to try some more reflection, but if anyone would like to point me in a more directed... direction, I would appreciate it Feel free to point me to a place where this is already explained, or to just look for it myself. I understand that my inquiries can sometimes be a bit... daunting? EDIT: Well, I've noticed (right after posting, as is usual) how you did it in RemoteTechInterpreter, and I'm guessing this is the way it's to be done for now? I don't have my own interpreter set up for the project I'm doing, but it shouldn't be too hard to pull off.
  19. Mass Accelerator: http://imgur.com/TXZCKO2,qO1G2ZN Relay Vessel: http://i.imgur.com/gz70zKa.jpg Load Path: http://i.imgur.com/ozDAIJY.png Flight pics: http://imgur.com/bFD2dJD,ZvzH4xk I'm planning on cleaning up this post in a little while. If I don't, just know that it's pretty awesome.
  20. I kind of figured as much, given that I initially tried to use the release build with an assembly built from kOS' master, thinking "well, it'll be similar enough for testing, right?" Holy wrong! I'm fully prepared for it to change often! I kind of expected it getting into kOS stuff, though not as much as I saw. I realize now I came at kind of a bad time (and also a good time, as resizing isn't at all clean on 0.15.5 from what I can tell). I'll probably be a bit slower than my initial work for updates, of course, but I'll be sure to keep a close eye on the activity going on in the kOS repo up until the next kOS release. Thanks for the heads up!
  21. erendrake: In case you miss it, I've released a preliminary version of my RPM <--> kOS interface here. Feel free to tell me how horrible it is I plan to support some more advanced features, but for now it's just a console and a selector really.
  22. kOSPropMonitor The mod both kOS and RPM team are certain doesn't exist. FEATURES: kOS Processor Selector! kOS Processor Power Toggle! IVA Keyboard Input! Settable Flags with Settable Labels! Blinky Cursor + Green Text + Completely Customizable Text Colors + Completely Customizable Everything! Now Multi-Monitor Independent States! New Layout Saves Space! Arrows and Enter/Cancel Implemented! Colored Terminal! Removable Flag Panel! Button Function Delegates! BUTTONS: Next: kOS Processor Selector Prev: kOS Processor Selector STBY: Toggle Processor Power O: Connect Keyboard to Processor All Other Buttons: Scripts can use every single other button on the device! API Examples (Out Of Date for 1.6.1.37413+): //Set Shortcuts set buttons to addons:kpm:buttons. set flags to addons:kpm:flags. //Get Monitor Count set monitors to addons:kpm:getmonitorcount(). //Set Current Monitor - Separare for Buttons and Flags set buttons:currentmonitor to 0. set flags:currentmonitor to 0. //Get Monitor GUID set id to addons:kpm:getguid(0). // OR set id to addons:kpm:getguidshort(0). //Get Monitor Index From GUID - Works for Whole GUID and Short GUID set monindex to addons:kpm:getindexof(id). //If GETINDEXOF Returns -1, GUID Not Found. //Get Button State buttons:getstate(0). //Set Button State buttons:setstate(0, false). // -1 is enterButtonState // -2 is cancelButtonState // -3 is upButtonState // -4 is downButtonState // -5 is leftButtonState // -6 is rightButtonState // 0+ is Other Buttons //Get Button Label buttons:getlabel(0). //Set Button Label buttons:setlabel(0, "BUTTN"). // Only 0+ is Valid //Get Flag State flags:getstate(0). //Set Flag State flags:setstate(0, false). // Only 0+ is Valid //Get Flag Label flags:getlabel(0). //Set Flag Label flags:setlabel(0, "ABRT"). // Only 0+ is Valid Config Node Fields: Known Bugs: DOWNLOAD FROM SPACEDOCK **ALWAYS DELETE THE OLD VERSION COMPLETELY BEFORE UPDATING** Source: kOSPropMonitor on GitHub License: GNU GPL V.3 (Some portions of the source come straight from kOS, and are the works of the kOS team) People who have contributed to this in some way, shape or form (even if they don't know it) Erendrake - for making kOS what it is today. Without him, this project would probably not exist. Mihara - for making JSI RasterPropMonitor. Godarklight - C# evil ninja hacker, he will eat your code! The kOS Team - kOS is just nuts, even more so after looking through the source and considering the fact that it works so damned well. Amazing job guys! karamazovnew - Integrated BasicMFD Layout concept
×
×
  • Create New...