further updates so people dont get taken over by force
This commit is contained in:
parent
cd2025cffd
commit
6eedaec56f
@ -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
|
||||
|
||||
|
@ -13,13 +13,11 @@
|
||||
#include <socket>
|
||||
|
||||
//#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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user