F1N4L_

FilterScript TK Admin SQLite

Apr 2nd, 2016
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 219.48 KB | None | 0 0
  1. /* ______________________________________
  2. |_______FILTERSCRIPT_TK_ADMIN________|
  3. |______________BY_F1N4L______________|http://forum.sa-mp.com/member.php?u=204784
  4. |_______________HASHED_______________|
  5. |_______Initialized__21_01_2016______|
  6. |_________Updated_02_04_2016_________|
  7. |____________v_0.3z_0.3.7____________|
  8. */
  9.  
  10. //==--==--====--==--====--==--==|INCLUDE|==--==--====--==--====--==--==//
  11. #include < a_samp > // By SA:MP Team
  12. #include < sscanf2 > // By Y_Less
  13. #include < foreach >
  14. #include < zcmd >
  15. native WP_Hash(buffer[], len, const str[]); // By Y_Less
  16. //==--==--====--==--====--==--==|MACRO|==--==--====--==--====--==--==//
  17. #if defined MAX_PLAYERS
  18. #undef MAX_PLAYERS
  19. #define MAX_PLAYERS 50
  20. #endif
  21.  
  22. #define function:%0(%1)\
  23. forward %0(%1);\
  24. public %0(%1)
  25.  
  26. #define LOG_ENABLED true
  27. #define _LOG_ "Logs/"
  28. //==--==--====--==--====--==--==|FORCE_REGISTER_LOGIN_TO_SPAWN|==--==--====--==--====--==--==//
  29. #define ADMIN_SPEC_TYPE_NONE 0
  30. #define ADMIN_SPEC_TYPE_PLAYER 1
  31. #define ADMIN_SPEC_TYPE_VEHICLE 2
  32. //==--==--====--==--====--==--==|MAX_IPS_CHECK|==--==--====--==--====--==--==//
  33. #define MAX_IPS_ENABLED true
  34. #define MAX_IPS 2
  35. //==--==--====--==--====--==--==|ANTI_ARMOUR_AND_HEALTH_HACK|==--==--====--==--====--==--==//
  36. #define ANTI_ARM_HEAL_ENABLED true
  37. #define MAX_HEALTH 99.5
  38. #define MAX_ARMOUR 99.5
  39. //==--==--====--==--====--==--==|ANTI_MONEY_HACK_ENABLED|==--==--====--==--====--==--==//
  40. #define ANTI_MONEY_ENABLED true
  41. //==--==--====--==--====--==--==|ADMIN_LEVEL_CHECK|==--==--====--==--====--==--==//
  42. #define LEVEL_HELPER 1
  43. #define LEVEL_MODERADOR 2
  44. #define LEVEL_ADMINISTRADOR 3
  45. #define LEVEL_OWNER 4
  46. //==--==--====--==--====--==--==|VIP_LEVEL_CHECK|==--==--====--==--====--==--==//
  47. #define VIP_BRONZE 1
  48. #define VIP_PRATA 2
  49. #define VIP_GOLD 3
  50. //==--==--====--==--====--==--==|DIALOG|==--==--====--==--====--==--==//
  51. #define DIALOG_LOGIN 1000
  52. #define DIALOG_REGISTER 1001
  53. #define DIALOG_PERGUNTA 1002
  54. #define DIALOG_RESPOSTA 1003
  55. #define DIALOG_RECUPERAR 1004
  56. #define DIALOG_ALTERAR 1005
  57. #define DIALOG_ALTERAR_SENHA 1006
  58. #define DIALOG_ALTERAR_RESPOSTA 1007
  59. #define DIALOG_RESETAR_STATUS 1008
  60. #define DIALOG_STATUS_VIP 1009
  61. #define DIALOG_STRCAT 1010
  62. #define DIALOG_BAN 1011
  63. #define DIALOG_ADM_CMDS 1012
  64. #define DIALOG_ADM_CMDS_1 1013
  65. #define DIALOG_ADM_CMDS_2 1014
  66. #define DIALOG_ADM_CMDS_3 1015
  67. #define DIALOG_ADM_CMDS_4 1016
  68. //==--==--====--==--====--==--==|USER_DATABASE|==--==--====--==--====--==--==//
  69. #define USER_DATABASE "Server.db"
  70. #define USER_TABLE "USERS"
  71. //==--==--====--==--====--==--==|VIP_DATABASE|==--==--====--==--====--==--==//
  72. #define VIP_DATABASE "Server.db"
  73. #define VIP_TABLE "VIPS"
  74. //==--==--====--==--====--==--==|VIP_DATABASE|==--==--====--==--====--==--==//
  75. #define BAN_DATABASE "Server.db"
  76. #define BAN_TABLE "BANIMENTOS"
  77. //==--==--====--==--====--==--==|COLOR|==--==--====--==--====--==--==//
  78. #define COR_AVISO 0xFFFF66FF
  79. #define COR_ERRO 0xFF0000FF
  80. #define COR_MENSAGEM 0xFF9933FF
  81. #define COR_CHAT 0xCCFF33FF
  82. //==--==--====--==--====--==--==|ENUM|==--==--====--==--====--==--==//
  83. enum pInfo
  84. {
  85. pID,
  86. pNOME[MAX_PLAYER_NAME],
  87. pSENHA[129],
  88. pREGISTRO[40],
  89. Float:pPOS[3],
  90. Float:pANGULO,
  91. pSKIN,
  92. pDINHEIRO,
  93. pSCORE,
  94. pADMIN,
  95. pMATOU,
  96. pMORREU,
  97. pLOGINS,
  98. pKICKS,
  99. pDIAS,
  100. pHORAS,
  101. pMINUTOS,
  102. pSEGUNDOS,
  103. pAVISO,
  104. pPRESO,
  105. pTEMPOPRESO,
  106. pCALADO,
  107. pTEMPOCALADO,
  108. pCMDCALADO,
  109. pTEMPOCMDCALADO,
  110. pPERGUNTA[30],
  111. pRESPOSTA[129],
  112. pEMAIL[40],
  113.  
  114. pVIP[MAX_PLAYERS],
  115. pTIMEVIP[MAX_PLAYERS],
  116. pRECEIVEDTIME[MAX_PLAYERS],
  117.  
  118. pSPECID,
  119. pSPECTYPE,
  120.  
  121. bool:pLOGADO,
  122. bool:pALTERARDADOS
  123. };
  124. //==--==--====--==--====--==--==|VARIABLE|==--==--====--==--====--==--==//
  125. new
  126. USER[MAX_PLAYERS][pInfo]
  127. ;
  128. new
  129. Float:pSPECPOS[MAX_PLAYERS][4],
  130. SpecInt[MAX_PLAYERS][2]
  131. ;
  132. new
  133. DB:User_Database,
  134. DB:VIP_Database,
  135. DB:Ban_Database
  136. ;
  137. new
  138. UpdatePlayerTime[MAX_PLAYERS],
  139. MoneyCheckTime[MAX_PLAYERS],
  140. PlayerCheckInJailTime[MAX_PLAYERS],
  141. CheckHealthArmourTime[MAX_PLAYERS],
  142. CheckPlayerVIP[MAX_PLAYERS],
  143. LoadInfoFromPlayer[MAX_PLAYERS],
  144. SaveDataPlayer[MAX_PLAYERS]
  145. ;
  146. new
  147. bool:CarregarDados[MAX_PLAYERS]
  148. ;
  149. new
  150. bool:pGOD[MAX_PLAYERS]
  151. ;
  152. new
  153. bool:Relogando[MAX_PLAYERS],
  154. RelogarIP[MAX_PLAYERS][20]
  155. ;
  156. new
  157. bool:IsPlayerSpawned[MAX_PLAYERS]
  158. ;
  159. new
  160. VEICULO_SERVER[MAX_PLAYERS]
  161. ;
  162. new
  163. PlayerText:Background[MAX_PLAYERS],
  164. PlayerText:Boas_Vindas[MAX_PLAYERS],
  165. PlayerText:Server_Name[MAX_PLAYERS],
  166. PlayerText:BTN_REGISTER[MAX_PLAYERS],
  167. PlayerText:BTN_LOGIN[MAX_PLAYERS]
  168. ;
  169. new
  170. LogginsFail[MAX_PLAYERS]
  171. ;
  172. new
  173. bool:ChangePass[MAX_PLAYERS],
  174. bool:ChangeAnswer[MAX_PLAYERS],
  175. bool:Changed[MAX_PLAYERS]
  176. ;
  177. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  178. public OnFilterScriptInit()
  179. {
  180. print("_____________FS_TK_ADMIN_SYSTEM_CARREGADO_COM_SUCESSO_____________");
  181.  
  182. AddPlayerClass(26, 1544.4708, -1353.3890, 329.4742, 0.0, 0, 0, 0, 0, 0, 0);
  183. AddPlayerClass(249, 1544.4708, -1353.3890, 329.4742, 0.0, 0, 0, 0, 0, 0, 0);
  184. AddPlayerClass(200, 1544.4708, -1353.3890, 329.4742, 0.0, 0, 0, 0, 0, 0, 0);
  185.  
  186. new
  187. STRCAT_USER[1000+800],
  188. STRCAT_VIP[400],
  189. BAN_STR[500],
  190. ContarSQL,
  191. DBResult: Resultado
  192. ;
  193.  
  194. User_Database = db_open(USER_DATABASE);
  195. strcat(STRCAT_USER, "CREATE TABLE IF NOT EXISTS `"USER_TABLE"` (");
  196. strcat(STRCAT_USER, "`ID` INTEGER PRIMARY KEY AUTOINCREMENT,");
  197. strcat(STRCAT_USER, "`NOME` TEXT DEFAULT 'N/A',");
  198. strcat(STRCAT_USER, "`SENHA` TEXT DEFAULT 'N/A',");
  199. strcat(STRCAT_USER, "`REGISTRO` TEXT DEFAULT '00/00/00 - 00:00:00',");
  200. strcat(STRCAT_USER, "`EMAIL` TEXT DEFAULT 'N/A',");
  201. strcat(STRCAT_USER, "`POS X` FLOAT DEFAULT '0.0',");
  202. strcat(STRCAT_USER, "`POS Y` FLOAT DEFAULT '0.0',");
  203. strcat(STRCAT_USER, "`POS Z` FLOAT DEFAULT '0.0',");
  204. strcat(STRCAT_USER, "`ANGULO` FLOAT DEFAULT '0.0',");
  205. strcat(STRCAT_USER, "`SKIN` NUMERIC DEFAULT '0',");
  206. strcat(STRCAT_USER, "`DINHEIRO` NUMERIC DEFAULT '0',");
  207. strcat(STRCAT_USER, "`SCORE` NUMERIC DEFAULT '0',");
  208. strcat(STRCAT_USER, "`ADMIN` NUMERIC DEFAULT '0',");
  209. strcat(STRCAT_USER, "`LOGINS` NUMERIC DEFAULT '0',");
  210. strcat(STRCAT_USER, "`KICKS` NUMERIC DEFAULT '0',");
  211. strcat(STRCAT_USER, "`MATOU` NUMERIC DEFAULT '0',");
  212. strcat(STRCAT_USER, "`MORREU` NUMERIC DEFAULT '0',");
  213. strcat(STRCAT_USER, "`AVISOS` NUMERIC DEFAULT '0',");
  214. strcat(STRCAT_USER, "`PRESO` NUMERIC DEFAULT '0',");
  215. strcat(STRCAT_USER, "`TEMPO PRESO` NUMERIC DEFAULT '0',");
  216. strcat(STRCAT_USER, "`CALADO` NUMERIC DEFAULT '0',");
  217. strcat(STRCAT_USER, "`TEMPO CALADO` NUMERIC DEFAULT '0',");
  218. strcat(STRCAT_USER, "`CMD CALADO` NUMERIC DEFAULT '0',");
  219. strcat(STRCAT_USER, "`TEMPO CMD CALADO` NUMERIC DEFAULT '0',");
  220. strcat(STRCAT_USER, "`PERGUNTA` TEXT DEFAULT 'N/A',");
  221. strcat(STRCAT_USER, "`RESPOSTA` TEXT DEFAULT 'N/A',");
  222. strcat(STRCAT_USER, "`DIAS` NUMERIC DEFAULT '0',");
  223. strcat(STRCAT_USER, "`HORAS` NUMERIC DEFAULT '0',");
  224. strcat(STRCAT_USER, "`MINUTOS` NUMERIC DEFAULT '0',");
  225. strcat(STRCAT_USER, "`SEGUNDOS` NUMERIC DEFAULT '0')");
  226. db_free_result(db_query(User_Database, STRCAT_USER));
  227.  
  228. VIP_Database = db_open(VIP_DATABASE);
  229. strcat(STRCAT_VIP, "CREATE TABLE IF NOT EXISTS `"VIP_TABLE"` (");
  230. strcat(STRCAT_VIP, "`ID` INTEGER PRIMARY KEY AUTOINCREMENT,");
  231. strcat(STRCAT_VIP, "`NOME` TEXT DEFAULT 'N/A',");
  232. strcat(STRCAT_VIP, "`VIP` NUMERIC DEFAULT '0',");
  233. strcat(STRCAT_VIP, "`GETTIME` NUMERIC DEFAULT '0',");
  234. strcat(STRCAT_VIP, "`TEMPO` TEXT DEFAULT 'N/A')");
  235. db_free_result(db_query(User_Database, STRCAT_VIP));
  236.  
  237. Ban_Database = db_open(BAN_DATABASE);
  238. strcat(BAN_STR, "CREATE TABLE IF NOT EXISTS `"BAN_TABLE"` (");
  239. strcat(BAN_STR, "`ID` INTEGER PRIMARY KEY AUTOINCREMENT,");
  240. strcat(BAN_STR, "`NOME` TEXT DEFAULT 'N/A',");
  241. strcat(BAN_STR, "`IP` TEXT DEFAULT '0.0.0.0',");
  242. strcat(BAN_STR, "`BANIDO POR` TEXT DEFAULT 'N/A',");
  243. strcat(BAN_STR, "`DATA` TEXT DEFAULT 'N/A',");
  244. strcat(BAN_STR, "`MOTIVO` TEXT DEFAULT 'N/A',");
  245. strcat(BAN_STR, "`GETTIME` NUMERIC DEFAULT '0',");
  246. strcat(BAN_STR, "`TEMPO` TEXT DEFAULT 'N/A')");
  247. db_free_result(db_query(Ban_Database, BAN_STR));
  248.  
  249. Resultado = db_query(User_Database, "SELECT * FROM `"USER_TABLE"`");
  250. ContarSQL = db_num_rows(Resultado);
  251. db_free_result(Resultado);
  252.  
  253. printf("\n _____________Usuários_Registrados_____________", ContarSQL);
  254. printf(" %i Usuários registrados atualmente", ContarSQL);
  255.  
  256. Resultado = db_query(VIP_Database, "SELECT * FROM `"VIP_TABLE"`");
  257. ContarSQL = db_num_rows(Resultado);
  258. db_free_result(Resultado);
  259.  
  260. printf("\n _____________Usuários_VIP_____________", ContarSQL);
  261. printf(" %i Usuários VIP atualmente", ContarSQL);
  262.  
  263. Resultado = db_query(VIP_Database, "SELECT * FROM `"BAN_TABLE"`");
  264. ContarSQL = db_num_rows(Resultado);
  265. db_free_result(Resultado);
  266.  
  267. printf("\n _____________Usuários_Banidos_____________", ContarSQL);
  268. printf(" %i Usuários banidos atualmente", ContarSQL);
  269.  
  270. ServerConfig();
  271.  
  272. SetTimer("PunishmentHandle", 1000, true);
  273. SetTimer("CheckTimeVIP", 1000, true);
  274.  
  275. if(!fexist("Logs/"))
  276. return print("\n\n______________________________________________________________\nERRO:\nPasta 'Logs' não existe. Crie-a para salvar os logs.\n______________________________________________________________\n\n"), SendRconCommand("EXIT");
  277.  
  278. AMX_();
  279.  
  280. return 1;
  281. }
  282. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  283. public OnFilterScriptExit()
  284. {
  285. foreach(new i : Player)
  286. {
  287. OnPlayerDisconnect(i, 1);
  288.  
  289. if(USER[i][pLOGADO] == true)
  290. return SaveData(i);
  291.  
  292. DestroyVehicle(VEICULO_SERVER[i]);
  293. }
  294.  
  295. db_close(User_Database);
  296. db_close(VIP_Database);
  297. db_close(Ban_Database);
  298.  
  299. return 1;
  300. }
  301. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  302. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  303. {
  304. if(_:playertextid == INVALID_TEXT_DRAW) return CallLocalFunction("OnPlayerClickPlayerTextDraw", "ii", playerid, INVALID_TEXT_DRAW);
  305.  
  306. new
  307. Query_User[200],
  308. DBResult:Resultado
  309. ;
  310.  
  311. format(Query_User, sizeof(Query_User), "SELECT `SENHA` FROM `"USER_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", DB_Escape(GetName(playerid)));
  312. Resultado = db_query(User_Database, Query_User);
  313. if(db_num_rows(Resultado))
  314. {
  315. db_get_field_assoc(Resultado, "SENHA", USER[playerid][pSENHA], 129);
  316.  
  317. if(playertextid == BTN_LOGIN[playerid])
  318. {
  319. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "[»] Painel de Login", "[»] Bem Vindo novamente ao nosso servidor\nLogue-se para continuar de onde parou:", "LOGAR", "");
  320. CancelSelectTextDraw(playerid);
  321. }
  322. else if(playertextid == BTN_REGISTER[playerid])
  323. return SendClientMessage(playerid, COR_CHAT, "Você já está cadastrado em nosso banco de dados. Selecione LOGAR.");
  324. }
  325. else
  326. {
  327. if(playertextid == BTN_REGISTER[playerid])
  328. {
  329. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "[»] Painel de Registro", "[»] Bem Vindo ao nosso servidor\nRegistre-se para salvar seu dados:", "REGISTRAR", "SAIR");
  330. CancelSelectTextDraw(playerid);
  331. }
  332. else if(playertextid == BTN_LOGIN[playerid])
  333. return SendClientMessage(playerid, COR_CHAT, "Você não está cadastrado em nosso banco de dados. Selecione REGISTRAR.");
  334. }
  335. db_free_result(db_query(User_Database, Query_User));
  336. return 1;
  337. }
  338. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  339. public OnPlayerConnect(playerid)
  340. {
  341. for(new i; pInfo:i < pInfo; i++)
  342. USER[playerid][pInfo:i] = 0;
  343.  
  344. for(new i; i < 100; i++)
  345. SendClientMessage(playerid, -1, "");
  346.  
  347. new
  348. String[350],
  349. STRING[100],
  350. Strcat[500],
  351. GetTime,
  352. GetIp[30],
  353. Query_User[200],
  354. DBResult:Resultado
  355. ;
  356.  
  357. format(String,sizeof(String),"SELECT * FROM `"BAN_TABLE"` WHERE `IP` = '%s' OR `NOME` = '%s' COLLATE NOCASE", GetIP(playerid), GetName(playerid));
  358. Resultado = db_query(Ban_Database,String);
  359. if(db_num_rows(Resultado))
  360. {
  361. db_get_field_assoc(Resultado, "GETTIME", String, 40);
  362. GetTime = strval(String);
  363. if(GetTime > gettime())
  364. {
  365. format(String,sizeof(String), "NOME: %s\n", GetName(playerid));strcat(Strcat, String);
  366. db_get_field_assoc(Resultado, "IP", GetIp, 30);
  367. format(String,sizeof(String), "IP: %s\n", GetIp);strcat(Strcat, String);
  368. db_get_field_assoc(Resultado, "BANIDO POR", String, 30);
  369. format(String,sizeof(String), "BANIDO POR: %s\n", String);strcat(Strcat, String);
  370. db_get_field_assoc(Resultado, "MOTIVO", String, 40);
  371. format(String,sizeof(String), "MOTIVO: %s\n", String);strcat(Strcat, String);
  372. db_get_field_assoc(Resultado, "DATA", String, 40);
  373. format(String,sizeof(String), "DATA: %s\n", String);strcat(Strcat, String);
  374. db_get_field_assoc(Resultado, "TEMPO", String, 50);
  375. format(String,sizeof(String), "TEMPO: %s\n", String);strcat(Strcat, String);
  376. format(String,sizeof(String), "TEMPO RESTANTE: %s", ConvertTime(GetTime - gettime()));strcat(Strcat, String);
  377. ShowPlayerDialog(playerid, DIALOG_BAN, DIALOG_STYLE_MSGBOX, "Painel de Banimento:", Strcat, "SAIR","");
  378.  
  379. SetTimerEx("KickPlayer", 100, false, "i", playerid);
  380. }
  381. else if(GetTime < gettime())
  382. {
  383. format(String,sizeof(String),"DELETE FROM `"BAN_TABLE"` WHERE `NOME` = '%s'", GetName(playerid));
  384. Resultado = db_query(Ban_Database,String);
  385.  
  386. SendClientMessage(playerid, 0xFF0000FF, "[»] Sua conta foi desbanida.");
  387. }
  388. }
  389. db_free_result(db_query(Ban_Database, String));
  390.  
  391. #if MAX_IPS_ENABLED == true
  392. new
  393. oIP[16],
  394. msgIP[129],
  395. Contar_IP
  396. ;
  397.  
  398. foreach (new i : Player)
  399. {
  400. if(IsPlayerConnected(i))
  401. {
  402. GetPlayerIp(i, oIP, sizeof(oIP));
  403.  
  404. if(strcmp(GetIP(i), oIP, true) == 0)
  405. {
  406. Contar_IP++;
  407. if(Contar_IP > MAX_IPS)
  408. {
  409. BanEx(i, "BOT");
  410. return 1;
  411. }
  412.  
  413. format(msgIP, sizeof(msgIP), "NICK: '%s' - IP '%s' - Banido por exceder o número máximo de IP's", GetName(i), GetIP(i));
  414. #if LOG_ENABLED == true
  415. SaveLog("Max_IP.txt", msgIP);
  416. #endif
  417. }
  418. }
  419. }
  420. #endif
  421.  
  422. #if ANTI_ARM_HEAL_ENABLED == true
  423. SetPlayerHealth(playerid, 99.5);
  424. SetPlayerArmour(playerid, 99.5);
  425. #endif
  426.  
  427. format(STRING, sizeof(STRING),"{FFFAFA}[»] {00FF7F}%s {FFFAFA}entrou no servidor {00FF7F}Brasil Crime City!", GetName(playerid));
  428. SendClientMessageToAll(COR_AVISO, STRING);
  429.  
  430. UpdatePlayerTime[playerid] = SetTimerEx("UpdateTime",1000, true, "i", playerid);
  431. MoneyCheckTime[playerid] = SetTimerEx("MoneyCheck", 5000, true, "i", playerid);
  432. SaveDataPlayer[playerid] = SetTimerEx("SaveData", 5000, true, "i", playerid);
  433.  
  434. format(Query_User, sizeof(Query_User), "SELECT `SENHA`, `PERGUNTA`, `RESPOSTA` FROM `"USER_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", DB_Escape(GetName(playerid)));
  435. Resultado = db_query(User_Database, Query_User);
  436. if(db_num_rows(Resultado))
  437. {
  438. db_get_field_assoc(Resultado, "SENHA", USER[playerid][pSENHA], 129);
  439. db_get_field_assoc(Resultado, "PERGUNTA", USER[playerid][pPERGUNTA], 50);
  440. db_get_field_assoc(Resultado, "RESPOSTA", USER[playerid][pRESPOSTA], 129);
  441. }
  442. db_free_result(db_query(User_Database, Query_User));
  443.  
  444. return 1;
  445. }
  446. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  447. public OnPlayerDisconnect(playerid, reason)
  448. {
  449. SaveData(playerid);
  450.  
  451. if(USER[playerid][pPRESO] > 0)
  452. {
  453. new
  454. STRING[200]
  455. ;
  456.  
  457. format(STRING, sizeof(STRING), "UPDATE "USER_TABLE" SET `PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pPRESO] = 2, DB_Escape(GetName(playerid)));
  458. db_free_result(db_query(User_Database, STRING));
  459. format(STRING, sizeof(STRING), "UPDATE "USER_TABLE" SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pTEMPOPRESO] += 60, DB_Escape(GetName(playerid)));
  460. db_free_result(db_query(User_Database, STRING));
  461. }
  462.  
  463. KillTimer(UpdatePlayerTime[playerid]);
  464. KillTimer(MoneyCheckTime[playerid]);
  465. KillTimer(CheckHealthArmourTime[playerid]);
  466. KillTimer(PlayerCheckInJailTime[playerid]);
  467. KillTimer(LoadInfoFromPlayer[playerid]);
  468. KillTimer(CheckPlayerVIP[playerid]);
  469.  
  470. DestroyVehicle(VEICULO_SERVER[playerid]);
  471.  
  472. DestruirTD_Login(playerid);
  473.  
  474. if(Relogando[playerid] == true)
  475. {
  476. new
  477. STRING[30]
  478. ;
  479.  
  480. Relogando[playerid] = false;
  481.  
  482. format(STRING, sizeof(STRING), "unbanip %s", RelogarIP[playerid]);
  483. SendRconCommand(STRING);
  484. }
  485.  
  486. new STRING[60];
  487. switch(reason)
  488. {
  489. case 0: format(STRING,sizeof(STRING),"[»] %s saiu (NET DA XUXA).", GetName(playerid));
  490. case 1: format(STRING,sizeof(STRING),"[»] %s saiu (FOI CAGAR, JÁ VOLTA).", GetName(playerid));
  491. case 2: format(STRING,sizeof(STRING),"[»] %s saiu (SE FUDEU).", GetName(playerid));
  492. }
  493. SendClientMessageToAll(COR_AVISO, STRING);
  494.  
  495. for(new i; pInfo:i < pInfo; i++)
  496. USER[playerid][pInfo:i] = 0;
  497.  
  498. return 1;
  499. }
  500. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  501. public OnPlayerRequestClass(playerid,classid)
  502. {
  503. return SpawnPlayer(playerid);
  504. }
  505. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  506. public OnPlayerSpawn(playerid)
  507. {
  508. #if ANTI_ARM_HEAL_ENABLED == true
  509. SetPlayerHealth(playerid, 99.5);
  510. SetPlayerArmour(playerid, 99.5);
  511. #endif
  512.  
  513. IsPlayerSpawned[playerid] = true;
  514.  
  515. TogglePlayerControllable(playerid, 0);
  516.  
  517. Background[playerid] = CreatePlayerTextDraw(playerid, 311.0, -55.0, "_");
  518. PlayerTextDrawLetterSize(playerid, Background[playerid], -0.0, 60.0);
  519. PlayerTextDrawTextSize(playerid, Background[playerid], 0.0, 1000.0);
  520. PlayerTextDrawAlignment(playerid, Background[playerid], 2);
  521. PlayerTextDrawColor(playerid, Background[playerid], -1);
  522. PlayerTextDrawUseBox(playerid, Background[playerid], 1);
  523. PlayerTextDrawBoxColor(playerid, Background[playerid], 255);
  524. PlayerTextDrawBackgroundColor(playerid, Background[playerid], 255);
  525.  
  526. Boas_Vindas[playerid] = CreatePlayerTextDraw(playerid, 324.0, 113.0, "BEM-VINDO_AO_SERVIDOR");
  527. PlayerTextDrawLetterSize(playerid, Boas_Vindas[playerid], 0.809411, 3.058332);
  528. PlayerTextDrawAlignment(playerid, Boas_Vindas[playerid], 2);
  529. PlayerTextDrawColor(playerid, Boas_Vindas[playerid], -16252673);
  530. PlayerTextDrawSetShadow(playerid, Boas_Vindas[playerid], -144);
  531. PlayerTextDrawSetOutline(playerid, Boas_Vindas[playerid], 11);
  532. PlayerTextDrawBackgroundColor(playerid, Boas_Vindas[playerid], -16777157);
  533. PlayerTextDrawFont(playerid, Boas_Vindas[playerid], 2);
  534. PlayerTextDrawSetProportional(playerid, Boas_Vindas[playerid], 1);
  535. PlayerTextDrawSetShadow(playerid, Boas_Vindas[playerid], -144);
  536.  
  537. Server_Name[playerid] = CreatePlayerTextDraw(playerid, 324.0, 157.0, "BRASIL_CRIME_CITY_RPG");
  538. PlayerTextDrawLetterSize(playerid, Server_Name[playerid], 0.809411, 3.018332);
  539. PlayerTextDrawAlignment(playerid, Server_Name[playerid], 2);
  540. PlayerTextDrawColor(playerid, Server_Name[playerid], -16252673);
  541. PlayerTextDrawSetShadow(playerid, Server_Name[playerid], 119);
  542. PlayerTextDrawSetOutline(playerid, Server_Name[playerid], 3);
  543. PlayerTextDrawBackgroundColor(playerid, Server_Name[playerid], -63700936);
  544. PlayerTextDrawFont(playerid, Server_Name[playerid], 2);
  545. PlayerTextDrawSetProportional(playerid, Server_Name[playerid], 1);
  546. PlayerTextDrawSetShadow(playerid, Server_Name[playerid], 119);
  547.  
  548. BTN_REGISTER[playerid] = CreatePlayerTextDraw(playerid, 324.0, 226.0, "REGISTRAR");
  549. PlayerTextDrawTextSize(playerid, BTN_REGISTER[playerid], 20.0, 190.0);
  550. PlayerTextDrawLetterSize(playerid, BTN_REGISTER[playerid], 0.809411, 3.018332);
  551. PlayerTextDrawAlignment(playerid, BTN_REGISTER[playerid], 2);
  552. PlayerTextDrawColor(playerid, BTN_REGISTER[playerid], -16252673);
  553. PlayerTextDrawSetShadow(playerid, BTN_REGISTER[playerid], 119);
  554. PlayerTextDrawSetOutline(playerid, BTN_REGISTER[playerid], 3);
  555. PlayerTextDrawBackgroundColor(playerid, BTN_REGISTER[playerid], -16777165);
  556. PlayerTextDrawFont(playerid, BTN_REGISTER[playerid], 2);
  557. PlayerTextDrawSetProportional(playerid, BTN_REGISTER[playerid], 1);
  558. PlayerTextDrawSetShadow(playerid, BTN_REGISTER[playerid], 119);
  559. PlayerTextDrawSetSelectable(playerid, BTN_REGISTER[playerid], true);
  560.  
  561. BTN_LOGIN[playerid] = CreatePlayerTextDraw(playerid, 324.0, 260.0, "LOGAR");
  562. PlayerTextDrawTextSize(playerid, BTN_LOGIN[playerid], 20.0, 120.0);
  563. PlayerTextDrawLetterSize(playerid, BTN_LOGIN[playerid], 0.809411, 3.018332);
  564. PlayerTextDrawAlignment(playerid, BTN_LOGIN[playerid], 2);
  565. PlayerTextDrawColor(playerid, BTN_LOGIN[playerid], -16252673);
  566. PlayerTextDrawSetShadow(playerid, BTN_LOGIN[playerid], 119);
  567. PlayerTextDrawSetOutline(playerid, BTN_LOGIN[playerid], 3);
  568. PlayerTextDrawBackgroundColor(playerid, BTN_LOGIN[playerid], -16777165);
  569. PlayerTextDrawFont(playerid, BTN_LOGIN[playerid], 2);
  570. PlayerTextDrawSetProportional(playerid, BTN_LOGIN[playerid], 1);
  571. PlayerTextDrawSetShadow(playerid, BTN_LOGIN[playerid], 119);
  572. PlayerTextDrawSetSelectable(playerid, BTN_LOGIN[playerid], true);
  573.  
  574. if(USER[playerid][pLOGADO] == false)
  575. {
  576. SelectTextDraw(playerid, 0xFF6600FF);
  577. PlayerTextDrawShow(playerid, Background[playerid]);
  578. PlayerTextDrawShow(playerid, Boas_Vindas[playerid]);
  579. PlayerTextDrawShow(playerid, Server_Name[playerid]);
  580. PlayerTextDrawShow(playerid, BTN_REGISTER[playerid]);
  581. PlayerTextDrawShow(playerid, BTN_LOGIN[playerid]);
  582. }
  583. else
  584. {
  585. SendClientMessage(playerid, COR_AVISO, "[»] Atualizando informações. Aguarde...");
  586. LoadInfoFromPlayer[playerid] = SetTimerEx("LoadPlayerInfo", 3000, false, "i", playerid);
  587. CarregarDados[playerid] = true;
  588. }
  589.  
  590. return 1;
  591. }
  592. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  593. public OnPlayerDeath(playerid, killerid, reason)
  594. {
  595. new
  596. Query_User[200]
  597. ;
  598.  
  599. if(killerid != INVALID_PLAYER_ID)
  600. {
  601. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `MATOU` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[killerid][pMATOU] += 1, DB_Escape(GetName(killerid)));
  602. db_query(User_Database, Query_User);
  603. }
  604. else
  605. {
  606. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `MORREU` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pMORREU] += 1, DB_Escape(GetName(playerid)));
  607. db_query(User_Database, Query_User);
  608. }
  609.  
  610. return 1;
  611. }
  612. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  613. public OnPlayerText(playerid, text[])
  614. {
  615. new
  616. STRING[150]
  617. ;
  618.  
  619. if(USER[playerid][pCALADO] > 0 || USER[playerid][pTEMPOCALADO] > 0)
  620. {
  621. format(STRING, sizeof(STRING), "[»] Você está calado. Aguarde mais '%i' segundos.", USER[playerid][pTEMPOCALADO]);
  622. SendClientMessageToAll(COR_AVISO, STRING);
  623. return 0;
  624. }
  625. if(USER[playerid][pPRESO] > 0 || USER[playerid][pTEMPOPRESO] > 0)
  626. {
  627. format(STRING, sizeof(STRING), "[»] Você está preso, fale com as paredes. Aguarde mais '%i' segundos.", USER[playerid][pTEMPOPRESO]);
  628. SendClientMessageToAll(COR_AVISO, STRING);
  629. return 0;
  630. }
  631. if(USER[playerid][pCMDCALADO] > 0 || USER[playerid][pTEMPOCMDCALADO] > 0)
  632. {
  633. format(STRING, sizeof(STRING), "[»] Você está com os comandos bloqueados. Aguarde mais '%i' segundos.", USER[playerid][pTEMPOCMDCALADO]);
  634. SendClientMessageToAll(COR_AVISO, STRING);
  635. return 0;
  636. }
  637. if(CarregarDados[playerid] == true)
  638. {
  639. SendClientMessage(playerid, COR_AVISO, "[»] Aguarde o carregamento dos dados...");
  640. return 0;
  641. }
  642. if(text[0] == '#' && USER[playerid][pADMIN] > 0)
  643. {
  644. format(STRING, sizeof(STRING), "{006600}[ADM-CHAT] {00CC00}%s [ID: %i]: {FFFF99}%s", GetName(playerid), playerid, text);
  645. SendClientMessageToAll(COR_MENSAGEM, STRING);
  646. return 0;
  647. }
  648.  
  649. if(USER[playerid][pADMIN] > 0)
  650. format(STRING, sizeof(STRING), "{006600}[ADM-TK] {00CC00}%s: {FFFF99}%s", GetName(playerid), text);
  651. else
  652. format(STRING, sizeof(STRING), "{FFFF99}[»] {00CC00}%s [ID: %i]: {FFFF99}%s", GetName(playerid), playerid, text);
  653. SendClientMessageToAll(COR_CHAT, STRING);
  654.  
  655. return 0;
  656. }
  657. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  658. public OnPlayerCommandReceived(playerid, cmdtext[])
  659. {
  660. new
  661. STRING[100]
  662. ;
  663.  
  664. if(USER[playerid][pPRESO] > 0 || USER[playerid][pTEMPOPRESO] > 0)
  665. {
  666. format(STRING, sizeof(STRING), "[»] Você está preso, não pode digitar comandos. Aguarde mais '%i' segundos.", USER[playerid][pTEMPOPRESO]);
  667. SendClientMessage(playerid, COR_AVISO, STRING);
  668. return 0;
  669. }
  670. if(USER[playerid][pCMDCALADO] > 0 || USER[playerid][pTEMPOCMDCALADO] > 0)
  671. {
  672. format(STRING, sizeof(STRING), "[»] Seus comandos estão bloquedos. Aguarde mais '%i' segundos.", USER[playerid][pTEMPOPRESO]);
  673. SendClientMessage(playerid, COR_AVISO, STRING);
  674. return 0;
  675. }
  676. if(CarregarDados[playerid] == true)
  677. {
  678. SendClientMessage(playerid, COR_AVISO, "[»] Aguarde o carregamento dos dados...");
  679. return 0;
  680. }
  681.  
  682. return 1;
  683. }
  684. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  685. public OnPlayerCommandText(playerid, cmdtext[])
  686. {
  687.  
  688. return 0;
  689. }
  690. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  691. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  692. {
  693. if(dialogid == DIALOG_REGISTER)
  694. {
  695. if(response)
  696. {
  697. if(!IsValidChar(inputtext))
  698. {
  699. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "[»] Painel de Registro", "[»] Bem Vindo ao nosso servidor\nRegistre-se para salvar seu dados:", "REGISTRAR","SAIR");
  700. SendClientMessage(playerid, COR_CHAT, "[»] Utilize LETRAS e/ou NÚMEROS.");
  701. return 1;
  702. }
  703. if(!strlen(inputtext) || strlen(inputtext) < 8 || strlen(inputtext) > 20)
  704. {
  705. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "[»] Painel de Registro", "[»] Bem Vindo ao nosso servidor\nRegistre-se para salvar seu dados:", "REGISTRAR","SAIR");
  706. SendClientMessage(playerid, COR_CHAT, "[»] A senha deve ser entre 8-20.");
  707. return 1;
  708. }
  709.  
  710. new
  711. Query_User[800],
  712. HashPass[129],
  713. Registro[60],
  714. Dia, Mes, Ano,
  715. Hora, Minuto, Segundo
  716. ;
  717.  
  718. getdate(Ano, Mes, Dia);
  719. gettime(Hora, Minuto, Segundo);
  720.  
  721. format(Registro, sizeof(Registro), "%02i/%02i/%02i - %02i:%02i:%02i", Dia, Mes, Ano, Hora, Minuto, Segundo);
  722.  
  723. WP_Hash(HashPass, sizeof(HashPass), inputtext);
  724.  
  725. format(Query_User, sizeof(Query_User), "INSERT INTO `"USER_TABLE"` (`NOME`, `SENHA`, `REGISTRO`, `SKIN`)VALUES('%s', '%s', '%s', '26')", DB_Escape(GetName(playerid)), HashPass, Registro);
  726. db_query(User_Database, Query_User);
  727.  
  728. SendClientMessage(playerid, COR_CHAT, "[»] Sua conta foi criada com sucesso!");
  729.  
  730. ShowPlayerDialog(playerid, DIALOG_PERGUNTA, DIALOG_STYLE_INPUT, "[»] Painel de Pergunta", "[»] Para garantir a segurança da sua conta\nInsira uma pergunta de segurança:", "REGISTRAR","");
  731. SendClientMessage(playerid, COR_CHAT, "[»] Insira uma pergunta de segurança para sua conta.");
  732. }
  733. else Kick(playerid);
  734. }
  735. else if(dialogid == DIALOG_LOGIN)
  736. {
  737. if(response)
  738. {
  739. new
  740. STRING[129],
  741. HashPass[129]
  742. ;
  743.  
  744. WP_Hash(HashPass, sizeof(HashPass), inputtext);
  745.  
  746. if(strcmp(HashPass, USER[playerid][pSENHA], false) == 0)
  747. {
  748. for(new cl = 0; cl < 100; cl++)
  749. SendClientMessageToAll(-1, "");
  750.  
  751. SendClientMessage(playerid, COR_CHAT, "[»] Você logou com sucesso!");
  752.  
  753. LoadInfoFromPlayer[playerid] = SetTimerEx("LoadPlayerInfo", 3000, false, "i", playerid);
  754. CarregarDados[playerid] = true;
  755. EsconderTD_Login(playerid);
  756.  
  757. SendClientMessage(playerid, COR_AVISO, "[»] Carregando dados da sua conta. Aguarde...");
  758.  
  759. LogginsFail[playerid] = 0;
  760. }
  761. else
  762. {
  763. LogginsFail[playerid]++;
  764.  
  765. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "[»] Painel de Login", "[»] Bem Vindo novamente ao nosso servidor\nLogue-se para continuar de onde parou:", "LOGAR", "RECOVER");
  766.  
  767. format(STRING, sizeof(STRING), "[»] Você errou a senha. (%i/3)", LogginsFail[playerid]);
  768. SendClientMessage(playerid, COR_AVISO, STRING);
  769.  
  770. if(LogginsFail[playerid] == 3)
  771. return SendClientMessage(playerid, COR_AVISO, "Você foi kickado por errar 3 tentativas."), LogginsFail[playerid] = 0, tkKick(playerid);
  772. }
  773. }
  774. else
  775. {
  776. new
  777. STRING[129]
  778. ;
  779.  
  780. format(STRING, sizeof(STRING), "[»] Você recorreu à resposta da pergunta de segurança:\nP: '%s'.", USER[playerid][pPERGUNTA]);
  781. SendClientMessage(playerid, COR_AVISO, STRING);
  782.  
  783. ShowPlayerDialog(playerid, DIALOG_RECUPERAR, DIALOG_STYLE_INPUT, "[»] Painel de Resposta", STRING, "LOGAR","");
  784. }
  785. }
  786. else if(dialogid == DIALOG_PERGUNTA)
  787. {
  788. if(response)
  789. {
  790. new
  791. Query_User[200]
  792. ;
  793.  
  794. if(!strlen(inputtext) || strlen(inputtext) < 3 || strlen(inputtext) > 20)
  795. {
  796. ShowPlayerDialog(playerid, DIALOG_PERGUNTA, DIALOG_STYLE_INPUT, "[»] Painel de Pergunta", "[»] Para garantir a segurança da sua conta\nInsira uma pergunta de segurança:", "REGISTRAR","");
  797. SendClientMessage(playerid, COR_CHAT, "[»] A pergunta de segurança deve ser entre 3 - 20.");
  798. return 1;
  799. }
  800. if(strfind(inputtext, "?", true) != -1)
  801. {
  802. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `PERGUNTA` = '%s' WHERE `NOME` = '%s' COLLATE NOCASE", inputtext, DB_Escape(GetName(playerid)));
  803. db_query(User_Database, Query_User);
  804.  
  805. format(Query_User, sizeof(Query_User), "[»] Pergunta cadastrada com sucesso ao Banco de Dados: '%s'.", inputtext);
  806. SendClientMessage(playerid, COR_AVISO, Query_User);
  807.  
  808. ShowPlayerDialog(playerid, DIALOG_RESPOSTA, DIALOG_STYLE_INPUT, "[»] Painel de Resposta", "[»] Para garantir a segurança da sua conta\nInsira uma resposta para a pergunta de segurança:", "REGISTRAR","");
  809. SendClientMessage(playerid, COR_CHAT, "[»] Insira uma resposta para a pergunta de segurança para sua conta.");
  810. }
  811. else
  812. ShowPlayerDialog(playerid, DIALOG_PERGUNTA, DIALOG_STYLE_INPUT, "[»] Painel de Pergunta", "[»] Para garantir a segurança da sua conta\nInsira uma pergunta de segurança:", "REGISTRAR",""),
  813. SendClientMessage(playerid, COR_CHAT, "[»] Uma pergunta lógicamente necessita de um ponto de interrogação. (?)");
  814. }
  815. }
  816. else if(dialogid == DIALOG_RESPOSTA)
  817. {
  818. new
  819. Query_User[300],
  820. HashPass[129]
  821. ;
  822.  
  823. if(response)
  824. {
  825. if(!strlen(inputtext)|| strlen(inputtext) < 3 || strlen(inputtext) > 20)
  826. {
  827. ShowPlayerDialog(playerid, DIALOG_RESPOSTA, DIALOG_STYLE_INPUT, "[»] Painel de Resposta", "[»] Para garantir a segurança da sua conta\nInsira uma resposta para a pergunta de segurança:", "REGISTRAR","");
  828. SendClientMessage(playerid, COR_CHAT, "[»] A resposta da pergunta de segurança deve ser entre 3 - 20.");
  829. return 1;
  830. }
  831.  
  832. WP_Hash(HashPass, sizeof(HashPass), inputtext);
  833.  
  834. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `RESPOSTA` = '%s' WHERE `NOME` = '%s' COLLATE NOCASE", HashPass, DB_Escape(GetName(playerid)));
  835. db_query(User_Database, Query_User);
  836.  
  837. for(new cl = 0; cl < 100; cl++)
  838. SendClientMessageToAll(-1, "");
  839.  
  840. format(Query_User, sizeof(Query_User), "[»] Resposta cadastrada com sucesso ao Banco de Dados: '%s'.", inputtext);
  841. SendClientMessage(playerid, COR_AVISO, Query_User);
  842.  
  843. SendClientMessage(playerid, COR_CHAT, "[»] Você logou com sucesso!");
  844.  
  845. LoadInfoFromPlayer[playerid] = SetTimerEx("LoadPlayerInfo", 3000, false, "i", playerid);
  846. CarregarDados[playerid] = true;
  847. EsconderTD_Login(playerid);
  848.  
  849. SendClientMessage(playerid, COR_AVISO, "[»] Carregando dados da sua conta. Aguarde...");
  850. }
  851. }
  852. else if(dialogid == DIALOG_RECUPERAR)
  853. {
  854. new
  855. HashPass[129]
  856. ;
  857.  
  858. if(response)
  859. {
  860. WP_Hash(HashPass, sizeof(HashPass), inputtext);
  861.  
  862. if(strcmp(HashPass, USER[playerid][pRESPOSTA], false) == 0)
  863. {
  864. for(new cl = 0; cl < 100; cl++)
  865. SendClientMessageToAll(-1, "");
  866.  
  867. SendClientMessage(playerid, COR_CHAT, "[»] Você logou com sucesso!");
  868.  
  869. LoadInfoFromPlayer[playerid] = SetTimerEx("LoadPlayerInfo", 3000, false, "i", playerid);
  870. CarregarDados[playerid] = true;
  871. EsconderTD_Login(playerid);
  872.  
  873. SendClientMessage(playerid, COR_AVISO, "[»] Carregando dados da sua conta. Aguarde...");
  874.  
  875. LogginsFail[playerid] = 0;
  876. }
  877. else
  878. {
  879. new
  880. STRING[129]
  881. ;
  882.  
  883. LogginsFail[playerid]++;
  884.  
  885. format(STRING, sizeof(STRING), "[»] Você errou a resposta. (%i/3)", LogginsFail[playerid]);
  886. SendClientMessage(playerid, COR_AVISO, STRING);
  887.  
  888. format(STRING, sizeof(STRING), "[»] Você recorreu à resposta da pergunta de segurança:\nP: '%s'.", USER[playerid][pPERGUNTA]);
  889. ShowPlayerDialog(playerid, DIALOG_RECUPERAR, DIALOG_STYLE_INPUT, "[»] Painel de Resposta", STRING, "LOGAR","");
  890.  
  891. SendClientMessage(playerid, COR_AVISO, STRING);
  892.  
  893. if(LogginsFail[playerid] == 3)
  894. return SendClientMessage(playerid, COR_AVISO, "[»] Você foi kickado por errar 3 tentativas."), LogginsFail[playerid] = 0, tkKick(playerid);
  895. }
  896. }
  897. else Kick(playerid);
  898. }
  899. else if(dialogid == DIALOG_ALTERAR)
  900. {
  901. if(response)
  902. {
  903. new
  904. HashPass[129],
  905. STRING[180]
  906. ;
  907.  
  908. if(ChangePass[playerid] == true)
  909. {
  910. WP_Hash(HashPass, sizeof(HashPass), inputtext);
  911. if(strcmp(HashPass, USER[playerid][pSENHA], false) == 0)
  912. {
  913. ShowPlayerDialog(playerid, DIALOG_ALTERAR_SENHA, DIALOG_STYLE_PASSWORD, "[»] Painel de Alteração de Dados", "[»] Para alterar a senha,\nvocê deve inserir a nova senha:", "ALTERAR","CANCELAR");
  914.  
  915. SendClientMessage(playerid, COR_AVISO, "[»] Senha anterior correta. Insira a nova senha.");
  916.  
  917. USER[playerid][pALTERARDADOS] = false;
  918. ChangePass[playerid] = false;
  919. Changed[playerid] = true;
  920. }
  921. else
  922. {
  923. ShowPlayerDialog(playerid, DIALOG_ALTERAR, DIALOG_STYLE_PASSWORD, "[»] Painel de Alteração de Dados", "[»] Para alterar a senha,\nvocê deve inserir a senha anterior:", "AVANÇAR","CANCELAR");
  924.  
  925. SendClientMessage(playerid, COR_AVISO, "[»] Senha anterior errada!");
  926. }
  927. }
  928. else if(ChangeAnswer[playerid] == true)
  929. {
  930. WP_Hash(HashPass, sizeof(HashPass), inputtext);
  931. if(strcmp(HashPass, USER[playerid][pRESPOSTA], false) == 0)
  932. {
  933. format(STRING, sizeof(STRING), "[»] Para alterar a resposta da pergunta de segurança,\nvocê deve inserir a nova resposta para a pergunta de segurança:\nP: %s", USER[playerid][pPERGUNTA]);
  934. ShowPlayerDialog(playerid, DIALOG_ALTERAR_RESPOSTA, DIALOG_STYLE_PASSWORD, "[»] Painel de Alteração de Dados", STRING, "ALTERAR","CANCELAR");
  935.  
  936. SendClientMessage(playerid, COR_AVISO, "[»] Resposta anterior correta. Insira a nova resposta.");
  937.  
  938. USER[playerid][pALTERARDADOS] = false;
  939. ChangeAnswer[playerid] = false;
  940. Changed[playerid] = true;
  941. }
  942. else
  943. {
  944. format(STRING, sizeof(STRING), "[»] Para alterar a resposta da pergunta de segurança,\nvocê deve inserir a resposta anterior da pergunta:\nP: %s", USER[playerid][pPERGUNTA]);
  945. ShowPlayerDialog(playerid, DIALOG_ALTERAR, DIALOG_STYLE_PASSWORD, "[»] Painel de Alteração de Dados", STRING, "AVANÇAR","CANCELAR");
  946.  
  947. SendClientMessage(playerid, COR_AVISO, "[»] Resposta anterior errada!");
  948. }
  949. }
  950. }
  951. else return SendClientMessage(playerid, COR_AVISO, "[»] Você cancelou a alteração de dados.");
  952. }
  953. else if(dialogid == DIALOG_ALTERAR_SENHA)
  954. {
  955. if(response)
  956. {
  957. new
  958. STRING[250],
  959. HashPass[129]
  960. ;
  961.  
  962. if(!IsValidChar(inputtext))
  963. {
  964. ShowPlayerDialog(playerid, DIALOG_ALTERAR_SENHA, DIALOG_STYLE_PASSWORD, "[»] Painel de Alteração de Dados", "[»] Para alterar a senha,\nvocê deve inserir a nova senha:", "ALTERAR","CANCELAR");
  965. SendClientMessage(playerid, COR_CHAT, "[»] Utilize LETRAS e/ou NÚMEROS.");
  966. return 1;
  967. }
  968. if(!strlen(inputtext) || strlen(inputtext) < 8 || strlen(inputtext) > 20)
  969. {
  970. ShowPlayerDialog(playerid, DIALOG_ALTERAR_SENHA, DIALOG_STYLE_PASSWORD, "[»] Painel de Alteração de Dados", "[»] Para alterar a senha,\nvocê deve inserir a nova senha:", "ALTERAR","CANCELAR");
  971. SendClientMessage(playerid, COR_CHAT, "[»] A senha deve ser entre 8-20.");
  972. return 1;
  973. }
  974.  
  975. WP_Hash(HashPass, sizeof(HashPass), inputtext);
  976.  
  977. USER[playerid][pRESPOSTA] = EOS;
  978. strcat(USER[playerid][pRESPOSTA], HashPass);
  979.  
  980. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `SENHA` = '%s' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pRESPOSTA], DB_Escape(GetName(playerid)));
  981. db_free_result(db_query(User_Database, STRING));
  982.  
  983. format(STRING, sizeof(STRING), "[»] Sua nova senha agora é: '%s'.", inputtext);
  984. SendClientMessage(playerid, COR_AVISO, STRING);
  985.  
  986. LoadInfoFromPlayer[playerid] = SetTimerEx("LoadPlayerInfo", 3000, false, "i", playerid);
  987. CarregarDados[playerid] = true;
  988. EsconderTD_Login(playerid);
  989.  
  990. SendClientMessage(playerid, COR_AVISO, "[»] Carregando dados da sua conta. Aguarde...");
  991.  
  992. format(STRING, sizeof(STRING), "[»] Player '%s [ID: %i]' alterou sua senha!", GetName(playerid), playerid);
  993. #if LOG_ENABLED == true
  994. SaveLog("Senhas.txt", STRING);
  995. #endif
  996. }
  997. else return SendClientMessage(playerid, COR_AVISO, "[»] Você cancelou a alteração de senha.");
  998. }
  999. else if(dialogid == DIALOG_ALTERAR_RESPOSTA)
  1000. {
  1001. if(response)
  1002. {
  1003. new
  1004. STRING[250],
  1005. HashPass[129]
  1006. ;
  1007.  
  1008. if(!strlen(inputtext)|| strlen(inputtext) < 3 || strlen(inputtext)> 20)
  1009. {
  1010. format(STRING, sizeof(STRING), "[»] Para alterar a resposta da pergunta de segurança,\nvocê deve inserir a nova resposta para a pergunta de segurança:\nP: %s", USER[playerid][pPERGUNTA]);
  1011. ShowPlayerDialog(playerid, DIALOG_ALTERAR_RESPOSTA, DIALOG_STYLE_INPUT, "[»] Painel de Alteração de Dados", STRING, "ALTERAR","CANCELAR");
  1012.  
  1013. SendClientMessage(playerid, COR_CHAT, "[»] A resposta da pergunta de segurança deve ser entre 3 - 20.");
  1014. return 1;
  1015. }
  1016.  
  1017. WP_Hash(HashPass, sizeof(HashPass), inputtext);
  1018.  
  1019. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `RESPOSTA` = '%s' WHERE `NOME` = '%s' COLLATE NOCASE", HashPass, DB_Escape(GetName(playerid)));
  1020. db_free_result(db_query(User_Database, STRING));
  1021.  
  1022. format(STRING, sizeof(STRING), "[»] Sua nova resposta da pergunta de segurança agora é: '%s'.", inputtext);
  1023. SendClientMessage(playerid, COR_AVISO, STRING);
  1024.  
  1025. LoadInfoFromPlayer[playerid] = SetTimerEx("LoadPlayerInfo", 3000, false, "i", playerid);
  1026. CarregarDados[playerid] = true;
  1027. EsconderTD_Login(playerid);
  1028.  
  1029. SendClientMessage(playerid, COR_AVISO, "[»] Carregando dados da sua conta. Aguarde...");
  1030.  
  1031. format(STRING, sizeof(STRING), "[»] Player '%s [ID: %i]' alterou sua resposta da pergunta de segurança!", GetName(playerid), playerid);
  1032. #if LOG_ENABLED == true
  1033. SaveLog("Resposta.txt", STRING);
  1034. #endif
  1035. }
  1036. else return SendClientMessage(playerid, COR_AVISO, "[»] Você cancelou a anteração da resposta.");
  1037. }
  1038. else if(dialogid == DIALOG_RESETAR_STATUS)
  1039. {
  1040. new
  1041. Query_User[500]
  1042. ;
  1043.  
  1044. if(response)
  1045. {
  1046. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `POS X` = '0.0', `POS Y` = '0.0', `POS Z` = '0.0', `DINHEIRO` = '0', `SCORE` = '0', `LOGINS` = '0', `MATOU` = '0', `MORREU` = '0', `DIAS` = '0', `HORAS` = '0', `MINUTOS` = '0', `SEGUNDOS` = '0' WHERE `NOME` = '%s'", DB_Escape(GetName(playerid)));
  1047. db_query(User_Database, Query_User);
  1048.  
  1049. SendClientMessage(playerid, COR_AVISO, "[»] Conta resetada com sucesso! Atualizando dados. Aguarde...");
  1050.  
  1051. TogglePlayerControllable(playerid, 0);
  1052. LoadInfoFromPlayer[playerid] = SetTimerEx("LoadPlayerInfo", 3000, false, "i", playerid);
  1053. CarregarDados[playerid] = true;
  1054. }
  1055. else SendClientMessage(playerid, COR_AVISO, "[»] Você saiu do painel de Resetar Status.");
  1056. }
  1057.  
  1058. else if(dialogid == DIALOG_ADM_CMDS_1)
  1059. {
  1060. new
  1061. STRING[1000+300]
  1062. ;
  1063.  
  1064. if(response)
  1065. {
  1066. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  1067. return SendClientMessage(playerid, COR_AVISO, "[»] Você precisa ser admin Level MODERADOR para visualizar estes comandos.");
  1068.  
  1069. strcat(STRING, "\n[»] COMANDOS ADMIN LEVEL MODERADOR\n");
  1070. strcat(STRING, "[»] /SETVW = Seta o mundo virtual de um player.\n");
  1071. strcat(STRING, "[»] /SETSKIN = Seta skin para um player.\n");
  1072. strcat(STRING, "[»] /CONGELAR = Congela um player.\n");
  1073. strcat(STRING, "[»] /DESCONGELAR = Descongela um player.\n");
  1074. strcat(STRING, "[»] /PALTERARDADOS = Permite um player alterar seus dados.\n");
  1075. strcat(STRING, "[»] /CALARCMD = Bloqueia os comandos de um player.\n");
  1076. strcat(STRING, "[»] /DESCALARCMD = Desbloqueia os comandos de um player.\n");
  1077. strcat(STRING, "[»] /ESPIAR = Espia um player.\n");
  1078. strcat(STRING, "[»] /PARARESPIAR = Para de espiar um player.\n");
  1079. strcat(STRING, "[»] /DARARMA = Da uma arma a um player.\n");
  1080. strcat(STRING, "[»] /DESARMAR = Remove as armas de um player.\n");
  1081. strcat(STRING, "[»] /PRENDER = Prende um player.\n");
  1082. strcat(STRING, "[»] /SOLTAR = Solta um player preso.\n");
  1083. strcat(STRING, "[»] /CALAR = Cala um player.\n");
  1084. strcat(STRING, "[»] /CALAR = Descala um player.\n");
  1085. strcat(STRING, "[»] /SETSCORE = Seta o score para um player.\n");
  1086. strcat(STRING, "[»] /DARSCORE = Da score para um player.\n");
  1087. strcat(STRING, "[»] /SETDINHEIRO = Seta dinheiro para um player.\n");
  1088. strcat(STRING, "[»] /DARDINHEIRO = Da dinheiro a um player.\n");
  1089. strcat(STRING, "[»] /KICK = Kicka determinado player.\n");
  1090. strcat(STRING, "[»] /SETVIDA = Seta a vida de um player.\n");
  1091. strcat(STRING, "[»] /SETCOLETE = Seta o colete de um player.\n");
  1092. strcat(STRING, "[»] /SETVIDACOLETE = Seta vida e colete de um player.\n");
  1093. ShowPlayerDialog(playerid, DIALOG_ADM_CMDS_2, DIALOG_STYLE_MSGBOX, "Painel de Comandos TK Admin", STRING, "AVANÇAR","VOLTAR");
  1094. }
  1095. else
  1096. {
  1097.  
  1098. }
  1099. }
  1100. else if(dialogid == DIALOG_ADM_CMDS_2)
  1101. {
  1102. new
  1103. STRING[1000+300]
  1104. ;
  1105.  
  1106. if(response)
  1107. {
  1108. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  1109. return SendClientMessage(playerid, COR_AVISO, "[»] Você precisa ser admin Level ADMINISTRADOR para visualizar estes comandos.");
  1110.  
  1111. strcat(STRING, "\n[»] COMANDOS ADMIN LEVEL ADMINISTRADOR\n");
  1112. strcat(STRING, "[»] /CONGELARTODOS = Congela todos os players.\n");
  1113. strcat(STRING, "[»] /DESCONGELARTODOS = Descongela todos os players.\n");
  1114. strcat(STRING, "[»] /DARARMATODOS = Da arma a todos os players.\n");
  1115. strcat(STRING, "[»] /DESARMARTODOS = Remove as armas de todos os players.\n");
  1116. strcat(STRING, "[»] /SOLTARTODOS = Solta todos os players presos.\n");
  1117. strcat(STRING, "[»] /PRENDERTODOS = Prende todos os players.\n");
  1118. strcat(STRING, "[»] /AVISARTODOS = Avisa todos os players.\n");
  1119. strcat(STRING, "[»] /DARSCORETODOS = Da score para todos os players.\n");
  1120. strcat(STRING, "[»] /SETSCORETODOS = Seta score para todos os players.\n");
  1121. strcat(STRING, "[»] /DARDINHEIROTODOS = Da dinheiro para todos os players.\n");
  1122. strcat(STRING, "[»] /SETDINHEIROTODOS = Seta dinheiro para todos os players.\n");
  1123. strcat(STRING, "[»] /SETPOSTODOS = Seta posição de todos os players.\n");
  1124. strcat(STRING, "[»] /KICKTODOS = Kicka todos os players.\n");
  1125. strcat(STRING, "[»] /TAPATODOS = Da um tapa em todos os players.\n");
  1126. strcat(STRING, "[»] /EXPLODIRTODOS = Explode todos os players.\n");
  1127. strcat(STRING, "[»] /SETVEICULOTODOS = Seta veículo para todos os players.\n");
  1128. strcat(STRING, "[»] /SETVIDATODOS = Seta vida para todos os players.\n");
  1129. strcat(STRING, "[»] /SETCOLETETODOS = Seta colete para todos os players.\n");
  1130. strcat(STRING, "[»] /SETVIDACOLETETODOS = Seta vida e colete para todos os players.\n");
  1131. strcat(STRING, "[»] /DARVIDATODOS = Da vida para todos os players.\n");
  1132. strcat(STRING, "[»] /DARCOLETETODOS = Da colete para todos os players.\n");
  1133. strcat(STRING, "[»] /DARVIDACOLETETODOS = Da vida e colete para todos os players.\n");
  1134. strcat(STRING, "[»] /TRAZERTODOS = Traz todos os players para sua posição.\n");
  1135. ShowPlayerDialog(playerid, DIALOG_ADM_CMDS_3, DIALOG_STYLE_MSGBOX, "Painel de Comandos TK Admin", STRING, "AVANÇAR","VOLTAR");
  1136. }
  1137. else
  1138. {
  1139. strcat(STRING, "[»] COMANDOS ADMIN LEVEL HELPER\n");
  1140. strcat(STRING, "[»] /LCHAT = Limpa o chat.\n");
  1141. strcat(STRING, "[»] /AVISAR = Da um aviso ao player.\n");
  1142. strcat(STRING, "[»] /RELOGAR = Reloga o player (literalmente).\n");
  1143. strcat(STRING, "[»] /IRPOS = Vai na posição de um jogador.\n");
  1144. strcat(STRING, "[»] /EXPLODIR = Explode um jogador.\n");
  1145. strcat(STRING, "[»] /SETPOS = Seta a posição de um jogador.\n");
  1146. strcat(STRING, "[»] /TAPA = Da um tapa no player.\n");
  1147. strcat(STRING, "[»] /REPVEICULO = Repara o veículo de um player.\n");
  1148. strcat(STRING, "[»] /SETVEICULO = Seta o veículo para um player.\n");
  1149. strcat(STRING, "[»] /DARVIDA = Da vida a um player.\n");
  1150. strcat(STRING, "[»] /DARCOLETE = Da colete para um player.\n");
  1151. strcat(STRING, "[»] /DARVIDACOLETE = Da vida e colete para um player.\n");
  1152. strcat(STRING, "[»] /TRAZER = Traz um jogador até sua posição.\n");
  1153. ShowPlayerDialog(playerid, DIALOG_ADM_CMDS_1, DIALOG_STYLE_MSGBOX, "Painel de Comandos TK Admin", STRING, "AVANÇAR","VOLTAR");
  1154. }
  1155. }
  1156. else if(dialogid == DIALOG_ADM_CMDS_3)
  1157. {
  1158. new
  1159. STRING[1000+300]
  1160. ;
  1161.  
  1162. if(response)
  1163. {
  1164. if(USER[playerid][pADMIN] < LEVEL_OWNER)
  1165. return SendClientMessage(playerid, COR_AVISO, "[»] Você precisa ser admin Level OWNER para visualizar estes comandos.");
  1166.  
  1167. strcat(STRING, "\n[»] COMANDOS ADMIN LEVEL OWNER\n");
  1168. strcat(STRING, "[»] /SETLEVEL = Seta level administrativo para um player.\n");
  1169. strcat(STRING, "[»] /SETVIP = Seta conta VIP para um player.\n");
  1170. strcat(STRING, "[»] /REMOVERVIP = Remove conta VIP de um player.\n");
  1171. strcat(STRING, "[»] /SERVERCONFIG = Configura o server sem RCON.\n");
  1172. strcat(STRING, "[»] /BAN = Da ban em um player ONLINE.\n");
  1173. strcat(STRING, "[»] /BANIP = Da ban em um NOME ou IP ONLINE/OFFLINE.\n");
  1174. strcat(STRING, "[»] /DESBAN = Desban uma conta banida.\n");
  1175. ShowPlayerDialog(playerid, DIALOG_ADM_CMDS_4, DIALOG_STYLE_MSGBOX, "Painel de Comandos TK Admin", STRING, "FECHAR","VOLTAR");
  1176. }
  1177. else
  1178. {
  1179. strcat(STRING, "\n[»] COMANDOS ADMIN LEVEL MODERADOR\n");
  1180. strcat(STRING, "[»] /SETVW = Seta o mundo virtual de um player.\n");
  1181. strcat(STRING, "[»] /SETSKIN = Seta skin para um player.\n");
  1182. strcat(STRING, "[»] /CONGELAR = Congela um player.\n");
  1183. strcat(STRING, "[»] /DESCONGELAR = Descongela um player.\n");
  1184. strcat(STRING, "[»] /PALTERARDADOS = Permite um player alterar seus dados.\n");
  1185. strcat(STRING, "[»] /CALARCMD = Bloqueia os comandos de um player.\n");
  1186. strcat(STRING, "[»] /DESCALARCMD = Desbloqueia os comandos de um player.\n");
  1187. strcat(STRING, "[»] /ESPIAR = Espia um player.\n");
  1188. strcat(STRING, "[»] /PARARESPIAR = Para de espiar um player.\n");
  1189. strcat(STRING, "[»] /DARARMA = Da uma arma a um player.\n");
  1190. strcat(STRING, "[»] /DESARMAR = Remove as armas de um player.\n");
  1191. strcat(STRING, "[»] /PRENDER = Prende um player.\n");
  1192. strcat(STRING, "[»] /SOLTAR = Solta um player preso.\n");
  1193. strcat(STRING, "[»] /CALAR = Cala um player.\n");
  1194. strcat(STRING, "[»] /CALAR = Descala um player.\n");
  1195. strcat(STRING, "[»] /SETSCORE = Seta o score para um player.\n");
  1196. strcat(STRING, "[»] /DARSCORE = Da score para um player.\n");
  1197. strcat(STRING, "[»] /SETDINHEIRO = Seta dinheiro para um player.\n");
  1198. strcat(STRING, "[»] /DARDINHEIRO = Da dinheiro a um player.\n");
  1199. strcat(STRING, "[»] /KICK = Kicka determinado player.\n");
  1200. strcat(STRING, "[»] /SETVIDA = Seta a vida de um player.\n");
  1201. strcat(STRING, "[»] /SETCOLETE = Seta o colete de um player.\n");
  1202. strcat(STRING, "[»] /SETVIDACOLETE = Seta vida e colete de um player.\n");
  1203. ShowPlayerDialog(playerid, DIALOG_ADM_CMDS_2, DIALOG_STYLE_MSGBOX, "Painel de Comandos TK Admin", STRING, "AVANÇAR","VOLTAR");
  1204. }
  1205. }
  1206. else if(dialogid == DIALOG_ADM_CMDS_4)
  1207. {
  1208. new
  1209. STRING[1000+300]
  1210. ;
  1211.  
  1212. if(response)
  1213. {
  1214. }
  1215. else
  1216. {
  1217. strcat(STRING, "\n[»] COMANDOS ADMIN LEVEL ADMINISTRADOR\n");
  1218. strcat(STRING, "[»] /CONGELARTODOS = Congela todos os players.\n");
  1219. strcat(STRING, "[»] /DESCONGELARTODOS = Descongela todos os players.\n");
  1220. strcat(STRING, "[»] /DARARMATODOS = Da arma a todos os players.\n");
  1221. strcat(STRING, "[»] /DESARMARTODOS = Remove as armas de todos os players.\n");
  1222. strcat(STRING, "[»] /SOLTARTODOS = Solta todos os players presos.\n");
  1223. strcat(STRING, "[»] /PRENDERTODOS = Prende todos os players.\n");
  1224. strcat(STRING, "[»] /AVISARTODOS = Avisa todos os players.\n");
  1225. strcat(STRING, "[»] /DARSCORETODOS = Da score para todos os players.\n");
  1226. strcat(STRING, "[»] /SETSCORETODOS = Seta score para todos os players.\n");
  1227. strcat(STRING, "[»] /DARDINHEIROTODOS = Da dinheiro para todos os players.\n");
  1228. strcat(STRING, "[»] /SETDINHEIROTODOS = Seta dinheiro para todos os players.\n");
  1229. strcat(STRING, "[»] /SETPOSTODOS = Seta posição de todos os players.\n");
  1230. strcat(STRING, "[»] /KICKTODOS = Kicka todos os players.\n");
  1231. strcat(STRING, "[»] /TAPATODOS = Da um tapa em todos os players.\n");
  1232. strcat(STRING, "[»] /EXPLODIRTODOS = Explode todos os players.\n");
  1233. strcat(STRING, "[»] /SETVEICULOTODOS = Seta veículo para todos os players.\n");
  1234. strcat(STRING, "[»] /SETVIDATODOS = Seta vida para todos os players.\n");
  1235. strcat(STRING, "[»] /SETCOLETETODOS = Seta colete para todos os players.\n");
  1236. strcat(STRING, "[»] /SETVIDACOLETETODOS = Seta vida e colete para todos os players.\n");
  1237. strcat(STRING, "[»] /DARVIDATODOS = Da vida para todos os players.\n");
  1238. strcat(STRING, "[»] /DARCOLETETODOS = Da colete para todos os players.\n");
  1239. strcat(STRING, "[»] /DARVIDACOLETETODOS = Da vida e colete para todos os players.\n");
  1240. strcat(STRING, "[»] /TRAZERTODOS = Traz todos os players para sua posição.\n");
  1241. ShowPlayerDialog(playerid, DIALOG_ADM_CMDS_3, DIALOG_STYLE_MSGBOX, "Painel de Comandos TK Admin", STRING, "AVANÇAR","VOLTAR");
  1242. }
  1243. }
  1244.  
  1245. return 1;
  1246. }
  1247. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  1248. public OnRconLoginAttempt(ip[], password[], success)
  1249. {
  1250. new
  1251. STRING[129]
  1252. ;
  1253.  
  1254. if(success)
  1255. {
  1256. foreach(new i : Player)
  1257. {
  1258. if(strcmp(GetName(i), "NOME_DO_PLAYER", false) == 0)
  1259. {
  1260. format(STRING, sizeof(STRING), "[»] Bem Vindo Admin RCON. Nick: '%s' | IP '%s' - Logado com Sucesso", GetName(i), GetIP(i));
  1261. }
  1262. else
  1263. {
  1264. format(STRING, sizeof(STRING), "[»] Mais um lixo tentando a sorte. Nick: '%s' | IP: '%s'. HUEHUEHEUHEUH !!!", GetName(i), GetIP(i));
  1265.  
  1266. tkKick(i);
  1267. }
  1268. SendClientMessage(i, COR_AVISO, STRING);
  1269. }
  1270.  
  1271. #if LOG_ENABLED == true
  1272. SaveLog("RCON_LOGIN.txt", STRING);
  1273. #endif
  1274. }
  1275. return 1;
  1276. }
  1277. //==--==--====--==--====--==--==|NATIVE_PUBLIC|==--==--====--==--====--==--==//
  1278. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1279. {
  1280. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && USER[playerid][pSPECID] != INVALID_PLAYER_ID)
  1281. {
  1282. if(newkeys == KEY_JUMP) AdvanceSpectate(playerid);
  1283. else if(newkeys == KEY_SPRINT) ReverseSpectate(playerid);
  1284. }
  1285. if(newkeys == KEY_SUBMISSION)
  1286. {
  1287. SelectTextDraw(playerid, 0xFF6600FF);
  1288. }
  1289. return 1;
  1290. }
  1291. //==--==--====--==--====--==--==|PUBLIC_JAILED_CHECK_IN_SPAWN|==--==--====--==--====--==--==//
  1292. function:PunishmentHandle()
  1293. {
  1294. new
  1295. STRING[200]
  1296. ;
  1297.  
  1298. foreach(new i : Player)
  1299. {
  1300. if(USER[i][pCALADO] > 0)
  1301. {
  1302. if(USER[i][pTEMPOCALADO] > 0)
  1303. {
  1304. USER[i][pTEMPOCALADO] --;
  1305. }
  1306. else if(USER[i][pTEMPOCALADO] == 0)
  1307. {
  1308. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pCALADO] = 0, DB_Escape(GetName(i)));
  1309. db_free_result(db_query(User_Database, STRING));
  1310. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pCALADO] = 0, DB_Escape(GetName(i)));
  1311. db_free_result(db_query(User_Database, STRING));
  1312.  
  1313. format(STRING, sizeof(STRING), "[»] Admin 'Caladinho' tirou a fita durex da boca do jogador '%s [ID: %i]'.", GetName(i), i);
  1314. SendClientMessageToAll(COR_AVISO, STRING);
  1315. }
  1316. }
  1317.  
  1318. if(USER[i][pPRESO] > 0)
  1319. {
  1320. if(USER[i][pTEMPOPRESO] > 0)
  1321. {
  1322. USER[i][pTEMPOPRESO] --;
  1323. }
  1324. else if(USER[i][pTEMPOPRESO] == 0)
  1325. {
  1326. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pPRESO] = 0, DB_Escape(GetName(i)));
  1327. db_free_result(db_query(User_Database, STRING));
  1328. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pTEMPOPRESO] = 0, DB_Escape(GetName(i)));
  1329. db_free_result(db_query(User_Database, STRING));
  1330.  
  1331. format(STRING, sizeof(STRING), "[»] Admin 'Carcereiro' libertou o jogador '%s [ID: %i]' da prisão.", GetName(i), i);
  1332. SendClientMessageToAll(COR_AVISO, STRING);
  1333.  
  1334. #if ANTI_ARM_HEAL_ENABLED == true
  1335. SetPlayerHealth(i, 99.5);
  1336. SetPlayerArmour(i, 99.5);
  1337. #else
  1338. SetPlayerHealth(i, 100.0);
  1339. SetPlayerArmour(i, 100.0);
  1340. #endif
  1341.  
  1342. KillTimer(PlayerCheckInJailTime[i]);
  1343. SetPlayerVirtualWorld(i, 0);
  1344. SetPlayerInterior(i, 0);
  1345. SetPlayerPos(i, USER[i][pPOS][0], USER[i][pPOS][1], USER[i][pPOS][2]);
  1346. SetPlayerSkin(i, USER[i][pSKIN]);
  1347. }
  1348.  
  1349. #if ANTI_ARM_HEAL_ENABLED == true
  1350. SetPlayerHealth(i, 99.5);
  1351. SetPlayerArmour(i, 99.5);
  1352. #else
  1353. SetPlayerHealth(i, 100.0);
  1354. SetPlayerArmour(i, 100.0);
  1355. #endif
  1356.  
  1357. if(USER[i][pLOGADO] == true)
  1358. {
  1359. format(STRING, sizeof(STRING), "[»] Aguarde '%i' segundos para ser solto.", USER[i][pTEMPOPRESO]);
  1360. SendClientMessageToAll(COR_AVISO, STRING);
  1361. }
  1362. }
  1363. }
  1364.  
  1365. return 1;
  1366. }
  1367. //==--==--====--==--====--==--==|PUBLIC_CHECK_JAILED_PLAYER_NO_ESCAPE|==--==--====--==--====--==--==//
  1368. function:PlayerCheckInJail(playerid)
  1369. {
  1370. new
  1371. STRING[200]
  1372. ;
  1373.  
  1374. if(USER[playerid][pPRESO] == 1 && !IsPlayerInRangeOfPoint(playerid, 7.0, 198.6839, 174.6272, 1003.0234))
  1375. {
  1376. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pPRESO] = 1, DB_Escape(GetName(playerid)));
  1377. db_free_result(db_query(User_Database, STRING));
  1378. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pTEMPOPRESO] += 60, DB_Escape(GetName(playerid)));
  1379. db_free_result(db_query(User_Database, STRING));
  1380.  
  1381. SendClientMessage(playerid, COR_AVISO,"[»] Você ganhou +60 segundos na cadeia por cometer uma infração!");
  1382.  
  1383. format(STRING, sizeof(STRING), "[»] Player %s [ID: %i] cometeu uma infração na cadeia e ganhou +60 segundos preso!", GetName(playerid), playerid);
  1384. SendClientMessageToAll(COR_AVISO, STRING);
  1385.  
  1386. SetPlayerPos(playerid, 197.9802, 173.2252, 1003.0234);
  1387. SetPlayerFacingAngle(playerid, 358.4666);
  1388. }
  1389. if(USER[playerid][pPRESO] == 2)
  1390. {
  1391. SendClientMessage(playerid, COR_AVISO,"[»] Você ganhou +60 segundos na cadeia por cometer RQ na prisão!");
  1392.  
  1393. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pPRESO] = 1, DB_Escape(GetName(playerid)));
  1394. db_free_result(db_query(User_Database, STRING));
  1395. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pTEMPOPRESO] += 60, DB_Escape(GetName(playerid)));
  1396. db_free_result(db_query(User_Database, STRING));
  1397. }
  1398. if(USER[playerid][pTEMPOPRESO] > 1000)
  1399. {
  1400. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pPRESO] = 1, DB_Escape(GetName(playerid)));
  1401. db_free_result(db_query(User_Database, STRING));
  1402. format(STRING, sizeof(STRING), "UPDATE "USER_TABLE" SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pTEMPOPRESO] = 940, DB_Escape(GetName(playerid)));
  1403. db_free_result(db_query(User_Database, STRING));
  1404.  
  1405. for(new cl = 0; cl < 100; cl++)
  1406. SendClientMessageToAll(-1, "");
  1407.  
  1408. format(STRING, sizeof(STRING), "[»] Player %s [ID: %i] foi kickado por mau comportamento na cadeia! (Mais de 1000 segundos preso)", GetName(playerid), playerid);
  1409. SendClientMessageToAll(COR_AVISO, STRING);
  1410. return tkKick(playerid);
  1411. }
  1412.  
  1413. return 1;
  1414. }
  1415. //==--==--====--==--====--==--==|PUBLIC_JAIL_PLAYER|==--==--====--==--====--==--==//
  1416. function:JailPlayer(playerid)
  1417. {
  1418. new
  1419. STRING[500]
  1420. ;
  1421.  
  1422. SetPlayerPos(playerid, 197.6661, 173.8179, 1003.0234);
  1423.  
  1424. SetPlayerInterior(playerid, 3);
  1425.  
  1426. SetCameraBehindPlayer(playerid);
  1427.  
  1428. SetPlayerVirtualWorld(playerid, 999);
  1429.  
  1430. SetPlayerSkin(playerid, 42);
  1431.  
  1432. strcat(STRING, "[»] Você está agora na prisão, leia:\n");
  1433. strcat(STRING, "[•] Não fuja! Caso contrário você ganhará mais 20 segundos preso;\n");
  1434. strcat(STRING, "[•] Não faça RQ! Caso contrário você ganhará mais 60 segundos preso;\n");
  1435. strcat(STRING, "[•] Evite ser Punido! Seu status é somado (mesmo resetado) e pode\nser visto somente pelos Admins, seus detalhes são analisados diariamente.");
  1436. ShowPlayerDialog(playerid, DIALOG_STRCAT, DIALOG_STYLE_MSGBOX, "[»] BEM-VINDO A PRISÃO", STRING, "OK", "");
  1437.  
  1438. return 1;
  1439. }
  1440. //==--==--====--==--====--==--==|PUBLIC_UPDATE_TIME|==--==--====--==--====--==--==//
  1441. function:UpdateTime(playerid)
  1442. {
  1443. if(USER[playerid][pLOGADO] == true)
  1444. {
  1445. USER[playerid][pSEGUNDOS] += 1;
  1446. if(USER[playerid][pHORAS] >= 23 && USER[playerid][pMINUTOS] >= 59 && USER[playerid][pSEGUNDOS] >= 60)
  1447. {
  1448. USER[playerid][pHORAS] = 0;
  1449. USER[playerid][pMINUTOS] = 0;
  1450. USER[playerid][pSEGUNDOS] = 0;
  1451. USER[playerid][pDIAS] += 1;
  1452. }
  1453. else if(USER[playerid][pMINUTOS] >= 59 && USER[playerid][pSEGUNDOS] >= 60)
  1454. {
  1455. USER[playerid][pMINUTOS] = 0;
  1456. USER[playerid][pSEGUNDOS] = 0;
  1457. USER[playerid][pHORAS] += 1;
  1458. }
  1459. else if(USER[playerid][pSEGUNDOS] >= 60)
  1460. {
  1461. USER[playerid][pSEGUNDOS] = 0;
  1462. USER[playerid][pMINUTOS] += 1;
  1463. }
  1464. }
  1465. return 1;
  1466. }
  1467. //==--==--====--==--====--==--==|POSITION_AFTER_SPEC|==--==--====--==--====--==--==//
  1468. function:PosAfterSpec(playerid)
  1469. {
  1470. SetPlayerPos(playerid, pSPECPOS[playerid][0], pSPECPOS[playerid][1], pSPECPOS[playerid][2]);
  1471. SetPlayerFacingAngle(playerid, pSPECPOS[playerid][3]);
  1472. SetPlayerInterior(playerid, SpecInt[playerid][0]);
  1473. SetPlayerVirtualWorld(playerid, SpecInt[playerid][1]);
  1474. }
  1475. //==--==--====--==--====--==--==|PUBLIC_KICK_PLAYER|==--==--====--==--====--==--==//
  1476. function:KickPlayer(playerid)
  1477. {
  1478. return Kick(playerid);
  1479. }
  1480. //==--==--====--==--====--==--==|PUBLIC_CHECK_PLAYER_VIP|==--==--====--==--====--==--==//
  1481. function:CheckTimeVIP()
  1482. {
  1483. new
  1484. STRING[200],
  1485. DBResult:Resultado
  1486. ;
  1487.  
  1488. foreach(new i : Player)
  1489. {
  1490. if(USER[i][pLOGADO] == true)
  1491. {
  1492. format(STRING, sizeof(STRING),"SELECT * FROM `"VIP_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", GetName(i));
  1493. Resultado = db_query(VIP_Database, STRING);
  1494. if(db_num_rows(Resultado))
  1495. {
  1496. if(USER[i][pTIMEVIP] < gettime())
  1497. {
  1498. format(STRING, sizeof(STRING),"DELETE FROM `"VIP_TABLE"` WHERE `NOME` = '%s'", GetName(i));
  1499. Resultado = db_query(VIP_Database, STRING);
  1500.  
  1501. USER[i][pVIP] = 0;
  1502.  
  1503. if(pGOD[i] == true)
  1504. {
  1505. pGOD[i] = false;
  1506. #if ANTI_ARM_HEAL_ENABLED == true
  1507. SetPlayerHealth(i, 99.5);
  1508. #else
  1509. SetPlayerHealth(i, 100.0);
  1510. #endif
  1511. }
  1512.  
  1513. SendClientMessage(i, COR_AVISO, "[»] Sua conta VIP expirou.");
  1514. }
  1515. }
  1516. db_free_result(db_query(VIP_Database, STRING));
  1517. }
  1518. }
  1519.  
  1520. return 1;
  1521. }
  1522. //==--==--====--==--====--==--==|PUBLIC_LOAD_INFORMATIONS_FROM_PLAYER|==--==--====--==--====--==--==//
  1523. function:LoadPlayerInfo(playerid)
  1524. {
  1525. new
  1526. STRCAT[200],
  1527. STRING[200],
  1528. Query_User[1000+980],
  1529. DBResult:Resultado
  1530. ;
  1531.  
  1532. format(STRING, sizeof(STRING),"SELECT * FROM `"VIP_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", GetName(playerid));
  1533. Resultado = db_query(VIP_Database, STRING);
  1534. if(db_num_rows(Resultado))
  1535. {
  1536. db_get_field_assoc(Resultado, "GETTIME", STRING, 20);
  1537. USER[playerid][pTIMEVIP] = strval(STRING);
  1538.  
  1539. db_get_field_assoc(Resultado, "VIP", STRING, 6);
  1540. USER[playerid][pVIP] = strval(STRING);
  1541.  
  1542. db_get_field_assoc(Resultado, "TEMPO", USER[playerid][pRECEIVEDTIME], 75);
  1543.  
  1544. switch(USER[playerid][pVIP])
  1545. {
  1546. case 1: strcat(STRCAT, "BRONZE");
  1547. case 2: strcat(STRCAT, "PRATA");
  1548. case 3: strcat(STRCAT, "OURO");
  1549. }
  1550.  
  1551. if(USER[playerid][pTIMEVIP] > gettime())
  1552. {
  1553. format(STRING, sizeof(STRING), "[»] Você é um usuário VIP Level: %s", STRCAT);
  1554. SendClientMessage(playerid, COR_AVISO, STRING);
  1555. format(STRING, sizeof(STRING), "[»] Tempo VIP recebido: %s", USER[playerid][pRECEIVEDTIME]);
  1556. SendClientMessage(playerid, COR_AVISO, STRING);
  1557. format(STRING, sizeof(STRING), "[»] Tempo VIP restante: %s", ConvertTime(USER[playerid][pTIMEVIP] - gettime()));
  1558. SendClientMessage(playerid, COR_AVISO, STRING);
  1559. }
  1560. else if(USER[playerid][pTIMEVIP] < gettime())
  1561. {
  1562. format(STRING, sizeof(STRING),"DELETE FROM `"VIP_TABLE"` WHERE `NOME` = '%s'", GetName(playerid));
  1563. Resultado = db_query(VIP_Database, STRING);
  1564.  
  1565. USER[playerid][pVIP] = 0;
  1566.  
  1567. SendClientMessage(playerid, COR_AVISO, "[»] Seu tempo VIP expirou.");
  1568. }
  1569. }
  1570. db_free_result(db_query(VIP_Database, STRING));
  1571.  
  1572. format(Query_User, sizeof(Query_User), "SELECT * FROM `"USER_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", DB_Escape(GetName(playerid)));
  1573. Resultado = db_query(User_Database, Query_User);
  1574. if(db_num_rows(Resultado))
  1575. {
  1576. db_get_field_assoc(Resultado, "ID", Query_User, 3);
  1577. USER[playerid][pID] = strval(Query_User);
  1578.  
  1579. db_get_field_assoc(Resultado, "NOME", USER[playerid][pNOME], 24);
  1580.  
  1581. db_get_field_assoc(Resultado, "REGISTRO", USER[playerid][pREGISTRO], 40);
  1582.  
  1583. db_get_field_assoc(Resultado, "EMAIL", USER[playerid][pEMAIL], 40);
  1584.  
  1585. db_get_field_assoc(Resultado, "POS X", Query_User, 6);
  1586. USER[playerid][pPOS][0] = strval(Query_User);
  1587.  
  1588. db_get_field_assoc(Resultado, "POS Y", Query_User, 6);
  1589. USER[playerid][pPOS][1] = strval(Query_User);
  1590.  
  1591. db_get_field_assoc(Resultado, "POS Z", Query_User, 6);
  1592. USER[playerid][pPOS][2] = strval(Query_User);
  1593.  
  1594. db_get_field_assoc(Resultado, "ANGULO", Query_User, 7);
  1595. USER[playerid][pANGULO] = strval(Query_User);
  1596.  
  1597. db_get_field_assoc(Resultado, "SKIN", Query_User, 5);
  1598. USER[playerid][pSKIN] = strval(Query_User);
  1599.  
  1600. db_get_field_assoc(Resultado, "DINHEIRO", Query_User, 9);
  1601. USER[playerid][pDINHEIRO] = strval(Query_User);
  1602. ResetPlayerMoney(playerid);
  1603. GivePlayerMoney(playerid, USER[playerid][pDINHEIRO]);
  1604.  
  1605. db_get_field_assoc(Resultado, "SCORE", Query_User, 6);
  1606. USER[playerid][pSCORE] = strval(Query_User);
  1607. SetPlayerScore(playerid, USER[playerid][pSCORE]);
  1608.  
  1609. db_get_field_assoc(Resultado, "ADMIN", Query_User, 6);
  1610. USER[playerid][pADMIN] = strval(Query_User);
  1611.  
  1612. db_get_field_assoc(Resultado, "LOGINS", Query_User, 7);
  1613. USER[playerid][pLOGINS] = strval(Query_User);
  1614.  
  1615. db_get_field_assoc(Resultado, "KICKS", Query_User, 6);
  1616. USER[playerid][pKICKS] = strval(Query_User);
  1617.  
  1618. db_get_field_assoc(Resultado, "MATOU", Query_User, 6);
  1619. USER[playerid][pMATOU] = strval(Query_User);
  1620.  
  1621. db_get_field_assoc(Resultado, "MORREU", Query_User, 7);
  1622. USER[playerid][pMORREU] = strval(Query_User);
  1623.  
  1624. db_get_field_assoc(Resultado, "AVISOS", Query_User, 7);
  1625. USER[playerid][pAVISO] = strval(Query_User);
  1626.  
  1627. db_get_field_assoc(Resultado, "PRESO", Query_User, 6);
  1628. USER[playerid][pPRESO] = strval(Query_User);
  1629.  
  1630. db_get_field_assoc(Resultado, "TEMPO PRESO", Query_User, 12);
  1631. USER[playerid][pTEMPOPRESO] = strval(Query_User);
  1632.  
  1633. db_get_field_assoc(Resultado, "CALADO", Query_User, 7);
  1634. USER[playerid][pCALADO] = strval(Query_User);
  1635.  
  1636. db_get_field_assoc(Resultado, "TEMPO CALADO", Query_User, 13);
  1637. USER[playerid][pTEMPOCALADO] = strval(Query_User);
  1638.  
  1639. db_get_field_assoc(Resultado, "DIAS", Query_User, 5);
  1640. USER[playerid][pDIAS] = strval(Query_User);
  1641.  
  1642. db_get_field_assoc(Resultado, "HORAS", Query_User, 6);
  1643. USER[playerid][pHORAS] = strval(Query_User);
  1644.  
  1645. db_get_field_assoc(Resultado, "MINUTOS", Query_User, 8);
  1646. USER[playerid][pMINUTOS] = strval(Query_User);
  1647.  
  1648. db_get_field_assoc(Resultado, "SEGUNDOS", Query_User, 9);
  1649. USER[playerid][pSEGUNDOS] = strval(Query_User);
  1650.  
  1651. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `LOGINS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pLOGINS] += 1, DB_Escape(GetName(playerid)));
  1652. db_query(User_Database, Query_User);
  1653.  
  1654. USER[playerid][pLOGADO] = true;
  1655.  
  1656. SendClientMessage(playerid, COR_CHAT, "[»] Conta carregada com sucesso!");
  1657. }
  1658. db_free_result(db_query(User_Database, Query_User));
  1659.  
  1660. SetPlayerSkin(playerid, USER[playerid][pSKIN]);
  1661. TogglePlayerControllable(playerid, 1);
  1662.  
  1663. if(USER[playerid][pPOS][0] != 0.0 && USER[playerid][pPOS][1] != 0.0 && USER[playerid][pPOS][2] != 0.0)
  1664. SetPlayerPos(playerid, USER[playerid][pPOS][0], USER[playerid][pPOS][1], USER[playerid][pPOS][2]),
  1665. SetPlayerFacingAngle(playerid, USER[playerid][pANGULO]);
  1666.  
  1667. strcat((STRCAT[0] = EOS, STRCAT), STRCAT);
  1668.  
  1669. switch(USER[playerid][pADMIN])
  1670. {
  1671. case 1: strcat(STRCAT, "HELPER");
  1672. case 2: strcat(STRCAT, "MODERADOR");
  1673. case 3: strcat(STRCAT, "ADMINISTRADOR");
  1674. case 4: strcat(STRCAT, "OWNER");
  1675. }
  1676.  
  1677. if(USER[playerid][pADMIN] > 0)
  1678. {
  1679. format(STRING, sizeof(STRING), "[»] Bem vindo Administrador '%s [Level: %s]'.", GetName(playerid), STRCAT);
  1680. SendClientMessage(playerid, COR_AVISO, STRING);
  1681. }
  1682. if(USER[playerid][pKICKS] > 0)
  1683. {
  1684. format(STRING, sizeof(STRING), "[»] Você atualmente tem '%i' kicks.", USER[playerid][pKICKS]);
  1685. SendClientMessage(playerid, COR_AVISO, STRING);
  1686. }
  1687. if(USER[playerid][pPRESO] > 0)
  1688. {
  1689. JailPlayer(playerid);
  1690.  
  1691. PlayerCheckInJailTime[playerid] = SetTimerEx("PlayerCheckInJail", 1000, true, "i", playerid);
  1692. }
  1693. if(USER[playerid][pCALADO] > 0)
  1694. {
  1695. format(STRING, sizeof(STRING), "[»] Você vai permanecer calado até acabarem os '%i' segundos restantes.", USER[playerid][pTEMPOCALADO]);
  1696. SendClientMessage(playerid, COR_AVISO, STRING);
  1697. }
  1698.  
  1699. CarregarDados[playerid] = false;
  1700.  
  1701. CheckHealthArmourTime[playerid] = SetTimerEx("CheckHealthArmour", 1000, true, "i", playerid);
  1702. return 1;
  1703. }
  1704. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|PUBLIC_SAVE_LOG|==--==--====--==--====--==--==//
  1705. function:SaveLog(filename[], text[])
  1706. {
  1707. #if LOG_ENABLED == true
  1708.  
  1709. new
  1710. STRING[256]
  1711. ;
  1712.  
  1713. if(!fexist(_LOG_))
  1714. {
  1715. printf("Não foi possível sobrescrever o arquivo '%s'. Pasta '%s' ou arquivo '%s' não existe.", filename, _LOG_, filename);
  1716. print("Os arquivos de Logs não serão salvos corretamente.");
  1717. printf("Crie a pasta de destino: '%s'.", _LOG_);
  1718.  
  1719. foreach(new i : Player)
  1720. {
  1721. if(USER[i][pADMIN] >= 1)
  1722. {
  1723. SendClientMessage(i, COR_ERRO, "—_—_—_—_—_—_—_—_—_—¦×ERRO×CRÍTICOצ—_—_—_—_—_—_—_—_—_—");
  1724. format(STRING, sizeof(STRING), "Não foi possível sobrescrever o arquivo '%s'. Pasta ou arquivo não existe: '%s'.", filename, _LOG_);
  1725. SendClientMessage(i, COR_MENSAGEM, STRING);
  1726. SendClientMessage(i, COR_MENSAGEM, "Os arquivos de Logs não serão salvos corretamente. Cheque o console para mais informações.");
  1727. return 0;
  1728. }
  1729. }
  1730. }
  1731.  
  1732. new File:file,
  1733. filepath[200]
  1734. ;
  1735.  
  1736. new year, month, day;
  1737. new hour, minute, second;
  1738.  
  1739. getdate(year, month, day);
  1740. gettime(hour, minute, second);
  1741. format(filepath, sizeof(filepath), ""_LOG_"%s", filename);
  1742. file = fopen(filepath, io_append);
  1743. format(STRING, sizeof(STRING),"[%02d/%02d/%02d | %02d:%02d:%02d] '%s'\r\n", month, day, year, hour, minute, second, text);
  1744. fwrite(file, STRING);
  1745. fclose(file);
  1746.  
  1747. #endif
  1748.  
  1749. return 1;
  1750. }
  1751. //==--==--====--==--====--==--==|PUBLIC_MONEY_CHECK|==--==--====--==--====--==--==//
  1752. #if ANTI_MONEY_ENABLED == true
  1753. function: MoneyCheck()
  1754. {
  1755. foreach(new i : Player)
  1756. {
  1757. if(GetPlayerMoney(i) != USER[i][pDINHEIRO])
  1758. {
  1759. ResetPlayerMoney(i);
  1760. GivePlayerMoney(i, USER[i][pDINHEIRO]);
  1761. }
  1762. }
  1763. return 1;
  1764. }
  1765. #endif
  1766. //==--==--====--==--====--==--==|PUBLIC_ARMOUR_HEALTH_CHECK|==--==--====--==--====--==--==//
  1767. #if ANTI_ARM_HEAL_ENABLED == true
  1768. function:CheckHealthArmour(playerid)
  1769. {
  1770. foreach(new i : Player)
  1771. {
  1772. if(!IsPlayerAdmin(i) || USER[i][pADMIN] == 0 || pGOD[playerid] == false)
  1773. {
  1774. new
  1775. STRING[128]
  1776. ;
  1777.  
  1778. new Float:HEALTH;
  1779. GetPlayerHealth(i, HEALTH);
  1780.  
  1781. new Float:ARMOUR;
  1782. GetPlayerArmour(i, ARMOUR);
  1783.  
  1784. if(HEALTH > MAX_HEALTH && ARMOUR > MAX_ARMOUR)
  1785. {
  1786. format(STRING, sizeof(STRING), "[»] Player %s [ID: %i] foi Kickado por usar Health e Armour Hack.", GetName(i), i);
  1787. SendClientMessageToAll(COR_AVISO, STRING);
  1788. printf(STRING);
  1789.  
  1790. for(new cl = 0; cl < 100; cl++)
  1791. SendClientMessage(playerid, COR_AVISO, "");
  1792.  
  1793. SendClientMessage(playerid, COR_AVISO, "[»] Você foi KICKADO por usar HEALTH HACK e ARMOUR HACK:");
  1794. SendClientMessage(playerid, COR_AVISO, "[•] Hacks/Xiters ou qualquer programa ilegal resultará em punição;");
  1795. SendClientMessage(playerid, COR_AVISO, "[•] O mau cumprimento das /regras ocasionará Kick / Ban;");
  1796.  
  1797. tkKick(i);
  1798. }
  1799. else if(HEALTH > MAX_HEALTH)
  1800. {
  1801. format(STRING, sizeof(STRING), "[»] Player %s [ID: %i] foi Kickado por usar Health Hack.", GetName(i), i);
  1802. SendClientMessageToAll(COR_AVISO, STRING);
  1803. printf(STRING);
  1804.  
  1805. for(new cl = 0; cl < 100; cl++)
  1806. SendClientMessage(playerid, COR_AVISO, "");
  1807.  
  1808. SendClientMessage(playerid, COR_AVISO, "[»] Você foi KICKADO por usar HEALTH HACK:");
  1809. SendClientMessage(playerid, COR_AVISO, "[•] Hacks/Xiters ou qualquer programa ilegal resultará em punição;");
  1810. SendClientMessage(playerid, COR_AVISO, "[•] O mau cumprimento das /regras ocasionará Kick / Ban;");
  1811.  
  1812. tkKick(i);
  1813. }
  1814. else if(ARMOUR > MAX_ARMOUR)
  1815. {
  1816. format(STRING, sizeof(STRING), "[»] Player %s [ID: %i] foi Kickado por usar Armour Hack.", GetName(i), i);
  1817. SendClientMessageToAll(COR_AVISO, STRING);
  1818. printf(STRING);
  1819.  
  1820. for(new cl = 0; cl < 100; cl++)
  1821. SendClientMessage(playerid, COR_AVISO, "");
  1822.  
  1823. SendClientMessage(playerid, COR_AVISO, "[»] Você foi KICKADO por usar ARMOUR HACK:");
  1824. SendClientMessage(playerid, COR_AVISO, "[•] Hacks/Xiters ou qualquer programa ilegal resultará em punição;");
  1825. SendClientMessage(playerid, COR_AVISO, "[•] O mau cumprimento das /regras ocasionará Kick / Ban;");
  1826.  
  1827. tkKick(i);
  1828. }
  1829. }
  1830. }
  1831. return 1;
  1832. }
  1833. #endif
  1834. //==--==--====--==--====--==--==|PUBLIC_RESTART_SERVER|==--==--====--==--====--==--==//
  1835. function:ReiniciarServidor()
  1836. {
  1837. foreach(new i : Player)
  1838. {
  1839. if(USER[i][pLOGADO] == true)
  1840. {
  1841. SaveData(i);
  1842. }
  1843. }
  1844.  
  1845. return SendRconCommand("gmx");
  1846. }
  1847. //==--==--====--==--====--==--==|PUBLIC_RESTART_SERVER|==--==--====--==--====--==--==//
  1848. function:DesligarServidor()
  1849. {
  1850. foreach(new i : Player)
  1851. {
  1852. if(USER[i][pLOGADO] == true)
  1853. {
  1854. SaveData(i);
  1855. }
  1856. }
  1857.  
  1858. return SendRconCommand("exit");
  1859. }
  1860. //==--==--====--==--====--==--==|PUBLIC_SAVE_TIME_ON_DISCONNECT|==--==--====--==--====--==--==//
  1861. function:SaveData(playerid)
  1862. {
  1863. new
  1864. Query_User[800]
  1865. ;
  1866.  
  1867. if(USER[playerid][pLOGADO] == true)
  1868. {
  1869. GetPlayerPos(playerid, USER[playerid][pPOS][0], USER[playerid][pPOS][1], USER[playerid][pPOS][2]);
  1870. GetPlayerFacingAngle(playerid, USER[playerid][pANGULO]);
  1871.  
  1872. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `DIAS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pDIAS], DB_Escape(GetName(playerid)));
  1873. db_query(User_Database, Query_User);
  1874.  
  1875. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `HORAS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pHORAS], DB_Escape(GetName(playerid)));
  1876. db_query(User_Database, Query_User);
  1877.  
  1878. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `MINUTOS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pMINUTOS], DB_Escape(GetName(playerid)));
  1879. db_query(User_Database, Query_User);
  1880.  
  1881. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `SEGUNDOS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pSEGUNDOS], DB_Escape(GetName(playerid)));
  1882. db_query(User_Database, Query_User);
  1883.  
  1884. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pTEMPOPRESO], DB_Escape(GetName(playerid)));
  1885. db_query(User_Database, Query_User);
  1886.  
  1887. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `TEMPO CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pTEMPOCALADO], DB_Escape(GetName(playerid)));
  1888. db_query(User_Database, Query_User);
  1889.  
  1890. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `TEMPO CMD CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pTEMPOCMDCALADO], DB_Escape(GetName(playerid)));
  1891. db_query(User_Database, Query_User);
  1892.  
  1893. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `POS X` = '%f' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pPOS][0], DB_Escape(GetName(playerid)));
  1894. db_query(User_Database, Query_User);
  1895.  
  1896. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `POS Y` = '%f' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pPOS][1], DB_Escape(GetName(playerid)));
  1897. db_query(User_Database, Query_User);
  1898.  
  1899. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `POS Z` = '%f' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pPOS][2], DB_Escape(GetName(playerid)));
  1900. db_query(User_Database, Query_User);
  1901.  
  1902. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `ANGULO` = '%f' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pANGULO], DB_Escape(GetName(playerid)));
  1903. db_query(User_Database, Query_User);
  1904.  
  1905. #if ANTI_MONEY_ENABLED == false
  1906. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `DINHEIRO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", GetPlayerMoney(playerid), DB_Escape(GetName(playerid)));
  1907. db_query(User_Database, Query_User);
  1908. #endif
  1909. }
  1910. return 1;
  1911. }
  1912. //==--==--====--==--====--==--==|COMMANDS_PLAYERS|==--==--====--==--====--==--==//
  1913. CMD:cmds(playerid)
  1914. {
  1915. new
  1916. STRING[400]
  1917. ;
  1918.  
  1919. strcat(STRING, "[»] /EMAIL = Salva o seu email no Banco de Dados.\n");
  1920. strcat(STRING, "[»] /ADMINS = Visualiza os Admins online.\n");
  1921. strcat(STRING, "[»] /VIPS = Visualiza os Players VIPS online.\n");
  1922. strcat(STRING, "[»] /STATUS = Visualiza o seu Status.\n");
  1923. strcat(STRING, "[»] /ALTERARSENHA = Altera sua senha no Banco de Dados.\n");
  1924. strcat(STRING, "[»] /ALTERARRESPOSTA = Altera sua resposta no Banco de Dados.\n");
  1925. strcat(STRING, "[»] /RESETARSTATUS = Reseta todo seu Status desde o início.\n");
  1926. ShowPlayerDialog(playerid, DIALOG_STRCAT, DIALOG_STYLE_MSGBOX, "[»] Painel de Comandos TK Player", STRING, "OK","");
  1927.  
  1928. return 1;
  1929. }
  1930.  
  1931. CMD:admins(playerid)
  1932. {
  1933. new
  1934. STRING[128],
  1935. Contar = 0,
  1936. ADM_LEVEL[20],
  1937. DIALOG[200]
  1938. ;
  1939.  
  1940. foreach(new i : Player)
  1941. {
  1942. switch(USER[i][pADMIN])
  1943. {
  1944. case 1: strcat(ADM_LEVEL, "HELPER");
  1945. case 2: strcat(ADM_LEVEL, "MODERADOR");
  1946. case 3: strcat(ADM_LEVEL, "ADMINISTRADOR");
  1947. case 4: strcat(ADM_LEVEL, "OWNER");
  1948. }
  1949.  
  1950. if(USER[i][pLOGADO] == true)
  1951. {
  1952. if(USER[i][pADMIN] > 0)
  1953. {
  1954. format(STRING, sizeof(STRING), "[ADMIN] %s - Level [%s]\n", GetName(i), ADM_LEVEL),
  1955. strcat(DIALOG, STRING),
  1956. Contar++;
  1957. }
  1958. ShowPlayerDialog(playerid, DIALOG_STRCAT, DIALOG_STYLE_MSGBOX, "Admins Online:", DIALOG, "OK","");
  1959. }
  1960. }
  1961. if(Contar == 0) return SendClientMessage(playerid, COR_MENSAGEM, "Não há admins online.");
  1962.  
  1963. return 1;
  1964. }
  1965.  
  1966. CMD:vips(playerid)
  1967. {
  1968. new
  1969. STRING[128],
  1970. Contar = 0,
  1971. VIP_LEVEL[20],
  1972. DIALOG[200]
  1973. ;
  1974.  
  1975. foreach(new i : Player)
  1976. {
  1977. switch(USER[i][pVIP])
  1978. {
  1979. case 1: strcat(VIP_LEVEL, "BRONZE");
  1980. case 2: strcat(VIP_LEVEL, "PRATA");
  1981. case 3: strcat(VIP_LEVEL, "OURO");
  1982. }
  1983.  
  1984. if(USER[i][pLOGADO] == true)
  1985. {
  1986. if(USER[i][pVIP] > 0)
  1987. {
  1988. format(STRING, sizeof(STRING), "[ADMIN] %s - Level [%s]\n", GetName(i), VIP_LEVEL),
  1989. strcat(DIALOG, STRING),
  1990. Contar++;
  1991. }
  1992. ShowPlayerDialog(playerid, DIALOG_STRCAT, DIALOG_STYLE_MSGBOX, "VIPS Online:", DIALOG, "OK","");
  1993. }
  1994. }
  1995. if(Contar == 0) return SendClientMessage(playerid, COR_MENSAGEM, "Não há VIPS online.");
  1996.  
  1997. return 1;
  1998. }
  1999.  
  2000. CMD:alterarsenha(playerid)
  2001. {
  2002. if(USER[playerid][pLOGADO] == false)
  2003. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2004.  
  2005. if(USER[playerid][pALTERARDADOS] == false)
  2006. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Para alterar a senha é necessário pedir permissão para um Admin.");
  2007.  
  2008. if(Changed[playerid] == true)
  2009. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você já alterou a senha. Relogue sua conta para alterar novamente.");
  2010.  
  2011. ChangePass[playerid] = true;
  2012.  
  2013. ShowPlayerDialog(playerid, DIALOG_ALTERAR, DIALOG_STYLE_PASSWORD, "[»] Painel de Alteração de Dados", "[»] Para alterar a senha,\nvocê deve inserir a senha anterior:", "AVANÇAR","CANCELAR");
  2014.  
  2015. SendClientMessage(playerid, COR_MENSAGEM, "[»] Insira a senha anterior.");
  2016.  
  2017. return 1;
  2018. }
  2019.  
  2020. CMD:alterarresposta(playerid)
  2021. {
  2022. new
  2023. STRING[200]
  2024. ;
  2025.  
  2026. if(USER[playerid][pLOGADO] == false)
  2027. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2028.  
  2029. if(USER[playerid][pALTERARDADOS] == false)
  2030. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Para alterar a resposta é necessário pedir permissão para um Admin.");
  2031.  
  2032. if(Changed[playerid] == true)
  2033. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você já alterou a resposta. Relogue sua conta para alterar novamente.");
  2034.  
  2035. ChangeAnswer[playerid] = true;
  2036.  
  2037. format(STRING, sizeof(STRING), "[»] Para alterar a resposta da pergunta de segurança,\nvocê deve inserir a resposta anterior da pergunta:\nP: %s", USER[playerid][pPERGUNTA]);
  2038. ShowPlayerDialog(playerid, DIALOG_ALTERAR, DIALOG_STYLE_INPUT, "[»] Painel de Alteração de Dados", STRING, "AVANÇAR","CANCELAR");
  2039.  
  2040. SendClientMessage(playerid, COR_MENSAGEM, "[»] Insira a resposta da pergunta anterior.");
  2041.  
  2042. return 1;
  2043. }
  2044.  
  2045. CMD:email(playerid, params[])
  2046. {
  2047. new
  2048. STRING[129],
  2049. EMAIL[40]
  2050. ;
  2051.  
  2052. if(USER[playerid][pLOGADO] == false)
  2053. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2054.  
  2055. if(sscanf(params, "s[40]", EMAIL))
  2056. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /EMAIL [endereço de email]");
  2057.  
  2058. if(Changed[playerid] == true)
  2059. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você já cadastrou um email.");
  2060.  
  2061. if(strcmp(USER[playerid][pEMAIL], "N/A", true) == 0)
  2062. {
  2063. if(strfind(EMAIL, "@hotmail", true) == 0 ||
  2064. strfind(EMAIL, "@outlook", true) == 0 ||
  2065. strfind(EMAIL, "@gmail", true) == 0 ||
  2066. strfind(EMAIL, "@bol", true) == 0 ||
  2067. strfind(EMAIL, "@uol", true) == 0 ||
  2068. strfind(EMAIL, "@live", true) == 0 ||
  2069. strfind(EMAIL, "@yahoo", true) == 0)
  2070. SendClientMessage(playerid, COR_AVISO, "[»] Email inválido.");
  2071. else if(strfind(EMAIL, "@hotmail.", true) != -1 ||
  2072. strfind(EMAIL, "@outlook.", true) != -1 ||
  2073. strfind(EMAIL, "@gmail.", true) != -1 ||
  2074. strfind(EMAIL, "@bol.", true) != -1 ||
  2075. strfind(EMAIL, "@uol.", true) != -1 ||
  2076. strfind(EMAIL, "@live.", true) != -1 ||
  2077. strfind(EMAIL, "@yahoo.", true) != -1)
  2078. {
  2079. format(STRING, sizeof(STRING), "[»] Você cadastrou o Email: '%s'.", EMAIL);
  2080. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  2081.  
  2082. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `EMAIL` = '%s' WHERE `NOME` = '%s' COLLATE NOCASE", EMAIL, DB_Escape(GetName(playerid)));
  2083. db_free_result(db_query(User_Database, STRING));
  2084.  
  2085. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2086.  
  2087. Changed[playerid] = true;
  2088. }
  2089. else SendClientMessage(playerid, COR_AVISO, "[»] Email inválido.");
  2090. }
  2091. else SendClientMessage(playerid, COR_AVISO, "[»] Um email já foi cadastrado.");
  2092.  
  2093. format(STRING, sizeof(STRING), "[»] Player '%s' cadastrou o Email: '%s'.", GetName(playerid), EMAIL);
  2094. #if LOG_ENABLED == true
  2095. SaveLog("Email.txt", STRING);
  2096. #endif
  2097.  
  2098. return 1;
  2099. }
  2100.  
  2101. CMD:resetarstatus(playerid)
  2102. {
  2103. if(USER[playerid][pLOGADO] == false)
  2104. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2105.  
  2106. ShowPlayerDialog(playerid, DIALOG_RESETAR_STATUS, DIALOG_STYLE_MSGBOX, "[»] Painel de Resetar Status", "[»] IMPORTANTE:\n\nTenha em mente que suas estatísticas como:\nNOME, SENHA, KICKS, AVISOS, ADMIN, CALADO, PRESO, CMDCALADO, PERGUNTA e RESPOSTA\nnão serão resetados e ficarão na sua conta para sempre!\n\nVocê tem certeza que quer resetar todo seu status salvo até o momento?", "SIM","NÃO");
  2107.  
  2108. return 1;
  2109. }
  2110.  
  2111. CMD:status(playerid)
  2112. {
  2113. new
  2114. STRING[500],
  2115. STATS[200],
  2116. Float:RATIO
  2117. ;
  2118.  
  2119. if(USER[playerid][pLOGADO] == false)
  2120. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2121.  
  2122. RATIO = (float(USER[playerid][pMATOU]) / (USER[playerid][pMORREU]));
  2123. format(STATS, sizeof(STATS), "Seus Status Atual:\n\n");strcat(STRING, STATS);
  2124. format(STATS, sizeof(STATS), "NOME: %s\n", USER[playerid][pNOME]);strcat(STRING, STATS);
  2125. format(STATS, sizeof(STATS), "REGISTRO: %s\n", USER[playerid][pREGISTRO]);strcat(STRING, STATS);
  2126. format(STATS, sizeof(STATS), "POS X: %f\n", USER[playerid][pPOS][0]);strcat(STRING, STATS);
  2127. format(STATS, sizeof(STATS), "POS Y: %f\n", USER[playerid][pPOS][1]);strcat(STRING, STATS);
  2128. format(STATS, sizeof(STATS), "POS Z: %f\n", USER[playerid][pPOS][2]);strcat(STRING, STATS);
  2129. format(STATS, sizeof(STATS), "SKIN: %i\n", USER[playerid][pSKIN]);strcat(STRING, STATS);
  2130. format(STATS, sizeof(STATS), "DINHEIRO: %i\n", USER[playerid][pDINHEIRO]);strcat(STRING, STATS);
  2131. format(STATS, sizeof(STATS), "SCORE: %i\n", USER[playerid][pSCORE]);strcat(STRING, STATS);
  2132. format(STATS, sizeof(STATS), "ADMIN: %i\n", USER[playerid][pADMIN]);strcat(STRING, STATS);
  2133. format(STATS, sizeof(STATS), "LOGINS: %i\n", USER[playerid][pLOGINS]);strcat(STRING, STATS);
  2134. format(STATS, sizeof(STATS), "KICKS: %i\n", USER[playerid][pKICKS]);strcat(STRING, STATS);
  2135. format(STATS, sizeof(STATS), "MATOU: %i\n", USER[playerid][pMATOU]);strcat(STRING, STATS);
  2136. format(STATS, sizeof(STATS), "MORREU: %i\n", USER[playerid][pMORREU]);strcat(STRING, STATS);
  2137. format(STATS, sizeof(STATS), "RATIO: %.2f\n", RATIO);strcat(STRING, STATS);
  2138. format(STATS, sizeof(STATS), "AVISOS: %i\n", USER[playerid][pAVISO]);strcat(STRING, STATS);
  2139. format(STATS, sizeof(STATS), "PERGUNTA: %s\n", USER[playerid][pPERGUNTA]);strcat(STRING, STATS);
  2140. format(STATS, sizeof(STATS), "EMAIL: %s\n", USER[playerid][pEMAIL]);strcat(STRING, STATS);
  2141. format(STATS, sizeof(STATS), "DIAS: %i\n", USER[playerid][pDIAS]);strcat(STRING, STATS);
  2142. format(STATS, sizeof(STATS), "HORAS: %i\n", USER[playerid][pHORAS]);strcat(STRING, STATS);
  2143. format(STATS, sizeof(STATS), "MINUTOS: %i\n", USER[playerid][pMINUTOS]);strcat(STRING, STATS);
  2144. format(STATS, sizeof(STATS), "SEGUNDOS: %i\n", USER[playerid][pSEGUNDOS]);strcat(STRING, STATS);
  2145. ShowPlayerDialog(playerid, DIALOG_STRCAT, DIALOG_STYLE_MSGBOX, "[»] Painel de Status", STRING, "OK","");
  2146.  
  2147. SendClientMessage(playerid, COR_MENSAGEM, "[»] Visualizando seu status.");
  2148.  
  2149. return 1;
  2150. }
  2151. //==--==--====--==--====--==--==|COMMANDS_VIP_LVL_1|==--==--====--==--====--==--==//
  2152. CMD:cmdsvip(playerid)
  2153. {
  2154. new
  2155. STRING[300]
  2156. ;
  2157.  
  2158. if(USER[playerid][pVIP] < 1)
  2159. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não é um jogador VIP.");
  2160.  
  2161. if(USER[playerid][pVIP] > 0)
  2162. {
  2163. strcat(STRING, "[»] COMANDOS VIP LEVEL BRONZE\n");
  2164. strcat(STRING, "[»] /COLETE = Enche o Colete.\n");
  2165. strcat(STRING, "[»] /VIDA = Enche a Vida.\n");
  2166. }
  2167. if(USER[playerid][pVIP] > 1)
  2168. {
  2169. strcat(STRING, "\n[»] COMANDOS VIP LEVEL PRATA\n");
  2170. strcat(STRING, "[»] Sem comandos.\n");
  2171. }
  2172. if(USER[playerid][pVIP] > 2)
  2173. {
  2174. strcat(STRING, "\n[»] COMANDOS VIP LEVEL OURO\n");
  2175. strcat(STRING, "[»] /GOD = Lhe torna Imortal.\n");
  2176. }
  2177. ShowPlayerDialog(playerid, DIALOG_STRCAT, DIALOG_STYLE_MSGBOX, "[»] Painel de Comandos TK VIP", STRING, "OK","");
  2178.  
  2179. return 1;
  2180. }
  2181.  
  2182. CMD:statusvip(playerid, params[])
  2183. {
  2184. new
  2185. STATS[80],
  2186. STRCAT[300],
  2187. LEVEL[10]
  2188. ;
  2189.  
  2190. if(USER[playerid][pLOGADO] == false)
  2191. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2192.  
  2193. if(USER[playerid][pVIP] < 1)
  2194. return SendClientMessage(playerid, 0xFF0000FF, "Você não é um jogador VIP.");
  2195.  
  2196. switch(USER[playerid][pVIP])
  2197. {
  2198. case 1: strcat(LEVEL, "BRONZE");
  2199. case 2: strcat(LEVEL, "PRATA");
  2200. case 3: strcat(LEVEL, "OURO");
  2201. }
  2202.  
  2203. format(STATS, sizeof(STATS), "NOME: %s\n", GetName(playerid));strcat(STRCAT, STATS);
  2204. format(STATS, sizeof(STATS), "NÍVEL: %s\n", LEVEL);strcat(STRCAT, STATS);
  2205. format(STATS, sizeof(STATS), "TEMPO RECEBIDO: %s\n", USER[playerid][pRECEIVEDTIME]);strcat(STRCAT, STATS);
  2206. format(STATS, sizeof(STATS), "TEMPO RESTANTE: %s\n", ConvertTime(USER[playerid][pTIMEVIP] - gettime()));strcat(STRCAT, STATS);
  2207.  
  2208. ShowPlayerDialog(playerid, DIALOG_STATUS_VIP, DIALOG_STYLE_MSGBOX, "Painel de Status VIP", STRCAT, "OK","");
  2209.  
  2210. return 1;
  2211. }
  2212.  
  2213. CMD:vida(playerid, params[])
  2214. {
  2215. if(USER[playerid][pLOGADO] == false)
  2216. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2217.  
  2218. if(USER[playerid][pVIP] < 1)
  2219. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser um jogador VIP Level BRONZE para realizar esta ação.");
  2220.  
  2221. #if ANTI_ARM_HEAL_ENABLED == true
  2222. SetPlayerHealth(playerid, 99.5);
  2223. #else
  2224. SetPlayerHealth(playerid, 100.0);
  2225. #endif
  2226.  
  2227. return 1;
  2228. }
  2229.  
  2230. CMD:colete(playerid, params[])
  2231. {
  2232. if(USER[playerid][pLOGADO] == false)
  2233. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2234.  
  2235. if(USER[playerid][pVIP] < 1)
  2236. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser um jogador VIP Level BRONZE para realizar esta ação.");
  2237.  
  2238. #if ANTI_ARM_HEAL_ENABLED == true
  2239. SetPlayerArmour(playerid, 99.5);
  2240. #else
  2241. SetPlayerArmour(playerid, 100.0);
  2242. #endif
  2243.  
  2244. return 1;
  2245. }
  2246. //==--==--====--==--====--==--==|COMMANDS_VIP_LVL_3|==--==--====--==--====--==--==//
  2247. CMD:god(playerid, params[])
  2248. {
  2249. if(USER[playerid][pLOGADO] == false)
  2250. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2251.  
  2252. if(USER[playerid][pVIP] < 3)
  2253. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser um jogador VIP Level OURO para realizar esta ação.");
  2254.  
  2255. if(pGOD[playerid] == false)
  2256. SetPlayerHealth(playerid, 99999999.0),
  2257. pGOD[playerid] = true,
  2258. SendClientMessage(playerid, COR_MENSAGEM, "[»] GOD MODE Ativado.");
  2259. else
  2260. #if ANTI_ARM_HEAL_ENABLED == true
  2261. SetPlayerHealth(playerid, 99.5),
  2262. #else
  2263. SetPlayerHealth(playerid, 100.0),
  2264. #endif
  2265. pGOD[playerid] = false,
  2266. SendClientMessage(playerid, COR_MENSAGEM, "[»] GOD MODE Desativado.");
  2267.  
  2268. return 1;
  2269. }
  2270. //==--==--====--==--====--==--==|COMMANDS_ADMIN_LVL_1|==--==--====--==--====--==--==//
  2271. CMD:acmds(playerid, params[])
  2272. {
  2273. new
  2274. STRING[1000]
  2275. ;
  2276.  
  2277. if(USER[playerid][pADMIN] < 1)
  2278. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não é um jogador VIP.");
  2279.  
  2280. strcat(STRING, "[»] COMANDOS ADMIN LEVEL HELPER\n");
  2281. strcat(STRING, "[»] /LCHAT = Limpa o chat.\n");
  2282. strcat(STRING, "[»] /AVISAR = Da um aviso ao player.\n");
  2283. strcat(STRING, "[»] /RELOGAR = Reloga o player (literalmente).\n");
  2284. strcat(STRING, "[»] /IRPOS = Vai na posição de um jogador.\n");
  2285. strcat(STRING, "[»] /EXPLODIR = Explode um jogador.\n");
  2286. strcat(STRING, "[»] /SETPOS = Seta a posição de um jogador.\n");
  2287. strcat(STRING, "[»] /TAPA = Da um tapa no player.\n");
  2288. strcat(STRING, "[»] /REPVEICULO = Repara o veículo de um player.\n");
  2289. strcat(STRING, "[»] /SETVEICULO = Seta o veículo para um player.\n");
  2290. strcat(STRING, "[»] /DARVIDA = Da vida a um player.\n");
  2291. strcat(STRING, "[»] /DARCOLETE = Da colete para um player.\n");
  2292. strcat(STRING, "[»] /DARVIDACOLETE = Da vida e colete para um player.\n");
  2293. strcat(STRING, "[»] /TRAZER = Traz um jogador até sua posição.\n");
  2294. ShowPlayerDialog(playerid, DIALOG_ADM_CMDS_1, DIALOG_STYLE_MSGBOX, "Painel de Comandos TK Admin", STRING, "AVANÇAR","FECHAR");
  2295.  
  2296. return 1;
  2297. }
  2298.  
  2299. CMD:trazer(playerid, params[])
  2300. {
  2301. new
  2302. TARGET,
  2303. STRING[129],
  2304. Float:PosX,
  2305. Float:PosY,
  2306. Float:PosZ
  2307. ;
  2308.  
  2309. if(USER[playerid][pLOGADO] == false)
  2310. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2311.  
  2312. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2313. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2314.  
  2315. if(sscanf(params, "u", TARGET))
  2316. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /TRAZER [ID]");
  2317.  
  2318. if(!IsPlayerConnected(TARGET))
  2319. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2320.  
  2321. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2322. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2323. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te Puxar para aposição dele.", GetName(playerid), playerid),\
  2324. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2325.  
  2326. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2327. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2328.  
  2329. GetPlayerPos(playerid, PosX, PosY, PosZ);
  2330. SetPlayerPos(TARGET, PosX, PosY, PosZ);
  2331.  
  2332. format(STRING, sizeof(STRING), "[»] Admin '%s' te trouxe até a posição dele.", GetName(playerid));
  2333. SendClientMessage(TARGET, COR_CHAT, STRING);
  2334.  
  2335. format(STRING, sizeof(STRING), "[»] Admin '%s' puxou o jogador '%s [ID: %i]' até sua posição.", GetName(playerid), GetName(TARGET), TARGET);
  2336. SendClientMessageToAll(COR_CHAT, STRING);
  2337.  
  2338. #if LOG_ENABLED == true
  2339. SaveLog("Admin_lvl_1.txt", STRING);
  2340. #endif
  2341.  
  2342. return 1;
  2343. }
  2344.  
  2345. CMD:relogar(playerid, params[])
  2346. {
  2347. new
  2348. TARGET,
  2349. STRING[129]
  2350. ;
  2351.  
  2352. if(USER[playerid][pLOGADO] == false)
  2353. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2354.  
  2355. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2356. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2357.  
  2358. if(sscanf(params, "u", TARGET))
  2359. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /RELOGAR [ID]");
  2360.  
  2361. if(!IsPlayerConnected(TARGET))
  2362. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2363.  
  2364. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2365. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2366. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te Relogar.", GetName(playerid), playerid),\
  2367. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2368.  
  2369. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2370. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2371.  
  2372. format(STRING, sizeof(STRING), "[»] Admin '%s' relogou seu IP (%s). Aguarde... (Pode demorar alguns segundos)", GetName(playerid), GetIP(TARGET));
  2373. SendClientMessage(TARGET, COR_CHAT, STRING);
  2374.  
  2375. format(STRING, sizeof(STRING), "[»] Admin '%s' relogou o IP do jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  2376. SendClientMessageToAll(COR_CHAT, STRING);
  2377.  
  2378. Relogando[TARGET] = true;
  2379.  
  2380. GetPlayerIp(TARGET, RelogarIP[TARGET], 20);
  2381.  
  2382. format(STRING, sizeof(STRING), "banip %s", RelogarIP[TARGET]);
  2383. SendRconCommand(STRING);
  2384.  
  2385. #if LOG_ENABLED == true
  2386. SaveLog("Admin_lvl_1.txt", STRING);
  2387. #endif
  2388.  
  2389. return 1;
  2390. }
  2391.  
  2392. CMD:avisar(playerid, params[])
  2393. {
  2394. new
  2395. TARGET,
  2396. MOTIVO[20],
  2397. STRING[129]
  2398. ;
  2399.  
  2400. if(USER[playerid][pLOGADO] == false)
  2401. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2402.  
  2403. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2404. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2405.  
  2406. if(sscanf(params, "uS(PORQUE SIM)[20]", TARGET, MOTIVO))
  2407. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /AVISAR [ID] [MOTIVO]");
  2408.  
  2409. if(!IsPlayerConnected(TARGET))
  2410. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2411.  
  2412. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2413. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2414. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te dar um Aviso.", GetName(playerid), playerid),\
  2415. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2416.  
  2417. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2418. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2419.  
  2420. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `AVISOS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pAVISO] += 1, DB_Escape(GetName(TARGET)));
  2421. db_free_result(db_query(User_Database, STRING));
  2422.  
  2423. format(STRING, sizeof(STRING), "[»] Admin '%s' te deu um aviso. Motivo: '%s'. (%i/3)", GetName(playerid), MOTIVO, USER[TARGET][pAVISO]);
  2424. SendClientMessage(TARGET, COR_CHAT, STRING);
  2425.  
  2426. format(STRING, sizeof(STRING), "[»] Admin '%s' deu um aviso ao jogador '%s [ID: %i]'. Motivo: '%s'. (%i/3)", GetName(playerid), GetName(TARGET), TARGET, MOTIVO, USER[TARGET][pAVISO]);
  2427. SendClientMessageToAll(COR_CHAT, STRING);
  2428.  
  2429. #if LOG_ENABLED == true
  2430. SaveLog("Admin_lvl_1.txt", STRING);
  2431. #endif
  2432.  
  2433. if(USER[TARGET][pAVISO] == 3)
  2434. {
  2435. format(STRING, sizeof(STRING), "[»] Player '%s [ID: %i]' foi kickado automaticamente. Motivo: 'excedeu avisos'. (3/3)", GetName(TARGET), TARGET, MOTIVO);
  2436. SendClientMessageToAll(COR_CHAT, STRING);
  2437.  
  2438. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `AVISOS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pAVISO] = 0, DB_Escape(GetName(TARGET)));
  2439. db_free_result(db_query(User_Database, STRING));
  2440.  
  2441. return tkKick(TARGET);
  2442. }
  2443.  
  2444. return 1;
  2445. }
  2446.  
  2447. CMD:setveiculo(playerid, params[])
  2448. {
  2449. new
  2450. TARGET,
  2451. ID,
  2452. STRING[129],
  2453. COR[2],
  2454. Float:FANGLE,
  2455. Float:PosX,
  2456. Float:PosY,
  2457. Float:PosZ
  2458. ;
  2459.  
  2460. if(USER[playerid][pLOGADO] == false)
  2461. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2462.  
  2463. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2464. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2465.  
  2466. if(sscanf(params, "uiii", TARGET, ID, COR[0], COR[1]))
  2467. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETVEICULO [ID] [VEÍCULO ID] [COR 1] [COR 2]");
  2468.  
  2469. if(!IsPlayerConnected(TARGET))
  2470. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2471.  
  2472. if(ID < 400 || ID > 611)
  2473. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O ID do veículo deve ser entre 400 e 611.");
  2474.  
  2475. if(COR[0] < 0 || COR[1] > 126)
  2476. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Cor inválida. Utilize entre: 0 - 126.");
  2477.  
  2478. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2479. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2480. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou Setar um veículo para você.", GetName(playerid), playerid),\
  2481. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2482.  
  2483. if(IsPlayerInAnyVehicle(TARGET) || IsPlayerInVehicle(TARGET, VEICULO_SERVER[TARGET]))
  2484. {
  2485. format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' estava em um veículo e foi removido do mesmo.", GetName(TARGET), TARGET);
  2486. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  2487.  
  2488. DestroyVehicle(VEICULO_SERVER[TARGET]);
  2489.  
  2490. GetPlayerPos(TARGET, PosX, PosY, PosZ);
  2491. GetVehicleZAngle(VEICULO_SERVER[TARGET], FANGLE);
  2492.  
  2493. VEICULO_SERVER[TARGET] = AddStaticVehicleEx(ID, PosX, PosY, PosZ, FANGLE, COR[0], COR[1], -1);
  2494.  
  2495. PutPlayerInVehicle(TARGET, VEICULO_SERVER[TARGET], 0);
  2496.  
  2497. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2498. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2499.  
  2500. return 1;
  2501. }
  2502.  
  2503. DestroyVehicle(VEICULO_SERVER[TARGET]);
  2504.  
  2505. GetPlayerPos(TARGET, PosX, PosY, PosZ);
  2506. GetPlayerFacingAngle(TARGET, FANGLE);
  2507.  
  2508. VEICULO_SERVER[TARGET] = AddStaticVehicleEx(ID, PosX, PosY, PosZ, FANGLE, COR[0], COR[1], -1);
  2509.  
  2510. PutPlayerInVehicle(TARGET, VEICULO_SERVER[TARGET], 0);
  2511.  
  2512. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2513. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2514.  
  2515. format(STRING, sizeof(STRING), "[»] Admin '%s' te setou o veículo ID '%i'.", GetName(playerid), ID);
  2516. SendClientMessage(TARGET, COR_CHAT, STRING);
  2517.  
  2518. format(STRING, sizeof(STRING), "[»] Admin '%s' setou o veículo ID '%i' para o jogador '%s [ID: %i]'.", GetName(playerid), ID, GetName(TARGET), TARGET);
  2519. SendClientMessageToAll(COR_CHAT, STRING);
  2520.  
  2521. #if LOG_ENABLED == true
  2522. SaveLog("Admin_lvl_1.txt", STRING);
  2523. #endif
  2524.  
  2525. return 1;
  2526. }
  2527.  
  2528. CMD:repveiculo(playerid, params[])
  2529. {
  2530. new
  2531. TARGET,
  2532. STRING[129]
  2533. ;
  2534.  
  2535. if(USER[playerid][pLOGADO] == false)
  2536. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2537.  
  2538. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2539. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2540.  
  2541. if(sscanf(params, "ui", TARGET))
  2542. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /REPVEICULO [ID]");
  2543.  
  2544. if(!IsPlayerConnected(TARGET))
  2545. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2546.  
  2547. if(!IsPlayerInAnyVehicle(TARGET))
  2548. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' não está em um veículo.", GetName(TARGET), TARGET),\
  2549. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  2550.  
  2551. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2552. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2553.  
  2554. RepairVehicle(GetPlayerVehicleID(TARGET));
  2555.  
  2556. format(STRING, sizeof(STRING), "[»] Admin '%s' reparou seu veículo.", GetName(playerid));
  2557. SendClientMessage(TARGET, COR_CHAT, STRING);
  2558.  
  2559. format(STRING, sizeof(STRING), "[»] Admin '%s' reparou o veículo do jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  2560. SendClientMessageToAll(COR_CHAT, STRING);
  2561.  
  2562. #if LOG_ENABLED == true
  2563. SaveLog("Admin_lvl_1.txt", STRING);
  2564. #endif
  2565.  
  2566. return 1;
  2567. }
  2568.  
  2569. CMD:darvida(playerid, params[])
  2570. {
  2571. new
  2572. TARGET,
  2573. STRING[129]
  2574. ;
  2575.  
  2576. if(USER[playerid][pLOGADO] == false)
  2577. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2578.  
  2579. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2580. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2581.  
  2582. if(sscanf(params, "ui", TARGET))
  2583. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DARVIDA [ID]");
  2584.  
  2585. if(!IsPlayerConnected(TARGET))
  2586. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2587.  
  2588. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2589. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2590. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou dar Vida para você.", GetName(playerid), playerid),\
  2591. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2592.  
  2593. #if ANTI_ARM_HEAL_ENABLED == true
  2594. SetPlayerHealth(TARGET, 99.5);
  2595. #else
  2596. SetPlayerHealth(TARGET, 100.0);
  2597. #endif
  2598.  
  2599. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2600. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2601.  
  2602. format(STRING, sizeof(STRING), "[»] Admin '%s' te deu vida.", GetName(playerid));
  2603. SendClientMessage(TARGET, COR_CHAT, STRING);
  2604.  
  2605. format(STRING, sizeof(STRING), "[»] Admin '%s' deu vida para o jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  2606. SendClientMessageToAll(COR_CHAT, STRING);
  2607.  
  2608. #if LOG_ENABLED == true
  2609. SaveLog("Admin_lvl_1.txt", STRING);
  2610. #endif
  2611.  
  2612. return 1;
  2613. }
  2614.  
  2615. CMD:darcolete(playerid, params[])
  2616. {
  2617. new
  2618. TARGET,
  2619. STRING[129]
  2620. ;
  2621.  
  2622. if(USER[playerid][pLOGADO] == false)
  2623. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2624.  
  2625. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2626. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2627.  
  2628. if(sscanf(params, "ui", TARGET))
  2629. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DARCOLETE [ID]");
  2630.  
  2631. if(!IsPlayerConnected(TARGET))
  2632. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2633.  
  2634. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2635. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2636. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou dar Vida para você.", GetName(playerid), playerid),\
  2637. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2638.  
  2639. #if ANTI_ARM_HEAL_ENABLED == true
  2640. SetPlayerArmour(TARGET, 99.5);
  2641. #else
  2642. SetPlayerArmour(TARGET, 100.0);
  2643. #endif
  2644.  
  2645. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2646. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2647.  
  2648. format(STRING, sizeof(STRING), "[»] Admin '%s' te deu colete.", GetName(playerid));
  2649. SendClientMessage(TARGET, COR_CHAT, STRING);
  2650.  
  2651. format(STRING, sizeof(STRING), "[»] Admin '%s' deu colete para o jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  2652. SendClientMessageToAll(COR_CHAT, STRING);
  2653.  
  2654. #if LOG_ENABLED == true
  2655. SaveLog("Admin_lvl_1.txt", STRING);
  2656. #endif
  2657.  
  2658. return 1;
  2659. }
  2660.  
  2661. CMD:darvidacolete(playerid, params[])
  2662. {
  2663. new
  2664. TARGET,
  2665. STRING[129]
  2666. ;
  2667.  
  2668. if(USER[playerid][pLOGADO] == false)
  2669. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2670.  
  2671. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2672. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2673.  
  2674. if(sscanf(params, "ui", TARGET))
  2675. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DARVIDACOLETE [ID]");
  2676.  
  2677. if(!IsPlayerConnected(TARGET))
  2678. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2679.  
  2680. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2681. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2682. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou dar Vida e Colete para você.", GetName(playerid), playerid),\
  2683. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2684.  
  2685. #if ANTI_ARM_HEAL_ENABLED == true
  2686. SetPlayerArmour(TARGET, 99.5);
  2687. SetPlayerHealth(TARGET, 99.5);
  2688. #else
  2689. SetPlayerArmour(TARGET, 100.0);
  2690. SetPlayerHealth(TARGET, 100.0);
  2691. #endif
  2692.  
  2693. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2694. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2695.  
  2696. format(STRING, sizeof(STRING), "[»] Admin '%s' te deu vida e colete.", GetName(playerid));
  2697. SendClientMessage(TARGET, COR_CHAT, STRING);
  2698.  
  2699. format(STRING, sizeof(STRING), "[»] Admin '%s' deu vida e colete para o jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  2700. SendClientMessageToAll(COR_CHAT, STRING);
  2701.  
  2702. #if LOG_ENABLED == true
  2703. SaveLog("Admin_lvl_1.txt", STRING);
  2704. #endif
  2705.  
  2706. return 1;
  2707. }
  2708.  
  2709. CMD:explodir(playerid, params[])
  2710. {
  2711. new
  2712. TARGET,
  2713. STRING[129],
  2714. Float:Health,
  2715. Float:PosX,
  2716. Float:PosY,
  2717. Float:PosZ
  2718. ;
  2719.  
  2720. if(USER[playerid][pLOGADO] == false)
  2721. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2722.  
  2723. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2724. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2725.  
  2726. if(sscanf(params, "u", TARGET))
  2727. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /EXPLODIR [ID]");
  2728.  
  2729. if(!IsPlayerConnected(TARGET))
  2730. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2731.  
  2732. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2733. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2734. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te Explodir.", GetName(playerid), playerid),\
  2735. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2736.  
  2737. GetPlayerPos(TARGET, PosX, PosY, PosZ);
  2738.  
  2739. CreateExplosion(PosX , PosY, PosZ, 7, 10.0);
  2740.  
  2741. GetPlayerHealth(playerid, Health);
  2742. SetPlayerHealth(TARGET, Health-20);
  2743.  
  2744. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2745. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2746.  
  2747. format(STRING, sizeof(STRING), "[»] Admin '%s' te explodiu.", GetName(playerid));
  2748. SendClientMessage(TARGET, COR_CHAT, STRING);
  2749.  
  2750. format(STRING, sizeof(STRING), "[»] Admin '%s' explodiu o jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  2751. SendClientMessageToAll(COR_CHAT, STRING);
  2752.  
  2753. #if LOG_ENABLED == true
  2754. SaveLog("Admin_lvl_1.txt", STRING);
  2755. #endif
  2756.  
  2757. return 1;
  2758. }
  2759.  
  2760. CMD:tapa(playerid, params[])
  2761. {
  2762. new
  2763. TARGET,
  2764. ALTURA,
  2765. STRING[129],
  2766. Float:PosX,
  2767. Float:PosY,
  2768. Float:PosZ,
  2769. Float:Health
  2770. ;
  2771.  
  2772. if(USER[playerid][pLOGADO] == false)
  2773. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2774.  
  2775. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2776. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2777.  
  2778. if(sscanf(params, "ui", TARGET, ALTURA))
  2779. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /TAPA [ID] [ALTURA (m)]");
  2780.  
  2781. if(!IsPlayerConnected(TARGET))
  2782. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2783.  
  2784. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2785. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2786. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te dar um Tapa.", GetName(playerid), playerid),\
  2787. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2788.  
  2789. GetPlayerPos(TARGET, PosX, PosY, PosZ);
  2790. SetPlayerPos(TARGET, PosX, PosY, PosZ+ALTURA);
  2791.  
  2792. GetPlayerHealth(playerid, Health);
  2793. SetPlayerHealth(playerid, Health-5);
  2794.  
  2795. PlayerPlaySound(playerid, 1190, 0.0, 0.0, 0.0);
  2796. PlayerPlaySound(TARGET, 1190, 0.0, 0.0, 0.0);
  2797.  
  2798. format(STRING, sizeof(STRING), "[»] Admin '%s' te deu um tapa. [%i metros do chão]", GetName(playerid), ALTURA);
  2799. SendClientMessage(TARGET, COR_CHAT, STRING);
  2800.  
  2801. format(STRING, sizeof(STRING), "[»] Admin '%s' deu um tapa no jogador '%s [ID: %i]'. [%i metros do chão]", GetName(playerid), GetName(TARGET), TARGET, ALTURA);
  2802. SendClientMessageToAll(COR_CHAT, STRING);
  2803.  
  2804. #if LOG_ENABLED == true
  2805. SaveLog("Admin_lvl_1.txt", STRING);
  2806. #endif
  2807.  
  2808. return 1;
  2809. }
  2810.  
  2811. CMD:setpos(playerid, params[])
  2812. {
  2813. new
  2814. TARGET,
  2815. STRING[129],
  2816. Float:PosX,
  2817. Float:PosY,
  2818. Float:PosZ
  2819. ;
  2820.  
  2821. if(USER[playerid][pLOGADO] == false)
  2822. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2823.  
  2824. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2825. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2826.  
  2827. if(sscanf(params, "ufff", TARGET, PosX, PosY, PosZ))
  2828. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETPOS [ID] [POS X] [POS Y] [POS Z]");
  2829.  
  2830. if(!IsPlayerConnected(TARGET))
  2831. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2832.  
  2833. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2834. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2835. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te setar sua Posição.", GetName(playerid), playerid),\
  2836. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2837.  
  2838. SetPlayerPos(TARGET, PosX, PosY, PosZ);
  2839.  
  2840. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2841. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2842.  
  2843. format(STRING, sizeof(STRING), "[»] Admin '%s' setou sua posição para X:%f Y:%f Z:%f.", GetName(playerid), PosX, PosY, PosZ);
  2844. SendClientMessage(TARGET, COR_CHAT, STRING);
  2845.  
  2846. format(STRING, sizeof(STRING), "[»] Admin '%s' setou a posição do jogador '%s [ID: %i]' para X:%f Y:%f Z:%f.", GetName(playerid), GetName(TARGET), TARGET, PosX, PosY, PosZ);
  2847. SendClientMessageToAll(COR_CHAT, STRING);
  2848.  
  2849. #if LOG_ENABLED == true
  2850. SaveLog("Admin_lvl_1.txt", STRING);
  2851. #endif
  2852.  
  2853. return 1;
  2854. }
  2855.  
  2856. CMD:irpos(playerid, params[])
  2857. {
  2858.  
  2859. new
  2860. TARGET,
  2861. STRING[129],
  2862. Float:PosX,
  2863. Float:PosY,
  2864. Float:PosZ
  2865. ;
  2866.  
  2867. if(USER[playerid][pLOGADO] == false)
  2868. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2869.  
  2870. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  2871. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  2872.  
  2873. if(sscanf(params, "u", TARGET))
  2874. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /IRPOS [ID]");
  2875.  
  2876. if(!IsPlayerConnected(TARGET))
  2877. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  2878.  
  2879. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  2880. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  2881. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou ir até sua posição.", GetName(playerid), playerid),\
  2882. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  2883.  
  2884. GetPlayerPos(TARGET, PosX, PosY, PosZ);
  2885. SetPlayerPos(playerid, PosX+3, PosY, PosZ);
  2886.  
  2887. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2888. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2889.  
  2890. format(STRING, sizeof(STRING), "[»] Admin '%s' foi até sua posição.", GetName(playerid));
  2891. SendClientMessage(TARGET, COR_CHAT, STRING);
  2892.  
  2893. format(STRING, sizeof(STRING), "[»] Admin '%s' foi até a posição do jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  2894. SendClientMessageToAll(COR_CHAT, STRING);
  2895.  
  2896. #if LOG_ENABLED == true
  2897. SaveLog("Admin_lvl_1.txt", STRING);
  2898. #endif
  2899.  
  2900. return 1;
  2901. }
  2902.  
  2903. //==--==--====--==--====--==--==|COMMANDS_ADMIN_LVL_2|==--==--====--==--====--==--==//
  2904. CMD:setvw(playerid, params[])
  2905. {
  2906. new
  2907. STRING[129],
  2908. TARGET,
  2909. VW
  2910. ;
  2911.  
  2912. if(USER[playerid][pLOGADO] == false)
  2913. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2914.  
  2915. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  2916. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  2917.  
  2918. if(sscanf(params, "ui", TARGET, VW))
  2919. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETVW [ID] [MUNDO VIRTUAL ID]");
  2920.  
  2921. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2922. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2923.  
  2924. format(STRING, sizeof(STRING), "[»] Admin '%s' te mandou para o mundo virtual id '%i'.", GetName(playerid), VW);
  2925. SendClientMessage(TARGET, COR_AVISO, STRING);
  2926.  
  2927. format(STRING, sizeof(STRING), "[»] Admin '%s' mandou o jogador '%s [ID: %i]' para o mundo virtual id '%i'.", GetName(playerid), VW, GetName(TARGET), TARGET);
  2928. SendClientMessage(TARGET, COR_AVISO, STRING);
  2929.  
  2930. #if LOG_ENABLED == true
  2931. SaveLog("Admin_lvl_2.txt", STRING);
  2932. #endif
  2933.  
  2934. return 1;
  2935. }
  2936.  
  2937. CMD:setskin(playerid, params[])
  2938. {
  2939. new
  2940. STRING[129],
  2941. TARGET,
  2942. SKIN
  2943. ;
  2944.  
  2945. if(USER[playerid][pLOGADO] == false)
  2946. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2947.  
  2948. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  2949. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  2950.  
  2951. if(sscanf(params, "ui", TARGET, SKIN))
  2952. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETSKIN [ID] [SKIN ID]");
  2953.  
  2954. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2955. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2956.  
  2957. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `SKIN` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pSKIN] = SKIN, DB_Escape(GetName(TARGET)));
  2958. db_free_result(db_query(User_Database, STRING));
  2959.  
  2960. format(STRING, sizeof(STRING), "[»] Admin '%s' te setou skin id '%i'.", GetName(playerid), SKIN);
  2961. SendClientMessage(TARGET, COR_AVISO, STRING);
  2962.  
  2963. format(STRING, sizeof(STRING), "[»] Admin '%s' setou skin id '%i' para o jogador '%s [ID: %i]'.", GetName(playerid), SKIN, GetName(TARGET), TARGET);
  2964. SendClientMessage(TARGET, COR_AVISO, STRING);
  2965.  
  2966. #if LOG_ENABLED == true
  2967. SaveLog("Admin_lvl_2.txt", STRING);
  2968. #endif
  2969.  
  2970. return 1;
  2971. }
  2972.  
  2973. CMD:congelar(playerid, params[])
  2974. {
  2975. new
  2976. STRING[129],
  2977. TARGET
  2978. ;
  2979.  
  2980. if(USER[playerid][pLOGADO] == false)
  2981. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  2982.  
  2983. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  2984. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  2985.  
  2986. if(sscanf(params, "u", TARGET))
  2987. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /CONGELAR [ID]");
  2988.  
  2989. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2990. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  2991.  
  2992. format(STRING, sizeof(STRING), "[»] Admin '%s' te congelou.", GetName(playerid));
  2993. SendClientMessage(TARGET, COR_AVISO, STRING);
  2994.  
  2995. format(STRING, sizeof(STRING), "[»] Admin '%s' congelou o jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  2996. SendClientMessage(TARGET, COR_AVISO, STRING);
  2997.  
  2998. #if LOG_ENABLED == true
  2999. SaveLog("Admin_lvl_2.txt", STRING);
  3000. #endif
  3001.  
  3002. return 1;
  3003. }
  3004.  
  3005. CMD:descongelar(playerid, params[])
  3006. {
  3007. new
  3008. STRING[129],
  3009. TARGET
  3010. ;
  3011.  
  3012. if(USER[playerid][pLOGADO] == false)
  3013. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3014.  
  3015. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3016. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3017.  
  3018. if(sscanf(params, "u", TARGET))
  3019. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DESCONGELAR [ID]");
  3020.  
  3021. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3022. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3023.  
  3024. format(STRING, sizeof(STRING), "[»] Admin '%s' te descongelou.", GetName(playerid));
  3025. SendClientMessage(TARGET, COR_AVISO, STRING);
  3026.  
  3027. format(STRING, sizeof(STRING), "[»] Admin '%s' descongelou o jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  3028. SendClientMessage(TARGET, COR_AVISO, STRING);
  3029.  
  3030. #if LOG_ENABLED == true
  3031. SaveLog("Admin_lvl_2.txt", STRING);
  3032. #endif
  3033.  
  3034. return 1;
  3035. }
  3036.  
  3037. CMD:lchat(playerid, params[])
  3038. {
  3039. new
  3040. STRING[129]
  3041. ;
  3042.  
  3043. if(USER[playerid][pLOGADO] == false)
  3044. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3045.  
  3046. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3047. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3048.  
  3049. for(new i = 0; i < 100; i++) SendClientMessageToAll(-1, "");
  3050.  
  3051. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3052.  
  3053. SendClientMessage(playerid, COR_AVISO, "[>] Você limpou o chat.");
  3054.  
  3055. format(STRING, sizeof(STRING), "[»] Admin '%s' limpou o chat.", GetName(playerid));
  3056. SendClientMessage(playerid, COR_AVISO, STRING);
  3057.  
  3058. #if LOG_ENABLED == true
  3059. SaveLog("Admin_lvl_2.txt", STRING);
  3060. #endif
  3061.  
  3062. return 1;
  3063. }
  3064.  
  3065. CMD:palterardados(playerid, params[])
  3066. {
  3067.  
  3068. new
  3069. STRING[150],
  3070. TARGET
  3071. ;
  3072.  
  3073. if(USER[playerid][pLOGADO] == false)
  3074. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3075.  
  3076. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3077. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3078.  
  3079. if(sscanf(params, "u", TARGET))
  3080. return SendClientMessage(playerid, COR_MENSAGEM, "• USO » /PALTERARDADOS [ID]");
  3081.  
  3082. if(!IsPlayerConnected(TARGET))
  3083. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3084.  
  3085. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3086. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3087. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou liberar sua Alteração de dados.", GetName(playerid), playerid),\
  3088. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3089.  
  3090. USER[playerid][pALTERARDADOS] = true;
  3091.  
  3092. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3093. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3094.  
  3095. format(STRING, sizeof(STRING), "[»] Admin '%s' sedeu permissão para alteração de dados de sua conta", GetName(playerid));
  3096. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3097.  
  3098. format(STRING, sizeof(STRING), "[»] Admin '%s' sedeu permissão para a alteração de dados do player '%s [ID: %i]'", GetName(playerid), GetName(TARGET), TARGET);
  3099. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3100.  
  3101. #if LOG_ENABLED == true
  3102. SaveLog("Admin_lvl_2.txt", STRING);
  3103. #endif
  3104.  
  3105. return 1;
  3106. }
  3107.  
  3108. CMD:calarcmd(playerid, params[])
  3109. {
  3110. new
  3111. TARGET,
  3112. TEMPO,
  3113. MOTIVO[20],
  3114. STRING[200]
  3115. ;
  3116.  
  3117. if(USER[playerid][pLOGADO] == false)
  3118. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3119.  
  3120. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3121. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3122.  
  3123. if(sscanf(params, "uiS(PORQUE SIM)[20]", TARGET, TEMPO, MOTIVO))
  3124. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /CALARCMD [ID] [TEMPO] [MOTIVO (PADRÃO: PORQUE SIM)]");
  3125.  
  3126. if(!IsPlayerConnected(TARGET))
  3127. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3128.  
  3129. if(USER[TARGET][pCMDCALADO] == 1)
  3130. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' já está com cmd bloqueado. '%i' segundos restantes.", GetName(TARGET), TARGET, USER[TARGET][pTEMPOCMDCALADO]),\
  3131. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3132.  
  3133. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3134. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3135. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te Bloquear seus comandos.", GetName(playerid), playerid),\
  3136. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3137.  
  3138. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3139. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3140.  
  3141. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `CMD CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pCMDCALADO] = 1, DB_Escape(GetName(TARGET)));
  3142. db_free_result(db_query(User_Database, STRING));
  3143. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO CMD CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pTEMPOCMDCALADO] += TEMPO, DB_Escape(GetName(TARGET)));
  3144. db_free_result(db_query(User_Database, STRING));
  3145.  
  3146. format(STRING, sizeof(STRING), "[»] Admin '%s' bloqueou seus comandos por '%i' segundos. Motivo: '%s'", GetName(playerid), TEMPO, MOTIVO);
  3147. SendClientMessage(TARGET, COR_CHAT, STRING);
  3148.  
  3149. format(STRING, sizeof(STRING), "[»] Admin '%s' bloqueou os comandos do jogador '%s [ID: %i]' por '%i' segundos. Motivo: '%s'", GetName(playerid), GetName(TARGET), TARGET, TEMPO, MOTIVO);
  3150. SendClientMessageToAll(COR_CHAT, STRING);
  3151.  
  3152. #if LOG_ENABLED == true
  3153. SaveLog("Admin_lvl_2.txt", STRING);
  3154. #endif
  3155.  
  3156. return 1;
  3157. }
  3158.  
  3159. CMD:descalarcmd(playerid, params[])
  3160. {
  3161. new
  3162. TARGET,
  3163. STRING[200]
  3164. ;
  3165.  
  3166. if(USER[playerid][pLOGADO] == false)
  3167. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3168.  
  3169. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3170. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3171.  
  3172. if(sscanf(params, "u", TARGET))
  3173. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DESCALARCMD [ID]");
  3174.  
  3175. if(!IsPlayerConnected(TARGET))
  3176. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3177.  
  3178. if(USER[TARGET][pCMDCALADO] == 0)
  3179. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' não está com cmd bloqueado.", GetName(TARGET), TARGET),\
  3180. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3181.  
  3182. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3183. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3184. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te Bloquear seus comandos.", GetName(playerid), playerid),\
  3185. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3186.  
  3187. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3188. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3189.  
  3190. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `CMD CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pCMDCALADO] = 0, DB_Escape(GetName(TARGET)));
  3191. db_free_result(db_query(User_Database, STRING));
  3192. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO CMD CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pTEMPOCMDCALADO] = 0, DB_Escape(GetName(TARGET)));
  3193. db_free_result(db_query(User_Database, STRING));
  3194.  
  3195. format(STRING, sizeof(STRING), "[»] Admin '%s' liberou seus comandos.", GetName(playerid));
  3196. SendClientMessage(TARGET, COR_CHAT, STRING);
  3197.  
  3198. format(STRING, sizeof(STRING), "[»] Admin '%s' liberou os comandos do jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  3199. SendClientMessageToAll(COR_CHAT, STRING);
  3200.  
  3201. #if LOG_ENABLED == true
  3202. SaveLog("Admin_lvl_2.txt", STRING);
  3203. #endif
  3204.  
  3205. return 1;
  3206. }
  3207.  
  3208. CMD:espiar(playerid, params[])
  3209. {
  3210.  
  3211. new
  3212. STRING[150],
  3213. SPECID
  3214. ;
  3215. if(USER[playerid][pLOGADO] == false)
  3216. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3217.  
  3218. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3219. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3220.  
  3221. if(sscanf(params, "u", SPECID))
  3222. return SendClientMessage(playerid, COR_MENSAGEM, "• USO » /ESPIAR [ID]");
  3223.  
  3224. if(!IsPlayerConnected(SPECID))
  3225. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3226.  
  3227. if(USER[playerid][pADMIN] < USER[SPECID][pADMIN])
  3228. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3229. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te Espiar.", GetName(playerid), playerid),\
  3230. SendClientMessage(SPECID, COR_MENSAGEM, STRING);
  3231.  
  3232. if(SPECID == playerid)
  3233. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode espiar você mesmo.");
  3234.  
  3235. if(GetPlayerState(SPECID) == PLAYER_STATE_SPECTATING && USER[SPECID][pSPECID] != INVALID_PLAYER_ID)
  3236. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Player está espiando.");
  3237.  
  3238. if(GetPlayerState(SPECID) != 1 && GetPlayerState(SPECID) != 2 && GetPlayerState(SPECID) != 3)
  3239. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Player ainda não deu spawn.");
  3240.  
  3241. GetPlayerPos(playerid, pSPECPOS[playerid][0], pSPECPOS[playerid][1], pSPECPOS[playerid][2]);
  3242. GetPlayerFacingAngle(playerid, pSPECPOS[playerid][3]);
  3243.  
  3244. SpecInt[playerid][0] = GetPlayerInterior(playerid);
  3245. SpecInt[playerid][1] = GetPlayerVirtualWorld(playerid);
  3246.  
  3247. StartSpectate(playerid, SPECID);
  3248.  
  3249. format(STRING, sizeof(STRING), "[»] Espiando agora: '%s' (ID: '%i')", GetName(SPECID), SPECID);
  3250. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3251.  
  3252. SendClientMessage(playerid, COR_MENSAGEM, "[»] Pressione SHIFT para espiar o próximo ou SPACE para espiar o anterior.");
  3253.  
  3254. #if LOG_ENABLED == true
  3255. SaveLog("Admin_lvl_2.txt", STRING);
  3256. #endif
  3257. return 1;
  3258. }
  3259.  
  3260. CMD:pespiar(playerid, params[])
  3261. {
  3262. if(USER[playerid][pLOGADO] == false)
  3263. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3264.  
  3265. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3266. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3267.  
  3268. if(USER[playerid][pSPECTYPE] != ADMIN_SPEC_TYPE_NONE)
  3269. {
  3270. StopSpectate(playerid);
  3271.  
  3272. SetTimerEx("PosAfterSpec", 3000, 0, "i", playerid);
  3273.  
  3274. SendClientMessage(playerid, COR_MENSAGEM, "[»] Parou de espiar.");
  3275. }
  3276. else return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não está espiando ninguém.");
  3277.  
  3278. return 1;
  3279. }
  3280.  
  3281. CMD:dararma(playerid, params[])
  3282. {
  3283. new
  3284. TARGET,
  3285. ARMAID,
  3286. AMMO,
  3287. STRING[200]
  3288. ;
  3289.  
  3290. if(USER[playerid][pLOGADO] == false)
  3291. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3292.  
  3293. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3294. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3295.  
  3296. if(sscanf(params, "uii", TARGET, ARMAID, AMMO))
  3297. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DARARMA [ID] [ARMA ID] [MUNIÇÃO]");
  3298.  
  3299. if(!IsPlayerConnected(TARGET))
  3300. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3301.  
  3302. if(USER[TARGET][pPRESO] == 1)
  3303. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' está preso. '%i' segundos restantes.", GetName(TARGET), TARGET, USER[TARGET][pTEMPOPRESO]),\
  3304. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3305.  
  3306. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3307. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3308. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te dar uma Arma.", GetName(playerid), playerid),\
  3309. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3310.  
  3311. if(ARMAID < 0 || ARMAID == 19 || ARMAID == 20 || ARMAID == 21 || ARMAID > 46)
  3312. return SendClientMessage(playerid, COR_MENSAGEM, "[»] ID inválido. Utilize entre: 0 - 18 | 22 - 46");
  3313.  
  3314. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3315. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3316.  
  3317. GivePlayerWeapon(TARGET, ARMAID, AMMO);
  3318.  
  3319. format(STRING, sizeof(STRING), "[»] Admin '%s' te deu a arma ID '%i' | Munição: '%i'.", GetName(playerid), ARMAID, AMMO);
  3320. SendClientMessage(TARGET, COR_CHAT, STRING);
  3321.  
  3322. format(STRING, sizeof(STRING), "[»] Admin '%s' de a arma ID '%i' | Munição: '%i' ao jogador '%s [ID: %i]'.", GetName(playerid), ARMAID, GetName(TARGET), TARGET, AMMO);
  3323. SendClientMessageToAll(COR_CHAT, STRING);
  3324.  
  3325. #if LOG_ENABLED == true
  3326. SaveLog("Admin_lvl_2.txt", STRING);
  3327. #endif
  3328.  
  3329. return 1;
  3330. }
  3331.  
  3332. CMD:desarmar(playerid, params[])
  3333. {
  3334. new
  3335. TARGET,
  3336. STRING[200]
  3337. ;
  3338.  
  3339. if(USER[playerid][pLOGADO] == false)
  3340. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3341.  
  3342. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3343. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3344.  
  3345. if(sscanf(params, "u", TARGET))
  3346. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /desarmar [ID]");
  3347.  
  3348. if(!IsPlayerConnected(TARGET))
  3349. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3350.  
  3351. if(USER[TARGET][pPRESO] == 1)
  3352. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' está preso. '%i' segundos restantes.", GetName(TARGET), TARGET, USER[TARGET][pTEMPOPRESO]),\
  3353. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3354.  
  3355. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3356. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3357. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou Remover suas armas.", GetName(playerid), playerid),\
  3358. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3359.  
  3360. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3361. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3362.  
  3363. ResetPlayerWeapons(TARGET);
  3364.  
  3365. format(STRING, sizeof(STRING), "[»] Admin '%s' removeu suas armas.", GetName(playerid));
  3366. SendClientMessage(TARGET, COR_CHAT, STRING);
  3367.  
  3368. format(STRING, sizeof(STRING), "[»] Admin '%s' removeu as armas do jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  3369. SendClientMessageToAll(COR_CHAT, STRING);
  3370.  
  3371. #if LOG_ENABLED == true
  3372. SaveLog("Admin_lvl_2.txt", STRING);
  3373. #endif
  3374.  
  3375. return 1;
  3376. }
  3377.  
  3378. CMD:calar(playerid, params[])
  3379. {
  3380. new
  3381. TARGET,
  3382. TEMPO,
  3383. MOTIVO[20],
  3384. STRING[200]
  3385. ;
  3386.  
  3387. if(USER[playerid][pLOGADO] == false)
  3388. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3389.  
  3390. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3391. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3392.  
  3393. if(sscanf(params, "uiS(PORQUE SIM)[20]", TARGET, TEMPO, MOTIVO))
  3394. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /CALAR [ID] [TEMPO] [MOTIVO (PADRÃO: PORQUE SIM)]");
  3395.  
  3396. if(!IsPlayerConnected(TARGET))
  3397. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3398.  
  3399. if(USER[TARGET][pCALADO] == 1)
  3400. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' já está calado. '%i' segundos restantes.", GetName(TARGET), TARGET, USER[TARGET][pTEMPOCALADO]),\
  3401. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3402.  
  3403. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3404. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3405. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te Calar.", GetName(playerid), playerid),\
  3406. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3407.  
  3408. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3409. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3410.  
  3411. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pCALADO] = 1, DB_Escape(GetName(TARGET)));
  3412. db_free_result(db_query(User_Database, STRING));
  3413. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pTEMPOCALADO] += TEMPO+1, DB_Escape(GetName(TARGET)));
  3414. db_free_result(db_query(User_Database, STRING));
  3415.  
  3416. format(STRING, sizeof(STRING), "[»] Admin '%s' te calou por '%i' segundos. Motivo: '%s'", GetName(playerid), TEMPO, MOTIVO);
  3417. SendClientMessage(TARGET, COR_CHAT, STRING);
  3418.  
  3419. format(STRING, sizeof(STRING), "[»] Admin '%s' calou o jogador '%s [ID: %i]' por '%i' segundos. Motivo: '%s'", GetName(playerid), GetName(TARGET), TARGET, TEMPO, MOTIVO);
  3420. SendClientMessageToAll(COR_CHAT, STRING);
  3421.  
  3422. #if LOG_ENABLED == true
  3423. SaveLog("Admin_lvl_2.txt", STRING);
  3424. #endif
  3425.  
  3426. return 1;
  3427. }
  3428.  
  3429. CMD:descalar(playerid, params[])
  3430. {
  3431. new
  3432. TARGET,
  3433. STRING[200]
  3434. ;
  3435.  
  3436. if(USER[playerid][pLOGADO] == false)
  3437. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3438.  
  3439. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3440. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3441.  
  3442. if(sscanf(params, "u", TARGET))
  3443. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DESCALAR [ID]");
  3444.  
  3445. if(!IsPlayerConnected(TARGET))
  3446. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3447.  
  3448. if(USER[TARGET][pCALADO] == 0)
  3449. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' não está calado.", GetName(TARGET), TARGET),\
  3450. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3451.  
  3452. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3453. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3454.  
  3455. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pCALADO] = 0, DB_Escape(GetName(TARGET)));
  3456. db_free_result(db_query(User_Database, STRING));
  3457. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pTEMPOCALADO] = 0, DB_Escape(GetName(TARGET)));
  3458. db_free_result(db_query(User_Database, STRING));
  3459.  
  3460. format(STRING, sizeof(STRING), "[»] Admin '%s' te descalou.", GetName(playerid));
  3461. SendClientMessage(TARGET, COR_CHAT, STRING);
  3462.  
  3463. format(STRING, sizeof(STRING), "[»] Admin '%s' descalou o jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  3464. SendClientMessageToAll(COR_CHAT, STRING);
  3465.  
  3466. #if LOG_ENABLED == true
  3467. SaveLog("Admin_lvl_2.txt", STRING);
  3468. #endif
  3469.  
  3470. return 1;
  3471. }
  3472.  
  3473. CMD:prender(playerid, params[])
  3474. {
  3475. new
  3476. TARGET,
  3477. TEMPO,
  3478. MOTIVO[20],
  3479. STRING[200]
  3480. ;
  3481.  
  3482. if(USER[playerid][pLOGADO] == false)
  3483. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3484.  
  3485. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3486. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3487.  
  3488. if(sscanf(params, "uiS(PORQUE SIM)[20]", TARGET, TEMPO, MOTIVO))
  3489. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /PRENDER [ID] [TEMPO] [MOTIVO (PADRÃO: PORQUE SIM)]");
  3490.  
  3491. if(!IsPlayerConnected(TARGET))
  3492. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3493.  
  3494. if(IsPlayerSpawned[TARGET] == false)
  3495. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar spawneado para realizar esta ação.");
  3496.  
  3497. if(USER[TARGET][pPRESO] == 1)
  3498. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' já está preso. '%i' segundos restantes.", GetName(TARGET), TARGET, USER[TARGET][pTEMPOPRESO]),\
  3499. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3500.  
  3501. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3502. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3503. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te Prender.", GetName(playerid), playerid),\
  3504. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3505.  
  3506. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3507. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3508.  
  3509. JailPlayer(TARGET);
  3510.  
  3511. PlayerCheckInJailTime[playerid] = SetTimerEx("PlayerCheckInJail", 1000, true, "i", TARGET);
  3512.  
  3513. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pPRESO] = 1, DB_Escape(GetName(TARGET)));
  3514. db_free_result(db_query(User_Database, STRING));
  3515. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pTEMPOPRESO] += TEMPO+1, DB_Escape(GetName(TARGET)));
  3516. db_free_result(db_query(User_Database, STRING));
  3517.  
  3518. format(STRING, sizeof(STRING), "[»] Admin '%s' te prendeu por '%i' segundos. Motivo: '%s'", GetName(playerid), TEMPO, MOTIVO);
  3519. SendClientMessage(TARGET, COR_CHAT, STRING);
  3520.  
  3521. format(STRING, sizeof(STRING), "[»] Admin '%s' prendeu o jogador '%s [ID: %i]' por '%i' segundos. Motivo: '%s'", GetName(playerid), GetName(TARGET), TARGET, TEMPO, MOTIVO);
  3522. SendClientMessageToAll(COR_CHAT, STRING);
  3523.  
  3524. #if LOG_ENABLED == true
  3525. SaveLog("Admin_lvl_2.txt", STRING);
  3526. #endif
  3527.  
  3528. return 1;
  3529. }
  3530.  
  3531. CMD:soltar(playerid, params[])
  3532. {
  3533. new
  3534. TARGET,
  3535. STRING[200]
  3536. ;
  3537.  
  3538. if(USER[playerid][pLOGADO] == false)
  3539. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3540.  
  3541. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3542. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3543.  
  3544. if(sscanf(params, "uiS(PORQUE SIM)[20]", TARGET))
  3545. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SOLTAR [ID]");
  3546.  
  3547. if(!IsPlayerConnected(TARGET))
  3548. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3549.  
  3550. if(IsPlayerSpawned[TARGET] == false)
  3551. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar spawneado para realizar esta ação.");
  3552.  
  3553. if(USER[TARGET][pPRESO] == 0)
  3554. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' não está preso.", GetName(TARGET), TARGET),\
  3555. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3556.  
  3557. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3558. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3559.  
  3560. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pPRESO] = 0, DB_Escape(GetName(TARGET)));
  3561. db_free_result(db_query(User_Database, STRING));
  3562. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pTEMPOPRESO] = 0, DB_Escape(GetName(TARGET)));
  3563. db_free_result(db_query(User_Database, STRING));
  3564.  
  3565. format(STRING, sizeof(STRING), "[»] Admin '%s' te soltou da cadeia", GetName(playerid));
  3566. SendClientMessage(TARGET, COR_CHAT, STRING);
  3567.  
  3568. format(STRING, sizeof(STRING), "[»] Admin '%s' soltou o jogador '%s [ID: %i]' da cadeia.", GetName(playerid), GetName(TARGET), TARGET);
  3569. SendClientMessageToAll(COR_CHAT, STRING);
  3570.  
  3571. #if LOG_ENABLED == true
  3572. SaveLog("Admin_lvl_2.txt", STRING);
  3573. #endif
  3574.  
  3575. return 1;
  3576. }
  3577.  
  3578. CMD:setdinheiro(playerid, params[])
  3579. {
  3580. new
  3581. TARGET,
  3582. QUANTIA,
  3583. STRING[200]
  3584. ;
  3585.  
  3586. if(USER[playerid][pLOGADO] == false)
  3587. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3588.  
  3589. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3590. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3591.  
  3592. if(sscanf(params, "ui", TARGET, QUANTIA))
  3593. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETDINHEIRO [ID] [QUANTIA]");
  3594.  
  3595. if(!IsPlayerConnected(TARGET))
  3596. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3597.  
  3598. if(USER[TARGET][pLOGADO] == false)
  3599. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' precisa estar logado para realizar esta ação.", GetName(TARGET), TARGET),\
  3600. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3601.  
  3602. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3603. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3604. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou modificar seu Dinheiro.", GetName(playerid), playerid),\
  3605. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3606.  
  3607. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3608. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3609.  
  3610. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `DINHEIRO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pDINHEIRO] = QUANTIA, DB_Escape(GetName(TARGET)));
  3611. db_free_result(db_query(User_Database, STRING));
  3612.  
  3613. format(STRING, sizeof(STRING), "[»] Admin '%s' setou seu dinheiro para 'R$%i'.", GetName(playerid), QUANTIA);
  3614. SendClientMessage(TARGET, COR_CHAT, STRING);
  3615.  
  3616. format(STRING, sizeof(STRING), "[»] Admin '%s' setou a quantia de 'R$%i' em dinheiro para o jogador '%s [ID: %i]'.", GetName(playerid), QUANTIA, GetName(TARGET), TARGET);
  3617. SendClientMessageToAll(COR_CHAT, STRING);
  3618.  
  3619. #if LOG_ENABLED == true
  3620. SaveLog("Admin_lvl_2.txt", STRING);
  3621. #endif
  3622.  
  3623. return 1;
  3624. }
  3625.  
  3626. CMD:dardinheiro(playerid, params[])
  3627. {
  3628. new
  3629. TARGET,
  3630. QUANTIA,
  3631. STRING[200]
  3632. ;
  3633.  
  3634. if(USER[playerid][pLOGADO] == false)
  3635. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3636.  
  3637. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3638. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3639.  
  3640. if(sscanf(params, "ui", TARGET, QUANTIA))
  3641. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DARDINHEIRO [ID] [QUANTIA]");
  3642.  
  3643. if(!IsPlayerConnected(TARGET))
  3644. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3645.  
  3646. if(USER[TARGET][pLOGADO] == false)
  3647. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' precisa estar logado para realizar esta ação.", GetName(TARGET), TARGET),\
  3648. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3649.  
  3650. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3651. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3652. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou modificar seu Dinheiro.", GetName(playerid), playerid),\
  3653. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3654.  
  3655. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3656. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3657.  
  3658. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `DINHEIRO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[TARGET][pDINHEIRO] += QUANTIA, DB_Escape(GetName(TARGET)));
  3659. db_free_result(db_query(User_Database, STRING));
  3660.  
  3661. format(STRING, sizeof(STRING), "[»] Admin '%s' te deu 'R$%i' de dinheiro.", GetName(playerid), QUANTIA);
  3662. SendClientMessage(TARGET, COR_CHAT, STRING);
  3663.  
  3664. format(STRING, sizeof(STRING), "[»] Admin '%s' deu a quantia de 'R$%i' em dinheiro para o jogador '%s [ID: %i]'.", GetName(playerid), QUANTIA, GetName(TARGET), TARGET);
  3665. SendClientMessageToAll(COR_CHAT, STRING);
  3666.  
  3667. #if LOG_ENABLED == true
  3668. SaveLog("Admin_lvl_2.txt", STRING);
  3669. #endif
  3670.  
  3671. return 1;
  3672. }
  3673.  
  3674. CMD:setscore(playerid, params[])
  3675. {
  3676. new
  3677. TARGET,
  3678. SCORE,
  3679. STRING[200]
  3680. ;
  3681.  
  3682. if(USER[playerid][pLOGADO] == false)
  3683. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3684.  
  3685. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3686. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3687.  
  3688. if(sscanf(params, "ui", TARGET, SCORE))
  3689. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETSCORE [ID] [SCORE]");
  3690.  
  3691. if(!IsPlayerConnected(TARGET))
  3692. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3693.  
  3694. if(USER[TARGET][pLOGADO] == false)
  3695. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' precisa estar logado para realizar esta ação.", GetName(TARGET), TARGET),\
  3696. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3697.  
  3698. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3699. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3700. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou modificar seu Score.", GetName(playerid), playerid),\
  3701. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3702.  
  3703. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3704. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3705.  
  3706. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `SCORE` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", SetPlayerScore(TARGET, USER[TARGET][pSCORE] = SCORE), DB_Escape(GetName(TARGET)));
  3707. db_free_result(db_query(User_Database, STRING));
  3708.  
  3709. format(STRING, sizeof(STRING), "[»] Admin '%s' setou seu score para '%i'.", GetName(playerid), SCORE);
  3710. SendClientMessage(TARGET, COR_CHAT, STRING);
  3711.  
  3712. format(STRING, sizeof(STRING), "[»] Admin '%s' setou o score do jogador '%s [ID: %i]' para '%i'.", GetName(playerid), GetName(TARGET), TARGET, SCORE);
  3713. SendClientMessageToAll(COR_CHAT, STRING);
  3714.  
  3715. #if LOG_ENABLED == true
  3716. SaveLog("Admin_lvl_2.txt", STRING);
  3717. #endif
  3718.  
  3719. return 1;
  3720. }
  3721.  
  3722. CMD:darscore(playerid, params[])
  3723. {
  3724. new
  3725. TARGET,
  3726. SCORE,
  3727. STRING[200]
  3728. ;
  3729.  
  3730. if(USER[playerid][pLOGADO] == false)
  3731. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3732.  
  3733. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3734. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3735.  
  3736. if(sscanf(params, "ui", TARGET, SCORE))
  3737. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DARSCORE [ID] [SCORE]");
  3738.  
  3739. if(!IsPlayerConnected(TARGET))
  3740. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3741.  
  3742. if(USER[TARGET][pLOGADO] == false)
  3743. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' precisa estar logado para realizar esta ação.", GetName(TARGET), TARGET),\
  3744. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  3745.  
  3746. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3747. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3748. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou modificar seu Score.", GetName(playerid), playerid),\
  3749. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3750.  
  3751. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3752. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3753.  
  3754. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `SCORE` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", SetPlayerScore(TARGET, USER[TARGET][pSCORE] += SCORE), DB_Escape(GetName(TARGET)));
  3755. db_free_result(db_query(User_Database, STRING));
  3756.  
  3757. format(STRING, sizeof(STRING), "[»] Admin '%s' deu '%i' de score para você.", GetName(playerid), SCORE);
  3758. SendClientMessage(TARGET, COR_CHAT, STRING);
  3759.  
  3760. format(STRING, sizeof(STRING), "[»] Admin '%s' deu '%i' de score para o jogador '%s [ID: %i]'.", GetName(playerid), SCORE, GetName(TARGET), TARGET);
  3761. SendClientMessageToAll(COR_CHAT, STRING);
  3762.  
  3763. #if LOG_ENABLED == true
  3764. SaveLog("Admin_lvl_2.txt", STRING);
  3765. #endif
  3766.  
  3767. return 1;
  3768. }
  3769.  
  3770. CMD:kick(playerid, params[])
  3771. {
  3772. new
  3773. TARGET,
  3774. MOTIVO[40],
  3775. STRING[129]
  3776. ;
  3777.  
  3778. if(USER[playerid][pLOGADO] == false)
  3779. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3780.  
  3781. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3782. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3783.  
  3784. if(sscanf(params, "uS(PORQUE SIM)[40]", TARGET, MOTIVO))
  3785. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /KICK [ID] [MOTIVO (PADRÃO: PORQUE SIM)]");
  3786.  
  3787. if(!IsPlayerConnected(TARGET))
  3788. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3789.  
  3790. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3791. return format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te kickar e foi kickado automaticamente.", GetName(playerid), playerid),\
  3792. SendClientMessage(TARGET, COR_MENSAGEM, STRING),\
  3793. tkKick(playerid);
  3794.  
  3795. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3796.  
  3797. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3798.  
  3799. format(STRING, sizeof(STRING), "[»] Admin '%s' te kickou. Motivo: '%s'.", GetName(playerid), MOTIVO);
  3800. SendClientMessage(playerid, COR_CHAT, STRING);
  3801.  
  3802. format(STRING, sizeof(STRING), "[»] Admin '%s' kickou o jogador '%s [ID: %i]'. Motivo: '%s'.", GetName(playerid), GetName(TARGET), TARGET, MOTIVO);
  3803. SendClientMessageToAll(COR_CHAT, STRING);
  3804.  
  3805. tkKick(TARGET);
  3806.  
  3807. #if LOG_ENABLED == true
  3808. SaveLog("Admin_lvl_2.txt", STRING);
  3809. #endif
  3810.  
  3811. return 1;
  3812. }
  3813.  
  3814. CMD:setvida(playerid, params[])
  3815. {
  3816. new
  3817. TARGET,
  3818. QUANTIA,
  3819. STRING[129]
  3820. ;
  3821.  
  3822. if(USER[playerid][pLOGADO] == false)
  3823. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3824.  
  3825. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3826. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3827.  
  3828. if(sscanf(params, "ui", TARGET, QUANTIA))
  3829. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETVIDA [ID] [QUANTIA]");
  3830.  
  3831. if(!IsPlayerConnected(TARGET))
  3832. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3833.  
  3834. #if ANTI_ARM_HEAL_ENABLED == true
  3835. if(QUANTIA < 0 || QUANTIA > 99)
  3836. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você deve setar a vida entre 0 - 99.");
  3837. #else
  3838. if(QUANTIA < 0 || QUANTIA > 100)
  3839. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você deve setar a vida entre 0 - 100.");
  3840. #endif
  3841.  
  3842. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3843. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3844. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou setar sua Vida.", GetName(playerid), playerid),\
  3845. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3846.  
  3847. SetPlayerHealth(TARGET, QUANTIA);
  3848.  
  3849. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3850. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3851.  
  3852. format(STRING, sizeof(STRING), "[»] Admin '%s' setou sua vida para '%i'.", GetName(playerid), QUANTIA);
  3853. SendClientMessage(playerid, COR_CHAT, STRING);
  3854.  
  3855. format(STRING, sizeof(STRING), "[»] Admin '%s' setou a vida do jogador '%s [ID: %i]' para '%i'.", GetName(playerid), GetName(TARGET), TARGET, QUANTIA);
  3856. SendClientMessageToAll(COR_CHAT, STRING);
  3857.  
  3858. #if LOG_ENABLED == true
  3859. SaveLog("Admin_lvl_2.txt", STRING);
  3860. #endif
  3861.  
  3862. return 1;
  3863. }
  3864.  
  3865. CMD:setcolete(playerid, params[])
  3866. {
  3867. new
  3868. TARGET,
  3869. QUANTIA,
  3870. STRING[129]
  3871. ;
  3872.  
  3873. if(USER[playerid][pLOGADO] == false)
  3874. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3875.  
  3876. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3877. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3878.  
  3879. if(sscanf(params, "ui", TARGET, QUANTIA))
  3880. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETCOLETE [ID] [QUANTIA]");
  3881.  
  3882. if(!IsPlayerConnected(TARGET))
  3883. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  3884.  
  3885. #if ANTI_ARM_HEAL_ENABLED == true
  3886. if(QUANTIA < 0 || QUANTIA > 99)
  3887. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você deve setar o colete entre 0 - 99.");
  3888. #else
  3889. if(QUANTIA < 0 || QUANTIA > 100)
  3890. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você deve setar o colete entre 0 - 100.");
  3891. #endif
  3892.  
  3893. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  3894. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  3895. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou setar seu Colete.", GetName(playerid), playerid),\
  3896. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  3897.  
  3898. SetPlayerHealth(TARGET, QUANTIA);
  3899.  
  3900. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3901. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  3902.  
  3903. format(STRING, sizeof(STRING), "[»] Admin '%s' setou seu colete para '%i'.", GetName(playerid), QUANTIA);
  3904. SendClientMessage(playerid, COR_CHAT, STRING);
  3905.  
  3906. format(STRING, sizeof(STRING), "[»] Admin '%s' setou o coletea do jogador '%s [ID: %i]' para '%i'.", GetName(playerid), GetName(TARGET), TARGET, QUANTIA);
  3907. SendClientMessageToAll(COR_CHAT, STRING);
  3908.  
  3909. #if LOG_ENABLED == true
  3910. SaveLog("Admin_lvl_2.txt", STRING);
  3911. #endif
  3912.  
  3913. return 1;
  3914. }
  3915.  
  3916. //==--==--====--==--====--==--==|COMMANDS_ADMIN_LVL_3|==--==--====--==--====--==--==//
  3917. CMD:congelartodos(playerid)
  3918. {
  3919. new
  3920. STRING[129]
  3921. ;
  3922.  
  3923. if(USER[playerid][pLOGADO] == false)
  3924. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3925.  
  3926. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  3927. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  3928.  
  3929. foreach(new i : Player)
  3930. {
  3931. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3932.  
  3933. if(USER[i][pADMIN] > 0) continue;
  3934.  
  3935. TogglePlayerControllable(i, 0);
  3936.  
  3937. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  3938. }
  3939.  
  3940. format(STRING, sizeof(STRING), "[»] Admin '%s' congelou todos os jogadores.", GetName(playerid));
  3941. SendClientMessageToAll(COR_AVISO, STRING);
  3942.  
  3943. #if LOG_ENABLED == true
  3944. SaveLog("Admin_lvl_3.txt", STRING);
  3945. #endif
  3946.  
  3947. return 1;
  3948. }
  3949.  
  3950. CMD:descongelartodos(playerid)
  3951. {
  3952. new
  3953. STRING[129]
  3954. ;
  3955.  
  3956. if(USER[playerid][pLOGADO] == false)
  3957. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3958.  
  3959. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  3960. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  3961.  
  3962. foreach(new i : Player)
  3963. {
  3964. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3965.  
  3966. if(USER[i][pADMIN] > 0) continue;
  3967.  
  3968. TogglePlayerControllable(i, 1);
  3969.  
  3970. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  3971. }
  3972.  
  3973. format(STRING, sizeof(STRING), "[»] Admin '%s' descongelou todos os jogadores.", GetName(playerid));
  3974. SendClientMessageToAll(COR_AVISO, STRING);
  3975.  
  3976. #if LOG_ENABLED == true
  3977. SaveLog("Admin_lvl_3.txt", STRING);
  3978. #endif
  3979.  
  3980. return 1;
  3981. }
  3982.  
  3983. CMD:dararmatodos(playerid, params[])
  3984. {
  3985. new
  3986. ARMAID,
  3987. AMMO,
  3988. STRING[129]
  3989. ;
  3990.  
  3991. if(USER[playerid][pLOGADO] == false)
  3992. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  3993.  
  3994. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  3995. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  3996.  
  3997. if(sscanf(params, "ii", ARMAID, AMMO))
  3998. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DARARMATODOS [ARMA ID] [MUNIÇÃO]");
  3999.  
  4000. if(ARMAID < 0 || ARMAID == 19 || ARMAID == 20 || ARMAID == 21 || ARMAID > 46)
  4001. return SendClientMessage(playerid, COR_MENSAGEM, "[»] ID inválido. Utilize entre: 0 - 18 | 22 - 46");
  4002.  
  4003. foreach(new i : Player)
  4004. {
  4005. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4006.  
  4007. if(USER[i][pADMIN] > 0 || USER[i][pPRESO] > 0) continue;
  4008.  
  4009. GivePlayerWeapon(i, ARMAID, AMMO);
  4010.  
  4011. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4012. }
  4013.  
  4014. format(STRING, sizeof(STRING), "[»] Admin '%s' deu a arma ID '%i' | Munição: '%i' para todos os jogadores.", GetName(playerid), ARMAID, AMMO);
  4015. SendClientMessageToAll(COR_CHAT, STRING);
  4016.  
  4017. #if LOG_ENABLED == true
  4018. SaveLog("Admin_lvl_2.txt", STRING);
  4019. #endif
  4020.  
  4021. return 1;
  4022. }
  4023.  
  4024. CMD:desarmartodos(playerid, params[])
  4025. {
  4026. new
  4027. STRING[129]
  4028. ;
  4029.  
  4030. if(USER[playerid][pLOGADO] == false)
  4031. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4032.  
  4033. if(USER[playerid][pADMIN] < LEVEL_MODERADOR)
  4034. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level MODERADOR para realizar esta ação.");
  4035.  
  4036. foreach(new i : Player)
  4037. {
  4038. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4039.  
  4040. if(USER[i][pADMIN] > 0 || USER[i][pPRESO] > 0) continue;
  4041.  
  4042. ResetPlayerWeapons(i);
  4043.  
  4044. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4045. }
  4046.  
  4047. format(STRING, sizeof(STRING), "[»] Admin '%s' removeu as armas de todos os jogadores.", GetName(playerid));
  4048. SendClientMessageToAll(COR_CHAT, STRING);
  4049.  
  4050. #if LOG_ENABLED == true
  4051. SaveLog("Admin_lvl_2.txt", STRING);
  4052. #endif
  4053.  
  4054. return 1;
  4055. }
  4056.  
  4057. CMD:avisartodos(playerid, params[])
  4058. {
  4059. new
  4060. MOTIVO[20],
  4061. STRING[129]
  4062. ;
  4063.  
  4064. if(USER[playerid][pLOGADO] == false)
  4065. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4066.  
  4067. if(USER[playerid][pADMIN] < LEVEL_HELPER)
  4068. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level HELPER para realizar esta ação.");
  4069.  
  4070. if(sscanf(params, "S(PORQUE SIM)[20]", MOTIVO))
  4071. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /AVISARTODOS [MOTIVO]");
  4072.  
  4073. foreach(new i : Player)
  4074. {
  4075. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4076.  
  4077. if(USER[i][pADMIN] > 0) continue;
  4078.  
  4079. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4080.  
  4081. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `AVISOS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pAVISO] += 1, DB_Escape(GetName(i)));
  4082. db_free_result(db_query(User_Database, STRING));
  4083.  
  4084. if(USER[i][pAVISO] == 3)
  4085. {
  4086. format(STRING, sizeof(STRING), "[»] Player '%s [ID: %i]' foi kickado automaticamente. Motivo: 'excedeu avisos'. (3/3)", GetName(i), i, MOTIVO);
  4087. SendClientMessageToAll(COR_CHAT, STRING);
  4088.  
  4089. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `AVISOS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pAVISO] = 0, DB_Escape(GetName(i)));
  4090. db_free_result(db_query(User_Database, STRING));
  4091.  
  4092. return tkKick(i);
  4093. }
  4094. }
  4095.  
  4096. format(STRING, sizeof(STRING), "[»] Admin '%s' deu um aviso a todos os jogadores. Motivo: '%s'.", GetName(playerid), MOTIVO);
  4097. SendClientMessageToAll(COR_CHAT, STRING);
  4098.  
  4099. #if LOG_ENABLED == true
  4100. SaveLog("Admin_lvl_3.txt", STRING);
  4101. #endif
  4102.  
  4103. return 1;
  4104. }
  4105.  
  4106. CMD:setpostodos(playerid, params[])
  4107. {
  4108. new
  4109. STRING[129],
  4110. Float:PosX,
  4111. Float:PosY,
  4112. Float:PosZ
  4113. ;
  4114.  
  4115. if(USER[playerid][pLOGADO] == false)
  4116. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4117.  
  4118. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4119. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4120.  
  4121. if(sscanf(params, "fff", PosX, PosY, PosZ))
  4122. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETPOSTODOS [POS X] [POS Y] [POS Z]");
  4123.  
  4124. foreach(new i : Player)
  4125. {
  4126. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4127.  
  4128. if(USER[i][pADMIN] > 0) continue;
  4129.  
  4130. SetPlayerPos(i, PosX, PosY, PosZ);
  4131.  
  4132. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4133. }
  4134.  
  4135. format(STRING, sizeof(STRING), "[»] Admin '%s' setou a posição de todos os jogadores para X:%f Y:%f Z:%f.", GetName(playerid), PosX, PosY, PosZ);
  4136. SendClientMessageToAll(COR_CHAT, STRING);
  4137.  
  4138. #if LOG_ENABLED == true
  4139. SaveLog("Admin_lvl_3.txt", STRING);
  4140. #endif
  4141.  
  4142. return 1;
  4143. }
  4144.  
  4145. CMD:tapatodos(playerid, params[])
  4146. {
  4147. new
  4148. ALTURA,
  4149. STRING[129],
  4150. Float:PosX, Float:PosY, Float:PosZ
  4151. ;
  4152.  
  4153. if(USER[playerid][pLOGADO] == false)
  4154. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4155.  
  4156. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4157. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4158.  
  4159. if(sscanf(params, "i", ALTURA))
  4160. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /TAPATODOS [ALTURA (m)]");
  4161.  
  4162. foreach(new i : Player)
  4163. {
  4164. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4165.  
  4166. if(USER[i][pADMIN] > 0) continue;
  4167.  
  4168. SetPlayerPos(i, PosX, PosY, PosZ+ALTURA);
  4169.  
  4170. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4171. }
  4172.  
  4173. format(STRING, sizeof(STRING), "[»] Admin '%s' deu um tapa em todo mundo. [%i metros do chão]", GetName(playerid), ALTURA);
  4174. SendClientMessageToAll(COR_CHAT, STRING);
  4175.  
  4176. #if LOG_ENABLED == true
  4177. SaveLog("Admin_lvl_3.txt", STRING);
  4178. #endif
  4179.  
  4180. return 1;
  4181. }
  4182.  
  4183. CMD:kicktodos(playerid, params[])
  4184. {
  4185. new
  4186. MOTIVO[40],
  4187. STRING[129]
  4188. ;
  4189.  
  4190. if(USER[playerid][pLOGADO] == false)
  4191. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4192.  
  4193. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4194. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4195.  
  4196. if(sscanf(params, "S(PORQUE SIM)[40]", MOTIVO))
  4197. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /KICKTODOS [MOTIVO (PADRÃO: PORQUE SIM)]");
  4198.  
  4199. foreach(new i : Player)
  4200. {
  4201. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4202.  
  4203. if(USER[i][pADMIN] > 0) continue;
  4204.  
  4205. tkKick(i);
  4206.  
  4207. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4208. }
  4209.  
  4210. format(STRING, sizeof(STRING), "[»] Admin '%s' kickou o todo mundo. Motivo: '%s'.", GetName(playerid), MOTIVO);
  4211. SendClientMessageToAll(COR_CHAT, STRING);
  4212.  
  4213. #if LOG_ENABLED == true
  4214. SaveLog("Admin_lvl_3.txt", STRING);
  4215. #endif
  4216.  
  4217. return 1;
  4218. }
  4219.  
  4220. CMD:setdinheirotodos(playerid, params[])
  4221. {
  4222. new
  4223. QUANTIA,
  4224. STRING[200]
  4225. ;
  4226.  
  4227. if(USER[playerid][pLOGADO] == false)
  4228. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4229.  
  4230. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4231. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4232.  
  4233. if(sscanf(params, "i", QUANTIA))
  4234. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETDINHEIROTODOS [QUANTIA]");
  4235.  
  4236. foreach(new i : Player)
  4237. {
  4238. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4239.  
  4240. if(USER[i][pADMIN] > 0 || USER[i][pLOGADO] == false) continue;
  4241.  
  4242. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4243.  
  4244. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `DINHEIRO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pDINHEIRO] = QUANTIA, DB_Escape(GetName(i)));
  4245. db_free_result(db_query(User_Database, STRING));
  4246. }
  4247.  
  4248. format(STRING, sizeof(STRING), "[»] Admin '%s' setou a quantia de 'R$%i' em dinheiro para todos os jogadores.", GetName(playerid), QUANTIA);
  4249. SendClientMessageToAll(COR_CHAT, STRING);
  4250.  
  4251. #if LOG_ENABLED == true
  4252. SaveLog("Admin_lvl_3.txt", STRING);
  4253. #endif
  4254.  
  4255. return 1;
  4256. }
  4257.  
  4258. CMD:dardinheirotodos(playerid, params[])
  4259. {
  4260. new
  4261. QUANTIA,
  4262. STRING[200]
  4263. ;
  4264.  
  4265. if(USER[playerid][pLOGADO] == false)
  4266. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4267.  
  4268. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4269. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4270.  
  4271. if(sscanf(params, "i", QUANTIA))
  4272. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DARDINHEIROTODOS [QUANTIA]");
  4273.  
  4274. foreach(new i : Player)
  4275. {
  4276. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4277.  
  4278. if(USER[i][pADMIN] > 0 || USER[i][pLOGADO] == false) continue;
  4279.  
  4280. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4281.  
  4282. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `DINHEIRO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pDINHEIRO] += QUANTIA, DB_Escape(GetName(i)));
  4283. db_free_result(db_query(User_Database, STRING));
  4284. }
  4285.  
  4286. format(STRING, sizeof(STRING), "[»] Admin '%s' deu a quantia de 'R$%i' em dinheiro para todos os jogadores.", GetName(playerid), QUANTIA);
  4287. SendClientMessageToAll(COR_CHAT, STRING);
  4288.  
  4289. #if LOG_ENABLED == true
  4290. SaveLog("Admin_lvl_3.txt", STRING);
  4291. #endif
  4292.  
  4293. return 1;
  4294. }
  4295.  
  4296. CMD:setscoretodos(playerid, params[])
  4297. {
  4298. new
  4299. SCORE,
  4300. STRING[200]
  4301. ;
  4302.  
  4303. if(USER[playerid][pLOGADO] == false)
  4304. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4305.  
  4306. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4307. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4308.  
  4309. if(sscanf(params, "i", SCORE))
  4310. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETSCORETODOS [SCORE]");
  4311.  
  4312. foreach(new i : Player)
  4313. {
  4314. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4315.  
  4316. if(USER[i][pADMIN] > 0 || USER[i][pLOGADO] == false) continue;
  4317.  
  4318. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4319.  
  4320. SetPlayerScore(i, SCORE);
  4321.  
  4322. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `SCORE` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", SetPlayerScore(i, USER[i][pSCORE] = SCORE), DB_Escape(GetName(i)));
  4323. db_free_result(db_query(User_Database, STRING));
  4324. }
  4325.  
  4326. format(STRING, sizeof(STRING), "[»] Admin '%s' setou o score de todos os jogadores para '%i'", GetName(playerid), SCORE);
  4327. SendClientMessageToAll(COR_CHAT, STRING);
  4328.  
  4329. #if LOG_ENABLED == true
  4330. SaveLog("Admin_lvl_3.txt", STRING);
  4331. #endif
  4332.  
  4333. return 1;
  4334. }
  4335.  
  4336. CMD:darscoretodos(playerid, params[])
  4337. {
  4338. new
  4339. SCORE,
  4340. STRING[200]
  4341. ;
  4342.  
  4343. if(USER[playerid][pLOGADO] == false)
  4344. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4345.  
  4346. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4347. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4348.  
  4349. if(sscanf(params, "i", SCORE))
  4350. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /DARSCORETODOS [SCORE]");
  4351.  
  4352. foreach(new i : Player)
  4353. {
  4354. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4355.  
  4356. if(USER[i][pADMIN] > 0 || USER[i][pLOGADO] == false) continue;
  4357.  
  4358. SetPlayerScore(i, USER[i][pSCORE] + SCORE);
  4359.  
  4360. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4361.  
  4362. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `SCORE` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", SetPlayerScore(i, USER[i][pSCORE] += SCORE), DB_Escape(GetName(i)));
  4363. db_free_result(db_query(User_Database, STRING));
  4364. }
  4365.  
  4366. format(STRING, sizeof(STRING), "[»] Admin '%s' deu '%i' de score para todos os jogadores.", GetName(playerid), SCORE);
  4367. SendClientMessageToAll(COR_CHAT, STRING);
  4368.  
  4369. #if LOG_ENABLED == true
  4370. SaveLog("Admin_lvl_3.txt", STRING);
  4371. #endif
  4372.  
  4373. return 1;
  4374. }
  4375.  
  4376. CMD:explodirtodos(playerid, params[])
  4377. {
  4378. new
  4379. STRING[129],
  4380. Float:Health,
  4381. Float:PosX,
  4382. Float:PosY,
  4383. Float:PosZ
  4384. ;
  4385.  
  4386. if(USER[playerid][pLOGADO] == false)
  4387. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4388.  
  4389. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4390. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4391.  
  4392. foreach(new i : Player)
  4393. {
  4394. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4395.  
  4396. if(USER[i][pADMIN] > 0) continue;
  4397.  
  4398. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4399.  
  4400. GetPlayerPos(i, PosX, PosY, PosZ);
  4401.  
  4402. CreateExplosion(PosX , PosY, PosZ, 7, 10.0);
  4403.  
  4404. SetPlayerPos(i, PosX+1, PosY+1, PosZ+1);
  4405.  
  4406. SetPlayerHealth(i, Health-20);
  4407. }
  4408.  
  4409. format(STRING, sizeof(STRING), "[»] Admin '%s' explodiu todos os jogadores.", GetName(playerid));
  4410. SendClientMessageToAll(COR_CHAT, STRING);
  4411.  
  4412. #if LOG_ENABLED == true
  4413. SaveLog("Admin_lvl_3.txt", STRING);
  4414. #endif
  4415.  
  4416. return 1;
  4417. }
  4418.  
  4419. CMD:setveiculotodos(playerid, params[])
  4420. {
  4421. new
  4422. TARGET,
  4423. ID,
  4424. STRING[129],
  4425. COR[2],
  4426. Float:FANGLE,
  4427. Float:PosX,
  4428. Float:PosY,
  4429. Float:PosZ
  4430. ;
  4431.  
  4432. if(USER[playerid][pLOGADO] == false)
  4433. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4434.  
  4435. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4436. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level 3 para realizar esta ação.");
  4437.  
  4438. if(sscanf(params, "uiii", TARGET, ID, COR[0], COR[1]))
  4439. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETVEICULO [ID] [VEÍCULO ID] [COR 1] [COR 2]");
  4440.  
  4441. if(!IsPlayerConnected(TARGET))
  4442. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O Player ID informado precisa estar conectado para realizar esta ação.");
  4443.  
  4444. if(ID < 400 || ID > 611)
  4445. return SendClientMessage(playerid, COR_MENSAGEM, "[»] O ID do veículo deve ser entre 400 e 611.");
  4446.  
  4447. if(COR[0] < 0 || COR[1] > 126)
  4448. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Cor inválida. Utilize entre: 0 - 126.");
  4449.  
  4450. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  4451. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  4452. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou Setar um veículo para você.", GetName(playerid), playerid),\
  4453. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  4454.  
  4455. foreach(new i : Player)
  4456. {
  4457. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4458.  
  4459. if(USER[i][pADMIN] > 0 || USER[i][pPRESO] > 0) continue;
  4460.  
  4461. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4462.  
  4463. if(IsPlayerInAnyVehicle(i) || IsPlayerInVehicle(i, VEICULO_SERVER[i]))
  4464. {
  4465. format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' estava em um veículo e foi removido do mesmo.", GetName(i), i);
  4466. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  4467.  
  4468. DestroyVehicle(VEICULO_SERVER[i]);
  4469.  
  4470. GetPlayerPos(i, PosX, PosY, PosZ);
  4471. GetVehicleZAngle(VEICULO_SERVER[i], FANGLE);
  4472.  
  4473. VEICULO_SERVER[i] = AddStaticVehicleEx(ID, PosX, PosY, PosZ, FANGLE, COR[0], COR[1], -1);
  4474.  
  4475. PutPlayerInVehicle(i, VEICULO_SERVER[i], 0);
  4476.  
  4477. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4478. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4479.  
  4480. return 1;
  4481. }
  4482.  
  4483. DestroyVehicle(VEICULO_SERVER[i]);
  4484.  
  4485. GetPlayerPos(i, PosX, PosY, PosZ);
  4486. GetPlayerFacingAngle(i, FANGLE);
  4487.  
  4488. VEICULO_SERVER[i] = AddStaticVehicleEx(ID, PosX, PosY, PosZ, FANGLE, COR[0], COR[1], -1);
  4489.  
  4490. PutPlayerInVehicle(i, VEICULO_SERVER[i], 0);
  4491.  
  4492. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4493. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4494.  
  4495. format(STRING, sizeof(STRING), "[»] Admin '%s' setou o veículo ID '%i' para todos os jogadores.", GetName(playerid), ID);
  4496. SendClientMessageToAll(COR_CHAT, STRING);
  4497. }
  4498.  
  4499. #if LOG_ENABLED == true
  4500. SaveLog("Admin_lvl_3.txt", STRING);
  4501. #endif
  4502.  
  4503. return 1;
  4504. }
  4505.  
  4506. CMD:repveiculotodos(playerid, params[])
  4507. {
  4508. new
  4509. STRING[129]
  4510. ;
  4511.  
  4512. if(USER[playerid][pLOGADO] == false)
  4513. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4514.  
  4515. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4516. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level 3 para realizar esta ação.");
  4517.  
  4518. foreach(new i : Player)
  4519. {
  4520. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4521.  
  4522. if(USER[i][pADMIN] > 0 || !IsPlayerInAnyVehicle(i)) continue;
  4523.  
  4524. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4525.  
  4526. RepairVehicle(GetPlayerVehicleID(i));
  4527. }
  4528.  
  4529. format(STRING, sizeof(STRING), "[»] Admin '%s' reparou os veículos de todos os jogadores.", GetName(playerid));
  4530. SendClientMessageToAll(COR_CHAT, STRING);
  4531.  
  4532. #if LOG_ENABLED == true
  4533. SaveLog("Admin_lvl_3.txt", STRING);
  4534. #endif
  4535.  
  4536. return 1;
  4537. }
  4538.  
  4539. CMD:respveiculos(playerid, params[])
  4540. {
  4541. new
  4542. STRING[129]
  4543. ;
  4544.  
  4545. if(USER[playerid][pLOGADO] == false)
  4546. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4547.  
  4548. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4549. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level 3 para realizar esta ação.");
  4550.  
  4551. foreach(new i : Player)
  4552. {
  4553. if(!IsPlayerInAnyVehicle(i))
  4554. {
  4555. for(new v = 0; v < MAX_VEHICLES; v++)
  4556. {
  4557. SetVehicleToRespawn(v);
  4558. }
  4559. }
  4560.  
  4561. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4562. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4563. }
  4564.  
  4565. format(STRING, sizeof(STRING), "[»] Admin '%s' respawnou todos os veículos inutilizados do servidor.", GetName(playerid));
  4566. SendClientMessageToAll(COR_CHAT, STRING);
  4567.  
  4568. #if LOG_ENABLED == true
  4569. SaveLog("Admin_lvl_3.txt", STRING);
  4570. #endif
  4571. return 1;
  4572. }
  4573.  
  4574. CMD:setvidatodos(playerid, params[])
  4575. {
  4576. new
  4577. STRING[129],
  4578. QUANTIA
  4579. ;
  4580.  
  4581. if(USER[playerid][pLOGADO] == false)
  4582. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4583.  
  4584. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4585. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4586.  
  4587. if(sscanf(params, "f", QUANTIA))
  4588. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETVIDATODOS [QUANTIA]");
  4589.  
  4590. #if ANTI_ARM_HEAL_ENABLED == true
  4591. if(QUANTIA < 0 || QUANTIA > 99)
  4592. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você deve setar a vida entre 0 - 99.");
  4593. #else
  4594. if(QUANTIA < 0 || QUANTIA > 100)
  4595. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você deve setar a vida entre 0 - 100.");
  4596. #endif
  4597.  
  4598. foreach(new i : Player)
  4599. {
  4600. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4601.  
  4602. if(USER[i][pADMIN] > 0) continue;
  4603.  
  4604. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4605.  
  4606. SetPlayerHealth(i, QUANTIA);
  4607. }
  4608.  
  4609. format(STRING, sizeof(STRING), "[»] Admin '%s' setou a vida de todos para '%i'.", GetName(playerid), QUANTIA);
  4610. SendClientMessageToAll(COR_CHAT, STRING);
  4611.  
  4612. #if LOG_ENABLED == true
  4613. SaveLog("Admin_lvl_3.txt", STRING);
  4614. #endif
  4615.  
  4616. return 1;
  4617. }
  4618.  
  4619. CMD:darvidatodos(playerid, params[])
  4620. {
  4621. new
  4622. STRING[129]
  4623. ;
  4624.  
  4625. if(USER[playerid][pLOGADO] == false)
  4626. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4627.  
  4628. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4629. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4630.  
  4631. foreach(new i : Player)
  4632. {
  4633. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4634.  
  4635. if(USER[i][pADMIN] > 0) continue;
  4636.  
  4637. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4638.  
  4639. #if ANTI_ARM_HEAL_ENABLED == true
  4640. SetPlayerHealth(i, 99.5);
  4641. #else
  4642. SetPlayerHealth(i, 100);
  4643. #endif
  4644. }
  4645.  
  4646. format(STRING, sizeof(STRING), "[»] Admin '%s' deu vida para todo mundo.", GetName(playerid));
  4647. SendClientMessageToAll(COR_CHAT, STRING);
  4648.  
  4649. #if LOG_ENABLED == true
  4650. SaveLog("Admin_lvl_3.txt", STRING);
  4651. #endif
  4652.  
  4653. return 1;
  4654. }
  4655.  
  4656. CMD:setcoletetodos(playerid, params[])
  4657. {
  4658. new
  4659. STRING[129],
  4660. QUANTIA
  4661. ;
  4662.  
  4663. if(USER[playerid][pLOGADO] == false)
  4664. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4665.  
  4666. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4667. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4668.  
  4669. if(sscanf(params, "f", QUANTIA))
  4670. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETCOLETETODOS [QUANTIA]");
  4671.  
  4672. #if ANTI_ARM_HEAL_ENABLED == true
  4673. if(QUANTIA < 0 || QUANTIA > 99)
  4674. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você deve setar o colete entre 0 - 99.");
  4675. #else
  4676. if(QUANTIA < 0 || QUANTIA > 100)
  4677. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você deve setar o colete entre 0 - 100.");
  4678. #endif
  4679.  
  4680. foreach(new i : Player)
  4681. {
  4682. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4683.  
  4684. if(USER[i][pADMIN] > 0) continue;
  4685.  
  4686. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4687.  
  4688. SetPlayerArmour(i, QUANTIA);
  4689. }
  4690.  
  4691. format(STRING, sizeof(STRING), "[»] Admin '%s' setou o colete de todos para '%i'.", GetName(playerid), QUANTIA);
  4692. SendClientMessageToAll(COR_CHAT, STRING);
  4693.  
  4694. #if LOG_ENABLED == true
  4695. SaveLog("Admin_lvl_3.txt", STRING);
  4696. #endif
  4697.  
  4698. return 1;
  4699. }
  4700.  
  4701. CMD:darcoletetodos(playerid, params[])
  4702. {
  4703. new
  4704. STRING[129]
  4705. ;
  4706.  
  4707. if(USER[playerid][pLOGADO] == false)
  4708. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4709.  
  4710. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4711. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4712.  
  4713. foreach(new i : Player)
  4714. {
  4715. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4716.  
  4717. if(USER[i][pADMIN] > 0) continue;
  4718.  
  4719. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4720.  
  4721. #if ANTI_ARM_HEAL_ENABLED == true
  4722. SetPlayerArmour(i, 99.5);
  4723. #else
  4724. SetPlayerArmour(i, 100);
  4725. #endif
  4726. }
  4727.  
  4728. format(STRING, sizeof(STRING), "[»] Admin '%s' deu colete para todo mundo.", GetName(playerid));
  4729. SendClientMessageToAll(COR_CHAT, STRING);
  4730.  
  4731. #if LOG_ENABLED == true
  4732. SaveLog("Admin_lvl_3.txt", STRING);
  4733. #endif
  4734.  
  4735. return 1;
  4736. }
  4737.  
  4738. CMD:darvidacoletetodos(playerid, params[])
  4739. {
  4740. new
  4741. STRING[129]
  4742. ;
  4743.  
  4744. if(USER[playerid][pLOGADO] == false)
  4745. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4746.  
  4747. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4748. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4749.  
  4750. foreach(new i : Player)
  4751. {
  4752. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4753.  
  4754. if(USER[i][pADMIN] > 0) continue;
  4755.  
  4756. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4757.  
  4758. #if ANTI_ARM_HEAL_ENABLED == true
  4759. SetPlayerHealth(i, 99.5);
  4760. SetPlayerArmour(i, 99.5);
  4761. #else
  4762. SetPlayerHealth(i, 100);
  4763. SetPlayerArmour(i, 100);
  4764. #endif
  4765. }
  4766.  
  4767. format(STRING, sizeof(STRING), "[»] Admin '%s' deu vida e colete para todo mundo.", GetName(playerid));
  4768. SendClientMessageToAll(COR_CHAT, STRING);
  4769.  
  4770. #if LOG_ENABLED == true
  4771. SaveLog("Admin_lvl_3.txt", STRING);
  4772. #endif
  4773.  
  4774. return 1;
  4775. }
  4776.  
  4777. CMD:setvidacoletetodos(playerid, params[])
  4778. {
  4779. new
  4780. STRING[129],
  4781. QUANTIA
  4782. ;
  4783.  
  4784. if(USER[playerid][pLOGADO] == false)
  4785. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4786.  
  4787. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4788. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4789.  
  4790. if(sscanf(params, "i", QUANTIA))
  4791. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETVIDACOLETETODOS [QUANTIA]");
  4792.  
  4793. #if ANTI_ARM_HEAL_ENABLED == true
  4794. if(QUANTIA < 0 || QUANTIA > 99)
  4795. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você deve setar a vida/colete entre 0 - 99.");
  4796. #else
  4797. if(QUANTIA < 0 || QUANTIA > 100)
  4798. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você deve setar a vida/colete entre 0 - 100.");
  4799. #endif
  4800.  
  4801. foreach(new i : Player)
  4802. {
  4803. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4804.  
  4805. if(USER[i][pADMIN] > 0) continue;
  4806.  
  4807. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4808.  
  4809. SetPlayerHealth(i, QUANTIA);
  4810. SetPlayerArmour(i, QUANTIA);
  4811. }
  4812.  
  4813. format(STRING, sizeof(STRING), "[»] Admin '%s' setou a vida e colete de todos para '%i'.", GetName(playerid), QUANTIA);
  4814. SendClientMessageToAll(COR_CHAT, STRING);
  4815.  
  4816. #if LOG_ENABLED == true
  4817. SaveLog("Admin_lvl_3.txt", STRING);
  4818. #endif
  4819.  
  4820. return 1;
  4821. }
  4822.  
  4823. CMD:trazertodos(playerid, params[])
  4824. {
  4825. new
  4826. STRING[129],
  4827. Float:PosX,
  4828. Float:PosY,
  4829. Float:PosZ
  4830. ;
  4831.  
  4832. if(USER[playerid][pLOGADO] == false)
  4833. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4834.  
  4835. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4836. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4837.  
  4838. foreach(new i : Player)
  4839. {
  4840. GetPlayerPos(playerid, PosX, PosY, PosZ);
  4841.  
  4842. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4843.  
  4844. if(USER[i][pADMIN] > 0) continue;
  4845.  
  4846. SetPlayerPos(i, PosX, PosY, PosZ);
  4847.  
  4848. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4849. }
  4850.  
  4851. format(STRING, sizeof(STRING), "[»] Admin '%s' trouxe to mundo para sua posição.", GetName(playerid));
  4852. SendClientMessageToAll(COR_CHAT, STRING);
  4853.  
  4854. #if LOG_ENABLED == true
  4855. SaveLog("Admin_lvl_3.txt", STRING);
  4856. #endif
  4857.  
  4858. return 1;
  4859. }
  4860.  
  4861. CMD:prendertodos(playerid, params[])
  4862. {
  4863. new
  4864. STRING[200],
  4865. MOTIVO[20],
  4866. TEMPO
  4867. ;
  4868.  
  4869. if(USER[playerid][pLOGADO] == false)
  4870. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4871.  
  4872. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4873. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4874.  
  4875. if(sscanf(params, "iS(PORQUE SIM)[20]", TEMPO, MOTIVO))
  4876. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /PRENDERTODOS [TEMPO] [MOTIVO (PADRÃO: PORQUE SIM)]");
  4877.  
  4878. foreach(new i : Player)
  4879. {
  4880. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4881.  
  4882. if(USER[i][pADMIN] > 0 || USER[i][pPRESO] > 0) continue;
  4883.  
  4884. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pPRESO] = 1, DB_Escape(GetName(i)));
  4885. db_free_result(db_query(User_Database, STRING));
  4886. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pTEMPOPRESO] += TEMPO+1, DB_Escape(GetName(i)));
  4887. db_free_result(db_query(User_Database, STRING));
  4888.  
  4889. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4890. }
  4891.  
  4892. format(STRING, sizeof(STRING), "[»] Admin '%s' prendeu todos os jogadores por '%i' segundos. Motivo: '%s'.", GetName(playerid), TEMPO, MOTIVO);
  4893. SendClientMessageToAll(COR_CHAT, STRING);
  4894.  
  4895. #if LOG_ENABLED == true
  4896. SaveLog("Admin_lvl_3.txt", STRING);
  4897. #endif
  4898.  
  4899. return 1;
  4900. }
  4901.  
  4902. CMD:soltartodos(playerid, params[])
  4903. {
  4904. new
  4905. STRING[200]
  4906. ;
  4907.  
  4908. if(USER[playerid][pLOGADO] == false)
  4909. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4910.  
  4911. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4912. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4913.  
  4914. foreach(new i : Player)
  4915. {
  4916. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4917.  
  4918. if(USER[i][pADMIN] > 0 || USER[i][pPRESO] == 0) continue;
  4919.  
  4920. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pPRESO] = 0, DB_Escape(GetName(i)));
  4921. db_free_result(db_query(User_Database, STRING));
  4922. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pTEMPOPRESO] = 0, DB_Escape(GetName(i)));
  4923. db_free_result(db_query(User_Database, STRING));
  4924.  
  4925. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4926. }
  4927.  
  4928. format(STRING, sizeof(STRING), "[»] Admin '%s' soltou todos os jogadorer.", GetName(playerid));
  4929. SendClientMessageToAll(COR_CHAT, STRING);
  4930.  
  4931. #if LOG_ENABLED == true
  4932. SaveLog("Admin_lvl_3.txt", STRING);
  4933. #endif
  4934.  
  4935. return 1;
  4936. }
  4937.  
  4938. CMD:calarcmdtodos(playerid, params[])
  4939. {
  4940. new
  4941. STRING[200],
  4942. MOTIVO[20],
  4943. TEMPO
  4944. ;
  4945.  
  4946. if(USER[playerid][pLOGADO] == false)
  4947. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4948.  
  4949. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4950. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4951.  
  4952. if(sscanf(params, "iS(PORQUE SIM)[20]", TEMPO, MOTIVO))
  4953. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /CALARCMDTODOS [TEMPO] [MOTIVO (PADRÃO: PORQUE SIM)]");
  4954.  
  4955. foreach(new i : Player)
  4956. {
  4957. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4958.  
  4959. if(USER[i][pADMIN] > 0) continue;
  4960.  
  4961. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `CMD CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pCMDCALADO] = 1, DB_Escape(GetName(i)));
  4962. db_free_result(db_query(User_Database, STRING));
  4963. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO CMD CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pTEMPOCMDCALADO] += TEMPO, DB_Escape(GetName(i)));
  4964. db_free_result(db_query(User_Database, STRING));
  4965.  
  4966. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  4967. }
  4968.  
  4969. format(STRING, sizeof(STRING), "[»] Admin '%s' bloqueou os comandos de todos os players por '%i' segundos. Motivo: '%s'.", GetName(playerid), TEMPO, MOTIVO);
  4970. SendClientMessageToAll(COR_CHAT, STRING);
  4971.  
  4972. #if LOG_ENABLED == true
  4973. SaveLog("Admin_lvl_3.txt", STRING);
  4974. #endif
  4975.  
  4976. return 1;
  4977. }
  4978.  
  4979. CMD:descalarcmdtodos(playerid, params[])
  4980. {
  4981. new
  4982. STRING[200]
  4983. ;
  4984.  
  4985. if(USER[playerid][pLOGADO] == false)
  4986. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  4987.  
  4988. if(USER[playerid][pADMIN] < LEVEL_ADMINISTRADOR)
  4989. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level ADMINISTRADOR para realizar esta ação.");
  4990.  
  4991. foreach(new i : Player)
  4992. {
  4993. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  4994.  
  4995. if(USER[i][pADMIN] > 0 || USER[i][pPRESO] > 0) continue;
  4996.  
  4997. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `CMD CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pCMDCALADO] = 0, DB_Escape(GetName(i)));
  4998. db_free_result(db_query(User_Database, STRING));
  4999. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `TEMPO CMD CALADO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[i][pTEMPOCMDCALADO] = 0, DB_Escape(GetName(i)));
  5000. db_free_result(db_query(User_Database, STRING));
  5001.  
  5002. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  5003. }
  5004.  
  5005. format(STRING, sizeof(STRING), "[»] Admin '%s' liberou os comandos de todos os jogadores.", GetName(playerid));
  5006. SendClientMessageToAll(COR_CHAT, STRING);
  5007.  
  5008. #if LOG_ENABLED == true
  5009. SaveLog("Admin_lvl_3.txt", STRING);
  5010. #endif
  5011.  
  5012. return 1;
  5013. }
  5014. //==--==--====--==--====--==--==|COMMANDS_ADMIN_LVL_5|==--==--====--==--====--==--==//
  5015. CMD:setlevel(playerid, params[])
  5016. {
  5017. new
  5018. TARGET,
  5019. LEVEL,
  5020. STRCAT[100],
  5021. STRING[200]
  5022. ;
  5023.  
  5024. if(USER[playerid][pLOGADO] == false)
  5025. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  5026.  
  5027. if(USER[playerid][pADMIN] < LEVEL_OWNER)
  5028. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level OWNER para realizar esta ação.");
  5029.  
  5030. if(sscanf(params, "ui", TARGET, LEVEL))
  5031. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SETLEVEL [ID] [LEVEL]");
  5032.  
  5033. if(LEVEL < 0 || LEVEL > 4)
  5034. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Level inválido! Deve ser entre 0 e 4");
  5035.  
  5036. if(!IsPlayerConnected(TARGET))
  5037. return format(STRING, sizeof(STRING), "[»] O Player ID '%i' precisa estar conectado para realizar esta ação.", TARGET),\
  5038. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  5039.  
  5040. if(USER[TARGET][pLOGADO] == false)
  5041. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' precisa estar logado para realizar esta ação.", GetName(TARGET), TARGET),\
  5042. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  5043.  
  5044. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  5045. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  5046. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou alterar o seu Level de Administração para '%i'.", GetName(TARGET), TARGET, LEVEL),\
  5047. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  5048.  
  5049. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  5050. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  5051.  
  5052. switch(USER[playerid][pADMIN])
  5053. {
  5054. case 1: strcat(STRCAT, "HELPER");
  5055. case 2: strcat(STRCAT, "MODERADOR");
  5056. case 3: strcat(STRCAT, "ADMINISTRADOR");
  5057. case 4: strcat(STRCAT, "OWNER");
  5058. }
  5059.  
  5060. switch(LEVEL)
  5061. {
  5062. case 0:format(STRING, sizeof(STRING), "[»] Admin '%s' removeu seus privilégios Administrativos.", GetName(playerid)),\
  5063. SendClientMessage(TARGET, COR_CHAT, STRING);
  5064. case 1:format(STRING, sizeof(STRING), "[»] Admin '%s' setou seu Level Administrativo para '%s'.", GetName(playerid), STRCAT),\
  5065. SendClientMessage(TARGET, COR_CHAT, STRING);
  5066. case 2:format(STRING, sizeof(STRING), "[»] Admin '%s' setou seu Level Administrativo para '%s'.", GetName(playerid), STRCAT),\
  5067. SendClientMessage(TARGET, COR_CHAT, STRING);
  5068. case 3:format(STRING, sizeof(STRING), "[»] Admin '%s' setou seu Level Administrativo para '%s'.", GetName(playerid), STRCAT),\
  5069. SendClientMessage(TARGET, COR_CHAT, STRING);
  5070. case 4:format(STRING, sizeof(STRING), "[»] Admin '%s' setou seu Level Administrativo para '%s'.", GetName(playerid), STRCAT),\
  5071. SendClientMessage(TARGET, COR_CHAT, STRING);
  5072. }
  5073.  
  5074. format(STRING, sizeof(STRING), "UPDATE `"USER_TABLE"` SET `ADMIN` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pADMIN] = LEVEL, DB_Escape(GetName(TARGET)));
  5075. db_free_result(db_query(User_Database, STRING));
  5076.  
  5077. if(LEVEL > 0)
  5078. format(STRING, sizeof(STRING), "Administrador '%s' setou Level Administrativo '%s' para o Jogador '%s [ID: %i]'.", GetName(playerid), STRCAT, GetName(TARGET), TARGET);
  5079. else
  5080. format(STRING, sizeof(STRING), "Administrador '%s' removeu os privilégios Administrativos do Jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  5081. SendClientMessageToAll(COR_CHAT, STRING);
  5082.  
  5083. #if LOG_ENABLED == true
  5084. SaveLog("Admin_lvl_5.txt", STRING);
  5085. #endif
  5086.  
  5087. return 1;
  5088. }
  5089.  
  5090. CMD:setvip(playerid, params[])
  5091. {
  5092. new
  5093. TARGET,
  5094. LEVEL,
  5095. STRING[300],
  5096. STRCAT[10],
  5097. TEMPO,
  5098. DBResult:Resultado
  5099. ;
  5100.  
  5101. if(USER[playerid][pLOGADO] == false)
  5102. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  5103.  
  5104. if(USER[playerid][pADMIN] < LEVEL_OWNER)
  5105. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level OWNER para realizar esta ação.");
  5106.  
  5107. if(sscanf(params, "uis[300]i", TARGET, LEVEL, STRING, TEMPO))
  5108. return SendClientMessage(playerid, -1, "[»] /SETVIP [ID] [LEVEL] [DIAS ou HORAS ou MINUTOS] [TEMPO]");
  5109.  
  5110. if(LEVEL < 1 || LEVEL > 3)
  5111. return SendClientMessage(playerid, -1, "[»] Level inválido. Utilize entre 1 - 3");
  5112.  
  5113. if(TEMPO <= 0)
  5114. return SendClientMessage(playerid, -1, "[»] Tempo inválido. Utilize acima de 0 minutos/horas/dias.");
  5115.  
  5116. if(!IsPlayerConnected(TARGET))
  5117. return format(STRING, sizeof(STRING), "[»] O Player ID '%i' precisa estar conectado para realizar esta ação.", TARGET),\
  5118. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  5119.  
  5120. if(USER[TARGET][pLOGADO] == false)
  5121. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' precisa estar logado para realizar esta ação.", GetName(TARGET), TARGET),\
  5122. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  5123.  
  5124. switch(USER[playerid][pVIP])
  5125. {
  5126. case 1: strcat(STRCAT, "BRONZE");
  5127. case 2: strcat(STRCAT, "PRATA");
  5128. case 3: strcat(STRCAT, "OURO");
  5129. }
  5130.  
  5131. if(USER[TARGET][pVIP] > 0)
  5132. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' já tem uma conta VIP %s.", GetName(TARGET), TARGET, STRCAT),\
  5133. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  5134.  
  5135. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  5136. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  5137. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou alterar o seu Level VIP para '%s'.", GetName(TARGET), TARGET, STRCAT),\
  5138. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  5139.  
  5140. if(strcmp(STRING, "DIAS", true) == 0)
  5141. USER[playerid][pTIMEVIP] = TEMPO * 24 * 60 * 60,
  5142. DefinirVIP(GetName(TARGET), USER[TARGET][pVIP] = LEVEL, USER[TARGET][pTIMEVIP], ConvertTime(USER[TARGET][pTIMEVIP]));
  5143. else if(strcmp(STRING, "HORAS", true) == 0)
  5144. USER[playerid][pTIMEVIP] = TEMPO * 60 * 60,
  5145. DefinirVIP(GetName(TARGET), USER[TARGET][pVIP] = LEVEL, USER[TARGET][pTIMEVIP], ConvertTime(USER[TARGET][pTIMEVIP]));
  5146. else if(strcmp(STRING, "MINUTOS", true) == 0)
  5147. USER[playerid][pTIMEVIP] = TEMPO * 60,
  5148. DefinirVIP(GetName(TARGET), USER[TARGET][pVIP] = LEVEL, USER[TARGET][pTIMEVIP], ConvertTime(USER[TARGET][pTIMEVIP]));
  5149. db_query(VIP_Database, STRING);
  5150.  
  5151. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  5152. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  5153.  
  5154. format(STRING, sizeof(STRING), "[»] Admin '%s' deu level vip '%s' para você. TEMPO: '%s'", GetName(playerid), STRCAT, ConvertTime(USER[playerid][pTIMEVIP]));
  5155. SendClientMessage(TARGET, COR_AVISO, STRING);
  5156.  
  5157. format(STRING, sizeof(STRING), "[»] Admin '%s' deu level vip '%s' ao jogador '%s [ID: %i]'. TEMPO: '%s'", GetName(playerid), STRCAT, GetName(TARGET), TARGET, ConvertTime(USER[playerid][pTIMEVIP]));
  5158. SendClientMessageToAll(COR_AVISO, STRING);
  5159.  
  5160. #if LOG_ENABLED == true
  5161. SaveLog("Admin_lvl_5.txt", STRING);
  5162. #endif
  5163.  
  5164. format(STRING, sizeof(STRING),"SELECT * FROM `"VIP_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", GetName(playerid));
  5165. Resultado = db_query(VIP_Database, STRING);
  5166. if(db_num_rows(Resultado))
  5167. {
  5168. db_get_field_assoc(Resultado, "GETTIME", STRING, 20);
  5169. USER[playerid][pTIMEVIP] = strval(STRING);
  5170.  
  5171. db_get_field_assoc(Resultado, "VIP", STRING, 6);
  5172. USER[playerid][pVIP] = strval(STRING);
  5173.  
  5174. db_get_field_assoc(Resultado, "TEMPO", USER[playerid][pRECEIVEDTIME], 75);
  5175. }
  5176. db_free_result(db_query(VIP_Database, STRING));
  5177.  
  5178. return 1;
  5179. }
  5180.  
  5181. stock DefinirVIP(xNome[], xLevel, xGetTime, xTempo[])
  5182. {
  5183. new
  5184. STRING[200],
  5185. DBResult:Resultado
  5186. ;
  5187.  
  5188. format(STRING, sizeof(STRING),"SELECT * FROM `"VIP_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", xNome);
  5189. Resultado = db_query(VIP_Database, STRING);
  5190. if(!db_num_rows(Resultado))
  5191. format(STRING,sizeof(STRING), "INSERT INTO `"VIP_TABLE"` (`NOME`, `VIP`, `GETTIME`, `TEMPO`)VALUES('%s', '%i', '%i', '%s')", xNome, xLevel, xGetTime + gettime(), xTempo);
  5192. db_free_result(db_query(VIP_Database, STRING));
  5193. return 1;
  5194. }
  5195.  
  5196. CMD:removervip(playerid, params[])
  5197. {
  5198. new
  5199. TARGET,
  5200. STRING[300],
  5201. DBResult:Resultado
  5202. ;
  5203.  
  5204. if(USER[playerid][pLOGADO] == false)
  5205. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  5206.  
  5207. if(USER[playerid][pADMIN] < LEVEL_OWNER)
  5208. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level OWNER para realizar esta ação.");
  5209.  
  5210. if(sscanf(params, "u", TARGET))
  5211. return SendClientMessage(playerid, -1, "[»] /REMOVERVIP [ID/NOME]");
  5212.  
  5213. if(!IsPlayerConnected(TARGET))
  5214. return format(STRING, sizeof(STRING), "[»] O Player ID '%i' precisa estar conectado para realizar esta ação.", TARGET),\
  5215. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  5216.  
  5217. if(USER[TARGET][pLOGADO] == false)
  5218. return format(STRING, sizeof(STRING), "[»] O Player '%s [ID: %i]' precisa estar logado para realizar esta ação.", GetName(TARGET), TARGET),\
  5219. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  5220.  
  5221. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  5222. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  5223. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou remover o seu Level VIP.", GetName(TARGET), TARGET),\
  5224. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  5225.  
  5226. format(STRING, sizeof(STRING),"SELECT * FROM `"VIP_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", GetName(TARGET));
  5227. Resultado = db_query(VIP_Database, STRING);
  5228. if(db_num_rows(Resultado))
  5229. {
  5230. format(STRING, sizeof(STRING),"DELETE FROM `"VIP_TABLE"` WHERE `NOME` = '%s'", GetName(TARGET));
  5231.  
  5232. USER[TARGET][pVIP] = 0;
  5233.  
  5234. SendClientMessage(playerid, COR_MENSAGEM, "[»] Conta VIP deletada com sucesso do Banco de Dados.");
  5235. }
  5236. else return SendClientMessage(playerid, COR_MENSAGEM, "[»] Conta VIP inexistente no Banco de Dados.");
  5237. db_free_result(db_query(VIP_Database, STRING));
  5238.  
  5239. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  5240. PlayerPlaySound(TARGET, 1057, 0.0, 0.0, 0.0);
  5241.  
  5242. format(STRING, sizeof(STRING), "[»] Admin '%s' removeu sua conta VIP.", GetName(playerid));
  5243. SendClientMessage(TARGET, COR_AVISO, STRING);
  5244.  
  5245. format(STRING, sizeof(STRING), "[»] Admin '%s' removeu a conta VIP do jogador '%s [ID: %i]'.", GetName(playerid), GetName(TARGET), TARGET);
  5246. SendClientMessageToAll(COR_AVISO, STRING);
  5247.  
  5248. #if LOG_ENABLED == true
  5249. SaveLog("Admin_lvl_5.txt", STRING);
  5250. #endif
  5251.  
  5252. format(STRING, sizeof(STRING),"SELECT * FROM `"VIP_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", GetName(playerid));
  5253. Resultado = db_query(VIP_Database, STRING);
  5254. if(db_num_rows(Resultado))
  5255. {
  5256. db_get_field_assoc(Resultado, "GETTIME", STRING, 20);
  5257. USER[playerid][pTIMEVIP] = strval(STRING);
  5258. db_get_field_assoc(Resultado, "VIP", STRING, 6);
  5259. USER[playerid][pVIP] = strval(STRING);
  5260. db_get_field_assoc(Resultado, "TEMPO", USER[playerid][pRECEIVEDTIME], 75);
  5261. }
  5262. db_free_result(db_query(VIP_Database, STRING));
  5263.  
  5264. return 1;
  5265. }
  5266.  
  5267. CMD:serverconfig(playerid, params[])
  5268. {
  5269. new
  5270. COMMAND[100],
  5271. VALUE[30],
  5272. STRING[129]
  5273. ;
  5274.  
  5275. if(USER[playerid][pLOGADO] == false)
  5276. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  5277.  
  5278. if(USER[playerid][pADMIN] < LEVEL_OWNER)
  5279. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level OWNER para realizar esta ação.");
  5280.  
  5281. if(sscanf(params, "s[100]s[30]", COMMAND, VALUE))
  5282. return SendClientMessage(playerid, COR_MENSAGEM, "[»] /SERVERCONFIG [PASSWORD] [LOCK SERVER PASS (0 TO REMOVE PASS)]"),
  5283. SendClientMessage(playerid, COR_MENSAGEM, "[»] /SERVERCONFIG [MAGetName] [NEW MAP NAME]"),
  5284. SendClientMessage(playerid, COR_MENSAGEM, "[»] /SERVERCONFIG [GMX]"),
  5285. SendClientMessage(playerid, COR_MENSAGEM, "[»] /SERVERCONFIG [EXIT]"),
  5286. SendClientMessage(playerid, COR_MENSAGEM, "[»] /SERVERCONFIG [HOSTNAME] [NEW HOST NAME]"),
  5287. SendClientMessage(playerid, COR_MENSAGEM, "[»] /SERVERCONFIG [WEBURL] [NEW SITE]"),
  5288. SendClientMessage(playerid, COR_MENSAGEM, "[»] /SERVERCONFIG [CHANGEMODE] [GAMEMODE NAME]"),
  5289. SendClientMessage(playerid, COR_MENSAGEM, "[»] /SERVERCONFIG [RCONPASS] [NEW PASS]");
  5290.  
  5291. if(strcmp(COMMAND, "PASSWORD", true) == 0)
  5292. {
  5293. format(COMMAND, sizeof(COMMAND), "password %s", VALUE);
  5294. SendRconCommand(COMMAND);
  5295.  
  5296. format(STRING, sizeof(STRING), "Admin '%s' trancou o servidor.", GetName(playerid));
  5297. }
  5298. else if(strcmp(COMMAND, "GAMEMODETEXT", true) == 0)
  5299. {
  5300. format(COMMAND, sizeof(COMMAND), "%s", VALUE);
  5301. SetGameModeText(COMMAND);
  5302.  
  5303. format(STRING, sizeof(STRING), "Admin '%s' alterou o nome do modo de jogo do servidor para: '%s'.", GetName(playerid), VALUE);
  5304. }
  5305. else if(strcmp(COMMAND, "HOSTNAME", true) == 0)
  5306. {
  5307. format(COMMAND, sizeof(COMMAND), "hostname %s", VALUE);
  5308. SendRconCommand(COMMAND);
  5309.  
  5310. format(STRING, sizeof(STRING), "Admin '%s' alterou o nome do host do servidor para: '%s'.", GetName(playerid), VALUE);
  5311. }
  5312. else if(strcmp(COMMAND, "WEBURL", true) == 0)
  5313. {
  5314. format(COMMAND, sizeof(COMMAND), "weburl %s", VALUE);
  5315. SendRconCommand(COMMAND);
  5316.  
  5317. format(STRING, sizeof(STRING), "Admin '%s' alterou o site do servidor para: '%s'.", GetName(playerid), VALUE);
  5318. }
  5319. else if(strcmp(COMMAND, "RCONPASS", true) == 0)
  5320. {
  5321. format(STRING, sizeof(STRING), "rcon_password %s", VALUE);
  5322. SendRconCommand(STRING);
  5323. }
  5324. else if(strcmp(COMMAND, "MAGetName", true) == 0)
  5325. {
  5326. format(COMMAND, sizeof(COMMAND), "maGetName %s", VALUE);
  5327. SendRconCommand(COMMAND);
  5328.  
  5329. format(STRING, sizeof(STRING), "Admin '%s' alterou o nome do mapa do servidor para: '%s'.", GetName(playerid), VALUE);
  5330. }
  5331. else if(strcmp(COMMAND, "GMX", true) == 0)
  5332. {
  5333. SetTimer("ReiniciarServidor", 10 * 1000, false);
  5334.  
  5335. for(new i = 0; i < 10; i++)
  5336. {
  5337. SendClientMessageToAll(COR_AVISO, "O SERVIDOR SERÁ REINICIADO EM: '10' SEGUNDOS.");
  5338. }
  5339.  
  5340. foreach(new i : Player)
  5341. {
  5342. if(USER[i][pLOGADO] == true)
  5343. {
  5344. SaveData(i);
  5345. SendClientMessageToAll(COR_AVISO, "Salvando dados...");
  5346. }
  5347. }
  5348. }
  5349. else if(strcmp(COMMAND, "EXIT", true) == 0)
  5350. {
  5351. SetTimer("DesligarServidor", 10 * 1000, false);
  5352.  
  5353. for(new i = 0; i < 10; i++)
  5354. {
  5355. SendClientMessageToAll(COR_AVISO, "O SERVIDOR SERÁ DESLIGADO EM: '10' SEGUNDOS.");
  5356. }
  5357.  
  5358. foreach(new i : Player)
  5359. {
  5360. if(USER[i][pLOGADO] == true)
  5361. {
  5362. SaveData(i);
  5363. SendClientMessageToAll(COR_AVISO, "Salvando dados...");
  5364. }
  5365. }
  5366. }
  5367. SendClientMessageToAll(COR_AVISO, STRING);
  5368.  
  5369. format(COMMAND, sizeof(COMMAND), "COMANDO: %s | VALOR: %s", COMMAND, VALUE);
  5370. SendClientMessage(playerid, COR_CHAT, COMMAND);
  5371.  
  5372. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  5373.  
  5374. #if LOG_ENABLED == true
  5375. SaveLog("RCON_COMMANDS.txt", COMMAND);
  5376. #endif
  5377.  
  5378. return 1;
  5379. }
  5380.  
  5381. CMD:ban(playerid, params[])
  5382. {
  5383. new
  5384. TARGET,
  5385. MOTIVO[30],
  5386. DATA[50],
  5387. STRING[300],
  5388. Data[3],
  5389. Hora[3],
  5390. GetTime,
  5391. TEMPO
  5392. ;
  5393.  
  5394. if(USER[playerid][pLOGADO] == false)
  5395. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa estar logado para realizar esta ação.");
  5396.  
  5397. if(USER[playerid][pADMIN] < LEVEL_OWNER)
  5398. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você precisa ser Admin Level OWNER para realizar esta ação.");
  5399.  
  5400. if(sscanf(params, "us[30]s[300]i", TARGET, MOTIVO, STRING, TEMPO))
  5401. return SendClientMessage(playerid, -1, "/BAN [ID] [MOTIVO] [DIAS ou HORAS ou MINUTOS] [TEMPO]");
  5402.  
  5403. if(strlen(MOTIVO) < 3 || strlen(MOTIVO) > 30)
  5404. return SendClientMessage(playerid, -1, "Motivo inválido. Utilize entre 3 - 30 caracteres.");
  5405.  
  5406. if(TEMPO < 1 || TEMPO > 1000)
  5407. return SendClientMessage(playerid, -1, "Tempo inválido. Utilize entre 1 - 1000 minutos/horas/dias.");
  5408.  
  5409. if(!IsPlayerConnected(TARGET))
  5410. return format(STRING, sizeof(STRING), "[»] O Player ID '%i' precisa estar conectado para realizar esta ação.", TARGET),\
  5411. SendClientMessage(playerid, COR_MENSAGEM, STRING);
  5412.  
  5413. if(USER[playerid][pADMIN] < USER[TARGET][pADMIN])
  5414. return SendClientMessage(playerid, COR_MENSAGEM, "[»] Você não pode realizar esta ação em outro Admin."),\
  5415. format(STRING, sizeof(STRING), "[»] O Admin '%s [ID: %i]' tentou te Banir.", GetName(TARGET), TARGET),\
  5416. SendClientMessage(TARGET, COR_MENSAGEM, STRING);
  5417.  
  5418. getdate(Data[0], Data[1], Data[2]);
  5419. gettime(Hora[0], Hora[1], Hora[2]);
  5420.  
  5421. format(DATA, sizeof(DATA), "%02i/%02i/%02i | %02i:%02i:%02i", Data[2], Data[1], Data[0], Hora[0], Hora[1], Hora[2]);
  5422.  
  5423. if(strcmp(STRING, "DIAS", true) == 0)
  5424. GetTime = TEMPO * 24 * 60 * 60,
  5425. BanirPlayer(GetName(TARGET), GetIP(TARGET), GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
  5426. db_free_result(db_query(Ban_Database, STRING));
  5427. else if(strcmp(STRING, "HORAS", true) == 0)
  5428. GetTime = TEMPO * 60 * 60,
  5429. BanirPlayer(GetName(TARGET), GetIP(TARGET), GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
  5430. db_free_result(db_query(Ban_Database, STRING));
  5431. else if(strcmp(STRING, "MINUTOS", true) == 0)
  5432. GetTime = TEMPO * 60,
  5433. BanirPlayer(GetName(TARGET), GetIP(TARGET), GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
  5434. db_free_result(db_query(Ban_Database, STRING));
  5435. else return SendClientMessage(playerid, -1, "/BAN [ID] [MOTIVO] [DIAS ou HORAS ou MINUTOS] [TEMPO]");
  5436.  
  5437. format(STRING,sizeof(STRING), "Admin '%s' baniu temporariamente o jogador '%s [ID: %i]'. Motivo: '%s'. TEMPO: '%s'", GetName(playerid), GetName(TARGET), TARGET, MOTIVO, ConvertTime(GetTime));
  5438. SendClientMessageToAll(-1, STRING);
  5439.  
  5440. return 1;
  5441. }
  5442.  
  5443. CMD:banip(playerid, params[])
  5444. {
  5445. new
  5446. IP[30],
  5447. MOTIVO[30],
  5448. DATA[50],
  5449. STRING[300],
  5450. Data[3],
  5451. Hora[3],
  5452. GetTime,
  5453. TEMPO
  5454. ;
  5455.  
  5456. if(!IsPlayerAdmin(playerid))
  5457. return SendClientMessage(playerid, -1, "Você precisa ser Admin RCON para realizar esta ação.");
  5458.  
  5459. if(sscanf(params, "s[30]s[30]s[300]i", IP, MOTIVO, STRING, TEMPO))
  5460. return SendClientMessage(playerid, -1, "/BANIP [IP] [MOTIVO] [DIAS ou HORAS ou MINUTOS] [TEMPO]");
  5461.  
  5462. if(strlen(MOTIVO) < 3 || strlen(MOTIVO) > 30)
  5463. return SendClientMessage(playerid, -1, "Motivo inválido. Utilize entre 3 - 30 caracteres.");
  5464.  
  5465. if(strlen(IP) < 1 || strlen(IP) > 30)
  5466. return SendClientMessage(playerid, -1, "Tamanho de IP inválido.");
  5467.  
  5468. if(TEMPO < 1 || TEMPO > 1000)
  5469. return SendClientMessage(playerid, -1, "Tempo inválido. Utilize entre 1 - 1000 minutos/horas/dias.");
  5470.  
  5471. getdate(Data[0], Data[1], Data[2]);
  5472. gettime(Hora[0], Hora[1], Hora[2]);
  5473.  
  5474. format(DATA, sizeof(DATA), "%02i/%02i/%02i | %02i:%02i:%02i", Data[2], Data[1], Data[0], Hora[0], Hora[1], Hora[2]);
  5475.  
  5476. if(strcmp(STRING, "DIAS", true) == 0)
  5477. GetTime = TEMPO * 24 * 60 * 60,
  5478. BanirIpPlayer("N/A", IP, GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
  5479. db_free_result(db_query(Ban_Database, STRING));
  5480. else if(strcmp(STRING, "HORAS", true) == 0)
  5481. GetTime = TEMPO * 60 * 60,
  5482. BanirIpPlayer("N/A", IP, GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
  5483. db_free_result(db_query(Ban_Database, STRING));
  5484. else if(strcmp(STRING, "MINUTOS", true) == 0)
  5485. GetTime = TEMPO * 60,
  5486. BanirIpPlayer("N/A", IP, GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
  5487. db_free_result(db_query(Ban_Database, STRING));
  5488. else return SendClientMessage(playerid, -1, "/BAN [ID] [MOTIVO] [DIAS ou HORAS ou MINUTOS] [TEMPO]");
  5489.  
  5490. format(STRING,sizeof(STRING), "Admin '%s' baniu temporariamente o IP '%s'. Motivo: '%s'. TEMPO: '%s'", GetName(playerid), IP, MOTIVO, ConvertTime(GetTime));
  5491. SendClientMessageToAll(-1, STRING);
  5492.  
  5493. return 1;
  5494. }
  5495.  
  5496. CMD:desban(playerid, params[])
  5497. {
  5498. new
  5499. DESBAN[30],
  5500. CONTA[30],
  5501. STRING[200],
  5502. DBResult:Resultado
  5503. ;
  5504.  
  5505. if(!IsPlayerAdmin(playerid))
  5506. return SendClientMessage(playerid, -1, "Você precisa ser Admin RCON para realizar esta ação.");
  5507.  
  5508. if(sscanf(params, "s[30]s[30]", DESBAN, CONTA))
  5509. return SendClientMessage(playerid, -1, "/DESBAN IP [IP] | /DESBAN NOME [NOME]");
  5510.  
  5511. if(strcmp(DESBAN, "IP", true) == 0)
  5512. {
  5513. format(STRING, sizeof(STRING),"SELECT * FROM `"BAN_TABLE"` WHERE `IP` = '%s'", CONTA);
  5514. Resultado = db_query(Ban_Database, STRING);
  5515. if(db_num_rows(Resultado))
  5516. DesbanirPlayer(CONTA),
  5517. SendClientMessage(playerid, -1, "Conta desbanida com sucesso.");
  5518. else return SendClientMessage(playerid, -1, "Conta inexistente no Banco de Dados.");
  5519. }
  5520. else if(strcmp(DESBAN, "NOME", true) == 0)
  5521. {
  5522. format(STRING, sizeof(STRING),"SELECT * FROM `"BAN_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", CONTA);
  5523. Resultado = db_query(Ban_Database, STRING);
  5524. if(db_num_rows(Resultado))
  5525. DesbanirPlayer(CONTA),
  5526. SendClientMessage(playerid, -1, "Conta desbanida com sucesso.");
  5527. else return SendClientMessage(playerid, -1, "Conta inexistente no Banco de Dados.");
  5528. }
  5529. db_free_result(db_query(Ban_Database, STRING));
  5530.  
  5531. return 1;
  5532. }
  5533. //==--==--====--==--====--==--==|STOCKS|==--==--====--==--====--==--==//
  5534. //==--==--====--==--====--==--==|STOCK_CONVERT_TIME|==--==--====--==--====--==--==//
  5535. stock ConvertTime(SEGUNDOS)
  5536. {
  5537. new
  5538. MINUTOS,
  5539. HORAS,
  5540. DIAS,
  5541. STRING[300]
  5542. ;
  5543.  
  5544. if(SEGUNDOS > 59)
  5545. {
  5546. MINUTOS = SEGUNDOS / 60;
  5547. SEGUNDOS = SEGUNDOS - MINUTOS * 60;
  5548. }
  5549. if(MINUTOS > 59)
  5550. {
  5551. HORAS = MINUTOS / 60;
  5552. MINUTOS = MINUTOS - HORAS * 60;
  5553. }
  5554. if(HORAS > 23)
  5555. {
  5556. DIAS = HORAS / 24;
  5557. HORAS = HORAS - DIAS * 24;
  5558. }
  5559.  
  5560. format(STRING, sizeof(STRING), "%02d Dias e %02d Horas e %02d Minutos e %02d Segundos", DIAS, HORAS, MINUTOS, SEGUNDOS);
  5561. if(DIAS == 0) format(STRING, sizeof(STRING),"%02d Horas e %02d Minutos e %02d Segundos", HORAS, MINUTOS, SEGUNDOS);
  5562. if(DIAS == 0 && HORAS == 0) format(STRING, sizeof(STRING),"%02d Minutos e %02d Segundos", MINUTOS, SEGUNDOS);
  5563. if(DIAS == 0 && HORAS == 0 && MINUTOS == 0) format(STRING, sizeof(STRING),"%02d Segundos", SEGUNDOS);
  5564. return STRING;
  5565. }
  5566. //==--==--====--==--====--==--==|STOCK_KICK_DELAY|==--==--====--==--====--==--==//
  5567. stock tkKick(playerid)
  5568. {
  5569. new
  5570. Query_User[200]
  5571. ;
  5572.  
  5573. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `KICKS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pKICKS] += 1, DB_Escape(GetName(playerid)));
  5574. db_query(User_Database, Query_User);
  5575.  
  5576. if(USER[playerid][pKICKS] == 5)
  5577. {
  5578. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `KICKS` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pKICKS] = 0, DB_Escape(GetName(playerid)));
  5579. db_query(User_Database, Query_User);
  5580.  
  5581. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pPRESO] = 2, DB_Escape(GetName(playerid)));
  5582. db_query(User_Database, Query_User);
  5583.  
  5584. format(Query_User, sizeof(Query_User), "UPDATE `"USER_TABLE"` SET `TEMPO PRESO` = '%i' WHERE `NOME` = '%s' COLLATE NOCASE", USER[playerid][pTEMPOPRESO] += 60, DB_Escape(GetName(playerid)));
  5585. db_query(User_Database, Query_User);
  5586.  
  5587. format(Query_User, sizeof(Query_User), "Jogador '%s [ID: %i]' foi kickado 5 vezes e foi punido na cadeia por 60 segundos.", GetName(playerid), playerid);
  5588. SendClientMessageToAll(COR_CHAT, Query_User);
  5589. }
  5590.  
  5591. SetTimerEx("KickPlayer", 500, false, "i", playerid);
  5592.  
  5593. #if LOG_ENABLED == true
  5594. SaveLog("KICKS.txt", Query_User);
  5595. #endif
  5596.  
  5597. return 1;
  5598. }
  5599. //==--==--====--==--====--==--==|STOCK_SAVE_STRING_TO_DB|==--==--====--==--====--==--==//
  5600. stock DB_Escape ( text[ ] )
  5601. {
  5602. new
  5603. ret[ 80 * 2 ],
  5604. ch,
  5605. i,
  5606. j;
  5607. while ( ( ch = text[ i++ ] ) && j < sizeof ( ret ) )
  5608. {
  5609. if ( ch == '\'' ) //'
  5610. {
  5611. if ( j < sizeof ( ret ) - 2 )
  5612. {
  5613. ret[ j++ ] = '\'';
  5614. ret[ j++ ] = '\'';
  5615. }
  5616. }
  5617. else if ( j < sizeof ( ret ) )
  5618. {
  5619. ret[ j++ ] = ch;
  5620. }
  5621. else
  5622. {
  5623. j++;
  5624. }
  5625. }
  5626. ret[ sizeof ( ret ) - 1 ] = '\0';
  5627. return ret;
  5628. }
  5629. //==--==--====--==--====--==--==|STOCK_GET_NAME|==--==--====--==--====--==--==//
  5630. stock GetName(playerid)
  5631. {
  5632. new
  5633. GetName_[MAX_PLAYER_NAME]
  5634. ;
  5635.  
  5636. GetPlayerName(playerid, GetName_, sizeof(GetName_));
  5637.  
  5638. return GetName_;
  5639. }
  5640. //==--==--====--==--====--==--==|STOCK_GET_IP|==--==--====--==--====--==--==//
  5641. stock GetIP(playerid)
  5642. {
  5643. new GetIP_[30];
  5644.  
  5645. GetPlayerIp(playerid, GetIP_, sizeof(GetIP_));
  5646.  
  5647. return GetIP_;
  5648. }
  5649. //==--==--====--==--====--==--==|STOCK_CHECK_VALID_CHAR|==--==--====--==--====--==--==//
  5650. stock IsValidChar(const numeric[])
  5651. {
  5652. for(new i = 0; numeric[i] != EOS; ++i)
  5653. {
  5654. switch(numeric[i])
  5655. {
  5656. case '0'..'9', 'A'..'Z', 'a'..'z': continue;
  5657. default: return 0;
  5658. }
  5659. }
  5660.  
  5661. return 1;
  5662. }
  5663. //==--==--====--==--====--==--==|STOCK_CHECK_VALID_NUMERIC|==--==--====--==--====--==--==//
  5664. stock IsValidNumeric(const numeric[])
  5665. {
  5666. for(new i = 0; numeric[i] != EOS; ++i)
  5667. {
  5668. switch(numeric[i])
  5669. {
  5670. case '0'..'9': continue;
  5671. default: return 0;
  5672. }
  5673. }
  5674.  
  5675. return 1;
  5676. }
  5677. //==--==--====--==--====--==--==|STOCK_CHECK_VALID_LETTER|==--==--====--==--====--==--==//
  5678. stock IsValidLetter(const numeric[])
  5679. {
  5680. for(new i = 0; numeric[i] != EOS; ++i)
  5681. {
  5682. switch(numeric[i])
  5683. {
  5684. case 'A'..'Z', 'a'..'z': continue;
  5685. default: return 0;
  5686. }
  5687. }
  5688.  
  5689. return 1;
  5690. }
  5691. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|STOCK_START_SPECTATE|==--==--====--==--====--==--==//
  5692. stock StartSpectate(playerid, specplayerid)
  5693. {
  5694. foreach(new x : Player)
  5695. {
  5696. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && USER[x][pSPECID] == playerid)
  5697. {
  5698. AdvanceSpectate(x);
  5699. }
  5700. }
  5701.  
  5702. SetPlayerInterior(playerid, GetPlayerInterior(specplayerid));
  5703.  
  5704. TogglePlayerSpectating(playerid, 1);
  5705.  
  5706. if(IsPlayerInAnyVehicle(specplayerid))
  5707. {
  5708. PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
  5709. USER[playerid][pSPECID] = specplayerid;
  5710. USER[playerid][pSPECTYPE] = ADMIN_SPEC_TYPE_VEHICLE;
  5711. }
  5712. else
  5713. {
  5714. PlayerSpectatePlayer(playerid, specplayerid);
  5715. USER[playerid][pSPECID] = specplayerid;
  5716. USER[playerid][pSPECTYPE] = ADMIN_SPEC_TYPE_PLAYER;
  5717. }
  5718. return 1;
  5719. }
  5720. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|STOCK_ADVANCE_SPACTATE|==--==--====--==--====--==--==//
  5721. stock AdvanceSpectate(playerid)
  5722. {
  5723. if(Iter_Count(Player) == 2) { StopSpectate(playerid); return 1; }
  5724.  
  5725. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && USER[playerid][pSPECID] != INVALID_PLAYER_ID)
  5726. {
  5727. for(new x = USER[playerid][pSPECID] + 1; x <= MAX_PLAYERS; x++)
  5728. {
  5729. if(x == MAX_PLAYERS) x = 0;
  5730. if(IsPlayerConnected(x) && x != playerid)
  5731. {
  5732. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && USER[x][pSPECID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
  5733. {
  5734. continue;
  5735. }
  5736. else
  5737. {
  5738. StartSpectate(playerid, x);
  5739. break;
  5740. }
  5741. }
  5742. }
  5743. }
  5744. return 1;
  5745. }
  5746. //==--==--====--==--====--==--==|STOCK_REVERSE_SPECTATE|==--==--====--==--====--==--==//
  5747. stock ReverseSpectate(playerid)
  5748. {
  5749. if(Iter_Count(Player) == 2) { StopSpectate(playerid); return 1; }
  5750. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && USER[playerid][pSPECID] != INVALID_PLAYER_ID)
  5751. {
  5752. for(new x = USER[playerid][pSPECID]-1; x >= 0; x--)
  5753. {
  5754. if(x == 0) x = MAX_PLAYERS;
  5755. if(IsPlayerConnected(x) && x != playerid)
  5756. {
  5757. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && USER[x][pSPECID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
  5758. {
  5759. continue;
  5760. }
  5761. else
  5762. {
  5763. StartSpectate(playerid, x);
  5764. break;
  5765. }
  5766. }
  5767. }
  5768. }
  5769. return 1;
  5770. }
  5771. //==--==--====--==--====--==--==|STOCK_STOP_SPECTATE|==--==--====--==--====--==--==//
  5772. stock StopSpectate(playerid)
  5773. {
  5774. TogglePlayerSpectating(playerid, 0);
  5775.  
  5776. USER[playerid][pSPECID] = INVALID_PLAYER_ID;
  5777.  
  5778. USER[playerid][pSPECTYPE] = ADMIN_SPEC_TYPE_NONE;
  5779.  
  5780. GameTextForPlayer(playerid,"~n~~n~~n~~w~MODO ESPIAR DESATIVADO",1000,3);
  5781.  
  5782. return 1;
  5783. }
  5784. //==--==--====--==--====--==--==|STOCK_SERVER_CONFIG_SECURITY|==--==--====--==--====--==--==//
  5785. stock ServerConfig()
  5786. {
  5787. new
  5788. SAVE_LOGS,
  5789. MAX_IP,
  5790. ANTI_ARM_HEAL,
  5791. ANTI_MONEY,
  5792. ON[3] = "ON",
  5793. OFF[4] = "OFF"
  5794. ;
  5795.  
  5796. #if LOG_ENABLED == true
  5797. SAVE_LOGS = 1;
  5798. #endif
  5799.  
  5800. #if MAX_IPS_ENABLED == true
  5801. MAX_IP = 1;
  5802. #endif
  5803.  
  5804. #if ANTI_ARM_HEAL_ENABLED == true
  5805. ANTI_ARM_HEAL = 1;
  5806. #endif
  5807.  
  5808. #if ANTI_MONEY_ENABLED == true
  5809. ANTI_MONEY = 1;
  5810. #endif
  5811.  
  5812. printf("\n\n ______SERVER_CONFIG______STATS______\n");
  5813. printf(" SAVE LOGS:_______________|%s", SAVE_LOGS ? ON : OFF);
  5814. printf(" MAX IP:__________________|%s", MAX_IP ? ON : OFF);
  5815. printf(" ANTI ARM HEAL:___________|%s", ANTI_ARM_HEAL ? ON : OFF);
  5816. printf(" ANTI MONEY:______________|%s", ANTI_MONEY ? ON : OFF);
  5817. printf("\n ______SERVER_CONFIG______STATS______\n");
  5818. print("__________________________________________________________________\n\n");
  5819.  
  5820. return 1;
  5821. }
  5822. //==--==--====--==--====--==--==|STOCK_LOAD_DESTROY_DATA|==--==--====--==--====--==--==//
  5823. stock EsconderTD_Login(playerid)
  5824. {
  5825. PlayerTextDrawHide(playerid, Background[playerid]);
  5826. PlayerTextDrawHide(playerid, Boas_Vindas[playerid]);
  5827. PlayerTextDrawHide(playerid, Server_Name[playerid]);
  5828. PlayerTextDrawHide(playerid, BTN_REGISTER[playerid]);
  5829. PlayerTextDrawHide(playerid, BTN_LOGIN[playerid]);
  5830. return 1;
  5831. }
  5832. stock DestruirTD_Login(playerid)
  5833. {
  5834. PlayerTextDrawDestroy(playerid, Background[playerid]);
  5835. PlayerTextDrawDestroy(playerid, Boas_Vindas[playerid]);
  5836. PlayerTextDrawDestroy(playerid, Server_Name[playerid]);
  5837. PlayerTextDrawDestroy(playerid, BTN_REGISTER[playerid]);
  5838. PlayerTextDrawDestroy(playerid, BTN_LOGIN[playerid]);
  5839. return 1;
  5840. }
  5841. //==--==--====--==--====--==--==|STOCK_BAN_BANIP_DESBAN|==--==--====--==--====--==--==//
  5842. stock BanirPlayer(xNome[], xIP[], xBanido_Por[], xData[], xMotivo[], xGetTime, xTempo[])
  5843. {
  5844. new
  5845. STRING[500],
  5846. STRCAT[300],
  5847. DBResult:Resultado
  5848. ;
  5849.  
  5850. format(STRING,sizeof(STRING),"SELECT * FROM `"BAN_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", xNome);
  5851. Resultado = db_query(Ban_Database,STRING);
  5852. if(!db_num_rows(Resultado))
  5853. format(STRING, sizeof(STRING), "INSERT INTO `"BAN_TABLE"` (`NOME`, `IP`, `BANIDO POR`, `DATA`, `MOTIVO`, `GETTIME`, `TEMPO`)VALUES('%s', '%s', '%s', '%s', '%s', '%i', '%s')", xNome, xIP, xBanido_Por, xData, xMotivo, xGetTime + gettime(), xTempo);
  5854. db_free_result(db_query(Ban_Database, STRING));
  5855.  
  5856. foreach(new i : Player)
  5857. {
  5858. if(strcmp(GetName(i), xNome, false) == 0 || strcmp(GetIP(i), xIP, false) == 0)
  5859. {
  5860. format(STRING, sizeof(STRING), "NOME: %s\n", xNome);strcat(STRCAT, STRING);
  5861. format(STRING, sizeof(STRING), "IP: %s\n", xIP);strcat(STRCAT, STRING);
  5862. format(STRING, sizeof(STRING), "BANIDO POR: %s\n", xBanido_Por);strcat(STRCAT, STRING);
  5863. format(STRING, sizeof(STRING), "MOTIVO: %s\n", xMotivo);strcat(STRCAT, STRING);
  5864. format(STRING, sizeof(STRING), "DATA: %s\n", xData);strcat(STRCAT, STRING);
  5865. format(STRING, sizeof(STRING), "TEMPO: %s\n", ConvertTime(xGetTime));strcat(STRCAT, STRING);
  5866. format(STRING, sizeof(STRING), "TEMPO RESTANTE: %s", ConvertTime(xGetTime));strcat(STRCAT, STRING);
  5867. ShowPlayerDialog(i, DIALOG_BAN, DIALOG_STYLE_MSGBOX, "Painel de Banimento:", STRCAT, "SAIR","");
  5868.  
  5869. strcat((STRCAT[0] = EOS, STRING), STRING);
  5870.  
  5871. SetTimerEx("KickPlayer", 500, false, "i", i);
  5872. }
  5873. }
  5874.  
  5875. return 1;
  5876. }
  5877. stock BanirIpPlayer(xNome[], xIP[], xBanido_Por[], xData[], xMotivo[], xGetTime, xTempo[])
  5878. {
  5879. new
  5880. STRING[500],
  5881. STRCAT[300],
  5882. DBResult:Resultado
  5883. ;
  5884.  
  5885. format(STRING, sizeof(STRING),"SELECT * FROM `"BAN_TABLE"` WHERE `IP` = '%s'", xIP);
  5886. Resultado = db_query(Ban_Database, STRING);
  5887. if(db_num_rows(Resultado))
  5888. format(STRING, sizeof(STRING), "UPDATE `"BAN_TABLE"` SET `DATA` = '%s', `MOTIVO` = '%s', `GETTIME` = '%i', `TEMPO` = '%s' WHERE `IP` = '%s'", xData, xMotivo, xGetTime + gettime(), xTempo, xIP);
  5889. else
  5890. format(STRING, sizeof(STRING), "INSERT INTO `"BAN_TABLE"` (`NOME`, `IP`, `BANIDO POR`, `DATA`, `MOTIVO`, `GETTIME`, `TEMPO`)VALUES('%s', '%s', '%s', '%s', '%s', '%i', '%s')", xNome, xIP, xBanido_Por, xData, xMotivo, xGetTime + gettime(), xTempo);
  5891. db_free_result(db_query(Ban_Database, STRING));
  5892.  
  5893. foreach(new i : Player)
  5894. {
  5895. if(strcmp(GetIP(i), xIP, true) == 0)
  5896. {
  5897. format(STRING, sizeof(STRING), "NOME: %s\n", GetName(i));strcat(STRCAT, STRING);
  5898. format(STRING, sizeof(STRING), "IP: %s\n", xIP);strcat(STRCAT, STRING);
  5899. format(STRING, sizeof(STRING), "BANIDO POR: %s\n", xBanido_Por);strcat(STRCAT, STRING);
  5900. format(STRING, sizeof(STRING), "MOTIVO: %s\n", xMotivo);strcat(STRCAT, STRING);
  5901. format(STRING, sizeof(STRING), "DATA: %s\n", xData);strcat(STRCAT, STRING);
  5902. format(STRING, sizeof(STRING), "TEMPO: %s\n", ConvertTime(xGetTime));strcat(STRCAT, STRING);
  5903. format(STRING, sizeof(STRING), "TEMPO RESTANTE: %s", ConvertTime(xGetTime));strcat(STRCAT, STRING);
  5904. ShowPlayerDialog(i, DIALOG_BAN, DIALOG_STYLE_MSGBOX, "Painel de Banimento:", STRCAT, "SAIR","");
  5905.  
  5906. strcat((STRCAT[0] = EOS, STRING), STRING);
  5907.  
  5908. SetTimerEx("KickPlayer", 500, false, "i", i);
  5909. }
  5910. }
  5911.  
  5912. return 1;
  5913. }
  5914. stock DesbanirPlayer(xConta[])
  5915. {
  5916. new
  5917. STRING[500],
  5918. DBResult:Resultado
  5919. ;
  5920.  
  5921. format(STRING, sizeof(STRING),"SELECT * FROM `"BAN_TABLE"` WHERE `IP` = '%s' OR `NOME` = '%s' COLLATE NOCASE", xConta, xConta);
  5922. Resultado = db_query(Ban_Database, STRING);
  5923. if(db_num_rows(Resultado))
  5924. format(STRING, sizeof(STRING), "DELETE FROM `"BAN_TABLE"` WHERE `IP` = '%s' OR `NOME` = '%s' COLLATE NOCASE", xConta, xConta),
  5925. db_free_result(db_query(Ban_Database, STRING));
  5926.  
  5927. return 1;
  5928. }
  5929. //==--==--====--==--====--==--==|STOCK_ANTI_EASY_DE_AMX|==--==--====--==--====--==--==//
  5930. AMX_()
  5931. {
  5932. new a[][] =
  5933. {
  5934. "Unarmed (Fist)",
  5935. "Brass K"
  5936. };
  5937. #pragma unused a
  5938. }
Advertisement
Add Comment
Please, Sign In to add comment