Guest User

ZAdmin System

a guest
Sep 15th, 2012
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.72 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////
  2. // ZUIUDÃO SISTEMA DE ADMIN //
  3. //////////////////////////////////////////////////////////////////////////////// */
  4. //=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  5. #include <a_samp>
  6. #include <zcmd>
  7. #include <sscanf>
  8. #include <dini>
  9.  
  10. #define DIALOG_LOGIN 47414
  11. #define DIALOG_REGISTER 58515
  12.  
  13. #define red 0xF00A0AFF
  14. #define blue 0x25A5FAFF
  15. #define green 0x009900FF
  16. #define yellow 0xFFFF00FF
  17. #define cinza 0xB5B5B5FF
  18.  
  19. #define MAX_PING 700
  20.  
  21. #pragma tabsize 0
  22.  
  23. // === Errou a senha 3x = kick ===
  24. new Tentativas[MAX_PLAYERS];
  25.  
  26. // === Playerinfo ===
  27. enum pInfo
  28. {
  29. Admin,
  30. Score,
  31. Cash
  32. };
  33. new playerinfo[MAX_PLAYERS][pInfo];
  34.  
  35. //------------------------------------------------------------------------------
  36. public OnFilterScriptInit()
  37. {
  38. print("\n--------------------------------------");
  39. print("Zuiudão Sistema de Admin Carregado!");
  40. print("--------------------------------------\n");
  41. return 1;
  42. }
  43. //------------------------------------------------------------------------------
  44. public OnPlayerConnect(playerid)
  45. {
  46. SendClientMessage(playerid,-1,"[INFORMAÇÃO]: Esse servidor utiliza um sistema de Administração de Zuiudão! ( Mais informações em forum.sa-mp.com ..)");
  47. new arquivoplayers[64], nomeplayer[MAX_PLAYER_NAME];
  48. GetPlayerName(playerid,nomeplayer,sizeof(nomeplayer));
  49. format(arquivoplayers,sizeof(arquivoplayers),"/Players/%s.txt",nomeplayer);
  50. if(dini_Exists(arquivoplayers))
  51. {
  52. SetPVarInt(playerid,"Registrado",1);
  53. SendClientMessage(playerid,red,"Você já está registrado, use /logar");
  54. TogglePlayerControllable(playerid,0);
  55. }
  56. else
  57. {
  58. SendClientMessage(playerid,red,"Você não está registrado, use /registrar");
  59. SetPVarInt(playerid,"Registrado",0);
  60. }
  61. return 1;
  62. }
  63. //------------------------------------------------------------------------------
  64. public OnPlayerDisconnect(playerid)
  65. {
  66. Salvar(playerid);
  67. return 1;
  68. }
  69. //------------------------------------------------------------------------------
  70. public OnPlayerText(playerid, text[])
  71. {
  72. if(text[0] == '@' && playerinfo[playerid][Admin] >= 1)
  73. {
  74. new string[128];
  75. format(string,sizeof(string),"Admin: %s [%d]: %s",Nome(playerid),playerid,text[1]);
  76. SendAdminMessage(blue,string);
  77. return 0;
  78. }
  79. return 1;
  80. }
  81. //------------------------------------------------------------------------------
  82. public OnPlayerRequestSpawn(playerid)
  83. {
  84. if(GetPVarInt(playerid, "Registrado") && !GetPVarInt(playerid, "Logado"))
  85. {
  86. SendClientMessage(playerid,red,"Você precisa se logar antes, para poder jogar, digite /logar.");
  87. return 0;
  88. }
  89. return 1;
  90. }
  91. //------------------------------------------------------------------------------
  92. public OnPlayerUpdate(playerid)
  93. {
  94. new ping = GetPlayerPing(playerid);
  95. new string[150];
  96. if(ping > MAX_PING)
  97. {
  98. format(string,sizeof(string),"%s Foi Kickado do Servidor por Exercer %d de ping o (Limite).",Nome(playerid),MAX_PING);
  99. SendClientMessageToAll(yellow,string);
  100. Kick(playerid);
  101. }
  102. return 1;
  103. }
  104. //------------------------------------------------------------------------------
  105. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  106. {
  107. if(dialogid == DIALOG_LOGIN)
  108. {
  109. if(response == 0)
  110. {
  111. SendClientMessage(playerid,red,"Sem se logar você não pode jogar, por isso foi kikado");
  112. Kick(playerid);
  113. }
  114. if(response == 1)
  115. {
  116. if(!strlen(inputtext))
  117. {
  118. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Seja Bem vindo, sua conta já está registrada. Digite sua senha para poder jogar","Logar","Sair");
  119. return 1;
  120. }
  121. else
  122. {
  123. Logar(playerid,inputtext);
  124. SetPVarInt(playerid,"Logado",1);
  125. return 1;
  126. }
  127. }
  128. }
  129. if(dialogid == DIALOG_REGISTER)
  130. {
  131. if(response == 0)
  132. {
  133. SendClientMessage(playerid,red,"Para se registrar use /registrar.");
  134. }
  135. if(response ==1 )
  136. {
  137. if(!strlen(inputtext))
  138. {
  139. SendClientMessage(playerid,red,"Você precisa digitar uma senha!");
  140. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registro","Seja bem vindo! Registre uma senha para poder jogar!","Registrar","Sair");
  141. return 1;
  142. }
  143. else
  144. {
  145. Registrar(playerid,inputtext);
  146. return 1;
  147. }
  148. }
  149. }
  150. return 1;
  151. }
  152. //=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  153.  
  154. CMD:relato(playerid,params[])
  155. {
  156. new relato[150],string[200];
  157. if(sscanf(params,"s",relato)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Relato <Texto>");
  158. format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Relato de: %s(%d): %s",Nome(playerid),playerid,relato);
  159. SendAdminMessage(-1,string);
  160. SendClientMessage(playerid,-1,"{FF0000}[ZAdmin]: {FFFFFF}Seu Relato Foi Enviado Com Sucesso Para a Administração Online, Aguarde Sua Resposta.");
  161. return 1;
  162. }
  163.  
  164. //=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  165. /* Comandos nivel 1: */
  166.  
  167. CMD:comandosadmin(playerid,params[])
  168. {
  169. new string[1000];
  170. if(playerinfo[playerid][Admin] < 1)
  171. {
  172. strcat(string,"{FF0000}[ZAdmin]: {FFFFFF}Administrador Level 1:\n");
  173. strcat(string,"{FFFFFF}/Ir /Trazer /Congelar /Descongelar /AvAdm");
  174. }
  175. if(playerinfo[playerid][Admin] < 2)
  176. {
  177. strcat(string,"{FF0000}[ZAdmin]: {FFFFFF}Administrador Level 2:\n");
  178. strcat(string,"{FFFFFF}/Kickar /Banir /SetarVida /SetarColete");
  179. }
  180. if(playerinfo[playerid][Admin] < 3)
  181. {
  182. strcat(string,"{FF0000}[ZAdmin]: {FFFFFF}Administrador Level 3:\n");
  183. strcat(string,"{FFFFFF}/DarAdmin");
  184. }
  185. return 1;
  186. }
  187.  
  188. CMD:ir(playerid,params[])
  189. {
  190. new id,string[150];
  191. new Float:PosX,Float:PosY,Float:PosZ;
  192. if(playerinfo[playerid][Admin] < 1) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Você precisa ser administrador para usar este comando!");
  193. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador não conectado!");
  194. if(sscanf(params,"u",id)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Ir <PlayerID>");
  195. GetPlayerPos(id,PosX,PosY,PosZ);
  196. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)SetPlayerPos(playerid,PosX,PosY,PosZ); else SetVehiclePos(GetPlayerVehicleID(playerid),PosX,PosY,PosZ);
  197. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id));
  198. SetPlayerInterior(playerid,GetPlayerInterior(id));
  199. format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Foi Até: %s",Nome(playerid),Nome(id));
  200. SendClientMessageToAll(-1,string);
  201. return 1;
  202. }
  203.  
  204. CMD:trazer(playerid,params[])
  205. {
  206. new idt,string[150];
  207. new Float:PosX,Float:PosY,Float:PosZ;
  208. if(playerinfo[playerid][Admin] < 1) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Você precisa ser administrador para usar este comando!");
  209. if(!IsPlayerConnected(idt)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador não conectado!");
  210. if(sscanf(params,"u",idt)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Trazer <PlayerID>");
  211. GetPlayerPos(playerid,PosX,PosY,PosZ);
  212. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)SetPlayerPos(idt,PosX,PosY,PosZ); else SetVehiclePos(GetPlayerVehicleID(idt),PosX,PosY,PosZ);
  213. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(idt));
  214. SetPlayerInterior(playerid,GetPlayerInterior(idt));
  215. format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Puxou Até Você: %s",Nome(playerid),Nome(idt));
  216. SendClientMessageToAll(-1,string);
  217. return 1;
  218. }
  219.  
  220. CMD:congelar(playerid,params[])
  221. {
  222. new idc,string[150];
  223. if(playerinfo[playerid][Admin] < 1) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Você precisa ser administrador para usar este comando!");
  224. if(!IsPlayerConnected(idc)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador não conectado!");
  225. if(sscanf(params,"u",idc)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Congelar <PlayerID>");
  226. TogglePlayerControllable(idc,0);
  227. format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Congelou: %s",Nome(playerid),Nome(idc));
  228. SendClientMessageToAll(-1,string);
  229. return 1;
  230. }
  231.  
  232. CMD:descongelar(playerid,params[])
  233. {
  234. new idd,string[150];
  235. if(playerinfo[playerid][Admin] < 1) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Você precisa ser administrador para usar este comando!");
  236. if(!IsPlayerConnected(idd)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador não conectado!");
  237. if(sscanf(params,"u",idd)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Descongelar <PlayerID>");
  238. TogglePlayerControllable(idd,1);
  239. format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Descongelou: %s",Nome(playerid),Nome(idd));
  240. SendClientMessageToAll(-1,string);
  241. return 1;
  242. }
  243.  
  244. CMD:avadm(playerid,params[])
  245. {
  246. new texto[500],string[550];
  247. if(playerinfo[playerid][Admin] < 1) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Você precisa ser administrador para usar este comando!");
  248. if(sscanf(params,"s",texto)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/AvAdm <Texto>");
  249. format(string,sizeof(string),"[ZAdmin]: {FF0000}Administrador: %s Diz: {FFFFFF}%s",Nome(playerid),texto);
  250. SendClientMessageToAll(-1,string);
  251. return 1;
  252. }
  253. //=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  254. /* Comandos nivel 2: */
  255.  
  256. CMD:kickar(playerid,params[])
  257. {
  258. new idk,motivo[150],string[250];
  259. if(playerinfo[playerid][Admin] < 2) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Você precisa ser administrador para usar este comando!");
  260. if(!IsPlayerConnected(idk)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador não conectado!");
  261. if(sscanf(params,"us",idk,motivo)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Kickar <PlayerID> <Motivo>");
  262. format(string,sizeof(string),"[ZAdmin]: Administrador(a): %s - Kickou: %s - Motivo: %s",Nome(playerid),Nome(idk),motivo);
  263. SendClientMessageToAll(cinza,string);
  264. Kick(idk);
  265. return 1;
  266. }
  267.  
  268. CMD:banir(playerid,params[])
  269. {
  270. new idb,motivo[150],string[250];
  271. if(playerinfo[playerid][Admin] < 2) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Você precisa ser administrador para usar este comando!");
  272. if(!IsPlayerConnected(idb)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador não conectado!");
  273. if(sscanf(params,"us",idb,motivo)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Banir <PlayerID> <Motivo>");
  274. format(string,sizeof(string),"[ZAdmin]: Administrador(a): %s - Baniu: %s - Motivo: %s",Nome(playerid),Nome(idb),motivo);
  275. SendClientMessageToAll(cinza,string);
  276. Ban(idb);
  277. return 1;
  278. }
  279.  
  280. CMD:setarvida(playerid,params[])
  281. {
  282. new idv,vida,string[150];
  283. if(playerinfo[playerid][Admin] < 2) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Você precisa ser administrador para usar este comando!");
  284. if(!IsPlayerConnected(idv)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador não conectado!");
  285. if(sscanf(params,"ud",idv,vida)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/SetarVida <PlayerID> <Quantidade de Vida>");
  286. SetPlayerHealth(playerid,vida);
  287. format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Setou Sua Vida Para: %d",Nome(playerid),vida);
  288. SendClientMessage(idv,blue,string);
  289. return 1;
  290. }
  291.  
  292. CMD:setarcolete(playerid,params[])
  293. {
  294. new idc,colete,string[150];
  295. if(playerinfo[playerid][Admin] < 2) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Você precisa ser administrador para usar este comando!");
  296. if(!IsPlayerConnected(idc)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador não conectado!");
  297. if(sscanf(params,"ud",idc,colete)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/SetarVida <PlayerID> <Quantidade de Vida>");
  298. SetPlayerHealth(playerid,colete);
  299. format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Setou Seu Colete Para: %d",Nome(playerid),colete);
  300. SendClientMessage(idc,-1,string);
  301. return 1;
  302. }
  303. //=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  304. /* Comandos nivel 3: */
  305.  
  306. CMD:daradmin(playerid,params[])
  307. {
  308. new ida,level,string[250];
  309. if(playerinfo[playerid][Admin] < 3) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Você precisa ser administrador para usar este comando!");
  310. if(!IsPlayerConnected(ida)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador não conectado!");
  311. if(sscanf(params,"ud",ida,level)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/DarAdmin <PlayerID> <Level de 1-3>");
  312. playerinfo[ida][Admin] = level;
  313. format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Vamos dar os parabéns á %s Agora é um Administrador(a) Level %d",Nome(ida),level);
  314. SendClientMessageToAll(-1,string);
  315. return 1;
  316. }
  317. //=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  318. stock SendAdminMessage(cor,string[])
  319. {
  320. for(new d; d < GetMaxPlayers(); ++d)
  321. {
  322. if(IsPlayerConnected(d) && playerinfo[d][Admin] > 1)
  323. {
  324. SendClientMessage(d,cor,string);
  325. }
  326. }
  327. }
  328. //------------------------------------------------------------------------------
  329. stock Salvar(playerid)
  330. {
  331. new arquivoplayers[64];
  332. new Nome1[MAX_PLAYER_NAME];
  333. GetPlayerName(playerid,Nome1,sizeof(Nome1));
  334. format(arquivoplayers,sizeof(arquivoplayers),"/Players/%s.txt",Nome1);
  335. dini_IntSet(arquivoplayers,"Admin",playerinfo[playerid][Admin]);
  336. dini_IntSet(arquivoplayers,"Score",GetPlayerScore(playerid));
  337. dini_IntSet(arquivoplayers,"Cash",GetPlayerMoney(playerid));
  338. return 1;
  339. }
  340. //------------------------------------------------------------------------------
  341. stock Logar(playerid,key[])
  342. {
  343. new arquivoplayers[64];
  344. new Nome1[MAX_PLAYER_NAME];
  345. GetPlayerName(playerid,Nome1,sizeof(Nome1));
  346. format(arquivoplayers,sizeof(arquivoplayers),"/Players/%s.txt",Nome1);
  347. if(!strcmp(key,dini_Get(arquivoplayers,"Senha"),false))
  348. {
  349. playerinfo[playerid][Admin] = dini_Int(arquivoplayers,"Admin");
  350. SetPlayerScore(playerid,dini_Int(arquivoplayers,"Score"));
  351. GivePlayerMoney(playerid, (ResetPlayerMoney(playerid), dini_Int(arquivoplayers,"Cash")));
  352. SendClientMessage(playerid,green,"CONTA: Você foi logado com sucesso!");
  353. SetPVarInt(playerid,"Logado",1);
  354. return 1;
  355. }
  356. if(Tentativas[playerid]==2)
  357. {
  358. SendClientMessage(playerid,red,"Você foi kickado por errar a sua senha 3 vezes");
  359. Kick(playerid);
  360. return 1;
  361. }
  362. else
  363. {
  364. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Digite sua senha para poder logar.","Logar","Sair");
  365. SendClientMessage(playerid,red,"Sua senha está errada! Caso você a erre mais de 3 vezes você será kickado por motivos de segurança!");
  366. Tentativas[playerid]++;
  367. return 1;
  368. }
  369. }
  370. //------------------------------------------------------------------------------
  371. stock Registrar(playerid,key[])
  372. {
  373. new arquivoplayers[64];
  374. new Nome1[MAX_PLAYER_NAME];
  375. GetPlayerName(playerid,Nome1,sizeof(Nome1));
  376. format(arquivoplayers,sizeof(arquivoplayers),"/Players/%s.txt",Nome1);
  377. dini_Create(arquivoplayers);
  378. dini_Set(arquivoplayers,"Senha",key);
  379. SendClientMessage(playerid,green,"CONTA: Você foi registrado e logado com sucesso");
  380. dini_IntSet(arquivoplayers,"Admin",0);
  381. dini_IntSet(arquivoplayers,"Score",0);
  382. dini_IntSet(arquivoplayers,"Cash",0);
  383. return 1;
  384. }
  385. //------------------------------------------------------------------------------
  386. stock Nome(playerid)
  387. {
  388. new Name[MAX_PLAYERS];
  389. GetPlayerName(playerid,Name,sizeof(Name));
  390. return Name;
  391. }
  392. //=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  393. public OnFilterScriptExit()
  394. {
  395. print("\n--------------------------------------");
  396. print("Zuiudão Sistema de Admin Descarregado!");
  397. print("--------------------------------------\n");
  398. return 1;
  399. }
  400. //=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
Advertisement
Add Comment
Please, Sign In to add comment