lgbot: bots have minqlx Steam IDs >= 90071996842377216; hunter chat; skill 1/4/5 only

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
esefandClaude Opus 5.5 committed 2026-10-15 14:29:57 +03:00
1 parent 8989780cd2
commit c6a495ce2c
3 files changed
+17 -111

No files matched your search

+4 -109
View File
@@ -1,6 +1,7 @@
//===========================================================================
// lgbot: LG training bot. Aim per skill level (the N in "addbot lgbot N"); never jumps or
// crouches, LG only. Movement is steered by the lgbot minqlx plugin.
// QL reads skill 1, 4 and 5 from this file and interpolates levels 2-3 between 1 and 4.
//===========================================================================
#include "chars.h"
@@ -17,7 +18,7 @@ skill 1
CHARACTERISTIC_VIEW_MAXCHANGE 90
CHARACTERISTIC_REACTIONTIME 3.0
CHARACTERISTIC_CHAT_FILE "bots/hunter_t.c"
CHARACTERISTIC_CHAT_NAME "lgbot"
CHARACTERISTIC_CHAT_NAME "hunter"
CHARACTERISTIC_CHAT_CPM 400
CHARACTERISTIC_CHAT_INSULT 0
CHARACTERISTIC_CHAT_MISC 0
@@ -58,112 +59,6 @@ skill 1
CHARACTERISTIC_FIRETHROTTLE 1.0
}
skill 2
{
CHARACTERISTIC_NAME "lgbot"
CHARACTERISTIC_GENDER "female"
CHARACTERISTIC_ATTACK_SKILL 0.45
CHARACTERISTIC_WEAPONWEIGHTS "bots/lgbot_w.c"
CHARACTERISTIC_AIM_SKILL 0.35
CHARACTERISTIC_AIM_ACCURACY 0.4
CHARACTERISTIC_VIEW_FACTOR 0.55
CHARACTERISTIC_VIEW_MAXCHANGE 110
CHARACTERISTIC_REACTIONTIME 2.0
CHARACTERISTIC_CHAT_FILE "bots/hunter_t.c"
CHARACTERISTIC_CHAT_NAME "lgbot"
CHARACTERISTIC_CHAT_CPM 400
CHARACTERISTIC_CHAT_INSULT 0
CHARACTERISTIC_CHAT_MISC 0
CHARACTERISTIC_CHAT_STARTENDLEVEL 0
CHARACTERISTIC_CHAT_ENTEREXITGAME 0
CHARACTERISTIC_CHAT_KILL 0
CHARACTERISTIC_CHAT_DEATH 0
CHARACTERISTIC_CHAT_ENEMYSUICIDE 0
CHARACTERISTIC_CHAT_HITTALKING 0
CHARACTERISTIC_CHAT_HITNODEATH 0
CHARACTERISTIC_CHAT_HITNOKILL 0
CHARACTERISTIC_CHAT_RANDOM 0
CHARACTERISTIC_CHAT_REPLY 0
CHARACTERISTIC_CROUCHER 0
CHARACTERISTIC_JUMPER 0
CHARACTERISTIC_WALKER 0
CHARACTERISTIC_WEAPONJUMPING 0
CHARACTERISTIC_GRAPPLE_USER 0
CHARACTERISTIC_ITEMWEIGHTS "bots/hunter_i.c"
CHARACTERISTIC_AGGRESSION 1.0
CHARACTERISTIC_SELFPRESERVATION 0
CHARACTERISTIC_VENGEFULNESS 1.0
CHARACTERISTIC_CAMPER 0
CHARACTERISTIC_EASY_FRAGGER 0.5
CHARACTERISTIC_ALERTNESS 1.0
CHARACTERISTIC_AIM_ACCURACY_MACHINEGUN 0.4
CHARACTERISTIC_AIM_ACCURACY_SHOTGUN 0.4
CHARACTERISTIC_AIM_ACCURACY_ROCKETLAUNCHER 0.4
CHARACTERISTIC_AIM_ACCURACY_GRENADELAUNCHER 0.4
CHARACTERISTIC_AIM_ACCURACY_LIGHTNING 0.4
CHARACTERISTIC_AIM_ACCURACY_PLASMAGUN 0.4
CHARACTERISTIC_AIM_ACCURACY_RAILGUN 0.4
CHARACTERISTIC_AIM_ACCURACY_BFG10K 0.4
CHARACTERISTIC_AIM_SKILL_ROCKETLAUNCHER 0.35
CHARACTERISTIC_AIM_SKILL_GRENADELAUNCHER 0.35
CHARACTERISTIC_AIM_SKILL_PLASMAGUN 0.35
CHARACTERISTIC_AIM_SKILL_BFG10K 0.35
CHARACTERISTIC_FIRETHROTTLE 1.0
}
skill 3
{
CHARACTERISTIC_NAME "lgbot"
CHARACTERISTIC_GENDER "female"
CHARACTERISTIC_ATTACK_SKILL 0.6
CHARACTERISTIC_WEAPONWEIGHTS "bots/lgbot_w.c"
CHARACTERISTIC_AIM_SKILL 0.5
CHARACTERISTIC_AIM_ACCURACY 0.6
CHARACTERISTIC_VIEW_FACTOR 0.7
CHARACTERISTIC_VIEW_MAXCHANGE 130
CHARACTERISTIC_REACTIONTIME 1.2
CHARACTERISTIC_CHAT_FILE "bots/hunter_t.c"
CHARACTERISTIC_CHAT_NAME "lgbot"
CHARACTERISTIC_CHAT_CPM 400
CHARACTERISTIC_CHAT_INSULT 0
CHARACTERISTIC_CHAT_MISC 0
CHARACTERISTIC_CHAT_STARTENDLEVEL 0
CHARACTERISTIC_CHAT_ENTEREXITGAME 0
CHARACTERISTIC_CHAT_KILL 0
CHARACTERISTIC_CHAT_DEATH 0
CHARACTERISTIC_CHAT_ENEMYSUICIDE 0
CHARACTERISTIC_CHAT_HITTALKING 0
CHARACTERISTIC_CHAT_HITNODEATH 0
CHARACTERISTIC_CHAT_HITNOKILL 0
CHARACTERISTIC_CHAT_RANDOM 0
CHARACTERISTIC_CHAT_REPLY 0
CHARACTERISTIC_CROUCHER 0
CHARACTERISTIC_JUMPER 0
CHARACTERISTIC_WALKER 0
CHARACTERISTIC_WEAPONJUMPING 0
CHARACTERISTIC_GRAPPLE_USER 0
CHARACTERISTIC_ITEMWEIGHTS "bots/hunter_i.c"
CHARACTERISTIC_AGGRESSION 1.0
CHARACTERISTIC_SELFPRESERVATION 0
CHARACTERISTIC_VENGEFULNESS 1.0
CHARACTERISTIC_CAMPER 0
CHARACTERISTIC_EASY_FRAGGER 0.5
CHARACTERISTIC_ALERTNESS 1.0
CHARACTERISTIC_AIM_ACCURACY_MACHINEGUN 0.6
CHARACTERISTIC_AIM_ACCURACY_SHOTGUN 0.6
CHARACTERISTIC_AIM_ACCURACY_ROCKETLAUNCHER 0.6
CHARACTERISTIC_AIM_ACCURACY_GRENADELAUNCHER 0.6
CHARACTERISTIC_AIM_ACCURACY_LIGHTNING 0.6
CHARACTERISTIC_AIM_ACCURACY_PLASMAGUN 0.6
CHARACTERISTIC_AIM_ACCURACY_RAILGUN 0.6
CHARACTERISTIC_AIM_ACCURACY_BFG10K 0.6
CHARACTERISTIC_AIM_SKILL_ROCKETLAUNCHER 0.5
CHARACTERISTIC_AIM_SKILL_GRENADELAUNCHER 0.5
CHARACTERISTIC_AIM_SKILL_PLASMAGUN 0.5
CHARACTERISTIC_AIM_SKILL_BFG10K 0.5
CHARACTERISTIC_FIRETHROTTLE 1.0
}
skill 4
{
CHARACTERISTIC_NAME "lgbot"
@@ -176,7 +71,7 @@ skill 4
CHARACTERISTIC_VIEW_MAXCHANGE 160
CHARACTERISTIC_REACTIONTIME 0.6
CHARACTERISTIC_CHAT_FILE "bots/hunter_t.c"
CHARACTERISTIC_CHAT_NAME "lgbot"
CHARACTERISTIC_CHAT_NAME "hunter"
CHARACTERISTIC_CHAT_CPM 400
CHARACTERISTIC_CHAT_INSULT 0
CHARACTERISTIC_CHAT_MISC 0
@@ -229,7 +124,7 @@ skill 5
CHARACTERISTIC_VIEW_MAXCHANGE 180
CHARACTERISTIC_REACTIONTIME 0.2
CHARACTERISTIC_CHAT_FILE "bots/hunter_t.c"
CHARACTERISTIC_CHAT_NAME "lgbot"
CHARACTERISTIC_CHAT_NAME "hunter"
CHARACTERISTIC_CHAT_CPM 400
CHARACTERISTIC_CHAT_INSULT 0
CHARACTERISTIC_CHAT_MISC 0
+6 -1
View File
@@ -23,6 +23,11 @@ PRESETS = {
PUSH_RANGE, BACKOFF_RANGE = 250, 700
BACKOFF_HEALTH, PUSH_LEAD = 60, 30
MAX_TARGET_DIST = 1500
BOT_STEAM_ID = 90071996842377216 # minqlx gives bots this + their client number
def is_bot(steam_id):
return steam_id == 0 or steam_id >= BOT_STEAM_ID
def to_int(text):
@@ -156,7 +161,7 @@ if minqlx:
for p in players:
if p.id == bot.id or p.team == "spectator" or not p.is_alive:
continue
if p.steam_id == 0 and not self.target_bots: # bots have Steam ID 0
if is_bot(p.steam_id) and not self.target_bots:
continue
pos = p.position()
cands.append(((pos.x, pos.y), p))
+7 -1
View File
@@ -1,7 +1,7 @@
import math, os, random, sys, unittest
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "home", "minqlx-plugins"))
from lgbot import (PRESETS, KEYS, resolve, Strafer, wanted_range, steer, fix_z, pick_target, to_int)
from lgbot import (PRESETS, KEYS, resolve, Strafer, wanted_range, steer, fix_z, pick_target, to_int, is_bot)
def preset(n, **kw):
@@ -123,6 +123,12 @@ class Misc(unittest.TestCase):
self.assertEqual(fix_z(40), 40) # slopes/stairs
self.assertEqual(fix_z(800), 800) # jump pads
def test_is_bot(self):
self.assertTrue(is_bot(90071996842377216)) # minqlx bot ids: base + client number
self.assertTrue(is_bot(90071996842377216 + 5))
self.assertTrue(is_bot(0))
self.assertFalse(is_bot(76561198000000000)) # real SteamID64
def test_to_int(self):
self.assertEqual(to_int("5"), 5)
self.assertEqual(to_int(" -1 "), -1)