Ticket #74 (closed task: fixed)

Opened 3 years ago

Last modified 2 years ago

The Brand New Jav Elimination Arena - By Kim

Reported by: Kim Owned by: flibb
Priority: high Component: Bots - Other
Version: Latest version from repository Severity: major
Keywords: jav elim elimination Cc:

Description

I would like this to be a separate bot, where the permissions to start it can be moderated by whoever I want to moderate the games. It cannot be used by all staff hosts. If work on Robo_Ref / baseelim arena fails, I am hoping this will be the next best substitute.

My arena features 5 divided arenas, each the same size as a typical TWLJ map. Each sub-arena contains 16 individual safes, where the players start. For a maximum occupancy of 4 full starting arenas, 64 players. The survivor of each of the 4 sub-arenas must then be warped to their respective safe in the final sub-arena, where the last 4 players will eliminate one another, carrying over the number of deaths they had after surviving their own starting arena.

I just need a !start and !stop as the main functions for the bot. The host will get all the players When it !start's, the bot will lock the arena, randomize the teams filling up the freqs from the lowest number up to the highest maximum of 64 freqs (to freq 63). Upon entry, all players are set to freq 200, which spawns them in one of the 3 safety circles at coords: 490 286, 512 286, and 534 286. Once you !start it, the bot will randomize the players onto the freqs 0-63, and warp all players to the safes in their respective starting arenas. WARP is disabled. Have the bot spec the players at 10 deaths, with 3 lagouts each, with 60 seconds to return per lagout or disqualified. If disqualified, count the record as how many kills they attained so far, and 10 deaths.

Make the bot enforce the +1 death rule just as if it was in a TWJD match (instead of removing, I want the +1 death to the player). You may have to attain the exact settings for how much time a player gets outside of the line. This line is at the Y:467 parallel. So, a player below this in any 5 of the arenas, must be subjected to the countdown for +1 death as soon as they are spawned.

Enforce baseelim lag limits. I would like the lagout system to be the same as TournyBot, in that, you can spec when you're not playing, but allow 10 seconds for the player to return. Make sure that when they !lagout during the game, that it spawns accordingly to where they are. During the first rounds, they will be in one of the 4 arenas, but in the finals, they'll be in the middle arena, so the spawn point will change. TournyBot manages to do this somehow, I hope this is feasible to code as well. I dislike the lag limits in Tourny so please do not use them, please use the lag limits in baseelim arena. I don't need the bot to enforce its own lag limits.

The spawn areas for the 4 arenas will be as follows:
Freqs 0-15 will spawn in the 1st arena (furthest left)
Freqs 16-31 will spawn in the 5th arena (furthest right)
Freqs 32-47 will spawn in the 4th arena (2nd closest to the far right)
Freqs 48-63 will spawn in the 2nd arena (2nd closest to the far left)

Safe coords and GO GO GO coords (radius 0)
Freq 0 - 78 344 and 78 348
Freq 1 - 77 452 and 77 448
Freq 2 - 218 344 and 218 348
Freq 3 - 219 452 and 219 448
Freq 4 - 109 330 and 109 334
Freq 5 - 122 437 and 122 433
Freq 6 - 187 330 and 187 334
Freq 7 - 173 437 and 173 433
Freq 8 - 148 486 and 148 482
Freq 9 - 148 331 and 148 335
Freq 10 - 67 385 and 71 385
Freq 11 - 229 385 and 225 385
Freq 12 - 89 416 and 93 416
Freq 13 - 207 416 and 203 416
Freq 14 - 148 493 and 148 497
Freq 15 - 148 450 and 148 446

Freq 16 - 806 344 and 806 348
Freq 17 - 805 452 and 805 448
Freq 18 - 946 344 and 946 348
Freq 19 - 947 452 and 947 448
Freq 20 - 837 330 and 837 334
Freq 21 - 850 437 and 450 433
Freq 22 - 915 330 and 915 334
Freq 23 - 901 437 and 901 433
Freq 24 - 876 486 and 876 482
Freq 25 - 876 331 and 876 335
Freq 26 - 795 385 and 799 385
Freq 27 - 957 385 and 953 385
Freq 28 - 817 416 and 821 416
Freq 29 - 935 416 and 931 416
Freq 30 - 876 493 and 876 497
Freq 31 - 876 450 and 876 446

Freq 32 - 260 344 and 260 348
Freq 33 - 259 452 and 259 448
Freq 34 - 400 344 and 400 348
Freq 35 - 401 452 and 401 448
Freq 36 - 291 330 and 291 334
Freq 37 - 304 437 and 304 433
Freq 38 - 369 330 and 369 334
Freq 39 - 355 437 and 355 433
Freq 40 - 330 486 and 330 482
Freq 41 - 330 331 and 330 335
Freq 42 - 249 385 and 253 385
Freq 43 - 411 385 and 407 385
Freq 44 - 271 416 and 275 416
Freq 45 - 389 416 and 385 416
Freq 46 - 330 493 and 330 497
Freq 47 - 330 450 and 330 446


