Compare commits

...

56 Commits

Author SHA1 Message Date
b57d4982c4 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
79999ec8aa i had forgotten re-adding the file after removing the magic value 2025-01-07 15:17:13 +01:00
d50914c54a added changes to the public store plugin with a readme 2025-01-03 14:24:01 +01:00
9524a6550a that was probably a mistake 2024-12-31 12:38:29 +01:00
105dafe3ce late 2024 update for the racetimer zones on all maps 2024-12-20 20:51:48 +01:00
13d3a4ee36 re-added shell script but with IP's replaced 2024-12-20 15:56:28 +01:00
b713cd4931 removing the magic code value 2024-12-20 15:20:34 +01:00
bd6bd20d51 removed port and IP (was not used since years anyways) 2024-12-20 14:16:44 +01:00
92908283e2 removed username and password 2024-12-20 02:08:43 +01:00
a09e86b8a3 re-added file with secrets removed 2024-12-20 02:05:59 +01:00
021afeda9b readding json file with secrets removed 2024-12-20 02:03:43 +01:00
d16cfb64e4 re-adding json file with secrets removed 2024-12-20 01:46:12 +01:00
4df2436866 re-adding php file but without secret 2024-12-20 01:42:41 +01:00
7fd559a387 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
044ffb7847 hopefully this prevents occasionaly edicts going over limit related to mapchanges? 2024-11-27 16:12:11 +01:00
d2a8f3a49d i probably never get this right 2024-11-27 12:00:45 +01:00
cbb9cc5817 we had a guy without steam ID stored in here. caused the python part to crash 2024-11-14 20:37:12 +01:00
075d0beaca goodbye oauth 2024-11-09 22:48:19 +01:00
341c8d658c forgot these additions 2024-10-15 20:20:02 +02:00
fad8daf05d added feature for playing sounds backwards 2024-10-15 19:04:18 +02:00
5c9de31835 accidentaly uploaded wrong content 2024-09-13 15:16:44 +02:00
1337172b91 files for lowercasing downloadable content from svencoop 2024-09-13 15:15:35 +02:00
duagust
8cd411c8be Fix santa's workshop not syncing 2024-09-12 18:20:12 +02:00
4c52965661 made ranges larger so can fit level 1000 2024-09-06 12:27:49 +02:00
a3ff596fd6 fixed kinda dumb mistake that caused the zones files to never be read 2024-08-08 19:32:33 +02:00
84ff69a52d fixing when no space 2024-08-06 15:28:12 +02:00
4b658e90d5 added support for pitch= and tempo= to yt yts and sayen 2024-08-06 14:42:15 +02:00
2fbe20740f fixed so aliases work again 2024-08-06 00:34:13 +02:00
e29eb32a91 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
dc8b4badd0 adding support for pitch and tempo commands on torchlight through rubberband 2024-08-05 16:28:51 +02:00
f420bfc7ed 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
983652c974 instead of unloading the plugin are we only using the features on the specific map 2024-08-01 18:32:31 +02:00
427e5e014b 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
46a699dbd9 moved it into two seperate timers 2024-07-29 02:25:04 +02:00
466b9e5849 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
35375b7067 commented out name changing 2024-07-27 17:31:17 +02:00
7c7bffa006 updated requirements with relevant pip plugin 2024-07-18 00:56:06 +02:00
37340dadf2 added support for oauth2 login 2024-07-18 00:55:28 +02:00
719425da9e added a bit delay on mapchange before writing data to file 2024-06-30 01:18:58 +02:00
20f1536410 reduced priority from high to low 2024-06-30 00:50:02 +02:00
f4c8e1f61d using cmd to set mapname instead of performing mapswitch 2024-06-29 23:51:23 +02:00
f0b3d7cb04 forgot to update timer 2024-06-29 15:26:03 +02:00
50f4f0c7bc fixed names, maybe fixed random kicks 2024-06-29 15:11:24 +02:00
840be3fbc8 added random delay for name changes as well 2024-06-29 12:35:22 +02:00
39c4606b3e adding random delay to name update 2024-06-29 02:57:20 +02:00
7b0e7e5ef1 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
c0ed7d5286 ignoring the new fastdl on hetzner host 2024-06-17 19:35:06 +02:00
14acc55aea solved json object handle issue 2024-06-13 17:38:39 +02:00
6da4204e0a Revert "temporarily fucking with giving weapons to clients"
This reverts commit 1054cd8fb7.
2024-06-09 14:49:36 +02:00
c8b124af30 temporarily fucking with giving weapons to clients 2024-06-08 23:02:58 +02:00
ce5f153ebc fixed rewards and maybe time too? 2024-06-08 22:20:57 +02:00
68737ea990 initial release of almost completely automatic event rewarder 2024-06-08 20:39:58 +02:00
6b6753ec1b initial release to log anything happening to givenamedItem 2024-06-06 12:41:07 +02:00
c5a201ab8a outcommented kick and post method. now just logging everything 2024-06-01 21:35:36 +02:00
258a880da5 added mor details to readme 2024-05-31 20:23:52 +02:00
124bcf1692 added readme note and updated the shell script 2024-05-31 20:22:33 +02:00
723 changed files with 13093 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.
char sQuery[256];
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[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]);
g_dDatabase.Query(SQL_insertQuery, sQuery, _, DBPrio_High);
g_dDatabase.Query(SQL_insertQuery, sQuery, _, DBPrio_Low);
}
public void select_map_related_surfs()
@ -251,7 +251,7 @@ public void select_map_related_surfs()
GetCurrentMap(map_name, sizeof(map_name));
char sQuery[256];
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)
@ -309,7 +309,7 @@ public void SQL_OnDatabaseConnect(Database db, const char[] error, any data)
g_dDatabase = db;
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`))");
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)

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"
{
"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"
{
"name" "ZONE_PREFIX_ANTI"
"name" "ZONE_PREFIX_ANTI_5"
"cordinate_a" "-2477.795166 1923.944092 -853.817017"
"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"
{
"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"
{
"name" "ZONE_PREFIX_RACE_1"
"cordinate_a" "8268.910156 14584.395508 -997.968750"
"cordinate_b" "8403.019531 14762.502930 -997.968750"
"name" "ZONE_PREFIX_START_1"
"cordinate_a" "-7079.997559 -9983.341797 -236.545074"
"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"
{
"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"
{
"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"
{
"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_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"
{
"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"
}
"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