diff --git a/AutismBotIngame/README.md b/AutismBotIngame/README.md index a2aa2cfe..b7cb45e2 100644 --- a/AutismBotIngame/README.md +++ b/AutismBotIngame/README.md @@ -15,6 +15,12 @@ pip3 install pyvirtualdisplay pillow EasyProcess #needed for virtual display, create it inside a venv + 2023, instead of steam using flatpak steam + https://flatpak.org/setup/Debian + https://flathub.org/apps/details/com.valvesoftware.Steam + + #NOTICE: steam might not be able to launch in case of the tmpfs /dev/shm filesystem being full. it seems safe to just delete u1001-Shm_* files and u1002-Shm_ files. It should be fine because the files exists as long as at least one process has them open. So until steam is killed i assume. You dont need to be root for killing them, the user running the bot has permissions to rm the files + #intel specific: apt-get remove xserver-xorg-video-intel @@ -42,20 +48,20 @@ ## bashrc for x2go users in the users thats running a x2go session edit the .bashrc file and add the follwing (remember SDL_VIDEO_X11_VISUALID deppends on glxinfo from xterm terminal): + if [[ $DISPLAY ]]; then + echo 'SDL_VIDEO_X11_VISUALID: ' $SDL_VIDEO_X11_VISUALID + export SDL_VIDEO_X11_VISUALID=0x205 + echo 'SDL_VIDEO_X11_VISUALID: ' $SDL_VIDEO_X11_VISUALID + #use this one to launch steam minimized once + #flatpak run com.valvesoftware.Steam -no-browser +open steam://open/minigameslist + /home/$USER/.var/app/com.valvesoftware.Steam/data/Steam/steam.sh -applaunch 240 -textmode -novid -nosound -noipx -nojoy -noshaderapi +fi - if [[ $DISPLAY ]]; then - echo 'SDL_VIDEO_X11_VISUALID: ' $SDL_VIDEO_X11_VISUALID - export SDL_VIDEO_X11_VISUALID=0x205 - echo 'SDL_VIDEO_X11_VISUALID: ' $SDL_VIDEO_X11_VISUALID - steam -no-browser +open steam://open/minigameslist - fi #-no-browser +open steam://open/minigameslist reduces cpu being used by steam ##steam settings -> library -> low bandwith mode and low performance mode - #2023, try steam beta mode in steam settings to prevent Bus error (core dumped) "$STEAMROOT/$STEAMEXEPATH" "$@" - #X2GO_NXAGENT_DEFAULT_OPTIONS="-options nx/nx,sleep=0" /etc/x2go/x2goagent.options #keeps session as R instead of S which is needed for interaction with graphical components such as steam and CS:S @@ -74,5 +80,3 @@ #check if all libs are present with cd ~/.steam/steam/ubuntu12_32 LD_LIBRARY_PATH=. ldd vgui2_s.so - - diff --git a/AutismBotIngame/autismrunner@.service b/AutismBotIngame/autismrunner@.service index 11a47d2b..b405f6fe 100644 --- a/AutismBotIngame/autismrunner@.service +++ b/AutismBotIngame/autismrunner@.service @@ -6,6 +6,7 @@ After=network.target User=autismbot%i Group=autismbot%i WorkingDirectory=/home/autismbot%i/ze_runner +Environment=PYTHONUNBUFFERED=1 Environment=PATH=/home/autismbot%i/ze_runner/venv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games ExecStart=/home/autismbot%i/ze_runner/ingamefollowct.py Restart=always diff --git a/AutismBotIngame/python/ingamefollowct.py b/AutismBotIngame/python/ingamefollowct.py index 419d4da3..aee81cc6 100644 --- a/AutismBotIngame/python/ingamefollowct.py +++ b/AutismBotIngame/python/ingamefollowct.py @@ -16,7 +16,7 @@ import time whoami = subprocess.getoutput(["whoami"]) with open(f'/home/{whoami}/ze_runner/config.json') as jsonfile: data_ports = json.load(jsonfile) -looptestPath = f"/home/{whoami}/.steam/debian-installation/steamapps/common/Counter-Strike Source/cstrike/cfg/looptest.cfg" +looptestPath = f"/home/{whoami}/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/common/Counter-Strike Source/cstrike/cfg/looptest.cfg" chatmsg = "" def writeCfgInput(Input_user): @@ -120,18 +120,9 @@ def restart_sdl_and_steam(): print(f'xterm_cmd: {xterm_cmd}') subprocess.getoutput([xterm_cmd]) print('reached .bashrc executing steam and variables') - time.sleep(60) + time.sleep(90) #we sleep here to wait for .bashrc to launch steam. It takes some time -def launch_css_process(): - print('preparing to launch game....') - #deleting maps - subprocess.getoutput([f"rm '/home/{whoami}/.steam/debian-installation/steamapps/common/Counter-Strike Source/cstrike/download/maps/'*"]) - - #launching game - subprocess.getoutput([f"/home/{whoami}/.steam/debian-installation/steam.sh -applaunch 240 -textmode -novid -nosound -noipx -nojoy -noshaderapi -port {data_ports['steam_port']}"]) - print('finished starting game') - def bot_connect(data): #use whatever ip you want here to connect with str1 = "" @@ -150,13 +141,17 @@ if __name__ == '__main__': external_port_messages = data_ports['chat_external_port'] buffer_size = 4096 #potentially not large enough? connection_issue_counter = 0; - pid = return_user_owned_pid("pidof hl2_linux") - if not pid: - restart_sdl_and_steam() - else: - kill_owned_process("pidof hl2_linux") + #deleting maps + subprocess.getoutput([f"rm '/home/{whoami}/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/common/Counter-Strike Source/cstrike/download/maps/'*"]) + #deleting POSIX shared memory objects, as long as one process has them open they exist. so probably until steam gets turned off. THis is to prevent /dev/shm from being full + subprocess.getoutput([f"rm /dev/shm/u1001-Shm_*"]) + subprocess.getoutput([f"rm /dev/shm/u1002-Shm_*"]) + + + restart_sdl_and_steam() is_bot_connected_to_ze2 = False - launch_css_process() + + print('preparing to launch game....') sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind(("", local_port)) @@ -227,21 +222,3 @@ if __name__ == '__main__': writeCfgInput(strInput) finally: sock.close() - -#/home/gameservers/.steam/debian-installation/steamapps/common/Counter-Strike Source/cstrike/cfg/autoexec.cfg: -#alias loop "exec looptest.cfg; wait 5; loop;"; wait 5; loop; -#create looptest.cfg in /cfg/ folder -#X2GO_NXAGENT_DEFAULT_OPTIONS="-options nx/nx,sleep=0" /etc/x2go/x2goagent.options -#keeps session as R instead of S which is needed for interaction with graphical components such as steam and CS:S - - -""" -.bashrc requires: -if [[ $DISPLAY ]]; then - echo 'SDL_VIDEO_X11_VISUALID: ' $SDL_VIDEO_X11_VISUALID - export SDL_VIDEO_X11_VISUALID=0x205 - echo 'SDL_VIDEO_X11_VISUALID: ' $SDL_VIDEO_X11_VISUALID - steam -no-browser -fi -""" -#screen -d -m -S ze_runner python3 ingamefollowct.py