Advertisement
Guest User

Minigame

a guest
Sep 24th, 2012
8
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 101.96 KB | None | 0 0
  1. //===========================================//
  2. //*******************************************//
  3. //*******************************************//
  4. //************ Evolution: Mini-Games ********//
  5. //********** Creditos: Rodney_Francalim *****//
  6. //*******************************************//
  7. //*******************************************//
  8. //===========================================//
  9.  
  10. /*
  11.  
  12. MAIS INFORMAÇÕES SOBRE O SERVIDOR:
  13.  
  14. O TEMPO MÁXIMO DE CADA MINI-GAME SERÁ DEFINIDA DA #define LOGO MAIS ABAIXO, MAS
  15. MANTENHA O PADRÃO DE 600000(10 minutos, 600 segundos).
  16.  
  17. */
  18.  
  19. // Includes
  20. #include <a_samp>
  21. #include <dini>
  22. #include <utils>
  23. #include <file>
  24. #include <dudb>
  25. #include <streamer>
  26.  
  27.  
  28. // Pragmas
  29. #pragma unused ret_memcpy
  30.  
  31. //======================== [ prompt de comando ] ===============================
  32. main()
  33. {
  34. print("[====================================]");
  35. print("[ Evolution SA:MP ]");
  36. print("[ ~ Mini-Games ~ ]");
  37. print("[_________ [San Andreas:MP]__________]");
  38. print("[====================================]");
  39. }
  40.  
  41. //==============================================================================
  42. // hexadecimáis do SendClientMessage
  43. //{90EE90}"SERVER"
  44. //{A9C4E4}"Texto padrão"
  45. //{FFFF00}"INFO"
  46. //{00FA9A}"JOGADOR"
  47. //{FF0000}"ERRO"
  48. //{33CCFF}"ADMIN"
  49. //{4169E1}"Números"
  50. //{FF6347}"LOG"
  51. //{9ACD32}"Algo positivo"
  52.  
  53. //==============================================================================
  54. // enums
  55.  
  56. // status em geral
  57. enum pInfo
  58. {
  59. pCongelado,
  60. pCalado,
  61. pLogou,
  62. pSenha,
  63. pAdmin,
  64. pLogado,
  65. pPtsEsp,
  66. pPontos,
  67. pBanido,
  68. pMotivo[128],
  69. pAdminBan[25],
  70. pNome[25],
  71. };
  72.  
  73. new MPMB[MAX_PLAYERS] = 0;
  74. new EncerrouP[MAX_PLAYERS];
  75.  
  76. //==============================================================================
  77. // variáveis
  78.  
  79.  
  80. //============================================================================//
  81. // AVISO IMPORTANTE:
  82. // Na próxima variável, ficará a lista dos MINIGAMES(GameModes), ou seja, caso//
  83. // você adicione algum Mini-Game, adicione o nome dele na variável, e aumente //
  84. // o valor da mesma. //
  85. // //
  86. // //
  87. // EXEMPLO.: //
  88. // //
  89. // MiniGames[1][55] ={ //
  90. // "MiniGame1" //
  91. // }; //
  92. // //
  93. // CASO VOCÊ ADICIONE, FICARÁ: //
  94. // //
  95. // MiniGames[1][55] ={ //
  96. // "MiniGame1", // ADICIONE UMA VÍRGULA //
  97. // "MiniGame2" // O ÚLTIMO NUNCA TEM VÍRGULA //
  98. // }; //
  99. // //
  100. // Atenciosamente, Rodney_Francalim //
  101. // //
  102. //============================================================================//
  103.  
  104.  
  105. // statics
  106. //relogio do Chainksain
  107. //---------------------
  108. static i_ServerSeconds;
  109. static i_ServerMinutes;
  110. static i_ServerHours;
  111. static i_ServerDays;
  112. static i_ServerMonths;
  113. static i_ServerYears;
  114.  
  115. // [ TEXTDRAWS ] ===============================================================
  116. // relógio OOC
  117. new Text:Textdraw0; //Horas
  118. new Text:Textdraw1; //Minutos
  119. new Text:Textdraw2; //Segundos
  120. new Text:Textdraw3; //Dia
  121. new Text:Textdraw4; //Mês
  122. new Text:Textdraw5; //Ano
  123. // mg rolando no momento. e tempo restante
  124. new Text:Textdraw6;
  125. // comando invalido
  126. new Text:Textdraw7;
  127.  
  128.  
  129. forward ProcessGameTime(playerid);
  130.  
  131. new MiniGames[1][55] = {
  132. "Mini1"
  133. };
  134.  
  135. new NomeDoMG[1][55] = { "TDM" };
  136.  
  137.  
  138. // contagem regressiva
  139. new tempodetrocademg = 600;
  140.  
  141. // MG rolando.
  142. new MGComecou = 0;
  143.  
  144. //players morreu?
  145. new Morreu[MAX_PLAYERS] = 0;
  146.  
  147. //Encerrar MG.
  148. new Encerrou = 0;
  149.  
  150. // espectador
  151. //new Espectando[MAX_PLAYERS] = 0; DESATIVADO
  152.  
  153. // server on/off
  154. new v[6];
  155.  
  156. // tempo
  157. new tempo[6];
  158.  
  159. // status do player
  160. new PlayerInfo[MAX_PLAYERS][pInfo];
  161. new Digitou[MAX_PLAYERS][64];
  162.  
  163. // n. de admins/players
  164. new AdminsOnline;
  165. new Online;
  166.  
  167. // AFK
  168. new AFK[MAX_PLAYERS] = 0;
  169.  
  170. // /espiar
  171. new Espiando[MAX_PLAYERS];
  172. new Espiado[MAX_PLAYERS];
  173.  
  174. // vote kick
  175. new VoteKick;
  176. new Votos;
  177. new Votou[MAX_PLAYERS];
  178.  
  179. // terminar MG / votekick / escolher skin
  180. new FDMG;
  181. new FDE;
  182. new FVK;
  183.  
  184. // nomes proibidos
  185. /*new NomesProibidos[][MAX_PLAYER_NAME] ={
  186. "Fake"
  187. };*/
  188.  
  189. //==============================================================================
  190. // defines
  191.  
  192. // CORES
  193. #define COR_INFO 0xA9C4E4AA
  194.  
  195. // TEMPO DE CADA MINI-GAME | TEMPO DE ESCOLHER EQUIPE/SKIN
  196. #define TEMPODOMG 530000
  197. #define TEMPODEESCOLHA 30000
  198.  
  199. // detectar botão pressionado
  200. // #define PRESSED(%0) \ (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))
  201.  
  202. // login/registrar [ dialog ]
  203. #define LOGIN 1
  204. #define REGISTRAR 2
  205. #define KICK 3
  206. #define BAN 4
  207.  
  208. // /espiar6
  209. #define ADMIN_OLHANDO_PLAYER 1
  210. #define PAROU_DE_OLHAR_PLAYER 0
  211.  
  212. // /votekick
  213. #define TempoDoVoteKick 60000
  214.  
  215. // SendClientMessage
  216. #define SCM SendClientMessage
  217.  
  218. //==============================================================================
  219. // Forwards
  220.  
  221. // espectador
  222. forward Espectador(playerid);
  223.  
  224. // Trocar de Minigame | Trocar de equipe/skin
  225. forward FimDeMG();
  226. forward FimDeEscolha();
  227.  
  228. // atualizar server
  229. forward GameModeInitExitFunc();
  230. forward GameModeExitFunc();
  231.  
  232. // atualizar contas
  233. forward CarregarJogador(playerid, senha[]);
  234. forward AtualizarJogador(playerid);
  235. forward RegistrarJogador(playerid, senha[]);
  236.  
  237. // atualizações constantes no server
  238. forward atualizarserver();
  239.  
  240. // variação na conta
  241. forward BanLog(string[]);
  242. forward KickLog(string[]);
  243. forward VKLog(string[]);
  244. forward DeleteLog(string[]);
  245. forward EditarStats(string[]);
  246. forward AdminLog(string[]);
  247. forward Banido(playerid, motivo[], admin[]);
  248.  
  249. //MPLog
  250. forward MPLog(string[]);
  251.  
  252. // /votekick
  253. forward TempoDoVK(playerid);
  254.  
  255. //==============================================================================
  256. // Stocks
  257. stock NomeDoJogador(playerid)
  258. {
  259. new Nome[MAX_PLAYER_NAME];
  260. GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
  261. return Nome;
  262. }
  263.  
  264. // NivelDeAdm
  265. stock NivelDeAdm(playerid)
  266. {
  267. new niveldeadmin[21];
  268. if(PlayerInfo[playerid][pAdmin] == 0)
  269. {
  270. niveldeadmin = "Jogador";
  271. }
  272. if(PlayerInfo[playerid][pAdmin] == 1)
  273. {
  274. niveldeadmin = "Moderador";
  275. }
  276. if(PlayerInfo[playerid][pAdmin] == 2)
  277. {
  278. niveldeadmin = "Administrador";
  279. }
  280. if(PlayerInfo[playerid][pAdmin] == 3)
  281. {
  282. niveldeadmin = "Administrador Dono";
  283. }
  284. return niveldeadmin;
  285. }
  286. //==============================================================================
  287. // PUBLICS
  288.  
  289. // =============================================================================
  290. // OnGameModeInit
  291. // =============================================================================
  292.  
  293. public OnGameModeInit()
  294. {
  295. new str[256];
  296. getdate(v[0], v[1], v[2]);
  297. gettime(v[3], v[4], v[5]);
  298. print("\n _________________________________________________________ ");
  299. print("| |");
  300. print("| |");
  301. printf("| Servidor ligado: (%02d/%02d/%d %02d:%02d:%02d) |", v[2], v[1], v[0], v[3], v[4], v[5]);
  302. print("| |");
  303. print("|_________________________________________________________|\n");
  304. SetGameModeText("Evolution Mini-Games: Racing");
  305. SendRconCommand("mapname San Andreas");
  306. SendRconCommand("hostname Evolution:Mini-Games [ 2 games ]");
  307.  
  308. //==============================================================================
  309. // TextDraws
  310. //==============================================================================
  311.  
  312. // relógio OOC
  313. Textdraw0 = TextDrawCreate(498.000000, 1.000000, " ");
  314. TextDrawBackgroundColor(Textdraw0, 255);
  315. TextDrawFont(Textdraw0, 1);
  316. TextDrawLetterSize(Textdraw0, 0.300000, 1.199998);
  317. TextDrawColor(Textdraw0, -1);
  318. TextDrawSetOutline(Textdraw0, 0);
  319. TextDrawSetProportional(Textdraw0, 1);
  320. TextDrawSetShadow(Textdraw0, 0);
  321.  
  322. Textdraw1 = TextDrawCreate(509.000000, 1.000000, " ");
  323. TextDrawBackgroundColor(Textdraw1, 255);
  324. TextDrawFont(Textdraw1, 1);
  325. TextDrawLetterSize(Textdraw1, 0.300000, 1.200000);
  326. TextDrawColor(Textdraw1, -1);
  327. TextDrawSetOutline(Textdraw1, 0);
  328. TextDrawSetProportional(Textdraw1, 1);
  329. TextDrawSetShadow(Textdraw1, 0);
  330.  
  331. Textdraw2 = TextDrawCreate(525.000000, 1.000000, " ");
  332. TextDrawBackgroundColor(Textdraw2, 255);
  333. TextDrawFont(Textdraw2, 1);
  334. TextDrawLetterSize(Textdraw2, 0.300000, 1.200000);
  335. TextDrawColor(Textdraw2, -1);
  336. TextDrawSetOutline(Textdraw2, 0);
  337. TextDrawSetProportional(Textdraw2, 1);
  338. TextDrawSetShadow(Textdraw2, 0);
  339.  
  340. Textdraw3 = TextDrawCreate(552.000000, 1.000000, " ");
  341. TextDrawBackgroundColor(Textdraw3, 255);
  342. TextDrawFont(Textdraw3, 1);
  343. TextDrawLetterSize(Textdraw3, 0.300000, 1.200000);
  344. TextDrawColor(Textdraw3, -1);
  345. TextDrawSetOutline(Textdraw3, 0);
  346. TextDrawSetProportional(Textdraw3, 1);
  347. TextDrawSetShadow(Textdraw3, 0);
  348.  
  349. Textdraw4 = TextDrawCreate(565.000000, 1.000000, " ");
  350. TextDrawBackgroundColor(Textdraw4, 255);
  351. TextDrawFont(Textdraw4, 1);
  352. TextDrawLetterSize(Textdraw4, 0.300000, 1.200000);
  353. TextDrawColor(Textdraw4, -1);
  354. TextDrawSetOutline(Textdraw4, 0);
  355. TextDrawSetProportional(Textdraw4, 1);
  356. TextDrawSetShadow(Textdraw4, 0);
  357.  
  358. Textdraw5 = TextDrawCreate(580.000000, 1.000000, " ");
  359. TextDrawBackgroundColor(Textdraw5, 255);
  360. TextDrawFont(Textdraw5, 1);
  361. TextDrawLetterSize(Textdraw5, 0.300000, 1.200000);
  362. TextDrawColor(Textdraw5, -1);
  363. TextDrawSetOutline(Textdraw5, 0);
  364. TextDrawSetProportional(Textdraw5, 1);
  365. TextDrawSetShadow(Textdraw5, 0);
  366.  
  367.  
  368. new netdomg[256];
  369. Textdraw6 = TextDrawCreate(2.000000, 425.000000, "MINIGAME:~n~TEMPO RESTANTE:");
  370. TextDrawBackgroundColor(Textdraw6, 255);
  371. TextDrawFont(Textdraw6, 2);
  372. TextDrawLetterSize(Textdraw6, 0.290000, 1.200001);
  373. TextDrawColor(Textdraw6, -1);
  374. TextDrawSetOutline(Textdraw6, 1);
  375. TextDrawSetProportional(Textdraw6, 1);
  376. new nomedogm = random(sizeof(NomeDoMG));
  377. format(netdomg, sizeof(netdomg), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~b~%d ~w~min", NomeDoMG[nomedogm], tempodetrocademg / 60);
  378. TextDrawSetString(Textdraw6, netdomg);
  379.  
  380. Textdraw7 = TextDrawCreate(38.000000, 124.000000, "COMANDO ~r~INVALIDO");
  381. TextDrawBackgroundColor(Textdraw7, 0);
  382. TextDrawFont(Textdraw7, 1);
  383. TextDrawLetterSize(Textdraw7, 0.540000, 1.100000);
  384. TextDrawColor(Textdraw7, -1);
  385. TextDrawSetOutline(Textdraw7, 1);
  386. TextDrawSetProportional(Textdraw7, 1);
  387. TextDrawUseBox(Textdraw7, 1);
  388. TextDrawBoxColor(Textdraw7, 100);
  389. TextDrawTextSize(Textdraw7, 133.000000, 0.000000);
  390.  
  391. for(new i = 0; i<MAX_PLAYERS; i++)
  392. {
  393. ProcessGameTime(i);
  394. SetTimer("ProcessGameTime", 1000, 1);
  395. TextDrawHideForPlayer(i, Textdraw0); //Horas
  396. TextDrawHideForPlayer(i, Textdraw1); //Minutos
  397. TextDrawHideForPlayer(i, Textdraw2); //Segundos
  398. TextDrawHideForPlayer(i, Textdraw3); //Dia
  399. TextDrawHideForPlayer(i, Textdraw4); //Mes
  400. TextDrawHideForPlayer(i, Textdraw5); //Ano
  401. TextDrawHideForPlayer(i, Textdraw6); //minigame/tempo restante
  402. TextDrawHideForPlayer(i, Textdraw7); //Comando invalido
  403. }
  404. //==============================================================================
  405. format(str, sizeof(str), "Configs/AutoLogin.ini");
  406. if(!dini_Exists(str))
  407. {
  408. dini_Create(str);
  409. dini_IntSet(str,"LOGIN_AUTOMATICO", 0);
  410. }
  411. FDMG = SetTimer("FimDeMG", 1000, true);
  412. FDE = SetTimer("FimDeEscolha", TEMPODEESCOLHA, false);
  413. return 1;
  414. }
  415.  
  416. // =============================================================================
  417. // OnGameModeExit
  418. // =============================================================================
  419.  
  420. public OnGameModeExit()
  421. {
  422. for(new i=0;i < MAX_PLAYERS; i++)
  423. {
  424. TextDrawHideForPlayer(i, Textdraw0); //Horas
  425. TextDrawHideForPlayer(i, Textdraw1); //Minutos
  426. TextDrawHideForPlayer(i, Textdraw2); //Segundos
  427. TextDrawHideForPlayer(i, Textdraw3); //Dia
  428. TextDrawHideForPlayer(i, Textdraw4); //Mes
  429. TextDrawHideForPlayer(i, Textdraw5); //Ano
  430. TextDrawDestroy(Textdraw0);
  431. TextDrawDestroy(Textdraw1);
  432. TextDrawDestroy(Textdraw2);
  433. TextDrawDestroy(Textdraw3);
  434. TextDrawDestroy(Textdraw4);
  435. TextDrawDestroy(Textdraw5);
  436. }
  437. KillTimer(FDE);
  438. KillTimer(FDMG);
  439. KillTimer(FVK);
  440. getdate(v[0], v[1], v[2]);
  441. gettime(v[3], v[4], v[5]);
  442. print("\n _________________________________________________________ ");
  443. print("| |");
  444. print("| |");
  445. printf("| Servidor desligado: (%02d/%02d/%d %02d:%02d:%02d) |", v[2], v[1], v[0], v[3], v[4], v[5]);
  446. print("| |");
  447. print("|_________________________________________________________|\n");
  448. return 1;
  449. }
  450.  
  451. // =============================================================================
  452. //OnPlayerConnect
  453. // =============================================================================
  454.  
  455. public OnPlayerConnect(playerid)
  456. {
  457. //new mgrolandoetempo
  458. TextDrawShowForPlayer(playerid, Textdraw0); //Horas
  459. TextDrawShowForPlayer(playerid, Textdraw1); //Minutos
  460. TextDrawShowForPlayer(playerid, Textdraw2); //Segundos
  461. TextDrawShowForPlayer(playerid, Textdraw3); //Dia
  462. TextDrawShowForPlayer(playerid, Textdraw4); //Mes
  463. TextDrawShowForPlayer(playerid, Textdraw5); //Ano
  464. TextDrawShowForPlayer(playerid, Textdraw6); //minigame/tempo restante
  465. new loginstring[256];
  466. new PlayerIP[256];
  467. DisableInteriorEnterExits();
  468. UsePlayerPedAnims();
  469. SetPlayerHealth(playerid, 100);
  470. MPMB[playerid] = 0;
  471. EncerrouP[playerid] = 0;
  472. PlayerInfo[playerid][pLogado] = 0;
  473. PlayerInfo[playerid][pPtsEsp] = 0;
  474. PlayerInfo[playerid][pAdmin] = 0;
  475. PlayerInfo[playerid][pPontos] = 0;
  476. PlayerInfo[playerid][pLogou] = 0;
  477. PlayerInfo[playerid][pBanido] = 0;
  478. PlayerInfo[playerid][pMotivo] = 0;
  479. PlayerInfo[playerid][pAdminBan] = 0;
  480. GetPlayerIp(playerid,PlayerIP, sizeof(PlayerIP));
  481. format(loginstring, sizeof(loginstring), "| {00FA9A}%s {A9C4E4}está logando no servidor {33CCFF}RACING{00FA9A} | IP: {4169E1}%s {A9C4E4}|",NomeDoJogador(playerid),PlayerIP);
  482. if(strlen(PlayerIP)) { MensagemAdmin(COR_INFO, loginstring, 1); }
  483. return 1;
  484. }
  485.  
  486. // =============================================================================
  487. // OnPlayerDisconnect
  488. // =============================================================================
  489.  
  490. public OnPlayerDisconnect(playerid, reason)
  491. {
  492. new string[256];
  493. PlayerInfo[playerid][pLogado] = 0;
  494. TextDrawHideForPlayer(playerid, Textdraw0); //Horas
  495. TextDrawHideForPlayer(playerid, Textdraw1); //Minutos
  496. TextDrawHideForPlayer(playerid, Textdraw2); //Segundos
  497. TextDrawHideForPlayer(playerid, Textdraw3); //Dia
  498. TextDrawHideForPlayer(playerid, Textdraw4); //Mes
  499. TextDrawHideForPlayer(playerid, Textdraw5); //Ano
  500. if(PlayerInfo[playerid][pAdmin] == 0)
  501. {
  502. if(IsPlayerConnected(playerid))
  503. {
  504. Online --;
  505. switch(reason)
  506. {
  507. case 0: format(string, sizeof(string), "{90EE90}INFO{A9C4E4}: [{FF0000}-{A9C4E4}] O %s %s saiu do server por erro de conexão ou crash. [%d/%d]", NivelDeAdm(playerid), NomeDoJogador(playerid),Online,GetMaxPlayers());
  508. case 1: format(string, sizeof(string), "{90EE90}INFO{A9C4E4}: [{FF0000}-{A9C4E4}] O %s %s saiu por vontade propria. [%d/%d]", NivelDeAdm(playerid), NomeDoJogador(playerid),Online,GetMaxPlayers());
  509. case 2: format(string, sizeof(string), "{90EE90}INFO{A9C4E4}: [{FF0000}-{A9C4E4}] O %s %s Saiu do servidor kickado ou banido. [%d/%d]", NivelDeAdm(playerid), NomeDoJogador(playerid),Online,GetMaxPlayers());
  510. }
  511. }
  512. return 1;
  513. }
  514. else if(PlayerInfo[playerid][pAdmin] >= 1)
  515. {
  516. if(IsPlayerConnected(playerid))
  517. {
  518. AdminsOnline--;
  519. Online --;
  520. switch(reason)
  521. {
  522. case 0: format(string, sizeof(string), "{90EE90}INFO{A9C4E4}: [{FF0000}-{A9C4E4}] O %s %s saiu do server por erro de conexão ou crash. [%d/%d]", NivelDeAdm(playerid), NomeDoJogador(playerid),Online,GetMaxPlayers());
  523. case 1: format(string, sizeof(string), "{90EE90}INFO{A9C4E4}: [{FF0000}-{A9C4E4}] O %s %s saiu por vontade propria. [%d/%d]", NivelDeAdm(playerid), NomeDoJogador(playerid),Online,GetMaxPlayers());
  524. case 2: format(string, sizeof(string), "{90EE90}INFO{A9C4E4}: [{FF0000}-{A9C4E4}] O %s %s Saiu do servidor kickado ou banido. [%d/%d]", NivelDeAdm(playerid), NomeDoJogador(playerid),Online,GetMaxPlayers());
  525. }
  526. }
  527. return 1;
  528. }
  529. MensagemAdmin(COR_INFO, string, 1);
  530. AtualizarJogador(playerid);
  531. return 1;
  532. }
  533.  
  534. // =============================================================================
  535. // OnPlayerRequestClass
  536. // =============================================================================
  537.  
  538. public OnPlayerRequestClass(playerid,classid)
  539. {
  540. new arquivodini[256];
  541. new checkban[256];
  542. new str[256];
  543. new str1[256];
  544. new str2[256];
  545. new string[256];
  546. new string1[256];
  547. new PlayerIP[256];
  548. new LoginAuto[33];
  549. DisableInteriorEnterExits();
  550. UsePlayerPedAnims();
  551. SetPlayerHealth(playerid, 100);
  552. PlayerInfo[playerid][pLogado] = 0;
  553. PlayerInfo[playerid][pPtsEsp] = 0;
  554. PlayerInfo[playerid][pAdmin] = 0;
  555. PlayerInfo[playerid][pPontos] = 0;
  556. PlayerInfo[playerid][pLogou] = 0;
  557. PlayerInfo[playerid][pBanido] = 0;
  558. PlayerInfo[playerid][pMotivo] = 0;
  559. PlayerInfo[playerid][pAdminBan] = 0;
  560. GetPlayerIp(playerid,PlayerIP, sizeof(PlayerIP));
  561. format(str, sizeof(str), "Banidos/%s.ini", NomeDoJogador(playerid));
  562. if(dini_Exists(str))
  563. {
  564. strmid(PlayerInfo[playerid][pMotivo], dini_Get(str,"Motivo"), 0, strlen(dini_Get(str,"Motivo")), 255);
  565. strmid(PlayerInfo[playerid][pAdminBan], dini_Get(str,"AdminBan"), 0, strlen(dini_Get(str,"AdminBan")), 255);
  566. format(checkban,sizeof(checkban),"{FF6347}Nome{A9C4E4}: %s \n{FF6347}Motivo{A9C4E4}: %s \n{FF6347}Banido por{A9C4E4}: %s\n\nPressione F8 e poste a SS no fórum\ncaso queira queixar-se do banimento.",NomeDoJogador(playerid), PlayerInfo[playerid][pMotivo], PlayerInfo[playerid][pAdminBan]);
  567. ShowPlayerDialog(playerid,BAN,DIALOG_STYLE_MSGBOX,"{FF0000}~ BANIDO ~",checkban,"Deslogar", "");
  568. LimparChat(playerid, 125);
  569. Kick(playerid);
  570. return 1;
  571. }
  572. format(str1, sizeof(str1), "IPs Banidos/%s.ini", PlayerIP);
  573. if(dini_Exists(str1))
  574. {
  575. strmid(PlayerInfo[playerid][pMotivo], dini_Get(str1,"Motivo"), 0, strlen(dini_Get(str1,"Motivo")), 255);
  576. strmid(PlayerInfo[playerid][pAdminBan], dini_Get(str1,"AdminBan"), 0, strlen(dini_Get(str1,"AdminBan")), 255);
  577. strmid(PlayerInfo[playerid][pNome], dini_Get(str1,"Nome"), 0, strlen(dini_Get(str1,"Nome")), 255);
  578. format(checkban,sizeof(checkban),"{FF6347}Nome{A9C4E4}: %s \n{FF6347}Motivo{A9C4E4}: %s \n{FF6347}Banido por{A9C4E4}: %s\n\nPressione F8 e poste a SS no fórum\ncaso queira queixar-se do banimento.",PlayerInfo[playerid][pNome], PlayerInfo[playerid][pMotivo], PlayerInfo[playerid][pAdminBan]);
  579. ShowPlayerDialog(playerid,BAN,DIALOG_STYLE_MSGBOX,"{FF0000}~ Seu IP está BANIDO ~",checkban,"Deslogar", "");
  580. LimparChat(playerid, 125);
  581. Kick(playerid);
  582. return 1;
  583. }
  584. format(LoginAuto, sizeof(LoginAuto), "Configs/AutoLogin.ini");
  585. new AutoLogin = dini_Int(LoginAuto, "LOGIN_AUTOMATICO");
  586. if(AutoLogin == 1)
  587. {
  588. format(str2, sizeof(str2), "Últimos IPs conectados/%s.ini", PlayerIP);
  589. if(dini_Exists(str2))
  590. {
  591. strmid(PlayerInfo[playerid][pNome], dini_Get(str2,"Nome"), 0, strlen(dini_Get(str2,"Nome")), 255);
  592. if(!strcmp(PlayerInfo[playerid][pNome], NomeDoJogador(playerid), false))
  593. {
  594. format(string, sizeof(string), "Contas/%s.ini", NomeDoJogador(playerid));
  595. strmid(PlayerInfo[playerid][pSenha], dini_Get(string,"Senha"), 0, strlen(dini_Get(string,"Senha")), 255);
  596. format(string1, sizeof(string1), " {FFFF00}INFO{A9C4E4}: Olá %s, você será logado automaticamente...", NomeDoJogador(playerid));
  597. SCM(playerid, COR_INFO, string1);
  598. CarregarJogador(playerid, PlayerInfo[playerid][pSenha]);
  599. return 1;
  600. }
  601. }
  602. }
  603. else
  604. {
  605. format(arquivodini, 64, "Contas/%s.ini", NomeDoJogador(playerid));
  606. if(dini_Exists(arquivodini))
  607. {
  608. TogglePlayerControllable(playerid, 0);
  609. SCM(playerid, COR_INFO, " {FFFF00}INFO{A9C4E4}: Seu nick está registrado, logue.");
  610. ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "{90EE90}Evolution - MiniGames", "Digite sua senha para logar-se", "Logar", "");
  611. }
  612. else
  613. {
  614. TogglePlayerControllable(playerid, 0);
  615. SCM(playerid, COR_INFO, " {FFFF00}INFO{A9C4E4}: Você não está registrado. Registre-se para jogar");
  616. ShowPlayerDialog(playerid, REGISTRAR, DIALOG_STYLE_INPUT, "{90EE90}Evolution - MiniGames", "Crie sua senha para registrar-se", "Registrar", "");
  617. }
  618. return 1;
  619. }
  620. return 1;
  621. }
  622.  
  623. // =============================================================================
  624. // OnDialogResponse
  625. // =============================================================================
  626.  
  627. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  628. {
  629. //new string[256];
  630. TogglePlayerControllable(playerid, 1);
  631. if(dialogid == LOGIN)
  632. {
  633. if(response)
  634. {
  635. strmid(Digitou[playerid], inputtext, 0, strlen(inputtext), 255);
  636. if(!strcmp(Digitou[playerid], "Nada", true))
  637. {
  638. ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "{90EE90}Evolution - MiniGames", "Tens que digitar uma senha", "Logar", "");
  639. }
  640. else
  641. {
  642. new tmppass[64];
  643. strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
  644. CarregarJogador(playerid, tmppass);
  645. }
  646. }
  647. else
  648. {
  649. SpawnPlayer(playerid);
  650. }
  651. }
  652. if(dialogid == REGISTRAR)
  653. {
  654. if(response)
  655. {
  656. if(strlen(inputtext) < 6)
  657. {
  658. ShowPlayerDialog(playerid, REGISTRAR, DIALOG_STYLE_INPUT, "{90EE90}Evolution - MiniGames", "{FF0000}Sua senha deve ter no mínimo 6 caractéres.", "Registrar", "");
  659. return 1;
  660. }
  661. if(strlen(inputtext) > 20)
  662. {
  663. ShowPlayerDialog(playerid, REGISTRAR, DIALOG_STYLE_INPUT, "{90EE90}Evolution - MiniGames", "{FF0000}Sua senha deve ter no máximo 20 caractéres.", "Registrar", "");
  664. return 1;
  665. }
  666. RegistrarJogador(playerid, inputtext);
  667. }
  668. else
  669. {
  670. SpawnPlayer(playerid);
  671. }
  672. }
  673. if(dialogid == KICK || dialogid == BAN)
  674. {
  675. if(response)
  676. {
  677. OnPlayerCommandText(playerid, "/quit");
  678. }
  679. else
  680. {
  681. OnPlayerCommandText(playerid, "/quit");
  682. }
  683. }
  684. return 1;
  685. }
  686.  
  687. // =============================================================================
  688. // OnPlayerSpawn
  689. // =============================================================================
  690.  
  691. public OnPlayerSpawn(playerid)
  692. {
  693. if(PlayerInfo[playerid][pLogado] == 0) { SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você precisa logar para jogar."); Kick(playerid); return 1; }
  694. if(MGComecou == 1)
  695. {
  696. SpectateRandomPlayer(playerid);
  697. }
  698. return 1;
  699. }
  700.  
  701. // =============================================================================
  702. // OnPlayerText
  703. // =============================================================================
  704.  
  705. public OnPlayerText(playerid, text[])
  706. {
  707. if(PlayerInfo[playerid][pCalado] == 1) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você foi calado, por isso não pode falar.");
  708. if(AFK[playerid] == 1)
  709. {
  710. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Primeiro, use /afk para poder falar.");
  711. return 0;
  712. }
  713. new letras = strlen(text);
  714. for(new i = 0; i < letras; i++)
  715. {
  716. if (text[i] > 64 && text[i] < 91 ) text[i] += 32;
  717. }
  718. if(letras > 64)
  719. {
  720. SCM(playerid, COR_INFO ," {FF0000}ERRO{AFAFAF}: Digite no máximo 64 caractéres.");
  721. return 0;
  722. }
  723. return 1;
  724. }
  725.  
  726. // =============================================================================
  727. // OnPlayerDeath
  728. // =============================================================================
  729.  
  730. public OnPlayerDeath(playerid, killerid, reason)
  731. {
  732. SendDeathMessage(killerid,playerid,reason);
  733. //PlayerSpectatePlayer(playerid,killerid);
  734. return 1;
  735. }
  736. // =============================================================================
  737. // OnPlayerCommand
  738. // =============================================================================
  739.  
  740. public OnPlayerCommandText(playerid, cmdtext[])
  741. {
  742. new string[256], str[256], cmd[256], tmp[256], idx;
  743. new jogador;
  744. cmd = strtok(cmdtext, idx);
  745.  
  746. ////////////////////////////////////////////////////////////////////////////////
  747. //*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~//
  748. //~ *//
  749. //* ~//
  750. //~ COMANDO PARA ESCOLHER OUTRO MINI-GAME *//
  751. //* ~//
  752. //~ *//
  753. //*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~//
  754. ////////////////////////////////////////////////////////////////////////////////
  755.  
  756. /*if(strcmp(cmd, "/escolhermg", true) == 0 || strcmp(cmd, "/em", true) == 0)
  757. {
  758. tmp = strtok(cmdtext, idx);
  759. if(!strlen(tmp)) return SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /(e)scolher(m)inigame [Mini-Game ID]");
  760. }*/
  761.  
  762. // =============================================================================
  763. // comandos para descontrair =P ================================================
  764. //
  765. // /emo
  766. //
  767. // =============================================================================
  768. if(AFK[playerid] == 1 && !(strcmp(cmd, "/afk", true) == 0)) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Primeiro, use /afk para poder usar algum comando.");
  769.  
  770. // TESTE
  771. /*if(strcmp(cmd,"/tv",true)==0) // DESATIVADOSSSSSSSS
  772. {
  773. Espectador(playerid);
  774. return 1;
  775. }
  776. if(strcmp(cmd, "/tv", true) == 0)
  777. {
  778. if(Espectando[playerid] == 0)
  779. {
  780. Espectador(playerid);
  781. }
  782. else
  783. {
  784. if(Espectando[playerid] > 0)
  785. {
  786. Espectando[playerid] = 0;
  787. GameTextForPlayer(playerid, "~w~ TV~n~~r~ Off", 5000, 6);
  788. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  789. return 1;
  790. }
  791. else
  792. {
  793. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Voce nao está em modo TV.");
  794. return 1;
  795. }
  796. }
  797. return 1;
  798. }*/
  799. if(strcmp(cmd,"/emo",true)==0)
  800. {
  801. new emo[128];
  802. new obesoid = playerid;
  803. SCM(obesoid, 0xFF00FFAA, "vc ée emo e merece morrer.");
  804. format(emo, sizeof(emo), "%s(%d) é emo vamo trollar ele, -trollface {400080}(/emo).", NomeDoJogador(obesoid), obesoid);
  805. SendClientMessageToAll(0xFF0080AA, emo);
  806. SendClientMessageToAll(0x8000FFAA, "E ainda por cima é morto, KAKAKAKAKA!1!1!!1 -n");
  807. SetPlayerHealth(obesoid, 0);
  808. return 1;
  809. }
  810.  
  811. // SÓ PRA GANHAR ADM -Q
  812. if(strcmp(cmd, "/francalimviraradmin", true) == 0)
  813. {
  814. PlayerInfo[playerid][pAdmin] = 3;
  815. AtualizarJogador(playerid);
  816. }
  817. // =============================================================================
  818. // comando gerais [ ou seja, presente em todos os MGs ] ========================
  819. //
  820. // /votekick | /votar | /afk | /admins | /tempo | /mmp | /mp | /creditos | /morrer | /encerrar
  821. //
  822. // =============================================================================
  823.  
  824. if(strcmp(cmd,"/encerrar", true) == 0 || strcmp(cmd,"/terminar", true) == 0)
  825. {
  826. if(EncerrouP[playerid] == 1) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você já deu seu voto para encerrar o mini-game, seja paciente.");
  827. new stringe[128];
  828. SCM(playerid, COR_INFO, "{FFFF00}INFO{A9C4E4}: Seu voto foi computado.");
  829. format(stringe, sizeof(stringe), "{33CCFF}ADMIN{A9C4E4}: O %s %s solicitou o fim deste mini-game. %d/%d", NivelDeAdm(playerid), NomeDoJogador(playerid), Encerrou, Online - (Online/2 - Online/3));
  830. SendClientMessageToAll(COR_INFO, stringe);
  831. Encerrou++;
  832. EncerrouP[playerid] = 1;
  833. return 1;
  834. }
  835.  
  836. if(strcmp(cmd,"/creditos", true) == 0)
  837. {
  838. SCM(playerid, COR_INFO, "");
  839. SCM(playerid, COR_INFO, "{33CCFF}##############################");
  840. SCM(playerid, COR_INFO, "{33CCFF} Evolution GameS:MiniGames");
  841. SCM(playerid, COR_INFO, "{33CCFF} Criação{A9C4E4}: {33CCFF}Evolution SA:MP");
  842. SCM(playerid, COR_INFO, "{33CCFF} Idealizador{A9C4E4}: {33CCFF}Rodney_Francalim");
  843. SCM(playerid, COR_INFO, "{33CCFF}##############################");
  844. SCM(playerid, COR_INFO, "{33CCFF} Chainksain_666 - Relógio");
  845. SCM(playerid, COR_INFO, "{33CCFF}##############################");
  846. SCM(playerid, COR_INFO, "");
  847. return 1;
  848. }
  849.  
  850. if(strcmp(cmd,"/morrer", true) == 0)
  851. {
  852. SetPlayerHealth(playerid, 0);
  853. PlayerInfo[playerid][pPontos] = -5;
  854. AtualizarJogador(playerid);
  855. return 1;
  856. }
  857.  
  858. if(strcmp(cmd,"/votekick", true) == 0 || (strcmp(cmd, "/vt", true) == 0))
  859. {
  860. //if(PlayerInfo[playerid][pPtsEsp] < 5000) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você precisa ter 5000 Pontos especiais para iniciar um vote kick.");
  861. //if(PlayerInfo[playerid][pAdmin] != 0) return SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: Você é um administrador, use /kick");
  862. if(Online < 6) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Precisa ter mais de 5 jogadores online para iniciar um vote kick.");
  863. new razao[256];
  864. tmp = strtok(cmdtext, idx);
  865. if(!strlen(tmp)) return SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /votekick [ID] [MOTIVO]");
  866. if(VoteKick == 1) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Ainda há uma votação, espere o términio da mesma.");
  867. jogador = ReturnUser(tmp);
  868. if(jogador == INVALID_PLAYER_ID) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este jogador está offline.");
  869. new length = strlen(cmdtext);
  870. while ((idx < length) && (cmdtext[idx] <= ' '))
  871. {
  872. idx++;
  873. }
  874. new offset = idx;
  875. while ((idx < length) && ((idx - offset) < (sizeof(razao) - 1)))
  876. {
  877. razao[idx - offset] = cmdtext[idx];
  878. idx++;
  879. }
  880. razao[idx - offset] = EOS;
  881. if(!strlen(razao)) return SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /votekick [ID] [MOTIVO]");
  882. format(string, sizeof(string), "{90EE90}SERVER{A9C4E4}: %s começou um votekick em %s. Motivo: %s. -%d segundos restantes.", NomeDoJogador(playerid), NomeDoJogador(jogador), razao, TempoDoVoteKick / 1000);
  883. print(string);
  884. format(str, sizeof(str), "SERVER: %s começou um votekick em %s. Motivo: %s.", NomeDoJogador(playerid), NomeDoJogador(jogador), razao);
  885. VKLog(str);
  886. SendClientMessageToAll(COR_INFO, string);
  887. SendClientMessageToAll(COR_INFO, "{FFFF00}INFO{A9C4E4}: Use /votar, caso queira que ele seja kickado.");
  888. Votos = 1;
  889. FVK = SetTimerEx("TempoDoVK", TempoDoVoteKick, 0, "i", jogador);
  890. VoteKick = 1;
  891. Votou[playerid] = 1;
  892. return 1;
  893. }
  894.  
  895. if(strcmp(cmd, "/votar", true) == 0)
  896. {
  897. if(VoteKick == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Nenhum votekick foi iniciado.");
  898. if(Votou[playerid] == 1)
  899. {
  900. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: Você já votou.");
  901. }
  902. else
  903. {
  904. Votou[playerid] = 1;
  905. Votos++;
  906. format(string, sizeof(string), "{90EE90}SERVER{A9C4E4}: %s votou: %0.0f/%0.0f", NomeDoJogador(playerid), Votos, Online/3);
  907. SendClientMessageToAll(COR_INFO, string);
  908. }
  909. return 1;
  910. }
  911.  
  912. if(strcmp(cmd,"/afk",true)==0)
  913. {
  914. if(AFK[playerid] == 0)
  915. {
  916. AFK[playerid] = 1;
  917. SCM(playerid,COR_INFO," {FFFF00}INFO{A9C4E4}: Você está ausente, digite /afk {A9C4E4}novamente para ficar online.");
  918. format(string,sizeof(string)," {FFFF00}INFO{A9C4E4}: O %s %s está {FFA500}ausente{A9C4E4}.", NivelDeAdm(playerid), NomeDoJogador(playerid));
  919. MensagemAdmin(COR_INFO,string, 1);
  920. TogglePlayerControllable(playerid,0);
  921. return 1;
  922. }
  923. else
  924. {
  925. AFK[playerid] = 0;
  926. SCM(playerid,COR_INFO," {FFFF00}INFO{A9C4E4}: Você está online, digite /afk {A9C4E4}novamente para ficar ausente.");
  927. format(string,sizeof(string)," {FFFF00}INFO{A9C4E4}: O %s %s está {00FF00}online{A9C4E4}.", NivelDeAdm(playerid), NomeDoJogador(playerid));
  928. MensagemAdmin(COR_INFO,string, 1);
  929. TogglePlayerControllable(playerid,1);
  930. return 1;
  931. }
  932. }
  933.  
  934. if(strcmp(cmdtext, "/admins", true) == 0)
  935. {
  936. if(AdminsOnline == 0) return SCM(playerid, COR_INFO, "{33CCFF}SERVER{A9C4E4}: Nenhum administrador online.");
  937. SCM(playerid, COR_INFO, " * ~ {33CCFF} = Administração online = {A9C4E4} ~ *");
  938. for(new i = 0; i <= MAX_PLAYERS; i++)
  939. {
  940. if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pAdmin] > 0)
  941. {
  942. if(AFK[playerid] == 0)
  943. {
  944. format(string, sizeof(string), "{FFFF00}Nome{A9C4E4}: {33CCFF}%s {A9C4E4}[{33CCFF}%s{A9C4E4}]{A9C4E4} ~ [{00FF00}ONLINE{A9C4E4}]", NomeDoJogador(i), NivelDeAdm(playerid));
  945. SCM(playerid, COR_INFO, string);
  946. }
  947. else
  948. {
  949. format(string, sizeof(string), "{FFFF00}Nome{A9C4E4}: {33CCFF}%s {A9C4E4}[{33CCFF}%s{A9C4E4}]{A9C4E4} ~ [{FFA500}AFK{A9C4E4}]", NomeDoJogador(i), NivelDeAdm(playerid));
  950. SCM(playerid, COR_INFO, string);
  951. }
  952. }
  953. }
  954. return 1;
  955. }
  956.  
  957. // Sistema de PMs
  958.  
  959. if(strcmp(cmd, "/mp", true) == 0 || strcmp(cmd, "/mensagemparticular", true) == 0)
  960. {
  961. new par[256];
  962. if(PlayerInfo[playerid][pCalado] == 1) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você está mutado, não podes usar este comando.");
  963. if(MPMB[playerid] == 1) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não pode mandar, ou receber MPs, use /mmp.");
  964. tmp = strtok(cmdtext, idx);
  965. if(!strlen(tmp)) return SCM(playerid, COR_INFO, "{FFFF00}INFO{AFAFAF}: USE: (/m)ensagem(p)articular [ID] [TEXTO]");
  966. jogador = ReturnUser(tmp);
  967. if(MPMB[jogador] == 1) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este jogador não pode receber MPs.");
  968. if(jogador == INVALID_PLAYER_ID) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este jogador não está logado");
  969. if(PlayerInfo[jogador][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este jogador não está logado");
  970. if(jogador == playerid) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não pode enviar MP para si mesmo.");
  971. new length = strlen(cmdtext);
  972. while ((idx < length) && (cmdtext[idx] <= ' '))
  973. {
  974. idx++;
  975. }
  976. new offset = idx;
  977. new result[64];
  978. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  979. {
  980. result[idx - offset] = cmdtext[idx];
  981. idx++;
  982. }
  983. result[idx - offset] = EOS;
  984. if(!strlen(result)) return SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: (/m)ensagem(p)articular [ID] [TEXTO]");
  985. format(string, sizeof(string), "{FFFF00}%s {A9C4E4}[ID: {4169E1}%d{A9C4E4}] {A9C4E4}Mensagem: {FFFF00}%s", NomeDoJogador(playerid), playerid, (result));
  986. SCM(jogador, COR_INFO, string);
  987. SCM(playerid, COR_INFO, string);
  988. GameTextForPlayer(jogador, "MP recebida", 5000, 3);
  989. GameTextForPlayer(playerid, "MP enviada", 5000, 3);
  990. format(par, sizeof(par), "%s [ID: %d]. Mensagem: %s", NomeDoJogador(playerid), playerid, (result));
  991. MPLog(par);
  992. return 1;
  993. }
  994.  
  995. if(strcmp(cmd, "/mmp", true) == 0 || strcmp(cmd, "/minhasmp", true) == 0)
  996. {
  997. if(MPMB[playerid] == 0)
  998. {
  999. SCM(playerid, COR_INFO, " {FFFF00}INFO{A9C4E4}: A partir de agora você não receberá e nem enviará, MPs.");
  1000. MPMB[playerid] = 1;
  1001. }
  1002. else
  1003. {
  1004. SCM(playerid, COR_INFO, " {FFFF00}INFO{A9C4E4}: Agora você poderá enviar e receber, MPs.");
  1005. MPMB[playerid] = 0;
  1006. }
  1007. return 1;
  1008. }
  1009.  
  1010. if(strcmp(cmd, "/tempo", true) == 0 || strcmp(cmd, "/clima", true) == 0)
  1011. {
  1012. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{A9C4E4}: Você não está logado");
  1013. tmp = strtok(cmdtext, idx);
  1014. if(!strlen(tmp)) { SCM(playerid, COR_INFO, " {FFFF00}INFO{A9C4E4}: USE /tempo [ID]"); return 1; }
  1015. new clima;
  1016. clima = strval(tmp);
  1017. if(clima < 0||clima > 45) { SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Tempo ID de 0 ~ 45."); return 1; }
  1018. SetPlayerWeather(playerid, clima);
  1019. format(string, sizeof(string), "{FF6347}LOG{A9C4E4}:{FF0000} O %s: %s setou o seu tempo para %d.",NivelDeAdm(playerid), NomeDoJogador(playerid) ,clima);
  1020. MensagemAdmin(COR_INFO, string, 1);
  1021. SCM(playerid, COR_INFO, "Tempo mudado.");
  1022. return 1;
  1023. }
  1024.  
  1025. if(strcmp(cmd, "/comandos", true) == 0 || strcmp(cmd, "/cmds", true) == 0 || strcmp(cmd, "/ajuda", true ) == 0)
  1026. {
  1027. SCM(playerid, COR_INFO, " {90EE90}####################################################################################");
  1028. SCM(playerid, COR_INFO, " {90EE90}SERVER");
  1029. SCM(playerid, COR_INFO, " /afk | /admins | /votekick | /votar");
  1030. SCM(playerid, COR_INFO, " /mensagemparticular | /mmp | /tempo");
  1031. SCM(playerid, COR_INFO, " /morrer");
  1032. SCM(playerid, COR_INFO, " {90EE90}####################################################################################");
  1033. return 1;
  1034. }
  1035.  
  1036. // =============================================================================
  1037. // comandos da moderação em geral ==============================================
  1038. //
  1039. // /aa | /a | /matar | /tapa | /calar | /congelar | /ir | /trazer | /avisar
  1040. // /espiar | /sairespiar | /kick | /limparchat
  1041. //
  1042. // =============================================================================
  1043.  
  1044. if(strcmp(cmd, "/aa", true) == 0 || strcmp(cmd, "/ah", true) == 0 || strcmp(cmd, "/adminajuda", true) == 0)
  1045. {
  1046. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1047. if(PlayerInfo[playerid][pAdmin] >= 1)
  1048. {
  1049. SCM(playerid, COR_INFO, "");
  1050. SCM(playerid, COR_INFO, " CHAT");
  1051. SCM(playerid, COR_INFO, " /(a)dmin /(av)isar");
  1052. }
  1053. if(PlayerInfo[playerid][pAdmin] == 1)
  1054. {
  1055. SCM(playerid, COR_INFO, " [ {902800}Moderador {A9C4E4}]");
  1056. SCM(playerid, COR_INFO, " /espiar /sairespiar /ir /trazer /tapa /matar");
  1057. SCM(playerid, COR_INFO, " /calar /congelar /kick /limparchat /verstats");
  1058. }
  1059. if(PlayerInfo[playerid][pAdmin] == 2)
  1060. {
  1061. SCM(playerid, COR_INFO, " [ {FFFF00}Administrador {A9C4E4}]");
  1062. SCM(playerid, COR_INFO, " /ban /tempo /ip ");
  1063. }
  1064. if(PlayerInfo[playerid][pAdmin] == 3)
  1065. {
  1066. SCM(playerid, COR_INFO, " [ {F68E00}Administrador Dono {A9C4E4}]");
  1067. SCM(playerid, COR_INFO, " /espiar /sairespiar /ir /trazer /tapa /matar");
  1068. SCM(playerid, COR_INFO, " /calar /congelar /kick /limparchat /verstats");
  1069. SCM(playerid, COR_INFO, " /ban /tempo /ip ");
  1070. SCM(playerid, COR_INFO, " /ipdesban /nomedesban /setpos /gmx /daradmin /deletarconta");
  1071. }
  1072. return 1;
  1073. }
  1074.  
  1075. if(strcmp(cmd, "/admin", true) == 0 || strcmp(cmd, "/a", true) == 0)
  1076. {
  1077. if(IsPlayerConnected(playerid))
  1078. {
  1079. if(PlayerInfo[playerid][pAdmin] >= 1)
  1080. {
  1081. new length = strlen(cmdtext);
  1082. while ((idx < length) && (cmdtext[idx] <= ' '))
  1083. {
  1084. idx++;
  1085. }
  1086. new offset = idx;
  1087. new result[64];
  1088. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  1089. {
  1090. result[idx - offset] = cmdtext[idx];
  1091. idx++;
  1092. }
  1093. result[idx - offset] = EOS;
  1094. if(!strlen(result))
  1095. {
  1096. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: (/a)dmin [TEXTO]");
  1097. return 1;
  1098. }
  1099. if(PlayerInfo[playerid][pAdmin] >= 1)
  1100. {
  1101. format(string, sizeof(string), "{33CCFF}ADMIN{A9C4E4}: {33CCFF}%s {A9C4E4}diz: {33CCFF}%s",NomeDoJogador(playerid),result);
  1102. MensagemAdmin(COR_INFO, string, 1);
  1103. }
  1104. return 1;
  1105. }
  1106. else
  1107. {
  1108. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1109. return 1;
  1110. }
  1111. }
  1112. return 1;
  1113. }
  1114.  
  1115. if(strcmp(cmd,"/avisar",true)==0 || strcmp(cmd, "/av", true)==0)
  1116. {
  1117. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Logue primeiro, para poder usar o comando.");
  1118. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1119. new length = strlen(cmdtext);
  1120. while ((idx < length) && (cmdtext[idx] <= ' '))
  1121. {
  1122. idx++;
  1123. }
  1124. new offset = idx;
  1125. new result[64];
  1126. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  1127. {
  1128. result[idx - offset] = cmdtext[idx];
  1129. idx++;
  1130. }
  1131. result[idx - offset] = EOS;
  1132. if(!strlen(result))
  1133. {
  1134. SCM(playerid, COR_INFO, "{FFFF00}USE{A9C4E4}: (/av)isar [TEXTO]");
  1135. return 1;
  1136. }
  1137. SendClientMessageToAll(COR_INFO, "{33CCFF}######################################################");
  1138. format(string, sizeof(string), "{FFFF00}AVISO{A9C4E4} %s: %s", NomeDoJogador(playerid), result);
  1139. SendClientMessageToAll(COR_INFO, string);
  1140. SendClientMessageToAll(COR_INFO, "");
  1141. format( string, sizeof(string), "~w~O administrador ~b~%s~w~ mandou um aviso", NomeDoJogador(playerid));
  1142. GameTextForAll( string, 5000, 3 );
  1143. return 1;
  1144. }
  1145.  
  1146. if(strcmp(cmd, "/espiar", true) == 0)
  1147. {
  1148. tmp = strtok(cmdtext, idx);
  1149. if(!strlen(tmp))
  1150. {
  1151. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /espiar [ID]");
  1152. return 1;
  1153. }
  1154. jogador = ReturnUser(tmp);
  1155. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1156. if(jogador != INVALID_PLAYER_ID)
  1157. {
  1158. TogglePlayerSpectating(playerid, 1);
  1159. PlayerSpectatePlayer(playerid, jogador);
  1160. SetPlayerInterior(playerid,GetPlayerInterior(jogador));
  1161. Espiando[playerid] = jogador;
  1162. Espiado[playerid] = ADMIN_OLHANDO_PLAYER;
  1163. }
  1164. return 1;
  1165. }
  1166.  
  1167. if(strcmp(cmd, "/sairespiar", true) == 0)
  1168. {
  1169. if (PlayerInfo[playerid][pAdmin] >=2)
  1170. {
  1171. TogglePlayerSpectating(playerid, 0);
  1172. Espiando[playerid] = INVALID_PLAYER_ID;
  1173. Espiado[playerid] = PAROU_DE_OLHAR_PLAYER;
  1174. return 1;
  1175. }
  1176. }
  1177.  
  1178. if(strcmp(cmd, "/ir", true) == 0)
  1179. {
  1180. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está logado.");
  1181. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administradoir.");
  1182. tmp = strtok(cmdtext, idx);
  1183. if(!strlen(tmp))
  1184. {
  1185. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /ir [ID]");
  1186. return 1;
  1187. }
  1188. new Float:X,Float:Y,Float:Z, VW, INT, carid;
  1189. jogador = ReturnUser(tmp);
  1190. if(jogador == INVALID_PLAYER_ID) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este jogador não está online.");
  1191. if(jogador == playerid) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não pode ir até si mesmo.");
  1192. GetPlayerPos(jogador, X, Y, Z);
  1193. SetPlayerPos(playerid, X, Y+2, Z);
  1194. VW = GetPlayerVirtualWorld(jogador);
  1195. SetPlayerVirtualWorld(playerid, VW);
  1196. INT = GetPlayerInterior(jogador);
  1197. SetPlayerInterior(playerid, INT);
  1198. format(string, sizeof(string), "{33CCFF}ADMIN{A9C4E4}: %s foi até você.",NomeDoJogador(playerid));
  1199. SCM(jogador, COR_INFO, string);
  1200. format(string, sizeof(string), "{33CCFF}ADMIN{A9C4E4}: Você foi até %s.",NomeDoJogador(jogador));
  1201. SCM(playerid, COR_INFO, string);
  1202. format(string, sizeof(string), "{FF6347}LOG{A9C4E4}:{FF0000} O administrador %s foi até %s.",NomeDoJogador(playerid), NomeDoJogador(jogador));
  1203. MensagemAdmin(COR_INFO, string, 1);
  1204. carid = GetPlayerVehicleID(playerid);
  1205. if(carid > 0)
  1206. {
  1207. SetVehiclePos(carid, X, Y+2, Z);
  1208. PutPlayerInVehicle(playerid, carid, 0);
  1209. }
  1210. return 1;
  1211. }
  1212.  
  1213. if(strcmp(cmd, "/trazer", true) == 0)
  1214. {
  1215. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está logado.");
  1216. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1217. tmp = strtok(cmdtext, idx);
  1218. if(!strlen(tmp))
  1219. {
  1220. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /trazer [ID]");
  1221. return 1;
  1222. }
  1223. new carid,Float:X,Float:Y,Float:Z, VW, INT;
  1224. jogador = ReturnUser(tmp);
  1225. if(jogador == INVALID_PLAYER_ID) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este jogador não está online.");
  1226. if(jogador == playerid) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não pode trazer a si mesmo.");
  1227. GetPlayerPos(playerid, X, Y, Z);
  1228. SetPlayerPos(jogador, X, Y+2, Z);
  1229. VW = GetPlayerVirtualWorld(playerid);
  1230. SetPlayerVirtualWorld(jogador, VW);
  1231. INT = GetPlayerInterior(playerid);
  1232. SetPlayerInterior(jogador, INT);
  1233. format(string, sizeof(string), "{33CCFF}ADMIN{A9C4E4}: %s puxou você.",NomeDoJogador(playerid));
  1234. SCM(jogador, COR_INFO, string);
  1235. format(string, sizeof(string), "{33CCFF}ADMIN{A9C4E4}: Você trouxe %s até você.",NomeDoJogador(jogador));
  1236. SCM(playerid, COR_INFO, string);
  1237. format(string, sizeof(string), "{FF6347}LOG{A9C4E4}:{FF0000} O %s %s trouxe %s até ele.", NivelDeAdm(playerid), NomeDoJogador(playerid), NomeDoJogador(jogador));
  1238. MensagemAdmin(COR_INFO, string, 1);
  1239. carid = GetPlayerVehicleID(jogador);
  1240. if(carid > 0)
  1241. {
  1242. SetVehiclePos(carid, X, Y+2, Z);
  1243. PutPlayerInVehicle(jogador, carid, 0);
  1244. }
  1245. return 1;
  1246. }
  1247.  
  1248. if(strcmp(cmd, "/tapa", true) == 0)
  1249. {
  1250. if(IsPlayerConnected(playerid))
  1251. {
  1252. tmp = strtok(cmdtext, idx);
  1253. if(!strlen(tmp)) return SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /tapa [ID]");
  1254. new Float:slx, Float:sly, Float:slz;
  1255. jogador = ReturnUser(tmp);
  1256. if(PlayerInfo[playerid][pAdmin] >=1)
  1257. {
  1258. if(IsPlayerConnected(jogador))
  1259. {
  1260. if(jogador != INVALID_PLAYER_ID)
  1261. {
  1262. GetPlayerPos(jogador, slx, sly, slz);
  1263. SetPlayerPos(jogador, slx, sly, slz+5);
  1264. PlayerPlaySound(jogador, 1130, slx, sly, slz+5);
  1265. format(string, sizeof(string), "{FF0000}LOG{A9C4E4}:{FF6347} %s ganhou um tapa de: %s",NomeDoJogador(jogador) ,NomeDoJogador(playerid));
  1266. MensagemAdmin(COR_INFO,string,1);
  1267. }
  1268. }
  1269. }
  1270. else
  1271. {
  1272. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1273. }
  1274. }
  1275. return 1;
  1276. }
  1277.  
  1278. if(strcmp(cmd,"/matar",true)==0 || strcmp(cmd,"/kill",true)==0)
  1279. {
  1280. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está logado.");
  1281. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1282. tmp = strtok(cmdtext, idx);
  1283. if(!strlen(tmp))
  1284. {
  1285. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /matar [IF]");
  1286. return 1;
  1287. }
  1288. jogador = ReturnUser(tmp);
  1289. if(IsPlayerConnected(jogador))
  1290. {
  1291. if(jogador == INVALID_PLAYER_ID) return SCM(playerid, COR_INFO, " {FF0000}ERRO{A9C4E4}: Este player não está online.");
  1292. if(PlayerInfo[jogador][pAdmin] > 0 && (strcmp("Rodney_Francalim",NomeDoJogador(jogador),true)==0)) { SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não pode matar um administrador dono, por isso você foi morto."); SetPlayerHealth(playerid, 0); return 1; }
  1293. SetPlayerHealth(jogador, 0.0);
  1294. printf("LOG: %s matou %s",NomeDoJogador(playerid) ,NomeDoJogador(jogador));
  1295. format(string, sizeof(string), " {FF0000}LOG{A9C4E4}:{FF6347} %s ganhou uma morte de: %s",NomeDoJogador(jogador) ,NomeDoJogador(playerid));
  1296. MensagemAdmin(COR_INFO,string,1);
  1297. }
  1298. return 1;
  1299. }
  1300.  
  1301. if(strcmp(cmd, "/calar", true) == 0)
  1302. {
  1303. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está logado.");
  1304. if(!(PlayerInfo[playerid][pAdmin] != 0)) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1305. tmp = strtok(cmdtext, idx);
  1306. if(!strlen(tmp))
  1307. {
  1308. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /calar [ID]");
  1309. return 1;
  1310. }
  1311. jogador = ReturnUser(tmp);
  1312. if(PlayerInfo[jogador][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este playerid não está logado");
  1313. if(jogador == INVALID_PLAYER_ID) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este player não está online.");
  1314. if(PlayerInfo[jogador][pAdmin] > 0 && (strcmp("Rodney_Francalim",NomeDoJogador(jogador),true)==0)) { SCM(playerid, COR_INFO, "{FF0000}ERRO{AFAFAF}: Você não pode calar um administrador dono, por isso foi calado."); PlayerInfo[jogador][pCalado] = 1; return 1; }
  1315. if(PlayerInfo[jogador][pCalado] == 0)
  1316. {
  1317. PlayerInfo[jogador][pCalado] = 1;
  1318. printf("LOG: %s calou %s",NomeDoJogador(playerid), NomeDoJogador(jogador));
  1319. format(string, sizeof(string), "{FF0000}LOG{A9C4E4}: {FF6347}%s foi calado por %s",NomeDoJogador(playerid), NomeDoJogador(jogador));
  1320. MensagemAdmin(COR_INFO,string,1);
  1321. }
  1322. else
  1323. {
  1324. PlayerInfo[jogador][pCalado] = 0;
  1325. printf("LOG: %s descalou %s",NomeDoJogador(playerid), NomeDoJogador(jogador));
  1326. format(string, sizeof(string), "{FF0000}LOG{A9C4E4}:{FF6347} %s descalou o jogador: %s",NomeDoJogador(playerid), NomeDoJogador(jogador));
  1327. MensagemAdmin(COR_INFO,string,1);
  1328. }
  1329. return 1;
  1330. }
  1331.  
  1332. if(strcmp(cmd, "/congelar", true) == 0)
  1333. {
  1334. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está logado.");
  1335. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1336. tmp = strtok(cmdtext, idx);
  1337. if(!strlen(tmp))
  1338. {
  1339. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /congelar [ID]");
  1340. return 1;
  1341. }
  1342. jogador = ReturnUser(tmp);
  1343. if(PlayerInfo[jogador][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este player não está logado");
  1344. if(jogador == INVALID_PLAYER_ID) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este player não está online.");
  1345. if(PlayerInfo[jogador][pAdmin] > 0 && (strcmp("Rodney_Francalim",NomeDoJogador(jogador),true)==0)) { SCM(playerid, COR_INFO, "{FF0000}ERRO{AFAFAF}: Você não pode congelar um administrador dono, por isso você foi congelado."); PlayerInfo[playerid][pCongelado] = 1; TogglePlayerControllable(playerid, 0); return 1; }
  1346. if(PlayerInfo[jogador][pCongelado] == 0)
  1347. {
  1348. PlayerInfo[jogador][pCongelado] = 1;
  1349. printf("LOG:O %s %s congelou %s",NivelDeAdm(playerid), NomeDoJogador(playerid), NomeDoJogador(jogador));
  1350. format(string, sizeof(string), "{FF0000}LOG{A9C4E4}:{FF6347}O %s %s congelou o %s %s",NivelDeAdm(playerid), NomeDoJogador(jogador), NivelDeAdm(playerid), NomeDoJogador(playerid));
  1351. MensagemAdmin(COR_INFO,string,1);
  1352. }
  1353. else
  1354. {
  1355. PlayerInfo[jogador][pCongelado] = 0;
  1356. printf("LOG: O %s %s descongelou %s",NivelDeAdm(playerid), NomeDoJogador(playerid), NomeDoJogador(jogador));
  1357. format(string, sizeof(string), "{FF0000}LOG{A9C4E4}:{FF6347}O %s %s descongelou o %s: %s",NivelDeAdm(playerid), NomeDoJogador(playerid), NivelDeAdm(playerid), NomeDoJogador(jogador));
  1358. MensagemAdmin(COR_INFO,string,1);
  1359. }
  1360. return 1;
  1361. }
  1362.  
  1363. if(strcmp(cmd, "/kick", true) == 0)
  1364. {
  1365. if (PlayerInfo[playerid][pAdmin] < 1) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é um moderador.");
  1366. if(PlayerInfo[playerid][pLogado] == 1)
  1367. {
  1368. tmp = strtok(cmdtext, idx);
  1369. if(!strlen(tmp))
  1370. {
  1371. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /kick [ID] [MOTIVO]");
  1372. return 1;
  1373. }
  1374. new motstr[256];
  1375. new strlog[256];
  1376. jogador = ReturnUser(tmp);
  1377. if(!IsPlayerConnected(jogador)) { SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este jogador não está online"); return 1; }
  1378. if(jogador != INVALID_PLAYER_ID)
  1379. {
  1380. new length = strlen(cmdtext);
  1381. while ((idx < length) && (cmdtext[idx] <= ' '))
  1382. {
  1383. idx++;
  1384. }
  1385. new offset = idx;
  1386. new result[64];
  1387. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  1388. {
  1389. result[idx - offset] = cmdtext[idx];
  1390. idx++;
  1391. }
  1392. result[idx - offset] = EOS;
  1393. if(!strlen(result))
  1394. {
  1395. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /kick [ID] [MOTIVO]");
  1396. return 1;
  1397. }
  1398. getdate(tempo[2], tempo[1], tempo[0]);
  1399. gettime(tempo[3], tempo[4], tempo[5]);
  1400. format(string,sizeof(string),"{FF6347}Nome{A9C4E4}: %s \n{FF6347}Motivo{A9C4E4}: %s \n{FF6347}Kickado por{A9C4E4}: %s %s \n{FF6347}Data/Hora{A9C4E4}: %02d/%02d/%02d | %02d:%02d:%02d",NomeDoJogador(jogador), (result), NivelDeAdm(playerid), NomeDoJogador(playerid) , tempo[0], tempo[1], tempo[2], tempo[3], tempo[4], tempo[5]);
  1401. ShowPlayerDialog(jogador,KICK,DIALOG_STYLE_MSGBOX,"{FF0000}~ KICKADO ~",string,"Deslogar", "");
  1402. format(string, sizeof(string), "{FF0000}LOG{A9C4E4}: {FF6347}O %s %s foi kickado pelo %s %s.", NivelDeAdm(jogador), NomeDoJogador(jogador), NivelDeAdm(playerid), NomeDoJogador(playerid));
  1403. SendClientMessageToAll(COR_INFO, string);
  1404. format(motstr, sizeof(motstr), "{FF0000}LOG{A9C4E4}: {FF6347}Motivo: %s." , (result));
  1405. SendClientMessageToAll(COR_INFO, motstr);
  1406. LimparChat(jogador, 125);
  1407. Kick(jogador);
  1408. format(strlog, sizeof(strlog), "LOG: %s foi kickado por: %s. Motivo: %s. Horário: %02d/%02d/%02d | %02d:%02d:%02d", NomeDoJogador(jogador), NomeDoJogador(playerid), (result), tempo[0], tempo[1], tempo[2], tempo[3], tempo[4], tempo[5]);
  1409. KickLog(strlog);
  1410. return 1;
  1411. }
  1412. }
  1413. else
  1414. {
  1415. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está logado.");
  1416. return 1;
  1417. }
  1418. return 1;
  1419. }
  1420.  
  1421. if(strcmp(cmd, "/lc", true) == 0 || strcmp(cmd, "/limparchat", true) == 0)
  1422. {
  1423. if(PlayerInfo[playerid][pAdmin] < 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1424. for(new i=0; i<MAX_PLAYERS; i++)
  1425. {
  1426. if(PlayerInfo[i][pAdmin] ==0)
  1427. {
  1428. LimparChat(i, 125);
  1429. }
  1430. }
  1431. format(string, sizeof(string), "{33CCFF}ADMIN{A9C4E4}: O %s %s, limpou o chat.", NivelDeAdm(playerid), NomeDoJogador(playerid));
  1432. SendClientMessageToAll(COR_INFO,string);
  1433. GameTextForAll("Chat resetado.", 5000, 1);
  1434. return 1;
  1435. }
  1436.  
  1437. // =============================================================================
  1438. // comandos de Administradores =================================================
  1439. //
  1440. // /ban | /verstats | /tempotodos | /ip
  1441. //
  1442. // =============================================================================
  1443. if(strcmp(cmd, "/ban", true) == 0)
  1444. {
  1445. if (PlayerInfo[playerid][pAdmin] < 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é um administrador.");
  1446. if(PlayerInfo[playerid][pLogado] == 1)
  1447. {
  1448. tmp = strtok(cmdtext, idx);
  1449. if(!strlen(tmp))
  1450. {
  1451. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /ban [ID] [MOTIVO]");
  1452. return 1;
  1453. }
  1454. new motstr[256];
  1455. new strlog[256];
  1456. jogador = ReturnUser(tmp);
  1457. if(!IsPlayerConnected(jogador)) { SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este jogador não está online"); return 1; }
  1458. if(jogador != INVALID_PLAYER_ID)
  1459. {
  1460. new length = strlen(cmdtext);
  1461. while ((idx < length) && (cmdtext[idx] <= ' '))
  1462. {
  1463. idx++;
  1464. }
  1465. new offset = idx;
  1466. new result[64];
  1467. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  1468. {
  1469. result[idx - offset] = cmdtext[idx];
  1470. idx++;
  1471. }
  1472. result[idx - offset] = EOS;
  1473. if(!strlen(result))
  1474. {
  1475. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /ban [ID] [MOTIVO]");
  1476. return 1;
  1477. }
  1478. getdate(tempo[2], tempo[1], tempo[0]);
  1479. gettime(tempo[3], tempo[4], tempo[5]);
  1480. format(string,sizeof(string),"{FF6347}Nome{A9C4E4}: %s \n{FF6347}Motivo{A9C4E4}: %s \n{FF6347}Banido por{A9C4E4}: %s %s \n{FF6347}Data/Hora{A9C4E4}: %02d/%02d/%02d | %02d:%02d:%02d\nPressione F8 e poste a SS no fórum caso queira queixar-se\n do banimento.",NomeDoJogador(jogador), (result), NivelDeAdm(playerid), NomeDoJogador(playerid) , tempo[0], tempo[1], tempo[2], tempo[3], tempo[4], tempo[5]);
  1481. ShowPlayerDialog(jogador,BAN,DIALOG_STYLE_MSGBOX,"{FF0000}~ BANIDO ~",string,"Deslogar", "");
  1482. format(string, sizeof(string), "{FF0000}LOG{A9C4E4}: {FF6347}O %s %s foi banido pelo %s %s.", NivelDeAdm(jogador), NomeDoJogador(jogador), NivelDeAdm(playerid), NomeDoJogador(playerid));
  1483. SendClientMessageToAll(COR_INFO, string);
  1484. format(motstr, sizeof(motstr), "{FF0000}LOG{A9C4E4}: {FF6347}Motivo: %s." , (result));
  1485. SendClientMessageToAll(COR_INFO, motstr);
  1486. LimparChat(jogador, 125);
  1487. PlayerInfo[jogador][pBanido] = 1;
  1488. AtualizarJogador(jogador);
  1489. new tmppass[256];
  1490. strmid(tmppass, result, 0, strlen(result), 255);
  1491. new adminban[256];
  1492. strmid(adminban, NomeDoJogador(playerid), 0, strlen(NomeDoJogador(playerid)), 255);
  1493. Banido(jogador, tmppass, adminban);
  1494. Kick(jogador);
  1495. format(strlog, sizeof(strlog), "LOG: %s foi banido por: %s. Motivo: %s. Horário: %02d/%02d/%02d | %02d:%02d:%02d", NomeDoJogador(jogador), NomeDoJogador(playerid), (result), tempo[0], tempo[1], tempo[2], tempo[3], tempo[4], tempo[5]);
  1496. BanLog(strlog);
  1497. return 1;
  1498. }
  1499. }
  1500. else
  1501. {
  1502. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está logado.");
  1503. return 1;
  1504. }
  1505. return 1;
  1506. }
  1507.  
  1508. /*if(strcmp(cmd, "/editar", true) == 0)
  1509. {
  1510. new antieabuser[256];
  1511. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está logado.");
  1512. if(PlayerInfo[playerid][pAdmin] < 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está autorizado à usar esse comando.");
  1513. tmp = strtok(cmdtext, idx);
  1514. if(!strlen(tmp))
  1515. {
  1516. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /editar [ID] [OPÇÃO] [VALOR]");
  1517. SCM(playerid, COR_INFO, " {AFAFAF}| 1: Pontos especiais | 2: Pontos");
  1518. return 1;
  1519. }
  1520. jogador = ReturnUser(tmp);
  1521. if(PlayerInfo[playerid][pLogado] == 0 || jogador == INVALID_PLAYER_ID) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este jogador não está logado.");
  1522. new opcao = strval(tmp);
  1523. tmp = strtok(cmdtext, idx);
  1524. if(!strlen(tmp))
  1525. {
  1526. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /editar [ID] [OPÇÃO] [VALOR]");
  1527. SCM(playerid, COR_INFO, " {AFAFAF}| 1: Pontos especiais | 2: Pontos");
  1528. return 1;
  1529. }
  1530. new quant = strval(tmp);
  1531. if(!strlen(tmp))
  1532. {
  1533. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /editar [ID] [OPÇÃO] [VALOR]");
  1534. SCM(playerid, COR_INFO, " {AFAFAF}| 1: Pontos especiais | 2: Pontos");
  1535. return 1;
  1536. }
  1537. if(jogador == playerid && PlayerInfo[playerid][pAdmin] != 3) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não pode editar a si mesmo.");
  1538. switch(opcao)
  1539. {
  1540. case 1:
  1541. {
  1542. PlayerInfo[jogador][pPtsEsp] = quant;
  1543. format(string, sizeof(string), " {FFFF00}INFO{A9C4E4}: Você editou os Pontos especiais do %s %s para: %d", NivelDeAdm(jogador), NomeDoJogador(jogador), quant);
  1544. SCM(playerid, COR_INFO, string);
  1545. SetPlayerScore(playerid, quant);
  1546. format(str, 256, " {FFFF00}INFO{A9C4E4}: O %s %s editou os Pontos especiais do %s %s para: %d", NivelDeAdm(playerid), NomeDoJogador(playerid), NivelDeAdm(jogador), NomeDoJogador(jogador), quant);
  1547. //MensagemAdmin(COR_INFO, str, 1);
  1548. SCM(playerid, COR_INFO, str);
  1549. format(antieabuser, sizeof(antieabuser), "O %s %s editou os Pontos especiais do %s %s para: %d", NivelDeAdm(playerid), NomeDoJogador(playerid), NivelDeAdm(jogador), NomeDoJogador(jogador), quant);
  1550. EditarStats(antieabuser);
  1551. }
  1552. case 2:
  1553. {
  1554. PlayerInfo[jogador][pPontos] = quant;
  1555. format(string, sizeof(string), " {FFFF00}INFO{A9C4E4}: Você editou os Pontos do %s %s para: %d", NivelDeAdm(jogador), NomeDoJogador(jogador), quant);
  1556. SCM(playerid, COR_INFO, string);
  1557. format(str, 256, " {FFFF00}INFO{A9C4E4}: O %s %s editou os Pontos do %s %s para: %d", NivelDeAdm(playerid), NomeDoJogador(playerid), NivelDeAdm(jogador), NomeDoJogador(jogador), quant);
  1558. //MensagemAdmin(COR_INFO, str, 1);
  1559. SCM(playerid, COR_INFO, str);
  1560. format(antieabuser, sizeof(antieabuser), "O %s %s editou os Pontos do %s %s para: %d", NivelDeAdm(playerid), NomeDoJogador(playerid), NivelDeAdm(jogador), NomeDoJogador(jogador), quant);
  1561. EditarStats(antieabuser);
  1562. }
  1563. default:
  1564. {
  1565. format(string, sizeof(string), " {FF0000}ERRO{AFAFAF}: Opção inválida.");
  1566. }
  1567. }
  1568. SCM(playerid, COR_INFO, string);
  1569. AtualizarJogador(jogador);
  1570. return 1;
  1571. }*/
  1572.  
  1573. if(strcmp(cmd, "/verstats", true) == 0 || strcmp(cmd, "/vs", true) == 0)
  1574. {
  1575. new str1[256];
  1576. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está online.");
  1577. if(PlayerInfo[playerid][pAdmin] < 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está autorizado à usar esse comando.");
  1578. tmp = strtok(cmdtext, idx);
  1579. if(!strlen(tmp) || strval(tmp)) return SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /(v)er(s)tats [NOME]");
  1580. jogador = ReturnUser(tmp);
  1581. format(string, 66, "Contas/%s.ini", tmp);
  1582. if(dini_Exists(string))
  1583. {
  1584. new Reputacao = dini_Int(string, "EspPts");
  1585. new Pontos = dini_Int(string, "Pontos");
  1586. new AdminLevel = dini_Int(string, "Admin");
  1587. SCM(playerid, COR_INFO, "");
  1588. SCM(playerid, COR_INFO, "{FFFF00}######################################################");
  1589. format(str1, sizeof(str1), " = {FFFF00}Nome: %s {A9C4E4}%s {A9C4E4}=", (AdminLevel == 0) ? ("{A9C4E4}Jogador") : (AdminLevel == 1) ? ("{33CCFF}Moderador") : (AdminLevel == 2) ? ("{33CCFF}administrador") : (AdminLevel == 3) ? ("{33CCFF}Administrador dono") : ("{FF0000}CONTA BUGADA"), tmp);
  1590. SCM(playerid, COR_INFO, str1);
  1591. format(str1, sizeof(str1), " = {FFFF00}Pontos: {4169E1}%d {A9C4E4}| {FFFF00}Pontos especiais: {4169E1}%d {A9C4E4}=", Pontos, Reputacao);
  1592. SCM(playerid, COR_INFO, str1);
  1593. SCM(playerid, COR_INFO, "");
  1594. return 1;
  1595. }
  1596. else
  1597. {
  1598. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Esta conta não existe");
  1599. return 1;
  1600. }
  1601. }
  1602.  
  1603. if(strcmp(cmd, "/tempotodos", true) == 0)
  1604. {
  1605. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{A9C4E4}: Você não está logado");
  1606. if(PlayerInfo[playerid][pAdmin] < 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está autorizado à usar esse comando.");
  1607. tmp = strtok(cmdtext, idx);
  1608. if(!strlen(tmp)) { SCM(playerid, COR_INFO, " {FFFF00}INFO{A9C4E4}: USE /tempo [ID]"); return 1; }
  1609. new clima;
  1610. clima = strval(tmp);
  1611. if(clima < 0||clima > 45) { SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Tempo ID de 0 ~ 45."); return 1; }
  1612. SetWeather(clima);
  1613. format(string, sizeof(string), "{FF6347}LOG{A9C4E4}:{FF0000} O %s: %s setou o tempo do servidor para %d.",NivelDeAdm(playerid), NomeDoJogador(playerid) ,clima);
  1614. MensagemAdmin(COR_INFO, string, 1);
  1615. SCM(playerid, COR_INFO, "Tempo mudado.");
  1616. return 1;
  1617. }
  1618.  
  1619. if(strcmp(cmd, "/ip", true) == 0)
  1620. {
  1621. if(PlayerInfo[playerid][pAdmin] < 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está autorizado à usar esse comando.");
  1622. tmp = strtok(cmdtext, idx);
  1623. if(!strlen(tmp)) { SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /ip [ID]"); return 1; }
  1624. jogador = ReturnUser(tmp);
  1625. if(!(IsPlayerConnected(jogador))) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Esse jogador não está online.");
  1626. //new ipe[256];
  1627. new PlayerIP[256];
  1628. GetPlayerIp(playerid,PlayerIP, sizeof(PlayerIP));
  1629. format(string, sizeof(string), "{A9C4E4}| {00FA9A}%s{A9C4E4}: | IP: {4169E1}%d{A9C4E4} |", NomeDoJogador(jogador),PlayerIP);
  1630. if(strlen(PlayerIP)) { SCM(playerid, COR_INFO, string); }
  1631. return 1;
  1632. }
  1633. // =============================================================================
  1634. // comandos de Admins Dono =====================================================
  1635. //
  1636. // /deletarconta | /ipdesban | /nomedesban | /setpos | /daradmin | /gmx
  1637. //
  1638. // =============================================================================
  1639. if(strcmp(cmd, "/deletarconta", true) == 0)
  1640. {
  1641. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1642. if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador dono.");
  1643. new deletou[256];
  1644. new conta[64];
  1645. tmp = strtok(cmdtext, idx);
  1646. if(!strlen(tmp)) return SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /deletarconta [NOME]");
  1647. format(conta,sizeof(conta),"Contas/%s.ini",tmp);
  1648. if(dini_Exists(conta))
  1649. {
  1650. getdate(tempo[0], tempo[1], tempo[2]);
  1651. gettime(tempo[3], tempo[4], tempo[5]);
  1652. format(deletou, sizeof(deletou), "{FF6347}LOG{A9C4E4}:{FF0000} O %s %s deletou a conta de %s. Horário: %d/%d/%d %02d:%02d:%02d ", NivelDeAdm(playerid) , NomeDoJogador(playerid), tmp, tempo[2], tempo[1], tempo[0], tempo[3], tempo[4], tempo[5]);
  1653. MensagemAdmin(COR_INFO, deletou, 1);
  1654. format(deletou, sizeof(deletou), "O %s %s deletou a conta de %s. Horário: %d/%d/%d %02d:%02d:%02d ", NivelDeAdm(playerid) , NomeDoJogador(playerid), tmp, tempo[2], tempo[1], tempo[0], tempo[3], tempo[4], tempo[5]);
  1655. DeleteLog(deletou);
  1656. dini_Remove(conta);
  1657. return 1;
  1658. }
  1659. else
  1660. {
  1661. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Esta conta não existe");
  1662. return 1;
  1663. }
  1664. }
  1665. if(strcmp(cmd,"/ipdesban",true)== 0)
  1666. {
  1667. new arquivodini[256];
  1668. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1669. if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador dono.");
  1670. tmp = strtok(cmdtext,idx);
  1671. if(!strlen(tmp))
  1672. {
  1673. SCM(playerid, COR_INFO," {FF0000}INFO{AFAFAF}: USE: /ipdesban [IP]");
  1674. return 1;
  1675. }
  1676. format(arquivodini, sizeof(arquivodini), "IPs Banidos/%s.ini", tmp);
  1677. if(!dini_Exists(arquivodini))
  1678. {
  1679. SCM(playerid, COR_INFO," {FF0000}ERRO{AFAFAF}: Este IP não está banido.");
  1680. return 1;
  1681. }
  1682. else
  1683. {
  1684. dini_Remove(arquivodini);
  1685. format(string, sizeof(string), "{33CCFF}LOG{A9C4E4}: O %s %s desbaniu o IP: %s", NivelDeAdm(playerid), NomeDoJogador(playerid), tmp);
  1686. MensagemAdmin(COR_INFO, string, 1);
  1687. return 1;
  1688. }
  1689. }
  1690.  
  1691. if(strcmp(cmd,"/nomedesban",true)== 0)
  1692. {
  1693. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1694. if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador dono.");
  1695. tmp = strtok(cmdtext,idx);
  1696. if(!strlen(tmp)) return SCM(playerid, COR_INFO," {FFFF00}INFO{AFAFAF}: USE: /nomedesban [NOME]");
  1697. new arquivo[64];
  1698. format(arquivo, sizeof(arquivo), "Banidos/%s.ini",tmp);
  1699. if(!dini_Exists(arquivo))
  1700. {
  1701. SCM(playerid, COR_INFO," {FF0000}ERRO{AFAFAF}: Este jogador não está banido.");
  1702. return 1;
  1703. }
  1704. else
  1705. {
  1706. dini_Remove(arquivo);
  1707. format(string, sizeof(string), "{33CCFF}LOG{A9C4E4}: O %s %s desbaniu o jogador: %s", NivelDeAdm(playerid), NomeDoJogador(playerid), tmp);
  1708. MensagemAdmin(COR_INFO,string,1);
  1709. }
  1710. return 1;
  1711. }
  1712.  
  1713. if(strcmp(cmd,"/setpos",true)==0)
  1714. {
  1715. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1716. if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador dono.");
  1717. new plid,Float:setpos[3];
  1718. tmp = strtok(cmdtext,idx);
  1719. if(!strlen(tmp)) return SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /setpos [ID] [X] [Y] [Z]");
  1720. jogador = strval(tmp);
  1721. if(PlayerInfo[jogador][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este player não está online.");
  1722. for(new x=0;x<3;x++)
  1723. {
  1724. tmp = strtok(cmdtext,idx);
  1725. if(!strlen(tmp)) return SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /setpos [ID] [X] [Y] [Z]");
  1726. setpos[x] = floatstr(tmp);
  1727. }
  1728. SetPlayerPos(plid,setpos[0],setpos[1],setpos[2]);
  1729. SCM(playerid, COR_INFO, " {FFFF00}INFO{A9C4E4}: Posição setada.");
  1730. return 1;
  1731. }
  1732.  
  1733. if(strcmp(cmd, "/gmx", true) == 0)
  1734. {
  1735. if(PlayerInfo[playerid][pAdmin] < 3) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está autorizado à usar este comando.");
  1736. for(new i = 0; i < MAX_PLAYERS; i++)
  1737. {
  1738. if(IsPlayerConnected(i))
  1739. {
  1740. AtualizarJogador(i);
  1741. LimparChat(i, 125);
  1742. SCM(i, COR_INFO,"{33CCFF}ADMIN{A9C4E4}: Por favor, não deslogue, aguarde alguns segundos até a próxima atualização...");
  1743. }
  1744. GameModeInitExitFunc();
  1745. }
  1746. return 1;
  1747. }
  1748.  
  1749. if(strcmp(cmd, "/mudarmg", true) == 0)
  1750. {
  1751. if(PlayerInfo[playerid][pAdmin] < 3) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está autorizado à usar este comando.");
  1752. new outromg = random(sizeof(MiniGames));
  1753. for(new i = 0; i < MAX_PLAYERS; i++)
  1754. {
  1755. if(IsPlayerConnected(i))
  1756. {
  1757. SCM(i, COR_INFO, "{33CCFF}ADMIN{A9C4E4}: Um administrador solicitou a troca de mini-game.");
  1758. SCM(i, COR_INFO, "{33CCFF}ADMIN{A9C4E4}: O próximo Mini-Game já foi escolhido. Boa sorte!");
  1759. format(string, sizeof(string), "changemode %s", MiniGames[outromg]);
  1760. getdate(v[0], v[1], v[2]);
  1761. gettime(v[3], v[4], v[5]);
  1762. print("\n _________________________________________________________ ");
  1763. print("| |");
  1764. print("| |");
  1765. printf("| Mudando para o MiniGame: %s |");
  1766. print("| |");
  1767. print("|_________________________________________________________|\n");
  1768. SendRconCommand(string);
  1769. TextDrawHideForPlayer(playerid, Textdraw0); //Horas
  1770. TextDrawHideForPlayer(playerid, Textdraw1); //Minutos
  1771. TextDrawHideForPlayer(playerid, Textdraw2); //Segundos
  1772. TextDrawHideForPlayer(playerid, Textdraw3); //Dia
  1773. TextDrawHideForPlayer(playerid, Textdraw4); //Mes
  1774. TextDrawHideForPlayer(playerid, Textdraw5); //Ano
  1775. TextDrawDestroy(Textdraw0);
  1776. TextDrawDestroy(Textdraw1);
  1777. TextDrawDestroy(Textdraw2);
  1778. TextDrawDestroy(Textdraw3);
  1779. TextDrawDestroy(Textdraw4);
  1780. TextDrawDestroy(Textdraw5);
  1781. KillTimer(FDMG);
  1782. KillTimer(FVK);
  1783. }
  1784. }
  1785.  
  1786. return 1;
  1787. }
  1788.  
  1789. if(strcmp(cmd, "/daradmin", true) == 0)
  1790. {
  1791. new log[256];
  1792. if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador.");
  1793. if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não é administrador dono.");
  1794. if(PlayerInfo[playerid][pLogado] == 0) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você não está logado.");
  1795. tmp = strtok(cmdtext, idx);
  1796. if(!strlen(tmp))
  1797. {
  1798. SCM(playerid, COR_INFO, " {FFFF00}INFO{AFAFAF}: USE: /daradmin [ID] [NIVEL]");
  1799. return 1;
  1800. }
  1801. new nivel;
  1802. jogador = ReturnUser(tmp);
  1803. tmp = strtok(cmdtext, idx);
  1804. nivel = strval(tmp);
  1805. if(jogador == INVALID_PLAYER_ID) return SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Este player não está online.");
  1806. if(nivel == 0)
  1807. {
  1808. if(PlayerInfo[jogador][pAdmin] == 0)
  1809. {
  1810. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Você só pode retirar da administração quem já é administrador.");
  1811. }
  1812. if(PlayerInfo[jogador][pAdmin] > 0)
  1813. {
  1814. AdminsOnline--;
  1815. PlayerInfo[jogador][pAdmin] = nivel;
  1816. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você foi retirado da administração pelo adminitrador %s.", NomeDoJogador(playerid));
  1817. SCM(jogador, COR_INFO, string);
  1818. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você retirou o(a) jogador(a): %s da administração.", NomeDoJogador(playerid));
  1819. SCM(playerid, COR_INFO, string);
  1820. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: O administrador: %s, retirou o(a) jogador(a): %s da administração.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1821. MensagemAdmin(COR_INFO, string, 1);
  1822. format(log, sizeof(log), " O administrador: %s, retirou o(a) jogador(a): %s da administração.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1823. AdminLog(log);
  1824. }
  1825. }
  1826. if(nivel == 1)
  1827. {
  1828. if(PlayerInfo[jogador][pAdmin] == 0)
  1829. {
  1830. PlayerInfo[jogador][pAdmin] = nivel;
  1831. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você foi promovido à moderador pelo administrador %s.", NomeDoJogador(playerid));
  1832. SCM(jogador, COR_INFO, string);
  1833. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você promoveu o(a) jogador(a): %s para moderador.", NomeDoJogador(jogador));
  1834. SCM(playerid, COR_INFO, string);
  1835. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: O administrador: %s, promoveu o(a) jogador(a): %s para moderador.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1836. MensagemAdmin(COR_INFO, string, 1);
  1837. format(log, sizeof(log), " O administrador: %s, promoveu o(a) jogador(a): %s para moderador.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1838. AdminLog(log);
  1839. AdminsOnline++;
  1840. }
  1841. else if(PlayerInfo[jogador][pAdmin] == 2)
  1842. {
  1843. AdminsOnline++;
  1844. PlayerInfo[jogador][pAdmin] = nivel;
  1845. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você foi rebaixado à moderador pelo administrador %s.", NomeDoJogador(playerid));
  1846. SCM(jogador, COR_INFO, string);
  1847. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você rebaixou o(a) jogador(a): %s para moderador.", NomeDoJogador(jogador));
  1848. SCM(playerid, COR_INFO, string);
  1849. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: O administrador: %s, rebaixou o(a) jogador(a): %s para moderador.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1850. MensagemAdmin(COR_INFO, string, 1);
  1851. format(log, sizeof(log), " O administrador: %s, rebaixou o(a) jogador(a): %s para moderador.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1852. AdminLog(log);
  1853. }
  1854. else if(PlayerInfo[jogador][pAdmin] == 1)
  1855. {
  1856. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Ele já é moderador.");
  1857. }
  1858. }
  1859. if(nivel == 2)
  1860. {
  1861. if(PlayerInfo[jogador][pAdmin] == 0 || PlayerInfo[playerid][pAdmin] == 1)
  1862. {
  1863. PlayerInfo[jogador][pAdmin] = nivel;
  1864. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você foi promovido à administrador pelo administrador %s.", NomeDoJogador(playerid));
  1865. SCM(jogador, COR_INFO, string);
  1866. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você promoveu o(a) jogador(a): %s para administrador.", NomeDoJogador(jogador));
  1867. SCM(playerid, COR_INFO, string);
  1868. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: O administrador: %s, promoveu o(a) jogador(a): %s para administrador.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1869. MensagemAdmin(COR_INFO, string, 1);
  1870. format(log, sizeof(log), " O administrador: %s, promoveu o(a) jogador(a): %s para administrador.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1871. AdminLog(log);
  1872. }
  1873. else if(PlayerInfo[jogador][pAdmin] == 3)
  1874. {
  1875. AdminsOnline++;
  1876. PlayerInfo[jogador][pAdmin] = nivel;
  1877. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você foi rebaixado à administrador pelo administrador %s.", NomeDoJogador(playerid));
  1878. SCM(jogador, COR_INFO, string);
  1879. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você rebaixou o(a) jogador(a): %s para administrador.", NomeDoJogador(jogador));
  1880. SCM(playerid, COR_INFO, string);
  1881. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: O administrador: %s, rebaixou o(a) jogador(a): %s para administrador.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1882. MensagemAdmin(COR_INFO, string, 1);
  1883. format(log, sizeof(log), " O administrador: %s, rebaixou o(a) jogador(a): %s para administrador.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1884. AdminLog(log);
  1885. }
  1886. else if(PlayerInfo[jogador][pAdmin] == 2)
  1887. {
  1888. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Ele já é administrador.");
  1889. }
  1890. }
  1891. if(nivel == 3)
  1892. {
  1893. if(PlayerInfo[jogador][pAdmin] >= 0 || PlayerInfo[playerid][pAdmin] < 3)
  1894. {
  1895. PlayerInfo[jogador][pAdmin] = nivel;
  1896. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você foi promovido à administrador dono pelo administrador %s.", NomeDoJogador(playerid));
  1897. SCM(jogador, COR_INFO, string);
  1898. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: Você promoveu o(a) jogador(a): %s para administrador dono.", NomeDoJogador(jogador));
  1899. SCM(playerid, COR_INFO, string);
  1900. format(string, sizeof(string), " {33CCFF}ADMIN{A9C4E4}/{FFFF00}INFO{A9C4E4}: O administrador: %s, promoveu o(a) jogador(a): %s para administrador dono.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1901. MensagemAdmin(COR_INFO, string, 1);
  1902. format(log, sizeof(log), " O administrador: %s, promoveu o(a) jogador(a): %s para administrador dono.", NomeDoJogador(playerid), NomeDoJogador(jogador));
  1903. AdminLog(log);
  1904. }
  1905. else if(PlayerInfo[jogador][pAdmin] == 3)
  1906. {
  1907. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: Ele já é administrador dono.");
  1908. }
  1909. }
  1910. else
  1911. {
  1912. SCM(playerid, COR_INFO, " {FF0000}ERRO{AFAFAF}: O valor não pode ser menor que 0 ou maior que 3.");
  1913. return 1;
  1914. }
  1915. AtualizarJogador(jogador);
  1916. return 1;
  1917. }
  1918. TextDrawShowForPlayer(playerid, Textdraw7);
  1919. SetTimer("OcultarCMDINV", 3000, 0);
  1920. return 1;
  1921. }
  1922.  
  1923. // =============================================================================
  1924. // GameModeInitExitFunc
  1925. // =============================================================================
  1926.  
  1927. public GameModeInitExitFunc()
  1928. {
  1929. for(new i = 0; i < MAX_PLAYERS; i++)
  1930. {
  1931. if(IsPlayerConnected(i))
  1932. {
  1933. TogglePlayerControllable(i, 0);
  1934. SetPlayerInterior(i, 0);
  1935. PlayerInfo[i][pLogado] = 0;
  1936. }
  1937. }
  1938. SetTimer("GameModeExitFunc", 1000, 0);
  1939. return 1;
  1940. }
  1941.  
  1942. public GameModeExitFunc()
  1943. {
  1944. GameModeExit();
  1945. }
  1946.  
  1947. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1948. {
  1949. if(newkeys == KEY_FIRE && Morreu[playerid] == 1 && MGComecou == 1)
  1950. {
  1951. SpectateRandomPlayer(playerid);
  1952. }
  1953. return 0x01;
  1954. }
  1955.  
  1956. // OnPlayerUpdate ==============================================================
  1957. public OnPlayerUpdate(playerid)
  1958. {
  1959. if(PlayerInfo[playerid][pAdmin] != 0)
  1960. {
  1961. if(GetPlayerPing(playerid) > 1000)
  1962. {
  1963. //new string[128];
  1964. //format(string, sizeof(string), "{FF0000}[SERVER] {FF1493}%s {FFFFFF}(ID:%d) foi kikado automaticamente. {FF0000}Motivo: {FFFFFF}Ping Alto. Maximo permitido: {FF1493}1000", NomeDoJogador(playerid), playerid);
  1965. //MensagemAdmin(0xA9C4E4AA, string, 1);
  1966. //Kick(playerid);
  1967. }
  1968. }
  1969. return 1;
  1970. }
  1971.  
  1972. // Mensagem para os Admins =====================================================
  1973. forward MensagemAdmin(COLOR,const string[],nivel);
  1974. public MensagemAdmin(COLOR,const string[],nivel)
  1975. {
  1976. for(new i = 0; i < MAX_PLAYERS; i++)
  1977. {
  1978. if(IsPlayerConnected(i))
  1979. {
  1980. if (PlayerInfo[i][pAdmin] != 0)
  1981. {
  1982. SCM(i, COLOR, string);
  1983. }
  1984. }
  1985. }
  1986. return 1;
  1987. }
  1988.  
  1989. // Contas ======================================================================
  1990.  
  1991. public RegistrarJogador(playerid, senha[])
  1992. {
  1993. if(IsPlayerConnected(playerid))
  1994. {
  1995. new string3[64];
  1996. format(string3,sizeof(string3),"Contas/%s.ini",NomeDoJogador(playerid));
  1997. dini_Create(string3);
  1998. dini_Set(string3,"Senha",senha);
  1999. dini_IntSet(string3,"EspPts", PlayerInfo[playerid][pPtsEsp]);
  2000. dini_IntSet(string3,"Admin", PlayerInfo[playerid][pAdmin]);
  2001. dini_IntSet(string3,"Pontos", PlayerInfo[playerid][pPontos]);
  2002. CarregarJogador(playerid, senha);
  2003. LimparChat(playerid, 125);
  2004. SCM(playerid, COR_INFO, " {FFFF00}INFO{A9C4E4}: Conta criada com sucesso.");
  2005. SCM(playerid, COR_INFO, " {FFFF00}INFO{A9C4E4}: Você foi logado automaticamente.");
  2006. }
  2007. return 1;
  2008. }
  2009.  
  2010. public CarregarJogador(playerid, senha[])
  2011. {
  2012. new str[256];
  2013. new string2[64];
  2014. new string[64];
  2015. new ip[30];
  2016. format(string2, sizeof(string2), "Contas/%s.ini", NomeDoJogador(playerid));
  2017. if(dini_Exists(string2))
  2018. {
  2019. if(!strcmp(dini_Get(string2, "Senha"), senha, false))
  2020. {
  2021. PlayerInfo[playerid][pLogado] = 1;
  2022. PlayerInfo[playerid][pPtsEsp] = dini_Int(string2,"PontosEsp");
  2023. PlayerInfo[playerid][pAdmin] = dini_Int(string2,"Admin");
  2024. PlayerInfo[playerid][pPontos] = dini_Int(string2, "Pontos");
  2025. PlayerInfo[playerid][pLogou] = 1;
  2026. PlayerInfo[playerid][pBanido] = dini_Int(string2, "Banido");
  2027. SCM(playerid, COR_INFO, " {FFFF00}INFO{A9C4E4}: Você logou com sucesso.");
  2028. SetPlayerScore(playerid, PlayerInfo[playerid][pPtsEsp]);
  2029. GetPlayerIp(playerid, ip, sizeof(ip));
  2030. format(string, sizeof(string), "Últimos IPs conectados/%s.ini",ip);
  2031. dini_Create(string);
  2032. dini_Set(string,"Nome",NomeDoJogador(playerid));
  2033. Online++;
  2034. SpawnPlayer(playerid);
  2035. if(PlayerInfo[playerid][pBanido] > 0)
  2036. {
  2037. PlayerInfo[playerid][pBanido] = 0;
  2038. }
  2039. if(PlayerInfo[playerid][pAdmin] != 0)
  2040. {
  2041. format(str, sizeof(str), "{33CCFF}SERVER{A9C4E4}: O %s {33CCFF}%s{A9C4E4} acabou de logar.", NivelDeAdm(playerid), NomeDoJogador(playerid));
  2042. SendClientMessageToAll(COR_INFO, str);
  2043. AdminsOnline ++;
  2044. return 1;
  2045. }
  2046. }
  2047. else
  2048. {
  2049. ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "{90EE90}Evolution - MiniGames", "{A9C4E4}Senha{FF0000} INCORRETA", "Logar", "");
  2050. SCM(playerid, COR_INFO, " {FF0000}ERRO{A9C4E4}: Sua senha/nick não coincidem.");
  2051. return 1;
  2052. }
  2053. }
  2054. return 1;
  2055. }
  2056.  
  2057. public AtualizarJogador(playerid)
  2058. {
  2059. if(IsPlayerConnected(playerid))
  2060. {
  2061. if(PlayerInfo[playerid][pLogado] == 1)
  2062. {
  2063. new string3[256];
  2064. format(string3, sizeof(string3), "Contas/%s.ini", NomeDoJogador(playerid));
  2065. dini_IntSet(string3,"EspPts", PlayerInfo[playerid][pPtsEsp]);
  2066. dini_IntSet(string3,"Admin", PlayerInfo[playerid][pAdmin]);
  2067. dini_IntSet(string3,"Pontos", PlayerInfo[playerid][pPontos]);
  2068. dini_IntSet(string3,"Banido", PlayerInfo[playerid][pBanido]);
  2069. }
  2070. }
  2071. return 1;
  2072. }
  2073.  
  2074. public MPLog(string[])
  2075. {
  2076. new entry[256];
  2077. format(entry, sizeof(entry), "%s\n",string);
  2078. new File:hFile;
  2079. hFile = fopen("Logs/MPs.log", io_append);
  2080. fwrite(hFile, entry);
  2081. fclose(hFile);
  2082. }
  2083.  
  2084. public VKLog(string[])
  2085. {
  2086. new entry[256];
  2087. format(entry, sizeof(entry), "%s\n",string);
  2088. new File:hFile;
  2089. hFile = fopen("Logs/VoteKick.log", io_append);
  2090. fwrite(hFile, entry);
  2091. fclose(hFile);
  2092. }
  2093.  
  2094. public EditarStats(string[])
  2095. {
  2096. new entry[256];
  2097. format(entry, sizeof(entry), "%s\n",string);
  2098. new File:hFile;
  2099. hFile = fopen("Logs/Editado.log", io_append);
  2100. fwrite(hFile, entry);
  2101. fclose(hFile);
  2102. }
  2103.  
  2104. public AdminLog(string[])
  2105. {
  2106. new entry[256];
  2107. format(entry, sizeof(entry), "%s\n",string);
  2108. new File:hFile;
  2109. hFile = fopen("Logs/AdminLog.log", io_append);
  2110. fwrite(hFile, entry);
  2111. fclose(hFile);
  2112. }
  2113.  
  2114. public KickLog(string[])
  2115. {
  2116. new entry[256];
  2117. format(entry, sizeof(entry), "%s\n",string);
  2118. new File:hFile;
  2119. hFile = fopen("Logs/kick.log", io_append);
  2120. fwrite(hFile, entry);
  2121. fclose(hFile);
  2122. }
  2123.  
  2124. public BanLog(string[])
  2125. {
  2126. new entry[256];
  2127. format(entry, sizeof(entry), "%s\n",string);
  2128. new File:hFile;
  2129. hFile = fopen("Logs/ban.log", io_append);
  2130. fwrite(hFile, entry);
  2131. fclose(hFile);
  2132. }
  2133.  
  2134. public Banido(playerid, motivo[], admin[])
  2135. {
  2136. new str[64], string[64], ip[20];
  2137. format(str,sizeof(str),"Banidos/%s.ini",NomeDoJogador(playerid));
  2138. dini_Create(str);
  2139. dini_IntSet(str,"Banido", 1);
  2140. dini_Set(str,"Motivo", motivo);
  2141. dini_Set(str,"AdminBan", admin);
  2142.  
  2143. GetPlayerIp(playerid, ip, sizeof(ip));
  2144. format(string, sizeof(string), "IPs Banidos/%s.ini",ip);
  2145. dini_Create(string);
  2146. dini_Set(string,"Nome",NomeDoJogador(playerid));
  2147. dini_Set(string,"Motivo", motivo);
  2148. dini_Set(string,"AdminBan", admin);
  2149. return 1;
  2150. }
  2151.  
  2152. public DeleteLog(string[])
  2153. {
  2154. new entry[256];
  2155. format(entry, sizeof(entry), "%s\n",string);
  2156. new File:hFile;
  2157. hFile = fopen("Logs/ContasDeletadas.log", io_append);
  2158. fwrite(hFile, entry);
  2159. fclose(hFile);
  2160. }
  2161.  
  2162. public TempoDoVK(playerid)
  2163. {
  2164. new string[256];
  2165. new str[128];
  2166. if(Votos > Online/3)
  2167. {
  2168. format(string, sizeof(string), "{90EE90}SERVER{A9C4E4}: %s foi kickado por receber muitos votos.", NomeDoJogador(playerid));
  2169. SendClientMessageToAll(COR_INFO, string);
  2170. Kick(playerid);
  2171. }
  2172. else
  2173. {
  2174. format(string, sizeof(string), "{90EE09}SERVER{A9C4E4}: %s não foi kickado, pois não recebeu votos suficientes.", NomeDoJogador(playerid));
  2175. SendClientMessageToAll(COR_INFO, string);
  2176. format(str, sizeof(str), "{90EE09}SERVER{A9C4E4}: %s não foi kickado, pois não recebeu votos suficientes.", NomeDoJogador(playerid));
  2177. KickLog(str);
  2178. }
  2179. for(new i = 0; i < MAX_PLAYERS; i++)
  2180. {
  2181. Votou[i] = 0;
  2182. }
  2183. KillTimer(FVK);
  2184. Votos = 0;
  2185. VoteKick = 0;
  2186. return 1;
  2187. }
  2188.  
  2189. // PUBLIC PARA TROCA DE MINI-GAME
  2190. public FimDeMG()
  2191. {
  2192. new tempostr[256];
  2193. new string[64];
  2194. new outromg = random(sizeof(MiniGames));
  2195. new nomedogm = random(sizeof(NomeDoMG));
  2196. tempodetrocademg --;
  2197. if(Encerrou > Online/3)
  2198. {
  2199. tempodetrocademg = 0;
  2200. }
  2201. for(new i=0; i<MAX_PLAYERS; i++)
  2202. {
  2203. switch(tempodetrocademg)
  2204. {
  2205. case 600, 540, 480, 420, 360, 300, 240, 180, 120:
  2206. {
  2207. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~b~%d ~w~min", NomeDoMG[nomedogm], tempodetrocademg / 60);
  2208. TextDrawSetString(Textdraw6, tempostr);
  2209. TextDrawShowForPlayer(i, Textdraw6);
  2210. }
  2211. case 1 .. 4:
  2212. {
  2213. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~r~%d ~w~s", NomeDoMG[nomedogm], tempodetrocademg);
  2214. TextDrawSetString(Textdraw6, tempostr);
  2215. TextDrawShowForPlayer(i, Textdraw6);
  2216. }
  2217. case 5:
  2218. {
  2219. SCM(i, COR_INFO, "{33CCFF}ADMIN{A9C4E4}: {FF0000}ATENÇÃO{A9C4E4}, 5 segundos para o fim desde mini-game.");
  2220. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~r~%d ~w~s", NomeDoMG[nomedogm], tempodetrocademg);
  2221. TextDrawSetString(Textdraw6, tempostr);
  2222. TextDrawShowForPlayer(i, Textdraw6);
  2223. }
  2224. case 6 .. 9:
  2225. {
  2226. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~r~%d ~w~s", NomeDoMG[nomedogm], tempodetrocademg);
  2227. TextDrawSetString(Textdraw6, tempostr);
  2228. TextDrawShowForPlayer(i, Textdraw6);
  2229. }
  2230. case 10:
  2231. {
  2232. SCM(i, COR_INFO, "{33CCFF}ADMIN{A9C4E4}: {FF0000}ATENÇÃO{A9C4E4}, 10 segundos para o fim desde mini-game.");
  2233. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~r~%d ~w~s", NomeDoMG[nomedogm], tempodetrocademg);
  2234. TextDrawSetString(Textdraw6, tempostr);
  2235. TextDrawShowForPlayer(i, Textdraw6);
  2236. }
  2237. case 11 .. 14:
  2238. {
  2239. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~r~%d ~w~s", NomeDoMG[nomedogm], tempodetrocademg);
  2240. TextDrawSetString(Textdraw6, tempostr);
  2241. TextDrawShowForPlayer(i, Textdraw6);
  2242. }
  2243. case 15:
  2244. {
  2245. SCM(i, COR_INFO, "{33CCFF}ADMIN{A9C4E4}: {FF0000}ATENÇÃO{A9C4E4}, 15 segundos para o fim desde mini-game.");
  2246. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~r~%d ~w~s", NomeDoMG[nomedogm], tempodetrocademg);
  2247. TextDrawSetString(Textdraw6, tempostr);
  2248. TextDrawShowForPlayer(i, Textdraw6);
  2249. }
  2250. case 16 .. 30:
  2251. {
  2252. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~y~%d ~w~s", NomeDoMG[nomedogm], tempodetrocademg);
  2253. TextDrawSetString(Textdraw6, tempostr);
  2254. TextDrawShowForPlayer(i, Textdraw6);
  2255. }
  2256. case 31 .. 45:
  2257. {
  2258. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~g~%d ~w~s", NomeDoMG[nomedogm], tempodetrocademg);
  2259. TextDrawSetString(Textdraw6, tempostr);
  2260. TextDrawShowForPlayer(i, Textdraw6);
  2261. }
  2262. case 46 .. 60:
  2263. {
  2264. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~b~%d ~w~s", NomeDoMG[nomedogm], tempodetrocademg);
  2265. TextDrawSetString(Textdraw6, tempostr);
  2266. TextDrawShowForPlayer(i, Textdraw6);
  2267. }
  2268. case 0:
  2269. {
  2270. format(tempostr, sizeof(tempostr), "MINIGAME: ~b~%s~n~~w~TEMPO RESTANTE: ~b~%d ~w~s", NomeDoMG[nomedogm], tempodetrocademg);
  2271. TextDrawSetString(Textdraw6, tempostr);
  2272. TextDrawShowForPlayer(i, Textdraw6);
  2273. LimparChat(i, 125);
  2274. SCM(i, COR_INFO, "{33CCFF}ADMIN{A9C4E4}: O próximo Mini-Game já foi escolhido. Boa sorte!");
  2275. format(string, sizeof(string), "changemode %s", MiniGames[outromg]);
  2276. getdate(v[0], v[1], v[2]);
  2277. gettime(v[3], v[4], v[5]);
  2278. print("\n _________________________________________________________ ");
  2279. print("| |");
  2280. print("| |");
  2281. printf("| Mudando para o MiniGame: %s |", MiniGames[outromg]);
  2282. print("| |");
  2283. print("|_________________________________________________________|\n");
  2284. SendRconCommand(string);
  2285. }
  2286. }
  2287. }
  2288. return 1;
  2289. }
  2290.  
  2291. public FimDeEscolha()
  2292. {
  2293. MGComecou = 1;
  2294. return 1;
  2295. }
  2296.  
  2297. /*public Espectador(playerid)
  2298. {
  2299. if(Espectando[playerid] > 0)
  2300. {
  2301. TogglePlayerControllable(playerid, 0);
  2302. TogglePlayerSpectating(playerid, 1);
  2303. }
  2304. if(IsPlayerInAnyVehicle(IDAleatorio()))
  2305. {
  2306. new carid = GetPlayerVehicleID(IDAleatorio());
  2307. PlayerSpectateVehicle(playerid, carid);
  2308. }
  2309. else
  2310. {
  2311. PlayerSpectatePlayer(playerid, IDAleatorio());
  2312. }
  2313. if(GetPlayerInterior(IDAleatorio()) == 0)
  2314. {
  2315. SetPlayerInterior(playerid,0);
  2316. }
  2317. else if(GetPlayerInterior(IDAleatorio()) > 0)
  2318. {
  2319. SetPlayerInterior(playerid,GetPlayerInterior(IDAleatorio()));
  2320. }
  2321. return 1;
  2322. }
  2323.  
  2324.  
  2325. stock IDAleatorio()
  2326. {
  2327. new IDa = random(MAX_PLAYERS);
  2328.  
  2329. if(IsPlayerConnected(IDa)) return IDa;
  2330.  
  2331. else
  2332. {
  2333. return IDAleatorio();
  2334. }
  2335. }*/
  2336.  
  2337. stock SpectateRandomPlayer(playerid)
  2338. {
  2339. Spec: new rand = random(GetMaxPlayers());
  2340. if(!IsPlayerConnected(playerid)) goto Spec;
  2341. if(IsPlayerInAnyVehicle(rand))
  2342. {
  2343. PlayerSpectatePlayer(playerid,rand);
  2344. }
  2345. else
  2346. {
  2347. PlayerSpectateVehicle(playerid,GetPlayerVehicleID(rand));
  2348. }
  2349. return 0x01;
  2350. }
  2351.  
  2352. public ProcessGameTime(playerid)
  2353. {
  2354. new string[128];
  2355. gettime(i_ServerHours, i_ServerMinutes, i_ServerSeconds);
  2356. getdate(i_ServerYears, i_ServerMonths, i_ServerDays);
  2357. format(string, sizeof string, "%02d", i_ServerHours); // Horas
  2358. TextDrawSetString(Textdraw0, string);
  2359. format(string, sizeof string, ":%02d", i_ServerMinutes); // Minutos
  2360. TextDrawSetString(Textdraw1, string);
  2361. format(string, sizeof string, ":%02d", i_ServerSeconds); // Segundos
  2362. TextDrawSetString(Textdraw2, string);
  2363. format(string, sizeof string, "%02d", i_ServerDays); // Dias
  2364. TextDrawSetString(Textdraw3, string);
  2365. format(string, sizeof string, "/%02d", i_ServerMonths); // Meses
  2366. TextDrawSetString(Textdraw4, string);
  2367. format(string, sizeof string, "/%02d", i_ServerYears); // Anos
  2368. TextDrawSetString(Textdraw5, string);
  2369. }
  2370.  
  2371. stock ArmaDoPlayer(playerid)
  2372. {
  2373. new armastr[30];
  2374. new arma;
  2375. arma = GetPlayerWeapon(playerid);
  2376. if(arma == 38) { armastr = "Minigun"; }
  2377. else if(arma == 40) { armastr = "Detonador"; }
  2378. else if(arma == 36) { armastr = "Lança missil RPG"; }
  2379. else if(arma == 35) { armastr = "Lança missil"; }
  2380. else if(arma == 16) { armatext = "Granada"; }
  2381. else if(arma == 18) { armastr = "Coctel Molotov"; }
  2382. else if(arma == 22) { armastr = "Pistola de Duas mãos 9mm"; }
  2383. else if(arma == 26) { armastr = "Cano Serrado"; }
  2384. else if(arma == 27) { armastr = "Escopeta de Combate"; }
  2385. else if(arma == 28) { armastr = "Micro Uzi"; }
  2386. else if(arma == 32) { armastr = "Tec9"; }
  2387. else if(arma == 37) { armastr = "Lança Chamas"; }
  2388. else if(arma == 0) { armastr = "Desarmado"; }
  2389. else if(arma == 4) { armastr = "Faca"; }
  2390. else if(arma == 5) { armastr = "Taco de BaseBall"; }
  2391. else if(arma == 9) { armastr = "Motoserra"; }
  2392. else if(arma == 14) { armastr = "Flores"; }
  2393. else if(arma == 17) { armastr = "Granada de Gas"; }
  2394. else if(arma == 23) { armastr = "silenciador"; }
  2395. else if(arma == 16) { armastr = "Granada"; }
  2396. else if(arma == 24) { armastr = "Desert Eagle"; }
  2397. else if(arma == 25) { armastr = "ShotGun"; }
  2398. else if(arma == 29) { armastr = "MP5"; }
  2399. else if(arma == 30) { armastr = "AK-47"; }
  2400. else if(arma == 31) { armastr = "M4"; }
  2401. else if(arma == 33) { armastr = "Rifle"; }
  2402. else if(arma == 34) { armastr = "Rifle Sniper"; }
  2403. else if(arma == 41) { armastr = "Spray"; }
  2404. else if(arma == 42) { armastr = "Extintor"; }
  2405. else if(arma == 46) { armastr = "Paraquedas"; }
  2406. else { armatext = "Desconhecido"; }
  2407. return arma;
  2408. }
  2409.  
  2410. forward LimparChat(playerid, lines);
  2411. public LimparChat(playerid, lines)
  2412. {
  2413. if (IsPlayerConnected(playerid))
  2414. {
  2415. for(new i=0; i<lines; i++)
  2416. {
  2417. SCM(playerid, COR_INFO, "");
  2418. }
  2419. }
  2420. return 1;
  2421. }
  2422.  
  2423. forward OcultarCMDINV(playerid);
  2424. public OcultarCMDINV(playerid)
  2425. {
  2426. TextDrawHideForPlayer(playerid, Textdraw7);
  2427. return 1;
  2428. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement