This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Clickbeetle
Pages: 1 ... 41 42 43 44 45 46 47 [48] 49 50 51 52 53 54 55 ... 174
941
« on: June 16, 2011, 09:16:48 PM »
I might enter this, but I WON'T be able to submit my bot during the entry period. If I get it built in time, could I enter earlier?
No worries. 4.4 If you have a legitimate excuse why you can't send your bot during the official signup period, and you tell me BEFORE SIGNUPS OPEN, you can send your bot at a different time.
This goes for Squirrel_Monkey too. 2.3 All bots must move via wheels, not via discs or other non-wheel components.
NOOOOOO!
Note this doesn't prohibit you from making a half-crawler.  I just don't want any pure crawlers because they would make the wheel rules complicated.
942
« on: June 16, 2011, 09:06:05 PM »
No seizure arena
Not even with hazards off? :P
943
« on: June 16, 2011, 09:02:24 PM »
Havok rules look fine. Harsh, but that's OK with me. - Bots are divided into the following categories: Popup, Spinner, Flipper, Hammer, SNS, Crawler, Juggler, Rammer/Wammer/Poker These designs can only be used once, one on each bot
Wait, so do HS, VS, and FS all fall under "Spinner"? So you couldn't enter a VS and a HS? If so, jugglers should count as spinners too.
944
« on: June 16, 2011, 12:43:40 AM »
Trovaner has a really handy list of most of the Python functions in RA2. I'll repost it here.
# PLUS Module Codes #----------------- Generic Codes: ------------------ #plus.cleanup() - not sure yet #plus.cls() - clears FPS window #plus.damage(BotID, ComponentID, Damage, Location) - inflicts the specified amount of damage to the specified component #plus.describe(BotID) - gives all component IDs and general types #plus.disable(BotID, Power) - turns the controls on or off for the designated bot (1 is off, 0 is on) #plus.force(BotID, X, Y, Z) - forces bot in a direction depending on arena #plus.gravity(X, Y, Z) - changes the arena gravity #plus.practice(Power) - turns time on or off (1 is on, 0 is off) #plus.push(BotID, X, Y, Z) - pushes bot in a direction depending on current heading #plus.show(?, ?, ?) - not sure yet #plus.zap(BotID, Sparks, Duration) - makes harmless sparks that flow across the chasssis surface #plus.Arena(?) - not sure yet (expects something in quotes) #plus.AI - loads funtionality from the AI.py and more... (I'm not sure what yet) #plus.Compile(?) - not sure yet
#----------------- Question Codes: ------------------ #plus.areHazardsOn() - returns 1 if hazards are enabled #plus.isDebugMode() - returns 1 if Debug Mode is in progress #plus.isDefeated(BotID) - returns 1 if the bot has been defeated #plus.isEliminated(BotID) - returns 1 if the bot has been eliminated #plus.isHuman(BotID) - returns 1 if the bot is human controlled #plus.isMatchOver() - returns 1 if match is over #plus.isMatchPaused() - returns 1 if the Pause/Break button is activated #plus.isStandard(BotID) - returns 1 if the bot has 100% stock components #plus.isUpsideDown(BotID) - returns 1 if the bot is inverted
#----------------- Info Codes: ------------------ #plus.getContacts(BotID) - returns 0 or 1 for each wheel, 0 if traction zone is not contacting anything and 1 if it is, in a list. Ex: [1,1,1,1] is a four-wheeled bot with all four wheels on the ground. #plus.getDirection(BotID, NoseOffset) - returns vector pointing in the forward direction for this player's bot with botlab nose offset #plus.getFPS() - returns the current FPS #plus.getGameType() - returns the name of the arena type (ex: "TABLETOP") #plus.getHeading(BotID) - returns up axis heading for this player #plus.getHealth(BotID, ComponentID) - returnsf the amount of health remaining (ex: 1.0 is 100% health, .5 is 50% health, ect.) #plus.getHitpoints(BotID, ComponentID) - returns the amount of remaining hitpoints for the component #plus.getLocation(BotID) - returns tuple for location of the designated bot #plus.getPlayers() - returns the number of players (will not change when bots are disabled, destroyed, or eliminated) #plus.getScreenSize() - returns the screen size setting #plus.getSpeed(BotID) - returns the current speed of the designated bot #plus.getTimeElapsed() - returns the amount of time that has passed since the start of the battle #plus.getWeight(BotID) - returns the weight of the designated ID (changes when components fall off)
#----------------- Setting Codes: ------------------ #plus.setArena(ArenaObject) - not sure yet #plus.setBackColor(Red, Green, Blue) - changes the background color #plus.setSubsteps(Number) - determines processing time and affects the ingame countdown clock (0 causes the game to quick responding)(1 is the fastest but causes lag because there isn't enough process time)(I think 100 is default) #plus.setTimestep(Number) - 0 is default and everything above that causes something similar to lag (affects the bots and camera), 1 causes the camera to lag into the corner while the bots fly into oblivion when they touch the ground and 100 causes them to fly into oblivion even while they are in the air #plus.SetCompileFilename(?) - not sure yet (it either requires something in quotes or compileFilename)
#----------------- Status Codes: ------------------ #plus.AddParticleEmitter((x, y, z), (vex, vey, vez), (vax, vay, vaz)) - creates a ParticleEmitter object #plus.addPoints(BotID, Points) - increase the score of a selected bot by a selected number of points #plus.addText(guiWindowObject, x, y, w, h) - not sure yet #plus.addWindow(name, x, y, w, h) - creates a guiWindow object #plus.add_method(0,0) - not sure yet #plus.caughtError(?, ?, ?) - not sure yet #plus.closeWindow(?) - not sure yet #plus.compileFilename() - not sure yet #plus.dispatchEvent(?,?) - not sure yet #plus.elecZoneEvent() - not sure yet #plus.eliminatePlayer(BotID) - eliminates the designated bot ID #plus.emitSmoke(Value, String, String, String) - not sure yet #plus.enumArena(?) - not sure yet (requires an ArenaDetail object) #plus.introComplete() - activates starting countdown with comment #plus.magicMobility(Power) - turns traction on or off (1 is on, 0 is off) #plus.rayTest(self.adjustedLoc.asTuple(), flamepos.asTuple()) - not sure yet #plus.refreshAI(?, ?) - not sure yet #plus.removeWindow(?) - not sure yet #plus.showFPS(Power) - turns on or off the built-in python interpreter for the FPS window (1 in off, 0 is on) #plus.usePower(BotID, Power) - turns on or off the need for power sources (air tanks and batteries) for the designated bot (0 means that it uses power, 1 means it doesn't)
#----------------- Sound Codes: ------------------ #plus.createSequence(?, ?, ?, ?, ?) - not sure yet #plus.createSound(Sound File, False, (0,0,0)) - Adds the selected sound file to memory but doesn't play it #plus.fadeIn(?, ?, ?) - not sure yet #plus.fadeInToLoop(Sound File, -100, 800) - Fades into the specified sound file to the specified volume at the specifed rate #plus.fadeOut(?, ?) - not sure yet #plus.fadeOutLoop(Sound File, Rate) - Fades out of specified looped sound file at specified the rate #plus.loopSound(Sound File) - Repeats the selected sound file until it is told otherwise #plus.playFile(?, ?) - not sure yet #plus.playOnce(Sound File) - not sure yet #plus.playSequence(Sound File) - not sure yet #plus.playSound(Sound File) - plays the selected sound file until it is told otherwise #plus.removeSequence(Sound File) - not sure yet #plus.removeSound(Sound File) - removes the selected sound file from memory to reduce lag #plus.setMaxDistance(?, ?) - not sure yet #plus.setMinDistance(?, ?) - not sure yet #plus.setVolume(Sound File, 0, 0) - not sure yet #plus.stopAllSounds() - stops all sounds that are playing (the crowd seems to be reloaded after its activated so it doesn't go away in the Combat Arena) #plus.stopSequence(Sound File) - not sure yet #plus.stopSound(Sound File) - stops the selected sound file but doesn't remove it from memory
#----------------- Camera Codes: ------------------ #plus.animateCamera((X, Y, Z), (V-Swing, H-Swing), Start Zoom, (X, Y, Z), (V-Swing, H-Swing), End Zoom, Speed, Duration) - camera movement (the first set of X Y Z cordinates is for the starting position while the second set is for the ending position, V-Swing and H-Swing determine the direction of the camera as it moves, and speed can be negative numbers but that just causes it to go slow then quickly get to the end of the sequence in the last tick) (cannot change due to a variable once it is started) #plus.fadeFromBlack(Duration) - darkens screen then fades back in #plus.setCameraFOV(0.675) - creates an orbit cam at the selected distance from the chassis #plus.setCameraFOVRange(self.range[0], self.range[1], self.range[2], self.range[3]) - <from __init__.py> not sure yet #plus.setCameraPosition(X, Y, Z) - places a camera at the specified coordinates #plus.setCameraRotation(0.266024,-0.472956) - changes the direction of the current camera's facing (works on all camera types)
#----------------- Object Codes: ------------------ #plus.ArenaDetail() - returns an ArenaDetail object #plus.HingeController() - returns a HingeController object #plus.ParticleEmitter() - returns a ParticleEmitter object #plus.PrismaticController() - returns a PrismaticController object #plus.SWHandle() - returns a SWHandle object #plus.guiTextBox() - returns a guiTextBox object #plus.guiWindow() - returns a guiWindow object
#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# SELF Module Codes # (The self module can't be loaded inside of the FPS window to my knowledge)
#self.IsIntact(BotID) - returns 1 if intact (I'm not sure what this means in RA2 yet...) and 0 if not intact #self.GetHealth(ID) - not sure yet if the ID is a bot or comp but it returns a value to the nearest tenth (1 being 100% health) #self.IsDisabled() - returns 0 if it is not disabled and 1 if it is #self.IsUpsideDown() - returns 0 if it isn't upsidedown and 1 if it is #self.GetCriticalHits() - not sure yet #self.IsEnemy(BotID) - returns 1 if the designated bot is an enemy and 0 if it is an ally #self.GetLocation - returns the coordinates of the bot loading this #self.GetStartPointLocation #self.RayTest #self.setText #self.hide #self.setPosition #self.GetEnemies() #returns the IDs of all opposing bots #self.GetLastDamageReceived() - #self.GetLastDamageDone() - #self.GetPistonPosition(CompID) - returns the current position of the designated piston shaft #self.GetMotorAngle(ComponentID) - returns the angle of the motor in radians #self.GetHeading #self.GetDirection #self.GetDistanceToID(BotID) - returns the distance to the designated bot ID #self.GetDistanceTo #self.GetHeadingToID #self.GetHeadingTo #self.GetSpeed() - returns the speed of the bot loading this #self.GetTurning() - returns the turning of the bot loading this #self.GetID() - returns the ID number of the bot loading this #self.Input(ControlName, ControlNumber, Amount) - controls the movement of objects and components #self.GetInputStatus(ControlName,ControlNumber) - returns 1 if moving 0 if not (I've only tested this with servos so I think it might be different for spin motors) #self.RegisterSmartZone #self.ResetComponents() - restores the hitpoints of all of this bots components (will not reconnect components that fall of but will still restore their HP) #self.GetZoneContents #self.GetNumComponents() - returns the number of components #self.GetComponentType #self.GetComponentHealth #self.AddXtra #self.AddXtraSound #self.RemoveXtra #self.AddShadowReceivers (def ?) #self.SetShadowSource #self.SetShadowPrimitive #self.AddShadowTriangle #self.GetHinge #self.AddPOV(id, x, y, id, id2) - where "id" is the ID number of that POV, x and y are the position, and "id2" is the ID number of the POV that this POV connects to. Basically you string them together with that second ID to make a path. (explained by Clickbeetle) #self.AddCollisionLine((x, y), (x2, y2)) - where x and y are the position of one end of the line and x2 and y2 are the position of the other end. The line between the two points acts as an "obstacle" to the AI that they will try not to cross. (explained by Clickbeetle) #self.RegisterZone #self.SetPinned #self.SetActive #self.CreateLightning #self.SetLightningStartEnd #self.SetLightningVisible #self.SetSubMaterial #self.SetSubMaterialSound #self.AddPrismatic #self.GetHinge #self.SetPinned #self.SetActive #self.HazardsOn #self.AddShadowReceivers #self.SetShadowSource #self.SetShadowPrimitive #self.SetPhantom #self.GetRobotsInPhantom #self.RegisterDamageCallback #self.DisconnectDamageCallback #self.ParticleEmitter #self.SetEmitting #self.NextStaticCamera #self.NextWatchCamera #self.NextAutoCamera #self.ClearCameraBlockers #self.AddCameraBlocker #self.tickInterval - returns the current tick interval #self.bHazardsOn
945
« on: June 16, 2011, 12:34:34 AM »
And all the other TRFBD's still work?
I have no idea what could be wrong. It would seem to be an issue with the drive, since the "Spin" weapon control seems to work fine, but if you're sure the wiring, control names, and bindings are exactly the same... who knows.
946
« on: June 16, 2011, 12:03:41 AM »
Edit: Added rule 2.7, no double strength titanium or steel armor. I realized that Big Dog would be almost impossible to KO in 30 seconds without a popup. Is there something I'm missing, or is the whole no Popups and permanently lost weaponry just going to get us a 36HS-fest? :P
See my test tournament; I think rammers actually have a good chance as well. 2WD seems to be kind of a liability in this tournament. Also the spiked walls might prove problematic to HS so keep the arena in mind.
947
« on: June 15, 2011, 11:37:48 PM »
All right, it's about time I put together some official rules and set a date for signups. GET READY FOR IRONBOT! In case you missed it, you can see a little mini preview tourney I did here: https://gametechmods.com/forums/index.php/topic,6411.0.htmlThis tournament will be pretty much like that. OFFICIAL RULES:Section 1 - General Information1.1 Weight class is Stock HW. 1.2 The arena to be used is a new arena I am working on called the Containment Cube. (What? JoeBlo doesn't have any patent on cubes last I checked.) Here is a quick mockup of what the finished arena will look like:  It is a 32x32x32 meter cube, completely enclosed. There are no death pits or OOTA zones. The lower walls are covered in rows of spikes that will deal damage and possibly hinder spinners from spinning up. In the middle of one wall there is a vertical spinning blade that sticks halfway into the arena. In the opposite wall there is a big hammer. All hazards will be sufficiently dangerous, not like those wimpy "hazards" in the stock arenas.  The floor is regular mesh (not a plane like the BBEANS arena) with 0.5 friction (for reference, this is between the Combat Arena and the BBEANS arena). The start points are positioned how you see the bots arranged in the picture. Notice how no bot is directly facing another. This means you can't blindly box-rush the opponent right away; a little bit of turning is required to orient. It's intended to have the same general effect as the center blade in the BBEANS arena but without cluttering up the center of the arena. 1.3 Standard stock building. All normal in-game building techniques are allowed. Outside-game building (AAM, BFE) is not. 1.4 The 140 cm extender is allowed. 1.5 BBEANS general rules apply except where otherwise noted below. Section 2 - Restrictions2.1 All bots must have damaging weapons. 2.2 Bots without active (moving) weapons must use the "Ram" or "Charge" tactics such that they repeatedly ram the opponent rather than pin them. If a bot did have active weapons but loses them, it must switch to the Ram or Charge tactic. 2.3 All bots must move via wheels, not via discs or other non-wheel components. 2.4 No popups. Popups are banned. They get KO's too fast without breaking other components, which defeats the purpose of this tournament. 2.5 Bots can have a maximum of 6 casters. Use them wisely. 2.6 Multibots are not allowed. 2.7 Double-strength titanium and steel armor are not allowed. (These are found on some of the stock AI bots.) Section 3 - Tournament Format3.1 At the beginning of the tournament, all the bots are randomly paired off in 1 vs. 1 fights. In the following round, the winners and losers will be separated into two groups. All the bots in each group are randomly paired off and fight. This process repeats for all the following rounds. In this way, the same two bots will never fight two rounds in a row. 3.2 If there are an odd number of bots in both groups, the bots remaining after pairing off will fight if they didn't already fight in the previous round. If they did fight in the previous round, the bots are randomized over again. 3.3 If there are an odd number of bots total, the bot in the loser's group with the most damage gets a bye. 3.4 Matches last 30 seconds. Since this is not a standard RA2 match time, I will be using a bit of Python that disables both bots after 30 seconds have elapsed, in order to prevent damage from being dealt after the buzzer. Immobility warnings will be disabled for the entire 30 seconds. 3.5 Any components that break during a match are permanently lost for the rest of the tournament. All other damage not resulting in a break is reset between fights. 3.6 Bots are eliminated when they are either KO'd, or are reduced to 1 or 0 wheels. It doesn't matter how many match wins or losses a bot gets as long as it isn't KO'd or de-wheeled. 3.7 All bots get one spare control board, which allows them to be KO'd once without being eliminated. 3.8 All bots get a number of spare wheels equal to half the wheels they start with. So a 2-wheeled bot gets 1 spare, and a 4-wheeled bot gets 2 spares. Bots with an odd number of wheels like 3 or 5 get their number of spares rounded up (just as a bit of extra incentive to be crazy and original  ). Spare wheels are used immediately after any wheels are lost in a fight. 3.9 If a wheel is attached to another external component (such as a drive motor or an extender), and that component breaks, a spare wheel will allow the replacement of any components that are necessary to re-attach the wheel. Any other components attached to the broken component not necessary for the attachment of the wheel are lost. 3.10 If a bot loses wheels such that the drive becomes asymmetrical and it can't drive straight, the wheels will be rearranged so that it can drive straight. If there are an odd number of wheels remaining, one of them will be unpowered so that the bot can drive straight. 3.11 If a bot has vertical spinning weapons and it loses some weapons, the remaining weapons will be arranged in order to keep the bot as balanced as possible. 3.12 As soon as there are four or fewer bots remaining, they will engage in a final Fight to the Death. This will pit all remaining bots against each other in a rumble, with no time limit. Immobility warnings will also be disabled for the first two minutes of the fight. The fight will go on until there is only one bot left, at which point this bot will be the winner of Ironbot! 3.13 If there are a large number of entries, the Fight to the Death will begin once there are 16 or fewer bots remaining. These bots will be randomly sorted into four groups which will each engage in a Fight to the Death. The survivor of each group will then go on to compete in the final Fight to the Death. 3.14 Havok explosions are ignored unless a bot is stuck in the floor, thrown into a hazard, etc. such that it loses components that otherwise wouldn't be broken. In that case the match is restarted. There is no penalty for causing Havok explosions. The exception is in the Fight to the Death; in this case, BBEANS Havok explosion rules apply. 3.15 Unpowered wheels: Unpowered wheels on axle mounts do not count toward the number of spare wheels you get, but they can be moved in case the powered wheels break. Section 4 - Signups4.1 Signups will be open for one week, from July 24 to July 31. 4.2 All legal bots received during that time will be accepted; there is no limit on the number of entries. 4.3 I will (grudgingly, but to the best of my ability, or at least the upper 20% of my ability) AI your bot if you don't provide AI. 4.4 If you have a legitimate excuse why you can't send your bot during the official signup period, and you tell me BEFORE SIGNUPS OPEN, you can send your bot at a different time. 4.5 You can update or change your entry at will during the signup period. After signups close on July 31, entries are locked down and cannot be changed unless it is absolutely necessary for the bot's functioning or legality. Section 5 - AwardsThere are several awards up for grabs in Ironbot. These are all objective categories, not subjective decisions that require a vote. The prize for each award is one guaranteed entry slot in BBEANS7. Last Bot Standing - This is the overall winner of the Fight to the Death and Ironbot. Competitive Jerk - This is the bot that eliminated the most opponents, either by KO or de-wheeling. Technical Winner - This is the bot that won the most fights according to standard RA2 criteria (KO or points). Black Knight Award - This goes to the bot that took the most damage before finally being eliminated. "It's only a flesh wound!"
948
« on: June 15, 2011, 09:05:35 PM »
I don't see a problem with the multiple entries rule. By far the greatest time investment in bot building is making the bot. Making the AI takes like 20 minutes at the very most, often less, as long as you don't need a custom py. If you have time to build a bot, then you have time to AI it.
Plus, it's only fair for people who put in the time to AI their own bots to have an advantage, since it eases Vertigo's work load and helps get the tourney up and running faster.
And it's a just plain fun rule. It should create a good diversity of bot types.
949
« on: June 05, 2011, 11:58:07 PM »
That is awesome. A blatant clone, but an awesome blatant clone. ...Ice Phoenix still has bigger and better wings though.
950
« on: June 05, 2011, 11:36:59 PM »
youshould.... expand the number of entries..
The max for "minor league" (first 3) tournaments is 16. Although it's annoying when there are no major league tournaments open and we're starved for tournaments, I do understand and agree with why that rule is there. We don't want an unproven host being overwhelmed with too many entries. Though I would be in favor of increasing the maximum sooner, like after the first 2 tournaments. My bot wasn't designed with rumbles in mind,
Thats why I havent bothered with the Wildcard..
Mine wont last very long at all, so the spot may as well go to someone with a chance..
Stop making me feel guilty for entering. :P I thought the same thing as you, but then realized that "someone with a chance" can be roughly translated as "someone with a generic HS or SnS". With me and 090901 in there, there can only be at most 2 HS now (not sure what R1885 is entering), which gives one of the two of us a much better chance at winning. Either one of us would get owned with 3 HS in the arena but 2 is a little bit better odds. (You're welcome, 090901. :P) Of course I still might not even get in if anyone sent in bots in the 3 hours between 090901's last front page update and the time I entered.
951
« on: June 05, 2011, 10:28:34 PM »
Hmm, was thinking about kloning Xception as a BW for this. Guess that's not gonna happen now. Not a huge deal though, since my prototype didn't turn out as good as I hoped.
It seems the RA2 community is starved for tournaments at the moment. As soon as one appears in Signups it's like a raw steak tossed into a kennel of hungry Rottweilers.
952
« on: June 05, 2011, 10:18:32 PM »
Signups all but full in one day!? That's like a BBEANS-level response. I was expecting signups to fill quickly, but not THAT quickly.
*shudders to imagine the flood of entries I will get when I announce Ironbot signups*
My bot wasn't designed with rumbles in mind, and I see 090901 will have a VS in there which can probably beat me... not sure if I should even bother entering the wildcard, but as long as I have my bot already built and AI'd, it seems kind of a waste not to. I will enter anyway and see how it goes.
953
« on: June 05, 2011, 12:46:24 AM »
^So Firestorm is coming soon?
Also Click, will Nightmare be more stable in DSL3? Because for most matches he plays random bouncing and jumping.
Nightmare is not a stable design. There's only so much I can do to keep it on its wheels. I haven't noticed any random bouncing and jumping though. And I'm not sure when I'll get around to finishing up Firestorm.
954
« on: June 05, 2011, 12:41:46 AM »
Yup a small wedge is a must on any popup, unless you want to focus purely on HS-killing and don't care about other wedges.
The casters should go all the way to the edge of the chassis, so spinners have a hard time hitting the sides. The sides are the most vulnerable part and need to be protected. As for the height of the casters, tall ones are good for blocking hits, but short ones make it easier for bots to slide up the wedge. You need to find a good balance between the two. I find that 15cm height casters work pretty well.
Neat design putting the drive inside the chassis, though I doubt it's the most efficient setup.
955
« on: June 05, 2011, 12:31:27 AM »
Is the plow really doing anything? Or would it be better with a bit of extra armor on the top and/or bottom?
956
« on: June 05, 2011, 12:25:25 AM »
I HATE EVERYTHING, INCLUDING THIS BOT.
 Is that better? :P
957
« on: June 05, 2011, 12:14:53 AM »
Which reminds me...now that we have Shish Kabot, will Vladiator be removed, or will it stay?
Vladiator will stay; it will be the SHW on a team with Shish-Kabot, a poky MW I haven't decided on yet, and Vlad the Impaler. SKBT shows that Click failed making an accurate replica. the original is a bit taller then the ingame on
:P
That photo looks a bit squished, look at the wheels. Also look at the picture in SKBT's avatar, Shish-Kabot is clearly flatter in that one. I know that the replica's height is approximately accurate because the screws on the skin are circular. If it was much too flat, they would be ovals. Explosion? Please :P
Patience... it will get done. Also what happened to the updated Firestorm you promised us? :P
Got sidetracked by a bunch of other stuff. It's been like 90% done for several months. Honestly though it looks exactly the same as the old Firestorm, it's just a full HW now and is more powerful to match.
958
« on: June 03, 2011, 11:31:57 PM »
ohgodthereshouldbeateamofthwartoises :O :O :O
Not sure if Thwartoise would work as a LW. Somehow I don't think it would. It might be good as a DSL MW or HW though.
959
« on: June 03, 2011, 11:26:39 PM »
why don`t you shorten it and put an spike (or two) on it`s end?
Because that extender is only 5 kgs, so if I made it any shorter it would actually be heavier. :P And even if I got rid of it entirely I wouldn't have weight for another razor.
960
« on: June 03, 2011, 11:19:50 PM »
Looks like GK's Fedex Uno in stock. Fedex Uno did really good so that bot should be good too... I bet the reduced speed of the angle motors hurt it though.
Pages: 1 ... 41 42 43 44 45 46 47 [48] 49 50 51 52 53 54 55 ... 174
|