Freq 48 - 624 344 and 624 348
Freq 49 - 623 452 and 623 448
Freq 50 - 764 344 and 764 348
Freq 51 - 765 452 and 765 448
Freq 52 - 655 330 and 655 334
Freq 53 - 668 437 and 668 433
Freq 54 - 733 330 and 733 334
Freq 55 - 719 437 and 719 433
Freq 56 - 694 486 and 694 482
Freq 57 - 694 331 and 694 335
Freq 58 - 613 385 and 617 385
Freq 59 - 775 385 and 771 385
Freq 60 - 635 416 and 639 416
Freq 61 - 753 416 and 749 416
Freq 62 - 694 493 and 694 497
Freq 63 - 694 450 and 694 446

The last survivor of Freqs 0-15 will be warped to 795 385
The last survivor of Freqs 16-31 will be warped to 957 385
The last survivor of Freqs 32-47 will be warped to 876 450
The last survivor of Freqs 48-63 will be warped to 876 331

When all 4 players have been warped to their final safes, the final game will begin, still speccing at whatever deaths the players have chosen. No scoreresets will take place. When the game has ended, I absolutely need a scoresheet print out of the stats of the players so I can tabulate the results to be reported. The stats I need are just Kills and Deaths. Separate the players into three sections. One section are the players who were killed in the first rounds, then the next section are the players who were killed in the final round, and then one separate line for the WINNER: Name and his/her record.

--ENCLOSED IS THE .LVL FOR THE ARENA--

Attachments

kimnewjav.lvl (101.4 KB) - added by Kim 3 years ago.

Change History

  Changed 3 years ago by Maverick

Kim, I'm still working on a new elim bot (although it takes some time already).
What's the relation of the new elim bot to this bot?

  Changed 3 years ago by Maverick

Reply from Kim (via e-mail):

Nothing, completely independent. THis is a weekend only event, kind of like how Tourny is right now.

  Changed 3 years ago by Barton

If anyone is going to do it then plz incl a !spec command for normal ppl to spec there ship. this problem is cost due a setting that prevents ppl from warping but u cant spec eather.

  Changed 3 years ago by flibb

  • owner set to flibb
  • status changed from new to assigned

  Changed 3 years ago by flibb

Couple of issues that come to mind: respawning and out of base detection

Respawning - I can think of 2 ways to handle this

When a player dies:
1) He respawns in the safe at the top, and the bot warps him to his base spawn area
advantage: no ?set commands, each base is divided into freqs 0-15,16-31,32-63
disdvantage: if a player warps, the bot has to warp him back, less clean

2) Set the 4 spawn coords to each base in the .cfg, then for the final match do a ?set to change the spawn to the middle base
advantage: player spawns in his base without warp
disadvantage: bases will be divided freqs (0,4,8,12..) (1,5,9,13..) (2,6,10,14..) (3,7,11,15..) and bot must ?set the spawn coords

I don't know which is better

Out of base detection:
The bot can only see what's on radar, so to watch all 4 bases accurately is a problem
One way is to move the bot periodically to cover the entire area, but the time a player is outside of base won't be recorded accurately
Another way might be to use 1 or more helper bots
Or the radar size could be made bigger, but that's probably not good

I don't really know what the answer is here

  Changed 3 years ago by flibb

Oh another option is to edit the map to make it easier for the bot the watch

  Changed 3 years ago by flibb

  • keywords jav elim elimination added

Bot is about 50% complete.
The coords for the final round seem to be wrong, going to use these:

431 385 -> 435 385
593 385 -> 589 385
876 450 -> 876 446
876 331 -> 876 335

Also I want to suggest making the final map (middle) a little different maybe from the others just to mix things up.

For the watching players, still not sure, probably going to try some priority queue based on time since last position update.

  Changed 3 years ago by Kim

Alright I'll make some adjustments to the final map like you said, I think its a good idea and I should've done that.

follow-up: ↓ 10   Changed 3 years ago by Kim

Attached the new map with updates.

Btw 876 coords aren't even in the final round arena, so what were u talkin about flibb? =p

in reply to: ↑ 9   Changed 3 years ago by flibb

Replying to Kim:

Attached the new map with updates.

Btw 876 coords aren't even in the final round arena, so what were u talkin about flibb? =p

well thats why i posted the values to make sure they are correct, u can at least give me the correct values

  Changed 3 years ago by Kim

441 452 -> 441 448
442 344 -> 442 348
382 344 -> 582 348
582 452 -> 582 448

sorry bout that mate

