Compare commits

...

57 Commits

Author SHA1 Message Date
52bc3ba196 in unloze zones fixing warnings and using onmapinit forward for initializing the global variable to be used by natives 2025-01-09 16:57:01 +01:00
74c34b41ba i had forgotten re-adding the file after removing the magic value 2025-01-07 15:17:13 +01:00
efbd9800c3 added changes to the public store plugin with a readme 2025-01-03 14:24:01 +01:00
254cad32de that was probably a mistake 2024-12-31 12:38:29 +01:00
c69a5641cf late 2024 update for the racetimer zones on all maps 2024-12-20 20:51:48 +01:00
3e246c1f60 re-added shell script but with IP's replaced 2024-12-20 15:56:28 +01:00
9c3aca61d2 removing the magic code value 2024-12-20 15:20:34 +01:00
fbaa4dca20 removed port and IP (was not used since years anyways) 2024-12-20 14:16:44 +01:00
747bd0a190 removed username and password 2024-12-20 02:08:43 +01:00
0b5e6b72a2 re-added file with secrets removed 2024-12-20 02:05:59 +01:00
0a1a286cf5 readding json file with secrets removed 2024-12-20 02:03:43 +01:00
5cc0538fe6 re-adding json file with secrets removed 2024-12-20 01:46:12 +01:00
13de07f9eb re-adding php file but without secret 2024-12-20 01:42:41 +01:00
b4d98218e3 hopefully just having the prop_dynamics killed and not respawned very early will suffice to prevent that stupid edict overflow 2024-12-01 21:39:02 +01:00
f3600d6a03 hopefully this prevents occasionaly edicts going over limit related to mapchanges? 2024-11-27 16:12:11 +01:00
e576c7afa9 i probably never get this right 2024-11-27 12:00:45 +01:00
4eaf995b73 we had a guy without steam ID stored in here. caused the python part to crash 2024-11-14 20:37:12 +01:00
545517b7f6 goodbye oauth 2024-11-09 22:48:19 +01:00
4b7e4da6da forgot these additions 2024-10-15 20:20:02 +02:00
0f40b8e51f added feature for playing sounds backwards 2024-10-15 19:04:18 +02:00
3d7285b7af accidentaly uploaded wrong content 2024-09-13 15:16:44 +02:00
f8258420de files for lowercasing downloadable content from svencoop 2024-09-13 15:15:35 +02:00
duagust
526b5251c1 Fix santa's workshop not syncing 2024-09-12 18:20:12 +02:00
99f425e288 made ranges larger so can fit level 1000 2024-09-06 12:27:49 +02:00
dd3f65d939 fixed kinda dumb mistake that caused the zones files to never be read 2024-08-08 19:32:33 +02:00
28daec6572 fixing when no space 2024-08-06 15:28:12 +02:00
08938d3e19 added support for pitch= and tempo= to yt yts and sayen 2024-08-06 14:42:15 +02:00
c1d8d3a2e2 fixed so aliases work again 2024-08-06 00:34:13 +02:00
4fe28ea100 made dec talk work again, fixed so pitch and tempo can work with random chosen, example playb, train 2024-08-05 21:37:42 +02:00
fdc22b7338 adding support for pitch and tempo commands on torchlight through rubberband 2024-08-05 16:28:51 +02:00
114595eebf updated icecap plugins so its not interfering with ztele and events. also made zombie hunting plugin aln always active 2024-08-01 20:24:16 +02:00
4b104ea7f0 instead of unloading the plugin are we only using the features on the specific map 2024-08-01 18:32:31 +02:00
33b9eb69b0 modified run-fastdl.sh to include sven setup. added shinos edit of the fastdl_ftp to just copy files uncompressed to the fastdl for svencoop 2024-07-30 20:30:04 +02:00
6ee4167adf moved it into two seperate timers 2024-07-29 02:25:04 +02:00
047430c39a initial commit of plugin that loads and unloads plugins based on what map it is. tries to prevent slow map changes 2024-07-28 22:36:22 +02:00
79f72faaa7 commented out name changing 2024-07-27 17:31:17 +02:00
a72e8aaede updated requirements with relevant pip plugin 2024-07-18 00:56:06 +02:00
24c9749cb8 added support for oauth2 login 2024-07-18 00:55:28 +02:00
1843b7a399 added a bit delay on mapchange before writing data to file 2024-06-30 01:18:58 +02:00
4e57e79392 reduced priority from high to low 2024-06-30 00:50:02 +02:00
aa13b2e2b4 using cmd to set mapname instead of performing mapswitch 2024-06-29 23:51:23 +02:00
0015aea908 forgot to update timer 2024-06-29 15:26:03 +02:00
6c10f3071b fixed names, maybe fixed random kicks 2024-06-29 15:11:24 +02:00
f171b0f6c7 added random delay for name changes as well 2024-06-29 12:35:22 +02:00
df6aa91352 adding random delay to name update 2024-06-29 02:57:20 +02:00
c6cebc68a7 initial release to simulate clients from ze server on another server to get us advertised on gametracker again hehe 2024-06-29 00:26:24 +02:00
5a337bd369 ignoring the new fastdl on hetzner host 2024-06-17 19:35:06 +02:00
671b0fd8eb solved json object handle issue 2024-06-13 17:38:39 +02:00
1fb89a4ea4 Revert "temporarily fucking with giving weapons to clients"
This reverts commit 1054cd8fb7.
2024-06-09 14:49:36 +02:00
3845d0507a temporarily fucking with giving weapons to clients 2024-06-08 23:02:58 +02:00
69ad267c0a fixed rewards and maybe time too? 2024-06-08 22:20:57 +02:00
a03b287077 initial release of almost completely automatic event rewarder 2024-06-08 20:39:58 +02:00
59ff41f042 initial release to log anything happening to givenamedItem 2024-06-06 12:41:07 +02:00
f6fc6c7bd1 outcommented kick and post method. now just logging everything 2024-06-01 21:35:36 +02:00
e34fa3374b added mor details to readme 2024-05-31 20:23:52 +02:00
9c6eab7f73 added readme note and updated the shell script 2024-05-31 20:22:33 +02:00
76f1720f2e just storing madness elite ze hack detector 2024-05-29 23:08:37 +02:00
724 changed files with 13139 additions and 1248 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,263 @@
#!/home/autismbot1/ze_runner/venv/bin/python3
import os
import sys
import subprocess
import atexit
from threading import Timer
import string
import random
import signal
import socket
import codecs
import json
import datetime
import time
import glob
connection_issue_counter = 0;
call_bot_connect = True
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"
chatmsg = ""
def writeCfgInput(Input_user):
with open(looptestPath, 'w') as f:
f.write(Input_user)
time.sleep(0.1)
open(looptestPath, 'w').close()
def exit_handler():
print('reached exithandler')
writeCfgInput('')
#securing the looptest.cfg wont be stuck accidently with commands
kill_owned_process("pidof hl2_linux")
kill_owned_process("pidof xterm")
#deleting POSIX shared memory objects, as long as one process has them open they exist. THis is to prevent /dev/shm from being full
#due to steam child processes.
#even with steam turned offline might there be chromium web browsers left over from steam who still hold processes open.
#only kind of potential issues from this is steam cloud being out of sync, which is really fucking irrelevant.
subprocess.getoutput([f"pkill -9 -u {whoami}"])
def bot_process_movement(input_line):
dist_target = input_line[input_line.index("dist_target:") + len("dist_target:"):input_line.index("enemy_distance")]
enemy_distance = input_line[input_line.index("enemy_distance:") + len("enemy_distance:"):input_line.index("targeteam:")]
targeteam = input_line[input_line.index("targeteam:") + len("targeteam:"):input_line.index("state:")]
state = input_line[input_line.index("state:") + len("state:"):]
state = int(state.strip())
dist_target = float(dist_target)
enemy_distance = float(enemy_distance)
targeteam = int(targeteam)
#request by bane that bots should simply not infect people shrug
strInput = "-attack; wait 2; -use; wait 5; -attack; wait 5; cl_minmodels 1; wait 2; +use; wait 5; "
if targeteam == 3:
strInput = "-attack; wait 2; -use; wait 5; +attack; wait 5; cl_minmodels 1; wait 2; +use; wait 5; "
#python has no switches and such
if state in [5, 7]:
strInput += "-forward; wait 2; use weapon_knife; wait 5;"
elif state >= 3:
strInput += "use weapon_knife; wait 5; +forward; wait 2;"
elif state == 0:
strInput += "use weapon_p90; wait 2; -forward; wait 2;"
elif state == 1:
strInput += "wait 2; use weapon_elite; wait 3; +forward; wait 2;"
elif state == 2:
strInput += "-forward; wait 2; use weapon_elite; wait 3;"
elif state == 8:
strInput += "use weapon_knife; wait 5; +forward; wait 2;"
#print('dist_target: ', dist_target, ' enemy distance: ', enemy_distance, ' targeteam: ', targeteam, ' state:', state)
if state not in [0, 2, 5, 7, 8]:
strInput = strinput_append(strInput, 2)
#print('strInput final:', strInput)
writeCfgInput(strInput)
def strinput_append(strInput, nth):
for _ in range(3 * nth):
boolean_val = random.choice([True, False])
if boolean_val:
strInput += " +moveleft; wait 15; -moveleft; "
else:
strInput += " +moveright; wait 15; -moveright; "
return strInput
def kill_user_owned_pid(pid):
print('pid: ', pid, ' killed')
pid = int(pid.strip())
os.kill(pid, signal.SIGKILL)
time.sleep(10)
def return_user_owned_pid(pidof):
owner_pid = subprocess.getoutput([f"{pidof}"])
if owner_pid:
for pid in owner_pid.split(" "):
username = subprocess.getoutput([f"""ps -o user= -p {pid}"""])
if username == whoami:
return pid
return None
def kill_owned_process(pidof):
pid = return_user_owned_pid(pidof)
while pid:
kill_user_owned_pid(pid)
pid = return_user_owned_pid(pidof)
def restart_sdl_and_steam():
#subprocess.getoutput(["screen -XS XTERM quit"])
kill_owned_process("pidof hl2_linux")
kill_owned_process("pidof xterm")
x2go_session_list = subprocess.getoutput(["x2golistsessions"])
print('x2golistsessions: ', x2go_session_list)
if not x2go_session_list:
print('no session. creating Display to make idle session')
subprocess.getoutput([f"screen -d -m -S pyhoca_display ./run_follow.sh"])
while not x2go_session_list or len(x2go_session_list.split('|')[0].replace(" ", "")) == 0:
time.sleep(5)
x2go_session_list = subprocess.getoutput(["x2golistsessions"])
print(f'finally found x2go_session_list: {x2go_session_list}')
hostname = subprocess.getoutput(['hostname'])
x2go_session_display = x2go_session_list.split(f'|{hostname}')[0].rsplit('|', 1)[1]
x2go_session_pid = x2go_session_list.split('|')[0]
x2go_session_id = x2go_session_list.split('|')[1].split('|')[0]
x2go_session_command = 'TERMINAL xterm'
xterm_cmd = f'screen -d -m -S XTERM x2goruncommand {x2go_session_display} {x2go_session_pid} {x2go_session_id} {x2go_session_command}'
print(f'xterm_cmd: {xterm_cmd}')
subprocess.getoutput([xterm_cmd])
print('reached .bashrc executing steam and variables')
time.sleep(40)
#we sleep here to wait for .bashrc to launch steam. It takes some time
def bot_connect(data):
#use whatever ip you want here to connect with
str1 = ""
if "connect to ze" == data:
str1 = f"connect {data_ports['server_ip_port_ze']}"
elif "connect to ze2" == data:
str1 = f"connect {data_ports['server_ip_port_ze2']}; wait 15000;"
writeCfgInput(str1)
time.sleep(1)
writeCfgInput("")
t = Timer(150, attempt_bot_connect)
t.start()
def attempt_bot_connect():
global connection_issue_counter
global call_bot_connect
connection_issue_counter += 1
call_bot_connect = True
print('finished timer callback')
if __name__ == '__main__':
atexit.register(exit_handler)
local_port = data_ports['udp_port']
external_port_messages = data_ports['chat_external_port']
buffer_size = 4096 #potentially not large enough?
#if downloading maps we give it 10 seconds delay to see if the size changed, if not its probably safe to delete the .bz2 file as no download in progress
bz2_maps = {}
while True:
found = False
for f in glob.glob(f"/home/{whoami}/.steam/debian-installation/steamapps/common/Counter-Strike Source/cstrike/download/maps/*.bz2"):
found = True
fsize = subprocess.Popen(["du", "-sh", f], stdout=subprocess.PIPE).communicate()[0].decode().split("\t")[0]
#deleting left over bz2 files because they give missing map issue
if f in bz2_maps:
#if the size is still the same it should be abandoned bz2 file that we can delete
if bz2_maps[f] == fsize:
subprocess.Popen(["rm", f], stdout=subprocess.PIPE).communicate()[0]
bz2_maps[f] = fsize
#no bz2 maps left to be concerned about
if not found:
break
time.sleep(10)
maps_folder_size = subprocess.Popen(["du", "-sh", f"/home/{whoami}/.steam/debian-installation/steamapps/common/Counter-Strike Source/cstrike/download/maps"], stdout=subprocess.PIPE).communicate()[0].decode().split("\t")[0]
#deleting when maps folder larger than 150GB
if maps_folder_size.endswith("G"):
maps_folder_size = float(maps_folder_size[:-1])
if maps_folder_size > 40.0:
for f in glob.glob(f"/home/{whoami}/.steam/debian-installation/steamapps/common/Counter-Strike Source/cstrike/download/maps/*"):
subprocess.Popen(["rm", f], stdout=subprocess.PIPE).communicate()[0]
restart_sdl_and_steam()
is_bot_connected_to_ze2 = False
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))
sock.settimeout(5.0)
messager_name = ""
try:
while True:
try:
data, addr = sock.recvfrom(buffer_size)
except socket.timeout:
continue
data = codecs.decode(data, "utf-8", "ignore")
ip = addr[0]
port = addr[1]
#print('port: ', port, " ip: ", ip)
#print('data: ', data)
if not data:
continue
#print("ip: ", ip, " port: ", port)
if ip == data_ports['discord_bot_ip'] and port == external_port_messages:
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)
if ip != data_ports['ovh_ip']:
continue
elif data == "rtv":
response_msg = "say rtv"
writeCfgInput(response_msg)
elif data == "bot kicked server full":
print('bot kicked server full: ', datetime.datetime.now().time())
elif "autismo connected to ze" == data:
print('Bot connected to ze!')
connection_issue_counter = 0
is_bot_connected_to_ze2 = False
elif "not connected to ze2" == data:
is_bot_connected_to_ze2 = False
elif "autismo connected to ze2" == data:
print('Bot connected to ze2!')
connection_issue_counter = 0
is_bot_connected_to_ze2 = True
elif "connect to ze" == data or ("connect to ze2" == data and not is_bot_connected_to_ze2):
if connection_issue_counter == 5:
kill_owned_process("pidof hl2_linux")
print('exiting')
sock.close()
sys.exit(1)
else:
if call_bot_connect:
call_bot_connect = False
print('data: ', data)
print("connection_issue_counter: ", connection_issue_counter)
bot_connect(data)
elif "clientmessage:" in data:
messager_name = data.split("clientmessage:", 1)[1].split(" put your magic code here.")[0]
databyte_send_message = messager_name + data.split("put your magic code here.")[1]
sock.sendto(databyte_send_message.encode(), (data_ports["discord_bot_ip"], external_port_messages))
#print('databyte_send_message: ', databyte_send_message)
elif data.startswith("dist_target:"):
bot_process_movement(data)
elif data.startswith("surfing:"):
bot_process_surf(data)
elif data.startswith("hull info:"):
hull_info = data[data.index("hull info:") + len("hull info:"):]
strInput = ""
if hull_info == "jump":
strInput += "+jump; wait 5; -jump; +duck; wait 50; -duck; wait 5; "
elif hull_info == "crouch":
strInput += "+duck; wait 50; -duck; wait 5; "
writeCfgInput(strInput)
finally:
sock.close()

View File

@ -0,0 +1,42 @@
import os
import sys
import subprocess
import atexit
from threading import Timer
import string
import random
import signal
import socket
import codecs
import datetime
import time
if __name__ == '__main__':
local_ip = "127.0.0.1"
local_port = 12345 #add some other port here.
udp_external_ip = "some IP here"
buffer_size = 4096 #potentially not large enough?
sock = 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.bind(("127.0.0.1", local_port))
print('reached deadlock')
try:
while True:
data, addr = sock.recvfrom(buffer_size)
data = codecs.decode(data, "utf-8", "ignore")
ip = addr[0]
port = addr[1]
#print('port: ', port, " ip: ", ip)
#print(data)
# update 17th february 2024: updating the kernel made the sourcemod UDP socket come from 127.0.0.0 instead of 127.0.0.1
if not data or not ip.startswith('127.0.0') or not local_ip.startswith('127.0.0'):
continue
sock_external.sendto(data.encode(), (udp_external_ip, local_port))
except KeyboardInterrupt:
pass
finally:
sock.close()
sock_external.close()
#UDP redirecter welp
#screen -d -m -S udp_redirecter1 python3 udp_redirecter.py

File diff suppressed because it is too large Load Diff

View File

@ -226,7 +226,7 @@ public int BotMimic_OnRecordSaved(int client, char[] name, char[] category, char
//file = The actual path to the saved .rec file. //file = The actual path to the saved .rec file.
char sQuery[256]; char sQuery[256];
Format(sQuery, sizeof(sQuery), "UPDATE `maps_coordinates` SET `recordname` = '%s' WHERE `recordname` = 'unknown'", file); Format(sQuery, sizeof(sQuery), "UPDATE `maps_coordinates` SET `recordname` = '%s' WHERE `recordname` = 'unknown'", file);
g_dDatabase.Query(SQL_insertQuery_record_saved, sQuery, _, DBPrio_High); g_dDatabase.Query(SQL_insertQuery_record_saved, sQuery, _, DBPrio_Low);
} }
@ -242,7 +242,7 @@ public Action BotMimic_OnStartRecording(int client, char[] name, char[] category
FloatToString(bot_start_coords[1], coords[1], sizeof(coords[])); FloatToString(bot_start_coords[1], coords[1], sizeof(coords[]));
FloatToString(bot_start_coords[2], coords[2], sizeof(coords[])); FloatToString(bot_start_coords[2], coords[2], sizeof(coords[]));
Format(sQuery, sizeof(sQuery), "insert into `maps_coordinates` (`mapname`, `recordname`, `coordinate`) VALUES ('%s', 'unknown', '%s %s %s')", map_name, coords[0], coords[1], coords[2]); Format(sQuery, sizeof(sQuery), "insert into `maps_coordinates` (`mapname`, `recordname`, `coordinate`) VALUES ('%s', 'unknown', '%s %s %s')", map_name, coords[0], coords[1], coords[2]);
g_dDatabase.Query(SQL_insertQuery, sQuery, _, DBPrio_High); g_dDatabase.Query(SQL_insertQuery, sQuery, _, DBPrio_Low);
} }
public void select_map_related_surfs() public void select_map_related_surfs()
@ -251,7 +251,7 @@ public void select_map_related_surfs()
GetCurrentMap(map_name, sizeof(map_name)); GetCurrentMap(map_name, sizeof(map_name));
char sQuery[256]; char sQuery[256];
Format(sQuery, sizeof(sQuery), "select recordname, coordinate from `maps_coordinates` where mapname = '%s'", map_name); Format(sQuery, sizeof(sQuery), "select recordname, coordinate from `maps_coordinates` where mapname = '%s'", map_name);
g_dDatabase.Query(SQL_OnQueryCompleted, sQuery, _, DBPrio_High); g_dDatabase.Query(SQL_OnQueryCompleted, sQuery, _, DBPrio_Low);
} }
public void SQL_OnQueryCompleted(Database db, DBResultSet results, const char[] error, DataPack data) public void SQL_OnQueryCompleted(Database db, DBResultSet results, const char[] error, DataPack data)
@ -309,7 +309,7 @@ public void SQL_OnDatabaseConnect(Database db, const char[] error, any data)
g_dDatabase = db; g_dDatabase = db;
char sQuery[256]; char sQuery[256];
Format(sQuery, sizeof(sQuery), "CREATE TABLE IF NOT EXISTS `maps_coordinates` (`mapname` VARCHAR(254) NOT NULL, `coordinate` VARCHAR(254) NOT NULL, `recordname` VARCHAR(254) NOT NULL, PRIMARY KEY (`mapname`, `recordname`, `coordinate`))"); Format(sQuery, sizeof(sQuery), "CREATE TABLE IF NOT EXISTS `maps_coordinates` (`mapname` VARCHAR(254) NOT NULL, `coordinate` VARCHAR(254) NOT NULL, `recordname` VARCHAR(254) NOT NULL, PRIMARY KEY (`mapname`, `recordname`, `coordinate`))");
g_dDatabase.Query(SQL_FinishedQuery_creating_tables, sQuery, _, DBPrio_High); g_dDatabase.Query(SQL_FinishedQuery_creating_tables, sQuery, _, DBPrio_Low);
} }
public void SQL_insertQuery_record_saved(Database db, DBResultSet results, const char[] error, DataPack data) public void SQL_insertQuery_record_saved(Database db, DBResultSet results, const char[] error, DataPack data)

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,165 @@
"Zones"
{
"1"
{
"name" "UNASSIGNED_NAME_1"
"cordinate_a" "1776.747681 815.968750 -159.968750"
"cordinate_b" "1313.465820 448.031250 -32.468315"
}
"2"
{
"name" "UNASSIGNED_NAME_2"
"cordinate_a" "1535.968750 880.031250 -159.968750"
"cordinate_b" "848.031250 1051.505981 -43.049637"
}
"3"
{
"name" "UNASSIGNED_NAME_3"
"cordinate_a" "751.968750 1039.968750 -159.968750"
"cordinate_b" "485.819641 0.031250 -43.629536"
}
"4"
{
"name" "UNASSIGNED_NAME_4"
"cordinate_a" "-43.968750 317.968750 -159.968750"
"cordinate_b" "461.309906 -404.968750 -44.306374"
}
"5"
{
"name" "UNASSIGNED_NAME_5"
"cordinate_a" "-275.973572 -413.968750 -147.968750"
"cordinate_b" "1071.968750 -615.540588 -38.297714"
}
"6"
{
"name" "UNASSIGNED_NAME_6"
"cordinate_a" "606.968750 -352.127228 -159.968750"
"cordinate_b" "760.242981 -64.031250 -40.447815"
}
"7"
{
"name" "UNASSIGNED_NAME_7"
"cordinate_a" "880.031250 -383.668488 -159.968750"
"cordinate_b" "1062.423706 223.968781 -42.488377"
}
"8"
{
"name" "UNASSIGNED_NAME_8"
"cordinate_a" "1290.277344 559.968750 -159.968750"
"cordinate_b" "1169.888428 368.031250 -47.119263"
}
"9"
{
"name" "UNASSIGNED_NAME_9"
"cordinate_a" "1615.998535 433.186218 -129.968750"
"cordinate_b" "1092.643921 20.688171 -56.973114"
}
"10"
{
"name" "UNASSIGNED_NAME_10_10"
"cordinate_a" "1592.031250 225.310547 -159.968750"
"cordinate_b" "2354.937012 -533.968750 -40.727482"
}
"11"
{
"name" "UNASSIGNED_NAME_11"
"cordinate_a" "1615.968750 -368.031250 -159.977081"
"cordinate_b" "1316.166382 -671.968750 -42.055618"
}
"12"
{
"name" "UNASSIGNED_NAME_12"
"cordinate_a" "1102.968750 -320.903198 -159.977081"
"cordinate_b" "1462.031250 -89.520248 -41.348244"
}
"13"
{
"name" "UNASSIGNED_NAME_13"
"cordinate_a" "823.968750 -630.968750 -159.968750"
"cordinate_b" "1194.031250 -999.000793 -39.708305"
}
"14"
{
"name" "UNASSIGNED_NAME_14"
"cordinate_a" "623.031250 -1056.031250 -325.968750"
"cordinate_b" "1397.369263 -2071.501709 -48.545898"
}
"15"
{
"name" "UNASSIGNED_NAME_15"
"cordinate_a" "781.082520 -840.031250 -219.968750"
"cordinate_b" "352.031250 -970.634460 -81.849884"
}
"16"
{
"name" "UNASSIGNED_NAME_16"
"cordinate_a" "297.031250 -1006.541809 -268.968750"
"cordinate_b" "493.968750 -1540.944336 -172.826874"
}
"17"
{
"name" "UNASSIGNED_NAME_17"
"cordinate_a" "-1490.731445 -1577.801025 -324.968750"
"cordinate_b" "561.031250 -2183.886963 -177.498932"
}
"18"
{
"name" "UNASSIGNED_NAME_18"
"cordinate_a" "-1386.031250 -1552.163086 -327.968750"
"cordinate_b" "-994.384644 -1103.968750 -202.600586"
}
"19"
{
"name" "UNASSIGNED_NAME_19"
"cordinate_a" "-1814.031250 -860.968750 -323.489960"
"cordinate_b" "-1410.764893 -1654.031250 -118.404190"
}
"20"
{
"name" "UNASSIGNED_NAME_20"
"cordinate_a" "-1679.968750 -836.362915 -239.968750"
"cordinate_b" "-1526.384399 -32.031250 -132.688568"
}
"21"
{
"name" "UNASSIGNED_NAME_21"
"cordinate_a" "-959.968750 -1455.968750 -327.968750"
"cordinate_b" "-453.971649 -1024.031250 -123.217293"
}
"22"
{
"name" "UNASSIGNED_NAME_22"
"cordinate_a" "-1451.997437 382.031250 -351.915680"
"cordinate_b" "-938.917480 -1068.031250 -67.042114"
}
"23"
{
"name" "UNASSIGNED_NAME_23"
"cordinate_a" "-427.391296 -712.031250 -279.968750"
"cordinate_b" "152.557770 -1151.968750 -103.998001"
}
"24"
{
"name" "UNASSIGNED_NAME_24"
"cordinate_a" "-907.031250 353.978088 -159.968750"
"cordinate_b" "-88.968750 -333.389465 -40.753883"
}
"25"
{
"name" "UNASSIGNED_NAME_25"
"cordinate_a" "-272.031250 413.689453 -159.968750"
"cordinate_b" "-906.112793 831.968750 -44.799244"
}
"26"
{
"name" "UNASSIGNED_NAME_26"
"cordinate_a" "-1008.031250 432.022980 -325.787628"
"cordinate_b" "-1476.560181 1311.968750 -16.452255"
}
"27"
{
"name" "UNASSIGNED_NAME_27"
"cordinate_a" "-895.968750 575.968750 -367.968750"
"cordinate_b" "-640.031250 -90.113342 -242.669693"
}
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,27 @@
"Zones"
{
"1"
{
"name" "ZONE_PREFIX_START_1"
"cordinate_a" "-311.961029 108.114784 -116.404541"
"cordinate_b" "-313.049347 -94.721336 -191.968750"
}
"2"
{
"name" "ZONE_PREFIX_RACE_2"
"cordinate_a" "3724.544678 -483.531860 -42.473408"
"cordinate_b" "3467.901855 -626.991089 -191.968765"
}
"3"
{
"name" "ZONE_PREFIX_START_3"
"cordinate_a" "7871.810547 -11583.030273 38.031250"
"cordinate_b" "7870.488281 -11581.935547 518.000000"
}
"4"
{
"name" "ZONE_PREFIX_RACE_4"
"cordinate_a" "2061.109375 -10091.281250 256.450378"
"cordinate_b" "2063.445801 -9820.958008 409.781189"
}
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -1,3 +1,15 @@
"Zones" "Zones"
{ {
"1"
{
"name" "ZONE_PREFIX_START_1"
"cordinate_a" "-15451.500000 2612.600586 -1327.510254"
"cordinate_b" "-15447.762695 1658.202393 -236.961517"
}
"2"
{
"name" "ZONE_PREFIX_RACE_2"
"cordinate_a" "-10797.514648 2642.101074 -1309.479736"
"cordinate_b" "-10811.751953 1510.578125 -338.508728"
}
} }

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -26,8 +26,14 @@
} }
"5" "5"
{ {
"name" "ZONE_PREFIX_ANTI" "name" "ZONE_PREFIX_ANTI_5"
"cordinate_a" "-2477.795166 1923.944092 -853.817017" "cordinate_a" "-2477.795166 1923.944092 -853.817017"
"cordinate_b" "-2487.968750 2225.502441 -650.474609" "cordinate_b" "-2487.968750 2225.502441 -650.474609"
} }
"6"
{
"name" "ZONE_PREFIX_ANTI_6"
"cordinate_a" "-1699.871948 895.941956 -320.257141"
"cordinate_b" "-1567.951660 898.474792 -495.968750"
}
} }

View File

@ -1,3 +1,15 @@
"Zones" "Zones"
{ {
"1"
{
"name" "ZONE_PREFIX_START_1"
"cordinate_a" "5083.577637 -6982.002930 119.159355"
"cordinate_b" "3908.469238 -8484.091797 239.229401"
}
"2"
{
"name" "ZONE_PREFIX_RACE_2"
"cordinate_a" "1612.091309 -1371.620972 -35.433189"
"cordinate_b" "2002.978760 -1141.031250 93.169754"
}
} }

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -2,8 +2,14 @@
{ {
"1" "1"
{ {
"name" "ZONE_PREFIX_RACE_1" "name" "ZONE_PREFIX_START_1"
"cordinate_a" "8268.910156 14584.395508 -997.968750" "cordinate_a" "-7079.997559 -9983.341797 -236.545074"
"cordinate_b" "8403.019531 14762.502930 -997.968750" "cordinate_b" "-3151.249268 -9829.480469 61.848564"
}
"2"
{
"name" "ZONE_PREFIX_RACE_2"
"cordinate_a" "8287.677734 14596.592773 -1002.093994"
"cordinate_b" "8391.968750 14760.873047 -1008.905151"
} }
} }

View File

@ -0,0 +1,15 @@
"Zones"
{
"1"
{
"name" "ZONE_PREFIX_START_1"
"cordinate_a" "-1153.918091 -13885.049805 5085.417969"
"cordinate_b" "-906.035889 -13884.541016 5333.655273"
}
"2"
{
"name" "ZONE_PREFIX_RACE_2"
"cordinate_a" "-950.846130 -8089.583496 3927.892334"
"cordinate_b" "46.146023 -8107.607910 4206.031250"
}
}

