LUA 190
V2+ Colored Gametypes 1.0 By xdedeone on 26th February 2019 05:19:51 PM
  1.  
  2.     --Creator: AelitePrime
  3.     --Script Name: Colored Team Gametypes Script
  4.     --Website: http://phasorscripts.wordpress.com/
  5.     --Xfire: eliteprime14789x
  6.         --Included Scripts: Nuggetz sendconsoletext overload
  7.         --Version: 1.0
  8.  
  9. -- Warning: sv_script_reload will cause the game to reset.
  10.  
  11. allow_change, colors_random, gametype = {}, {}, {}  -- do not touch
  12. team_color, friendly_fire, object_respawn_time = {}, {}, {}  -- do not touch
  13. max_flags, betray_kill, suicide_kill = {}, {}, {}  -- do not touch
  14. max_score, spawn_with_team, timelimit = {}, {}, {} -- do not touch
  15.  
  16. -- ** -- Modify -- ** -- Modify -- ** -- Modify -- **  -- Modify -- ** -- Modify -- ** -- ** -- Modify -- ** -- Modify -- ** -- Modify --
  17.  
  18.  
  19. welcome_message = "Welcome to Colored Team Gametypes. Your team color is %s" -- Message when the player joins telling them what team color they are.
  20. teamchange_message = "You have just changed teams. Your team color is " -- Tells the player they have switched teams and the color their team is
  21. slayer_message = "Script Gametype: Team Slayer" -- Message when gametype is teamslayer
  22. ctf_message =  "Script Gametype: CTF" -- Message when gametype is ctf
  23.  
  24. -- Script Globals -- Script Globals -- Script Globals -- Script Globals -- Script Globals -- Script Globals -- Script Globals -- Script Globals
  25.  
  26. -- If this is true then players will be allowed to change teams by type 'changeteam' without the '
  27. --                                  Map:                                                Boolean:
  28. allow_change.           beavercreek             =               false -- battle creek
  29. allow_change.           bloodgulch                      =               false
  30. allow_change.           boardingaction          =               false
  31. allow_change.           carousel                        =               false -- derelict
  32. allow_change.           chillout                        =               false
  33. allow_change.           damnation                       =               false
  34. allow_change.           dangercanyon            =               false
  35. allow_change.           deathisland             =               false
  36. allow_change.           gephyrophobia           =               false
  37. allow_change.           hangemhigh                      =               false
  38. allow_change.           icefields                       =               false
  39. allow_change.           infinity                        =               false
  40. allow_change.           longest                         =               false
  41. allow_change.           prisoner                        =               false
  42. allow_change.           putput                          =               false -- chiron tl34
  43. allow_change.           ratrace                         =               false
  44. allow_change.           sidewinder                      =               false
  45. allow_change.           timberland                      =               false
  46. allow_change.           wizard                          =               false
  47.  
  48. -- If this is true then team_color table will be ignored and random colors will be picked for the teams.
  49. --                              Map:                                            Boolean:
  50. colors_random.          beavercreek             =               false -- battle creek
  51. colors_random.          bloodgulch                      =               false
  52. colors_random.          boardingaction          =               false
  53. colors_random.          carousel                        =               false -- derelict
  54. colors_random.          chillout                        =               false
  55. colors_random.          damnation                       =               false
  56. colors_random.          dangercanyon            =               false
  57. colors_random.          deathisland             =               false
  58. colors_random.          gephyrophobia           =               false
  59. colors_random.          hangemhigh                      =               false
  60. colors_random.          icefields                       =               false
  61. colors_random.          infinity                        =               false
  62. colors_random.          longest                         =               false
  63. colors_random.          prisoner                        =               false
  64. colors_random.          putput                          =               false -- chiron tl34
  65. colors_random.          ratrace                         =               false
  66. colors_random.          sidewinder                      =               false
  67. colors_random.          timberland                      =               false
  68. colors_random.          wizard                          =               false
  69.  
  70. -- Gamtypes: 'ctf' and 'teamslayer'
  71. --                              Map:                                            Gametype:
  72. gametype.               beavercreek             =               "ctf" -- battle creek
  73. gametype.               bloodgulch                      =               "ctf"
  74. gametype.               boardingaction          =               "ctf"
  75. gametype.               carousel                        =               "ctf" -- derelict
  76. gametype.               chillout                        =               "ctf"
  77. gametype.               damnation                       =               "ctf"
  78. gametype.               dangercanyon            =               "ctf"
  79. gametype.               deathisland             =               "ctf"
  80. gametype.               gephyrophobia           =               "ctf"
  81. gametype.               hangemhigh                      =               "ctf"
  82. gametype.               icefields                       =               "ctf"
  83. gametype.               infinity                        =               "ctf"
  84. gametype.               longest                         =               "ctf"
  85. gametype.               prisoner                        =               "ctf"
  86. gametype.               putput                          =               "ctf" -- chiron tl34
  87. gametype.               ratrace                         =               "ctf"
  88. gametype.               sidewinder                      =               "ctf"
  89. gametype.               timberland                      =               "ctf"
  90. gametype.               wizard                          =               "ctf"
  91.  
  92. -- Colors: white, black, red, blue, gray, yellow, green, pink, purple, cyan, cobalt, orange, teal, sage, brown, tan, maroon, and salmon
  93. --                              Map:                                            {"color for team 1, color for team 2}
  94. team_color.             beavercreek             =               {"cyan", "pink"} -- battle creek
  95. team_color.             bloodgulch                      =               {"cyan", "pink"}
  96. team_color.             boardingaction          =               {"cyan", "pink"}
  97. team_color.             carousel                        =               {"cyan", "pink"} -- derelict
  98. team_color.             chillout                        =               {"cyan", "pink"}
  99. team_color.             damnation                       =               {"cyan", "pink"}
  100. team_color.             dangercanyon            =               {"cyan", "pink"}
  101. team_color.             deathisland             =               {"cyan", "pink"}
  102. team_color.             gephyrophobia           =               {"cyan", "pink"}
  103. team_color.             hangemhigh                      =               {"cyan", "pink"}
  104. team_color.             icefields                       =               {"cyan", "pink"}
  105. team_color.             infinity                        =               {"cyan", "pink"}
  106. team_color.             longest                         =               {"cyan", "pink"}
  107. team_color.             prisoner                        =               {"cyan", "pink"}
  108. team_color.             putput                          =               {"cyan", "pink"} -- chiron tl34
  109. team_color.             ratrace                         =               {"cyan", "pink"}
  110. team_color.             sidewinder                      =               {"cyan", "pink"}
  111. team_color.             timberland                      =               {"cyan", "pink"}
  112. team_color.             wizard                          =               {"cyan", "pink"}
  113.  
  114. -- length of the game in minutes
  115. --                          Map:                                                Time in Minutes:
  116. timelimit.              beavercreek             =               30 -- battle creek
  117. timelimit.              bloodgulch                      =               30
  118. timelimit.              boardingaction          =               30
  119. timelimit.              carousel                        =               30 -- derelict
  120. timelimit.              chillout                        =               30
  121. timelimit.              damnation                       =               30
  122. timelimit.              dangercanyon            =               30
  123. timelimit.              deathisland             =               30
  124. timelimit.              gephyrophobia           =               30
  125. timelimit.              hangemhigh                      =               30
  126. timelimit.              icefields                       =               30
  127. timelimit.              infinity                        =               30
  128. timelimit.              longest                         =               30
  129. timelimit.              prisoner                        =               30
  130. timelimit.              putput                          =               30 -- chiron tl34
  131. timelimit.              ratrace                         =               30
  132. timelimit.              sidewinder                      =               30
  133. timelimit.              timberland                      =               30
  134. timelimit.              wizard                          =               30
  135.  
  136. -- If this is true then friendly fire will be enabled.
  137. --                                  Map:                                                Boolean:
  138. friendly_fire.          beavercreek             =               false -- battle creek
  139. friendly_fire.          bloodgulch                      =               false
  140. friendly_fire.          boardingaction          =               false
  141. friendly_fire.          carousel                        =               false -- derelict
  142. friendly_fire.          chillout                        =               false
  143. friendly_fire.          damnation                       =               false
  144. friendly_fire.          dangercanyon            =               false
  145. friendly_fire.          deathisland             =               false
  146. friendly_fire.          gephyrophobia           =               false
  147. friendly_fire.          hangemhigh                      =               false
  148. friendly_fire.          icefields                       =               false
  149. friendly_fire.          infinity                        =               false
  150. friendly_fire.          longest                         =               false
  151. friendly_fire.          prisoner                        =               false
  152. friendly_fire.          putput                          =               false -- chiron tl34
  153. friendly_fire.          ratrace                         =               false
  154. friendly_fire.          sidewinder                      =               false
  155. friendly_fire.          timberland                      =               false
  156. friendly_fire.          wizard                          =               false
  157.  
  158. -- CTF Globals -- CTF Globals -- CTF Globals -- CTF Globals -- CTF Globals -- CTF Globals -- CTF Globals -- CTF Globals -- CTF Globals
  159.  
  160. -- length of time before the flag respawns if no one is holding it. (In Seconds)
  161. --                                      Map:                                            Time in Seconds:
  162. object_respawn_time.            beavercreek             =               30 -- battle creek
  163. object_respawn_time.            bloodgulch                      =               30
  164. object_respawn_time.            boardingaction          =               30
  165. object_respawn_time.            carousel                        =               30 -- derelict
  166. object_respawn_time.            chillout                        =               30
  167. object_respawn_time.            damnation                       =               30
  168. object_respawn_time.            dangercanyon            =               30
  169. object_respawn_time.            deathisland             =               30
  170. object_respawn_time.            gephyrophobia           =               30
  171. object_respawn_time.            hangemhigh                      =               30
  172. object_respawn_time.            icefields                       =               30
  173. object_respawn_time.            infinity                        =               30
  174. object_respawn_time.            longest                         =               30
  175. object_respawn_time.            prisoner                        =               30
  176. object_respawn_time.            putput                          =               30 -- chiron tl34
  177. object_respawn_time.            ratrace                         =               30
  178. object_respawn_time.            sidewinder                      =               30
  179. object_respawn_time.            timberland                      =               30
  180. object_respawn_time.            wizard                          =               30
  181.  
  182. -- the number of flags needed to win the game
  183. --                          Map:                                                Amount:
  184. max_flags.              beavercreek             =               3 -- battle creek
  185. max_flags.              bloodgulch                      =               3
  186. max_flags.              boardingaction          =               3
  187. max_flags.              carousel                        =               3 -- derelict
  188. max_flags.              chillout                        =               3
  189. max_flags.              damnation                       =               3
  190. max_flags.              dangercanyon            =               3
  191. max_flags.              deathisland             =               3
  192. max_flags.              gephyrophobia           =               3
  193. max_flags.              hangemhigh                      =               3
  194. max_flags.              icefields                       =               3
  195. max_flags.              infinity                        =               3
  196. max_flags.              longest                         =               3
  197. max_flags.              prisoner                        =               3
  198. max_flags.              putput                          =               3 -- chiron tl34
  199. max_flags.              ratrace                         =               3
  200. max_flags.              sidewinder                      =               3
  201. max_flags.              timberland                      =               3
  202. max_flags.              wizard                          =               3
  203.  
  204. -- Team Slayer Globals -- Team Slayer Globals -- Team Slayer Globals -- Team Slayer Globals -- Team Slayer Globals -- Team Slayer Globals -- Team Slayer Globals --
  205.  
  206. -- If this is true then a kill will be deducated from the teams score.
  207. --                                  Map:                                                Boolean:
  208. betray_kill.            beavercreek             =               false -- battle creek
  209. betray_kill.            bloodgulch                      =               false
  210. betray_kill.            boardingaction          =               false
  211. betray_kill.            carousel                        =               false -- derelict
  212. betray_kill.            chillout                        =               false
  213. betray_kill.            damnation                       =               false
  214. betray_kill.            dangercanyon            =               false
  215. betray_kill.            deathisland             =               false
  216. betray_kill.            gephyrophobia           =               false
  217. betray_kill.            hangemhigh                      =               false
  218. betray_kill.            icefields                       =               false
  219. betray_kill.            infinity                        =               false
  220. betray_kill.            longest                         =               false
  221. betray_kill.            prisoner                        =               false
  222. betray_kill.            putput                          =               false -- chiron tl34
  223. betray_kill.            ratrace                         =               false
  224. betray_kill.            sidewinder                      =               false
  225. betray_kill.            timberland                      =               false
  226. betray_kill.            wizard                          =               false
  227.  
  228. -- If this is true then a kill will be deducated from the teams score.
  229. --                                  Map:                                                Boolean:
  230. suicide_kill.           beavercreek             =               false -- battle creek
  231. suicide_kill.           bloodgulch                      =               false
  232. suicide_kill.           boardingaction          =               false
  233. suicide_kill.           carousel                        =               false -- derelict
  234. suicide_kill.           chillout                        =               false
  235. suicide_kill.           damnation                       =               false
  236. suicide_kill.           dangercanyon            =               false
  237. suicide_kill.           deathisland             =               false
  238. suicide_kill.           gephyrophobia           =               false
  239. suicide_kill.           hangemhigh                      =               false
  240. suicide_kill.           icefields                       =               false
  241. suicide_kill.           infinity                        =               false
  242. suicide_kill.           longest                         =               false
  243. suicide_kill.           prisoner                        =               false
  244. suicide_kill.           putput                          =               false -- chiron tl34
  245. suicide_kill.           ratrace                         =               false
  246. suicide_kill.           sidewinder                      =               false
  247. suicide_kill.           timberland                      =               false
  248. suicide_kill.           wizard                          =               false
  249.  
  250. -- number of kills a team needs to get to win the game.
  251. --                          Map:                                                Amount of Kills:
  252. max_score.              beavercreek             =               50 -- battle creek
  253. max_score.              bloodgulch                      =               50
  254. max_score.              boardingaction          =               50
  255. max_score.              carousel                        =               50 -- derelict
  256. max_score.              chillout                        =               50
  257. max_score.              damnation                       =               50
  258. max_score.              dangercanyon            =               50
  259. max_score.              deathisland             =               50
  260. max_score.              gephyrophobia           =               50
  261. max_score.              hangemhigh                      =               50
  262. max_score.              icefields                       =               50
  263. max_score.              infinity                        =               50
  264. max_score.              longest                         =               50
  265. max_score.              prisoner                        =               50
  266. max_score.              putput                          =               50 -- chiron tl34
  267. max_score.              ratrace                         =               50
  268. max_score.              sidewinder                      =               50
  269. max_score.              timberland                      =               50
  270. max_score.              wizard                          =               50
  271.  
  272. -- If this is false then players will spawn randomly across the map.
  273. --                                              Map:                                            Boolean:
  274. spawn_with_team.                beavercreek             =               false -- battle creek
  275. spawn_with_team.                bloodgulch                      =               false
  276. spawn_with_team.                boardingaction          =               false
  277. spawn_with_team.                carousel                        =               false -- derelict
  278. spawn_with_team.                chillout                        =               false
  279. spawn_with_team.                damnation                       =               false
  280. spawn_with_team.                dangercanyon            =               false
  281. spawn_with_team.                deathisland             =               false
  282. spawn_with_team.                gephyrophobia           =               false
  283. spawn_with_team.                hangemhigh                      =               false
  284. spawn_with_team.                icefields                       =               false
  285. spawn_with_team.                infinity                        =               false
  286. spawn_with_team.                longest                         =               false
  287. spawn_with_team.                prisoner                        =               false
  288. spawn_with_team.                putput                          =               false -- chiron tl34
  289. spawn_with_team.                ratrace                         =               false
  290. spawn_with_team.                sidewinder                      =               false
  291. spawn_with_team.                timberland                      =               false
  292. spawn_with_team.                wizard                          =               false
  293.  
  294. -- ** -- Do Not Modify -- ** -- Do Not Modify -- ** -- Do Not Modify -- **  -- Do Not Modify -- ** -- Do Not Modify -- ** --
  295.  
  296. path = getprofilepath()
  297.  
  298. colorspawn = {}
  299. last_killer = nil
  300. first = {}
  301. target = {}
  302. player_scores = {}
  303. score = {}
  304. second = {}
  305. spawns = {}
  306. object_respawn_timer = nil
  307. script_loaded = false
  308. count1 = 0
  309. count2 = 0
  310.  
  311. color_table = {}
  312. color_table[0] = "White"
  313. color_table[1] = "Black"
  314. color_table[2] = "Red"
  315. color_table[3] = "Blue"
  316. color_table[4] = "Gray"
  317. color_table[5] = "Yellow"
  318. color_table[6] = "Green"
  319. color_table[7] = "Pink"
  320. color_table[8] = "Purple"
  321. color_table[9] = "Cyan"
  322. color_table[10] = "Cobalt"
  323. color_table[11] = "Orange"
  324. color_table[12] = "Teal"
  325. color_table[13] = "Sage"
  326. color_table[14] = "Brown"
  327. color_table[15] = "Tan"
  328. color_table[16] = "Maroon"
  329. color_table[17] = "Salmon"
  330.  
  331. function GetRequiredVersion()
  332.         return 200
  333. end
  334.  
  335. function OnScriptLoad(process, game, persistent)
  336.         if game == "PC" or game == true then
  337.                 GAME = "PC"
  338.         else
  339.                 GAME = "CE"
  340.         end
  341.         if GAME == "PC" then
  342.                 map_name = readstring(0x698F21)
  343.                 slayer_globals = 0x63A0E8
  344.                 gametype_base = 0x671340
  345.                 gametime_base = 0x671420
  346.                 timelimit_address = 0x626630
  347.                 slayer_score_patch = 0x48F428
  348.         else
  349.                 map_name = readstring(0x61D151)
  350.                 slayer_globals = 0x5BE108
  351.                 gametype_base = 0x5F5498
  352.                 gametime_base = 0x5F55BC
  353.                 timelimit_address = 0x5AA5B0
  354.                 slayer_score_patch = 0x469CF8
  355.         end
  356.         if map_name then
  357.         if allow_change[map_name] == nil then
  358.             allow_change[map_name] = false
  359.         end
  360.         if colors_random[map_name] == nil then
  361.             colors_random[map_name] = true
  362.         end
  363.         if gametype[map_name] == nil then
  364.             gametype[map_name] = "ctf"
  365.         end
  366.         if team_color[map_name] == nil then
  367.             team_color[map_name] = false
  368.         end
  369.         if friendly_fire[map_name] == nil then
  370.                         friendly_fire[map_name] = false
  371.                 end
  372.         if timelimit[map_name] == nil then
  373.                         timelimit[map_name] = 30
  374.                 end
  375.         if object_respawn_time[map_name] == nil then
  376.                         object_respawn_time[map_name] = 30
  377.                 end
  378.         if max_flags[map_name] == nil then
  379.                         max_flags[map_name] = 3
  380.                 end
  381.         if betray_kill[map_name] == nil then
  382.                         betray_kill[map_name] = false
  383.                 end
  384.         if suicide_kill[map_name] == nil then
  385.                         suicide_kill[map_name] = false
  386.                 end
  387.         if max_score[map_name] == nil then
  388.                         max_score[map_name] = 50
  389.                 end
  390.         if spawn_with_team[map_name] == nil then
  391.                         spawn_with_team[map_name] = false
  392.                 end
  393.     end
  394.         local file = io.open(path .. "\\data\\colored-data.data","r")
  395.         if not file then createData()
  396.         else file:close()
  397.         end
  398.         registertimer(0, "NewGame", true)
  399. end
  400.  
  401. function OnScriptUnload()
  402.         writebyte(slayer_score_patch, 0x74)
  403. end
  404.  
  405. function OnNewGame(map)
  406.     map_name = map
  407.         if map_name then
  408.             -- If the map is not located in any of the tables, default settings will be set.
  409.         if allow_change[map_name] == nil then
  410.             allow_change[map_name] = false
  411.         end
  412.         if colors_random[map_name] == nil then
  413.             colors_random[map_name] = true
  414.         end
  415.         if gametype[map_name] == nil then
  416.             gametype[map_name] = "ctf"
  417.         end
  418.         if team_color[map_name] == nil then
  419.             team_color[map_name] = false
  420.         end
  421.         if friendly_fire[map_name] == nil then
  422.                         friendly_fire[map_name] = false
  423.                 end
  424.         if timelimit[map_name] == nil then
  425.                         timelimit[map_name] = 30
  426.                 end
  427.         if object_respawn_time[map_name] == nil then
  428.                         object_respawn_time[map_name] = 30
  429.                 end
  430.         if max_flags[map_name] == nil then
  431.                         max_flags[map_name] = 3
  432.                 end
  433.         if betray_kill[map_name] == nil then
  434.                         betray_kill[map_name] = false
  435.                 end
  436.         if suicide_kill[map_name] == nil then
  437.                         suicide_kill[map_name] = false
  438.                 end
  439.         if max_score[map_name] == nil then
  440.                         max_score[map_name] = 50
  441.                 end
  442.         if spawn_with_team[map_name] == nil then
  443.                         spawn_with_team[map_name] = false
  444.                 end
  445.     end
  446.     registertimer(0, "NewGame", true)
  447. end
  448.  
  449. function OnGameEnd(stage)
  450.         script_loaded = false
  451.         if stage == 1 then
  452.                 if object_respawn_timer then
  453.                         removetimer(object_respawn_timer)
  454.                         object_respawn_timer = nil
  455.                 end
  456.                 if gametype[map_name] == "teamslayer" then
  457.                         Say(getname(last_killer) .. " got the winning kill")
  458.                 end
  459.                 if score[1] > score[2] then
  460.                         Say(color_table[Team_Color_1] .. " team has won the game!")
  461.                 elseif score[1] < score[2] then
  462.                         Say(color_table[Team_Color_2] .. " team has won the game!")
  463.                 end
  464.         end
  465. end
  466.  
  467. function OnServerChat(player, type, message)
  468.         local response = nil
  469.         if message == "changeteam" and allow_change[map_name] then
  470.                 response = false
  471.                 local team,key = getteam(player)
  472.                 if team == 1 then
  473.                         table.remove(first, key)
  474.                         table.insert(second, player)
  475.                 else
  476.                         table.remove(second, key)
  477.                         table.insert(first, player)
  478.                 end
  479.                 registertimer(0, "SetColor", {player, false})
  480.                 local team1,key1,color = getteam(player)
  481.                 sendconsoletext(player, teamchange_message .. color, nil, nil, "center")
  482.                 if target[team].playerholder ~= nil then setNav(player, team) end
  483.                 local m_player = getplayer(player)
  484.                 writebyte(m_player + 0x20, team1)
  485.                 writebyte(m_player + 0x66, team1)
  486.         elseif message == "changeteam" and not allow_change[map_name] then
  487.                 sendconsoletext(player, "You cannot switch teams!", nil, nil, "center")
  488.         end
  489.         return response
  490. end
  491.  
  492. function OnServerCommand(player, command)
  493.         local response = nil
  494.         local t = tokenizecmdstring(command)
  495.         local count = #t
  496.         if t[1] == "sv_script_reload" then
  497.         if gametype[map_name] == "ctf" then
  498.                 if target[1].object then destroyobject(target[1].object) end
  499.                 if target[2].object then destroyobject(target[2].object) end
  500.         end
  501.         elseif t[1] == "sv_map_reset" then
  502.                 if gametype[map_name] == "ctf" then
  503.                         if target[1].object then destroyobject(target[1].object) end
  504.                         if target[2].object then destroyobject(target[2].object) end
  505.                 end
  506.                 target = {}
  507.                 player_scores = {}
  508.                 score = {}
  509.                 spawns = {}
  510.                 object_respawn_timer = nil
  511.                 count1 = 0
  512.                 count2 = 0
  513.                 registertimer(0, "NewGame", false)
  514.         elseif t[1] == "sv_changeteamcolor" then
  515.                 response = false
  516.                 Command_ChangeTeamColor(player, t[1], t[2], t[3], count)
  517.         elseif t[1] == "sv_changeteam" then
  518.                 response = false
  519.                 Command_ChangePlayerTeam(player, t[1], t[2], count)
  520.         end
  521.         return response
  522. end
  523.  
  524. function OnPlayerJoin(player)
  525.         if #first > #second then table.insert(second, player)
  526.         else table.insert(first, player)
  527.         end
  528.         registertimer(0, "SetColor", {player, true})
  529.         local team,key,color = getteam(player)
  530.         local msg = string.format(welcome_message, color)
  531.         sendconsoletext(player, msg, nil, nil, "center")
  532.         local msg = ""
  533.         if gametype[map_name] == "ctf" then
  534.             msg = ctf_message
  535.         elseif gametype[map_name] == "teamslayer" then
  536.             msg = slayer_message
  537.         end
  538.         sendconsoletext(player, msg, nil, nil, "center")
  539.         local m_player = getplayer(player)
  540.         writebyte(m_player + 0x20, team)
  541.         writebyte(m_player + 0x66, team)
  542.         writeword(m_player + 0x88, player)
  543. end
  544.  
  545. function OnPlayerLeave(player)
  546.         local team,key = getteam(player)
  547.         if team == 1 then
  548.             table.remove(first, key)
  549.         else
  550.             table.remove(second, key)
  551.         end
  552. end
  553.  
  554. function OnPlayerSpawn(player)
  555.         local m_objectId = getplayerobjectid(player)
  556.         if m_objectId then
  557.                 if colorspawn[player] == nil then
  558.                         colorspawn[player] = {}
  559.                 elseif colorspawn[player][1] then
  560.                         movobjectcoords(m_objectId, colorspawn[player][1], colorspawn[player][2], colorspawn[player][3])
  561.                         colorspawn[player] = {}
  562.                         return
  563.                 end
  564.                 if spawn_with_team then
  565.                 local team = getteam(player)
  566.                 local r
  567.                 if team == 1 then
  568.                 r = getrandomnumber(0, count1-1)
  569.                 else
  570.                     r = getrandomnumber(0, count2-1)
  571.                 end
  572.                 movobjectcoords(m_objectId, spawns[team][r].x, spawns[team][r].y, spawns[team][r].z)
  573.         end
  574.         end
  575. end
  576.  
  577. function OnObjectInteraction(player, objId, mapId)
  578.         if gametype[map_name] == "ctf" then
  579.                 local team = getteam(player)
  580.                 local o_team
  581.                 if team == 1 then
  582.                     o_team = 2
  583.                 else
  584.                     o_team = 1
  585.                 end
  586.                 if objId == target[team].object then
  587.                         local m_objectId = getplayerobjectid(player)
  588.                         if m_objectId then
  589.                                 if not check_sphere(m_objectId, target[team].x, target[team].y, target[team].z, 1.0) then
  590.                                         sayteam("Your team has returned the flag!", team, player)
  591.                                         sayteam("The other team has returned their flag!", o_team)
  592.                                         sendconsoletext(player, "You have returned the flag", nil, nil, "center")
  593.                                         destroyobject(objId)
  594.                                         target[team].object = createobject(object_tag_id, 0, object_respawn_time, true, target[team].x , target[team].y, target[team].z)
  595.                                         target[o_team].boolean = true
  596.                                         target[o_team].playerholder = nil
  597.                                         resetNavs(team)
  598.                                 elseif playerisholding(player, o_team) and check_sphere(m_objectId, target[team].x, target[team].y, target[team].z, 1.0) then
  599.                                         local ip = getip(player)
  600.                                         if player_scores[ip] == nil then player_scores[ip] = 0 end
  601.                                         player_scores[ip] = player_scores[ip] + 1
  602.                                         score[team] = score[team] + 1
  603.                                         if target[o_team].object then destroyobject(target[o_team].object) end
  604.                                         target[o_team].object = createobject(object_tag_id, 0, object_respawn_time, true, target[o_team].x , target[o_team].y, target[o_team].z)
  605.                                         local msg = getname(player) .. " has scored!"
  606.                                         Say(msg)
  607.                                         target[team].boolean = true
  608.                                         target[team].playerholder = nil
  609.                                         resetNavs(o_team)
  610.                                         if score[team] < max_flags then
  611.                                                 if score[1] == score[2] then
  612.                                                         local msg = "Score is tied!"
  613.                                                         Say(msg)
  614.                                                 elseif score[1] > score[2] and score[1] == score[2]+1 then
  615.                                                         local msg = color_table[Team_Color_1] .. " team has taken the lead!"
  616.                                                         Say(msg)
  617.                                                 elseif score[1] < score[2] and score[1]+1 == score[2] then
  618.                                                         local msg = color_table[Team_Color_2] .. " team has taken the lead!"
  619.                                                         Say(msg)
  620.                                                 elseif score[1] > score[2] then
  621.                                                         local msg = color_table[Team_Color_1] .. " team has scored!"
  622.                                                         Say(msg)
  623.                                                 elseif score[1] < score[2] then
  624.                                                         local msg = color_table[Team_Color_2] .. " team has scored!"
  625.                                                         Say(msg)
  626.                                                 end
  627.                                                 local msg = color_table[Team_Color_1] .. " has " .. score[1] .. " flag(s)"
  628.                                                 local msg2 = color_table[Team_Color_2] .. " has " .. score[2] .. " flag(s)"
  629.                                                 Say(msg)
  630.                                                 Say(msg2)
  631.                                         else
  632.                                                 svcmd("sv_map_next")
  633.                                         end
  634.                                 end
  635.                         end
  636.                         return false
  637.                 elseif objId == target[o_team].object then
  638.                         if target[team].boolean == true then
  639.                                 setNavs(player, o_team)
  640.                                 target[team].boolean = false
  641.                                 sayteam("Your team has taken the flag!", team, player)
  642.                                 sayteam("The other team has taken your flag!", o_team)
  643.                                 local msg = "You have taken the flag"
  644.                                 sendconsoletext(player, msg, nil, nil, "center")
  645.                         end
  646.                         return true
  647.                 end
  648.         end
  649.         return nil
  650. end
  651.  
  652. function OnPlayerKill(killer, victim, mode)
  653.         if gametype[map_name] == "teamslayer" and mode > 3 then
  654.                 if mode == 4 then
  655.                         local team = getteam(killer)
  656.                         score[team] = score[team] + 1
  657.                         if score[team] >= max_score then
  658.                                 if last_killer == nil then last_killer = killer end
  659.                                 svcmd("sv_map_next")
  660.                         end
  661.                 elseif mode == 5 and betray_kill then
  662.                         local team = getteam(killer)
  663.                         score[team] = score[team] - 1
  664.                 elseif mode == 6 and suicide_kill then
  665.                         local team = getteam(victim)
  666.                         score[team] = score[team] - 1
  667.                 end
  668.         elseif gametype[map_name] == "ctf" then
  669.                 local ip = getip(victim)
  670.                 if player_scores[ip] == nil then player_scores[ip] = 0 end
  671.                 writedwordsigned(slayer_globals, 0x40 + victim * 4, player_scores[ip])
  672.         end
  673. end
  674.  
  675. function OnDamageLookup(receiving, causing, tagid)
  676.         if not friendly_fire[map_name] and causing and receiving then
  677.                 local causer = objectidtoplayer(causing)
  678.                 local receiver = objectidtoplayer(receiving)
  679.                 if causer and receiver and causer ~= receiver and getteam(causer) == getteam(receiver) then
  680.                         return false
  681.                 end
  682.         end
  683.         return nil
  684. end
  685.  
  686. function OnClientUpdate(player)
  687.         if gametype[map_name] == "ctf" then
  688.                 local ip = getip(player)
  689.                 if player_scores[ip] == nil then player_scores[ip] = 0 end
  690.                 writedwordsigned(slayer_globals, 0x40 + player * 4, player_scores[ip])
  691.         elseif gametype[map_name] == "teamslayer" then
  692.                 local team = getteam(player)
  693.                 writedwordsigned(slayer_globals, 0x40 + player * 4, score[team])
  694.         end
  695. end
  696.  
  697. function Command_ChangeTeamColor(executor, command, team, color, count)
  698.         if count == 3 then
  699.                 team = tonumber(team)
  700.                 if team and team == 1 or team == 2 then
  701.                         local bool = true
  702.                         for i=0,17 do
  703.                                 if string.lower(color_table[i]) == string.lower(color) then
  704.                                         bool = false
  705.                                         if team == 1 then
  706.                                                 if i == Team_Color_2 then
  707.                                                         sendresponse("The team color cannot be the same as the other team.", executor)
  708.                                                         return
  709.                                                 elseif i == Team_Color_1 then
  710.                                                         sendresponse("That is already the team color", executor)
  711.                                                         return
  712.                                                 else
  713.                                                         Team_Color_1 = i
  714.                                                 end
  715.                                         else
  716.                                                 if i == Team_Color_1 then
  717.                                                         sendresponse("The team color cannot be the same as the other team.", executor)
  718.                                                         return
  719.                                                 elseif i == Team_Color_2 then
  720.                                                         sendresponse("That is already the team color", executor)
  721.                                                         return
  722.                                                 else
  723.                                                         Team_Color_2 = i
  724.                                                 end
  725.                                         end
  726.                                         break
  727.                                 end
  728.                         end
  729.                         if bool then
  730.                                 sendresponse("Invalid Color!", executor)
  731.                         else
  732.                                 for i=0,15 do
  733.                                         if getplayer(i) and getteam(i) == team then
  734.                                                 registertimer(0, "SetColor", {i, true})
  735.                                         end
  736.                                 end
  737.                                 sendresponse("Team color has been changed", executor)
  738.                         end
  739.                 else
  740.                         sendresponse("Invalid Team! Valid Teams: 1 or 2", executor)
  741.                 end
  742.         else
  743.                 sendresponse("Invalid Syntax: " .. command .. " [team] [color]", executor)
  744.         end
  745. end
  746.  
  747. function Command_ChangePlayerTeam(executor, command, player, count)
  748.         if count == 2 then
  749.                 local m_player = getplayer(player)
  750.                 if m_player then
  751.                         local team,key = getteam(player)
  752.                         if team == 1 then
  753.                                 table.remove(first, key)
  754.                                 table.insert(second, player)
  755.                         else
  756.                                 table.remove(second, key)
  757.                                 table.insert(first, player)
  758.                         end
  759.                         registertimer(0, "SetColor", {player, false})
  760.                         local team1,key1,color = getteam(player)
  761.                         sendconsoletext(player, teamchange_message .. color, nil, nil, "center")
  762.                         if target[team].playerholder ~= nil then setNav(player, team) end
  763.                         writebyte(m_player + 0x20, team1)
  764.                         writebyte(m_player + 0x66, team1)
  765.                 else
  766.                         sendresponse("Invalid Player", executor)
  767.                 end
  768.         else
  769.                 sendresponse("Invalid Syntax: " .. command .. " [player]", executor)
  770.         end
  771. end
  772.  
  773. function check_sphere(m_objectId, X, Y, Z, R)
  774.         local Pass = false
  775.         if m_objectId then
  776.                 local x,y,z = getobjectcoords(m_objectId)
  777.                 if (X - x)^2 + (Y - y)^2 + (Z - z)^2 <= R then
  778.                         Pass = true
  779.                 end
  780.         end
  781.     return Pass
  782. end
  783.  
  784. function ObjectRespawnTimer(id, count)
  785.         local temp = object_respawn_timer
  786.         object_respawn_timer = nil
  787.     if gametype[map_name] == "ctf" then
  788.         for team = 1,2 do
  789.                 if team == 1 then o_team = 2
  790.                 else o_team = 1
  791.                 end
  792.                 local bool = true
  793.                 for player=0,15 do
  794.                         if getplayer(player) then
  795.                                 local m_objectId = getplayerobjectid(player)
  796.                                 if m_objectId then
  797.                                         local m_object = getobject(m_objectId)
  798.                                         if m_object then
  799.                                                 if playerisholding(player, team) then
  800.                                                         if target[team].playerholder ~= player then
  801.                                                                 target[team].playerholder = player
  802.                                                                 setNavs(player, o_team)
  803.                                                         end
  804.                                                         target[team].count = 0
  805.                                                         bool = false
  806.                                                         break
  807.                                                 end
  808.                                         end
  809.                                 end
  810.                         end
  811.                 end
  812.                 if bool then
  813.                         resetNavs(o_team)
  814.                         target[team].playerholder = nil
  815.                         target[team] = target[team] or {}
  816.                         if target[team].count == nil then target[team].count = 0 end
  817.                         if not check_sphere(target[team].object, target[team].x, target[team].y, target[team].z, 1.0) then
  818.                                 target[team].count = target[team].count + 1
  819.                         end
  820.                         if target[team].count == object_respawn_time then
  821.                                 target[team].boolean = true
  822.                                 sayteam("The flag has been reset", team)
  823.                                 sayteam("The flag has been reset", o_team)
  824.                                 destroyobject(target[team].object)
  825.                                 target[team].count = 0
  826.                                 target[team].object = createobject(object_tag_id, 0, object_respawn_time, true, target[team].x , target[team].y, target[team].z)
  827.                         end
  828.                 end
  829.         end
  830.     end
  831.         object_respawn_timer = temp
  832.         return true
  833. end
  834.  
  835. function getteam(player)
  836.         for k,v in pairs(first) do
  837.                 if v == player then
  838.                         return 1,k,tostring(color_table[Team_Color_1])
  839.                 end
  840.         end
  841.         for k,v in pairs(second) do
  842.                 if v == player then
  843.                         return 2,k,tostring(color_table[Team_Color_2])
  844.                 end
  845.         end
  846.         return nil,nil,nil
  847. end
  848.  
  849. function NewGame(id, count, bool)
  850.         if readbyte(gametype_base + 0x30) ~= 2 then
  851.                 raiseerror("    >> Invalid gametype. It must be FFA Slayer.")
  852.         end
  853.         if readbyte(gametype_base + 0x34) ~= 0 then
  854.                 raiseerror("    >> Team play must be off for this script.")
  855.         end
  856.         local file = io.open(path .. "\\data\\colored-data.data","r")
  857.         if not file then
  858.                 raiseerror("    >> the colored-data.data file is missing.")
  859.         end
  860.         if GAME == "PC" then map = readstring(0x698F21)
  861.         else map = readstring(0x61D151)
  862.         end
  863.         colorspawn = {}
  864.         first = {}
  865.         target = {}
  866.         player_scores = {}
  867.         score = {}
  868.         second = {}
  869.         spawns = {}
  870.         last_killer = nil
  871.         if bool == true then
  872.                 for player = 0,15 do
  873.                         if getplayer(player) then
  874.                                 setassists(0, player)
  875.                                 setdeaths(0, player)
  876.                                 setkills(0, player)
  877.                                 if #first > #second then
  878.                                         table.insert(second, player)
  879.                                 else
  880.                                         table.insert(first, player)
  881.                                 end
  882.                                 registertimer(0, "SetColor", {player, false})
  883.                         end
  884.                 end
  885.         end
  886.         if tonumber(timelimit) then
  887.                 settimelimit(tonumber(timelimit))
  888.                 hprintf("Current Timelimit is " .. round(timelimit) .. " minutes. Time remaining: " .. tostring(round(readdword(gametype_base + 0x78) / 1800 - readdword(readdword(gametime_base) + 0xC) / 1800)) .. " minutes.")
  889.         end
  890.         Team_Color_1 = team_color[map][1]
  891.         Team_Color_2 = team_color[map][2]
  892.         if colors_random[map_name] == false then
  893.                 for i=0,17 do
  894.                         if string.lower(color_table[i]) == string.lower(Team_Color_1) then
  895.                                 Team_Color_1 = i
  896.                         end
  897.                         if string.lower(color_table[i]) == string.lower(Team_Color_2) then
  898.                                 Team_Color_2 = i
  899.                         end
  900.                 end
  901.                 if Team_Color_1 == Team_Color_2 then
  902.                         repeat Team_Color_2 = getrandomnumber(0, 17)
  903.                         until Team_Color_2 ~= Team_Color_1
  904.                 end
  905.         end
  906.         if tonumber(Team_Color_1) == nil or colors_random[map_name] then
  907.                 repeat Team_Color_1 = getrandomnumber(0, 17)
  908.                 until Team_Color_1 ~= Team_Color_2
  909.         end
  910.         if tonumber(Team_Color_2) == nil or colors_random[map_name] then
  911.                 repeat Team_Color_2 = getrandomnumber(0, 17)
  912.                 until Team_Color_2 ~= Team_Color_1
  913.         end
  914.         writebyte(slayer_score_patch, 0xEB)
  915.         for team=1,2 do
  916.                 spawns[team] = {}
  917.                 score[team] = 0
  918.                 target[team] = {}
  919.                 target[team].boolean = true
  920.                 target[team].playerholder = nil
  921.                 target[team].x = 0
  922.                 target[team].y = 0
  923.                 target[team].z = 0
  924.                 target[team].object = 0
  925.         end
  926.         for line in file:lines() do
  927.                 local t = tokenizestring(line, ",")
  928.                 if t[5] == map then
  929.                         local team = tonumber(t[4])
  930.                         if team == 1 or team == 2 then
  931.                                 local count = nil
  932.                                 if team == 2 then
  933.                                         count = count2
  934.                                         count2 = count2 + 1
  935.                                 else
  936.                                         count = count1
  937.                                         count1 = count1 + 1
  938.                                 end
  939.                                 spawns[team][count] = {}
  940.                                 spawns[team][count].x = t[1]
  941.                                 spawns[team][count].y = t[2]
  942.                                 spawns[team][count].z = t[3]
  943.                         else
  944.                                 if gametype[map_name] == "ctf" then
  945.                                         if t[4] == "flag_1" then team = 1
  946.                                         else team = 2 end
  947.                                         target[team].x = t[1]
  948.                                         target[team].y = t[2]
  949.                                         target[team].z = t[3]
  950.                                 elseif gametype[map_name] ~= "teamslayer" then
  951.                                     raiseerror("Invalid gametype set in the script.")
  952.                                 end
  953.                         end
  954.                 end
  955.         end
  956.         if gametype[map_name] == "ctf" then
  957.                 object_tag_id = gettagid("weap", "weapons\\flag\\flag")
  958.                 object_respawn_timer = registertimer(1000, "ObjectRespawnTimer")
  959.                 if target[1].x then target[1].object = createobject(object_tag_id, 0, object_respawn_time, true, target[1].x , target[1].y, target[1].z) end
  960.                 if target[2].x then target[2].object = createobject(object_tag_id, 0, object_respawn_time, true, target[2].x , target[2].y, target[2].z) end
  961.         end
  962.         return false
  963. end
  964.  
  965. function playerisholding(player, team)
  966.         for i = 1,16 do
  967.                 if target[team].object then
  968.                         local m_objectId = getplayerobjectid(player)
  969.                         if m_objectId then
  970.                                 local m_object = getobject(m_objectId)
  971.                                 for j = 0,3 do
  972.                                         if readdword(m_object, 0x2F8 + (j*4)) == target[team].object then
  973.                                                 return true
  974.                                         end
  975.                                 end
  976.                         end
  977.                 end
  978.         end
  979.         return false
  980. end
  981.  
  982. function setNavs(player, team)
  983.         for i=0,15 do
  984.                 local m_player = getplayer(i)
  985.                 if m_player and player ~= i and getteam(i) == team then
  986.                         writeword(m_player + 0x88, player)
  987.                 end
  988.         end
  989. end
  990.  
  991. function setNav(player, team)
  992.         writeword(getplayer(player) + 0x88, target[team].playerholder)
  993. end    
  994.  
  995. function resetNavs(team)
  996.         for i=0,15 do
  997.                 local m_player = getplayer(i)
  998.                 if m_player and getteam(i) == team then
  999.                         writeword(m_player + 0x88, i)
  1000.                 end
  1001.         end
  1002. end
  1003.  
  1004. function sendresponse(message, player)
  1005.         if message == "" then
  1006.                 return
  1007.         end
  1008.         player = tonumber(player)
  1009.         if tonumber(player) and player ~= nil and player ~= -1 and player >= 0 and player < 16 then
  1010.                 sendconsoletext(player, message)
  1011.         else
  1012.                 hprintf(message)
  1013.         end
  1014. end
  1015.  
  1016. function SetColor(id, count, arg)
  1017.         local player = arg[1]
  1018.         local m_objectId = getplayerobjectid(player)
  1019.         if m_objectId then
  1020.                 local m_player = getplayer(player)
  1021.                 local x,y,z = getobjectcoords(m_objectId)
  1022.                 if getteam(player) == 1 then
  1023.                         writebyte(m_player + 0x60, Team_Color_1)
  1024.                 else
  1025.                         writebyte(m_player + 0x60, Team_Color_2)
  1026.                 end
  1027.                 destroyobject(m_objectId)
  1028.                 if arg[2] then
  1029.                         if colorspawn == nil then colorspawn = {} end
  1030.                         if colorspawn[player] == nil then colorspawn[player] = {} end
  1031.                         colorspawn[player][1] = x
  1032.                         colorspawn[player][2] = y
  1033.                         colorspawn[player][3] = z
  1034.                 end
  1035.                 ReduceDeaths(player)
  1036.                 return false
  1037.         end
  1038.         return true
  1039. end
  1040.  
  1041. function settimelimit(value)
  1042.         if tonumber(value) then
  1043.                 writedword(timelimit_address, tonumber(value))
  1044.                 local time_passed = readdword(readdword(gametime_base) + 0xC)
  1045.                 writedword(gametype_base + 0x78, 30*60*value + time_passed)
  1046.         end
  1047. end
  1048.  
  1049. function ReduceDeaths(player)
  1050.         setdeaths(readword(getplayer(player), 0xAE), player)
  1051. end
  1052.  
  1053. function round(val, decimal)
  1054.         if (decimal) then
  1055.                 return math.floor((val * 10^decimal) + 0.5) / (10^decimal)
  1056.         else
  1057.                 return math.floor(val+0.5)
  1058.         end
  1059. end
  1060.  
  1061. function sayteam(message, team, player)
  1062.         for i=0,15 do
  1063.                 if getplayer(i) and player ~= i and getteam(i) == team then
  1064.                         sendconsoletext(i, tostring(message), nil, nil, "center")
  1065.                 end
  1066.         end
  1067. end
  1068.  
  1069. function Say(message)
  1070.         for i=0,15 do
  1071.                 if getplayer(i) then
  1072.                         sendconsoletext(i, message)
  1073.                 end
  1074.         end
  1075. end
  1076.  
  1077. function setassists(value, player)
  1078.         local m_player = getplayer(player)
  1079.         if m_player then
  1080.                 if value > 0x7FFF then
  1081.                         writewordsigned(m_player + 0xA4, 0x7FFF)
  1082.                 elseif value < -0x7FFF then
  1083.                         writewordsigned(m_player + 0xA4, -0x7FFF)
  1084.                 else
  1085.                         writewordsigned(m_player + 0xA4, value)
  1086.                 end
  1087.         end
  1088. end
  1089.  
  1090. function setkills(value, player)
  1091.         local m_player = getplayer(player)
  1092.         if m_player then
  1093.                 if value > 0x7FFF then
  1094.                         writewordsigned(m_player + 0x9C, 0x7FFF)
  1095.                 elseif value < -0x7FFF then
  1096.                         writewordsigned(m_player + 0x9C, -0x7FFF)
  1097.                 else
  1098.                         writewordsigned(m_player + 0x9C, value)
  1099.                 end
  1100.         end
  1101. end
  1102.  
  1103. function setdeaths(value, player)
  1104.         local m_player = getplayer(player)
  1105.         if m_player then
  1106.                 if value > 0x7FFF then
  1107.                         writewordsigned(m_player + 0xAE, 0x7FFF)
  1108.                 elseif value < -0x7FFF then
  1109.                         writewordsigned(m_player + 0xAE, -0x7FFF)
  1110.                 else
  1111.                         writewordsigned(m_player + 0xAE, value)
  1112.                 end
  1113.         end
  1114. end
  1115.  
  1116. function writewordsigned(address, word)
  1117.         value = tonumber(word)
  1118.         if value == nil then value = tonumber(word, 16) end
  1119.         if value and value > 0x7FFF then
  1120.                 local max = 0xFFFF
  1121.                 local difference = max - value
  1122.                 value = -1 - difference
  1123.         end
  1124.         writeword(address, value)
  1125. end
  1126.  
  1127. function writedwordsigned(address, offset, value)
  1128.         if value and value > 0x7FFFFFFF then
  1129.                 local max = 0xFFFFFFFF
  1130.                 local difference = max - value
  1131.                 value = -1 - difference
  1132.         end
  1133.         if tonumber(value) then
  1134.                 writedword(address + offset, value)
  1135.         end
  1136. end
  1137.  
  1138.  
  1139. -- Start of sendconsoletext script  --
  1140.  
  1141. console = {}
  1142. console.__index = console
  1143. registertimer(100, "ConsoleTimer")
  1144. phasor_sendconsoletext = sendconsoletext
  1145.  
  1146. function sendconsoletext(player, message, time, order, align, func)
  1147.         console[player] = console[player] or {}
  1148.         local temp = {}
  1149.         temp.player = player
  1150.         temp.id = nextid(player, order)
  1151.         temp.message = message or ""
  1152.         temp.time = time or 5
  1153.         temp.remain = temp.time
  1154.         temp.align = align or "left"
  1155.         if type(func) == "function" then
  1156.                 temp.func = func
  1157.         elseif type(func) == "string" then
  1158.                 temp.func = _G[func]
  1159.         end
  1160.         console[player][temp.id] = temp
  1161.         setmetatable(console[player][temp.id], console)
  1162.         return console[player][temp.id]
  1163. end
  1164.  
  1165. function nextid(player, order)
  1166.         if not order then
  1167.                 local x = 0
  1168.                 for k,v in pairs(console[player]) do
  1169.                         if k > x + 1 then
  1170.                                 return x + 1
  1171.                         end
  1172.                        
  1173.                         x = x + 1
  1174.                 end
  1175.                 return x + 1
  1176.         else
  1177.                 local original = order
  1178.                 while console[player][order] do
  1179.                         order = order + 0.001
  1180.                         if order == original + 0.999 then break end
  1181.                 end
  1182.                 return order
  1183.         end
  1184. end
  1185.  
  1186. function getmessage(player, order)
  1187.         if console[player] then
  1188.                 if order then
  1189.                         return console[player][order]
  1190.                 end
  1191.         end
  1192. end
  1193.  
  1194. function getmessages(player)
  1195.         return console[player]
  1196. end
  1197.  
  1198. function getmessageblock(player, order)
  1199.         local temp = {}
  1200.         for k,v in pairs(console[player]) do
  1201.                 if k >= order and k < order + 1 then
  1202.                         table.insert(temp, console[player][k])
  1203.                 end
  1204.         end
  1205.         return temp
  1206. end
  1207.  
  1208. function console:getmessage()
  1209.         return self.message
  1210. end
  1211.  
  1212. function console:append(message, reset)
  1213.         if console[self.player] then
  1214.                 if console[self.player][self.id] then
  1215.                         if getplayer(self.player) then
  1216.                                 if reset then
  1217.                                         if reset == true then
  1218.                                                 console[self.player][self.id].remain = console[self.player][self.id].time
  1219.                                         elseif tonumber(reset) then
  1220.                                                 console[self.player][self.id].time = tonumber(reset)
  1221.                                                 console[self.player][self.id].remain = tonumber(reset)
  1222.                                         end
  1223.                                 end
  1224.                                 console[self.player][self.id].message = message or ""
  1225.                                 return true
  1226.                         end
  1227.                 end
  1228.         end
  1229. end
  1230.  
  1231. function console:shift(order)
  1232.         local temp = console[self.player][self.id]
  1233.         console[self.player][self.id] = console[self.player][order]
  1234.         console[self.player][order] = temp
  1235. end
  1236.  
  1237. function console:pause(time)
  1238.         console[self.player][self.id].pausetime = time or 5
  1239. end
  1240.  
  1241. function console:delete()
  1242.         console[self.player][self.id] = nil
  1243. end
  1244.  
  1245. function ConsoleTimer(id, count)
  1246.         for i,_ in opairs(console) do
  1247.                 if tonumber(i) then
  1248.                         if getplayer(i) then
  1249.                                 for k,v in opairs(console[i]) do
  1250.                                         if console[i][k].pausetime then
  1251.                                                 console[i][k].pausetime = console[i][k].pausetime - 0.1
  1252.                                                 if console[i][k].pausetime <= 0 then
  1253.                                                         console[i][k].pausetime = nil
  1254.                                                 end
  1255.                                         else
  1256.                                                 if console[i][k].func then
  1257.                                                         if not console[i][k].func(i) then
  1258.                                                                 console[i][k] = nil
  1259.                                                         end
  1260.                                                 end
  1261.                                                 if console[i][k] then
  1262.                                                         console[i][k].remain = console[i][k].remain - 0.1
  1263.                                                         if console[i][k].remain <= 0 then
  1264.                                                                 console[i][k] = nil
  1265.                                                         end
  1266.                                                 end
  1267.                                         end
  1268.                                 end
  1269.                                 if table.len(console[i]) > 0 then
  1270.                                         local paused = 0
  1271.                                         for k,v in pairs(console[i]) do
  1272.                                                 if console[i][k].pausetime then
  1273.                                                         paused = paused + 1
  1274.                                                 end
  1275.                                         end
  1276.                                         if paused < table.len(console[i]) then
  1277.                                                 local str = ""
  1278.                                                 for i = 0,30 do
  1279.                                                         str = str .. " \n"
  1280.                                                 end
  1281.                                                 phasor_sendconsoletext(i, str)
  1282.                                                 for k,v in opairs(console[i]) do
  1283.                                                         if not console[i][k].pausetime then
  1284.                                                                 if console[i][k].align == "right" or console[i][k].align == "center" then
  1285.                                                                         phasor_sendconsoletext(i, consolecenter(string.sub(console[i][k].message, 1, 78)))
  1286.                                                                 else
  1287.                                                                         phasor_sendconsoletext(i, string.sub(console[i][k].message, 1, 78))
  1288.                                                                 end
  1289.                                                         end
  1290.                                                 end
  1291.                                         end
  1292.                                 end
  1293.                         else
  1294.                                 console[i] = nil
  1295.                         end
  1296.                 end
  1297.         end
  1298.         return true
  1299. end
  1300.  
  1301. function consolecenter(text)
  1302.         if text then
  1303.                 local len = string.len(text)
  1304.                 for i = len + 1, 78 do
  1305.                         text = " " .. text
  1306.                 end
  1307.                 return text
  1308.         end
  1309. end
  1310.  
  1311. function opairs(t)
  1312.         local keys = {}
  1313.         for k,v in pairs(t) do
  1314.                 table.insert(keys, k)
  1315.         end    
  1316.         table.sort(keys,
  1317.         function(a,b)
  1318.                 if type(a) == "number" and type(b) == "number" then
  1319.                         return a < b
  1320.                 end
  1321.                 an = string.lower(tostring(a))
  1322.                 bn = string.lower(tostring(b))
  1323.                 if an ~= bn then
  1324.                         return an < bn
  1325.                 else
  1326.                         return tostring(a) < tostring(b)
  1327.                 end
  1328.         end)
  1329.         local count = 1
  1330.         return function()
  1331.                 if table.unpack(keys) then
  1332.                         local key = keys[count]
  1333.                         local value = t[key]
  1334.                         count = count + 1
  1335.                         return key,value
  1336.                 end
  1337.         end
  1338. end
  1339.  
  1340. function table.len(t)
  1341.         local count = 0
  1342.         for k,v in pairs(t) do
  1343.                 count = count + 1
  1344.         end
  1345.         return count
  1346. end
  1347.  
  1348. -- End of sendconsoletext script --
  1349.  
  1350. function createData()
  1351.     local file = io.open(path .. "\\data\\colored-data.data","w")
  1352.         file:write("29.055599212646,13.732000350952,-0.10000000149012,flag_1,beavercreek\n")
  1353.         file:write("-0.86037802696228,13.764800071716,-0.0099999997764826,flag_2,beavercreek\n")
  1354.         file:write("25.5445,8.1934,-0.2155,1,beavercreek\n")
  1355.         file:write("22.3614,10.6675,-0.2157,1,beavercreek\n")
  1356.         file:write("21.4196,11.4317,-0.2157,1,beavercreek\n")
  1357.         file:write("22.5042,13.7062,-0.2157,1,beavercreek\n")
  1358.         file:write("27.8517,15.1745,-0.2157,1,beavercreek\n")
  1359.         file:write("23.5924,10.5431,-0.2157,1,beavercreek\n")
  1360.         file:write("21.4769,17.1157,-0.2155,1,beavercreek\n")
  1361.         file:write("28.9392,16.9907,-0.2155,1,beavercreek\n")
  1362.         file:write("30.0444,15.4227,-0.2157,1,beavercreek\n")
  1363.         file:write("30.0568,13.6334,-0.2157,1,beavercreek\n")
  1364.         file:write("22.4073,16.8358,-0.2157,1,beavercreek\n")
  1365.         file:write("27.8903,16.9571,-0.2155,1,beavercreek\n")
  1366.         file:write("30.0328,12.1737,-0.2155,1,beavercreek\n")
  1367.         file:write("24.5066,10.4382,-1.3545,1,beavercreek\n")
  1368.         file:write("26.5395,10.4953,-0.2155,1,beavercreek\n")
  1369.         file:write("29.9206,16.8932,-0.2157,1,beavercreek\n")
  1370.         file:write("22.4107,12.0958,-0.2157,1,beavercreek\n")
  1371.         file:write("27.0401,18.0341,-0.2157,1,beavercreek\n")
  1372.         file:write("21.987,13.8365,-1.3547,1,beavercreek\n")
  1373.         file:write("30.0342,10.611,-0.2157,1,beavercreek\n")
  1374.         file:write("27.7566,12.3208,-0.2155,1,beavercreek\n")
  1375.         file:write("27.7634,13.4704,-0.2157,1,beavercreek\n")
  1376.         file:write("27.8357,10.5588,-0.2155,1,beavercreek\n")
  1377.         file:write("29.0231,10.5271,-0.2157,1,beavercreek\n")
  1378.         file:write("24.8308,10.4736,-0.2155,1,beavercreek\n")
  1379.         file:write("20.7148,15.2755,-0.2157,1,beavercreek\n")
  1380.         file:write("22.4083,15.7295,-0.2157,1,beavercreek\n")
  1381.         file:write("23.9246,16.9733,-0.2157,1,beavercreek\n")
  1382.         file:write("24.9706,16.9969,-0.2155,1,beavercreek\n")
  1383.         file:write("26.281,16.967,-0.2157,1,beavercreek\n")
  1384.         file:write("-2.0031,15.3896,-0.1535,2,beavercreek\n")
  1385.         file:write("-1.0837,13.7866,0.837,2,beavercreek\n")
  1386.         file:write("0.2848,14.5779,-0.1535,2,beavercreek\n")
  1387.         file:write("4.1356,17.0327,-0.1535,2,beavercreek\n")
  1388.         file:write("6.8341,12.2714,-0.2157,2,beavercreek\n")
  1389.         file:write("3.043,17.0712,-0.1539,2,beavercreek\n")
  1390.         file:write("7.7942,11.1512,-1.3545,2,beavercreek\n")
  1391.         file:write("-2.1051,10.4394,-0.1536,2,beavercreek\n")
  1392.         file:write("5.7639,17.0508,-0.1539,2,beavercreek\n")
  1393.         file:write("4.3432,13.7707,-1.3547,2,beavercreek\n")
  1394.         file:write("2.3468,19.3776,-0.2157,2,beavercreek\n")
  1395.         file:write("1.6841,10.5375,-0.1538,2,beavercreek\n")
  1396.         file:write("3.4802,17.3797,-1.3545,2,beavercreek\n")
  1397.         file:write("6.7001,15.4252,-0.2157,2,beavercreek\n")
  1398.         file:write("1.9706,9.4954,-0.2155,2,beavercreek\n")
  1399.         file:write("3.0263,10.5536,-0.1539,2,beavercreek\n")
  1400.         file:write("4.3189,10.5646,-0.1535,2,beavercreek\n")
  1401.         file:write("0.2962,12.3546,-0.1535,2,beavercreek\n")
  1402.         file:write("-2.0886,16.8697,-0.1536,2,beavercreek\n")
  1403.         file:write("7.1852,10.4595,-0.2157,2,beavercreek\n")
  1404.         file:write("0.2988,15.9689,-0.1535,2,beavercreek\n")
  1405.         file:write("5.7396,10.5314,-0.1538,2,beavercreek\n")
  1406.         file:write("0.153,10.5631,-0.1538,2,beavercreek\n")
  1407.         file:write("5.6863,15.3958,-0.1831,2,beavercreek\n")
  1408.         file:write("0.2039,16.9753,-0.1538,2,beavercreek\n")
  1409.         file:write("5.5286,13.7899,-0.1724,2,beavercreek\n")
  1410.         file:write("1.7286,16.9631,-0.1538,2,beavercreek\n")
  1411.         file:write("5.6825,11.9947,-0.1809,2,beavercreek\n")
  1412.         file:write("95.687797546387,-159.44900512695,-0.10000000149012,flag_1,bloodgulch\n")
  1413.         file:write("40.240600585938,-79.123199462891,-0.10000000149012,flag_2,bloodgulch\n")
  1414.         file:write("92.3358,-160.9627,1.7045,1,bloodgulch\n")
  1415.         file:write("99.3433,-161.3506,1.7045,1,bloodgulch\n")
  1416.         file:write("84.153,-160.4846,0.0549,1,bloodgulch\n")
  1417.         file:write("86.7501,-157.6567,0.0499,1,bloodgulch\n")
  1418.         file:write("98.4934,-157.639,1.7047,1,bloodgulch\n")
  1419.         file:write("89.4811,-153.5008,0.2907,1,bloodgulch\n")
  1420.         file:write("100.9611,-146.2492,0.2921,1,bloodgulch\n")
  1421.         file:write("91.8181,-150.5526,0.6361,1,bloodgulch\n")
  1422.         file:write("91.8936,-157.7808,1.7043,1,bloodgulch\n")
  1423.         file:write("94.4217,-156.7039,1.7045,1,bloodgulch\n")
  1424.         file:write("93.9652,-161.0826,1.7045,1,bloodgulch\n")
  1425.         file:write("82.6797,-161.4347,0.1028,1,bloodgulch\n")
  1426.         file:write("93.7371,-163.3982,1.7045,1,bloodgulch\n")
  1427.         file:write("96.8217,-156.9857,1.7047,1,bloodgulch\n")
  1428.         file:write("97.5481,-148.0367,0.0672,1,bloodgulch\n")
  1429.         file:write("99.1854,-146.6718,0.139,1,bloodgulch\n")
  1430.         file:write("97.2901,-163.536,1.7045,1,bloodgulch\n")
  1431.         file:write("46.0858,-88.7049,0.0426,2,bloodgulch\n")
  1432.         file:write("32.0706,-88.9022,0.0992,2,bloodgulch\n")
  1433.         file:write("30.554,-89.4359,0.1282,2,bloodgulch\n")
  1434.         file:write("42.5069,-90.5286,0.1739,2,bloodgulch\n")
  1435.         file:write("44.1468,-77.4776,1.7047,2,bloodgulch\n")
  1436.         file:write("38.2425,-74.9257,1.7047,2,bloodgulch\n")
  1437.         file:write("41.9949,-77.4017,1.7047,2,bloodgulch\n")
  1438.         file:write("41.8782,-81.0252,1.7047,2,bloodgulch\n")
  1439.         file:write("38.9028,-81.0872,1.7045,2,bloodgulch\n")
  1440.         file:write("50.4796,-86.1729,0.1111,2,bloodgulch\n")
  1441.         file:write("38.5909,-76.4709,1.7045,2,bloodgulch\n")
  1442.         file:write("36.7717,-76.8853,1.7046,2,bloodgulch\n")
  1443.         file:write("48.8456,-87.4721,0.0784,2,bloodgulch\n")
  1444.         file:write("41.5395,-82.788,1.7046,2,bloodgulch\n")
  1445.         file:write("42.1364,-75.0548,1.7045,2,bloodgulch\n")
  1446.         file:write("36.6864,-80.8403,1.7047,2,bloodgulch\n")
  1447.         file:write("38.0275,-89.6389,0.0353,2,bloodgulch\n")
  1448.         file:write("43.9145,-80.6787,1.7043,2,bloodgulch\n")
  1449.         file:write("38.1259,-82.8365,1.7045,2,bloodgulch\n")
  1450.         file:write("39.5897,-89.4771,0.0852,2,bloodgulch\n")
  1451.         file:write("42.0621,-75.9909,1.7045,2,bloodgulch\n")
  1452.         file:write("1.723109960556,0.4781160056591,0.60000002384186,flag_1,boardingaction\n")
  1453.         file:write("18.204000473022,-0.53684097528458,0.60000002384186,flag_2,boardingaction\n")
  1454.         file:write("-0.7149,-11.6389,2.7208,1,boardingaction\n")
  1455.         file:write("-0.5033,10.6796,0.2212,1,boardingaction\n")
  1456.         file:write("-0.5532,0.4446,0.2209,1,boardingaction\n")
  1457.         file:write("1.4681,2.8964,0.2209,1,boardingaction\n")
  1458.         file:write("-0.9798,-10.7659,0.2209,1,boardingaction\n")
  1459.         file:write("-0.4727,12.488,0.2212,1,boardingaction\n")
  1460.         file:write("3.9189,4.3902,0.2209,1,boardingaction\n")
  1461.         file:write("2.8867,4.3504,0.2209,1,boardingaction\n")
  1462.         file:write("-0.9555,-0.9009,0.2209,1,boardingaction\n")
  1463.         file:write("-0.5098,5.9486,0.2212,1,boardingaction\n")
  1464.         file:write("3.1977,2.8325,0.2212,1,boardingaction\n")
  1465.         file:write("-0.8961,-3.1955,0.2209,1,boardingaction\n")
  1466.         file:write("1.2872,-10.7245,0.2209,1,boardingaction\n")
  1467.         file:write("1.5835,4.2033,0.2209,1,boardingaction\n")
  1468.         file:write("-0.6404,-7.4609,0.2209,1,boardingaction\n")
  1469.         file:write("-0.2121,-15.1956,2.7205,1,boardingaction\n")
  1470.         file:write("0.1365,20.9842,-2.2787,1,boardingaction\n")
  1471.         file:write("-0.9911,1.7653,0.2212,1,boardingaction\n")
  1472.         file:write("-0.3988,-4.3458,0.2212,1,boardingaction\n")
  1473.         file:write("0.0841,21.1843,2.7205,1,boardingaction\n")
  1474.         file:write("0.8909,-6.3678,0.2209,1,boardingaction\n")
  1475.         file:write("2.9929,-3.6212,0.2209,1,boardingaction\n")
  1476.         file:write("-0.585,8.2243,0.2209,1,boardingaction\n")
  1477.         file:write("0.2055,-9.4209,0.2212,1,boardingaction\n")
  1478.         file:write("-0.083,-20.797,-2.2787,1,boardingaction\n")
  1479.         file:write("1.1603,-3.0911,0.2212,1,boardingaction\n")
  1480.         file:write("-0.3529,4.221,0.2209,1,boardingaction\n")
  1481.         file:write("20.8317,5.9264,0.2209,2,boardingaction\n")
  1482.         file:write("19.7185,7.4227,0.2209,2,boardingaction\n")
  1483.         file:write("18.0108,-3.1865,0.2209,2,boardingaction\n")
  1484.         file:write("18.316,1.8376,0.2209,2,boardingaction\n")
  1485.         file:write("17.3362,-21.1754,-4.7779,2,boardingaction\n")
  1486.         file:write("17.9186,6.2962,0.2212,2,boardingaction\n")
  1487.         file:write("19.7715,-4.1017,0.2209,2,boardingaction\n")
  1488.         file:write("21.1426,10.8844,0.2209,2,boardingaction\n")
  1489.         file:write("20.5077,-10.9226,0.2209,2,boardingaction\n")
  1490.         file:write("20.4235,14.9333,2.7208,2,boardingaction\n")
  1491.         file:write("17.1504,-4.1224,0.2209,2,boardingaction\n")
  1492.         file:write("20.9187,-1.6451,0.2209,2,boardingaction\n")
  1493.         file:write("19.1138,10.7346,0.2209,2,boardingaction\n")
  1494.         file:write("16.9923,1.8441,0.2209,2,boardingaction\n")
  1495.         file:write("20.1581,20.6515,-2.2787,2,boardingaction\n")
  1496.         file:write("20.4635,-6.5649,0.2209,2,boardingaction\n")
  1497.         file:write("20.3951,-0.3914,0.2209,2,boardingaction\n")
  1498.         file:write("20.4059,-8.052,0.2212,2,boardingaction\n")
  1499.         file:write("20.4723,-5.2985,0.2209,2,boardingaction\n")
  1500.         file:write("18.3115,3.2092,0.2209,2,boardingaction\n")
  1501.         file:write("19.5535,4.3992,0.2209,2,boardingaction\n")
  1502.         file:write("16.517,4.2326,0.2212,2,boardingaction\n")
  1503.         file:write("20.4774,-9.6695,0.2209,2,boardingaction\n")
  1504.         file:write("20.6539,0.8177,0.2212,2,boardingaction\n")
  1505.         file:write("20.5235,-12.6691,0.2209,2,boardingaction\n")
  1506.         file:write("5.6063799858093,-13.548299789429,-3.2000000476837,flag_1,carousel\n")
  1507.         file:write("-5.7499198913574,13.886699676514,-3.2000000476837,flag_2,carousel\n")
  1508.         file:write("7.4732,-10.4967,-3.358,1,carousel\n")
  1509.         file:write("8.7844,-9.1612,-3.3582,1,carousel\n")
  1510.         file:write("1.8868,-15.3146,-3.358,1,carousel\n")
  1511.         file:write("-2.8559,-10.6408,-0.8551,1,carousel\n")
  1512.         file:write("10.6905,-11.069,-3.3582,1,carousel\n")
  1513.         file:write("-0.1831,-15.433,-3.3582,1,carousel\n")
  1514.         file:write("2.8813,-10.6674,-0.8553,1,carousel\n")
  1515.         file:write("12.272,-9.4783,-3.358,1,carousel\n")
  1516.         file:write("0.0526,-12.5563,-3.3582,1,carousel\n")
  1517.         file:write("-4.7734,-11.6349,-3.3552,1,carousel\n")
  1518.         file:write("7.2055,-7.6413,-3.356,1,carousel\n")
  1519.         file:write("6.5195,-8.6022,-0.8551,1,carousel\n")
  1520.         file:write("9.4564,-12.4588,-3.358,1,carousel\n")
  1521.         file:write("1.9501,-12.5909,-3.358,1,carousel\n")
  1522.         file:write("8.699,-6.5577,-0.8551,1,carousel\n")
  1523.         file:write("-1.9334,-12.6493,-3.358,1,carousel\n")
  1524.         file:write("-1.9613,-15.31,-3.358,1,carousel\n")
  1525.         file:write("10.4821,-7.5938,-3.358,1,carousel\n")
  1526.         file:write("-8.7361,8.9202,-3.3579,2,carousel\n")
  1527.         file:write("-7.363,10.5095,-3.3579,2,carousel\n")
  1528.         file:write("-4.7297,11.6048,-3.3551,2,carousel\n")
  1529.         file:write("2.9734,10.7056,-0.8551,2,carousel\n")
  1530.         file:write("0.1527,15.2302,-3.3582,2,carousel\n")
  1531.         file:write("-6.2141,8.9275,-0.8551,2,carousel\n")
  1532.         file:write("1.9495,15.2431,-3.358,2,carousel\n")
  1533.         file:write("-10.8722,11.1597,-3.3582,2,carousel\n")
  1534.         file:write("-8.8138,6.2619,-0.8551,2,carousel\n")
  1535.         file:write("-7.7407,7.8397,-3.3572,2,carousel\n")
  1536.         file:write("-10.3725,7.7806,-3.358,2,carousel\n")
  1537.         file:write("-12.2838,9.4789,-3.358,2,carousel\n")
  1538.         file:write("-1.9728,15.4241,-3.358,2,carousel\n")
  1539.         file:write("0.0826,12.4631,-3.3582,2,carousel\n")
  1540.         file:write("2.0604,12.6872,-3.358,2,carousel\n")
  1541.         file:write("-1.9951,12.6014,-3.358,2,carousel\n")
  1542.         file:write("-9.4845,12.4228,-3.358,2,carousel\n")
  1543.         file:write("-2.5152,10.7223,-0.8551,2,carousel\n")
  1544.         file:write("7.4876899719238,-4.49059009552,2.5,flag_1,chillout\n")
  1545.         file:write("-7.5086002349854,9.750340461731,0.10000000149012,flag_2,chillout\n")
  1546.         file:write("10.5652,-3.8186,2.3825,1,chillout\n")
  1547.         file:write("6.7391,-3.5425,2.3825,1,chillout\n")
  1548.         file:write("8.747,-1.5039,2.3825,1,chillout\n")
  1549.         file:write("6.5441,-0.4043,2.3825,1,chillout\n")
  1550.         file:write("8.5986,-4.7631,2.3825,1,chillout\n")
  1551.         file:write("6.2654,-1.4533,2.3825,1,chillout\n")
  1552.         file:write("8.4536,-0.4062,2.3825,1,chillout\n")
  1553.         file:write("7.0781,-1.7849,2.3825,1,chillout\n")
  1554.         file:write("10.0781,0.2321,3.5358,1,chillout\n")
  1555.         file:write("8.0357,-2.0722,2.3825,1,chillout\n")
  1556.         file:write("7.4297,-0.9515,2.3825,1,chillout\n")
  1557.         file:write("8.5679,-3.4043,2.3825,1,chillout\n")
  1558.         file:write("9.7265,-4.6381,2.3825,1,chillout\n")
  1559.         file:write("7.6898,-3.5377,2.3825,1,chillout\n")
  1560.         file:write("7.3582,0.1399,2.3825,1,chillout\n")
  1561.         file:write("6.0751,-2.7176,2.3825,1,chillout\n")
  1562.         file:write("-3.163,7.3953,0.001,2,chillout\n")
  1563.         file:write("-6.0014,7.2256,0.0012,2,chillout\n")
  1564.         file:write("-6.2787,3.1099,0.0012,2,chillout\n")
  1565.         file:write("-8.7426,3.2311,0.001,2,chillout\n")
  1566.         file:write("-8.6825,7.0076,0.001,2,chillout\n")
  1567.         file:write("-9.0408,5.425,0.001,2,chillout\n")
  1568.         file:write("-4.4675,9.8944,0.001,2,chillout\n")
  1569.         file:write("-6.2001,8.433,0.001,2,chillout\n")
  1570.         file:write("-5.6014,9.315,0.001,2,chillout\n")
  1571.         file:write("-6.7224,10.4719,0.0012,2,chillout\n")
  1572.         file:write("-4.4438,7.2931,0.0012,2,chillout\n")
  1573.         file:write("-5.6859,10.4809,0.0012,2,chillout\n")
  1574.         file:write("-8.9359,9.3254,0.001,2,chillout\n")
  1575.         file:write("-4.4529,6.0589,0.0012,2,chillout\n")
  1576.         file:write("-5.633,6.2381,0.0012,2,chillout\n")
  1577.         file:write("-3.2344,8.4168,0.001,2,chillout\n")
  1578.         file:write("-7.1813,7.1144,0.001,2,chillout\n")
  1579.         file:write("9.6933002471924,-13.340399742126,6.8000001907349,flag_1,damnation\n")
  1580.         file:write("-12.17884349823,14.982703208923,-0.20000000298023,flag_2,damnation\n")
  1581.         file:write("6.2301,-12.3831,6.701,1,damnation\n")
  1582.         file:write("8.749,-8.8767,4.5008,1,damnation\n")
  1583.         file:write("10.9448,-12.2633,6.701,1,damnation\n")
  1584.         file:write("3.725,-12.5335,6.701,1,damnation\n")
  1585.         file:write("4.9934,-13.1509,6.701,1,damnation\n")
  1586.         file:write("7.4273,-10.4932,4.5008,1,damnation\n")
  1587.         file:write("6.2816,-8.8214,4.5008,1,damnation\n")
  1588.         file:write("3.628,-14.4484,6.701,1,damnation\n")
  1589.         file:write("6.3333,-10.4748,4.5008,1,damnation\n")
  1590.         file:write("6.1235,-14.4687,6.701,1,damnation\n")
  1591.         file:write("8.6952,-10.5886,4.5008,1,damnation\n")
  1592.         file:write("8.3358,-5.8201,6.701,1,damnation\n")
  1593.         file:write("-4.5352,-7.3629,3.401,1,damnation\n")
  1594.         file:write("9.6709,-14.3081,6.701,1,damnation\n")
  1595.         file:write("7.429,-8.8355,4.5008,1,damnation\n")
  1596.         file:write("8.4827,-12.3073,6.701,1,damnation\n")
  1597.         file:write("10.8691,-14.5357,6.701,1,damnation\n")
  1598.         file:write("7.1935,-12.3539,6.701,1,damnation\n")
  1599.         file:write("3.8363,-10.948,6.701,1,damnation\n")
  1600.         file:write("-9.4853,13.5661,-0.3988,2,damnation\n")
  1601.         file:write("-8.8204,14.7422,-0.399,2,damnation\n")
  1602.         file:write("1.6582,10.1168,1.201,2,damnation\n")
  1603.         file:write("-8.6793,10.6803,-0.3988,2,damnation\n")
  1604.         file:write("-10.664,14.7378,-0.399,2,damnation\n")
  1605.         file:write("-12.2595,13.3973,-0.3988,2,damnation\n")
  1606.         file:write("-8.6638,9.972,-0.399,2,damnation\n")
  1607.         file:write("-10.9251,12.392,-0.3988,2,damnation\n")
  1608.         file:write("-10.7912,9.8186,-0.3988,2,damnation\n")
  1609.         file:write("-10.9681,11.1305,-0.3988,2,damnation\n")
  1610.         file:write("-9.5205,12.207,-0.399,2,damnation\n")
  1611.         file:write("-10.865,13.422,-0.3988,2,damnation\n")
  1612.         file:write("-9.82,9.9409,-0.399,2,damnation\n")
  1613.         file:write("-12.3147,12.2182,-0.3988,2,damnation\n")
  1614.         file:write("1.4873,13.5166,1.2012,2,damnation\n")
  1615.         file:write("-9.8172,3.7592,-0.1988,2,damnation\n")
  1616.         file:write("-12.4471,9.6874,-0.399,2,damnation\n")
  1617.         file:write("-12.3937,10.9574,-0.3988,2,damnation\n")
  1618.         file:write("-12.104507446289,-3.4351840019226,-2.2419033050537,flag_1,dangercanyon\n")
  1619.         file:write("12.007399559021,-3.4513700008392,-2.2418999671936,flag_2,dangercanyon\n")
  1620.         file:write("-21.6836,-11.72,-4.1391,1,dangercanyon\n")
  1621.         file:write("-26.0282,1.9346,-3.6837,1,dangercanyon\n")
  1622.         file:write("-3.9751,-1.0679,-4.0278,1,dangercanyon\n")
  1623.         file:write("-3.8159,-6.2885,-4.0223,1,dangercanyon\n")
  1624.         file:write("-4.6394,-2.1146,-4.0263,1,dangercanyon\n")
  1625.         file:write("-18.6584,2.0276,-4.0337,1,dangercanyon\n")
  1626.         file:write("-4.3318,-5.6277,-4.0225,1,dangercanyon\n")
  1627.         file:write("-26.5251,-10.3999,-3.3802,1,dangercanyon\n")
  1628.         file:write("-3.4515,-0.6525,-4.0286,1,dangercanyon\n")
  1629.         file:write("-25.1502,-10.7079,-3.7681,1,dangercanyon\n")
  1630.         file:write("-4.7419,-13.9652,-4.1867,1,dangercanyon\n")
  1631.         file:write("-20.0694,-11.9591,-4.1456,1,dangercanyon\n")
  1632.         file:write("-2.5185,-12.0614,-4.1097,1,dangercanyon\n")
  1633.         file:write("-23.0306,1.9648,-4.0079,1,dangercanyon\n")
  1634.         file:write("-2.0695,-11.228,-4.0766,1,dangercanyon\n")
  1635.         file:write("-4.3616,-1.4469,-4.0268,1,dangercanyon\n")
  1636.         file:write("-7.7659,-14.6132,-4.2071,1,dangercanyon\n")
  1637.         file:write("-20.7966,1.9564,-4.0331,1,dangercanyon\n")
  1638.         file:write("-3.1951,-6.5663,-4.0218,1,dangercanyon\n")
  1639.         file:write("-4.6326,-4.9165,-4.0226,1,dangercanyon\n")
  1640.         file:write("21.8613,2.0833,-4.0338,2,dangercanyon\n")
  1641.         file:write("6.2013,-14.5638,-4.2058,2,dangercanyon\n")
  1642.         file:write("2.7145,-12.0223,-4.1096,2,dangercanyon\n")
  1643.         file:write("4.1955,-1.7639,-4.026,2,dangercanyon\n")
  1644.         file:write("3.1805,-0.6358,-4.029,2,dangercanyon\n")
  1645.         file:write("4.2721,-5.5999,-4.0225,2,dangercanyon\n")
  1646.         file:write("4.9513,-14.0521,-4.1894,2,dangercanyon\n")
  1647.         file:write("4.5312,-2.4123,-4.0259,2,dangercanyon\n")
  1648.         file:write("23.6982,1.9235,-3.9634,2,dangercanyon\n")
  1649.         file:write("3.7849,-1.1937,-4.0276,2,dangercanyon\n")
  1650.         file:write("3.3752,-6.669,-4.0224,2,dangercanyon\n")
  1651.         file:write("31.1129,-8.8066,-2.0344,2,dangercanyon\n")
  1652.         file:write("3.8531,-6.1716,-4.0224,2,dangercanyon\n")
  1653.         file:write("27.7302,-9.7859,-3.0183,2,dangercanyon\n")
  1654.         file:write("4.5797,-4.9119,-4.0228,2,dangercanyon\n")
  1655.         file:write("21.7329,-11.7633,-4.1407,2,dangercanyon\n")
  1656.         file:write("2.1426,-10.8433,-4.0625,2,dangercanyon\n")
  1657.         file:write("25.4947,2.0005,-3.8237,2,dangercanyon\n")
  1658.         file:write("24.3578,-11.4106,-3.9507,2,dangercanyon\n")
  1659.         file:write("19.8527,2.0226,-4.0333,2,dangercanyon\n")
  1660.         file:write("-26.576030731201,-6.9761986732483,9.6631727218628,flag_1,deathisland\n")
  1661.         file:write("29.843469619751,15.971487045288,8.2952880859375,flag_2,deathisland\n")
  1662.         file:write("-33.2913,-3.4957,9.4165,1,deathisland\n")
  1663.         file:write("-23.6335,-5.43,9.6776,1,deathisland\n")
  1664.         file:write("-26.3529,-13.9727,9.4165,1,deathisland\n")
  1665.         file:write("-28.8563,1.1649,9.416,1,deathisland\n")
  1666.         file:write("-38.4454,-2.9888,5.7443,1,deathisland\n")
  1667.         file:write("-18.539,-8.5002,9.6776,1,deathisland\n")
  1668.         file:write("-18.5099,-5.4773,9.6776,1,deathisland\n")
  1669.         file:write("-29.1762,-7.03,9.5441,1,deathisland\n")
  1670.         file:write("-33.0837,-10.3437,9.4165,1,deathisland\n")
  1671.         file:write("-23.5769,-8.6589,9.6776,1,deathisland\n")
  1672.         file:write("-37.452,-11.7236,5.056,1,deathisland\n")
  1673.         file:write("37.2291,12.6873,8.0495,2,deathisland\n")
  1674.         file:write("32.153,24.8101,8.0486,2,deathisland\n")
  1675.         file:write("28.9583,9.2131,8.0495,2,deathisland\n")
  1676.         file:write("26.8937,17.752,8.2953,2,deathisland\n")
  1677.         file:write("26.914,14.4202,8.2953,2,deathisland\n")
  1678.         file:write("32.3921,15.99,8.1761,2,deathisland\n")
  1679.         file:write("21.6963,14.3979,8.2953,2,deathisland\n")
  1680.         file:write("40.2677,11.3402,4.6052,2,deathisland\n")
  1681.         file:write("37.4332,18.9284,8.0495,2,deathisland\n")
  1682.         file:write("21.8761,17.7141,8.2953,2,deathisland\n")
  1683.         file:write("40.245,20.3333,4.4984,2,deathisland\n")
  1684.         file:write("26.884338378906,-144.71551513672,-16.049139022827,flag_1,gephyrophobia\n")
  1685.         file:write("26.727857589722,0.16621616482735,-16.048349380493,flag_2,gephyrophobia\n")
  1686.         file:write("30.7136,-121.1467,-18.3249,1,gephyrophobia\n")
  1687.         file:write("23.0517,-121.2795,-18.3249,1,gephyrophobia\n")
  1688.         file:write("31.7069,-123.4089,-15.6322,1,gephyrophobia\n")
  1689.         file:write("20.5583,-129.2404,-15.63,1,gephyrophobia\n")
  1690.         file:write("33.225,-129.1839,-15.6303,1,gephyrophobia\n")
  1691.         file:write("25.1027,-142.8377,-17.7327,1,gephyrophobia\n")
  1692.         file:write("28.0906,-125.3878,-15.6244,1,gephyrophobia\n")
  1693.         file:write("28.5046,-142.8763,-17.7327,1,gephyrophobia\n")
  1694.         file:write("21.893,-123.5276,-15.6322,1,gephyrophobia\n")
  1695.         file:write("25.5618,-125.4151,-15.624,1,gephyrophobia\n")
  1696.         file:write("23.0635,-126.6601,-15.6257,1,gephyrophobia\n")
  1697.         file:write("30.6704,-126.6312,-15.6261,1,gephyrophobia\n")
  1698.         file:write("23.0724,-23.7371,-18.3249,2,gephyrophobia\n")
  1699.         file:write("28.1441,-18.726,-15.624,2,gephyrophobia\n")
  1700.         file:write("30.6206,-23.7687,-18.3249,2,gephyrophobia\n")
  1701.         file:write("28.52,-1.7325,-17.7327,2,gephyrophobia\n")
  1702.         file:write("23.0849,-17.4689,-15.626,2,gephyrophobia\n")
  1703.         file:write("30.7078,-17.4355,-15.6261,2,gephyrophobia\n")
  1704.         file:write("21.8658,-20.8038,-15.632,2,gephyrophobia\n")
  1705.         file:write("25.0603,-1.7803,-17.7327,2,gephyrophobia\n")
  1706.         file:write("31.6972,-20.8374,-15.6312,2,gephyrophobia\n")
  1707.         file:write("20.6214,-14.8398,-15.6307,2,gephyrophobia\n")
  1708.         file:write("25.546,-18.7712,-15.624,2,gephyrophobia\n")
  1709.         file:write("25.5773,-20.0884,-18.3249,2,gephyrophobia\n")
  1710.         file:write("13.047902107239,9.0331249237061,-3.3619771003723,flag_1,hangemhigh\n")
  1711.         file:write("32.655700683594,-16.497299194336,-1.7000000476837,flag_2,hangemhigh\n")
  1712.         file:write("16.1134,11.0131,-4.3765,1,hangemhigh\n")
  1713.         file:write("12.0386,10.3536,-6.4343,1,hangemhigh\n")
  1714.         file:write("16.8925,11.0418,-4.3711,1,hangemhigh\n")
  1715.         file:write("10.966,8.7996,-6.4343,1,hangemhigh\n")
  1716.         file:write("13.0711,10.2295,-6.4342,1,hangemhigh\n")
  1717.         file:write("12.0161,8.0571,-5.7559,1,hangemhigh\n")
  1718.         file:write("11.0191,7.2382,-6.4343,1,hangemhigh\n")
  1719.         file:write("10.3247,11.1004,-6.4343,1,hangemhigh\n")
  1720.         file:write("16.0475,8.0758,-3.3618,1,hangemhigh\n")
  1721.         file:write("13.2175,12.0476,-6.4343,1,hangemhigh\n")
  1722.         file:write("13.2005,12.9902,-6.4343,1,hangemhigh\n")
  1723.         file:write("15.0219,10.9707,-4.3805,1,hangemhigh\n")
  1724.         file:write("13.9219,10.975,-3.3617,1,hangemhigh\n")
  1725.         file:write("12.8239,7.1622,-7.9494,1,hangemhigh\n")
  1726.         file:write("16.1368,14.1262,-6.4343,1,hangemhigh\n")
  1727.         file:write("14.5446,9.3582,-3.3575,1,hangemhigh\n")
  1728.         file:write("13.0184,9.0292,-3.362,1,hangemhigh\n")
  1729.         file:write("16.9635,8.1069,-3.3601,1,hangemhigh\n")
  1730.         file:write("15.0651,8.1251,-4.8987,1,hangemhigh\n")
  1731.         file:write("29.8023,-17.1473,-2.7973,2,hangemhigh\n")
  1732.         file:write("28.5348,-14.1036,-2.7917,2,hangemhigh\n")
  1733.         file:write("30.625,-11.8693,-3.9079,2,hangemhigh\n")
  1734.         file:write("27.8968,-13.0385,-3.9082,2,hangemhigh\n")
  1735.         file:write("30.5701,-18.3404,-3.9083,2,hangemhigh\n")
  1736.         file:write("26.6706,-14.7265,-3.9082,2,hangemhigh\n")
  1737.         file:write("26.5274,-17.4612,-3.9079,2,hangemhigh\n")
  1738.         file:write("29.034,-18.3163,-3.9085,2,hangemhigh\n")
  1739.         file:write("28.7319,-17.0606,-2.797,2,hangemhigh\n")
  1740.         file:write("32.2461,-13.9907,-1.8723,2,hangemhigh\n")
  1741.         file:write("31.0976,-17.1266,-2.7948,2,hangemhigh\n")
  1742.         file:write("26.3158,-16.2943,-3.9082,2,hangemhigh\n")
  1743.         file:write("32.0208,-17.0843,-2.7926,2,hangemhigh\n")
  1744.         file:write("31.297,-15.6052,-1.8721,2,hangemhigh\n")
  1745.         file:write("27.8664,-15.5641,-2.794,2,hangemhigh\n")
  1746.         file:write("27.3875,-18.2563,-3.9081,2,hangemhigh\n")
  1747.         file:write("32.038,-18.2575,-3.9084,2,hangemhigh\n")
  1748.         file:write("34.6811,-14.2535,-3.9082,2,hangemhigh\n")
  1749.         file:write("33.809,-13.1246,-3.9082,2,hangemhigh\n")
  1750.         file:write("32.489,-12.9656,-3.908,2,hangemhigh\n")
  1751.         file:write("24.85000038147,-22.110000610352,2.1110000610352,flag_1,icefields\n")
  1752.         file:write("-77.860000610352,86.550003051758,2.1110000610352,flag_2,icefields\n")
  1753.         file:write("36.1679,-18.91,0.9616,1,icefields\n")
  1754.         file:write("33.7159,-30.2924,0.8144,1,icefields\n")
  1755.         file:write("36.7252,-24.2372,0.7491,1,icefields\n")
  1756.         file:write("12.207,-19.9169,0.9495,1,icefields\n")
  1757.         file:write("32.9475,-12.141,0.8332,1,icefields\n")
  1758.         file:write("36.4295,-26.4073,0.8515,1,icefields\n")
  1759.         file:write("18.5271,-33.5619,0.9191,1,icefields\n")
  1760.         file:write("16.7605,-31.7566,0.8334,1,icefields\n")
  1761.         file:write("15.0372,-29.7888,0.9818,1,icefields\n")
  1762.         file:write("31.3844,-11.0493,0.8115,1,icefields\n")
  1763.         file:write("12.3495,-21.6386,0.8429,1,icefields\n")
  1764.         file:write("13.7785,-25.712,0.8651,1,icefields\n")
  1765.         file:write("-71.7037,97.7792,0.8744,2,icefields\n")
  1766.         file:write("-70.0278,96.1204,0.7427,2,icefields\n")
  1767.         file:write("-84.0484,97.7972,1.2056,2,icefields\n")
  1768.         file:write("-68.5468,94.6127,0.8448,2,icefields\n")
  1769.         file:write("-65.771,86.605,0.7827,2,icefields\n")
  1770.         file:write("-89.7522,86.3723,0.9749,2,icefields\n")
  1771.         file:write("-67.6412,91.366,0.7863,2,icefields\n")
  1772.         file:write("-89.6082,89.307,0.8051,2,icefields\n")
  1773.         file:write("-86.4617,78.438,0.5975,2,icefields\n")
  1774.         file:write("-84.9894,75.8087,0.7686,2,icefields\n")
  1775.         file:write("-65.3621,85.1641,0.7603,2,icefields\n")
  1776.         file:write("-87.2485,91.7013,0.7296,2,icefields\n")
  1777.         file:write("0.67973816394806,-164.56719970703,15.039022445679,flag_1,infinity\n")
  1778.         file:write("-1.8581243753433,47.779975891113,11.791272163391,flag_2,infinity\n")
  1779.         file:write("0.6704,-124.4159,11.727,1,infinity\n")
  1780.         file:write("4.7875,-148.8866,15.9712,1,infinity\n")
  1781.         file:write("-19.4911,-160.8295,12.6589,1,infinity\n")
  1782.         file:write("-2.724,-145.7593,15.9712,1,infinity\n")
  1783.         file:write("0.6678,-169.3247,12.9256,1,infinity\n")
  1784.         file:write("-2.2426,-135.0089,15.9712,1,infinity\n")
  1785.         file:write("0.6178,-133.5866,15.9712,1,infinity\n")
  1786.         file:write("5.7076,-168.7878,12.5315,1,infinity\n")
  1787.         file:write("-6.8972,-168.8757,12.9068,1,infinity\n")
  1788.         file:write("-18.6475,-148.9604,13.5054,1,infinity\n")
  1789.         file:write("15.3917,-165.9695,12.9914,1,infinity\n")
  1790.         file:write("17.7149,-148.5977,12.9355,1,infinity\n")
  1791.         file:write("3.3059,-134.484,15.9712,1,infinity\n")
  1792.         file:write("-8.9783,51.0338,9.8076,2,infinity\n")
  1793.         file:write("-15.4472,37.9838,10.9246,2,infinity\n")
  1794.         file:write("-1.8343,52.4184,10.0582,2,infinity\n")
  1795.         file:write("-5.1979,17.8479,14.0874,2,infinity\n")
  1796.         file:write("1.1914,17.336,14.0874,2,infinity\n")
  1797.         file:write("-18.3639,45.2811,10.3106,2,infinity\n")
  1798.         file:write("16.0012,32.8845,9.8709,2,infinity\n")
  1799.         file:write("1.8313,29.8501,14.0874,2,infinity\n")
  1800.         file:write("20.8192,43.3131,9.9483,2,infinity\n")
  1801.         file:write("-5.2888,27.7521,14.0874,2,infinity\n")
  1802.         file:write("3.0283,51.3879,9.6941,2,infinity\n")
  1803.         file:write("7.9753,7.6474,10.0704,2,infinity\n")
  1804.         file:write("-1.8168,16.8718,14.0874,2,infinity\n")
  1805.         file:write("-7.0869,7.2779,10.1593,2,infinity\n")
  1806.         file:write("-12.791899681091,-21.6422996521,-0.40000000596046,flag_1,longest\n")
  1807.         file:write("11.034700393677,-7.5875601768494,-0.40000000596046,flag_2,longest\n")
  1808.         file:write("-13.8363,-18.8306,-0.599,1,longest\n")
  1809.         file:write("-10.9423,-16.9247,0.0012,1,longest\n")
  1810.         file:write("-11.9348,-18.5992,-0.599,1,longest\n")
  1811.         file:write("-15.1126,-21.6682,-0.599,1,longest\n")
  1812.         file:write("-10.8024,-18.9303,-0.599,1,longest\n")
  1813.         file:write("-15.4943,-13.2434,0.0012,1,longest\n")
  1814.         file:write("-13.9119,-21.7466,-0.599,1,longest\n")
  1815.         file:write("-14.8394,-15.3642,0.001,1,longest\n")
  1816.         file:write("-15.06,-11.7549,0.0012,1,longest\n")
  1817.         file:write("-14.9568,-18.8308,-0.5988,1,longest\n")
  1818.         file:write("-17.1035,-12.6169,0.001,1,longest\n")
  1819.         file:write("-10.6393,-21.569,-0.599,1,longest\n")
  1820.         file:write("-14.6013,-16.9738,0.0012,1,longest\n")
  1821.         file:write("-8.1929,-10.0143,2.0569,1,longest\n")
  1822.         file:write("-11.2422,-19.9202,-0.599,1,longest\n")
  1823.         file:write("-14.5159,-20.0611,-0.599,1,longest\n")
  1824.         file:write("-12.0817,-16.9265,0.0012,1,longest\n")
  1825.         file:write("-15.1917,-9.4959,0.001,1,longest\n")
  1826.         file:write("-14.7384,-14.4278,0.0012,1,longest\n")
  1827.         file:write("-13.5722,-16.9521,0.0012,1,longest\n")
  1828.         file:write("15.3889,-16.6818,0.001,2,longest\n")
  1829.         file:write("8.7965,-10.0689,-0.599,2,longest\n")
  1830.         file:write("6.4852,-19.0485,2.0569,2,longest\n")
  1831.         file:write("12.5833,-13.6706,0.0012,2,longest\n")
  1832.         file:write("13.5591,-15.7958,0.0012,2,longest\n")
  1833.         file:write("12.6504,-7.1655,-0.599,2,longest\n")
  1834.         file:write("10.4111,-12.4045,0.001,2,longest\n")
  1835.         file:write("13.3756,-19.7057,0.001,2,longest\n")
  1836.         file:write("12.5186,-8.281,-0.599,2,longest\n")
  1837.         file:write("9.5687,-9.3095,-0.599,2,longest\n")
  1838.         file:write("10.1729,-8.1609,-0.599,2,longest\n")
  1839.         file:write("13.6646,-10.4837,-0.599,2,longest\n")
  1840.         file:write("12.6264,-14.89,0.0012,2,longest\n")
  1841.         file:write("13.0318,-9.6217,-0.599,2,longest\n")
  1842.         file:write("12.1923,-10.4325,-0.599,2,longest\n")
  1843.         file:write("12.8698,-12.2705,0.0012,2,longest\n")
  1844.         file:write("9.6522,-7.1274,-0.599,2,longest\n")
  1845.         file:write("9.2538,-12.4303,0.0012,2,longest\n")
  1846.         file:write("13.3972,-17.6132,0.0012,2,longest\n")
  1847.         file:write("11.9109,-12.3163,0.001,2,longest\n")
  1848.         file:write("10.2763,-10.2058,-0.599,2,longest\n")
  1849.         file:write("13.6408,-8.2041,-0.599,2,longest\n")
  1850.         file:write("8.8342,-8.0726,-0.599,2,longest\n")
  1851.         file:write("-9.3684597015381,-4.9481601715088,5.6999998092651,flag_1,prisoner\n")
  1852.         file:write("9.3676500320435,5.1193399429321,5.6999998092651,flag_2,prisoner\n")
  1853.         file:write("-7.3155,-6.2134,3.1935,1,prisoner\n")
  1854.         file:write("-7.2869,-0.0008,1.3935,1,prisoner\n")
  1855.         file:write("-7.4131,-0.9445,-0.4065,1,prisoner\n")
  1856.         file:write("-7.2046,-6.1516,5.5935,1,prisoner\n")
  1857.         file:write("-7.5746,-6.2971,1.3937,1,prisoner\n")
  1858.         file:write("-7.3685,-2.7349,-0.4063,1,prisoner\n")
  1859.         file:write("-7.1905,-4.9664,5.5935,1,prisoner\n")
  1860.         file:write("-8.2972,-6.1891,3.1935,1,prisoner\n")
  1861.         file:write("-7.152,-3.8914,5.5935,1,prisoner\n")
  1862.         file:write("-7.2627,-6.1085,-0.4065,1,prisoner\n")
  1863.         file:write("-5.504,-6.2193,3.1935,1,prisoner\n")
  1864.         file:write("-7.3879,-4.2275,-0.4065,1,prisoner\n")
  1865.         file:write("-7.3238,-1.3691,1.3937,1,prisoner\n")
  1866.         file:write("-8.9785,-4.8383,5.5935,1,prisoner\n")
  1867.         file:write("-6.2027,-6.3212,1.3935,1,prisoner\n")
  1868.         file:write("-6.3323,-6.201,3.1935,1,prisoner\n")
  1869.         file:write("7.1653,4.2568,5.5935,2,prisoner\n")
  1870.         file:write("7.2606,3.6662,-0.4065,2,prisoner\n")
  1871.         file:write("7.318,6.3248,5.5935,2,prisoner\n")
  1872.         file:write("7.3712,4.2592,1.3937,2,prisoner\n")
  1873.         file:write("7.4129,-0.4637,-0.4065,2,prisoner\n")
  1874.         file:write("7.1509,6.4656,-0.4063,2,prisoner\n")
  1875.         file:write("7.2266,4.9873,5.5935,2,prisoner\n")
  1876.         file:write("7.365,-0.6803,1.3937,2,prisoner\n")
  1877.         file:write("7.3731,1.713,1.3937,2,prisoner\n")
  1878.         file:write("7.3578,1.6464,-0.4063,2,prisoner\n")
  1879.         file:write("7.2633,1.4201,3.1935,2,prisoner\n")
  1880.         file:write("7.1932,3.6922,5.5935,2,prisoner\n")
  1881.         file:write("7.2722,4.8178,3.1935,2,prisoner\n")
  1882.         file:write("7.2143,6.3664,3.1935,2,prisoner\n")
  1883.         file:write("7.3152,3.1628,3.1935,2,prisoner\n")
  1884.         file:write("9.4786,5.1086,5.5935,2,prisoner\n")
  1885.         file:write("7.2367,5.6449,5.5935,2,prisoner\n")
  1886.         file:write("8.4644,6.298,3.1935,2,prisoner\n")
  1887.         file:write("-18.89049911499,-20.186100006104,1.1000000238419,flag_1,putput\n")
  1888.         file:write("34.865299224854,-28.194700241089,0.10000000149012,flag_2,putput\n")
  1889.         file:write("-18.6433,-22.6611,0.9036,1,putput\n")
  1890.         file:write("-16.8187,-20.972,2.3033,1,putput\n")
  1891.         file:write("-16.8237,-19.3939,2.3033,1,putput\n")
  1892.         file:write("-17.4703,-21.9465,2.3033,1,putput\n")
  1893.         file:write("-18.6721,-19.0716,0.9033,1,putput\n")
  1894.         file:write("-16.73,-19.2019,0.9033,1,putput\n")
  1895.         file:write("-16.2308,-22.1021,2.3033,1,putput\n")
  1896.         file:write("-16.1917,-18.263,2.3033,1,putput\n")
  1897.         file:write("-17.2147,-18.2881,2.3033,1,putput\n")
  1898.         file:write("-18.0823,-19.5538,2.3033,1,putput\n")
  1899.         file:write("-16.7893,-21.1251,0.9033,1,putput\n")
  1900.         file:write("-18.6311,-17.7029,0.9033,1,putput\n")
  1901.         file:write("-19.1955,-19.5182,2.3033,1,putput\n")
  1902.         file:write("-18.6362,-21.0392,0.9033,1,putput\n")
  1903.         file:write("-18.3348,-20.7881,2.3033,1,putput\n")
  1904.         file:write("-19.2054,-20.6927,2.3033,1,putput\n")
  1905.         file:write("34.0038,-28.3355,0.0012,2,putput\n")
  1906.         file:write("31.7829,-29.286,1.0009,2,putput\n")
  1907.         file:write("33.095,-29.2843,0.0012,2,putput\n")
  1908.         file:write("29.9171,-28.1757,0.0012,2,putput\n")
  1909.         file:write("31.7228,-31.3967,1.0009,2,putput\n")
  1910.         file:write("30.696,-29.1765,0.0012,2,putput\n")
  1911.         file:write("33.1305,-27.4537,0.0012,2,putput\n")
  1912.         file:write("31.709,-30.4806,1.0009,2,putput\n")
  1913.         file:write("34.7288,-27.5259,0.0012,2,putput\n")
  1914.         file:write("31.6867,-24.7125,1.0009,2,putput\n")
  1915.         file:write("31.7299,-25.7019,1.0009,2,putput\n")
  1916.         file:write("28.0549,-28.1923,0.0012,2,putput\n")
  1917.         file:write("29.1565,-28.2086,0.0012,2,putput\n")
  1918.         file:write("30.6869,-27.0279,0.0012,2,putput\n")
  1919.         file:write("31.7576,-26.762,1.0009,2,putput\n")
  1920.         file:write("30.8804,-28.1957,1.0009,2,putput\n")
  1921.         file:write("-4.2277698516846,-0.85564690828323,-0.40000000596046,flag_1,ratrace\n")
  1922.         file:write("18.613000869751,-22.652599334717,-3.4000000953674,flag_2,ratrace\n")
  1923.         file:write("1.8825,2.2127,-0.5898,1,ratrace\n")
  1924.         file:write("-4.8836,2.7054,-0.591,1,ratrace\n")
  1925.         file:write("5.1508,-1.0313,-0.5901,1,ratrace\n")
  1926.         file:write("6.0052,-3.631,-0.5901,1,ratrace\n")
  1927.         file:write("-6.2185,0.0156,-0.5908,1,ratrace\n")
  1928.         file:write("0.2417,2.2755,-0.5901,1,ratrace\n")
  1929.         file:write("-4.931,1.6933,-0.5901,1,ratrace\n")
  1930.         file:write("-2.3761,-4.1239,-0.5901,1,ratrace\n")
  1931.         file:write("6.6436,2.8972,-0.5901,1,ratrace\n")
  1932.         file:write("-6.1183,-2.0578,-0.5898,1,ratrace\n")
  1933.         file:write("3.0154,-4.1553,-0.591,1,ratrace\n")
  1934.         file:write("6.5425,0.6834,-0.5901,1,ratrace\n")
  1935.         file:write("7.3044,-1.4827,-0.5898,1,ratrace\n")
  1936.         file:write("-4.5446,-4.1342,-0.591,1,ratrace\n")
  1937.         file:write("21.8225,-20.8667,-3.6113,2,ratrace\n")
  1938.         file:write("17.3345,-24.4989,-3.6113,2,ratrace\n")
  1939.         file:write("13.659,-21.7345,-3.6113,2,ratrace\n")
  1940.         file:write("21.9169,-22.5791,-3.6113,2,ratrace\n")
  1941.         file:write("13.4838,-25.4233,-3.6113,2,ratrace\n")
  1942.         file:write("10.8342,-10.744,-2.8963,2,ratrace\n")
  1943.         file:write("16.1201,-21.6772,-3.6113,2,ratrace\n")
  1944.         file:write("17.7606,-20.3545,-3.6113,2,ratrace\n")
  1945.         file:write("18.6856,-20.329,-3.6113,2,ratrace\n")
  1946.         file:write("19.8088,-20.3726,-3.6113,2,ratrace\n")
  1947.         file:write("13.69,-20.2707,-3.6113,2,ratrace\n")
  1948.         file:write("19.888,-24.4525,-3.6113,2,ratrace\n")
  1949.         file:write("18.5474,-24.508,-3.6113,2,ratrace\n")
  1950.         file:write("21.8472,-24.3486,-3.6113,2,ratrace\n")
  1951.         file:write("19.778,-22.6539,-3.6113,2,ratrace\n")
  1952.         file:write("18.6794,-18.5794,-3.6113,2,ratrace\n")
  1953.         file:write("-32.038200378418,-42.066699981689,-3.7000000476837,flag_1,sidewinder\n")
  1954.         file:write("30.351499557495,-46.108001708984,-3.7000000476837,flag_2,sidewinder\n")
  1955.         file:write("-31.7185,-33.1219,0.5591,1,sidewinder\n")
  1956.         file:write("-28.1229,-31.554,-3.841,1,sidewinder\n")
  1957.         file:write("-31.0231,-33.0348,-3.841,1,sidewinder\n")
  1958.         file:write("-31.4526,-37.0088,-3.841,1,sidewinder\n")
  1959.         file:write("-31.264,-38.973,-3.841,1,sidewinder\n")
  1960.         file:write("-37.1453,-30.5142,-3.7953,1,sidewinder\n")
  1961.         file:write("-33.9964,-28.2635,-3.8349,1,sidewinder\n")
  1962.         file:write("-32.5698,-37.0602,-3.841,1,sidewinder\n")
  1963.         file:write("-32.521,-35.4249,-3.841,1,sidewinder\n")
  1964.         file:write("-32.8539,-38.7958,-3.841,1,sidewinder\n")
  1965.         file:write("-28.4349,-29.4141,-3.841,1,sidewinder\n")
  1966.         file:write("-36.3048,-28.4924,-3.7443,1,sidewinder\n")
  1967.         file:write("-33.0377,-32.9971,-3.841,1,sidewinder\n")
  1968.         file:write("-36.0281,-31.4514,-3.841,1,sidewinder\n")
  1969.         file:write("-30.9239,-28.5093,-3.841,1,sidewinder\n")
  1970.         file:write("-27.1351,-33.4358,-3.841,1,sidewinder\n")
  1971.         file:write("-32.9117,-44.0876,-3.841,1,sidewinder\n")
  1972.         file:write("-26.8021,-35.0351,-3.8407,1,sidewinder\n")
  1973.         file:write("-29.8516,-28.0364,-3.8407,1,sidewinder\n")
  1974.         file:write("-31.4632,-35.2539,-3.841,1,sidewinder\n")
  1975.         file:write("-31.2586,-43.9767,-3.841,1,sidewinder\n")
  1976.         file:write("31.6195,-36.9315,-3.841,2,sidewinder\n")
  1977.         file:write("29.7535,-39.5015,-3.841,2,sidewinder\n")
  1978.         file:write("29.6986,-45.09,-3.841,2,sidewinder\n")
  1979.         file:write("30.9847,-41.1217,-3.841,2,sidewinder\n")
  1980.         file:write("29.6218,-47.7194,-3.841,2,sidewinder\n")
  1981.         file:write("29.0939,-32.3256,-3.8032,2,sidewinder\n")
  1982.         file:write("31.0356,-42.9524,-3.841,2,sidewinder\n")
  1983.         file:write("27.602,-32.1578,-3.7763,2,sidewinder\n")
  1984.         file:write("30.8204,-32.4535,-3.8233,2,sidewinder\n")
  1985.         file:write("32.1576,-32.2685,-3.8151,2,sidewinder\n")
  1986.         file:write("25.3264,-35.6876,-3.841,2,sidewinder\n")
  1987.         file:write("33.4634,-33.0076,-3.841,2,sidewinder\n")
  1988.         file:write("33.6786,-36.1112,-3.841,2,sidewinder\n")
  1989.         file:write("33.8772,-34.4392,-3.841,2,sidewinder\n")
  1990.         file:write("30.2432,-36.7587,0.5593,2,sidewinder\n")
  1991.         file:write("29.6434,-42.9675,-3.841,2,sidewinder\n")
  1992.         file:write("26.7566,-33.4029,-3.841,2,sidewinder\n")
  1993.         file:write("26.3668,-35.1275,-3.841,2,sidewinder\n")
  1994.         file:write("31.0835,-44.9301,-3.841,2,sidewinder\n")
  1995.         file:write("29.636,-41.267,-3.841,2,sidewinder\n")
  1996.         file:write("31.0697,-47.7851,-3.841,2,sidewinder\n")
  1997.         file:write("29.4272,-37.1509,-3.841,2,sidewinder\n")
  1998.         file:write("31.1179,-39.4553,-3.841,2,sidewinder\n")
  1999.         file:write("17.322099685669,-52.365001678467,-17.751399993896,flag_1,timberland\n")
  2000.         file:write("-16.329900741577,52.360000610352,-17.741399765015,flag_2,timberland\n")
  2001.         file:write("15.3564,-45.6795,-17.9508,1,timberland\n")
  2002.         file:write("20.4828,-48.143,-17.7345,1,timberland\n")
  2003.         file:write("24.9032,-49.3598,-17.2491,1,timberland\n")
  2004.         file:write("16.3143,-62.9852,-13.3514,1,timberland\n")
  2005.         file:write("15.9318,-62.2382,-17.7514,1,timberland\n")
  2006.         file:write("7.8582,-46.8402,-16.9206,1,timberland\n")
  2007.         file:write("18.7467,-62.282,-13.3514,1,timberland\n")
  2008.         file:write("13.9128,-48.0646,-17.7112,1,timberland\n")
  2009.         file:write("23.9116,-45.9458,-17.5143,1,timberland\n")
  2010.         file:write("18.6484,-62.3399,-17.7514,1,timberland\n")
  2011.         file:write("16.4056,-63.0973,-17.7514,1,timberland\n")
  2012.         file:write("18.867,-45.6277,-18.0465,1,timberland\n")
  2013.         file:write("10.7997,-44.8629,-17.67,1,timberland\n")
  2014.         file:write("18.2342,-63.1204,-17.7514,1,timberland\n")
  2015.         file:write("15.9085,-62.2752,-13.3514,1,timberland\n")
  2016.         file:write("18.2984,-62.9832,-13.3514,1,timberland\n")
  2017.         file:write("-15.458,63.0182,-13.3514,2,timberland\n")
  2018.         file:write("-17.5303,46.4342,-17.9541,2,timberland\n")
  2019.         file:write("-17.8212,62.2682,-13.3514,2,timberland\n")
  2020.         file:write("-17.3656,63.1387,-17.7514,2,timberland\n")
  2021.         file:write("-13.1784,48.048,-17.7137,2,timberland\n")
  2022.         file:write("-17.8208,62.4144,-17.7514,2,timberland\n")
  2023.         file:write("-7.9646,47.4848,-17.0852,2,timberland\n")
  2024.         file:write("-23.8456,50.0524,-17.2279,2,timberland\n")
  2025.         file:write("-15.0374,62.2833,-13.3514,2,timberland\n")
  2026.         file:write("-10.4436,45.6976,-17.6325,2,timberland\n")
  2027.         file:write("-22.5601,45.5087,-17.5581,2,timberland\n")
  2028.         file:write("-17.4343,63.0345,-13.3514,2,timberland\n")
  2029.         file:write("-15.2822,63.1682,-17.7514,2,timberland\n")
  2030.         file:write("-15.7615,64.2337,-13.3514,2,timberland\n")
  2031.         file:write("-14.8507,62.456,-17.7514,2,timberland\n")
  2032.         file:write("-15.2,46.5226,-17.8723,2,timberland\n")
  2033.         file:write("-19.7379,48.2417,-17.692,2,timberland\n")
  2034.         file:write("-9.2459697723389,9.3335800170898,-2.5999999046326,flag_1,wizard\n")
  2035.         file:write("9.1828498840332,-9.1805400848389,-2.5999999046326,flag_2,wizard\n")
  2036.         file:write("-7.5255,8.66,-2.7494,1,wizard\n")
  2037.         file:write("-8.6417,7.4547,-2.7494,1,wizard\n")
  2038.         file:write("-6.7984,5.6884,-2.7494,1,wizard\n")
  2039.         file:write("-4.9098,3.5015,-2.7494,1,wizard\n")
  2040.         file:write("-3.8394,4.8189,-2.7494,1,wizard\n")
  2041.         file:write("-6.4062,9.7304,-2.749,1,wizard\n")
  2042.         file:write("-4.668,8.8597,-4.4988,1,wizard\n")
  2043.         file:write("-10.5202,3.3657,-2.7494,1,wizard\n")
  2044.         file:write("-9.31,2.0873,-4.499,1,wizard\n")
  2045.         file:write("-5.6327,6.7663,-2.7494,1,wizard\n")
  2046.         file:write("-9.8781,6.4661,-2.7494,1,wizard\n")
  2047.         file:write("-11.2999,7.5124,-2.749,1,wizard\n")
  2048.         file:write("-12.051,3.4292,-2.7494,1,wizard\n")
  2049.         file:write("-9.0894,4.7937,-4.4988,1,wizard\n")
  2050.         file:write("-7.4692,11.1404,-2.749,1,wizard\n")
  2051.         file:write("-2.2297,8.9835,-4.499,1,wizard\n")
  2052.         file:write("7.34,-11.1179,-2.749,2,wizard\n")
  2053.         file:write("4.6171,-3.3263,-2.7494,2,wizard\n")
  2054.         file:write("8.9616,-5.1861,-4.499,2,wizard\n")
  2055.         file:write("11.0899,-7.3854,-2.7488,2,wizard\n")
  2056.         file:write("10.4487,-3.3598,-2.7494,2,wizard\n")
  2057.         file:write("9.9731,-6.3483,-2.749,2,wizard\n")
  2058.         file:write("6.3625,-9.9049,-2.749,2,wizard\n")
  2059.         file:write("5.4892,-7.0626,-2.7494,2,wizard\n")
  2060.         file:write("3.0349,-8.9105,-4.499,2,wizard\n")
  2061.         file:write("7.4666,-8.5619,-2.7494,2,wizard\n")
  2062.         file:write("8.635,-7.3829,-2.7494,2,wizard\n")
  2063.         file:write("6.8867,-5.5779,-2.7494,2,wizard\n")
  2064.         file:write("8.9891,-1.9711,-4.499,2,wizard\n")
  2065.         file:write("5.1084,-8.881,-4.499,2,wizard\n")
  2066.         file:write("3.4943,-4.5831,-2.7494,2,wizard\n")
  2067.         file:write("12.03,-3.3817,-2.7494,2,wizard\n")
  2068. end

HaloNet.Net is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.