Changed 3 years ago by Kim

  Changed 3 years ago by Maverick

Kim asked me to test the javelim bot for deployment in Trench Wars.

We noticed the following bugs:

  • With 4 players the bot didn't work quite well:
       Maverickz> !start 1
     ._.:._.::._.:|:.:|:.    HOW TO PLAY    .:|:.:|:._.::._.:._.
    (        .    Four sub arenas will each have a     .        )
     )  ..  : seperate elimination match. The survivors :  ..  (
    ( ....: . of each sub arena will then battle each-  . :.... )
     )..... |     other carrying over their deaths.     | .....(
    THE UNLiKED > yeah
    The game will begin in 30 seconds. Each player will have 1 deaths.
    THE UNLiKED > why? :S
    Kim wins for Base 1 with 0 wins, 0 losses.
    Ayano wins for Base 2 with 0 wins, 0 losses.
    Maverickz wins for Base 3 with 0 wins, 0 losses.
      JavElimBot> You may spec and !return for the final round.
    exquisite wins for Base 4 with 0 wins, 0 losses.
    THE UNLiKED > torrents on lag ftw :D
    GO! GO! GO!
    
    Each player was warped to a base and was alone.
  • When getting eliminated, the bot PM'ed me to use !lagout
    Maverickz is out. 0 wins, 2 losses.
      JavElimBot> PM me with !lagout to return. You have 2 lagout(s) left.
    
  • Cosmetic "bug": The game will begin in 30 seconds. Each player will have 2 deaths. A player has 2 lifes or will be eliminated at 2 deaths, a player doesn't have 2 deaths :P
  • Also, if players are still floating around in any of the bases (maybe due to a core crash), when restarting the game the bot doesn't warp them to their safes?

However, these bugs are probably already solved because Kim has told me you had a newer version then what the repository contains?

Nonetheless, I think the bot already looks good and is working well.

  Changed 3 years ago by flibb

Committed up-to-date version to repository.

Please feel free to change any cosmetic/text wordings as you see fit.

  Changed 3 years ago by Maverick

When trying to spawn the bot on Roboking:

18 Sep 2007 14:18:14   JavElimBot (javelim) is logging in.
18 Sep 2007 14:18:14   JavElimBot: Login successful
18 Sep 2007 14:18:14   JavElimBot: Subspace.exe checksum and (random) server checksum were sent (VIP access)
18 Sep 2007 14:18:14   JavElimBot logged in: 231 ms.
18 Sep 2007 14:18:14   JavElimBot (javelim) is disconnecting...
18 Sep 2007 14:18:14   JavElimBot (javelim) disconnected gracefully.
java.lang.RuntimeException: a playerId was greater than 255
	at twcore.bots.javelim.javelim.handleEvent(javelim.java:243)
	at twcore.core.net.GamePacketInterpreter.handlePlayerEntered(Unknown Source)
	at twcore.core.net.GamePacketInterpreter.translateNormalPacket(Unknown Source)
	at twcore.core.net.GamePacketInterpreter.translateGamePacket(Unknown Source)
	at twcore.core.net.ReliablePacketHandler.handleReliableMessage(Unknown Source)
	at twcore.core.net.GamePacketInterpreter.translateSpecialPacket(Unknown Source)
	at twcore.core.net.GamePacketInterpreter.translateGamePacket(Unknown Source)
	at twcore.core.net.GamePacketInterpreter.translateSpecialPacket(Unknown Source)
	at twcore.core.net.GamePacketInterpreter.translateGamePacket(Unknown Source)
	at twcore.core.Session.run(Unknown Source)
18 Sep 2007 14:18:21   JavElimBot is going away.

I was in the arena when trying to spawn it. Why are you checking if a playerid is bigger then 255 by the way?

  Changed 3 years ago by Maverick

Thanks for fixing it, flibb.
JavElimBot can now be spawned from RoboKing

  Changed 3 years ago by Maverick

  • status changed from assigned to closed
  • resolution set to fixed

I think this bot has been completed.

  Changed 3 years ago by Maverick

  • status changed from closed to reopened
  • resolution fixed deleted

I believe flibb is still working on establishing its database for stats exporting.
Also the warp points for when players spawn in have not been fixed. The cfg somehow keeps reverting back to the old one even when we've submitted a new cfg, and weaver has tried fixing it once as well.

-Kim

  Changed 2 years ago by milosh

  • status changed from reopened to closed
  • resolution set to fixed

Spoke to flibb; He confirmed that this can be closed.

  Changed 2 years ago by milosh

Related changeset: 2513

Add/Change #74 (The Brand New Jav Elimination Arena - By Kim)

Author


E-mail address and user name can be saved in the Preferences.


Action
as closed
Next status will be 'reopened'
 
Note: See TracTickets for help on using tickets.