View File

@ -1,3 +1,15 @@
"Zones" "Zones"
{ {
"1"
{
"name" "ZONE_PREFIX_START_1"
"cordinate_a" "63.378387 139.523422 -1286.935913"
"cordinate_b" "-62.007065 138.090378 -1084.968750"
}
"2"
{
"name" "ZONE_PREFIX_RACE_2"
"cordinate_a" "-449.550354 5366.121582 -517.546082"
"cordinate_b" "-574.773499 5364.027344 -364.647461"
}
} }

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -1,3 +1,27 @@
"Zones" "Zones"
{ {
"1"
{
"name" "ZONE_PREFIX_START_1"
"cordinate_a" "369.659424 7561.809570 -294.437195"
"cordinate_b" "1187.955688 8726.431641 -132.585724"
}
"2"
{
"name" "ZONE_PREFIX_RACE_2"
"cordinate_a" "5698.798340 2450.269043 -284.796570"
"cordinate_b" "5702.339844 2394.511230 -200.031250"
}
"3"
{
"name" "ZONE_PREFIX_START_3"
"cordinate_a" "-210.432297 -8788.980469 426.271729"
"cordinate_b" "229.139587 -8817.030273 623.739990"
}
"4"
{
"name" "ZONE_PREFIX_RACE_4"
"cordinate_a" "-1093.403198 -14131.583984 -220.230255"
"cordinate_b" "-788.529968 -14126.924805 -407.373779"
}
} }

