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 - Badnik96
8401
« on: June 03, 2012, 08:32:00 PM »
Probably gonna use Astraphobia 2 unless I can think of something better.
8402
« on: June 03, 2012, 08:31:05 PM »
Could you center the MOE blade so it isn't asymmetrical?
8403
« on: June 03, 2012, 08:21:55 PM »
Using Father of Flaze and maaaaaaaybe SparkPlug. Or something new. Dunno.
8404
« on: June 03, 2012, 08:19:19 PM »
Looks kinda small for a HW IMO, how heavy is it?
8405
« on: June 03, 2012, 08:17:28 PM »
Can we get another angle? In that one it's hard to see where the blade is cutting.
8406
« on: June 03, 2012, 06:02:42 PM »
DP
tried to get a caster on but there isn't space D:
8407
« on: June 03, 2012, 06:02:06 PM »
Is it a MW or a HW?
8408
« on: June 03, 2012, 05:58:39 PM »
Completely forgot casters  And the snapper2s are decent, do up to 500 if they hit right
8409
« on: June 03, 2012, 05:23:32 PM »
owait that was you?? I thought it was Craaig.
8410
« on: June 03, 2012, 05:18:14 PM »
DP  Coelophysis DSA Dunno if Snapper2s are the best choice, but they do OK in combat until about 2 minutes have passed Also the side extenders are to eat up weight and/or protect against HS
8411
« on: June 03, 2012, 02:03:36 PM »
lol censored URL=404
Nice bot though.
8412
« on: June 03, 2012, 12:08:57 PM »
The only way to do this: bots that have revolutionized RA2 should be there, and bots that are the best of their kind should be there. DSL should not be included. Nothing against DSL, but it's NOT the 10 year anniversary of it, it's the 10 year anniversary of RA2 Stock.
These two lines do not add up. DSL has been a LARGE part of RA2 for many years, so ignoring the other half of RA2 bot building seems ridiculous. This is the tenth anniversary of the game. Should't we be celebrating all aspects of it's evolution through the years, instead of arbitrarily cutting out an entire part of RA2?
THIS
8413
« on: June 03, 2012, 12:08:03 PM »
the custom textures folder and i really like it, good work badnik !!
no, the texture library folder. Not the custom textures folder. And thanks
8414
« on: June 03, 2012, 10:39:14 AM »
DP
The download is now on the first post. Get it while it's hot!
8415
« on: June 03, 2012, 09:09:06 AM »
I'm kinda planning a stock tourney too...
8416
« on: June 02, 2012, 06:47:25 PM »
I was going by memorability and/or innovation.
8417
« on: June 02, 2012, 06:44:38 PM »
What do those letters stand for?
8418
« on: June 02, 2012, 06:43:25 PM »
Even more awesome.
And Slaphappy wheels FTW
8419
« on: June 02, 2012, 12:31:45 PM »
DP
Can anyone help me with this? I'm trying to edit FBSInvertDir to support a spinning weapon for my new SnS, but in-game the bot doesn;t move for 5 seconds and then the game crashes.
Here's the Py as of now:
from __future__ import generators import plus import AI from AI import vector3 import Arenas import Gooey import math import Tactics
class FBSInvertPlus(AI.SuperAI): "Spins!" name = "FBSInvertPlus" #Like FBSPlus, but does not change the direction when inverted. #For Melty Brain type SnS/HS that are more efficient when spinning in a certain direction. #Brought to you by Naryar and ripped off Apanx's FBS.py #Modified by Clickbeetle to reduce lag #Edited by Badnik96 to support spinning weapons
def __init__(self, **args): AI.SuperAI.__init__(self, **args) self.tactics.append(Tactics.Engage(self)) self.spinspeed = 6.0 #Turningspeed to achieve before moving self.accuracy = 0.01 #Radians self.rampupfactor = (math.pi / 2 - self.accuracy) * (math.pi / 2 - (math.pi - self.accuracy) ) * -1 self.direction = 1 # 1 or -1 self.tickFactor = 3.75 if 'direction' in args: self.direction = args.get('direction') if 'spinspeed' in args: self.spinspeed = args.get('spinspeed') if 'accuracy' in args: self.accuracy = args.get('accuracy') if 'Ticks' in args: self.tickFactor = args.get('Ticks') def Activate(self, active): plus.AI.__setattr__tickInterval__(self, 0.125/self.tickFactor) print self.rampupfactor if active: if AI.SuperAI.debugging: self.debug = Gooey.Plain("watch", 430, 75, 250, 165) tbox = self.debug.addText("line0", 0, 0, 250, 15) tbox.setText("Throttle") tbox = self.debug.addText("line1", 0, 15, 250, 15) tbox.setText("Turning") tbox = self.debug.addText("line2", 0, 30, 250, 15) tbox.setText("") tbox = self.debug.addText("line3", 0, 45, 250, 15) tbox.setText("") tbox = self.debug.addText("line4", 0, 60, 250, 15) tbox.setText("") tbox = self.debug.addText("line5", 0, 75, 250, 15) tbox.setText("") tbox = self.debug.addText("line6", 0, 90, 250, 15) tbox.setText("") tbox = self.debug.addText("line7", 0, 105, 250, 15) tbox.setText("") tbox = self.debug.addText("line8", 0, 120, 250, 15) tbox.setText("") tbox = self.debug.addText("line9", 0, 135, 250, 15) tbox.setText("")
return AI.SuperAI.Activate(self, active)
def Tick(self): if AI.SuperAI.debugging: speed = self.GetSpeed() self.DebugString(4, "Speed = " + str(speed))
turning_speed = self.GetTurning() self.DebugString(5, "TSpeed = " + str(turning_speed)) if self.weapons: # spin up depending on enemy's range enemy, range = self.GetNearestEnemy() if enemy is not None and range < self.spin_range: self.Input("Spin", 0, 1) elif self.GetInputStatus("Spin", 0) != 0: self.Input("Spin", 0, 0) return AI.SuperAI.Tick(self) def LostComponent(self, id): #print "Lost Component!" return AI.SuperAI.LostComponent(self, id) def DebugString(self, id, string): if self.debug: if id == 0: self.debug.get("line0").setText(string) elif id == 1: self.debug.get("line1").setText(string) elif id == 2: self.debug.get("line2").setText(string) elif id == 3: self.debug.get("line3").setText(string) elif id == 4: self.debug.get("line4").setText(string) elif id == 5: self.debug.get("line5").setText(string) elif id == 6: self.debug.get("line6").setText(string) elif id == 7: self.debug.get("line7").setText(string) elif id == 8: self.debug.get("line8").setText(string) elif id == 9: self.debug.get("line9").setText(string) def StuckHandler(self): "This default generator is called when the bot is almost immobile." while 1: # back up for 2 seconds (will stop once we're not immobile) for i in range(0, 16*self.tickFactor): pos = vector3(self.GetLocation()) dir = vector3(self.GetDirection()) self.NormalDriveToLocation((pos - dir * 3).asTuple(), True) yield 0 # go forward for 2 seconds for i in range(0, 16*self.tickFactor): pos = vector3(self.GetLocation()) dir = vector3(self.GetDirection()) self.NormalDriveToLocation((pos + dir * 3).asTuple(), True) yield 0 def InvertHandler(self): # fire SRM once per two seconds (until we're upright!) while 1: self.Input("SRM", 0, 1) for i in range(0, 8*self.tickFactor): yield 0 def Think(self): self.Evaluate() self.countdownToEvaluation = 8*self.tickFactor def DriveToWaypoints(self, waypoints, in_reverse = False): throttle = 0 found = False while len(waypoints) > 0 and not found: grid = waypoints[0] pos = Arenas.currentArena.FromGrid(grid) dist = self.GetDistanceTo(pos) if dist < 1: waypoints.pop(0) else: # drive to this point h = self.GetHeadingTo(pos, in_reverse) self.DebugString(6, str(self.GetHeading(False))) self.DebugString(7, str(h)) h -= math.pi / 8 * self.direction if h > math.pi: h -= 2 * math.pi elif h < -math.pi: h += 2 * math.pi h = abs(h) if abs(self.GetTurning()) > self.spinspeed: turnFactor = ((h - self.accuracy) * (h - (math.pi - self.accuracy) ) / self.rampupfactor) if (h>1.57): TurnInput = int(max(100 * turnFactor, 0) * self.direction) ThrottleInput = int((100 + TurnInput) * -1) self.Turn(TurnInput) self.Throttle(ThrottleInput) if (h<1.57): TurnInput = int(max(100 * turnFactor, 0) * self.direction) ThrottleInput = int((100 + TurnInput)) self.Turn(TurnInput) self.Throttle(ThrottleInput)
else: self.Turn(100 * self.direction) found = True if len(waypoints) == 0: self.Turn(100 * self.direction) self.Throttle(0) return found def NormalDriveToLocation(self, world_location, in_reverse = False, update_path = True, last_path = []): if self.GetDistanceTo(world_location) > 1: if update_path: a = Arenas.currentArena a.SetSearchRadius(self.fRadius) waypoints = list(a.GetPath(self.GetLocation(), world_location, False)) else: waypoints = last_path if len(waypoints) > 0: return self.NormalDriveToWaypoints(waypoints, in_reverse) else: return False else: self.Throttle(0) self.Turn(0) return False def NormalDriveToWaypoints(self, waypoints, in_reverse = False): throttle = 0 found = False while len(waypoints) > 0 and not found: grid = waypoints[0] pos = Arenas.currentArena.FromGrid(grid) dist = self.GetDistanceTo(pos) dir = 1 if in_reverse: dir = -1 if dist < 1: waypoints.pop(0) else: # drive to this point h = self.GetHeadingTo(pos, in_reverse) self.AimToHeading(h, in_reverse) speed = self.GetSpeed()
# slow down if we have to turn sharply if dist < abs(speed) and (h > .4 or h < -.4): throttle = 0 self.boost_throttle = self.max_throttle else: if speed * dir < self.top_speed: h = max(min(h, .4), -.4) # drive slower the more we need to turn our heading mps = dir * (.5 - abs(h)) * self.top_speed
# boost throttle if we're not going as fast as we'd like if (dir > 0 and speed < mps) or (dir < 0 and speed > mps): self.boost_throttle += (self.max_throttle * .1)
throttle = dir * (.5 - abs(h)) * self.boost_throttle else: throttle = 0 self.boost_throttle = self.max_throttle found = True self.Throttle(throttle) if len(waypoints) == 0: self.Turn(0) self.Throttle(0) return found # WIP, convert this into array for support of more wheel sides def Throttle(self, throttle): # if we're car steering and we're not moving much, throttle up if self.bCarSteering and self.last_turn_throttle != 0: speed = self.GetSpeed() if speed > 0 and speed < self.top_speed / 3: throttle = self.last_throttle + 10 elif speed < 0 and speed > -self.top_speed / 3: throttle = self.last_throttle - 10
throttle = min(max(throttle, -100), 100)
if self.bInvertible and self.IsUpsideDown(): throttle = -throttle
self.set_throttle = throttle self.Input('Forward', 0, throttle) self.DebugString(0, "Throttle = " + str(int(throttle))) def Turn(self, turning): turning = min(max(turning, -100), 100) self.set_turn_throttle = turning self.Input('LeftRight', 0, -turning) self.Input('LeftRight', 1, turning) self.DebugString(1, "Turning = " + str(int(turning))) AI.register(FBSInvertPlus)
8420
« on: June 02, 2012, 12:01:48 PM »
wait how did you get moe motors in the chassis like that? It's too short...
|