more updates regarding input, targeting, jumping and such
This commit is contained in:
parent
06a4a6eea5
commit
3afffae783
@ -71,9 +71,10 @@ def bot_process_movement(input_line):
|
|||||||
enemy_distance = float(enemy_distance)
|
enemy_distance = float(enemy_distance)
|
||||||
bot_on_type = int(bot_on_type)
|
bot_on_type = int(bot_on_type)
|
||||||
targeteam = int(targeteam)
|
targeteam = int(targeteam)
|
||||||
min_distance_target_human = 800.0
|
min_distance_target_human = 12800.0
|
||||||
strInput = "-attack; wait 2; -use; wait 5; -jump; wait 5; -duck; wait 5; +attack; wait 5; cl_minmodels 1; wait 2; +use; +forward; wait 2; "
|
strInput = "wait 2; -use; wait 5; -jump; wait 5; -duck; wait 5; +attack; wait 5; cl_minmodels 1; wait 2; +use; +forward; wait 2; "
|
||||||
if dist_target > min_distance_target_human:
|
if dist_target > min_distance_target_human:
|
||||||
|
print('dist_target: ', dist_target)
|
||||||
strInput += "use weapon_elite; wait 3; "
|
strInput += "use weapon_elite; wait 3; "
|
||||||
elif targeteam == 3:
|
elif targeteam == 3:
|
||||||
strInput += "use weapon_p90; wait 3; "
|
strInput += "use weapon_p90; wait 3; "
|
||||||
@ -91,9 +92,11 @@ def bot_process_movement(input_line):
|
|||||||
for _ in range(5):
|
for _ in range(5):
|
||||||
strInput += "+jump; wait 5;"
|
strInput += "+jump; wait 5;"
|
||||||
if enemy_distance > 0:
|
if enemy_distance > 0:
|
||||||
print('date: ', datetime.datetime.now().time(), ' target_enemy: ', target_enemy, ' enemy distance: ', enemy_distance)
|
pass
|
||||||
|
#print('date: ', datetime.datetime.now().time(), ' target_enemy: ', target_enemy, ' enemy distance: ', enemy_distance)
|
||||||
else:
|
else:
|
||||||
print('date: ', datetime.datetime.now().time(), ' target human: ', targethuman, ' dist_target: ', dist_target,)
|
pass
|
||||||
|
#print('date: ', datetime.datetime.now().time(), ' target human: ', targethuman, ' dist_target: ', dist_target,)
|
||||||
strInput = strinput_append(strInput, 2)
|
strInput = strinput_append(strInput, 2)
|
||||||
#print('strInput final:', strInput)
|
#print('strInput final:', strInput)
|
||||||
writeCfgInput(strInput)
|
writeCfgInput(strInput)
|
||||||
@ -141,11 +144,11 @@ if __name__ == '__main__':
|
|||||||
sock_external = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
sock_external = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||||
sock.bind(("", local_port))
|
sock.bind(("", local_port))
|
||||||
|
messager_name_index = []
|
||||||
print('reached deadlock')
|
print('reached deadlock')
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
data, addr = sock.recvfrom(buffer_size)
|
data, addr = sock.recvfrom(buffer_size)
|
||||||
databyte = data
|
|
||||||
data = codecs.decode(data, "utf-8", "ignore")
|
data = codecs.decode(data, "utf-8", "ignore")
|
||||||
ip = addr[0]
|
ip = addr[0]
|
||||||
port = addr[1]
|
port = addr[1]
|
||||||
@ -155,8 +158,11 @@ if __name__ == '__main__':
|
|||||||
if ip not in [local_ip, udp_external_ip]:
|
if ip not in [local_ip, udp_external_ip]:
|
||||||
continue
|
continue
|
||||||
if ip == udp_external_ip:
|
if ip == udp_external_ip:
|
||||||
response_msg = f"""say {data}"""
|
messager_name = messager_name_index.pop(0)
|
||||||
print("enabled remote UDP packet response_msg: ", response_msg)
|
if messager_name in data:
|
||||||
|
messager_name = ""
|
||||||
|
response_msg = f"""say {messager_name} {data}"""
|
||||||
|
print("remote UDP packet response_msg: ", response_msg)
|
||||||
writeCfgInput(response_msg)
|
writeCfgInput(response_msg)
|
||||||
#needs mini delay to have time to write input to console
|
#needs mini delay to have time to write input to console
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
@ -174,9 +180,11 @@ if __name__ == '__main__':
|
|||||||
print('connection_issue_counter: ', connection_issue_counter)
|
print('connection_issue_counter: ', connection_issue_counter)
|
||||||
bot_connect_ze()
|
bot_connect_ze()
|
||||||
elif "clientmessage:" in data:
|
elif "clientmessage:" in data:
|
||||||
sock_external.sendto(databyte, (udp_external_ip, local_port))
|
messager_name = data.split("clientmessage:", 1)[1].split(" 72DqZ84")[0]
|
||||||
iterator = 3
|
databyte_send_message = messager_name + data.split("72DqZ84")[1]
|
||||||
print('enabled send databyte: ', databyte)
|
sock_external.sendto(databyte_send_message.encode(), (udp_external_ip, local_port))
|
||||||
|
print('databyte_send_message: ', databyte_send_message)
|
||||||
|
messager_name_index.append(messager_name)
|
||||||
elif data.startswith("dist_target:"):
|
elif data.startswith("dist_target:"):
|
||||||
bot_process_movement(data)
|
bot_process_movement(data)
|
||||||
elif data.startswith("surfing:"):
|
elif data.startswith("surfing:"):
|
||||||
@ -185,16 +193,17 @@ if __name__ == '__main__':
|
|||||||
dot_product = data[data.index("smallest_dot_product:") + len("smallest_dot_product:"):data.index("smallest_distance:")]
|
dot_product = data[data.index("smallest_dot_product:") + len("smallest_dot_product:"):data.index("smallest_distance:")]
|
||||||
distance = data[data.index("smallest_distance:") + len("smallest_distance:"):]
|
distance = data[data.index("smallest_distance:") + len("smallest_distance:"):]
|
||||||
colored_text = colored(255, 0, 0, ('smallest_dot_product: ' + dot_product + ' smallest_distance: ', distance))
|
colored_text = colored(255, 0, 0, ('smallest_dot_product: ' + dot_product + ' smallest_distance: ', distance))
|
||||||
print(colored_text)
|
|
||||||
dot_product = float(dot_product)
|
dot_product = float(dot_product)
|
||||||
distance = float(distance)
|
distance = float(distance)
|
||||||
strInput = ""
|
strInput = ""
|
||||||
distance_jump_cap = 80.0
|
smallest_distance_caps = [70.0, 85.0, 150.0, 200.0]
|
||||||
dot_product_jump_cap = 14500.0
|
dot_product_jump_cap = 0.0
|
||||||
if distance < distance_jump_cap:
|
print(colored_text)
|
||||||
strInput += "+duck; wait 1500; +jump; -duck; wait 250; -jump; wait 50;"
|
if smallest_distance_caps[0] < distance < smallest_distance_caps[1] or smallest_distance_caps[2] < distance < smallest_distance_caps[3]:
|
||||||
|
strInput += "+jump; wait 50; +duck; wait 50; -duck; -jump;"
|
||||||
elif dot_product < dot_product_jump_cap:
|
elif dot_product < dot_product_jump_cap:
|
||||||
strInput += "+jump; wait 550; +duck; wait 250; -jump; -duck; wait 50;"
|
print('dot product:', dot_product)
|
||||||
|
#strInput += "+jump; wait 50; +duck; wait 50; -jump; -duck;"
|
||||||
writeCfgInput(strInput)
|
writeCfgInput(strInput)
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
writeCfgInput("")
|
writeCfgInput("")
|
||||||
|
@ -140,7 +140,7 @@ public bool distance_check()
|
|||||||
|
|
||||||
public Action cmd_talk(int client, int args)
|
public Action cmd_talk(int client, int args)
|
||||||
{
|
{
|
||||||
char msg[generic_length];
|
char msg[generic_length * 5];
|
||||||
char info[generic_length];
|
char info[generic_length];
|
||||||
GetCmdArgString(info, sizeof(info));
|
GetCmdArgString(info, sizeof(info));
|
||||||
if (strlen(info) == 0)
|
if (strlen(info) == 0)
|
||||||
@ -150,7 +150,9 @@ public Action cmd_talk(int client, int args)
|
|||||||
}
|
}
|
||||||
if (IsValidClient(present))
|
if (IsValidClient(present))
|
||||||
{
|
{
|
||||||
Format(msg, sizeof(msg), "clientmessage: %s", info);
|
char magic_code[16];
|
||||||
|
Format(magic_code, sizeof(magic_code), "72DqZ84");
|
||||||
|
Format(msg, sizeof(msg), "clientmessage:%N %s %s", client, magic_code, info);
|
||||||
send_socket_msg(msg, strlen(msg));
|
send_socket_msg(msg, strlen(msg));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -167,7 +169,7 @@ public void Event_RoundStart(Handle event, const char[] name, bool dontBroadcast
|
|||||||
public void OnMapStart()
|
public void OnMapStart()
|
||||||
{
|
{
|
||||||
//0.2 too spammmy, 1.5 too slow
|
//0.2 too spammmy, 1.5 too slow
|
||||||
CreateTimer(0.65, recursive_pressing, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
|
CreateTimer(0.70, recursive_pressing, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
|
||||||
CreateTimer(1.0, clients_coordinates, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
|
CreateTimer(1.0, clients_coordinates, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
|
||||||
CreateTimer(10.0, bot_check_connect, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
|
CreateTimer(10.0, bot_check_connect, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
|
||||||
}
|
}
|
||||||
@ -311,13 +313,13 @@ public Action recursive_pressing(Handle timer, any data)
|
|||||||
}
|
}
|
||||||
if (IsValidClient(target_enemy))
|
if (IsValidClient(target_enemy))
|
||||||
{
|
{
|
||||||
float min_enemy_distance = 10000.0;
|
|
||||||
GetEntPropVector(target_enemy, Prop_Send, "m_vecOrigin", pos);
|
GetEntPropVector(target_enemy, Prop_Send, "m_vecOrigin", pos);
|
||||||
enemy_distance = get_power_distance(present, pos);
|
enemy_distance = get_power_distance(present, pos);
|
||||||
//human aiming for zombie
|
//human aiming for zombie
|
||||||
if (targeteam == 3)
|
if (targeteam == 3)
|
||||||
{
|
{
|
||||||
float min_distance_target_human = 800.0;
|
float min_distance_target_human = 12800.0;
|
||||||
|
float min_enemy_distance = min_distance_target_human * 8;
|
||||||
if (0 < dist_target <= min_distance_target_human && enemy_distance > min_enemy_distance)
|
if (0 < dist_target <= min_distance_target_human && enemy_distance > min_enemy_distance)
|
||||||
{
|
{
|
||||||
chasing_enemy = true;
|
chasing_enemy = true;
|
||||||
@ -396,9 +398,12 @@ public void wall_circle()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!(GetEntityMoveType(present) & MOVETYPE_LADDER))
|
||||||
|
{
|
||||||
char message[generic_length * 7];
|
char message[generic_length * 7];
|
||||||
Format(message, sizeof(message), "smallest_dot_product: %f smallest_distance: %f", smallest_dot_product, smallest_distance);
|
Format(message, sizeof(message), "smallest_dot_product: %f smallest_distance: %f", smallest_dot_product, smallest_distance);
|
||||||
send_socket_msg(message, strlen(message));
|
send_socket_msg(message, strlen(message));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO implement surfing again but differently
|
//TODO implement surfing again but differently
|
||||||
|
Loading…
Reference in New Issue
Block a user