View File

@ -1,3 +1,15 @@
"Zones" "Zones"
{ {
"1"
{
"name" "ZONE_PREFIX_START_1"
"cordinate_a" "1611.364136 10574.460938 -3027.265869"
"cordinate_b" "2131.713379 10082.820312 -2975.291016"
}
"2"
{
"name" "ZONE_PREFIX_RACE_2"
"cordinate_a" "-1089.603271 8898.478516 -2676.379150"
"cordinate_b" "-472.950745 8822.639648 -2566.325684"
}
} }

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,15 @@
"Zones"
{
"1"
{
"name" "ZONE_PREFIX_START_1"
"cordinate_a" "6577.552246 -909.472290 -511.968750"
"cordinate_b" "6679.748047 -981.725891 -427.521667"
}
"2"
{
"name" "ZONE_PREFIX_RACE_2"
"cordinate_a" "14884.906250 325.718140 -1023.968750"
"cordinate_b" "15392.968750 186.521500 -850.163330"
}
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -12,4 +12,28 @@
"cordinate_a" "-682.863098 811.485779 483.477142" "cordinate_a" "-682.863098 811.485779 483.477142"
"cordinate_b" "-706.789612 943.968750 578.510864" "cordinate_b" "-706.789612 943.968750 578.510864"
} }
"3"
{
"name" "ZONE_PREFIX_START_3"
"cordinate_a" "-1485.023804 423.627838 260.849731"
"cordinate_b" "-1468.015625 311.801697 407.031250"
}
"4"
{
"name" "ZONE_PREFIX_RACE_4"
"cordinate_a" "1540.094482 1534.786499 200.434387"
"cordinate_b" "1598.644775 1205.796509 70.031235"
}
"5"
{
"name" "ZONE_PREFIX_START_5"
"cordinate_a" "9187.324219 61.560867 -127.255753"
"cordinate_b" "9189.734375 -1406.192749 22.031235"
}
"6"
{
"name" "ZONE_PREFIX_RACE_6"
"cordinate_a" "-63.814476 -138.005646 179.151093"
"cordinate_b" "59.448452 -141.215576 64.031235"
}
} }

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -15,7 +15,19 @@
"3" "3"
{ {
"name" "ZONE_PREFIX_ANTI_3" "name" "ZONE_PREFIX_ANTI_3"
"cordinate_a" "1144.735596 -7401.244629 528.498962" "cordinate_a" "1144.735596 -7401.244629 513.498962"
"cordinate_b" "1024.031250 -7421.942383 620.416870" "cordinate_b" "1024.031250 -7421.942383 620.416870"
} }
"5"
{
"name" "ZONE_PREFIX_START_4"
"cordinate_a" "236.409180 1093.925049 259.076904"
"cordinate_b" "764.316345 1034.254517 406.031250"
}
"6"
{
"name" "ZONE_PREFIX_RACE_5"
"cordinate_a" "9.943029 2058.295410 619.648254"
"cordinate_b" "121.995056 2056.858398 759.031250"
}
} }

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

View File

@ -0,0 +1,3 @@
"Zones"
{
}

Some files were not shown because too many files have changed in this diff Show More