Advertisement
Guest User

T-Admin v1.1

a guest
Aug 15th, 2016
768
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.62 KB | None | 0 0
  1. // T-Admin v1, criado por Antonio Rodrigues.
  2. #include <a_samp>
  3. #include <dof2>
  4. #include <zcmd>
  5. #include <sscanf2>
  6.  
  7. #define COR_CINZA 0xC0C0C0AA
  8. #define COR_AVISO 0xCD5C5CAA
  9. #define COR_AZULBB 0xCCCCFFFF
  10.  
  11. #define DIALOG_NICK ( 0 )
  12.  
  13. enum
  14. {
  15. MODERADOR,
  16. ADMINISTRADOR,
  17. ADMINISTRADOR_GERAL
  18. }
  19. new pAdmin[MAX_PLAYERS];
  20. new bool: Trabalhando[MAX_PLAYERS];
  21. new bool: MudarNick[MAX_PLAYERS];
  22. new bool: Muted[MAX_PLAYERS];
  23. new String[200];
  24.  
  25. public OnFilterScriptInit()
  26. {
  27. print("\n • T-Admin v1 carregado com sucesso. \n");
  28. return true;
  29. }
  30.  
  31. public OnFilterScriptExit()
  32. {
  33. return true;
  34. }
  35.  
  36. public OnPlayerConnect(playerid)
  37. {
  38. new file[70];
  39.  
  40. Trabalhando[playerid] = false;
  41. MudarNick[playerid] = false;
  42. Muted[playerid] = false;
  43.  
  44. format(file, sizeof file, "T-Admin/%s.ini", Nome(playerid));
  45. pAdmin[playerid] = DOF2_GetInt(file, "Level");
  46. return true;
  47. }
  48.  
  49. public OnPlayerDisconnect(playerid)
  50. {
  51. new file[70];
  52. format(file, sizeof file, "T-Admin/%s.ini", Nome(playerid));
  53. DOF2_SetInt(file, "Level", pAdmin[playerid]);
  54. DOF2_SaveFile();
  55. return true;
  56. }
  57.  
  58. public OnPlayerText(playerid, text[])
  59. {
  60. if(Muted[playerid])
  61. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não pode falar, um administrador(a) lhe mutou.");
  62. return false;
  63. }
  64.  
  65. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  66. {
  67. switch( dialogid )
  68. {
  69. case DIALOG_NICK:
  70. {
  71. if(response)
  72. {
  73. new file0[70];
  74. new file1[70];
  75. format(file0, sizeof file0, "T-Admin/%s.ini", Nome(playerid));
  76. format(file1, sizeof file1, "T-Admin/%s.ini", inputtext);
  77. if(DOF2_FileExists(file1))
  78. {
  79. SendClientMessage(playerid, COR_CINZA, "ERRO: Este nome já está sendo utilizado.");
  80. cmd_mudarnick(playerid);
  81. }
  82. DOF2_RenameFile(file0, file1);
  83. SetPlayerName(playerid, inputtext);
  84. MudarNick[playerid] = false;
  85. }
  86. }
  87. }
  88. return true;
  89. }
  90.  
  91. // ============================= [ COMANDOS ] =============================== //
  92. // Player:
  93. CMD:admins(playerid)
  94. {
  95. new adminLVL[70];
  96. SendClientMessage(playerid, 0xFFFF00AA, "Admins Online:");
  97. for(new i; i < MAX_PLAYERS; i++)
  98. {
  99. switch(pAdmin[playerid])
  100. {
  101. case 1: adminLVL = "Moderador";
  102. case 2: adminLVL = "Administrador";
  103. case 3: adminLVL = "Administrador Geral";
  104. }
  105. if(pAdmin[playerid] > 0)
  106. {
  107. format(String, sizeof String, "[%s] %s: %s[ID:%d]", Trabalhando ? ("TRABALHANDO") : ("JOGANDO"), adminLVL, Nome(i), i);
  108. SendClientMessage(playerid, 0xFFFFAA, String);
  109. }
  110. }
  111. return true;
  112. }
  113. CMD:relatorio(playerid, params[])
  114. {
  115. new adm = 0;
  116. new relato[300];
  117. for(new i; i < MAX_PLAYERS; i++)
  118. {
  119. if(pAdmin[playerid] > 0)
  120. {
  121. adm++;
  122. }
  123. }
  124. if(!adm)
  125. return SendClientMessage(playerid, COR_CINZA, "ERRO: Não há administradores(as) online.");
  126. if(sscanf(params, "s", relato))
  127. return SendClientMessage(playerid, COR_CINZA, "Use: /relatorio [mensagem]");
  128. format(String, sizeof String, "[>>] Relatorio de %s[ID:%d] [<<]: %s.", Nome(playerid), playerid, relato);
  129. for(new i = 0; i < MAX_PLAYERS; i++)
  130. {
  131. if(pAdmin[i] > 0)
  132. {
  133. SendClientMessage(i, 0x00FFFFAA, String);
  134. }
  135. }
  136. SendClientMessage(playerid, COR_CINZA, "[>>] Relatorio enviado com sucesso, aguarde um administrador(a) responder..");
  137. return true;
  138. }
  139. CMD:mudarnick(playerid)
  140. {
  141. if(!MudarNick[playerid])
  142. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está autorizado a mudar de nome.");
  143. ShowPlayerDialog(playerid, DIALOG_NICK, DIALOG_STYLE_INPUT, "Digite abaixo o seu novo nome:", "\n", "Confirmar", "Cancelar");
  144. return true;
  145. }
  146. // Moderador:
  147. CMD:ajudaadmin(playerid) return cmd_aa(playerid);
  148. CMD:aa(playerid)
  149. {
  150. SendClientMessage(playerid, 0xFFFF00, "Comandos da Administração:");
  151. SendClientMessage(playerid, 0xFFFFAA, "- MODERADOR: (/a)dminchat, /trabalhar, /kick, /ir, /trazer, /mute, /unmute.");
  152. SendClientMessage(playerid, 0xFFFFAA, "- ADMINISTRADOR: /dararma, /removerarmas, /dardinheiro, /setskin, /autorizarnick");
  153. SendClientMessage(playerid, 0xFFFFAA, "- ADMINISTRADOR GERAL: /daradmin, /criarcarro");
  154. SendClientMessage(playerid, COR_CINZA, "T-Admin v1. Desenvolvido por Antonio Rodrigues.");
  155. return true;
  156. }
  157. CMD:mute(playerid, params[])
  158. {
  159. new id;
  160. new reason[74];
  161. if(pAdmin[playerid] < MODERADOR)
  162. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  163. if(!Trabalhando[playerid])
  164. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  165. if(sscanf(params, "us", id, reason))
  166. return SendClientMessage(playerid, COR_CINZA, "Use: /mute [playerid] [reason]");
  167. if(!IsPlayerConnected(id))
  168. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador está offline.");
  169. Muted[id] = true;
  170. format(String, sizeof String, "O Administrador(a) %s lhe mutou, motivo: %s.", Nome(playerid), reason);
  171. SendClientMessage(id, COR_CINZA, String);
  172. format(String, sizeof String, "Você mutou o jogador %s, motivo: %s.", Nome(id), reason);
  173. SendClientMessage(playerid, COR_CINZA, String);
  174. return true;
  175. }
  176. CMD:unmute(playerid, params[])
  177. {
  178. new id;
  179. if(pAdmin[playerid] < MODERADOR)
  180. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  181. if(!Trabalhando[playerid])
  182. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  183. if(sscanf(params, "u", id))
  184. return SendClientMessage(playerid, COR_CINZA, "Use: /mute [playerid]");
  185. if(!IsPlayerConnected(id))
  186. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador está offline.");
  187. Muted[id] = false;
  188. format(String, sizeof String, "O Administrador(a) %s lhe desmutou.", Nome(playerid));
  189. SendClientMessage(id, COR_CINZA, String);
  190. format(String, sizeof String, "Você desmutou o jogador %s.", Nome(id));
  191. SendClientMessage(playerid, COR_CINZA, String);
  192. return true;
  193. }
  194. CMD:adminchat(playerid, params[]) return cmd_a(playerid, params);
  195. CMD:a(playerid, params[])
  196. {
  197. new text[300];
  198. if(pAdmin[playerid] < 1)
  199. return SendClientMessage(playerid, COR_CINZA, "Desculpe, você não tem permição para usar este comando.");
  200. if(sscanf(params, "s", text))
  201. return SendClientMessage(playerid, COR_CINZA, "Use: (/a)dminchat [text]");
  202. for(new i = 0; i < MAX_PLAYERS; i++)
  203. {
  204. if(pAdmin[i] > 0)
  205. {
  206. format(String, sizeof String, "• Admin Chat • %s(%d) diz: . *", Nome(playerid), playerid, text);
  207. SendClientMessage(i, COR_AZULBB, String);
  208. }
  209. }
  210. return true;
  211. }
  212. CMD:trabalhar(playerid)
  213. {
  214. if(pAdmin[playerid] < 1)
  215. return SendClientMessage(playerid, COR_CINZA, "Desculpe, você não tem permição para usar este comando.");
  216. Trabalhando[playerid] = Trabalhando[playerid] ? (false) : (true);
  217. format(String, sizeof String, "{FFFFFF}[ {00FFFF}>{FFFFFF} ] O Administrador(a) {00FFFF}%s{FFFFFF} acabou de %s.", Nome(playerid), Trabalhando[playerid] ? ("entrar no modo trabalho") : ("entrar no modo jogo"));
  218. SendClientMessageToAll(COR_CINZA, String);
  219. return true;
  220. }
  221. CMD:ir(playerid, params[])
  222. {
  223. new id;
  224. new Float: pos[3];
  225. if(pAdmin[playerid] < MODERADOR)
  226. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  227. if(!Trabalhando[playerid])
  228. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  229. if(sscanf(params, "i", id))
  230. return SendClientMessage(playerid, COR_CINZA, "Use: /ir [playerid]");
  231. if(!IsPlayerConnected(id))
  232. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador não está conectado ao servidor.");
  233. GetPlayerPos(id, pos[0], pos[1], pos[2]);
  234. SetPlayerPos(playerid, pos[0]+1, pos[1]+1, pos[2]+1);
  235. format(String, sizeof String, "• Você foi até o jogador %s.", Nome(id));
  236. SendClientMessage(playerid, COR_CINZA, String);
  237. return true;
  238. }
  239. CMD:trazer(playerid, params[])
  240. {
  241. new id;
  242. new Float: pos[3];
  243. if(pAdmin[playerid] < MODERADOR)
  244. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  245. if(!Trabalhando[playerid])
  246. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  247. if(sscanf(params, "i", id))
  248. return SendClientMessage(playerid, COR_CINZA, "Use: /trazer [playerid]");
  249. if(!IsPlayerConnected(id))
  250. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador não está conectado ao servidor.");
  251. GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  252. SetPlayerPos(id, pos[0]+1, pos[1]+1, pos[2]+1);
  253. format(String, sizeof String, "• Você trouxe o jogador %s.", Nome(id));
  254. SendClientMessage(playerid, COR_CINZA, String);
  255. return true;
  256. }
  257. CMD:kick(playerid, params[])
  258. {
  259. new id;
  260. new reason[128];
  261. if(pAdmin[playerid] < MODERADOR)
  262. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  263. if(!Trabalhando[playerid])
  264. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  265. if(sscanf(params, "is", id, reason))
  266. return SendClientMessage(playerid, COR_CINZA, "Use: /kick [playerid] [reason]");
  267. if(!IsPlayerConnected(id))
  268. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador não está conectado ao servidor.");
  269. format(String, sizeof String, "Punição: O Administrador(a) %s acabou de desconectar o jogador(a) %s, motivo: %s.", Nome(playerid), Nome(id));
  270. SendClientMessageToAll(COR_AVISO, String);
  271. return true;
  272. }
  273. CMD:respawnplayer(playerid, params[])
  274. {
  275. new id;
  276. if(pAdmin[playerid] < MODERADOR)
  277. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  278. if(!Trabalhando[playerid])
  279. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  280. if(sscanf(params, "i", id))
  281. return SendClientMessage(playerid, COR_CINZA, "Use: /respawnplayer [playerid]");
  282. if(!IsPlayerConnected(id))
  283. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador não está conectado ao servidor.");
  284. SpawnPlayer(id);
  285. format(String, sizeof String, "• Você colocou o jogador(a) %s devolta ao local de nascimento.", Nome(id));
  286. SendClientMessage(playerid, COR_CINZA, String);
  287. return true;
  288. }
  289. // ADMINISTRADOR:
  290. CMD:autorizarnick(playerid, params[])
  291. {
  292. new id;
  293. if(pAdmin[playerid] < ADMINISTRADOR)
  294. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  295. if(!Trabalhando[playerid])
  296. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  297. if(sscanf(params, "u", id))
  298. return SendClientMessage(playerid, COR_CINZA, "Use: /autorizarnick [playerid]");
  299. MudarNick[id] = true;
  300. format(String, sizeof String, "Você autorizou o jogador %s a mudar de nome.", Nome(id));
  301. SendClientMessage(playerid, COR_CINZA, String);
  302. format(String, sizeof String, "O Administrador(a) %s autorizou você a trocar de nome, utilizer /mudarnick.", Nome(playerid));
  303. SendClientMessage(id, COR_CINZA, String);
  304. return true;
  305. }
  306. CMD:dararma(playerid, params[])
  307. {
  308. new id;
  309. new weapon_config[2];
  310. if(pAdmin[playerid] < ADMINISTRADOR)
  311. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  312. if(!Trabalhando[playerid])
  313. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  314. if(sscanf(params, "iii", id, weapon_config[0], weapon_config[1]))
  315. return SendClientMessage(playerid, COR_CINZA, "Use: /dararma [playerid] [weaponid] [value]");
  316. if(!IsPlayerConnected(id))
  317. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador não está conectado ao servidor.");
  318. GivePlayerWeapon(id, weapon_config[0], weapon_config[1]);
  319. format(String, sizeof String, "• Você deu a arma de id %d com %d de munição para o jogador(a) %s.", weapon_config[0], weapon_config[1], Nome(id));
  320. SendClientMessage(playerid, COR_CINZA, String);
  321. return true;
  322. }
  323. CMD:removerarmas(playerid, params[])
  324. {
  325. new id;
  326. if(pAdmin[playerid] < ADMINISTRADOR)
  327. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  328. if(!Trabalhando[playerid])
  329. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  330. if(sscanf(params, "i", id))
  331. return SendClientMessage(playerid, COR_CINZA, "Use: /removerarmas [playerid]");
  332. if(!IsPlayerConnected(id))
  333. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador não está conectado ao servidor.");
  334. ResetPlayerWeapons(id);
  335. format(String, sizeof String, "• Você removeu todas as armas do jogador(a) %s.", Nome(id));
  336. SendClientMessage(playerid, COR_CINZA, String);
  337. return true;
  338. }
  339. CMD:dardinheiro(playerid, params[])
  340. {
  341. new id;
  342. new value;
  343. if(pAdmin[playerid] < ADMINISTRADOR)
  344. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  345. if(!Trabalhando[playerid])
  346. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  347. if(sscanf(params, "ii", id, value))
  348. return SendClientMessage(playerid, COR_CINZA, "Use: /dardinheiro [playerid] [value]");
  349. if(!IsPlayerConnected(id))
  350. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador não está conectado ao servidor.");
  351. GivePlayerMoney(id, value);
  352. format(String, sizeof String, "• Você deu a quantia de $%d,00 para o jogador(a) %s.", value, Nome(id));
  353. SendClientMessage(playerid, COR_CINZA, String);
  354. return true;
  355. }
  356. CMD:setskin(playerid, params[])
  357. {
  358. new id;
  359. new value;
  360. if(pAdmin[playerid] < ADMINISTRADOR)
  361. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  362. if(!Trabalhando[playerid])
  363. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  364. if(sscanf(params, "ii", id, value))
  365. return SendClientMessage(playerid, COR_CINZA, "Use: /setskin [playerid] [skin]");
  366. if(!IsPlayerConnected(id))
  367. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador não está conectado ao servidor.");
  368. SetPlayerSkin(id, value);
  369. format(String, sizeof String, "• Você colocou a skin %d no jogador(a) %s.", value, Nome(id));
  370. SendClientMessage(playerid, COR_CINZA, String);
  371. return true;
  372. }
  373. // ADMINISTRADOR GERAL:
  374. CMD:daradmin(playerid, params[])
  375. {
  376. new id;
  377. new value;
  378. if(pAdmin[playerid] < ADMINISTRADOR)
  379. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  380. if(!Trabalhando[playerid])
  381. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  382. if(sscanf(params, "ii", id, value))
  383. return SendClientMessage(playerid, COR_CINZA, "Use: /daradmin [playerid] [level]");
  384. if(!IsPlayerConnected(id))
  385. return SendClientMessage(playerid, COR_CINZA, "ERRO: Este jogador não está conectado ao servidor.");
  386. pAdmin[id] = value;
  387. SendClientMessage(id, COR_CINZA, "- Seja bem vindo a administração! Para ver seus comandos digite /ajudaadmin.");
  388. format(String, sizeof String, "• Você deu nivel de administrador %s para o jogador(a) %s.", value, Nome(id));
  389. SendClientMessage(playerid, COR_CINZA, String);
  390. return true;
  391. }
  392. CMD:criarcarro(playerid, params[])
  393. {
  394. new veh[3];
  395. if(pAdmin[playerid] < ADMINISTRADOR)
  396. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não faz parte da staff.");
  397. if(!Trabalhando[playerid])
  398. return SendClientMessage(playerid, COR_CINZA, "ERRO: Você não está no modo serivço, use /trabalhar.");
  399. if(sscanf(params, "iii", veh[0], veh[1], veh[2]))
  400. return SendClientMessage(playerid, COR_CINZA, "Use: /criarcarro [model] [color 1] [color 2]");
  401. new Float: pos[4];
  402. GetPlayerPos(playerid, pos[0], pos[1], pos[2]), GetPlayerFacingAngle(playerid, pos[3]);
  403. CreateVehicle(veh[0], pos[0], pos[1], pos[2], pos[3], veh[1], veh[2], -1);
  404. return true;
  405. }
  406. // ========================================================================== //
  407.  
  408. stock Nome(playerid)
  409. {
  410. new sendername[MAX_PLAYER_NAME];
  411. GetPlayerName(playerid, sendername, sizeof sendername);
  412. return sendername;
  413. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement