Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define FILTERSCRIPT
- #include <a_samp>
- #include <foreach>
- #include <sqlitei>
- #include <zcmd>
- #define RCON_PASSWORD "changeme"
- #define LEAVETYPE_KICK 0
- #define LEAVETYPE_EXPLOIT 1
- #define LEAVETYPE_CHEAT 2
- #define LEAVETYPE_UNTRUSTED 3
- #define LEAVETYPE_BANNED 4
- #define LEAVETYPE_ADVERTISEMENT 5
- #define LEAVETYPE_FAIL_LOGIN 6
- #define MINUTES_5 300000
- #define MINUTES_10 600000
- #define MINUTES_15 900000
- #define MINUTES_30 1800000
- #define HOURS_1 3600000
- #define MAX_PLAYER_IP 16
- //#define DIALOG_CLOSEALL -1
- #define DIALOG_REQUESTANSWER 2000
- #define DIALOG_RCON 2001
- #define DIALOG_SETTINGS 2002
- #define DIALOG_SETTINGS_QUESTION 2003
- #define DIALOG_SETTINGS_ANSWER 2004
- #define DIALOG_SETTINGS_ADMIN 2005
- #define DIALOG_SETTINGS_ADMIN2 2006
- enum playerInfo
- {
- dbID,
- Untrusted, TimesDied,
- DialogWarns, DeathWarns,
- TextWarns, StateWarns,
- ShotWarns, VehicleWarns,
- TotalWarns,
- TimesShot, LastShot, BulletsToDesync,
- VehicleID, LastEntered,
- EditingDialog,
- Name[ 24 ], IP[ 16 ],
- sQuestion[ 48 ], sAnswer[ 48 ],
- LastDetection[ 16 ],
- bool:QASetup,
- bool:RequestAnswer,
- bool:LoggedIn,
- bool:AlreadyConnected,
- bool:RCONAdmin
- };
- enum gameguardInfo
- {
- KICK_DELAY,
- MAX_UNTRUSTED_WARNS,
- MAX_DIALOG_WARNS, MAX_TEXT_WARNS,
- MAX_DEATH_WARNS, MAX_STATE_WARNS,
- MAX_VEHICLE_WARNS,
- MAX_SHOT_WARNS, MAX_DESYNC_BULLETS, MAX_BULLETS,
- bool:ENABLED, bool:DESYNC,
- bool:USE_RCON2
- };
- new
- pInfo[ MAX_PLAYERS ][ playerInfo ],
- gInfo[ gameguardInfo ]
- ;
- new
- DB:Database
- ;
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- print("\nGameGuard: loading");
- Database = db_open("gameguard.db");
- // ---- USERS
- db_query(Database,
- "CREATE TABLE IF NOT EXISTS users (userid INTEGER PRIMARY KEY AUTOINCREMENT,\
- username VARCHAR(24),\
- ip VARCHAR(16),\
- untrusted INTEGER DEFAULT 0 NOT NULL,\
- laston INTEGER DEFAULT 0 NOT NULL,\
- question VARCHAR(48),\
- answer VARCHAR(48)\
- )");
- // ---- BANS
- db_query(Database,
- "CREATE TABLE IF NOT EXISTS banned (banid INTEGER PRIMARY KEY AUTOINCREMENT,\
- bannedname VARCHAR(24),\
- bannedip VARCHAR(16),\
- banreason VARCHAR(48),\
- date INTEGER DEFAULT 0 NOT NULL,\
- time INTEGER DEFAULT 0 NOT NULL\
- )");
- if(!strcmp(RCON_PASSWORD, "changeme"))
- {
- print("GameGuard: Please change 'RCON_PASSWORD' in the script!");
- print("GameGuard: RCON is currently disabled.");
- }
- gInfo[ KICK_DELAY ] = 300; //300 ms
- gInfo[ MAX_DIALOG_WARNS ] = 5, gInfo[ MAX_DEATH_WARNS ] = 5, gInfo[ MAX_UNTRUSTED_WARNS ] = 5;
- gInfo[ MAX_TEXT_WARNS ] = 5, gInfo[ MAX_STATE_WARNS ] = 5, gInfo[ MAX_SHOT_WARNS ] = 5;
- gInfo[ MAX_VEHICLE_WARNS ] = 5;
- gInfo[ MAX_DESYNC_BULLETS ] = 5, gInfo[ MAX_BULLETS ] = 10;
- gInfo[ ENABLED ] = true, gInfo[ DESYNC ] = false;
- gInfo[ USE_RCON2 ] = true;
- print("- - - - - - - - SETTINGS - - - - - - - -");
- printf("GameGuard: 2nd RCON Password is set to %s", RCON_PASSWORD);
- printf("GameGuard: Max Untrusted Warns is set to %d", gInfo[ MAX_UNTRUSTED_WARNS ]);
- printf("GameGuard: Kick Delay is set to %d ms", gInfo[ KICK_DELAY ]);
- printf("GameGuard: Max Bullets is set to %d (per second)", gInfo[ MAX_BULLETS ]);
- printf("GameGuard: Max Dialog Warns is set to %d", gInfo[ MAX_DIALOG_WARNS ]);
- printf("GameGuard: Max Death Warns is set to %d", gInfo[ MAX_DEATH_WARNS ]);
- printf("GameGuard: Max Text Warns is set to %d", gInfo[ MAX_TEXT_WARNS ]);
- printf("GameGuard: Max State Warns is set to %d", gInfo[ MAX_STATE_WARNS ]);
- printf("GameGuard: Max Vehicle Warns is set to %d", gInfo[ MAX_VEHICLE_WARNS ]);
- printf("GameGuard: Max Shot Warns is set to %d", gInfo[ MAX_SHOT_WARNS ]);
- printf("GameGuard: Max Desync Bullets is set to %d", gInfo[ MAX_DESYNC_BULLETS ]);
- foreach(Player, i)
- {
- OnPlayerConnect(i);
- if(IsPlayerAdmin(i))
- {
- ShowPlayerDialog(i, DIALOG_RCON, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}RCON Login", "{FFFFFF}You're required to enter the 2nd {72FA80}RCON Password{FFFFFF}.\nIf you fail to do so, you'll be kicked", "Accept", "Cancel");
- }
- }
- return 1;
- }
- public OnFilterScriptExit()
- {
- print("GameGuard: unloading");
- db_close(Database);
- return 1;
- }
- #endif
- public OnPlayerConnect(playerid)
- {
- if(gInfo[ ENABLED ] == true)
- {
- GetPlayerName(playerid, pInfo[ playerid ][ Name ], MAX_PLAYER_NAME+1);
- GetPlayerIp(playerid, pInfo[ playerid ][ IP ], MAX_PLAYER_IP+1);
- format(pInfo[ playerid ][ LastDetection ], 3, "\0");
- if(!IsPlayerNPC(playerid))
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard is enabled in this server.");
- if(pInfo[ playerid ][ AlreadyConnected ] == false)
- {
- new
- Query[ 128 ], string[ 118 ],
- DBResult:Result
- ;
- pInfo[ playerid ][ AlreadyConnected ] = true;
- format(Query, sizeof(Query), "SELECT * FROM banned WHERE bannedname = '%s' OR bannedip = '%s'", DB_Escape(pInfo[ playerid ][ Name ]), pInfo[ playerid ][ IP ]);
- Result = db_query(Database, Query);
- if(db_num_rows(Result))
- {
- new
- banreason[ 48 ]
- ;
- db_get_field_assoc(Result, "banreason", banreason, 48);
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}This account is banned: {72FA80}%s{FFFFFF}.", banreason);
- SendClientMessage(playerid, -1, string), SendLeaveMessage(playerid, LEAVETYPE_BANNED);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], HOURS_1, playerid);
- }
- else
- {
- format(Query, sizeof(Query), "SELECT * FROM users WHERE username = '%s' LIMIT 0, 1", DB_Escape(pInfo[ playerid ][ Name ]));
- Result = db_query(Database, Query);
- if(db_num_rows(Result))
- {
- db_get_field_assoc(Result, "untrusted", Query, 3); pInfo[ playerid ][ Untrusted ] = strval(Query);
- if(pInfo[ playerid ][ Untrusted ] < gInfo[ MAX_UNTRUSTED_WARNS ])
- {
- db_get_field_assoc(Result, "userid", Query, 8); pInfo[ playerid ][ dbID ] = strval(Query);
- db_get_field_assoc(Result, "question", pInfo[ playerid ][ sQuestion ], 48);
- db_get_field_assoc(Result, "answer", pInfo[ playerid ][ sAnswer ], 48);
- if(strlen(pInfo[ playerid ][ sQuestion ]) >= 7 && strlen(pInfo[ playerid ][ sAnswer ]) >= 1)
- {
- pInfo[ playerid ][ QASetup ] = true;
- new
- tempip[ 16 ]
- ;
- db_get_field_assoc(Result, "ip", tempip, MAX_PLAYER_IP);
- if(strcmp(tempip, pInfo[ playerid ][ IP ], true))
- {
- pInfo[ playerid ][ RequestAnswer ] = true;
- pInfo[ playerid ][ LoggedIn ] = false;
- }
- else
- {
- pInfo[ playerid ][ RequestAnswer ] = false;
- pInfo[ playerid ][ LoggedIn ] = true;
- }
- }
- else
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}For your account safety, setup a secret question in /settings!");
- format(pInfo[ playerid ][ sQuestion ], 4, "N/A");
- format(pInfo[ playerid ][ sAnswer ], 4, "N/A");
- }
- }
- else if(pInfo[ playerid ][ Untrusted ] >= gInfo[ MAX_UNTRUSTED_WARNS ])
- {
- SendLeaveMessage(playerid, LEAVETYPE_UNTRUSTED);
- Ban_(playerid, "Untrusted");
- }
- }
- else
- {
- new
- year, month, day
- ;
- getdate(year, month, day);
- format(Query, sizeof(Query), "INSERT INTO users (username, ip, laston) VALUES ('%s', '%s', '%d/%d/%d')",
- DB_Escape(pInfo[ playerid ][ Name ]), pInfo[ playerid ][ IP ], year, month, day);
- db_query(Database, Query);
- format(Query, sizeof(Query), "SELECT userid FROM users WHERE username = '%s' LIMIT 0, 1", DB_Escape(pInfo[ playerid ][ Name ]));
- Result = db_query(Database, Query);
- if(db_num_rows(Result))
- {
- db_get_field_assoc(Result, "userid", Query, 8); pInfo[ playerid ][ dbID ] = strval(Query);
- pInfo[ playerid ][ LoggedIn ] = true;
- }
- format(pInfo[ playerid ][ sQuestion ], 4, "N/A");
- format(pInfo[ playerid ][ sAnswer ], 4, "N/A");
- }
- }
- db_free_result(Result);
- }
- else
- {
- SendLeaveMessage(playerid, LEAVETYPE_EXPLOIT);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], HOURS_1, playerid, LEAVETYPE_EXPLOIT);
- }
- }
- else
- {
- if(strcmp(pInfo[ playerid ][ IP ], "127.0.0.1"))
- {
- SendLeaveMessage(playerid, LEAVETYPE_EXPLOIT);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], HOURS_1, playerid, LEAVETYPE_EXPLOIT);
- }
- }
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(gInfo[ ENABLED ] == true)
- {
- if(pInfo[ playerid ][ LoggedIn ] == true)
- {
- new
- Query[ 128 ],
- year, month, day
- ;
- getdate(year, month, day);
- format(Query, sizeof(Query), "UPDATE users SET ip = '%s', untrusted = %d, laston = '%d/%d/%d' WHERE userid = %d",
- pInfo[ playerid ][ IP ], pInfo[ playerid ][ Untrusted ], year, month, day, pInfo[ playerid ][ dbID ]);
- db_query(Database, Query);
- }
- }
- for(new i; i < _: playerInfo; ++i) pInfo[ playerid ][ playerInfo: i ] = 0;
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- if(gInfo[ ENABLED ] == true)
- {
- if(pInfo[ playerid ][ RequestAnswer ] == true && pInfo[ playerid ][ QASetup ] == true)
- {
- new
- string[ 228 ]
- ;
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}IP's differ - Type the answer of your secret question.");
- format(string, sizeof( string ), "{FFFFFF}Your last login IP, and your current IP ( {72FA80}%s{FFFFFF} ) don't match!\nYou're requested to type in your answer of your secret question!\nQuestion: {72FA80}%s{FFFFFF}",
- pInfo[ playerid ][ IP ], pInfo[ playerid ][ sQuestion ]);
- ShowPlayerDialog(playerid, DIALOG_REQUESTANSWER, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}Secret Answer", string, "Accept", "Cancel");
- return 0;
- }
- }
- if(gInfo[ DESYNC ] == true)
- {
- if(pInfo[ playerid ][ TotalWarns ] > 6)
- {
- return 0;
- }
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(gInfo[ ENABLED ] == true)
- {
- if(pInfo[ playerid ][ RequestAnswer ] == true)
- {
- SendLeaveMessage(playerid, LEAVETYPE_KICK);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], MINUTES_5, playerid);
- }
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(gInfo[ ENABLED ] == true)
- {
- pInfo[ playerid ][ TimesDied ]++;
- if(pInfo[ playerid ][ TimesDied ] > 2)
- {
- pInfo[ playerid ][ TimesDied ] = 0, pInfo[ playerid ][ DeathWarns ]++, pInfo[ playerid ][ TotalWarns ]++;
- if(pInfo[ playerid ][ DeathWarns ] >= gInfo[ MAX_DEATH_WARNS ])
- {
- SendLeaveMessage(playerid, LEAVETYPE_CHEAT);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], HOURS_1, playerid, LEAVETYPE_CHEAT);
- }
- format(pInfo[ playerid ][ LastDetection ], 10, "Fake-Kill");
- }
- }
- if(gInfo[ DESYNC ] == true)
- {
- if(pInfo[ playerid ][ TotalWarns ] > 6)
- {
- return 0;
- }
- }
- return 1;
- }
- public OnPlayerCommandReceived(playerid, cmdtext[])
- {
- if(gInfo[ ENABLED ] == true)
- {
- if(gInfo[ USE_RCON2 ] == true)
- {
- if(IsPlayerAdmin(playerid) && pInfo[ playerid ][ RCONAdmin ] == false)
- {
- return 0;
- }
- }
- else if(pInfo[ playerid ][ LoggedIn ] == false)
- {
- return 0;
- }
- if(strfind(".", cmdtext, true))
- {
- new
- dots,
- numbers,
- colons
- ;
- for(new i; i < strlen(cmdtext); i++)
- {
- if(cmdtext[i] == '.')
- {
- dots++;
- }
- else if(cmdtext[i] <= '9' || cmdtext[i] >= '0')
- {
- numbers++;
- }
- else if(cmdtext[i] == ':')
- {
- colons++;
- }
- else continue;
- }
- if(dots == 3 && colons >= 0 && numbers >= 6)
- {
- format(pInfo[ playerid ][ LastDetection ], 15, "Advertisement");
- pInfo[ playerid ][ TextWarns ]++, pInfo[ playerid ][ TotalWarns ]++;
- if(pInfo[ playerid ][ TextWarns ] < gInfo[ MAX_TEXT_WARNS ] )
- {
- return 0;
- }
- else
- {
- BlockIpAddressEx(pInfo[ playerid ][ IP ], MINUTES_30, playerid, LEAVETYPE_ADVERTISEMENT);
- SendLeaveMessage(playerid, LEAVETYPE_KICK);
- return 0;
- }
- }
- }
- }
- if(gInfo[ DESYNC ] == true)
- {
- if(pInfo[ playerid ][ TotalWarns ] > 6)
- {
- return 0;
- }
- }
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(gInfo[ ENABLED ] == true)// && gInfo[ USE_RCON2 ] == true)
- {
- if(gInfo[ USE_RCON2 ] == true)
- {
- if(IsPlayerAdmin(playerid) && pInfo[ playerid ][ RCONAdmin ] == false)
- {
- return 0;
- }
- }
- else if(pInfo[ playerid ][ LoggedIn ] == false)
- {
- return 0;
- }
- if(strfind(".", text, true))
- {
- new
- dots,
- numbers,
- colons
- ;
- for(new i; i < strlen(text); i++)
- {
- if(text[i] == '.')
- {
- dots++;
- }
- else if(text[i] <= '9' || text[i] >= '0')
- {
- numbers++;
- }
- else if(text[i] == ':')
- {
- colons++;
- }
- else continue;
- }
- if(dots == 3 && colons >= 0 && numbers >= 6)
- {
- format(pInfo[ playerid ][ LastDetection ], 15, "Advertisement");
- pInfo[ playerid ][ TextWarns ]++, pInfo[ playerid ][ TotalWarns ]++;
- if(pInfo[ playerid ][ TextWarns ] < gInfo[ MAX_TEXT_WARNS ] )
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}Advertising is not allowed!");
- }
- else
- {
- BlockIpAddressEx(pInfo[ playerid ][ IP ], MINUTES_30, playerid, LEAVETYPE_ADVERTISEMENT);
- SendLeaveMessage(playerid, LEAVETYPE_KICK);
- }
- return 0;
- }
- }
- }
- if(gInfo[ DESYNC ] == true)
- {
- if(pInfo[ playerid ][ TotalWarns ] > 6)
- {
- return 0;
- }
- }
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- if(strcmp(RCON_PASSWORD, "changeme"))
- {
- if(gInfo[ ENABLED ] == true)
- {
- if(!success)
- {
- foreach(Player, i)
- {
- if(strcmp(ip, pInfo[ i ][ IP ])) continue;
- else BlockIpAddressEx(ip, HOURS_1, i, LEAVETYPE_FAIL_LOGIN), SendLeaveMessage(i, LEAVETYPE_KICK);
- }
- }
- else
- {
- if(gInfo[ USE_RCON2 ] == true)
- {
- foreach(Player, i)
- {
- if(strcmp(ip, pInfo[ i ][ IP ])) continue;
- else ShowPlayerDialog(i, DIALOG_RCON, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}RCON Login", "{FFFFFF}You're required to enter the 2nd {72FA80}RCON Password{FFFFFF}.\nIf you fail to do so, you'll be kicked", "Accept", "Cancel");
- }
- }
- }
- }
- }
- else
- {
- foreach(Player, i)
- {
- if(strcmp(ip, pInfo[ i ][ IP ])) continue;
- else BlockIpAddressEx(ip, MINUTES_5, i, LEAVETYPE_KICK), SendLeaveMessage(i, LEAVETYPE_KICK), SendClientMessage(i, -1, "{72FA80}GAMEGUARD: {FFFFFF}RCON is disabled!");
- }
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_REQUESTANSWER:
- {
- if(response)
- {
- if(strcmp(pInfo[ playerid ][ sAnswer ], inputtext, false))
- {
- new
- string[ 228 ]
- ;
- pInfo[ playerid ][ DialogWarns ]++, pInfo[ playerid ][ TotalWarns ]++;
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}Invalid Secret Answer. (%d/%d)", pInfo[ playerid ][ DialogWarns ], gInfo[ MAX_DIALOG_WARNS ]);
- SendClientMessage(playerid, -1, string);
- if(pInfo[ playerid ][ DialogWarns ] < gInfo[ MAX_DIALOG_WARNS ])
- {
- format(string, sizeof( string ), "{FFFFFF}Your last login IP, and your current IP ( {72FA80}%s{FFFFFF} ) don't match!\nYou're requested to type in your answer of your secret question!\nQuestion: {72FA80}%s{FFFFFF}",
- pInfo[ playerid ][ IP ], pInfo[ playerid ][ sQuestion ]);
- ShowPlayerDialog(playerid, DIALOG_REQUESTANSWER, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}Invalid Secret Answer", string, "Accept", "Cancel");
- }
- else
- {
- SendLeaveMessage(playerid, LEAVETYPE_KICK);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], MINUTES_5, playerid);
- }
- }
- else
- {
- pInfo[ playerid ][ RequestAnswer ] = false;
- pInfo[ playerid ][ LoggedIn ] = true;
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}Secret Answer accepted!");
- }
- }
- else
- {
- SendLeaveMessage(playerid, LEAVETYPE_KICK);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], MINUTES_15, playerid);
- }
- }
- case DIALOG_RCON:
- {
- if(gInfo[ USE_RCON2 ] == true)
- {
- if(response)
- {
- if(strcmp(inputtext, RCON_PASSWORD))
- {
- new
- string[ 57 ]
- ;
- pInfo[ playerid ][ DialogWarns ]++, pInfo[ playerid ][ TotalWarns ]++;
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}Invalid RCON Password. (%d/%d)", pInfo[ playerid ][ DialogWarns ], gInfo[ MAX_DIALOG_WARNS ]);
- SendClientMessage(playerid, -1, string);
- if(pInfo[ playerid ][ DialogWarns ] < gInfo[ MAX_DIALOG_WARNS ])
- {
- ShowPlayerDialog(playerid, DIALOG_RCON, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}RCON Login", "{FFFFFF}You're required to enter the 2nd {72FA80}RCON Password{FFFFFF}.\nIf you fail to do so, you'll be kicked", "Accept", "Cancel");
- }
- else
- {
- SendLeaveMessage(playerid, LEAVETYPE_KICK);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], HOURS_1, playerid, LEAVETYPE_FAIL_LOGIN);
- }
- }
- else
- {
- pInfo[ playerid ][ RCONAdmin ] = true;
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}Password Accepted.");
- }
- }
- else
- {
- SendLeaveMessage(playerid, LEAVETYPE_KICK);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], HOURS_1, playerid, LEAVETYPE_FAIL_LOGIN);
- }
- }
- }
- case DIALOG_SETTINGS:
- {
- if(response)
- {
- new
- string[ 386 ]
- ;
- switch(listitem)
- {
- case 0:
- {
- if(strlen(pInfo[ playerid ][ sQuestion ]) >= 7)
- {
- format(string, sizeof(string), "{FFFFFF}Enter a new {72FA80}Secret Question {FFFFFF}below!\nYour current Secret Question is {72FA80}%s",
- pInfo[ playerid ][ sQuestion ]);
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Set up your {72FA80}Secret Question {FFFFFF}below!\n* Make sure you'll remember the question & the answer!");
- }
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_QUESTION, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}Secret Question", string, "Accept", "Back");
- }
- case 1:
- {
- if(strlen(pInfo[ playerid ][ sAnswer ]) >= 1)
- {
- format(string, sizeof(string), "{FFFFFF}Enter a new {72FA80}Secret Answer {FFFFFF}below!\nYour current Secret Answer is {72FA80}%s",
- pInfo[ playerid ][ sAnswer ]);
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Set up your {72FA80}Secret Answer {FFFFFF}below!\n* Make sure you'll remember the question & the answer!");
- }
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ANSWER, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}Secret Answer", string, "Accept", "Back");
- }
- case 2:
- {
- if(pInfo[ playerid ][ RCONAdmin ] == true)
- {
- format(string, sizeof(string), "{FFFFFF}Kick Delay: {72FA80}%d ms\n{FFFFFF}Max. Dialog Warnings: {72FA80}%d\n{FFFFFF}Max. Death Warnings: {72FA80}%d\n{FFFFFF}Max. Text Warnings: {72FA80}%d\n{FFFFFF}Max. State Warnings: {72FA80}%d\n{FFFFFF}Max. Shot Warnings: {72FA80}%d\n{FFFFFF}Max. Vehicle Warnings: {72FA80}%d\n{FFFFFF}2nd RCON: {72FA80}%s\n{FFFFFF}GameGuard: {72FA80}%s\n{FFFFFF}DeSync: {72FA80}%s",
- gInfo[ KICK_DELAY ], gInfo[ MAX_DIALOG_WARNS ], gInfo[ MAX_DEATH_WARNS ], gInfo[ MAX_TEXT_WARNS ], gInfo[ MAX_STATE_WARNS ], gInfo[ MAX_SHOT_WARNS ], gInfo[ MAX_VEHICLE_WARNS ], RCON2_STATUS(), GAMEGUARD_STATUS(), DESYNC_STATUS());
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Edit", "Back");
- }
- }
- case 3:
- {
- if(pInfo[ playerid ][ RCONAdmin ] == true)
- {
- new
- dstring[ 999 ], count
- ;
- foreach(Player, i)
- {
- if(strlen(pInfo[ i ][ LastDetection ]) <= 3 && pInfo[ i ][ TotalWarns ] <= 2)
- {
- continue;
- }
- else
- {
- count++;
- format(dstring, sizeof(dstring), "%s%s({72FA80}%d{FFFFFF}) | {72FA80}%s{FFFFFF} | {72FA80}%s {FFFFFF}({72FA80}%d total detections{FFFFFF})\n",
- dstring, pInfo[ i ][ Name ], i, pInfo[ i ][ IP ], pInfo[ i ][ LastDetection ], pInfo[ i ][ TotalWarns ]);
- }
- }
- if(count)
- {
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}Detected Players", dstring, "Edit", "Back");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}Detected Players", "Nobody has been detected.", "Edit", "Back");
- }
- }
- }
- }
- }
- }
- case DIALOG_SETTINGS_QUESTION:
- {
- new
- string[ 228 ]
- ;
- if(response)
- {
- if(strlen(inputtext) >= 8)
- {
- new
- Query[ 98 ]
- ;
- format(Query, sizeof(Query), "UPDATE users SET question = '%s' WHERE userid = %d", DB_Escape(inputtext), pInfo[ playerid ][ dbID ]);
- db_query(Database, Query);
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}Secret Question changed to {72FA80}%s", inputtext);
- SendClientMessage(playerid, -1, string);
- format(pInfo[ playerid ][ sQuestion ], 48, "%s", inputtext);
- if(strlen(pInfo[ playerid ][ sQuestion ]) > 0 && strlen(pInfo[ playerid ][ sAnswer ]) > 0)
- {
- pInfo[ playerid ][ QASetup ] = true;
- }
- if(strlen(pInfo[ playerid ][ sAnswer ]) >= 1)
- {
- format(string, sizeof(string), "{FFFFFF}Enter a new {72FA80}Secret Answer {FFFFFF}below!\nYour current Secret Answer is {72FA80}%s",
- pInfo[ playerid ][ sAnswer ]);
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Set up your {72FA80}Secret Answer {FFFFFF}below!\n* Make sure you'll remember the question & the answer!");
- }
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ANSWER, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}Secret Answer", string, "Accept", "Back");
- }
- else
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}The Question must have at-least 8 characters!");
- if(pInfo[ playerid ][ RCONAdmin ] == false)
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s\n{FFFFFF}GameGuard Settings\nDetected Players",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- ShowPlayerDialog(playerid, DIALOG_SETTINGS, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}Account Settings", string, "Select", "Close");
- }
- }
- else
- {
- if(pInfo[ playerid ][ RCONAdmin ] == false)
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s\n{FFFFFF}GameGuard Settings\nDetected Players",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- ShowPlayerDialog(playerid, DIALOG_SETTINGS, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}Account Settings", string, "Select", "Close");
- }
- }
- case DIALOG_SETTINGS_ANSWER:
- {
- new
- string[ 228 ]
- ;
- if(response)
- {
- if(strlen(inputtext) >= 1)
- {
- new
- Query[ 98 ]
- ;
- format(Query, sizeof(Query), "UPDATE users SET answer = '%s' WHERE userid = %d", DB_Escape(inputtext), pInfo[ playerid ][ dbID ]);
- db_query(Database, Query);
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}Secret Answer changed to {72FA80}%s", inputtext);
- SendClientMessage(playerid, -1, string);
- format(pInfo[ playerid ][ sAnswer ], 48, "%s", inputtext);
- if(strlen(pInfo[ playerid ][ sQuestion ]) > 0 && strlen(pInfo[ playerid ][ sAnswer ]) > 0)
- {
- pInfo[ playerid ][ QASetup ] = true;
- }
- if(pInfo[ playerid ][ RCONAdmin ] == false)
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s\n{FFFFFF}GameGuard Settings\nDetected Players",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- ShowPlayerDialog(playerid, DIALOG_SETTINGS, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}Account Settings", string, "Select", "Close");
- }
- else
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}The Answer must have at-least 1 character!");
- if(pInfo[ playerid ][ RCONAdmin ] == false)
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s\n{FFFFFF}GameGuard Settings\nDetected Players",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- ShowPlayerDialog(playerid, DIALOG_SETTINGS, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}Account Settings", string, "Select", "Close");
- }
- }
- else
- {
- if(pInfo[ playerid ][ RCONAdmin ] == false)
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s\n{FFFFFF}GameGuard Settings\nDetected Players",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- ShowPlayerDialog(playerid, DIALOG_SETTINGS, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}Account Settings", string, "Select", "Close");
- }
- }
- case DIALOG_SETTINGS_ADMIN:
- {
- new
- string[ 386 ]
- ;
- if(response)
- {
- switch(listitem)
- {
- case 0:
- {
- pInfo[ playerid ][ EditingDialog ] = 1;
- format(string, sizeof(string), "{FFFFFF}Type in a new value for the {72FA80}kick delay\n{FFFFFF}The current delay is: {72FA80}%d ms",
- gInfo[ KICK_DELAY ]);
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN2, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Accept", "Back");
- }
- case 1:
- {
- pInfo[ playerid ][ EditingDialog ] = 2;
- format(string, sizeof(string), "{FFFFFF}Type in a new value for the {72FA80}Max. Dialog Warnings\n{FFFFFF}The current value is: {72FA80}%d",
- gInfo[ MAX_DIALOG_WARNS ]);
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN2, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Accept", "Back");
- }
- case 2:
- {
- pInfo[ playerid ][ EditingDialog ] = 3;
- format(string, sizeof(string), "{FFFFFF}Type in a new value for the {72FA80}Max. Death Warnings\n{FFFFFF}The current value is: {72FA80}%d",
- gInfo[ MAX_DEATH_WARNS ]);
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN2, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Accept", "Back");
- }
- case 3:
- {
- pInfo[ playerid ][ EditingDialog ] = 4;
- format(string, sizeof(string), "{FFFFFF}Type in a new value for the {72FA80}Max. Text Warnings\n{FFFFFF}The current value is: {72FA80}%d",
- gInfo[ MAX_TEXT_WARNS ]);
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN2, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Accept", "Back");
- }
- case 4:
- {
- pInfo[ playerid ][ EditingDialog ] = 5;
- format(string, sizeof(string), "{FFFFFF}Type in a new value for the {72FA80}Max. State Warnings\n{FFFFFF}The current value is: {72FA80}%d",
- gInfo[ MAX_STATE_WARNS ]);
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN2, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Accept", "Back");
- }
- case 5:
- {
- pInfo[ playerid ][ EditingDialog ] = 6;
- format(string, sizeof(string), "{FFFFFF}Type in a new value for the {72FA80}Max. Shot Warnings\n{FFFFFF}The current value is: {72FA80}%d",
- gInfo[ MAX_SHOT_WARNS ]);
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN2, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Accept", "Back");
- }
- case 6:
- {
- pInfo[ playerid ][ EditingDialog ] = 7;
- format(string, sizeof(string), "{FFFFFF}Type in a new value for the {72FA80}Max. Vehicle Warnings\n{FFFFFF}The current value is: {72FA80}%d",
- gInfo[ MAX_VEHICLE_WARNS ]);
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN2, DIALOG_STYLE_INPUT, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Accept", "Back");
- }
- case 7:
- {
- if(gInfo[ USE_RCON2 ] == true)
- {
- gInfo[ USE_RCON2 ] = false;
- }
- else
- {
- gInfo[ USE_RCON2 ] = true;
- }
- format(string, sizeof(string), "{FFFFFF}Kick Delay: {72FA80}%d ms\n{FFFFFF}Max. Dialog Warnings: {72FA80}%d\n{FFFFFF}Max. Death Warnings: {72FA80}%d\n{FFFFFF}Max. Text Warnings: {72FA80}%d\n{FFFFFF}Max. State Warnings: {72FA80}%d\n{FFFFFF}Max. Shot Warnings: {72FA80}%d\n{FFFFFF}Max. Vehicle Warnings: {72FA80}%d\n{FFFFFF}2nd RCON: {72FA80}%s\n{FFFFFF}GameGuard: {72FA80}%s\n{FFFFFF}DeSync: {72FA80}%s",
- gInfo[ KICK_DELAY ], gInfo[ MAX_DIALOG_WARNS ], gInfo[ MAX_DEATH_WARNS ], gInfo[ MAX_TEXT_WARNS ], gInfo[ MAX_STATE_WARNS ], gInfo[ MAX_SHOT_WARNS ], gInfo[ MAX_VEHICLE_WARNS ], RCON2_STATUS(), GAMEGUARD_STATUS(), DESYNC_STATUS());
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Edit", "Back");
- }
- case 8:
- {
- if(gInfo[ ENABLED ] == true)
- {
- gInfo[ ENABLED ] = false;
- }
- else
- {
- gInfo[ ENABLED ] = true;
- gInfo[ DESYNC ] = false;
- }
- format(string, sizeof(string), "{FFFFFF}Kick Delay: {72FA80}%d ms\n{FFFFFF}Max. Dialog Warnings: {72FA80}%d\n{FFFFFF}Max. Death Warnings: {72FA80}%d\n{FFFFFF}Max. Text Warnings: {72FA80}%d\n{FFFFFF}Max. State Warnings: {72FA80}%d\n{FFFFFF}Max. Shot Warnings: {72FA80}%d\n{FFFFFF}Max. Vehicle Warnings: {72FA80}%d\n{FFFFFF}2nd RCON: {72FA80}%s\n{FFFFFF}GameGuard: {72FA80}%s\n{FFFFFF}DeSync: {72FA80}%s",
- gInfo[ KICK_DELAY ], gInfo[ MAX_DIALOG_WARNS ], gInfo[ MAX_DEATH_WARNS ], gInfo[ MAX_TEXT_WARNS ], gInfo[ MAX_STATE_WARNS ], gInfo[ MAX_SHOT_WARNS ], gInfo[ MAX_VEHICLE_WARNS ], RCON2_STATUS(), GAMEGUARD_STATUS(), DESYNC_STATUS());
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Edit", "Back");
- }
- case 9:
- {
- if(gInfo[ DESYNC ] == true)
- {
- gInfo[ DESYNC ] = false;
- }
- else
- {
- gInfo[ DESYNC ] = true;
- gInfo[ ENABLED ] = false;
- }
- format(string, sizeof(string), "{FFFFFF}Kick Delay: {72FA80}%d ms\n{FFFFFF}Max. Dialog Warnings: {72FA80}%d\n{FFFFFF}Max. Death Warnings: {72FA80}%d\n{FFFFFF}Max. Text Warnings: {72FA80}%d\n{FFFFFF}Max. State Warnings: {72FA80}%d\n{FFFFFF}Max. Shot Warnings: {72FA80}%d\n{FFFFFF}Max. Vehicle Warnings: {72FA80}%d\n{FFFFFF}2nd RCON: {72FA80}%s\n{FFFFFF}GameGuard: {72FA80}%s\n{FFFFFF}DeSync: {72FA80}%s",
- gInfo[ KICK_DELAY ], gInfo[ MAX_DIALOG_WARNS ], gInfo[ MAX_DEATH_WARNS ], gInfo[ MAX_TEXT_WARNS ], gInfo[ MAX_STATE_WARNS ], gInfo[ MAX_SHOT_WARNS ], gInfo[ MAX_VEHICLE_WARNS ], RCON2_STATUS(), GAMEGUARD_STATUS(), DESYNC_STATUS());
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Edit", "Back");
- }
- }
- }
- else
- {
- if(pInfo[ playerid ][ RCONAdmin ] == false)
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s\n{FFFFFF}GameGuard Settings\nDetected Players",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- }
- ShowPlayerDialog(playerid, DIALOG_SETTINGS, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}Account Settings", string, "Select", "Close");
- }
- }
- case DIALOG_SETTINGS_ADMIN2:
- {
- new
- string[ 366 ]
- ;
- if(response)
- {
- switch(pInfo[ playerid ][ EditingDialog ])
- {
- case 1:
- {
- if(strval(inputtext) < 100 || strval(inputtext) > 500)
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}The time must be between 100ms and 500ms!");
- }
- else
- {
- gInfo[ KICK_DELAY ] = strval(inputtext);
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}You've set the Kick Delay to %d ms!", gInfo[ KICK_DELAY ]);
- SendClientMessage(playerid, -1, string);
- }
- }
- case 2:
- {
- if(strval(inputtext) < 3 || strval(inputtext) > 10)
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}The value must be between 3 and 10!");
- }
- else
- {
- gInfo[ MAX_DIALOG_WARNS ] = strval(inputtext);
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}You've set the Max. Dialog Warnings to %d!", gInfo[ MAX_DIALOG_WARNS ]);
- SendClientMessage(playerid, -1, string);
- }
- }
- case 3:
- {
- if(strval(inputtext) < 5 || strval(inputtext) > 15)
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}The value must be between 5 and 15!");
- }
- else
- {
- gInfo[ MAX_DEATH_WARNS ] = strval(inputtext);
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}You've set the Max. Death Warnings to %d!", gInfo[ MAX_DEATH_WARNS ]);
- SendClientMessage(playerid, -1, string);
- }
- }
- case 4:
- {
- if(strval(inputtext) < 5 || strval(inputtext) > 10)
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}The value must be between 5 and 10!");
- }
- else
- {
- gInfo[ MAX_TEXT_WARNS ] = strval(inputtext);
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}You've set the Max. Text Warnings to %d!", gInfo[ MAX_TEXT_WARNS ]);
- SendClientMessage(playerid, -1, string);
- }
- }
- case 5:
- {
- if(strval(inputtext) < 5 || strval(inputtext) > 15)
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}The value must be between 5 and 15!");
- }
- else
- {
- gInfo[ MAX_STATE_WARNS ] = strval(inputtext);
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}You've set the Max. State Warnings to %d!", gInfo[ MAX_STATE_WARNS ]);
- SendClientMessage(playerid, -1, string);
- }
- }
- case 6:
- {
- if(strval(inputtext) < 5 || strval(inputtext) > 15)
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}The value must be between 5 and 15!");
- }
- else
- {
- gInfo[ MAX_SHOT_WARNS ] = strval(inputtext);
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}You've set the Max. Shot Warnings to %d!", gInfo[ MAX_SHOT_WARNS ]);
- SendClientMessage(playerid, -1, string);
- }
- }
- case 7:
- {
- if(strval(inputtext) < 5 || strval(inputtext) > 10)
- {
- SendClientMessage(playerid, -1, "{72FA80}GAMEGUARD: {FFFFFF}The value must be between 5 and 10!");
- }
- else
- {
- gInfo[ MAX_VEHICLE_WARNS ] = strval(inputtext);
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}You've set the Max. Vehicle Warnings to %d!", gInfo[ MAX_VEHICLE_WARNS ]);
- SendClientMessage(playerid, -1, string);
- }
- }
- }
- format(string, sizeof(string), "{FFFFFF}Kick Delay: {72FA80}%d ms\n{FFFFFF}Max. Dialog Warnings: {72FA80}%d\n{FFFFFF}Max. Death Warnings: {72FA80}%d\n{FFFFFF}Max. Text Warnings: {72FA80}%d\n{FFFFFF}Max. State Warnings: {72FA80}%d\n{FFFFFF}Max. Shot Warnings: {72FA80}%d\n{FFFFFF}Max. Vehicle Warnings: {72FA80}%d\n{FFFFFF}2nd RCON: {72FA80}%s\n{FFFFFF}GameGuard: {72FA80}%s\n{FFFFFF}DeSync: {72FA80}%s",
- gInfo[ KICK_DELAY ], gInfo[ MAX_DIALOG_WARNS ], gInfo[ MAX_DEATH_WARNS ], gInfo[ MAX_TEXT_WARNS ], gInfo[ MAX_STATE_WARNS ], gInfo[ MAX_SHOT_WARNS ], gInfo[ MAX_VEHICLE_WARNS ], RCON2_STATUS(), GAMEGUARD_STATUS(), DESYNC_STATUS());
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Edit", "Back");
- pInfo[ playerid ][ EditingDialog ] = 0;
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Kick Delay: {72FA80}%d ms\n{FFFFFF}Max. Dialog Warnings: {72FA80}%d\n{FFFFFF}Max. Death Warnings: {72FA80}%d\n{FFFFFF}Max. Text Warnings: {72FA80}%d\n{FFFFFF}Max. State Warnings: {72FA80}%d\n{FFFFFF}Max. Shot Warnings: {72FA80}%d\n{FFFFFF}Max. Vehicle Warnings: {72FA80}%d\n{FFFFFF}2nd RCON: {72FA80}%s\n{FFFFFF}GameGuard: {72FA80}%s\n{FFFFFF}DeSync: {72FA80}%s",
- gInfo[ KICK_DELAY ], gInfo[ MAX_DIALOG_WARNS ], gInfo[ MAX_DEATH_WARNS ], gInfo[ MAX_TEXT_WARNS ], gInfo[ MAX_STATE_WARNS ], gInfo[ MAX_SHOT_WARNS ], gInfo[ MAX_VEHICLE_WARNS ], RCON2_STATUS(), GAMEGUARD_STATUS(), DESYNC_STATUS());
- ShowPlayerDialog(playerid, DIALOG_SETTINGS_ADMIN, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}GameGuard Settings", string, "Edit", "Back");
- }
- }
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(gInfo[ ENABLED ] == true)
- {
- if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
- {
- new
- vID
- ;
- vID = GetPlayerVehicleID(playerid);
- if(vID != pInfo[ playerid ][ VehicleID ] && gettime()-pInfo[ playerid ][ LastEntered ] < 2)
- {
- format(pInfo[ playerid ][ LastDetection ], 9, "Car-Warp");
- pInfo[ playerid ][ StateWarns ]++, pInfo[ playerid ][ TotalWarns ]++;
- if(pInfo[ playerid ][ StateWarns ] >= gInfo[ MAX_STATE_WARNS ])
- {
- SendLeaveMessage(playerid, LEAVETYPE_CHEAT);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], HOURS_1, playerid, LEAVETYPE_CHEAT);
- }
- }
- pInfo[ playerid ][ VehicleID ] = vID;
- pInfo[ playerid ][ LastEntered ] = gettime();
- }
- }
- return 1;
- }
- public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
- {
- if(gInfo[ ENABLED ] == true)
- {
- if(weaponid != 38 && weaponid != 30 && weaponid != 31 && weaponid != 28 && weaponid != 32)
- {
- if(gettime() - pInfo[ playerid ][ LastShot ] <= 1)
- {
- pInfo[ playerid ][ TimesShot ]++;
- }
- else
- {
- pInfo[ playerid ][ TimesShot ] = 0;
- }
- if(pInfo[ playerid ][ TimesShot ] >= gInfo[ MAX_BULLETS ])
- {
- format(pInfo[ playerid ][ LastDetection ], 11, "Rapid-Fire");
- if(pInfo[ playerid ][ BulletsToDesync ] >= 1)
- {
- pInfo[ playerid ][ BulletsToDesync ]--;
- return 0;
- }
- else
- {
- pInfo[ playerid ][ BulletsToDesync ] = gInfo[ MAX_DESYNC_BULLETS ];
- return 0;
- /*pInfo[ playerid ][ ShotWarns ]++, pInfo[ playerid ][ TotalWarns ]++;
- if(pInfo[ playerid ][ ShotWarns ] >= gInfo[ MAX_SHOT_WARNS ])
- {
- SendLeaveMessage(playerid, LEAVETYPE_CHEAT);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], HOURS_1, playerid, LEAVETYPE_CHEAT);
- }*/
- }
- }
- pInfo[ playerid ][ LastShot ] = gettime();
- }
- if(hittype == BULLET_HIT_TYPE_PLAYER)
- {
- if(!IsPlayerInAnyVehicle(playerid) && !IsPlayerInAnyVehicle(hitid))
- {
- if(GetPlayerSurfingVehicleID(playerid) == INVALID_VEHICLE_ID && GetPlayerSurfingVehicleID(playerid) == INVALID_VEHICLE_ID)
- {
- new
- Float:fOriginX, Float:fOriginY, Float:fOriginZ,
- Float:fHitPosX, Float:fHitPosY, Float:fHitPosZ
- ;
- GetPlayerLastShotVectors(playerid, fOriginX, fOriginY, fOriginZ, fHitPosX, fHitPosY, fHitPosZ);
- if(!IsPlayerInRangeOfPoint(hitid, 3.0, fX, fY, fZ))
- {
- format(pInfo[ playerid ][ LastDetection ], 14, "Silent Aimbot");
- if(pInfo[ playerid ][ BulletsToDesync ] >= 1)
- {
- pInfo[ playerid ][ BulletsToDesync ]--;
- return 0;
- }
- else
- {
- pInfo[ playerid ][ BulletsToDesync ] = gInfo[ MAX_DESYNC_BULLETS ];
- return 0;
- }
- }
- }
- }
- }
- }
- if(gInfo[ DESYNC ] == true)
- {
- if(pInfo[ playerid ][ TotalWarns ] > 6)
- {
- return 0;
- }
- }
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- if(gInfo[ ENABLED ] == true)
- {
- if(GetPlayerInterior(playerid) == 0)
- {
- format(pInfo[ playerid ][ LastDetection ], 12, "Car modding");
- pInfo[ playerid ][ VehicleWarns ]++, pInfo[ playerid ][ TotalWarns ]++;
- if(pInfo[ playerid ][ VehicleWarns ] >= gInfo[ MAX_VEHICLE_WARNS ])
- {
- SendLeaveMessage(playerid, LEAVETYPE_CHEAT);
- BlockIpAddressEx(pInfo[ playerid ][ IP ], HOURS_1, playerid, LEAVETYPE_CHEAT);
- }
- return 0;
- }
- }
- if(gInfo[ DESYNC ] == true)
- {
- if(pInfo[ playerid ][ TotalWarns ] > 6)
- {
- return 0;
- }
- }
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- if(gInfo[ DESYNC ] == true)
- {
- if(pInfo[ playerid ][ TotalWarns ] > 6)
- {
- return 0;
- }
- }
- return 1;
- }
- CMD:settings(playerid, params[])
- {
- new
- string[ 228 ]
- ;
- if(pInfo[ playerid ][ RCONAdmin ] == false)
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- ShowPlayerDialog(playerid, DIALOG_SETTINGS, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}Account Settings", string, "Select", "Close");
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Secret Question - {72FA80}%s\n{FFFFFF}Secret Answer - {72FA80}%s\n{FFFFFF}GameGuard Settings\nDetected Players",
- pInfo[ playerid ][ sQuestion ], pInfo[ playerid ][ sAnswer ]);
- ShowPlayerDialog(playerid, DIALOG_SETTINGS, DIALOG_STYLE_LIST, "{72FA80}GAMEGUARD: {FFFFFF}Account Settings", string, "Select", "Close");
- }
- return 1;
- }
- CMD:test(playerid,params[])
- {
- RepairVehicle(GetPlayerVehicleID(playerid));
- SetVehicleVelocity(GetPlayerVehicleID(playerid),500,500,5);
- return 1;
- }
- DB_Escape(text[])
- {
- new
- ret[80* 2],
- ch,
- i,
- j
- ;
- while ((ch = text[i++]) && j < sizeof (ret))
- {
- if (ch == '\'')
- {
- if (j < sizeof (ret) - 2)
- {
- ret[j++] = '\'';
- ret[j++] = '\'';
- }
- }
- else if (j < sizeof (ret))
- {
- ret[j++] = ch;
- }
- else
- {
- j++;
- }
- }
- ret[sizeof (ret) - 1] = '\0';
- return ret;
- }
- SendLeaveMessage(playerid, leavetype = LEAVETYPE_KICK)
- {
- new
- string[ 108 ]
- ;
- switch(leavetype)
- {
- case LEAVETYPE_KICK:
- {
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}Player %s left the game ({72FA80}Kicked{FFFFFF})",
- pInfo[ playerid ][ Name ]);
- }
- case LEAVETYPE_EXPLOIT:
- {
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}Player %s left the game ({72FA80}Exploit Usage{FFFFFF})",
- pInfo[ playerid ][ Name ]);
- }
- case LEAVETYPE_CHEAT:
- {
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}Player %s left the game ({72FA80}Cheat Usage{FFFFFF})",
- pInfo[ playerid ][ Name ]);
- }
- case LEAVETYPE_UNTRUSTED:
- {
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}Player %s left the game ({72FA80}Untrusted{FFFFFF})",
- pInfo[ playerid ][ Name ]);
- }
- case LEAVETYPE_BANNED:
- {
- format(string, sizeof(string), "{72FA80}GAMEGUARD: {FFFFFF}Player %s left the game ({72FA80}Banned{FFFFFF})",
- pInfo[ playerid ][ Name ]);
- }
- }
- SendClientMessageToAll(-1, string);
- }
- BlockIpAddressEx(ip[], blocktime, playerid = INVALID_PLAYER_ID, blocktype = LEAVETYPE_BANNED)
- {
- pInfo[ playerid ][ Untrusted ]++;
- BlockIpAddress(ip, blocktime);
- if(playerid != INVALID_PLAYER_ID)
- {
- if(pInfo[ playerid ][ Untrusted ] >= gInfo[ MAX_UNTRUSTED_WARNS ])
- {
- switch(blocktype)
- {
- case LEAVETYPE_EXPLOIT: Ban_(playerid, "Exploit Infraction");
- case LEAVETYPE_CHEAT: Ban_(playerid, "Cheat Infraction");
- case LEAVETYPE_UNTRUSTED: Ban_(playerid, "Untrusted Account");
- case LEAVETYPE_ADVERTISEMENT: Ban_(playerid, "Advertising");
- case LEAVETYPE_FAIL_LOGIN: Ban_(playerid, "Failed RCON Login");
- }
- }
- else
- {
- SetTimerEx("KickEx", gInfo[ KICK_DELAY ], false, "i", playerid);
- }
- }
- }
- Ban_(playerid, reason[])
- {
- new
- Query[ 224 ],
- day, month, year,
- second, minute, hour
- ;
- getdate(day, month, year);
- gettime(hour, minute, second);
- format(Query, sizeof( Query ), "INSERT INTO banned (bannedname, bannedip, banreason, date, time) VALUES ('%s', '%s', '%s', '%d/%d/%d', '%d:%d:%d')",
- DB_Escape(pInfo[ playerid ][ Name ]), pInfo[ playerid ][ IP ], DB_Escape(reason), day, month, year, hour, minute, second);
- db_query(Database, Query);
- SetTimerEx("KickEx", gInfo[ KICK_DELAY ], false, "i", playerid);
- }
- RCON2_STATUS()
- {
- new
- status[ 9 ]
- ;
- switch(gInfo[ USE_RCON2 ])
- {
- case true:
- {
- status = "Enabled";
- }
- case false:
- {
- status = "Disabled";
- }
- }
- return status;
- }
- GAMEGUARD_STATUS()
- {
- new
- status[ 9 ]
- ;
- switch(gInfo[ ENABLED ])
- {
- case true:
- {
- status = "Enabled";
- }
- case false:
- {
- status = "Disabled";
- }
- }
- return status;
- }
- DESYNC_STATUS()
- {
- new
- status[ 9 ]
- ;
- switch(gInfo[ DESYNC ])
- {
- case true:
- {
- status = "Enabled";
- }
- case false:
- {
- status = "Disabled";
- }
- }
- return status;
- }
- forward KickEx(playerid);
- public KickEx(playerid)
- {
- Kick(playerid);
- return 1;
- }
- /*GetPlayerSpeed(playerid)
- {
- new Float:velocity[ 4 ];
- if(IsPlayerInAnyVehicle(playerid))
- {
- GetVehicleVelocity(GetPlayerVehicleID(playerid), velocity[ 0 ], velocity[ 1 ], velocity[ 2 ]);
- }
- else
- {
- GetPlayerVelocity(playerid, velocity[ 0 ], velocity[ 1 ], velocity[ 2 ]);
- }
- velocity[3] = floatsqroot(floatpower(floatabs(velocity[ 0 ]), 2.0) + floatpower(floatabs(velocity[ 1 ]), 2.0) + floatpower(floatabs(velocity[ 2 ]), 2.0)) * 181.03625;
- return floatround(velocity[ 3 ]);
- }
- forward SpeedCheck(playerid);
- public SpeedCheck(playerid)
- {
- if(pInfo[ playerid ][ LoggedIn ] == false) return 1;
- else if(gInfo[ ENABLED ] == false)
- {
- KillTimer(pInfo[ playerid ][ Timer ]);
- pInfo[ playerid ][ Timer ] = -1;
- }
- else
- {
- if(IsPlayerInAnyVehicle( playerid ))
- {
- if(GetPlayerSpeed( playerid ) >= 271)
- {
- new
- vehicleID,
- Float:velocity[ 3 ]
- ;
- vehicleID = GetPlayerVehicleID(playerid);
- GetVehicleVelocity(vehicleID, velocity[ 0 ], velocity[ 1 ], velocity[ 2 ]);
- do
- {
- SetVehicleVelocity(vehicleID, velocity[ 0 ]/2, velocity[ 1 ]/2, velocity[ 2 ]/2);
- }
- while(GetPlayerSpeed( playerid ) >= 271);
- }
- }
- }
- return 1;
- }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement