· 8 years ago · Feb 19, 2018, 04:14 PM
1_LMS <- {
2 Alive = 0,
3 Players = [],
4 iData = array( GetMaxPlayers() ),
5 State = "OFF"
6
7 function AnnounceLMS()
8 {
9 State = "ON";
10 Message( "[#FFFFFF]* LMS has been activated! /joinlms to join!" );
11 }
12
13 function JoinLMS( player )
14 {
15 Players.push( player.ID );
16 Alive++;
17 player.IsFrozen = true;
18 iData[ player.ID ] = player.Pos;
19 player.Pos = Vector( -195.861, 507.561, 16.4494 );
20 MessagePlayer( "[#FFFFFF]* You have joined LMS!", player );
21 Message( "[#FFFFFF]* " + player.Name + " has joined LMS!" );
22 }
23
24 function StartLMS()
25 {
26 local iPlayer;
27
28 foreach( ID in Players ) {
29 iPlayer = FindPlayer( ID );
30 if( iPlayer ) iPlayer.IsFrozen = false;
31 }
32
33 if( Alive >= 2 )
34 {
35 State = "STARTED";
36 Message( "[#FFFFFF]* LMS has started!" );
37 }
38 else
39 {
40 State = "OFF";
41 Players.clear();
42 Alive = 0;
43 iPlayer.Pos = iData[ iPlayer.ID ];
44 Message( "[#FFFFFF]* LMS was aborted due to lack of participants!" );
45 }
46 }
47
48 function PartLMS( player, eliminated = false )
49 {
50 Alive--;
51 Players.remove( player.ID );
52
53 if( eliminated ) Message( "[#FFFFFF]* " + player.Name + " has been eliminated from LMS!" );
54 else Message( "[#FFFFFF]* " + player.Name + " has left LMS!" );
55
56 if( Alive <= 1 )
57 {
58 foreach( ID in Players ) {
59 local iPlayer = FindPlayer( ID );
60 if( iPlayer ) _LMS.Winner( iPlayer );
61 }
62 }
63 }
64
65 function Winner( player )
66 {
67 State = "OFF";
68 Alive = 0;
69 Players.clear();
70 player.Pos = iData[ player.ID ];
71 Message( "[#FFFFFF]* " + player.Name + " has won the LMS!" );
72 }
73}
74
75
76/// Player Class
77class PlayerClass
78{
79 LastUsedIP = "";
80 Cash = 0;
81 Bank = 0;
82 Kills = 0;
83 Deaths = 0;
84 Level = 0;
85 Registered = false;
86 Logged = false;
87 IdBeingEdit = null;
88 IsBeingEdited =false;
89 chat = 0;
90 Muted = false;
91 nogoto = false;
92 hide_admin = false;
93PHidden = false;
94 gonefight = "";
95 chat = 0;
96 loan = false;
97 Team = false;
98Request = false;
99TimeRequest = 0;
100Partner = null;
101 raceplayer = false;
102loanammount = 0;
103spawnloc = false;
104X = 0;
105 Y = 0;
106 Z = 0;
107
108
109// ------------------------------------------------------------------- //
110
111 constructor( playerName, dbGlobal ){
112local query = ::QuerySQL( dbGlobal, "SELECT Cash, Bank, Kills, Deaths, Level, LastUsedIP, nogoto FROM Accounts WHERE NameLower='" + playerName.tolower() + "'" );
113 if( ::GetSQLColumnData( query, 5 ) ){
114 Cash = ::GetSQLColumnData( query, 0 );
115 Bank = ::GetSQLColumnData( query, 1 );
116 Kills = ::GetSQLColumnData( query, 2 );
117 Deaths = ::GetSQLColumnData( query, 3 );
118 Level = ::GetSQLColumnData( query, 4 );
119 LastUsedIP = ::GetSQLColumnData( query, 5 );
120 }
121 ::FreeSQLQuery( query );
122 }
123
124 function Join( player ){
125 if( Level == 0 ){
126 ::MessagePlayer(" [#4682B4][TIP][#FFFFFF] Please Register To Play.", player );
127 ::MessagePlayer( " [#4682B4][INFO][#FFFFFF]Register with /register <password>", player );
128 }
129 else if( LastUsedIP == player.UID ){
130 Logged = true;
131 ::MessagePlayer( " [#4682B4] [SERVER] [#FFFFFF]Welcome back !", player );
132 ::MessagePlayer( " [#4682B4] [SERVER] [#FFFFFF]You have been auto logged in server !", player );
133 }
134 else{
135 ::MessagePlayer( " [#4682B4] [Tip] [#FFFFFF]Please login to play.", player );
136 ::MessagePlayer( " [#4682B4] [INFO] [#FFFFFF]Login with /login <password>", player );
137 }
138 }
139
140 function Update( player, dbGlobal ){
141 ::QuerySQL( dbGlobal, "UPDATE Accounts SET Cash=" + Cash + ", Bank=" + Bank + ", Kills=" + Kills + ", Deaths=" + Deaths + ", Level=" + Level + ", LastUsedIP='" + LastUsedIP + ", nogoto='" + nogoto + "' WHERE Name='" + player.Name + "' AND NameLower='" + player.Name.tolower() + "'" );
142 }
143
144 function Register( player, password, dbGlobal ){
145 ::QuerySQL( dbGlobal, "INSERT INTO Accounts VALUES('" + player.Name + "', '" + player.Name.tolower() + "', '" + ::SHA256( password ) + "', 0, 0, 0, 0, 1, '" + player.UID + "', '" + 0 + "')" );
146 ::QuerySQL( dbGlobal, "REPLACE INTO Bstats ( Name, User, Body, Torso, LeftArm, RightArm, LeftLeg, RightLeg, Head ) VALUES ( '" + player.Name.tolower() + "', '" + player.Name + "', 0, 0, 0, 0, 0, 0, 0 )" );
147 ::QuerySQL( dbGlobal, "REPLACE INTO Wstats ( Name, User, Fist, BrassKnuckle, ScrewDriver, GolfClub, NightStick, Knife, BaseballBat, Hammer, Cleaver, Machete, Katana, Chainsaw, Grenade, RemoteGrenade, TearGas, Molotov, Missile, Colt45, Python, Shotgun, Spaz , Stubby, Tec9, Uzi, Ingrams, MP5, M4, Ruger, SniperRifle, LaserScope, RocketLauncher, FlameThrower, M60 ) VALUES ( '" + player.Name.tolower() + "', '" + player.Name + "', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 )" );
148 Level = 1;
149 LastUsedIP = player.UID;
150 Logged = true;
151 ::MessagePlayer( " [#4682B4] [Info] [#FFFFFF]Successfully registered.", player );
152 ::MessagePlayer( " [#4682B4] [Tip] [#FFFFFF]Don't forget your password. [" + password + "]", player );
153 }
154
155
156 function Login( player, password, dbGlobal ){
157 local query = ::QuerySQL( dbGlobal, "SELECT Password FROM Accounts WHERE Name = '" + player.Name + "' COLLATE NOCASE" );
158 if( ::GetSQLColumnData( query, 0 ) == null ){
159 ::MessagePlayer( " [#4682B4][TIP] [#FFFFFF] You are not registered Register With /register pass.", player );
160 }
161 else if( ::SHA256( password ) != ::GetSQLColumnData( query, 0 ) ){
162 ::MessagePlayer( " [#4682B4] [Info] [#FFFFFF]Wrong password.", player );
163 }
164 else{
165 LastUsedIP = player.UID;
166 Logged = true;
167 ::MessagePlayer( "[#4682B4] [Info] [#FFFFFF]Successfully logged in.", player );
168 }
169 }
170}
171
172
173spree <- array( 100, null );
174
175class SpreeSys
176{
177 player = null;
178 spree = 0;
179
180 constructor( player )
181 {
182 if( typeof player != "instance" ) return;
183 this.player = player;
184 this.spree = 0;
185 }
186 function Get()
187 {
188 return [ this.spree, this.player ];
189 }
190 function Inc( amount = 1 )
191 {
192 this.spree += amount;
193 local s = this.spree;
194 if( s >= 5 && s%5 == 0 ) Start();
195 }
196 function Dec( amount )
197 {
198 this.spree -= amount;
199 }
200 function Start()
201 {
202 local s = this.spree, reward = s*100;
203 ::Message( format( "[#4682B4][Spree][#F5FFFA]%s is on a killing spree of %i kills in a row. Reward: %i.", this.player.Name, s, reward ) );
204 this.player.Cash += reward;
205 }
206 function End( victim = null )
207 {
208 local spree = this.spree;
209 if( spree >= 5 )
210 {
211 if( victim != null ) ::Message( format("[#4682B4][Spree][#F5FFFA]%s has ended %s killing spree of %i kills in a row.", victim.Name, this.player.Name, spree ) );
212 else ::Message( format("[#4682B4][Spree][#F5FFFA]%s has ended their own killing spree of %i kills in a row.", this.player.Name, spree ) );
213 this.spree = 0;
214 }
215 else this.spree = 0;
216 }
217
218}
219
220
221
222
223
224
225// Some IRC Colors...
226
227const ICOL_WHITE = "\x000300";
228const ICOL_BLACK = "\x000301";
229const ICOL_BLUE = "\x000302";
230const ICOL_GREEN = "\x000303";
231const ICOL_RED = "\x000304";
232const ICOL_BROWN = "\x000305";
233const ICOL_PURPLE = "\x000306";
234const ICOL_ORANGE = "\x000307";
235const ICOL_YELLOW = "\x000308";
236const ICOL_LGREEN = "\x000309";
237const ICOL_CYAN = "\x000310";
238const ICOL_LCYAN = "\x000311";
239const ICOL_LBLUE = "\x000312";
240const ICOL_PINK = "\x000313";
241const ICOL_GREY = "\x000314";
242const ICOL_LGREY = "\x000315";
243const ICOL = "\x0003";
244const ICOL_BOLD = "\x0002";
245const ICOL_ULINE = "\x0031";
246
247
248const RED = "[#FF0000]";
249const PINK = "[#FF1493]";
250const ORANGE = "[#FF8C00]";
251const YELLOW = "[#FFD700]";
252const PURPLE = "[#9400D3]";
253const GREEN = "[#32CD32]";
254const LBLUE = "[#1E90FF]";
255const BLUE = "[#4682B4]";
256const BROWN = "[#8B4513]";
257const WHITE = "[#FFFFFF]";
258const BLACK = "[#000000]";
259const GREY = "[#808080]";
260const MSG = "[#AFFF00]";
261
262 LIMIT_REP_SPAM <- 3;
263 MUTE_TIME <- 30000;
264 LIMT_REP_TIME <- 2;
265
266 const PingLimit = 500;
267const PROTECTION_TIME = 5; // The time for how long the protection will last.
268
269 const INT32_MAX = 0x7FFFFFFF;
270const INT32_MIN = 0x80000000;
271FLOAT32_MAX <- INT32_MAX.tofloat();
272FLOAT32_MIN <- INT32_MIN.tofloat();
273const AUTO_REMOVE_PICKUPS = 10;
274
275// =========================================== S E R V E R E V E N T S ==============================================
276
277function onServerStart()
278{
279}
280
281function onServerStop()
282{
283}
284
285function onScriptLoad(){
286pstats <- array( GetMaxPlayers(), null );
287stats <- array( GetMaxPlayers(), null );
288 SpawnwepPlayer <- array( GetMaxPlayers(), null );
289 oldname <- array( GetMaxPlayers(), null );
290 Muteds <- array( GetMaxPlayers(), false);
291 IsMuted <- array( GetMaxPlayers(), false);
292 antiSpamTime <- array( GetMaxPlayers(), 0 );
293 antiSpamWarnings <- array( GetMaxPlayers(), 0 );
294Alias <- [];
295pAway <- {};
296//Loaded Bans Ip And Player...
297BannedIPs <- []; //Banned IPs will be stored here
298BannedNicks <- []; //Banned Nicks will be stored here
299wepPickups <- {};
300g_TemporaryPickups <- {};
301sqliteDB <- ConnectSQL( "Files/DataBase.db" );
302
303
304
305QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Accounts ( Name VARCHAR(255), NameLower VARCHAR(255), Password VARCHAR(255), Cash INT, Bank INT, Kills INT, Deaths INT, Level INT, LastUsedIP VARCHAR(255) )" );
306QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Loan ( Loan_nick TEXT, Loan_amount TEXT, Loan_time TEXT )" );
307QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Report (Player TEXT, Reporter TEXT, Reason TEXT, Date_Of_Report TEXT )" );
308QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Banned ( ban_nick TEXT, ban_ip TEXT, ban_time TEXT, ban_expire TEXT, ban_expireratio TEXT, ban_admin TEXT, ban_reason TEXT, ban_uid TEXT, ban_uid2 TEXT )" );
309QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Rewards (ADMIN TEXT, AMOUNT TEXT, PLAYER TEXT, REASON TEXT, Date_Of_Reward TEXT )" );
310QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Alias ( Name TEXT, IP VARCHAR(20), UID TEXT )" );
311QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Spawnloc ( Name VARCHAR(32), X NUMERIC, Y NUMERIC, Z NUMERIC )" );
312QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Gotoloc ( Location NUMERIC, X NUMERIC, Y NUMERIC, Z NUMERIC, Creator TEXT, Date TEXT )" );
313QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Spawnwep ( Nick TEXT, Weps TEXT)");
314QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Bstats ( Name TEXT, User TEXT, Body NUMERIC, Torso NUMERIC, LeftArm NUMERIC, RightArm NUMERIC, LeftLeg NUMERIC, RightLeg NUMERIC, Head NUMERIC )" );
315QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Wstats ( Name TEXT, User TEXT, Fist NUMERIC, BrassKnuckle NUMERIC, ScrewDriver NUMERIC, GolfClub NUMERIC, NightStick NUMERIC, Knife NUMERIC, BaseballBat NUMERIC, Hammer NUMERIC, Cleaver NUMERIC, Machete NUMERIC, Katana NUMERIC, Chainsaw NUMERIC, Grenade NUMERIC, RemoteGrenade NUMERIC, TearGas NUMERIC, Molotov NUMERIC, Missile NUMERIC, Colt45 NUMERIC, Python NUMERIC, Shotgun NUMERIC, Spaz NUMERIC, Stubby NUMERIC, Tec9 NUMERIC, Uzi NUMERIC, Ingrams NUMERIC, MP5 NUMERIC, M4 NUMERIC, Ruger NUMERIC, SniperRifle NUMERIC, LaserScope NUMERIC, RocketLauncher NUMERIC, FlameThrower NUMERIC, M60 NUMERIC )" );
316QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Bans ( Name VARCHAR(32), UniqueID VARCHAR(25), Admin TEXT, Reason TEXT )" );
317QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Clan ( Name TEXT, Kills NUMERIC )" ); // Create tables
318QuerySQL(sqliteDB,"CREATE TABLE IF NOT EXISTS data( Name TEXT, IP VARCHAR(20), UniqueID VARCHAR(25), Admin TEXT, Reason TEXT, time TEXT )" );
319QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS SubBans ( Name VARCHAR(32), IP VARCHAR(25), Admin TEXT, Reason TEXT )" );
320QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Spawnlocs ( X NUMERIC, Y NUMERIC, Z NUMERIC )" );
321
322SetBackfaceCullingDisabled(true);
323SetWallglitch(true);
324
325
326
327 dofile( "scripts/Cmds.nut" );
328 dofile( "scripts/top.nut" );
329
330
331 dofile( "scripts/Functions.nut" );
332
333
334
335
336
337 g_Spawnkill <- array( GetMaxPlayers(), null ); // Creating a global array to hold data.
338NewTimer("allinone", 50000, 0 );
339
340tmi_TemporaryPickups <- NewTimer("tmf_TemporaryPickups", 1000, 0);
341
342
343 del <- BindKey(true,0x2E,0,0);
344 p <- BindKey(true,0x50,0,0);
345
346 ALT_KEY <- BindKey(true, 0x12, 0, 0);
347
348 if (sqliteDB) print("Vehicles Database loaded Successfully");
349
350
351 ::QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Properties ( Name TEXT, PX FLOAT, PY FLOAT, PZ FLOAT, Owner VARCHAR(32), Sharer VARCHAR(32), Price NUMERIC, PropertyID INT)" );
352
353 ::QuerySQL( sqliteDB, "CREATE TABLE IF NOT EXISTS Vehicles ( Model INT, World INT, PX FLOAT, PY FLOAT, PZ FLOAT, Angle FLOAT, col1 INT, col2 INT)" );
354
355
356 LoadCars();
357 LoadProps();
358 LoadAlias();
359
360
361 Car <- 0;
362Bike <- 0;
363RC <- 0;
364Plane <- 0;
365Boat <- 0;
366Heli <- 0;
367BAmount <- 0;
368race <- false;
369 racecount <- 0;
370 racestart <- false;
371randhp <- [ 10, 20 ];
372 SetWastedSettings( 4096 , 2048 , 2.0 , 3.0 , RGB( 200 , 200 , 200 ) , 4000 , 2000 );
373AddClass( 0, TeamidToRGB(0), 1, Vector(-660.249, 758.763, 11.0847), 2.6331, 18, 50, 19, 50, 23, 300 ); // Cop DT
374AddClass( 0, TeamidToRGB(0), 2, Vector(509.046, 510.7, 12.1058), -3.10096, 17, 125, 28, 150, 24, 300 ); // Sniperes Nbeach Cop
375AddClass( 0, TeamidToRGB(0), 3, Vector(396.771, -472.779, 12.3302), -0.656502, 24, 300, 27, 300, 17 125 ); // FBI Washington
376AddClass( 1, TeamidToRGB(1), 87, Vector(75.1143, 1088.82, 18.7597), -3.12446, 17, 125, 21, 50, 24, 300 ); // Shark 1 es ház
377AddClass( 1, TeamidToRGB(1), 88, Vector(18.6174, 1149.76, 23.5272), -2.12233, 17, 125, 19, 50, 22, 300); // Shark 2 es ház
378AddClass( 2, TeamidToRGB(2), 93, Vector(-596.925, 650.862, 11.6765), 0.238091, 24, 300, 21, 50, 17, 125 ); // Biker bár
379AddClass( 2, TeamidToRGB(2), 94, Vector(-539.309, 696.443, 11.0847), -1.59748, 22, 300, 19, 50, 18, 125 ); // Biker lépcső
380AddClass( 3, TeamidToRGB(3), 4, Vector(-1719.55, -156.35, 14.8683), -1.57203, 18, 125, 20, 90, 32, 500 ); // Army AirportN
381AddClass( 4, TeamidToRGB(4), 97, Vector(-872.31, -683.732, 11.2157), -0.617855, 20, 125, 22, 300, 27, 500 ); // FBI Lhaiti elöl
382AddClass( 4, TeamidToRGB(4), 98, Vector(-897.567, -698.487, 11.1992), -2.46094, 20, 125, 24, 300, 26, 500 ); // FBI Lhaiti hátul
383AddClass( 5, TeamidToRGB(5), 14, Vector(-751.958, -1587.18, 18.5661), -0.214756, 5, 1, 20, 125, 27, 500 ); // Fehér csaj Docks hátsó
384AddClass( 5, TeamidToRGB(5), 137, Vector(-640.329, -1364.52, 16.3568), 1.9915, 19, 50, 24, 300, 26, 500 ); // Sailor Docks első
385AddClass( 6, TeamidToRGB(6), 0, Vector(-378.221, -597.706, 25.3745), 0.102616, 20, 125, 24, 300, 26, 500 ); // Tommy Mansion up
386AddClass( 6, TeamidToRGB(6), 96, Vector(-395.973, -595.781, 11.604), -1.56608, 17, 125, 27, 500, 31, 300 ); // Tommy Mansion down
387AddClass( 7, TeamidToRGB(7), 90, Vector(582.386, -1768.07, 8.53424), 1.19678, 17, 125, 20, 125, 32, 500 ); // Vilagitotorony
388AddClass( 7, TeamidToRGB(7), 13, Vector(503.807, -1741.35, 11.9282 ), 1.05286, 18, 125, 20, 125, 32, 500 ); // Vilagitotorony 2
389AddClass( 8, TeamidToRGB(8), 79, Vector(45.9335, -936.94, 24.573), -1.52549, 2, 1, 20, 125, 27, 500 ); // Washington SzatyrosRibi
390AddClass( 16, TeamidToRGB(16), 132, Vector(420.488, 87.1069, 11.2446), -2.48421, 6, 1, 25, 300, 26, 500 ); // Pizza Malibu
391AddClass( 9, TeamidToRGB(9), 46, Vector(499.839, -62.6593, 11.4839), 3.11211, 19, 50, 23, 300, 32, 500 ); // Malibu
392AddClass( 10, TeamidToRGB(10), 5, Vector(-143.728, -933.14, 11.109), -1.59311, 20, 125, 24, 300, 26, 500 ); // Medic Wash
393AddClass( 11, TeamidToRGB(11), 64, Vector(137.663, 309.837, 18.3168), 2.12934, 18, 125, 19, 50, 24, 300 ); // Golf
394AddClass( 12, TeamidToRGB(12), 176, Vector(-914.957, 884.885, 11.0937), -1.60513, 17, 125, 21, 50, 25, 300 ); // Bitch DT
395AddClass( 13, TeamidToRGB(13), 125, Vector(-1098.02, 284.718, 12.2578), 0.560583, 11, 1, 19, 50, 24, 300 ); // Szeméttelep Texas
396AddClass( 14, TeamidToRGB(14), 11, Vector(-1126.5, 491.473, 11.1281), -3.12957, 9, 1, 21, 50, 23, 300 ); // Szemettelep Black Jacket
397AddClass( 15, TeamidToRGB(15), 26, Vector(-1219.96, 320.77, 11.1244), 0.203073, 5, 1, 20, 250, 32, 500 ); // Szemettelep Homeless
398AddClass( 16, TeamidToRGB(16), 132, Vector(-1332.75, 242.593, 7.00311), -1.57247, 6, 1, 25, 300, 26, 500 ); // Szemettelep PizzaBoy
399AddClass( 17, TeamidToRGB(17), 71, Vector(-1242.54, 87.9378, 11.88), 1.58172, 19, 50, 28, 150, 32, 500 ); // Szemettelep HomelessCsaj
400AddClass( 18, TeamidToRGB(18), 86, Vector(-1165.95, -620.513, 11.8277), 1.67182, 10, 1, 22, 500, 26, 300 ); // Cubans 1
401AddClass( 18, TeamidToRGB(18), 85, Vector(-1107.63, -631.839, 11.2132), 1.74013, 8, 1, 24, 500, 27, 300 ); // Cubans 2
402AddClass( 19, TeamidToRGB(19), 124, Vector(-1511.12, -930.775, 20.8823), -0.532448, 20, 150, 26, 500, 32, 300 ); // Reptér
403AddClass( 20, TeamidToRGB(20), 102, Vector(4.62275, -1240.35, 19.1691), -3.08344, 17, 125, 24, 500, 26, 500 ); // Secret Service
404AddClass( 21, TeamidToRGB(21), 138, Vector(457.67, 1115.45, 19.1288), 2.39461, 8, 1, 25, 500, 32, 300 ); // Szakacs Mall
405AddClass( 22, TeamidToRGB(22), 129, Vector(428.253, 607.586, 18.7571), 0.012301, 19, 50, 23, 500, 26, 500 ); // Crusi egykezu pocs
406AddClass( 23, TeamidToRGB(23), 208, Vector(-95.3457, 937.56, 10.814), -2.28553, 19, 50, 23, 500, 26, 500 ); // Filmstudio HarleQ
407AddClass( 23, TeamidToRGB(23), 211, Vector(-92.2306, 959.527, 13.6306), -1.55422, 19, 50, 23, 500, 26, 500 ); // Filmstudio Lara
408AddClass( 23, TeamidToRGB(23), 212, Vector(-3.32795, 1006.55, 9.79183), 2.88491, 19, 50, 23, 500, 26, 500 ); // Filmstudio Naruto
409AddClass( 23, TeamidToRGB(23), 224, Vector(-21.2456, 1017.47, 12.7229), 2.31504, 19, 50, 23, 500, 26, 500 ); // Filmstudio Spidey
410
411CreateRadioStream( 11, "Petofi Radio", "http://stream002.radio.hu/mr2.mp3", true )
412CreateRadioStream( 12, "Class FM", "http://icast.connectmedia.hu/4784/live.mp3", true )
413CreateRadioStream( 13, "Best FM", "http://stream1.webthings.hu:8000/fm95-x-128.mp3", true)
414CreateRadioStream( 14, "SunShine FM", "http://www.sunshinefm.hu/listen.pls", true)
415CreateRadioStream( 15, "Radio 1", "http://213.181.210.106/high.mp3",true)
416CreateRadioStream( 16, "MusicFM", "http://stream.musicfm.hu:8000/musicfm.mp3",true),
417CreateRadioStream( 17, "BeatBird", "http://94.23.169.250:2020/beat_live.mp3",true),
418CreateRadioStream( 18, "RiseFM", "http://www.risefmonline.hu/player/hq/risefm_hq.m3u",true),
419
420HideMapObject(1356, -839.38, -773.36, 26.55);
421HideMapObject(1355, -847.25, -716.77, 10.12);
422HideMapObject(1357, -847.36, -702.88, 10.09);
423HideMapObject(1353, -844.93, -773.36, 36.55);
424HideMapObject(1351, -842.15, -856.17, 18.44);
425HideMapObject(1352, -832.67, -866.37, 10.51);
426HideMapObject(1309, -849.92, -866.697, 18.62);
427HideMapObject(1296, -849.92, -866.697, 18.62);
428HideMapObject(1408, -936.869568, -487.384827, 11.551028);
429HideMapObject(448,-718.352,-1262.17,5.656);
430HideMapObject(688,-660.32,-1537.33,18.06);
431HideMapObject(729,-719.55,-1268.19,13.60);
432HideMapObject(851,-722.47,-1338.67,12.69);
433HideMapObject(733,-722.245,-1337.37,12.703);
434
435HideMapObject(3841, 211.387, -249.859, 13.7415); // epitkezes melletti fix
436HideMapObject(3840, 219.967, -232.888, 13.7318);
437HideMapObject(3839, 228.149, -215.082, 13.7415);
438HideMapObject(3838, 236.777, -197.923, 13.7318);
439HideMapObject(3837, 245.045, -180.037, 13.7415);
440HideMapObject(3836, 253.71, -162.975, 13.7319);
441HideMapObject(3813, 261.807, -145.26, 13.7415);
442HideMapObject(3814, 270.472, -128.197, 13.7319);
443HideMapObject(3904, 211.3869476, -249.8592377, 13.74150276);
444HideMapObject(3901, 219.9674072, -232.8877106, 13.73182297);
445HideMapObject(3903, 228.1492157, -215.0818634, 13.74150276);
446HideMapObject(3900, 236.7771301, -197.9229889, 13.73182487);
447HideMapObject(3902, 245.0446167, -180.0372467, 13.74150467);
448HideMapObject(3899, 253.7100525, -162.9745026, 13.73185635);
449HideMapObject(3893, 261.8068542, -145.259903, 13.74150658);
450HideMapObject(3892, 270.4723206, -128.197113, 13.7318573);
451
452HideMapObject(968, -1084.93, -889.843, 15.7415); // Airport kerites Oil
453
454HideMapObject(638, -1313.77, -971.776, 19.8816); // reptér repcsi 3s épületbe lógott
455HideMapObject(635, -1313.7672, -971.7758, 19.8265);
456
457HideMapObject(1413, -887.308, -557.092, 20.3251); // littleha lepcso
458
459HideMapObject(950, -1239.24, -838.648, 17.6009); //repter epulet
460HideMapObject(991, -1239.2373, -838.6481, 17.6009);
461HideMapObject(1043, -1220.34, -912.95, 15.8823); // kocsilepcso
462
463HideMapObject(1905, -757.268, 1212.75, 12.5308); // dt kerites
464
465HideMapObject(1676, -1111.71, 336.87, 16.8562); // Phil's kerites
466
467HideMapObject(1557, -1297.067261, 21.21270752, 20.5786438); // szemettelep hatul feketefosok
468
469HideMapObject(1561, -1130.57, -131.347, 10.9183); // nyomda mogott
470HideMapObject(1603, -1137.77, -121.218, 12.0759);
471
472HideMapObject(1726, -1135.83, 362.368, 10.817); // philnel pockok
473HideMapObject(1727, -1163.08, 222.474, 10.8216);
474HideMapObject(1725, -1277.62, 187.887, 10.81); //nemmukodik
475
476HideMapObject(689, -704.264, -1262.85, 12.2262); // hajo porta
477
478HideMapObject(1088, -1661.02, -206.754, 13.9194); // katonasag kerites arnyek
479HideMapObject(1086, -1711.79, -122.16, 15.8551); //katonasag kerites NEM JO!!!!!!!
480
481HideMapObject(636, -1792.06, -1008.51, 15.9969); // repter 3 repcsi
482HideMapObject(638, -1775.43, -1058.92, 19.8266);
483HideMapObject(636, -1774.59, -1133.9, 15.9969);
484
485HideMapObject(873, -1800.35, -969.72, 20.8457); // hangarok
486HideMapObject(1022, -1800.35, -969.72, 20.8457);
487HideMapObject(1021, -1800.35, -1095.82, 20.6957);
488HideMapObject(1023, -1800.35, -1095.82, 20.6957);
489
490HideMapObject(916, -1035.23, -980.883, 13.2468); // Sunshine elotti oil arnyek
491
492CreateObject(2587,0,Vector(-375.49,-1322.31,9.8),255); // Yacth
493CreateObject(2590,0,Vector(-375.49,-1322.31,9.8),255);
494CreateObject(2586,0,Vector(-375.49,-1322.31,9.8),255);
495
496CreatePickup( 368, 1, 50, Vector(-1072.45, -280.342, 11.7374), 255, true); // ideiglenes
497CreatePickup( 269, 1, 50, Vector(-1068.45, -280.342, 11.7374), 255, true);
498CreatePickup( 366, 1, 50, Vector(-1066.45, -280.342, 11.7374), 255, true);
499
500
501CreateTables()
502
503
504
505
506
507
508
509 print( "Fuzzie's Account System v3 - SQLite variant has successfully loaded..." );
510 print( Censor( "WOW! This crap now supports CASE sensitive SHIT as well!" ) );
511
512}
513function onScriptUnload(){
514local I, player, mp = GetMaxPlayers();
515for(I = 0; I < mp; ++I ){ // place it in first line
516player = FindPlayer( I );
517if( !player ) continue;
518else if (pAway.rawin(oldname[player.ID]))
519{
520player.Name = ""+oldname[player.ID]+"";
521pAway.rawdelete( player.Name );
522oldname[player.ID] = null;
523}
524}
525if( sqliteDB ){
526 DisconnectSQL( sqliteDB );
527 sqliteDB = null;
528 }
529 print( "Fuzzie's Account System v3 - SQLite variant has successfully unloaded..." );
530}
531
532// =========================================== P L A Y E R E V E N T S ==============================================
533
534function onPlayerJoin( player ){
535 local country = geoip_country_name_by_addr(player.IP);
536 if (country != null) // the plugin returned a meaningful result
537 Message(Censor("[#4682B4][INFO][#F5FFFA]" + player.Name + " is connecting from " + country + ". [" + geoip_country_code_by_addr(player.IP) + "]"));
538 EchoMessage(Censor(ICOL_LBLUE +"* " + player.Name + " is connected. " + ICOL_BROWN + " (" + country + "). [" + geoip_country_code_by_addr(player.IP) + "]"));
539 EchoMessage1(Censor(ICOL_LBLUE +"* " + player.Name + " is connected. " + ICOL_BROWN + " (" + country + "). [" + geoip_country_code_by_addr(player.IP) + "]"));
540NewTimer( "CheckBanned1", 1000, 1, player.ID );
541 NewTimer( "Banned", 3000, 1, player.ID ); //Check if player is banned.
542if ( ( BannedNicks.find( player.Name.tolower() ) != null ) || ( BannedIPs.find( player.IP.tostring() ) != null ) )
543{
544BannedIPs.push( player.IP.tostring() );
545Message(RED+"** >> Auto-Kick:[ "+player.Name+" ] "+WHITE+"Reason:[ Banned From Server ].");
546NewTimer( "zKick", 3000, 1, player );
547}
548
549if ( CheckBan( player ) == 1 )
550 {
551 Message("[#FFFFFF]" + player.Name + " Banned from this server.");
552 player.Kick();
553 }
554
555
556
557 spree[ player.ID ] = SpreeSys( player );
558pstats[ player.ID ] = PlayerClass( player.Name, sqliteDB );
559 pstats[ player.ID ].Join( player );
560 AddAlias( player );
561 LoadSpawnwep(player);
562 if(pAway.rawin(player.Name))
563{
564Message("Kicked "+player.Name+", Reason: A player with same nick already exist");
565 player.Kick();
566}
567local tag = GetTag ( player.Name );
568 if ( tag )
569 {
570 local ccheck = GetSQLColumnData( QuerySQL( sqliteDB, "SELECT Name FROM Clan WHERE Name='" + tag + "'" ), 0 );
571 if( ccheck ) return MessagePlayer("Welcome, Your clan: " + ccheck, player );
572 else QuerySQL( sqliteDB, "INSERT INTO Clan ( Name, Kills ) VALUES ( '" + tag + "', '" + 0 + "' )" );
573 }
574if( newsTimer.Paused == true )
575{
576newsTimer.Paused = false;
577print("timer resumed");
578}
579}
580function onPlayerPart( player, reason ){
581if (pAway.rawin(oldname[player.ID])) // place it in first line
582{
583player.Name = ""+oldname[player.ID]+"";
584pAway.rawdelete( player.Name );
585oldname[player.ID] = null;
586}
587local Text = "Unknown";
588switch ( reason )
589{
590case PARTREASON_QUIT:
591Text = "Quit";
592break;
593case PARTREASON_DISCONNECTED:
594Text = "Leaving";
595break;
596case PARTREASON_TIMEOUT:
597Text = "Timeout";
598break;
599case PARTREASON_KICKED:
600Text = "Kicked";
601break;
602case PARTREASON_BANNED:
603Text = "Banned";
604break;
605case PARTREASON_CRASHED:
606Text = "Game-Crashed";
607break;
608}
609 if( pstats[ player.ID ].Level != 0 ){
610 pstats[ player.ID ].Update( player, sqliteDB );
611 }
612 EchoMessage( ICOL_RED + "[" + player.ID + "] " + player.Name + " left the Server. (" + Text + ")" );
613 EchoMessage1( ICOL_RED + "[" + player.ID + "] " + player.Name + " left the Server. (" + Text + ")" );
614 Message( "[#4682B4][Info][#FFFFFF] " + player.Name + " left the Server (" + Text + ")." );
615
616
617
618 if ( pstats[ player.ID ].Team == true )
619 {
620 local plr = FindPlayer( pstats[ player.ID ].Partner );
621 if ( plr ) {
622 PrivMessage( plr, "[#4682B4][Info][#FFFFFF] " + player.Name + " left the team." );
623 pstats[ plr.ID ].Partner = null;
624 pstats[ plr.ID ].Team = false;
625 }
626 }
627 if( _LMS.Players.find( player.ID ) != null )
628 {
629 _LMS.PartLMS( player );
630 }
631 if ( pstats[ player.ID ].raceplayer ) {
632 racecount--;
633 Message( "[#4682B4][Info][#FFFFFF]" + player.Name + " is out of the race." );
634 if ( racecount == 0 ) closerace();
635 pstats[ player.ID ].raceplayer = false;
636 }
637if ( GetPlayers() == 0 && newsTimer.Paused == false )
638{
639newsTimer.Paused = true;
640print("timer paused");
641}
642if (SpawnwepPlayer[ player.ID ] != null)
643 {
644 if(!CheckTableSpawnwep( player )) QuerySQL( sqliteDB, "REPLACE INTO Spawnwep( Nick, Weps ) VALUES ( '" + player.Name + "','"+ SpawnwepPlayer[ player.ID ] + "' ) ");
645 else QuerySQL( sqliteDB, "UPDATE Spawnwep SET Weps='"+ SpawnwepPlayer[ player.ID ] +"' WHERE Nick='" + player.Name + "'" );
646 SpawnwepPlayer[ player.ID ] = null; print( player.Name +"'s Spawnwep Saved!" );
647 }
648 g_Spawnkill[ player.ID ] = null;
649 IsMuted[ player.ID ] = false;
650 spree[ player.ID ].End();
651 spree[ player.ID ] = null;
652 SaveStats( player );
653 pstats[ player.ID ] = null;
654}
655
656
657
658// =========================================== P I C K U P E V E N T S ==============================================
659
660function onPickupClaimPicked( player, pickup )
661{
662 if (player.Health > 0 && g_TemporaryPickups.rawin(pickup.ID))
663 {
664 PlaySound(player.UniqueWorld, 78, player.Pos);
665
666 g_TemporaryPickups.rawdelete(pickup.ID);
667 pickup.Remove();
668 }
669 return 1;
670
671}
672function onPickupPickedUp( player, pickup )
673{
674if(pickup.Model == 407)
675{
676local id = pickup.ID+1, q = QuerySQL(sqliteDB,"SELECT * FROM Properties WHERE PropertyID='"+id+"'");
677if (GetSQLColumnData(q,0) !=null)
678{
679local name = GetSQLColumnData(q, 0), owner = GetSQLColumnData(q, 4), sharer = GetSQLColumnData(q, 5), price = GetSQLColumnData(q, 6);
680MessagePlayer(" [#4682B4][Info][#FFFFFF]ID: "+id+", Property Name ("+name+"), Price ("+price+"), Owner ("+owner+"), Sharer ("+sharer+")",player);
681}
682else return;
683FreeSQLQuery(q);
684pickup.RespawnTime = 5000;
685}
686
687 if ( pickup.Model == 512 ) {
688 if ( pstats[ player.ID ].raceplayer ) {
689 player.Cash+=500;
690 Message("[#4682B4][Info][#FFFFFF]"+player.Name + " have got 10000$.");
691 pickup.Remove();
692 Message("[#4682B4][Info][#FFFFFF]"+player.Name+" has won ." );
693 closerace();
694 }
695 }
696}
697
698function onPickupRespawn( pickup )
699{
700}
701
702
703
704function onPlayerRequestClass( player, classID, team, skin )
705{
706 player.Angle = -3.08701;
707 return 1;
708}
709function onPlayerRequestSpawn(player)
710{
711if (!pstats[player.ID].Logged == true)
712{
713MessagePlayer(RED+"[TIP]"+WHITE+"You Must Be Registered Or Logged Before Spawning",player);
714return 0;
715}
716if (pAway.rawin(oldname[player.ID]))
717{
718MessagePlayer("Use back Before Spawn",player);
719return 0;
720}
721else return 1;
722}
723
724function onPlayerSpawn( player )
725{
726 if( player.Ping >= PingLimit ){
727local szMsg = format("Your ping is more than the average ping( %d ). So you can't spawn and you'll be kicked now",PingLimit);
728PrivMessage(player,szMsg);
729szMsg = format("Auto-Kicked: [ %s ]. Reason: [ Ping limit exceeded - ping limit is %d ]",player.Name.tostring(),PingLimit);
730Message(szMsg);
731player.Kick();
732}
733player.Cash = pstats[ player.ID ].Cash;
734local q = QuerySQL(sqliteDB, "SELECT * FROM Spawnloc WHERE Name='" + player.Name + "'" );
735if ( GetSQLColumnData(q,0) != null )
736{
737local X = GetSQLColumnData(q,1), Y = GetSQLColumnData(q,2), Z = GetSQLColumnData(q,3);
738player.Pos = Vector( X, Y, Z );
739FreeSQLQuery(q);
740}
741duelsystem(player);
742 g_Spawnkill[ player.ID ] = (time() + PROTECTION_TIME);
743
744if ( pstats[ player.ID ].Team == true )
745 {
746 local plr = FindPlayer( pstats[ player.ID ].Partner );
747 if ( plr ) player.Pos = plr.Pos;
748 }
749 GiveSpawnwep(player);
750}
751
752function onPlayerChat( player, text ) {
753if ( text.slice(0,1) == "\\" )
754 {
755 local text = text.slice(1);
756 for ( local i = 0; i < GetMaxPlayers(); i++ )
757 {
758 local plr = FindPlayer( i );
759 if ( plr && plr.Team == player.Team )
760 {
761 MessagePlayer("[#4682B4][TeamChat][#4682B4] "+player.Name+": "+text,plr);
762 }
763 }
764 return 0;
765 }
766if( IsMuted[ player.ID] )
767{
768 MessagePlayer( RED+"pm >> Your Message was not sent because you're muted!", player);
769 return 0;
770}
771if( Muteds[ player.ID] )
772 {
773ClientMessage( "** pm >> Your Message was not sent because you're muted!", player, 255, 0, 0 );
774 return 0;
775 }
776local MUTE_DIVIDE = 1000;
777 if ( ( time() - antiSpamTime[ player.ID ] ) <= LIMT_REP_TIME ) {
778 antiSpamWarnings[ player.ID ]++;
779 if ( antiSpamWarnings[ player.ID ] >= LIMIT_REP_SPAM ) {
780 if( !IsMuted[ player.ID ] ){
781 IsMuted[ player.ID ] = true;
782 Message(format(">> Auto-Muted: %s Reason: Spamming the Chat. Duration[ %d seconds ]",player.Name,MUTE_TIME/MUTE_DIVIDE) );
783 NewTimer("autounmute",MUTE_TIME.tointeger(),1,player.ID);
784 }
785 }
786}
787
788else
789{
790 antiSpamWarnings[ player.ID ] = 0;
791}
792antiSpamTime[ player.ID ] = time();
793
794if( IsMuted[ player.ID] ){
795return 0;
796MessagePlayer(">> You are muted.",player);
797}
798local prefix = "", col = TeamidToRGB( player.Team ), colHex = format("#%02X%02X%02X", col.r, col.g, col.b);
799ClientMessageToAll( prefix + player.Name + ": [#FFFFFF]" + text, col.r, col.g, col.b );
800 EchoMessage (Censor( ICOL_LBLUE + "[" + player.ID + "] " + player.Name + "> " + ICOL_BLUE + " " + text + " " ) );
801 EchoMessage1 (Censor( ICOL_LBLUE + "[" + player.ID + "] " + player.Name + "> " + ICOL_BLUE + " " + text + " " ) );
802
803
804 if ( text == "back" || text == "BACK" )
805{
806if (!pAway.rawin(oldname[player.ID])) MessagePlayer("Failure - You Haven't Used AFK, brb, bbl",player);
807else{
808Message(""+oldname[player.ID]+" Is Now Back!");
809EchoMessage(""+oldname[player.ID]+" Is Now Back!");
810EchoMessage1(""+oldname[player.ID]+" Is Now Back!");
811
812player.Name = ""+oldname[player.ID]+"";
813pAway.rawdelete( player.Name );
814oldname[player.ID] = null;
815 player.World = 1;
816player.Frozen = false;
817player.Immunity = 0;
818}
819}
820local txt = split( text, " " );
821 if(txt[0].tolower() == "brb")
822{
823if ( player.IsSpawned ) MessagePlayer( "[#4682B4][Error][#FFFFFF] - You can not use brb while you are spawned you will be autoaway when you hide game..", player );
824else if (pAway.rawin(oldname[player.ID])) MessagePlayer(RED+"Failure - " + WHITE + " You Have Already Used BBL, try BACK Instead",player);
825else{
826if ( text.len() == 3 )
827 {
828Message("[#4682B4][Idle][#FFFFFF]" +player+" will be right back.");
829EchoMessage("[Idle]" +player.Name+" will be right back.");
830EchoMessage1("[Idle]" +player.Name+" will be right back.");
831
832oldname[player.ID]= player.Name;
833pAway.rawset(player.Name, "Idle");
834player.Name = ""+player.Name+"(Idle)";
835player.World = player.UniqueWorld - 1000;
836player.Frozen = true;
837player.Immunity = 127;
838}
839else{
840local reason = text.slice( text.find( " " ) + 1 );
841Message( "[#4682B4][Idle][#FFFFFF]>> " + player + " will be right back Due to: "+reason+". ");
842EchoMessage( ">> " + player + " will be right back Due to: "+reason+". ");
843EchoMessage1( ">> " + player + " will be right back Due to: "+reason+". ");
844
845oldname[player.ID]= player.Name;
846pAway.rawset(player.Name, "Idle");
847player.Name = ""+player.Name+"(Idle)";
848player.World = player.UniqueWorld - 1000;
849player.Frozen = true;
850player.Immunity = 127;
851}
852}
853}
854 if ( text )
855 {
856 if ( text.slice( 0, 1 ) == "!" )
857 {
858 local i = NumTok( text, " " ), xp = null;
859
860 if ( i == 1 ) onPlayerCommand2( player, GetTok( text.slice( 1 ), " ", 1 ), xp );
861 else onPlayerCommand2( player, GetTok( text.slice( 1 ), " ", 1 ), GetTok( text.slice( 1 ), " ", 2, i ) );
862}
863}
864}
865
866function onPlayerKill( killer, player, reason, bodypart )
867{
868pstats[ killer.ID ].Kills++;
869pstats[ player.ID ].Deaths++;
870killer.Score++;
871
872
873
874if(GetLevel(player) == "Donator")
875{
876IncCash(killer, 1000);
877local DCash = player.Cash;
878if ( DCash >= 100 ) DecCash( player, 100 );
879else DecCash( player, DCash );
880}
881else
882{
883IncCash(killer, 500);
884local DCash = player.Cash;
885if ( DCash >= 250 ) DecCash( player, 250 );
886else DecCash( player, DCash );
887
888
889CreatePlayerWeaponPickups( player )
890
891
892if (g_Spawnkill[ player.ID ] > time())
893 {
894 Killeds( killer );
895 }
896
897
898 MessagePlayer( " [#4682B4][Info][#FFFFFF]Killed: " + player.Name + ", Wep: " + GetWeaponName( reason ) + ", Part: " + GetBodypartName(bodypart) + ", Reward: $500", killer );
899 MessagePlayer( " [#4682B4][Info][#FFFFFF]Killer: " + killer.Name + ", Wep: " + GetWeaponName( reason ) + ", Part: " + GetBodypartName(bodypart) + ", Lost: $250", player );
900 EchoMessage(ICOL_RED + " " + killer.Name + " killed " + player.Name + " with Wep: " + GetWeaponName( reason ) + ", Part: " + GetBodypartName(bodypart) + ".");
901 EchoMessage1(ICOL_RED + " " + killer.Name + " killed " + player.Name + " with Wep: " + GetWeaponName( reason ) + ", Part: " + GetBodypartName(bodypart) + ".");
902 spree[ killer.ID ].Inc();
903 spree[ player.ID ].End( killer );
904 if ( bodypart <= 6 ) IncPlayerBodyPart( killer, bodypart, 1 );
905 if ( reason <= 32 ) IncPlayerWep( killer, reason, 1 );
906
907
908 KillerHP( killer );
909
910
911 if( _LMS.Players.find( killer.ID ) != null && _LMS.Players.find( player.ID ) != null )
912 {
913 _LMS.PartLMS( player, true );
914 }
915
916 local kclan = GetTag ( killer.Name );
917
918 if( kclan )
919 {
920 AddcKills( kclan );
921 }
922
923}
924}
925
926
927 function onPlayerDeath( player, reason )
928{
929 try{
930 pstats[ player.ID ].Deaths++;
931 EchoMessage( ICOL_RED + "" + player.Name + " has Died." );
932 EchoMessage1( ICOL_RED + "" + player.Name + " has Died." );
933 local DCash = player.Cash;
934 if ( DCash >= 250 ) DecCash( player, 250 );
935 else DecCash( player, DCash );
936 spree[ player.ID ].End();
937CreatePlayerWeaponPickups( player )
938if( _LMS.Players.find( player.ID ) != null )
939 {
940 _LMS.PartLMS( player, true );
941 }
942
943}
944 catch(e) print( "OnPlayerDeath Error: " + e );
945}
946
947
948function onPlayerTeamKill( killer, player, reason, bodypart )
949{
950 onPlayerKill( killer, player, reason, bodypart )
951CreatePlayerWeaponPickups( player )
952}
953
954
955function onPlayerBeginTyping( player )
956{
957}
958
959function onPlayerEndTyping( player )
960{
961}
962
963/*
964function onLoginAttempt( player )
965{
966 return 1;
967}
968*/
969
970function onTimeChange(oldHour, oldMinute, newHour, newMinute)
971{
972{
973if ( GetPlayers() > 0 )
974{
975local colorserver = "[#32CD32]"
976local colorirc = "\x000303"
977if ( newHour == 1 && newMinute == 00 ) { Message( colorserver + " Eredeti Script: KillerX. Magyarositas, Map, Jarmuvek: Jano&Abri..." ); EchoMessage( colorirc + " Eredeti Script: KillerX. Magyarositas, Map, Jarmuvek: Jano&Abri..." ); }
978if ( newHour == 2 && newMinute == 00 ) { Message( colorserver + " Kosztontunk a NiceVice Szerveren! Jo jatekot Kivanunk! " ); EchoMessage( colorirc + " Kosztontunk a NiceVice Szerveren! Jo jatekot Kivanunk!" ); }
979if ( newHour == 3 && newMinute == 00 ) { Message( colorserver + " Ejjel olyan csendesnek tunik a varos! Csak keresek valakit akit megolok :o " ); EchoMessage( colorirc + " Ejjel olyan csendesnek tunik a varos! Csak keresek valakit akit megolok :o" ); }
980if ( newHour == 4 && newMinute == 00 ) { Message( colorserver + " Maximalis ping jelenleg 500! Teszt idoszak utan 150 lesz! Felette autokick... " ); EchoMessage( colorirc + " Maximalis ping jelenleg 500! Teszt idoszak utan 150 lesz! Felette autokick..." ); }
981if ( newHour == 5 && newMinute == 00 ) { Message( colorserver + " Facebook: GTA Vice City - Multiplayer NiceVice " ); EchoMessage( colorirc + " Facebook: GTA Vice City - Mutliplayer NiceVice" ); }
982if ( newHour == 6 && newMinute == 00 ) { Message( colorserver + " A Szerver szabalyait a /rules paranccsal tekintheted meg!" ); EchoMessage( colorirc + " A Szerver szabalyait a /rules paranccsal tekintheted meg!" ); }
983if ( newHour == 7 && newMinute == 00 ) { Message( colorserver + " Nevet szeretnel valtoztatni? Hasznald a /changenick parancsot!" ); EchoMessage( colorirc + " Nevet szeretnel valtoztatni? Hasznald a /changenick parancsot!" ); }
984if ( newHour == 8 && newMinute == 00 ) { Message( colorserver + " Ha uj jatekos vagy, nezd meg a /cmds parancsot!" ); EchoMessage( colorirc + " Ha uj jatekos vagy, nezd meg a /cmds parancsot!" ); }
985if ( newHour == 9 && newMinute == 00 ) { Message( colorserver + " A szabalysertoket jelentheted a /report paranccsal!" ); EchoMessage( colorirc + " A szabalysertoket jelentheted a /report paranccsal!" ); }
986if ( newHour == 10 && newMinute == 00 ) { Message( colorserver + " A te szined a csapattarsaid szinei is egyben! Ne lodd oket!" ); EchoMessage( colorirc + " A te szined a csapattarsaid szinei is egyben! Ne lodd oket!" ); }
987if ( newHour == 11 && newMinute == 00 ) { Message( colorserver + " Vasarolnal? Minden oles penz ad! Megvasarolhato jarmuvek es epuletek!" ); EchoMessage( colorirc + " Vasarolnal? Minden oles penz ad! Megvasarlohato jarmuvek es epuletek!" ); }
988if ( newHour == 12 && newMinute == 00 ) { Message( colorserver + " Akarsz extra nyeremenyt? Vegyel reszt az eventeken, a kulon nyeremenyekert!" ); EchoMessage( colorirc + " Akarsz extra nyeremenyt? Vegyel reszt az eventeken, a kulon nyeremenyekert!" ); }
989if ( newHour == 13 && newMinute == 00 ) { Message( colorserver + " Csapatba szeretnel allni valakivel? Ird be a /team parancsot!" ); EchoMessage( colorirc + " Csapatba szeretnel allni valakivel? Ird be a /team parancsot!" ); }
990if ( newHour == 14 && newMinute == 00 ) { Message( colorserver + " Minden Kedves Jatekosunkat Udvozli a NiceVice Team! :) " ); EchoMessage( colorirc + " Minden Kedves Jatekosunkat Udvozli a NiceVice Team! :)" ); }
991if ( newHour == 15 && newMinute == 00 ) { Message( colorserver + " A szerveren folyamatos eventek lesznek, ahol penzt lehet nyerni! Sok penz = Jo kocsik! " ); EchoMessage( colorirc + " A szerveren folyamatos eventek lesznek, ahol penzt lehet nyerni! Sok penz = Jo kocsik! " ); }
992if ( newHour == 16 && newMinute == 00 ) { Message( colorserver + " Felmerulo kerdeseiddel fordulj bizalommal a NiceVice Team tagjaihoz! " ); EchoMessage( colorirc + " Felmerulo kerdeseiddel fordulj bizalommal a NiceVice Team tagjaihoz! " ); }
993if ( newHour == 16 && newMinute == 15 ) { Message( colorserver + " A csapat: Jano, Kecol, Deny, Abri " ); EchoMessage( colorirc + " A csapat: Jano, Kecol, Deny, Abri " ); }
994if ( newHour == 18 && newMinute == 00 ) { Message( colorserver + " Hozz letre sajat klant es gyujtsel hozza tagokat! Kerdezd az Adminokat! " ); EchoMessage( colorirc + " Hozz letre sajat klant es gyujtsel hozza tagokat! Kerdezd az Adminokat! " ); }
995if ( newHour == 19 && newMinute == 00 ) { Message( colorserver + " Minden uj klant le kell jelenteni hogy be tudjuk regisztralni a rendszerbe! " ); EchoMessage( colorirc + " Minden uj klant le kell jelenteni hoyg be tudjuk regisztralni a rendszerbe! " ); }
996if ( newHour == 21 && newMinute == 00 ) { Message( colorserver + " Szeretnel nyerni? Autok, Skinek, Penznyeremenyek az Eventeken... " ); EchoMessage( colorirc + " Szeretnel nyerni? Autok, Skinek, Penznyeremenyek az Eventeken... " ); }
997if ( newHour == 22 && newMinute == 30 ) { Message( colorserver + " Hasznald a bankot a penz betet es kivetelhez! Kamat-mentes hasznalat :) " ); EchoMessage( colorirc + " Hasznald a bankot a penz betet es kivetelhez! Kamat-mentes hasznalat :) " ); }
998}
999}
1000}
1001
1002function onNameChangeable( player )
1003{
1004}
1005
1006function onPlayerSpectate( player, target )
1007{
1008}
1009
1010function onPlayerCrashDump( player, crash )
1011{
1012}
1013
1014function onPlayerHealthChange( player, lastHP, newHP )
1015{
1016}
1017
1018function onPlayerArmourChange( player, lastArmour, newArmour )
1019{
1020}
1021
1022function onPlayerWeaponChange( player, oldWep, newWep )
1023{
1024}
1025
1026function onPlayerAwayChange( player, NewStatus )
1027 {
1028 if (( NewStatus == true ) && ( player.IsSpawned ))
1029{
1030 Message("[Idle]" +player.Name+" will be right back.");
1031 EchoMessage("[Idle]" +player.Name+" will be right back.");
1032 EchoMessage1("[Idle]" +player.Name+" will be right back.");
1033
1034oldname[player.ID]= player.Name;
1035pAway.rawset(player.Name, "Idle");
1036player.Name = ""+player.Name+"(Idle)";
1037player.World = player.UniqueWorld - 1000;
1038player.Frozen = true;
1039player.Immunity = 127;
1040if(pstats[player.ID].gonefight!="")
1041 {
1042 player.IsFrozen = true;
1043 MessagePlayer(" [#4682B4][INFO][#FFFFFF] Exiting in 5 secs. ", player );
1044 NewTimer( "exit", 10, 1, player.Name );
1045}
1046}
1047 else if (( NewStatus == false ) && ( pAway.rawin(oldname[player.ID]) ))
1048 {
1049 Message(""+oldname[player.ID]+" Is Now Back!");
1050EchoMessage(""+oldname[player.ID]+" Is Now Back!");
1051EchoMessage1(""+oldname[player.ID]+" Is Now Back!");
1052player.Name = ""+oldname[player.ID]+"";
1053pAway.rawdelete( player.Name );
1054oldname[player.ID] = null;
1055 player.World = 1;
1056player.Frozen = false;
1057player.Immunity = 0;
1058 }
1059 }
1060function onPlayerNameChange( player, oldName, newName )
1061{
1062}
1063
1064function onPlayerActionChange( player, oldAction, newAction )
1065{
1066}
1067
1068function onPlayerOnFireChange(player, firestatus)
1069{
1070}
1071
1072function onPlayerStateChange( player, oldState, newState )
1073{
1074}
1075
1076
1077function onPlayerGameKeysChange( player, oldKeys, newKeys )
1078{
1079}
1080
1081// ========================================== V E H I C L E E V E N T S =============================================
1082
1083function onPlayerEnteringVehicle( player, vehicle, door )
1084{
1085if (GetVehicleNameFromModel(vehicle.Model)== null ) MessagePlayer(" [#4682B4][Info][#FFFFFF]you Entered in a " + GetVehicleNameFromCustomModel(vehicle.Model)+"",player); // lets check if the squirrel function return name as null if yes then our function will send vehicle name from its record
1086else MessagePlayer(" [#4682B4][Info][#FFFFFF]you Entered in a " + GetVehicleNameFromModel( player.Vehicle.Model ) + " (ID: " + player.Vehicle.ID + ")", player );
1087 return 1;
1088}
1089
1090function onPlayerEnterVehicle( player, vehicle, door )
1091{
1092}
1093
1094function onPlayerExitVehicle( player, vehicle )
1095{
1096 if ( pstats[player.ID].raceplayer ){ vehicle.Locked = false; player.Vehicle = vehicle; vehicle.Locked = true; } // By Karan
1097}
1098
1099function onVehicleExplode( vehicle )
1100{
1101}
1102
1103function onVehicleRespawn( vehicle )
1104{
1105}
1106
1107function onVehicleHealthChange( vehicle, oldHP, newHP )
1108{
1109}
1110
1111function onVehicleMove( vehicle, lastX, lastY, lastZ, newX, newY, newZ )
1112{
1113}
1114
1115
1116function GetTeamToRGB(id)
1117{
1118switch (id)
1119{
1120case 255: return RGB(255,255,255);
1121case 0: return RGB(119,136,152);
1122case 1: return RGB(255,141,19);
1123case 2: return RGB(163,73,164);
1124case 3: return RGB(32,177,170);
1125case 4: return RGB(255,215,32);
1126case 5: return RGB(220,20,59);
1127case 6: return RGB(99,139,236);
1128case 7: return RGB(255,141,19);
1129case 8: return RGB(244,163,97);
1130case 9: return RGB(238,130,239);
1131case 10: return RGB(139,69,18);
1132case 11: return RGB(240,231,140);
1133case 12: return RGB(20,138,138);
1134case 13: return RGB(20,255,127);
1135case 14: return RGB(86,107,48);
1136case 15: return RGB(25,25,113);
1137case 16: return RGB(247,225,225);
1138default: return RGB(0,0,0);
1139}
1140}
1141// ========================================== O B J E C T E V E N T S ==============================================
1142
1143function onObjectShot( object, player, weapon )
1144{
1145}
1146
1147function onObjectBump( object, player )
1148{
1149}
1150
1151// =========================================== B I N D E V E N T S ==============================================
1152
1153function onKeyDown( player, key )
1154{
1155 if(key==del)
1156 {
1157if ( GetLevel(player) < 7 ) MessagePlayer (" ",player );
1158 else if(pstats[player.ID].IsBeingEdited==false) Message(player.Name+": [#FFFFFF]First turn on editing");
1159 else if(!player.Vehicle) Message(player.Name+": [#FFFFFF]Must Be In Vehicle To Remove");
1160 else if(!player.Vehicle.ID == pstats[player.ID].IdBeingEdit) Message(player.Name+": [#FFFFFF]This Vehicle Is Not In Editing Process");
1161 else
1162 {
1163 FindVehicle(player.Vehicle.ID).Delete();
1164 pstats[player.ID].IsBeingEdited=false;
1165 pstats[player.ID].IdBeingEdit = null;
1166 Message( " [#4682B4]Admin [#FFFFFF]" + player.Name + " [#4682B4]Erased Vehicle from [#FFFFFF]" + GetDistrictName( player.Pos.x, player.Pos.y ) + "." );
1167 }
1168 }
1169
1170else if(key==p)
1171 {
1172 if ( GetLevel(player) < 7 ) MessagePlayer (" ",player );
1173 if(pstats[player.ID].IsBeingEdited==false) Message(player.Name+": [#FFFFFF]First turn on editing");
1174 else if(!player.Vehicle) Message(player.Name+": [#FFFFFF]Must Be In Vehicle To Save Vehicle");
1175 else if(!player.Vehicle.ID == pstats[player.ID].IdBeingEdit) Message(player.Name+": [#FFFFFF]This Vehicle Is Not In Editing Process");
1176 else {
1177 QuerySQL( sqliteDB, "INSERT INTO Vehicles ( Model, World, PX, PY, PZ, Angle, col1, col2 ) VALUES ( '" + player.Vehicle.Model + "', '" + player.Vehicle.World + "', '" + player.Vehicle.Pos.x + "', '" + player.Vehicle.Pos.y + "', '" + player.Vehicle.Pos.z + "', '" + player.Vehicle.EulerAngle.z + "', '" + player.Vehicle.Colour1 + "', '" + player.Vehicle.Colour2 + "')" );
1178 Message(player.Name+": [#FFFFFF]Vehicle Saved In Database");
1179 pstats[player.ID].IsBeingEdited=false;
1180 pstats[player.ID].IdBeingEdit = null;
1181 }
1182 }
1183}
1184
1185function onKeyUp( player, key )
1186{
1187}
1188
1189// ================================== E N D OF O F F I C I A L E V E N T S ======================================
1190function onPlayerPM( player, playerTo, text )
1191{
1192SendPrivIRC1( ICOL_RED+"[PM Alert] " + player.Name + " to " + playerTo.Name + ": " + text + ".", 3 );
1193local a = 0, b = GetMaxPlayers(), c = 0, d = GetPlayers(), nick, plrlevel;
1194
1195 while ( ( a < b ) && ( c < d ) )
1196 {
1197 nick = FindPlayer( a );
1198
1199 if ( nick )
1200 {
1201 plrlevel = GetLevel( nick );
1202
1203 if ( plrlevel > 4 ) ePrivMessage( "[#FF0000][PM Alert][#FFFFFF]" + player + " to " + playerTo + ": " + text + ".", nick );
1204
1205
1206
1207 c ++;
1208 }
1209 a ++;
1210 }
1211PrivMessage( playerTo, "[#FFFFFF]Private from [" + player + "] : " + text + ".");
1212}
1213function onPlayerEnterMenu( player, menuID )
1214{
1215 print( player.Name + " entered in menu " + menuID );
1216 switch( menuID )
1217 {
1218 // Tuning System
1219 case tuneMenuID: // first menu
1220 case tuneSecondMenuID: // second menu
1221 player.SetCameraPos( TUNE_CAMERA_TOP, TUNE_CAMERA_LOOK );
1222 break;
1223 default: break;
1224 }
1225}
1226
1227
1228
1229function onCheckpointEntered(player, CheckPoint)
1230{
1231switch( CheckPoint.ID )
1232 {
1233case 0:
1234player.Pos = Vector(-1453.12, 1217.07, 3996.66); // Propertie 1
1235break;
1236case 1:
1237player.Pos = Vector(385.463, -579.866, 10.1874); // return Properti 1
1238break;
1239case 2:
1240player.Pos = Vector(-1753.59, 917.165, 3696.66) // Propertie 2
1241break;
1242case 3:
1243player.Pos = Vector(379.492, -593.486, 10.1874) // Propertie 2 return
1244break;
1245case 4:
1246player.Pos = Vector(-2053.75, 617.3, 3396.66) // Propertie 3
1247break;
1248case 5:
1249player.Pos = Vector(-22.6831, -1361.68, 10.4623) // Propertie 3 return
1250break;
1251case 6:
1252player.Pos = Vector(-1247.44, 1419.73, 3696.66) // Propertie 4
1253break;
1254case 7:
1255player.Pos = Vector(-22.2737, -1384.05, 10.4588) // Propertie 4 retur
1256break;
1257case 8:
1258player.Pos = Vector(-1246.01, 1419.94, 3496.66) // Propertie 5
1259break;
1260case 9:
1261player.Pos = Vector(-27.3637, -1435.95, 10.4506) // Propertie 5 return
1262break;
1263case 10:
1264player.Pos = Vector(-1254.09, 1417.03, 3296.66) // Propetie 6
1265break;
1266case 11:
1267player.Pos = Vector(-29.0543, -1448.85, 10.4486) // Propertie 6 return
1268break;
1269case 12:
1270player.Pos = Vector(-1254.19, 1416.91, 3096.66) // Propertie 7
1271break;
1272case 13:
1273player.Pos = Vector(-29.7795, -1461.32, 10.4466) // Propertie 7 return
1274break;
1275case 14:
1276player.Pos = Vector(-1254.04, 1417.11, 2896.66) // Propertie 8
1277break;
1278case 15:
1279player.Pos = Vector(-31.9379, -1473.6, 10.4447) // Propertie 8 return
1280break;
1281case 16:
1282player.Pos = Vector(-1253.78, 1416.92, 2696.66) // Propertie 9
1283break;
1284case 17:
1285player.Pos = Vector(-33.5303, -1494.28, 10.4414) // Propertie 9 return
1286break;
1287case 18:
1288player.Pos = Vector(-1253.48, 1417.2, 2496.66) // Propertie 10
1289break;
1290case 19:
1291player.Pos = Vector(-35.3173, -1506.8, 10.4394) // Propertie 10 return
1292break;
1293case 20:
1294player.Pos = Vector(-1253.68, 1417.17, 2296.66) // Propertie 11
1295break;
1296case 21:
1297player.Pos = Vector(-35.5289, -1519.52, 10.4375) // Propertie 11 return
1298break;
1299case 22:
1300player.Pos = Vector(-1253.23, 1417.04, 2096.66) // Propertie 12
1301break;
1302case 23:
1303player.Pos = Vector(-36.2081, -1531.65, 10.4356) // Propertie 12 return
1304break;
1305case 24:
1306player.Pos = Vector(-1253.42, 1417.13, 1896.66) // Propertie 13
1307break;
1308case 25:
1309player.Pos = Vector(-27.542, -1560.29, 10.4356) // Propertie 13 return
1310break;
1311case 26:
1312player.Pos = Vector(-445.539, -343.948, 7) // Propertie haiti 1
1313break;
1314case 27:
1315player.Pos = Vector(-949.154, 89.9681, 10) // Propertie haiti 1 return
1316break;
1317case 28:
1318player.Pos = Vector(-468.511, 1057.39, 10.9405) // Propertie Bombero 1
1319break;
1320case 29:
1321player.Pos = Vector(-470.69, 1076.62, 11.0712) // Propertie Bombero 1 return
1322break;
1323case 30:
1324player.Pos = Vector(-552.243, 788.026, 97.5104) // Propertie Lift1 return
1325break;
1326case 31:
1327player.Pos = Vector(-556.331, 782.099, 22.8768) // Propertie Lift1
1328break;
1329return0;
1330 }
1331}
1332
1333
1334
1335function onPlayerExitMenu( player, menuID )
1336{
1337print( player.Name + " left the menu " + menuID );
1338switch( menuID )
1339 {
1340 // Tuning System
1341 case tuneMenuID: // first menu
1342 case tuneSecondMenuID: // second menu
1343 ::MessagePlayer( tuneColorPrefix + "[ Tuning ]" + tuneColorEnabled + " Enjoy your ride ! See you soon ! 8)", player);
1344 tuneExitMenu( player );
1345 break;
1346 default: break;
1347 }
1348}
1349
1350
1351function onPlayerEnterSubmenu( player, menuID, submenuID )
1352{
1353 print( player.Name + " entered in submenu " + submenuID + " of menu " + menuID );
1354switch( menuID )
1355 {
1356 // Tuning System
1357 case tuneMenuID: // first menu
1358 case tuneSecondMenuID: // second menu
1359 tuneEnterSubmenu( player, menuID, submenuID );
1360 break;
1361 default: break;
1362 }
1363}
1364
1365function onPlayerExitSubmenu( player, menuID, submenuID )
1366{
1367switch( menuID )
1368 {
1369 // Tuning System
1370 case tuneMenuID: // first menu
1371 case tuneSecondMenuID: // second menu
1372 player.SetCameraPos( TUNE_CAMERA_TOP, TUNE_CAMERA_LOOK );
1373 break;
1374 default: break;
1375 }
1376 print( player.Name + " left the submenu " + submenuID + " of menu " + menuID );
1377}
1378
1379function onPlayerSwitchOptionsInMenu( player, menuID, oldOption, newOption )
1380{
1381 print( player.Name + " switched options in menu ID " + menuID + ". (old: " + oldOption + ") (new: " + newOption + ")");
1382}
1383
1384function onPlayerSwitchOptionsInSubmenu( player, menuID, submenuID, oldOption, newOption )
1385{
1386 print( player.Name + " switched options in submenu ID " + submenuID + " of menu ID " + menuID + ". (old: " + oldOption + ") (new: " + newOption + ")");
1387switch( menuID )
1388 {
1389 // Tuning System
1390 case tuneMenuID: // first menu
1391 case tuneSecondMenuID: // second menu
1392 tuneSwitchOptionsInSubmenu( player, menuID, submenuID, oldOption, newOption );
1393 break;
1394 default: break;
1395 }
1396}
1397
1398function onPlayerSelectInMenu( player, menuID, option )
1399{
1400 print( player.Name + " selected option " + option + " from menu " + menuID);
1401 switch( menuID )
1402 {
1403 // Tuning System
1404 case tuneMenuID: // first menu
1405 tuneSelectInMenu( player, menuID, option );
1406 break;
1407 default: break;
1408 }
1409}
1410
1411function onPlayerSelectInSubmenu( player, menuID, submenuID, option )
1412{
1413 print( player.Name + " selected option " + option + " from submenu " + submenuID + " of menu " + menuID );
1414 switch( menuID )
1415 {
1416 // Tuning System
1417 case tuneMenuID: // first menu
1418 case tuneSecondMenuID: // second menu
1419 tuneSelectInSubmenu( player, menuID, submenuID, option );
1420 break;
1421 default: break;
1422 }
1423 }
1424function GetLevel(player)
1425{
1426local Level = GetSQLColumnData( QuerySQL( sqliteDB, "SELECT Level FROM Accounts WHERE Name = '" + player.Name + "' COLLATE NOCASE" ),0);
1427if ( Level ) return Level;
1428else return 0;
1429}
1430function GetLevelTag(player)
1431{
1432if ( pstats[player.ID].hide_admin == true ) return ""+BLUE+"";
1433else{
1434local Level = GetLevel(player);
1435switch( Level.tointeger() )
1436{
1437case 1: return ""+ORANGE+"Member";
1438case 2: return ""+WHITE+"Winner";
1439case 4: return ""+WHITE+"Moderator";
1440case 5: return ""+LBLUE+"Administrator";
1441case 6: return ""+GREEN+"Manager";
1442case 7: return ""+RED+"Developer";
1443default: return "Puto!";
1444}
1445}
1446}
1447
1448function GetLevelcol(player)
1449{
1450local Level = GetLevel(player);
1451switch( Level.tointeger() )
1452{
1453case 4: return "+WHITE+";
1454case 5: return "+LBLUE+";
1455case 6: return "+GREEN+";
1456case 7: return "[#FF0000]";
1457default: return "Puto!";
1458}
1459}
1460
1461
1462
1463function GetKool(player)
1464{
1465if ( pstats[player.ID].hide_admin == true ) return ""+BLUE+"";
1466else{
1467local Level = GetLevel(player);
1468switch( Level.tointeger() )
1469{
1470case 1: return "Member";
1471case 2: return "Winner";
1472case 4: return "Moderator";
1473case 5: return "ADMIN";
1474case 6: return "Management";
1475case 7: return "Developer";
1476default: return "Puto!";
1477}
1478}
1479}
1480function LoadAlias()
1481{
1482local q = QuerySQL( sqliteDB, "SELECT * FROM Alias" ), i = 0;
1483while ( GetSQLColumnData( q, 0 ) != null )
1484{
1485Alias.push( { Nick = GetSQLColumnData( q, 0 ), IP = GetSQLColumnData( q, 1 ), UID = GetSQLColumnData( q, 2 ) } );
1486i ++;
1487GetSQLNextRow( q );
1488}
1489FreeSQLQuery( q );
1490print( "[Loaded] Alias - " + i );
1491}