+ Reply to Thread
Page 1 of 8
1 2 3 ... LastLast
Results 1 to 10 of 76

Thread: Olympus Technologies open testing

  1. #1
    Drone Madman
    Lyinginbedmon will become famous soon enough Lyinginbedmon will become famous soon enough Lyinginbedmon's Avatar
    Join Date
    Mar 2009
    Location
    England
    Posts
    2,021

    Default Olympus Technologies open testing

    So by now I imagine you're all getting perhaps a little sick of seeing me drone (hah) on about my coding and designing for my drones.
    Since my computer is currently unfixable (There is a second computer that needs to be fixed before mine can, which is out of my hands) and I can't afford a spare to build my drones on, all I can do is design and code, I can do no testing.

    So I thought I'd give you all some things, little mechanisms from my drones, for you to put together into your own contraptions. I'll code together the buddy system and the stealth system in a little bit.

    The benefit being that you get some tangible benefit from my ramblings and I get effectively some testing done for them.
    Last edited by Lyinginbedmon; 04-18-2009 at 04:46 PM.
    The Olympus Technologies drones, totally not SkyNet in Gmod form.
    Cronus: The Ultimate Drone, definitely SkyNet in Gmod form.
    The gBrain Project, the drone controls system that thinks it's better than you

    Need to learn how to make your own drones? Check out Drones with a Mad Scientist for my tutorials on how to do it.

  2. #2
    Drone Madman
    Lyinginbedmon will become famous soon enough Lyinginbedmon will become famous soon enough Lyinginbedmon's Avatar
    Join Date
    Mar 2009
    Location
    England
    Posts
    2,021

    Default Re: Olympus Technologies open testing

    Weaponry & Defense expressions

    Caduceus teleportation protocol Mk-I
    Effect: Whenever an RPG round is within 75 units (Determined every half second), the expression feeds a random location between 150 and 200 units from the attached object to the hoverdrive and launches it, effectively ensuring that the RPG round will miss.

    Application: Place the expression on a prop, wire the hoverdrive SetJumpTarget and Jump to the Jump output and the vector input to the Vector output, and attach a toggle button (On = 1) to the Defend input. Ensure that the hoverdrive is connected to the overall contraption or it will simply randomly teleport whenever an RPG comes near the hoverdrive, without actually moving the contraption.
    E2 Code:
    1. @name Caduceus teleportation defense
    2. @inputs Defend
    3. @outputs Vector:vector Jump Dist Clk
    4. @persist Base:entity Clock RPG:entity Loc:vector
    5.  
    6. if(first()){
    7. Base = entity():isWeldedTo()
    8. Clock = findUpdateRate() + 100
    9.  
    10. Loc = Base:pos()
    11. Vector = Base:pos()}
    12.  
    13. #Activation & RPG search
    14. if(Defend){
    15. timer("sear_clk",Clock)
    16. if(clk("sear_clk") & !Clk){
    17. findByClass("rpg_missile")
    18. RPG = findClosest(Base:pos())}}
    19.  
    20. #Checking the distance to nearest RPG
    21. if(RPG & !Clk){
    22. timer("rpg_check",10)
    23. Dist = Loc:distance(RPG:pos())
    24. if(Dist < 400 & clk("rpg_check")){
    25. Loc = Base:pos()
    26.  
    27. Rand1 = random(-1,1)
    28. Rand2 = random(-1,1)
    29. Rand3 = random(-1,1)
    30.  
    31. X = random(150,200)
    32. Y = random(150,200)
    33. Z = random(150,200)
    34.  
    35. if(Rand1 < 0){X = X * -1}
    36. if(Rand2 < 0){Y = Y * -1}
    37. if(Rand3 < 0){Z = Z * -1}
    38.  
    39. Vector = vec(X,Y,Z) + Loc
    40. Jump = !Jump
    41. Clk = 1}}
    42.  
    43. #Ensure the hoverdrive has rematerialised before rechecking
    44. if(Clk){
    45. timer("tele",100)
    46. if(clk("tele")){Clk = 0}}

    ------------------------------------

    Cycnus dumb missile Mk-I
    Effect: Need a quick missile? Plant a Cycnus dumb missile chip wherever you like and tell it to fire. If it hits anything, keeps going for 5 seconds, or you send the signal to detonate anyways, it explodes out into a 200 unit radius dealing moderate damage.

    Application: Place the launch chip and attach buttons or numpad inputs to both inputs, they don't need to be toggled but the On values must be positive. Then, place the missile chip(s) anywhere you want, with the chip decal facing in the direction you want the missile to fire. Do NOT weld them to anything. The inputs should be self-explanatory as to what they do.
    Code:
    E2 Code:
    1. @name Cycnus dumb missile
    2. @inputs
    3. @outputs
    4. @persist Fire Premat Push:vector Me:entity Clock
    5.  
    6. if(first()){
    7. Push = -entity():up()*10
    8. Me = entity()
    9. signalSetGroup("Cycnus launch",0)}
    10.  
    11. runOnSignal("Launch",0)
    12. runOnSignal("Detonate",0)
    13.  
    14. if(signalClk("Launch")){Fire = 1}
    15. if(signalClk("Detonate")){Premat = 1}
    16.  
    17. if(Fire){
    18. interval(10)
    19. applyForce(Push)
    20. Clock +=1
    21.  
    22. if(Clock = 500|$Me:vel() < 0){Premat = 1}}
    23.  
    24. if(Premat){selfDestruct()}
    E2 Code:
    1. @name Cycnus remote
    2. @inputs Launch Detonate
    3. @outputs
    4.  
    5. if(first()){signalSetGroup("Cycnus launch")}
    6.  
    7. if(Launch){signalSend("Launch")}
    8. if(Detonate){signalSend("Detonate")}
    Notes: This is my very first attempt at using applyForce(), so if anything goes wrong it's either that or the lack of the detonate(N,N,N,N) function in your copy of Wiremod.

    ------------------------------------

    Lethe stealth protocol Mk-I
    Effect: Turns an entire contraption completely 100% transparent and back again, preserving initial transparencies, at the push of a button.

    Application: Place the first expression chip onto your contraption and the second anywhere else (Do NOT put it on the contraption, or you'll have a hard time finding it). Wire the Active input of the second chip to a toggled button (On = 1, Off = 0 for the button).
    Code:
    E2 Code:
    1. @name Lethe stealth cloak
    2. @inputs
    3. @outputs
    4. @persist Base:array Body:array Entry
    5.  
    6. if(first()){signalSetGroup("Lethe")}
    7.  
    8. runOnSignal("Engage",0)
    9. runOnSignal("Disable",0)
    10.  
    11. if(signalClk("Lethe","Engage",0)){Cloak = 1}
    12. if(signalClk("Lethe","Disable",0)){Decloak = 1}
    13.  
    14. if(Cloak == 1){
    15. Body = entity():getConstraints()
    16.  
    17. timer("working...",10)
    18. Base:setNumber(Entry, Body:entity(Entry):getAlpha())
    19. Body:entity(Entry):setAlpha(0)
    20.  
    21. if(Entry == Body:count()){
    22. stoptimer("working...")
    23. Entry = 0
    24. Cloak = 0}
    25. else{Entry += 1}}
    26.  
    27. if(Decloak == 1){
    28. timer("decloak",10)
    29. Body:entity(Entry):setAlpha(Base:number(Entry))
    30.  
    31. if(Entry == Body:count()){
    32. Entry = 0
    33. stoptimer("decloak")
    34. Decloak = 0}
    35. else{Entry += 1}}
    E2 Code:
    1. @name Lethe cloak activator
    2. @inputs Active
    3. @outputs
    4.  
    5. if(first()){signalSetGroup("Lethe")}
    6.  
    7. if(Active){signalSend("Engage",0)}
    8. else{signalSend("Disable",0)}
    Notes: This basically remotely sets the contraption with the first expression chip to have Alpha 0 on all of it's components, so you could still walk into it, shoot it, etc. you just won't be able to see a single part of it.
    Because it's signal based, you can even put it on a bunch of different contraptions and operate the whole cloaking system with the one button. Invisible contraption army?
    This adaptation is also my first attempt at using the Signal functions, so if it doesn't work that's probably why.

    ------------------------------------

    Lethe stealth grenade
    Effect: Throwing down this expression grenade will cause all of your items (props, contraptions, and even NPCs) within 400 units to gradually disappear from view into invisibility. Activating the signal with the second expression will reverse the process and destroy all of your Lethe grenades.

    Application: Place the first expression wherever you want, and place the second expression anywhere and wire a button (toggle or otherwise, on = 1) to the Deactivate input. You do not need to have the second expression spawned to use the first, only to deactivate it.
    Code:
    E2 Code:
    1. @name Lethe stealth grenade
    2. @inputs
    3. @outputs
    4. @persist Base:array
    5.  
    6. if(first()|dupe()){
    7. signalSetGroup("Lethe")
    8.  
    9. findInSphere(entity():pos(),400)
    10. findSortByDistance(entity():pos())
    11.  
    12. Qty = findInSphere(entity():pos(),400)
    13. Base = array()
    14.  
    15. if(Entry != Qty){
    16. interval(10)
    17. if(findResult(Entry):owner() != entity():owner()){Entry += 1}
    18. else{
    19. Base:setNumber(Entry,findResult(Entry):getAlpha())
    20. findResult(Entry):setAlpha(0)
    21. Entry += 1}}
    22. else{Entry = 0}
    23.  
    24. runOnSignal("Grenades off",1)}
    25. if(signalClk("Lethe","Grenades off",1){
    26. if(Entry != Qty){
    27. interval(10)
    28. if(findResult(Entry):owner() != entity():owner()){Entry += 1}
    29. else{
    30. findResult(Entry):setAlpha(Base:number(Entry))
    31. Entry += 1}}
    32. else{selfDestruct()}
    E2 Code:
    1. @name Lethe grenade deactivator
    2. @inputs Deactivate
    3. @outputs
    4.  
    5. if(first()){signalSetGroup("Lethe")}
    6.  
    7. if(Active & ~Active){
    8. signalSend("Grenades off",1)
    9. selfDestruct()}
    Notes:You can change the 1s in the signal settings to 0s to prevent others from reverting your grenades, but it's largely there for admin purposes at the moment.
    The cloaking field does not affect any objects or NPCs that move into the area during or after activation, but it will revert them on cue even if they have moved out of the region afterwards. In theory if you stand close enough you can turn yourself invisible.
    Last edited by Lyinginbedmon; 06-06-2009 at 03:09 PM. Reason: Corrected errors in Caduceus

  3. #3
    Drone Madman
    Lyinginbedmon will become famous soon enough Lyinginbedmon will become famous soon enough Lyinginbedmon's Avatar
    Join Date
    Mar 2009
    Location
    England
    Posts
    2,021

    Default Re: Olympus Technologies open testing

    Motion Control expressions

    Vector Triad calculator Mk-I
    Effect: This code takes a trio of vector thrusters and has them hold an altitude of 30 wherever they are.

    Application: Take the expression and place it as close to the middle of the triad as you can, then wirelink them into the three inputs.
    E2 Code:
    1. @name Vector Triad calculator
    2. @inputs Thrust1:wirelink Thrust2:wirelink Thrust3:wirelink
    3. @outputs
    4. @persist Vec1mod Vec2mod Vec3mod
    5.  
    6. if(first()){
    7. timer("vecfinder",10)
    8. if(Thrust1 & Thrust2 & Thrust3){
    9. Vec2mod = Thrust1:entity():pos() - Thrust2:entity():pos()
    10. Vec3mod = Thrust1:entity():pos() - Thrust3:entity():pos()
    11. Vec1mod = entity():pos() - Thrust1:entity():pos()
    12. else{stoptimer("vecfinder")}}
    13.  
    14. interval(50)
    15. Alt = ranger(1000)
    16. VecBase = entity():pos()
    17.  
    18. THoverZ = 30 - Alt:distance()
    19. if(Alt:distance() != 30){
    20. interval(15)
    21. HovAlt = Alt:distance + (THoverZ/8)}
    22.  
    23. Vec1 = -(VecBase + Vec1mod):setZ(HovAlt)
    24. Vec2 = -(Vec1 + Vec2mod):setZ(HovAlt)
    25. Vec3 = -(Vec1 + Vec3mod):setZ(HovAlt)
    26.  
    27. Thrust1:setVector("Vector",Vec1)
    28. Thrust2:setVector("Vector",Vec2)
    29. Thrust3:setVector("Vector",Vec3)
    Notes: This code does not support thruster-based turning itself, but I'll release one with turning at some point.

    ------------------------------------

    Vector Triad calculator Mk-II
    Effect: Same as the Mk-I, but now you can attach a wired laser receiver and have the location basis of the vector thrusters be wherever you last pointed, so you can move it around the map. Perfect for, say, a remote baggage handler or somesuch.

    Application: As with the Mk-I, except you can also wirelink a wired laser receiver to the Laser input of the expression chip.
    E2 Code:
    1. @name Vector Triad calculator Mk-II
    2. @inputs Laser:wirelink Thrust1:wirelink Thrust2:wirelink Thrust3:wirelink
    3. @outputs
    4. @persist Vec1mod Vec2mod Vec3mod
    5.  
    6. if(first()){
    7. timer("vecfinder",10)
    8. if(Thrust1 & Thrust2 & Thrust3){
    9. Vec2mod = Thrust1:entity():pos() - Thrust2:entity():pos()
    10. Vec3mod = Thrust1:entity():pos() - Thrust3:entity():pos()
    11. Vec1mod = entity():pos() - Thrust1:entity():pos()
    12. else{stoptimer("vecfinder")}}
    13.  
    14. if(Thrust1 & Thrust2 & Thrust3){
    15. interval(10)
    16. Alt = ranger(1000)
    17. if(Laser:number("Active")){
    18. VecBase = vec(Laser:number("X"),Laser:number("Y"),0)
    19. else{VecBase = entity():pos()}
    20.  
    21. THoverZ = 30 - Alt:distance()
    22. if(Alt:distance() != 30){
    23. interval(10)
    24. HovAlt = Alt:distance + (THoverZ/8)}
    25.  
    26. Vec1 = -(VecBase + Vec1mod):setZ(HovAlt)
    27. Vec2 = -(Vec1 + Vec2mod):setZ(HovAlt)
    28. Vec3 = -(Vec1 + Vec3mod):setZ(HovAlt)
    29.  
    30. Thrust1:setVector("Vector",Vec1)
    31. Thrust2:setVector("Vector",Vec2)
    32. Thrust3:setVector("Vector",Vec3)
    Notes: Not much changed, but I'm not entirely certain of the vector co-ordinates acquisition from the laser receiver, it may not work because they're world co-ordinates being used in a vector, but the system should do something even if that's faulty.
    The laser receiver is entirely optional, if you don't wire anything into the Laser input it'll work exactly the same as the Mk-I.

    ------------------------------------

    Vector Triad calculator Mk-III
    Effect: Exactly the same as the Mk-II, but now featuring a buddy system! The vector thrusters try to stay within 100-150 units of up to three buddies and reassigns buddies when it detects a fourth.

    Application: Exactly like the Mk-II (Including the optional nature of the laser) except you need to attach a Locator to the contraption. No additional wiring is required beyond that of the Mk-II.
    E2 Code:
    1. @name Vector Triad calculator Mk-III
    2. @inputs Laser:wirelink Thrust1:wirelink Thrust2:wirelink Thrust3:wirelink
    3. @outputs
    4. @persist Num N M O Thrust Chips Vec1mod:vector Vec2mod:vector Vec3mod:vector Buddy1:entity Buddy2:entity Buddy3:entity VecPre:vector
    5.  
    6. if(first()){
    7. timer("vecfinder",10)
    8. if(Thrust1 & Thrust2 & Thrust3){
    9. Vec2mod = Thrust1:entity():pos() - Thrust2:entity():pos()
    10. Vec3mod = Thrust1:entity():pos() - Thrust3:entity():pos()
    11. Vec1mod = entity():pos() - Thrust1:entity():pos()}
    12. else{stoptimer("vecfinder")}}
    13.  
    14. if(Thrust1 & Thrust2 & Thrust3){
    15. interval(10)
    16. Alt = ranger(1000)
    17. if(Laser:number("Active")){
    18. VecBase = vec(Laser:number("X"),Laser:number("Y"),0)}
    19. else{VecBase = entity():pos()}
    20.  
    21. THoverZ = 30 - Alt:distance()
    22. if(Alt:distance() != 30){
    23. interval(10)
    24. HovAlt = Alt:distance() + (THoverZ/8)}
    25.  
    26. Vec1 = -(VecBase + Vec1mod):setZ(HovAlt)
    27. Vec2 = -(Vec1 + Vec2mod):setZ(HovAlt)
    28. Vec3 = -(Vec1 + Vec3mod):setZ(HovAlt)
    29.  
    30. Thrust1:setVector("Vector",Vec1)
    31. Thrust2:setVector("Vector",Vec2)
    32. Thrust3:setVector("Vector",Vec3)}
    33.  
    34. interval(5000)
    35. findInSphere(entity():pos(),200)
    36. findClipToClass("gmod_wire_locator")
    37. findSortByDistance(entity():pos())
    38.  
    39. #DRONE DETECTION
    40. TarProps = findResult(Num + 1):getConstraints()
    41.  
    42. N = TarProps:count()
    43. O = floor(TarProps:count()/2)
    44. P = O + 1
    45.  
    46. interval(10)
    47. if(M != O|N != P){
    48. if(TarProps:entity(M):type() == Thrust1:entity():type()){
    49. if(Thrust == 3){Thrust = 3}
    50. else{Thrust += 1}}
    51. elseif(TarProps:entity(M):type() == entity():type()){
    52. if(Chips == 1){Chips = 1}
    53. else{Chips += 1}}
    54. else{M += 1}
    55.  
    56. if(TarProps:entity(N):type() == Thrust1:entity():type()){
    57. if(Thrust == 3){Thrust = 3}
    58. else{Thrust += 1}}
    59. elseif(TarProps:entity(N):type() == entity():type()){
    60. if(Chips == 1){Chips = 1}
    61. else{Chips += 1}}
    62. else{N -= 1}
    63.  
    64. if(TarProps:entity(P):type() == Thrust1:entity():type()){
    65. if(Thrust == 3){Thrust = 3}
    66. else{Thrust += 1}}
    67. elseif(TarProps:entity(P):type() == entity():type()){
    68. if(Chips == 1){Chips = 1}
    69. else{Chips += 1}}
    70. else{P += 1}
    71.  
    72. if(TarProps:entity(O):type() == Thrust1:entity():type()){
    73. if(Thrust == 3){Thrust = 3}
    74. else{Thrust += 1}}
    75. elseif(TarProps:entity(O):type() == entity():type()){
    76. if(Chips == 1){Chips = 1}
    77. else{Chips += 1}}
    78. else{O = O - 1}}
    79. else{Ident = Chips + Thrust}
    80.  
    81. #BUDDY GENERATION
    82. if(Ident == 4){
    83. if(!Buddy1){Buddy1 = findResult(Num)}
    84. elseif(!Buddy2){Buddy2 = findResult(Num)}
    85. elseif(!Buddy3){
    86. Buddy3 = findResult(Num)
    87. Num += 1}}
    88. else{Num += 1}
    89.  
    90. #BUDDY DISTANCE MONITOR
    91. if(Buddy1){
    92. timer("buddy1",100)
    93. VecPre = VecBase
    94. Bud1Dist = entity():pos():distance(Buddy1:pos())
    95.  
    96. if(Bud1Dist > 150){VecBase = Buddy1:pos()}
    97. elseif(Bud1Dist < 100){VecBase = -Buddy1:pos()}
    98. else{VecBase = VecPre}}
    99.  
    100. if(Buddy2){
    101. timer("buddy2",100)
    102. VecPre = VecBase
    103. Bud2Dist = entity():pos():distance(Buddy2:pos())
    104.  
    105. if(Bud2Dist > 150){VecBase = Buddy2:pos()}
    106. elseif(Bud2Dist < 100){VecBase = -Buddy2:pos()}
    107. else{VecBase = VecPre}}
    108.  
    109. if(Buddy3){
    110. timer("buddy3",100)
    111. VecPre = VecBase
    112. Bud3Dist = entity():pos():distance(Buddy3:pos())
    113.  
    114. if(Bud3Dist > 150){VecBase = Buddy3:pos()}
    115. elseif(Bud3Dist < 100){VecBase = -Buddy3:pos()}
    116. else{VecBase = VecPre}}
    Notes: The chip tracks three buddies, and if it finds another it resets all buddies and selects the three nearest to be buddies. That's important to know if you want to have like a large "herd" of buddy contraptions.
    Last edited by Lyinginbedmon; 04-29-2009 at 01:11 PM.

  4. #4
    Drone Madman
    Lyinginbedmon will become famous soon enough Lyinginbedmon will become famous soon enough Lyinginbedmon's Avatar
    Join Date
    Mar 2009
    Location
    England
    Posts
    2,021

    Default Re: Olympus Technologies open testing

    Miscellaneous expressions

    Archer entity tracker Mk-I
    Effect: Use this neat little chip to track the whereabouts and movements of the entity closest to it at activation, around corners and over far-spanning maps with no problem.

    Application: Spawn the chip and wire two buttons (On = 1) to the Record and Output inputs. Turn Record on (And Output off) to start tracking the input entity (And entity marker helps but of course there are other ways).
    E2 Code:
    1. @name Archer entity tracker Mk-I
    2. @inputs Record Output Target:entity
    3. @outputs Vector:vector
    4. @persist Target:entity Path:array Index Body:array
    5.  
    6. if(Record & !Output & Target){
    7. interval(100)
    8. Path:setVector(Index,Target:pos())
    9. Index++}}
    10.  
    11. if(!Record & Output){
    12. Index = 0
    13.  
    14. timer("vector_output",100)
    15. if(Index != Path:count()){
    16. Output = Path:vector(Index)
    17. Index++}
    18. else{stoptimer("vector_output")}
    Notes: You may wonder how tracking the entity's position every hundred milliseconds is better than simply keeping it's position as an output. Well, for one, you can't really record a constant output, just use it for target setting or such. For another, if you send a typical seeker bot after a target that goes into a building, it'll probably keep running into walls for eternity. If you fed the output vector into the vector base of the vector triad calculator, however, it would follow the path made by the entity, which in most instances means it would go down corridors, around corners, etc. without issue.
    With a little ingenuity, you could recode the output to go to the end of the array and then reverse, producing a recurrent loop that could be used for telling simple bots to follow a complex looping path.

    ------------------------------------

    Hecate entity tracker Mk-I
    Effect: Outputs the location of the prey entity (Fed into the expression via ranger or another expression for finding the prey entity), the distance to it, and the number of NPCs and players within 400 units of it. This handy little tracking device can also wirelink to a cam controller to give a tracking view of the prey.

    Application: Spawn the chip and feed it an entity through the Prey input. Wire screens to the Dist and Herd outputs, and the PreyLoc to a text screen. At your option, wirelink a cam controller to the Cam output.
    E2 Code:
    1. @name Hecate entity tracker Mk-I
    2. @inputs Prey:entity Cam:wirelink
    3. @outputs PreyLoc Dist Herd
    4. @persist Prey:entity GPS:vector Herd Dist PreyLoc:string
    5.  
    6. interval(500)
    7. GPS = entity():pos()}
    8.  
    9. PreyLoc = Prey:pos():toString()
    10. Dist = GPS:distance(Prey:pos())
    11.  
    12. #NPCs
    13. findByClass("npc")
    14. NPC = findClipFromSphere(Prey:pos(),400)
    15.  
    16. #NPCs
    17. findByClass("player")
    18. Play = findClipFromSphere(Prey:pos(),400)
    19.  
    20. Herd = NPC + Play
    21.  
    22. Cam:setNumber("X",Prey:pos():x())
    23. Cam:setNumber("Y",Prey:pos():y())
    24. Cam:setNumber("Z",Prey:pos():z() + 100)
    25. Cam:setNumber("Yaw",0)
    26. Cam:setNumber("Roll",0)
    27. Cam:setNumber("Pitch",-45)
    Notes: A drone with this script is effectively equipped for hunting, so if you happen to survive an encounter, consider why they would let you live before fleeing back home.
    Last edited by Lyinginbedmon; 06-25-2009 at 02:33 AM.

  5. #5
    Drone Madman
    Lyinginbedmon will become famous soon enough Lyinginbedmon will become famous soon enough Lyinginbedmon's Avatar
    Join Date
    Mar 2009
    Location
    England
    Posts
    2,021

    Default Re: Olympus Technologies open testing

    Added the Lethe stealth grenade. It's a bit unusual for a grenade to do nothing harmful, but in this case it's really more like the Gmod equivalent of a smoke grenade. I think it has a lot of potential usages, such as in PVP or even RP.

    Really looking for some responses on how well these codes work folks.

  6. #6
    *

    Azrael is a jewel in the rough Azrael is a jewel in the rough Azrael is a jewel in the rough Azrael's Avatar
    Join Date
    Aug 2007
    Posts
    1,351

    Default Re: Olympus Technologies open testing

    Code:
    WireLib.AdjustSpecialInputs(self.Entity, {"Mul", "X", "Y", "Z", "Vector"}, { "NORMAL", "NORMAL", "NORMAL", "NORMAL", "VECTOR"})
    
    The Vector Thruster's Vector input is just called Vector.

    Anyway, great job. Especially with the vector triad calculators, that's a pretty neat method. I think you have a typo (due to renamed inputs maybe?) in your triad code:
    Code:
    if(V1 & V2 & V3){
    
    Those three variables aren't defined anywhere else.
    <Anticept> i always thought that piss comes out of a womans ass....

  7. #7
    Drone Madman
    Lyinginbedmon will become famous soon enough Lyinginbedmon will become famous soon enough Lyinginbedmon's Avatar
    Join Date
    Mar 2009
    Location
    England
    Posts
    2,021

    Default Re: Olympus Technologies open testing

    Quote Originally Posted by AzraelUK View Post
    Anyway, great job. Especially with the vector triad calculators, that's a pretty neat method. I think you have a typo (due to renamed inputs maybe?) in your triad code:
    Code:
    if(V1 & V2 & V3){
    
    Those three variables aren't defined anywhere else.
    Yeah, initially I named them V[X] for simplicity, but later changed it to Thrust[X] for user comprehension.

  8. #8
    Wirererer eduardo is on a distinguished road eduardo's Avatar
    Join Date
    Jan 2009
    Posts
    363

    Default Re: Olympus Technologies open testing

    your awesome lying in bed

  9. #9
    Drone Madman
    Lyinginbedmon will become famous soon enough Lyinginbedmon will become famous soon enough Lyinginbedmon's Avatar
    Join Date
    Mar 2009
    Location
    England
    Posts
    2,021

    Default Re: Olympus Technologies open testing

    I've added the Caduceus teleportation protocol, which teleports the contraption a random distance (Between 150 and 200 units) and direction whenever it detects an RPG round within 75 units.

    Once it's expanded to include Cycnus missiles and explosive barrels travelling at velocity, it's intended to be the defensive protocol for the Hermes drone (The only drone currently designed with a hoverdrive core).

  10. #10
    High Gravity Wirer
    BlackholeWM is on a distinguished road BlackholeWM's Avatar
    Join Date
    Dec 2008
    Posts
    644

    Default Re: Olympus Technologies open testing

    Your stuff is always so awesome. I envy you.

+ Reply to Thread
Page 1 of 8
1 2 3 ... LastLast

Similar Threads

  1. Olympus Technologies
    By Lyinginbedmon in forum Contraptions & Saves
    Replies: 108
    Last Post: 10-25-2009, 07:57 AM
  2. Testing Video Stuffs!
    By -=Fox=- in forum Off-Topic
    Replies: 1
    Last Post: 09-09-2008, 02:15 PM
  3. Replies: 3
    Last Post: 08-23-2008, 07:13 PM
  4. Wire 2 Testing Server
    By -orb- in forum Servers
    Replies: 18
    Last Post: 02-03-2008, 12:41 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts