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 - Trovaner
Pages: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 ... 64
121
« on: September 02, 2015, 10:29:05 PM »
Since next month is Halloween, let's do a themed BOTM. Here's how this works. Every participant creates a bot that follows the given bot restrictions for that month. They then create a simple splash for their bot and uploaded it to GTM's BOTM Uploader before the deadline expires. After the deadline expires, a poll will be created for the community to vote on their favorite entry. At the end of the month, the splash with the most votes will be put on GTM's homepage for a month. Bot RestrictionsSplash Rules- Must be Halloween themed
- Entries must be uploaded using the BOTM Uploader
- One bot per splash
- One splash per member
- Please do not put anything in that identifies you as the creator. Credit will be given after the poll to reduce bias and give people a chance to guess who made what.
- There must be at least one image of the insides in the splash.
- The weight must be given in the splash.
- Images must be either JPG, PNG, or GIF.
- Images must be no wider than 700px and no taller than 800px
- Entries must be in by September 27, 2015 at 11:59 PM Central Standard Time (GMT - 5:00) so that we can spent the rest of the month voting.
Please upload your entries using the BOTM Uploader. Questions/comments?
122
« on: September 02, 2015, 09:57:34 PM »
It was a close race but it looks like Tashic is our winner. Congrats!
123
« on: August 29, 2015, 10:48:18 PM »
I'm seeing some pretty sweet bots this month... #1 Mazakari  #2 Kungfooey242  #3 Mr AS  #4 Thrackerzod  #5 Tashic
124
« on: August 27, 2015, 08:57:39 AM »
You should be able to remove the second set of non-readable characters and set the true found directly above it to false.
If I get the chance, I'll see about doing it later today.
125
« on: August 10, 2015, 07:29:21 AM »
Love the skin.
Pole spikes only deal damage with the tip so they probably don't work very well on the end of weapon racks.
126
« on: August 09, 2015, 10:25:13 AM »
Alright, I've sent you an email containing a temporary password.
127
« on: August 08, 2015, 11:41:19 PM »
Alright, your email has been updated. Let me know if you are still unable to recover your account and I'll send you a new password.
128
« on: August 08, 2015, 11:32:29 PM »
So are we not allowing the 4 'free' ballasts that are normally included in Ironforge?
I'm fine with it. I've updated the OP with this clarification.
129
« on: August 06, 2015, 08:38:00 PM »
With all of the recent activity surrounding Ironforge, I think it is fitting to have this month's BOTM be Ironforge 1.1. Here's how this works. Every participant creates a bot that follows the given bot restrictions for that month. They then create a simple splash for their bot and uploaded it to GTM's BOTM Uploader before the deadline expires. After the deadline expires, a poll will be created for the community to vote on their favorite entry. At the end of the month, the splash with the most votes will be put on GTM's homepage for a month. Bot Restrictions- Ironforge 1.1
- Standard (or IRL if you want to go with something a tad more strict)
- HW (up to 400kg + 4 'free' ballasts)
- No AI components
- No cheatbot2 or custom components
- No BFE, AAM, HAX mode, Zero glitch, etc.
Splash Rules- Entries must be uploaded using the BOTM Uploader.
- One bot per splash
- One splash per member
- Please do not put anything in that identifies you as the creator. Credit will be given after the poll to reduce bias and give people a chance to guess who made what.
- There must be at least one image of the insides in the splash.
- The weight must be given in the splash.
- Images must be either JPG, PNG, or GIF.
- Images must be no wider than 700px and no taller than 800px.
- Entries must be in by August 28, 2015 at 11:59 PM Central Standard Time (GMT - 6:00) so that we can spend the rest of the month voting.
Please upload your entries using the BOTM Uploader. Questions/comments?
130
« on: August 04, 2015, 12:23:24 AM »
Have you tried upgrading your drivers?
If you manually change the resolution in the CFG, do you see these popups?
131
« on: August 03, 2015, 01:11:33 AM »
As Jonzu said, "congrats Pwnie." It looks like you won this month's BOTM.
132
« on: July 31, 2015, 02:19:21 PM »
Try something like this for your Tick method:
def Tick(self): for each in self.players: if plus.getLocation(each)[1] < -10: # Adjust this parameter to floor height(s). plus.eliminatePlayer(each)
################## Bot Flames + Smoke ##################-------------
if self.bHazardsOn: self.RI_0 = randint(-4, 4) self.RI_1 = randint(-4, 4) self.RI_2 = randint(-4, 4) self.RI_3 = randint(-2, 2) self.RI_4 = randint(-2, 2) self.RI_5 = randint(-2, 2) self.RI_6 = randint(-2, 2) self.RI_7 = randint(-2, 2) self.RI_8 = randint(-2, 2) self.RI_9 = randint(-2, 2) self.RI_D = randint(1, 4) self.RI_Y = randint(0, 2)
self.BOT_Flame_0.Tick() # Individual bot flames self.BOT_Flame_1.Tick() # "" self.BOT_Flame_2.Tick() # "" self.BOT_Flame_3.Tick() # "" #self.BOT_Flame_4.Tick() # Generic Lightning striking bot_flame. #self.BOT_Flame_5.Tick() #self.BOT_Flame_6.Tick() #self.BOT_Flame_7.Tick() #self.BOT_Flame_8.Tick()
if 0 in self.players: if plus.getHealth(0,0) < 0.2: # if self.RI_SandF_0 <= 2: plus.emitSmoke(1, (plus.getLocation(0)), (self.RI_3, 1 ,self.RI_4), (.2,.4,.2)) if plus.getHealth(0,0) < 0.1: # if self.RI_SandF_0 < 0: plus.emitSmoke(1, (plus.getLocation(0)), (self.RI_4, self.RI_Y, self.RI_5), (.2,.4,.2)) self.BOT_Flame_0.BotFlameOff() self.BOT_Flame_0 = HazardsBlueRay.BotFlame(plus.getLocation(0), (self.RI_4, self.RI_Y, self.RI_5), (.2, .4, .2), .8) self.BOT_Flame_0.BotFlameOn()
if 1 in self.players: if plus.getHealth(1,0) < 0.2: # if self.RI_SandF_1 <= 2: plus.emitSmoke(1, (plus.getLocation(1)), (self.RI_4, 1 ,self.RI_5), (.2,.4,.2)) if plus.getHealth(1,0) < 0.1: # if self.RI_SandF_1 < 20: plus.emitSmoke(1, (plus.getLocation(1)), (self.RI_5, self.RI_Y, self.RI_6), (.2,.4,.2)) self.BOT_Flame_1.BotFlameOff() self.BOT_Flame_1 = HazardsBlueRay.BotFlame(plus.getLocation(1), (self.RI_5, self.RI_Y, self.RI_6), (.2, .4, .2), .8) self.BOT_Flame_1.BotFlameOn()
if 2 in self.players: if plus.getHealth(2,0) < 0.2: # if self.RI_SandF_2 <= 2: plus.emitSmoke(1, (plus.getLocation(2)), (self.RI_5, 1 ,self.RI_6), (.2,.4,.2)) if plus.getHealth(2,0) < 0.1: # if self.RI_SandF_2 < 0: plus.emitSmoke(1, (plus.getLocation(2)), (self.RI_6, self.RI_Y ,self.RI_7), (.2,.4,.2)) self.BOT_Flame_2.BotFlameOff() self.BOT_Flame_2 = HazardsBlueRay.BotFlame(plus.getLocation(2), (self.RI_6, self.RI_Y, self.RI_7), (.2, .4, .2), .8) self.BOT_Flame_2.BotFlameOn()
if 3 in self.players: if plus.getHealth(3,0) < 0.2: # if self.RI_SandF_3 <= 2: plus.emitSmoke(1, (plus.getLocation(3)), (self.RI_6, 1 ,self.RI_7), (.2,.4,.2)) if plus.getHealth(3,0) < 0.1: # if self.RI_SandF_3 < 0: plus.emitSmoke(1, (plus.getLocation(3)), (self.RI_8, self.RI_Y, self.RI_9), (.2,.4,.2)) self.BOT_Flame_3.BotFlameOff() self.BOT_Flame_3 = HazardsBlueRay.BotFlame(plus.getLocation(3), (self.RI_8, self.RI_Y, self.RI_9), (.2, .4, .2), .8) self.BOT_Flame_3.BotFlameOn()
################## Bot Flames + Smoke ##################-------------
return Arenas.SuperArena.Tick(self)
I'm posting this from my phone so hopefully I didn't mess up the spacing. Basically, I moved the random integers into the bHazardsOn check since they aren't being used when hazards are off (this shouldn't fix anything but it is better coding) and indented all of the smoke and fire activation code so that the previously noted issue doesn't happen in a different place.
Edit: I'll look into the music issue later.
133
« on: July 31, 2015, 12:55:12 AM »
Your HazardsBlueRay.py should be fine. Mine is from around the same time and I don't recall Mad ever changing a hazard after a public release (he usually just made new hazards with small tweaks).
The issue that I saw before has to do with all of your flame hazards not being saved to variables when hazards were off in the HazardsOn method. However, you are still trying to use them down in the Tick method. Just to give you a simplified example, here is what I am seeing for self.BOT_Flame_0: (anything that doesn't help in explaining the issue has been removed so I wouldn't recommend copy/pasting this)
def HazardsOn(self, on): if on: self.BOT_Flame_0 = HazardsBlueRay.BotFlame((0, 0, 0), (0, 1, 0), (.2, .4, .2), .8)
def Tick(self): self.BOT_Flame_0.Tick()
and here is one way of fixing this issue:
def HazardsOn(self, on): if on: self.BOT_Flame_0 = HazardsBlueRay.BotFlame((0, 0, 0), (0, 1, 0), (.2, .4, .2), .8)
def Tick(self): if self.bHazardsOn: self.BOT_Flame_0.Tick()
In other words, self.BOT_Flame_0 is supposed to be an instance of an object but, when that object has not been instantiated, you can't call one of its methods (Tick). Currently, self.BOT_Flame_0 has no value when hazards are off.
I haven't gotten a chance to look into your other issues yet but I promise to get to them ASAP.
134
« on: July 31, 2015, 12:25:11 AM »
I'm glad you got that other issue sorted out. I was just about to look into when I saw that you made an update.
As for your new question, perhaps this would help?
#plus.animateCamera(XYZ-StartingLocation, (V-Angle, H-Angle), Starting Zoom, XYZ-EndingLocation, (V-Swing, H-Swing), End Zoom, Delay, Duration) - camera movement (the first half of the parameters correspond to the starting values and the second half corresponds to the ending values followed by the delay and duration. Anything starting with XYZ corresponds to coordinates (given as a tuple). The V-Angle and H-Angle determine the direction of the camera. Delay can be negative but that just causes it to go slow then quickly get to the end of the sequence in the last tick. Once an animation has started, there isn't any way of stopping it. #plus.fadeFromBlack(Duration) - suddenly turns screen black then fades back in over the given duration. #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]) - TBD #plus.setCameraPosition(X, Y, Z) - places a camera at the specified coordinates #plus.setCameraRotation(V-Angle, H-Angle) - changes the direction of the current camera (works on all camera types).
The action cams are all using plus.animateCamera with no delay and very short durations (so that they can respond quickly to events on the screen).
135
« on: July 29, 2015, 09:04:47 AM »
Lots of entries this time around... #1 090901  #2 GK  #3 Lightning  #4 Mr AS  #5 Mystic2000 .png) #6 Pwnator  #7 RedAce  #8 Thrackerzod
136
« on: July 26, 2015, 12:27:26 AM »
I don't recall this ever happening to me when using the action cam but I'll play around with it when I have some time.
Based on a very quick scan of the arena code, I'm guessing this happens every time you have hazards off. I'm definitely seeing an issue but I'm not sure if it is the culprit. Would you mind testing this?
137
« on: July 21, 2015, 03:30:49 AM »
1. You currently have something like this:
def HazardsOn(self, on): self.spinner = self.GetHinge("Hinge01") self.spinner.SetAutoLocks(False, False) self.spinner.Lock(False)
self.spinner = self.GetHinge("Hinge02") self.spinner.SetAutoLocks(False, False) self.spinner.Lock(False)
self.spinner = self.GetHinge("Hinge03") self.spinner.SetAutoLocks(False, False) self.spinner.Lock(False)
self.spinner = self.GetHinge("Hinge04") self.spinner.SetAutoLocks(False, False) self.spinner.Lock(False)
self.prism = self.AddPrismatic("floor", "bladewall", 0, -1, 0, 0, 3, 0) self.prism.SetAutoLock(False) if on: self.SetSubMaterialSound("blade1", "metal", 2.0, "Sounds\\spinnerhit.wav") self.spinner.SetPowerSettings(150,68) self.spinner.SetDirection(-100) self.SetSubMaterialSound("blade2", "metal", 2.0, "Sounds\\spinnerhit.wav") self.spinner.SetPowerSettings(150,68) self.spinner.SetDirection(-100) self.SetSubMaterialSound("blade3", "metal", 2.0, "Sounds\\spinnerhit.wav") self.spinner.SetPowerSettings(150,68) self.spinner.SetDirection(-100) self.SetSubMaterialSound("blade4", "metal", 2.0, "Sounds\\spinnerhit.wav") self.spinner.SetPowerSettings(150,68) self.spinner.SetDirection(-100)
What I'm saying is that you should have something like this:
def HazardsOn(self, on): self.spinner1 = self.GetHinge("Hinge01") self.spinner1.SetAutoLocks(False, False) self.spinner1.Lock(False) self.spinner2 = self.GetHinge("Hinge02") self.spinner2.SetAutoLocks(False, False) self.spinner2.Lock(False) self.spinner3 = self.GetHinge("Hinge03") self.spinner3.SetAutoLocks(False, False) self.spinner3.Lock(False) self.spinner4 = self.GetHinge("Hinge04") self.spinner4.SetAutoLocks(False, False) self.spinner4.Lock(False)
if on: self.SetSubMaterialSound("blade1", "metal", 2.0, "Sounds\\spinnerhit.wav") self.spinner1.SetPowerSettings(150,68) self.spinner1.SetDirection(-100) self.SetSubMaterialSound("blade2", "metal", 2.0, "Sounds\\spinnerhit.wav") self.spinner2.SetPowerSettings(150,68) self.spinner2.SetDirection(-100) self.SetSubMaterialSound("blade3", "metal", 2.0, "Sounds\\spinnerhit.wav") self.spinner3.SetPowerSettings(150,68) self.spinner3.SetDirection(-100) self.SetSubMaterialSound("blade4", "metal", 2.0, "Sounds\\spinnerhit.wav") self.spinner4.SetPowerSettings(150,68) self.spinner4.SetDirection(-100)
Since "self.spinner" is just a variable, you could have called it anything but, by having them named the same, you are only setting the power and direction for the last spinner rather than all of them. This wouldn't have mattered if it weren't for the fact that you use object assigned to the variable again after the IF condition ("if on:").
It might help if I make an analogy... Let's say bikes can only hold one person at a time and there are 2 people that want to ride it to different destinations. If we followed the logic that you have than we would have one person get on a bike and immediately get off of it so that the next person can get on and go to their destination. If we follow my logic than we would have two bikes so that both people can go to their destinations. The bikes are our variables, the people are our hinges, and the destinations are the properties that we assign to our variable after the IF condition. This analogy kind of falls apart if you read too much into it but I hope it helps in getting my point across.
2. When I posted that, I was thinking you were going to have to make calls to ApplyTorque but, now that I think about it, I think there is a way of setting it up so that you don't need to tell it to spin once per Tick. IIRC, Mars Base Arena does something like the former with the rover's wheels. I'd suggest taking a look at that. Edit: I checked and it may be as simple as setting your autolocks so that the first value is False and the second value is True (I can't remember what these correspond to but this is how I did it in one of my custom arenas).
As for your other issues... 3. Having a blank arena list or missing arena usually means that there was a syntax error in your code.
4. When you add collision lines, the first two numbers represent the position of one end of the line while the second two numbers represent 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. There isn't really much else to it. Perhaps you are mixing them up with POVs?
138
« on: July 21, 2015, 01:20:34 AM »
I've added download descriptions for AU Battlebots v1.1, AU Battlebots v1.2, and AU Battlebots v1.3. After sifting through the files and reading the appropriate readmes, it looks like 1.1 is the actual pack and the other two are just patches for it. To reduce the likelihood of error, we'll go over how to install them: - Install a fresh copy of stock RA2.
- Just to be extra careful, make sure that your fresh copy is working.
- Run AceUplink_BattleBots_AI_Pack_1_1.exe.
- In the prompt, enter the path to your fresh installation and run it.
- Before proceeding further, start up RA2 and confirm that the splash screen has changed.
- Extract AUBattlebotsAIPack1_2.zip to a separate folder.
- Copy/Paste all of the files inside of the folder into RA2's root directory (in both cases, you should see AI, Arenas, Components, UI, etc.).
- When prompted, always select the option to Replace the existing file.
- Before proceeding further, start up RA2 and confirm that the splash screen changed again (it should now say "AI Pack 1.2").
- Extract BB1.3.zip to a separate folder.
- Copy/Paste all of the files inside of the "Robot Arena 2" folder into RA2's root directory.
- When prompted, always select the option to Replace the existing file.
- Confirm that the splash screen has changed again (it should now say "AI pack 1.3").
139
« on: July 17, 2015, 01:04:25 PM »
That is an overlay created and added by some other application. RA2 does not have anything like that built in to it.
140
« on: July 14, 2015, 08:49:08 AM »
I just remembered that nobody answered your question...
Based on the fact that your hinges are spinning, your Arena.gmf is working.
In the Arena.py, I see two issues. 1. You need to define 4 variables instead of just 1 so that you can reference each Hinge individually. Right now, you are using "self.spinner" for all four of you hinges so only the last hinge would be accessible inside of the Tick method (since you are overwriting the reference to the hinge object each time). 2. You need to apply force every tick for the blade to spin continuously.
If this doesn't help, I can take a more thorough look at your code when I get home from work...
Pages: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 ... 64
|