This code is over 6 months old. The code may have expired and might no longer function.
Information about TDM code:
Since TDM is relatively more popular than FFA, though both supported in code CEMZE, but I mainly work on the TDM part, and created individual codes. Actually the TDM codes are just CEMZE simply with FFA disabled. The waypoints are two big to be put all together due to 32768 limit, so I have to split them into 4 codes. Here's the map list of each code:
Mapset1: H97FS
Blizzard World
Dorado
Eichenwald
Hollywood
Ilios Lighthouse
King's Row
Lijiang Garden
Nepal Sanctum
Oasis City Center
Mapset2: YGDRD
Hanamura
Ilios Ruins
Lijiang Night Market
Nepal Village
Oasis Gardens
Temple of Arnubis
Volskaya Industries
Mapset3: 3ZHKP
Horizon Lunar Colony
Ilios Well
Lijiang Control Center
Nepal Shrine
Oasis University
Paris
Route66
Mapset4: ZGMFF
Black Forest
Castillo
Chateau Gilard
Ecopoint Antarctica
Kanezanka
Malevento
Necropolis
Petra
FAIR game against bots.
I call it FAIR because many other workshop AI uses some hidden cheat approaches like healing while idle instead of going to the health pack, or teleport to battle instead of pathfinding.
TDM and FFA both supported.
There's many options you can custom in workshop setting menu. Comment if you have any question.
In FFA mode you can edit bot quota and hero, from 2(1v1) to 12, all heros supported.
And I included my previous work that enables workshop dummy bots to detect turrets.
Adding new hero logics.
Fixing some bugs.
Most AI heros performs better than official AIMBOTs when aiming deviation is set to 0. But there's still some that cannot overpower official AIMBOTs, which are listed in the Image. I've done my best till now, and would like to get feedback or even help from you guys, thank you.
work to do:
More debugging.
Many of the inspirations are from you guys, and some respectful authors. This mode won't be here without your efforts. Thank you very much.
good luck & have fun!
Update log:
20240214:
- Add a switch to disable AI teammate. In that case, enemy quota will be equal to human players.
- modify other modifications according to the patch notes, like melee damage, pharah abilities.
- Since every hero now can self-heal off-combat, default formation is no longer 222, and AI with healing heros won't target wounded teammates that are too far away.
20231217:
- Nearest walkable position function removed to avoid high server load to have better performance
- Bot's ability to detect object like turrets can be manually adjusted.
20231213:
- Split all the available TDM maps into 4 codes due to the 32768 limit. Code and maps included are listed above.
- Refine bot aiming with projectiles (Huge thanks to Spiderman31807, and his work Advance Aimbot G676V).
- Bots with long range weapon can better keep distance instead of rushing to face.
- New heros supported.
20230830:
- Fixed a bug that caused bot to frequently aim and shoot at his own created object in FFA mode.
Sources
This post utilizes other codes either in part or in full. This could be because they remixed them, used parts of them, were inspired by them, or other reasons.
11 Comments
Good AI, much better than mine. Weirdly jumps all the time.
Can't target Sombra while invisible, though I understand if you don’t want to support that, given the current difficulty for detecting it.
Haha, I did add a jump to every loop for almost every hero. And yes, detecting sombra invisibility is pretty hard.
Actually many abilities can't be detected properly, including some that could be detected in previous versions like cd of baptiste's ability2. Sometimes these kinds of glitches are really discouraging.
Yeah, my AI Bap looks at the ground for 0.3ish seconds every time he’s hit, really makes him easy to kill.
I do have a detection script for Sombra in mine but they’re not perfect (maybe 1s incorrect sometimes) but it requires an array for the location of every healthkit. (Though now that I think about it you could avoid that by just disabling them)
If you want it, it’s not a code but you can find it very easily labelled near the bottom scripts of most of my universal AI. VX9S6 is the assault/original one.
Thanks for your information. I have another problem about object detecting. Now it is working properly for most of the time, but not always. You can find them at the last rules in this code: H97FS. I also add additional raycasthitposition to distinguish between shields/barriers and turrets. But my major problem is, some of the objects seems to stay detectable even after being destroyed, like torb's turret and junkrat's trap. I don't know if it is possible to handle this, since it can cause the bot to shot at that position for more than 5 seconds after that object is destroyed. I tested the raycasthitposition in train range, but it seems the object is immediately undetectable after destroyed, so I don't know why. Here's the code if you want to try, for you convenience: BM779, simply change the hero of the bot to like torb, and see the data.
Ray cast is definitely part of the issue. I just checked the inspector on the “Dummy Bot Target Turrets” code.
My Torb turret was destroyed at 25.39 (total time elapsed), but the “ObjectDetectTrue” remains the exact same value up until 30 (total time elapsed, rounded).
I have no clue what’s the cause, but it’s definitely the casting/variable setting.
(Added 3 scripts while testing: Log Turret Deploy/Destroy, Permanent Can’t Be Aimed for Myself, and Permanent Rooted for the AI)
Tbh I think its likely to just be one of those things, that we cant fix and Blizzard has to. Given the fact that its fine on some but not others. (But I've had very little faith in workshop bug fix's and additions, since ow2 release)
Huge thanks for your help. The most confusing part is that if I use hud to show the raycasthitpos from facing direction, it is totally normal when those object are destroyed. So now we only with blizzard will come back to fix all those bugs one day
most likely a server/client inconsistency, the payload position only acts like a number using the x component in huds and effects but functions like "start forcing position" works. (also happens to variables set to payload position)
I found this out while making my "Auto Objective" Code, a few weeks ago.
server side its getting collisions but client side is isn't, or at least thats my best guess.
That sounds reasonable. Thanks for your explanation, I confused me a lot
I lost 2 hours of work like 10 mins ago. I'm favoriting this to play it later. Good luck in your endeavors <3
Thanks for your support. I think this is more like a templete for more better ideas of new modes. But 32768 limit is a problem, because the pathfinding part is taking too much space.
And, remember to save backups regularly. I've lost my modifications many times too, that's truly frustrating.
Dang man. Coding on Xbox with the crashing and bugs tho is so bad.