diff --git a/AutismBotIngame/python/ingamefollowct.py b/AutismBotIngame/python/ingamefollowct.py index e52c5a5f..20c2db8d 100644 --- a/AutismBotIngame/python/ingamefollowct.py +++ b/AutismBotIngame/python/ingamefollowct.py @@ -11,7 +11,8 @@ import codecs import datetime import time -looptestPath = '/home/gameservers/.steam/debian-installation/steamapps/common/Counter-Strike Source/cstrike/cfg/looptest.cfg' +who_am_i = subprocess.getoutput(["whoami"]) +looptestPath = f"""/home/{who_am_i}/.steam/debian-installation/steamapps/common/Counter-Strike Source/cstrike/cfg/looptest.cfg""" chatmsg = "" def colored(r, g, b, text): @@ -95,12 +96,15 @@ def strinput_append(strInput, nth): def kill_css_process(): css_pid = subprocess.getoutput(["pidof hl2_linux"]) if css_pid: - print('css_pid: ', css_pid, 'shutting the bots game down....') - css_pid = int(css_pid.strip()) - os.kill(css_pid, signal.SIGTERM) - time.sleep(15) + for pid in css_pid.split(" "): + username = subprocess.getoutput([f"""ps -o user= -p {pid}"""]) + if username == who_am_i: + print('pid: ', pid, 'shutting the bots game down....') + pid = int(pid.strip()) + os.kill(pid, signal.SIGTERM) + time.sleep(15) print('preparing to launch game....') - os.chdir('/home/gameservers/.steam/debian-installation/') + os.chdir(f"""/home/{who_am_i}/.steam/debian-installation/""") subprocess.check_call("./steam.sh %s" % ("-applaunch 240 -textmode -textmessagedebug -novid -nosound -noipx -nojoy -noshaderapi"), shell=True) print('finished starting game') @@ -142,6 +146,7 @@ if __name__ == '__main__': ip = addr[0] port = addr[1] #print('port: ', port, " ip: ", ip) + #print(data) if not data: continue if ip not in [local_ip, udp_external_ip]: @@ -162,7 +167,7 @@ if __name__ == '__main__': elif data == "bot kicked server full": print('bot kicked server full: ', datetime.datetime.now().time()) elif data == "connect to ze": - if connection_issue_counter == 5: + if connection_issue_counter == 5 or connection_issue_counter > 50: kill_css_process() connection_issue_counter += 1 print('connection_issue_counter: ', connection_issue_counter) @@ -207,4 +212,3 @@ if __name__ == '__main__': #before steam login: export SDL_VIDEO_X11_VISUALID=0x074 #to find correct SDL_VIDEO_X11_VISUALID use glxinfo in X2GO - diff --git a/AutismBotIngame/scripting/autism_bot_info.sp b/AutismBotIngame/scripting/autism_bot_info.sp index cddb07dc..2e2f00cc 100644 --- a/AutismBotIngame/scripting/autism_bot_info.sp +++ b/AutismBotIngame/scripting/autism_bot_info.sp @@ -13,13 +13,11 @@ #include //#pragma newdecls required -int present[MAXPLAYERS + 1]; int targethuman[MAXPLAYERS + 1]; int target_enemy[MAXPLAYERS + 1]; int buttons_old[MAXPLAYERS + 1]; int flags_old[MAXPLAYERS + 1]; bool surf_cooldown = false; -bool connected_cooldown = false; float client_old_coords[MAXPLAYERS + 1][3]; float targethuman_teleported[MAXPLAYERS + 1][3]; bool chat_cooldown = false; @@ -82,7 +80,7 @@ public void trigger_teleport(const char[] output, int entity_index, int client, GetEntPropVector(client, Prop_Send, "m_vecOrigin", targethuman_teleported[i]); CreateTimer(6.0, reset_target_tp, client); } - else if (client == present[0] || client == present[1]) + else if (is_bot_player(i) && i == client) CreateTimer(0.1, reset_target_tp, client); } } @@ -99,7 +97,7 @@ public void Trigger_Multiple(const char[] output, int entity_index, int client, GetEntPropVector(client, Prop_Send, "m_vecOrigin", targethuman_teleported[i]); CreateTimer(6.0, reset_target_tp, client); } - else if (client == present[0] || client == present[1]) + else if (is_bot_player(i) && i == client) CreateTimer(0.1, reset_target_tp, client); } } @@ -282,7 +280,7 @@ public void OnPlayerRunCmdPost(int client, int buttons, int impulse, const float int cmdnum, int tickcount, int seed, const int mouse[2]) { if (!IsClientInGame(client)) return; - if (client == present[0] || client == present[1]) + if (is_bot_player(client)) { int flags = GetEntityFlags(client); if (!(flags & FL_ONGROUND) && (flags_old[client] & FL_ONGROUND) && !(buttons_old[client] & IN_JUMP) && !(buttons & IN_JUMP) && (GetEntityMoveType(client) != MOVETYPE_LADDER)) @@ -347,12 +345,27 @@ public void OnPlayerRunCmdPost(int client, int buttons, int impulse, const float } } +public bool is_bot_player(int client) +{ + char auth[50]; + GetClientAuthId(client, AuthId_Engine, auth, sizeof(auth)); + if (StrEqual("[U:1:120378081]", auth, false) || StrEqual("STEAM_0:1:60189040", auth, false)) + { + return true; + } + if (StrEqual("[U:1:1036189204]", auth, false) || StrEqual("STEAM_0:0:518094602", auth, false)) + { + return true; + } + return false; +} + public Action recursive_pressing(Handle timer, any data) { for (int client = 1; client <= MaxClients; client++) { if (!IsValidClient(client)) continue; - if (client == present[0] || client == present[1]) + if (is_bot_player(client)) { if (GetClientTeam(client) == 1 || GetClientTeam(client) == 0) { @@ -581,14 +594,14 @@ public void check_bot_surfing() float vPos[3]; float vMins[3]; float vMaxs[3]; - GetEntPropVector(present[client], Prop_Data, "m_vecOrigin", vPos); - GetEntPropVector(present[client], Prop_Send, "m_vecMins", vMins); - GetEntPropVector(present[client], Prop_Send, "m_vecMaxs", vMaxs); + GetEntPropVector(, Prop_Data, "m_vecOrigin", vPos); + GetEntPropVector(, Prop_Send, "m_vecMins", vMins); + GetEntPropVector(, Prop_Send, "m_vecMaxs", vMaxs); float vEndPos[3]; vEndPos[0] = vPos[0]; vEndPos[1] = vPos[1]; vEndPos[2] = vPos[2] - FindConVar("sv_maxvelocity").FloatValue; - TR_TraceHullFilter(vPos, vEndPos, vMins, vMaxs, MASK_ALL, TraceRayDontHitSelf, present[client]); + TR_TraceHullFilter(vPos, vEndPos, vMins, vMaxs, MASK_ALL, TraceRayDontHitSelf, ); if (TR_DidHit()) { //< 0.7 = surf ramp @@ -605,7 +618,7 @@ public void check_bot_surfing() if (!surf_cooldown) { surf_cooldown = true; - TeleportEntity(present[client], NULL_VECTOR, vPlane, NULL_VECTOR); + TeleportEntity(, NULL_VECTOR, vPlane, NULL_VECTOR); Format(keyinput, sizeof(keyinput), "surfing: %f %f %f", vPlane[0], vPlane[1], vPlane[2]); char auth[50]; GetClientAuthId(client, AuthId_Engine, auth, sizeof(auth)); @@ -730,16 +743,16 @@ public void OnClientPostAdminCheck(int client) //[U:1:120378081] //[U:1:69566635] char auth[50]; - GetClientAuthId(client, AuthId_Engine, auth, sizeof(auth)); + GetClientAuthId(client, AuthId_Engine, auth, sizeof(auth)); + char msg[generic_length]; + Format(msg, sizeof(msg), "autismo connected"); if (StrEqual("[U:1:120378081]", auth, false) || StrEqual("STEAM_0:1:60189040", auth, false)) { - present[0] = client; - bot_send_connected_msg(0); + send_socket_msg(msg, strlen(msg)); } if (StrEqual("[U:1:1036189204]", auth, false) || StrEqual("STEAM_0:0:518094602", auth, false)) { - present[1] = client; - bot_send_connected_msg(1); + send_socket_msg1(msg, strlen(msg)); } if (CheckCommandAccess(client, "sm_kick", ADMFLAG_KICK)) admins[client] = true; @@ -778,27 +791,6 @@ public void OnClientDisconnect(int client) client_old_coords[client][2] = 0.0; } -public void bot_send_connected_msg(int bot_specified) -{ - char msg[generic_length]; - Format(msg, sizeof(msg), "autismo connected"); - if (!connected_cooldown) - { - connected_cooldown = true; - if (!bot_specified) - send_socket_msg(msg, strlen(msg)); - else - send_socket_msg1(msg, strlen(msg)); - CreateTimer(5.0, connect_cooldown); - } -} - -public Action connect_cooldown(Handle timer, any data) -{ - connected_cooldown = false; - return Plugin_Continue; -} - //Socket callback public OnSocketConnected(Handle socket, any arg) {