Jump to content

Parallax

Members
  • Posts

    237
  • Joined

  • Last visited

Posts posted by Parallax

  1. im trying out a craft + script from 1.05, i am getting an error on this line now for some reason:

     

    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).

     

     

    "failed to convert parameters"

     

    here is the rest of the script, unchanged from 1.0.5, any ideas what i need to change to make it work again?

     

    Spoiler
    
    SET TURN TO SHIP:PARTSTAGGED("TURN")[0].
    SET LEFTSTR TO SHIP:PARTSTAGGED("LEFTSTR")[0].
    SET RIGHTSTR TO SHIP:PARTSTAGGED("RIGHTSTR")[0].
    SET LEFT1 TO SHIP:PARTSTAGGED("LEFT1")[0].
    SET LEFT2 TO SHIP:PARTSTAGGED("LEFT2")[0].
    SET RIGHT1 TO SHIP:PARTSTAGGED("RIGHT1")[0].
    SET RIGHT2 TO SHIP:PARTSTAGGED("RIGHT2")[0].
    SET BAL2 TO SHIP:PARTSTAGGED("BAL2")[0].
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    UNTIL SHIP:ALTITUDE > 20000
    
    
    {
    
    
    LOCK STEERING TO Up + R(0,0,270).
    IF AG1 = 1
    UNTIL AG1 = 0
    
    {
    
    
    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    
    
    {
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    
    IF VERTICALSPEED < 0
    AND  + ALT:RADAR < 5.0
    
    
    SET SPEED1 TO 40 + 1*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET SPEED2 TO 80 + 1*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET ACCELERATION1 TO 100 + 1*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET ACCELERATION2 TO 200 + 2*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET TURNRATE TO 3 - 1.5*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RANGE1 TO 0 + 16*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RANGE2 TO 0 - 16*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET DELAY1 TO 0.16 + 0.030*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET DELAY2 TO 0.105 - 0.1*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET LEFT2MAX TO 0 + 25*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RIGHT2MIN TO - 25*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET BAL2MAX TO 0 + 15*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET BAL2MIN TO 0 - 15*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    TURN:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", TURNRATE).
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).
    
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", -35).
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", 20).
    
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", -70).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", LEFT2MAX).
    
    
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", -20).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", 35).
    
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", RIGHT2MIN).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", 70).
    
    
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", 60).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", RANGE2).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RANGE1).
    
    
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", 60).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", RANGE2).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RANGE1).
    
    
    BAL2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", BAL2MIN).
    BAL2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", BAL2MAX).
    
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    WAIT 0.1.
    right2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    
    WAIT DELAY1.
    
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    right2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    
    WAIT DELAY2.
    
    
    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    UNTIL VERTICALSPEED < 0
    AND  + ALT:RADAR < 5.0
    
    
    SET SPEED1 TO 40 + 1*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET SPEED2 TO 80 + 1*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET ACCELERATION1 TO 100 + 1*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET ACCELERATION2 TO 200 + 2*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET TURNRATE TO 3 - 1.5*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RANGE1 TO 0 + 22*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RANGE2 TO 0 - 22*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET DELAY1 TO 0.16 + 0.030*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET DELAY2 TO 0.105 - 0.1*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET LEFT2MAX TO 0 + 25*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RIGHT2MIN TO - 25*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET BAL2MAX TO 0 + 15*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET BAL2MIN TO 0 - 15*SHIP:CONTROL:PILOTMAINTHROTTLE.
    right1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    right2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    WAIT 0.1.
    left2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    rightSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    leftSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    
    WAIT DELAY1.
    
    rightSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    leftSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    
    right1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    right2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    left2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    
    
    WAIT DELAY2.
    
    
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    }.
    
    IF AG2 = 1
    UNTIL AG2 = 0
    
    {
    
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    IF + ALT:RADAR < 4.4
    
    {
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    SET SPEED1 TO 500 + 1500*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET SPEED2 TO 1000 + 3000*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET ACCELERATION1 TO 1000 + 2000*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET ACCELERATION2 TO 2000 + 4000*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET TURNRATE TO 6 - 1.5*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RANGE1 TO 0 + 20*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RANGE2 TO 0 - 20*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    SET RMAX1 TO 10 + 20*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RMAX2 TO 20 + 40*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET LMIN1 TO -10 - 20*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET LMIN2 TO -20 - 40*SHIP:CONTROL:PILOTMAINTHROTTLE.
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    TURN:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", TURNRATE).
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).
    
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).
    
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", RANGE2).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RANGE1).
    
    
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", RANGE2).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RANGE1).
    
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", LMIN1).
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", 10).
    
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", LMIN2).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX",20).
    
    
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", -10).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RMAX1).
    
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", -20).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RMAX2).
    
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    
    WAIT .125.
    
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    
    WAIT .125.
    
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    
    WAIT .125.
    
    
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    
    WAIT .125.
    
    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    }.
    }.
    }.
    }.

     

     

  2. Im just going to post all my robotics stuff in one thread to keep from cluttering the forums, and update the title when i post something new...

     

    Latest work in progress is based on my trusty base model walker:

    efeKshw.png

     

    Added a servo-mounted MK1 cockpit, folding wings, and some vtol engines.

    tPsJv8j.jpg

     

     

    Need some more practice flying this thing, especially landing. May have to use a smaller cockpit to make it less top-heavy.

     

  3. something strange is happening.

    im trying to use an action group to toggle between controlling from the forward facing probe core with SAS off and controlling from the upward facing probe with steering locked upward.

    i got it to toggle between controlling from the two different probes by doing this:

    SET UPPROBE TO SHIP:PARTSTAGGED("UPPROBE")[0].
    SET FWDPROBE TO SHIP:PARTSTAGGED("FWDPROBE")[0].

    UNTIL ALTITUDE=20000

    {

    IF AG1=1

    FWDPROBE:CONTROLFROM.

    ELSE

    UPPROBE:CONTROLFROM.


    }.

    but when i add the code to set the SAS commands, like so:

    SET UPPROBE TO SHIP:PARTSTAGGED("UPPROBE")[0].
    SET FWDPROBE TO SHIP:PARTSTAGGED("FWDPROBE")[0].

    UNTIL ALTITUDE=20000

    {

    IF AG1=1

    FWDPROBE:CONTROLFROM.
    UNLOCK STEERING.

    ELSE

    UPPROBE:CONTROLFROM.
    LOCK STEERING TO Up + R(0,0,90).

    }.

    i get an error. what gives?

  4. ToXUpJ3.jpg

    The idea is that its a plane, but instead of landing gear with wheels, it will have cyborg legs and do running takeoffs and landings.

    Im using my own servo sequencer template script to generate the walking part of the script ( [based on an earlier craft i made](http://forum.kerbalspaceprogram.com/threads/126654-Long-Jumping-Bipedal-Robot-%28craft-script-included%29-INFERNAL-ROBOTICS-kOS) ), so that part is done.

    however, i made my template script a while ago and since then forgot how to kOS. here what im stuck on: my walking script relies on controlling from the upward facing control probe and locking heading in the upward direction with SAS; but to fly the plane properly i need to control from the probe core that faces forward and have any SAS commands disabled.

    right now it can do a running takeoff and flies well enough once i manually switch to the foreward facing probe core, but its impossible to land without the ability to make the switch at exactly the right time...

    basically i want to be able to toggle between which of the two probe i "control from", and apply the appropriate SAS setting for the selected probe.

    any ideas?

  5. Latest walker design. Now with ground detection, automatic jumping mode, ability to lean into turns :cool:

    Mods:

    -infernal robotics + reworked IR parts + tweakscale

    -kOS

    -mechjeb

    Craft file:

    https://www.dropbox.com/s/7kgcqq7ut2xev1a/JUMPER-2-d.craft?dl=0

    Script

    SET TURN TO SHIP:PARTSTAGGED("TURN")[0].
    SET LEFTSTR TO SHIP:PARTSTAGGED("LEFTSTR")[0].
    SET RIGHTSTR TO SHIP:PARTSTAGGED("RIGHTSTR")[0].
    SET LEFT1 TO SHIP:PARTSTAGGED("LEFT1")[0].
    SET LEFT2 TO SHIP:PARTSTAGGED("LEFT2")[0].
    SET RIGHT1 TO SHIP:PARTSTAGGED("RIGHT1")[0].
    SET RIGHT2 TO SHIP:PARTSTAGGED("RIGHT2")[0].
    SET BAL2 TO SHIP:PARTSTAGGED("BAL2")[0].

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    PARAMETER SPEED1.
    PARAMETER SPEED2.
    PARAMETER ACCELERATION1.
    PARAMETER ACCELERATION2.
    PARAMETER TURNRATE.
    PARAMETER RANGE1.
    PARAMETER RANGE2.
    PARAMETER DELAY1.
    PARAMETER HEADING.
    PARAMETER LEFT2MAX.
    PARAMETER RIGHT2MIN.
    PARAMETER BAL2MAX.
    PARAMETER BAL2MIN.

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    UNTIL SHIP:ALTITUDE > 20000


    {

    LOCK STEERING TO Up + R(0,0,270).
    IF AG1 = 1
    UNTIL AG1 = 0

    {


    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).

    IF + ALT:RADAR < 5


    {
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    SET RANGE TO 0 + 2.5*SHIP:CONTROL:PILOTMAINTHROTTLE.

    SET SPEED1 TO 40 + 1*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET SPEED2 TO 80 + 1*SHIP:CONTROL:PILOTMAINTHROTTLE.

    SET ACCELERATION1 TO 100 + 1*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET ACCELERATION2 TO 200 + 2*SHIP:CONTROL:PILOTMAINTHROTTLE.

    SET TURNRATE TO 3 - 1.5*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RANGE1 TO 0 + 16*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RANGE2 TO 0 - 16*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET DELAY1 TO 0.16 + 0.035*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET DELAY2 TO 0.11 - 0.1*SHIP:CONTROL:PILOTMAINTHROTTLE.

    SET LEFT2MAX TO 0 + 25*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RIGHT2MIN TO - 25*SHIP:CONTROL:PILOTMAINTHROTTLE.

    SET BAL2MAX TO 0 + 15*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET BAL2MIN TO 0 - 15*SHIP:CONTROL:PILOTMAINTHROTTLE.

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    TURN:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", TURNRATE).

    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).

    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).

    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", -35).
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", 20).

    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", -70).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", LEFT2MAX).


    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", -20).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", 35).

    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", RIGHT2MIN).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", 70).


    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", 60).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", RANGE2).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RANGE1).


    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", 60).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", RANGE2).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RANGE1).


    BAL2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", BAL2MIN).
    BAL2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", BAL2MAX).


    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).

    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    WAIT 0.1.
    right2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).

    WAIT DELAY1.

    LEFTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).

    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    right2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    WAIT DELAY2.

    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    right1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    right2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    WAIT 0.1.
    left2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    rightSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    leftSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).

    WAIT DELAY1.

    rightSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    leftSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).

    right1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    right2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    left2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    WAIT DELAY2.



    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    }.

    IF AG2 = 1
    UNTIL AG2 = 0

    {

    LEFTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).

    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    IF + ALT:RADAR < 4.3

    {

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    SET SPEED1 TO 500 + 1500*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET SPEED2 TO 1000 + 3000*SHIP:CONTROL:PILOTMAINTHROTTLE.

    SET ACCELERATION1 TO 1000 + 2000*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET ACCELERATION2 TO 2000 + 4000*SHIP:CONTROL:PILOTMAINTHROTTLE.

    SET TURNRATE TO 6 - 1.5*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RANGE1 TO 0 + 20*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RANGE2 TO 0 - 20*SHIP:CONTROL:PILOTMAINTHROTTLE.

    SET RMAX1 TO 10 + 20*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET RMAX2 TO 20 + 40*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET LMIN1 TO -10 - 20*SHIP:CONTROL:PILOTMAINTHROTTLE.
    SET LMIN2 TO -20 - 40*SHIP:CONTROL:PILOTMAINTHROTTLE.

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    TURN:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", TURNRATE).

    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).

    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).

    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", RANGE2).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RANGE1).


    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", ACCELERATION2).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", SPEED2).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", RANGE2).
    LEFTSTR:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RANGE1).


    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", LMIN1).
    LEFT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", 10).

    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", LMIN2).
    LEFT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX",20).


    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", -10).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RMAX1).

    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MIN", -20).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):SETFIELD("MAX", RMAX2).


    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).

    LEFTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).
    RIGHTSTR:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).

    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).

    WAIT .125.


    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).

    WAIT .125.


    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).


    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).

    WAIT .125.


    LEFT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    LEFT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    RIGHT1:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).
    RIGHT2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).

    WAIT .125.

    BAL2:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE CENTER", 1).

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    }.
    }.
    }.
    }.

    4RgdZ6n.jpg

    Instructions:

    - place craft file into your SPH folder

    - extract kerbal from capsule and have them man the control seat (optional)

    - copy and paste the script above into a kOS window and save it under a convenient name

    - right click on the probe core and select "control from here" (refer to picture above)

    - set throttle to 0 and turn on fine controls

    - run the script

    - unclamp the launch clamp

    - "1" toggles walk mode

    - "2" toggles jump mode (walk mode must be activated before activating jump mode, lazy programming, if you can fix this please post the script here so i can steal it)

    - "J" and "L" turn the craft

    - "I" and "k" adjust balance forward and backward. use this in jump mode to control the angle that the craft will hit the ground

    - throttle controls speed. max throttle for running at max speed; 0 throttle for walking in place

    - " ; " and " ' " rotate the turret

    - "o" and "p" move flashlight up and down

    - "9" crouches the craft for embark/disembark and extends ladder

    - "0" returns to normal operation from crouched position and retracts ladder

    If you download this, please post here to let me know if it works or not. Have fun!

  6. Craft file, download this and drop it into your SPH folder:

    https://www.dropbox.com/s/kwic92ted1sjicc/POGO-1.craft?dl=0

    Here is the script I'm running:

    SET TURN TO SHIP:PARTSTAGGED("TURN")[0].
    SET JUMP TO SHIP:PARTSTAGGED("JUMP")[0].

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    PARAMETER SPEED1.
    PARAMETER ACCELERATION.
    PARAMETER TURNRATE.

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    UNTIL SHIP:ALTITUDE > 20000

    {

    IF GEAR = 1
    UNTIL GEAR = 0

    {

    IF + ALT:RADAR < 3.9

    {
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    SET SPEED1 TO 250 + 2500*SHIP:CONTROL:PILOTMAINTHROTTLE.

    SET ACCELERATION1 TO 1500 + 150*SHIP:CONTROL:PILOTMAINTHROTTLE.

    SET TURNRATE TO 6 - 1.5*SHIP:CONTROL:PILOTMAINTHROTTLE.


    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    TURN:GETMODULE("MUMECHTOGGLE"):SETFIELD("SPEED", TURNRATE).

    JUMP:GETMODULE("MUMECHTOGGLE"):SETFIELD("ACCELERATION", SPEED1).



    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


    JUMP:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 1).

    WAIT 0.125.
    JUMP:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE +", 0).

    JUMP:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 1).

    WAIT 0.25.
    JUMP:GETMODULE("MUMECHTOGGLE"):DOACTION("MOVE -", 0).


    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    }.
    }.
    }.

    Start-up procedure:

    1) Extract your pogo-pilot from the capsule and sit him down in the command seat.

    2) Detach capsule.

    3) Right-click on the probe core and select "control from here"

    4) Use mechjeb's smart ASS function to lock heading to the UP direction

    5) Open the kOS control panel and run the script i posted above.

    6) Detach the launch clamps.

    7) Steer with "j" and "l" (you may want to remap your kerbal's space suit light to another button, like "u")

    8) Lean forward and back with "i" and "k"

    9) Action group "0" toggles ladder up and down

    10) Action group "g" toggles jumping routine

    11) Throttle controls the force of the jump, keep it low to avoid damage.

    Mods:

    - mechjeb

    - kOS

    - Infernal Robotics + reworked IR models

    - tweakscale

    If you download this, please post here and let me know if it works or not.




  7. Kerbal pogo-stick. kOS is programmed to jump automatically as soon as the craft is close enough to the ground. The force of the jump is varied using the throttle. Self balancing via mechjeb's smart A.S.S utility. Not really all that impressive on its own, but this technique will lead to some interesting future craft...
  8. on previous versions of IR i could set an action group to center a group of servos, so that i could use an IR hotkey to move the servo to the limit, and when i let go of the hotkey, the servo would go back to center. i cant find a way to do this anymore, whenever i move a servo it overrides the command to move to center and it stays stuck in the advanced position. unfortunately this means that i cant build my walking robots the same way i used to, unless i can find some work-around.

    any ideas?

×
×
  • Create New...