Advertisement
Guest User

[FS] Sistema de Helpers by Scripter_King

a guest
Dec 4th, 2012
336
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.49 KB | None | 0 0
  1. // Sistema de Admins e Helpers by: Scripter_King [Fs]
  2. // http://www.scriptsamp.com.br/portal
  3. // http://www.scriptsamp.com.br/portal
  4. // http://www.scriptsamp.com.br/portal
  5. // http://www.scriptsamp.com.br/portal
  6. // Não Retire Creditos pf ! vlw quem não tirar...
  7.  
  8. #include <a_samp>
  9. #include <a_samp>
  10. #include <Dini>
  11. #include <dudb>
  12. #include <utils>
  13. #include <morphinc>
  14. #include <cpstream>
  15. #include <core>
  16.  
  17. //-------- Cores --------------------
  18. #define COLOR_HELPER 0x68FFC2AA
  19. #define COLOR_WHITE 0xFFFFFFAA
  20. #define COLOR_GRAD1 0xB4B5B7FF
  21. #define COLOR_GRAD2 0xBFC0C2FF
  22. #define COLOR_GREY 0xAFAFAFAA
  23. #define COLOR_ORANGE 0xFF9900AA
  24. #define COLOR_WHITE 0xFFFFFFAA
  25. #define COLOR_LIGHTRED 0xFF6347AA
  26. #define Controle TogglePlayerControllable
  27.  
  28. //------------ Forwards Man ------------------
  29. forward SendHelperMessage(color, string[]);
  30. forward ABroadCast(COLOR,const string[],level);
  31. new helperhide[MAX_PLAYERS];
  32. new helpertrampando[MAX_PLAYERS];
  33. stock PlayerName(playerid)
  34. {
  35. new Name[MAX_PLAYER_NAME];
  36. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  37. return Name;
  38. }
  39. new away[MAX_PLAYERS];
  40. new clickplay[MAX_PLAYERS];
  41. #define DIALOG_HELPER 101
  42. #define DIALOG_PAR 102
  43.  
  44. enum pInfo
  45. {
  46. pHelper,
  47. pHelperTrabalhando,
  48. pMuted
  49. };
  50. new PlayerInfo[MAX_PLAYERS][pInfo];
  51. #if defined FILTERSCRIPT
  52.  
  53. public OnFilterScriptInit()
  54. {
  55. print("\n----------------------------------");
  56. print(" || aew Man Sistema [Fs] de Admins e Helpers Carregado! by Scripter_King");
  57. print("----------------------------------\n");
  58. return 1;
  59. }
  60.  
  61. public OnFilterScriptExit()
  62. {
  63. return 1;
  64. }
  65.  
  66. #else
  67.  
  68. main()
  69. {
  70. print("\n----------------------------------");
  71. print(" || aew Man Sistema [Fs] de Admins e Helpers Desfeito! by Scripter_King");
  72. print("----------------------------------\n");
  73. }
  74.  
  75. #endif
  76.  
  77. public OnPlayerConnect(playerid)
  78. {
  79. PlayerInfo[playerid][pHelper] = 0;
  80. PlayerInfo[playerid][pHelperTrabalhando] = 0;
  81. return 1;
  82. }
  83.  
  84. public OnPlayerDisconnect(playerid, reason)
  85. {
  86. return PlayerInfo[playerid][pHelperTrabalhando] = 0;
  87. }
  88.  
  89. public OnPlayerCommandText(playerid, cmdtext[])
  90. {
  91. new sendername[MAX_PLAYER_NAME];
  92. GetPlayerName(playerid, sendername, sizeof(sendername));
  93. new giveplayer[MAX_PLAYER_NAME];
  94. new cmd[128];
  95. new tmp[128];
  96. //new giveplayerid, idx;
  97. new idx;
  98. new string[128];
  99. if (strcmp(cmd, "/helpers", true) == 0)
  100. {
  101. SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}|_____ {00FA2E}Script {FAF600}Samp {003EFA}Owna {FFFFFF}______[ {F28FEC}Helpers Online {FFFFFF}]______ {00FA2E}Script {FAF600}Samp {003EFA}Owna {FFFFFF}_____|");
  102. for(new i = 0; i <= MAX_PLAYERS; i++)
  103. {
  104. if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pHelper] > 0)
  105. {
  106. if(helperhide[i] == 0)
  107. {
  108. GetPlayerName(i, sendername, sizeof(sendername));
  109. new lolhel[20];
  110. if(PlayerInfo[i][pHelper] == 1)
  111. {
  112. lolhel = "Novato";
  113. }
  114. if(PlayerInfo[i][pHelper] == 2)
  115. {
  116. lolhel = "Experiente";
  117. }
  118. if(PlayerInfo[i][pHelper] == 3)
  119. {
  120. lolhel = "Master";
  121. }
  122. if(away[i] == 0)
  123. {
  124. if(helpertrampando[i] == 1)
  125. {
  126. format(string, 128, "{CD0000}%s{B5B5B5} | Nivel: {CD0000}[%s] {B5B5B5}(Trabalhando)", sendername, lolhel);
  127. SendClientMessage(playerid, COLOR_HELPER, string);
  128. }
  129. else
  130. {
  131. format(string, 128, "{CD0000}%s{B5B5B5} | Nivel: {CD0000}[%s] {B5B5B5}(Jogando)", sendername, lolhel);
  132. SendClientMessage(playerid, 0x58FF50AA, string);
  133. }
  134.  
  135. }
  136. else
  137. {
  138. format(string, 128, "{CD0000}%s{B5B5B5} | Nivel: {CD0000}[%s] {B5B5B5}(AFK)", sendername, lolhel);
  139. SendClientMessage(playerid, COLOR_WHITE, string);
  140. }
  141. }
  142. }
  143. }
  144. return 1;
  145. }
  146.  
  147. if(strcmp(cmd, "/avisohelper", true) == 0 || strcmp(cmd, "/avh", true) == 0)
  148. {
  149. if(IsPlayerConnected(playerid))
  150. {
  151. new length = strlen(cmdtext);
  152. while ((idx < length) && (cmdtext[idx] <= ' '))
  153. {
  154. idx++;
  155. }
  156. new offset = idx;
  157. new result[128];
  158. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  159. {
  160. result[idx - offset] = cmdtext[idx];
  161. idx++;
  162. }
  163. result[idx - offset] = EOS;
  164. if(!strlen(result))
  165. {
  166. SendClientMessage(playerid, COLOR_GRAD2, "USE: (/avh) [Texto]");
  167. return 1;
  168. }
  169. if(PlayerInfo[playerid][pHelperTrabalhando] == 0)
  170. {
  171. return SendClientMessage(playerid,COLOR_GRAD2,"Você não está em Modo de Trabalho! Use: /shelper");
  172. }
  173. if(PlayerInfo[playerid][pHelper] < 2)
  174. {
  175. return SendClientMessage(playerid,COLOR_GRAD1,"Você não tem autorização para usar este comando");
  176. }
  177. SendClientMessageToAll(COLOR_WHITE,"{FFFFFF}|_____ {00FA2E}Script {FAF600}Samp {003EFA}Owna {FFFFFF}______[ {F28FEC}Helpers Online {FFFFFF}]______ {00FA2E}Script {FAF600}Samp {003EFA}Owna {FFFFFF}_____|");
  178. if(PlayerInfo[playerid][pHelper] >= 3)
  179. {
  180. format(string, sizeof(string), "Helper Novato %s: %s", sendername, result);
  181. }
  182. else if(PlayerInfo[playerid][pHelper] >= 10)
  183. {
  184. format(string, sizeof(string), "Helper Experiente %s: %s", sendername, result);
  185. }
  186. else if(PlayerInfo[playerid][pHelper] >= 30)
  187. {
  188. format(string, sizeof(string), "Helper Master %s: %s", sendername, result);
  189. }
  190. SendClientMessageToAll(COLOR_HELPER, string);
  191. }
  192. return 1;
  193. }
  194. new giveplayerid;
  195. if(strcmp(cmd, "/congelarh", true) == 0)
  196. {
  197. if(IsPlayerConnected(playerid))
  198. {
  199. tmp = strtok(cmdtext, idx);
  200. if(!strlen(tmp))
  201. {
  202. SendClientMessage(playerid, COLOR_GRAD2, "USE: /congelarh [id]");
  203. return 1;
  204. }
  205. new playa;
  206. playa = ReturnUser(tmp);
  207. if (PlayerInfo[playerid][pHelper] >= 2)
  208. {
  209. if(helpertrampando[playerid] < 1 && PlayerInfo[playerid][pHelper] != 2)
  210. {
  211. SendClientMessage(playerid, COLOR_GRAD1, "Você não está em serviço ! (/shelper)");
  212. return 1;
  213. }
  214. if(IsPlayerConnected(playa))
  215. {
  216. if(playa != INVALID_PLAYER_ID)
  217. {
  218. if(PlayerInfo[giveplayerid][pHelper] >= 1340)
  219. {
  220. SendClientMessage(playerid, COLOR_GRAD1, "Você não pode banir um Admin Dono !");
  221. return 1;
  222. }
  223. GetPlayerName(playa, giveplayer, sizeof(giveplayer));
  224. GetPlayerName(playerid, sendername, sizeof(sendername));
  225. Controle(playa, 0);
  226. format(string, sizeof(string), "Helper: %s Congelou %s",sendername, giveplayer);
  227. printf("%s",string);
  228. if(helpertrampando[playerid] == 1 && helperhide[playerid] == 1)
  229. {
  230. format(string, sizeof(string), "Helper: %s Foi congelado por %s",giveplayer ,PlayerName(playerid));
  231. }
  232. ABroadCast(COLOR_LIGHTRED,string,1);
  233. }
  234. }
  235. }
  236. else
  237. {
  238. SendClientMessage(playerid, COLOR_GRAD1, " Você não esta autorizado a usar este comando!");
  239. }
  240. }
  241. return 1;
  242. }
  243. if(strcmp(cmd, "/descongelarh", true) == 0)
  244. {
  245. if(IsPlayerConnected(playerid))
  246. {
  247. tmp = strtok(cmdtext, idx);
  248. if(!strlen(tmp))
  249. {
  250. SendClientMessage(playerid, COLOR_GRAD2, "USE: /descongelarh [id]");
  251. return 1;
  252. }
  253. new playa;
  254. playa = ReturnUser(tmp);
  255. if (PlayerInfo[playerid][pHelper] >= 2)
  256. {
  257. if(helpertrampando[playerid] < 1 && PlayerInfo[playerid][pHelper] != 2)
  258. {
  259. SendClientMessage(playerid, COLOR_GRAD1, "Você não está em serviço ! (/shelper)");
  260. return 1;
  261. }
  262. if(IsPlayerConnected(playa))
  263. {
  264. if(playa != INVALID_PLAYER_ID)
  265. {
  266. PlayerInfo[playa][pMuted] = 0;
  267. GetPlayerName(playa, giveplayer, sizeof(giveplayer));
  268. GetPlayerName(playerid, sendername, sizeof(sendername));
  269. Controle(playa, 1);
  270. format(string, sizeof(string), "AdmCmd: %s Descongelou %s",sendername, giveplayer);
  271. printf("%s",string);
  272. if(helpertrampando[playerid] == 1 && helperhide[playerid] == 1)
  273. {
  274. format(string, sizeof(string), "Helper: %s Foi descongelado por BDR_BOT",giveplayer);
  275. }
  276. else
  277. {
  278. format(string, sizeof(string), "Helper: %s Foi descongelado por %s",giveplayer ,PlayerName(playerid));
  279. }
  280. ABroadCast(COLOR_LIGHTRED,string,1);
  281. }
  282. }
  283. }
  284. else
  285. {
  286. SendClientMessage(playerid, COLOR_GRAD1, " Você não está autorizado a usar este comando!");
  287. }
  288. }
  289. return 1;
  290. }
  291. if(strcmp(cmd, "/helperchat", true) == 0 || strcmp(cmd, "/hc", true) == 0)
  292. {
  293. if(IsPlayerConnected(playerid))
  294. {
  295. GetPlayerName(playerid, sendername, sizeof(sendername));
  296. new length = strlen(cmdtext);
  297. while ((idx < length) && (cmdtext[idx] <= ' '))
  298. {
  299. idx++;
  300. }
  301. new offset = idx;
  302. new result[126];
  303. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  304. {
  305. result[idx - offset] = cmdtext[idx];
  306. idx++;
  307. }
  308. result[idx - offset] = EOS;
  309. if(!strlen(result))
  310. {
  311. SendClientMessage(playerid, COLOR_GRAD2, "USE: (/hc) [Chat dos helpers]");
  312. return 1;
  313. }
  314. format(string, sizeof(string), "Helper %s[%d]: %s", sendername, PlayerInfo[playerid][pHelper], result);
  315. if (PlayerInfo[playerid][pHelper] >= 1)
  316. {
  317. SendHelperMessage(COLOR_HELPER, string);
  318. }
  319. else
  320. {
  321. SendClientMessage(playerid, COLOR_GRAD1, "** você não está autorizado a usar esse comando!");
  322. }
  323. }
  324. return 1;
  325. }
  326. if(strcmp(cmd,"/duvida",true) == 0 || strcmp(cmd,"/duv",true) == 0)
  327. {
  328. if(IsPlayerConnected(playerid))
  329. {
  330. new length = strlen(cmdtext);
  331. while ((idx < length) && (cmdtext[idx] <= ' '))
  332. {
  333. idx++;
  334. }
  335. new offset = idx;
  336. new result[64];
  337. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  338. {
  339. result[idx - offset] = cmdtext[idx];
  340. idx++;
  341. }
  342. result[idx - offset] = EOS;
  343. if(!strlen(result))
  344. {
  345. SendClientMessage(playerid, COLOR_GRAD2, "Use: /duvida [Texto]");
  346. return 1;
  347. }
  348. format(string, sizeof(string), "Dúvida de %s(ID:%d): %s", sendername, playerid, (result));
  349. SendHelperMessage(COLOR_HELPER, string);
  350. SendClientMessage(playerid, COLOR_GRAD2, "Sua dúvida foi enviada aos Helpers...");
  351. }
  352. return 1;
  353. }
  354. if(strcmp(cmd, "/shelper", true) == 0 || strcmp(cmd, "/trabh", true) == 0)
  355. {
  356. if(IsPlayerConnected(playerid))
  357. {
  358. if(PlayerInfo[playerid][pHelper] >= 1)
  359. {
  360. if(PlayerInfo[playerid][pHelperTrabalhando] == 0)
  361. {
  362. SendClientMessageToAll(COLOR_WHITE,"|______ {00FA2E}Script {FAF600}Samp {003EFA}Owna {FFFFFF}_______[ {FFD900}Admins Online {FFFFFF}]_______ {00FA2E}Script {FAF600}Samp {003EFA}Owna {FFFFFF}______|");
  363. format(string, 256, "Helper %s [%d] está trabalhando, use /helpers para mais informações.",sendername, playerid);
  364. SendClientMessageToAll(COLOR_HELPER, string);
  365. PlayerInfo[playerid][pHelperTrabalhando] = 1;
  366. }
  367. else if(PlayerInfo[playerid][pHelperTrabalhando] == 1)
  368. {
  369. SendClientMessageToAll(COLOR_WHITE,"|______ {00FA2E}Script {FAF600}Samp {003EFA}Owna {FFFFFF}_______[ {FFD900}Admins Online {FFFFFF}]_______ {00FA2E}Script {FAF600}Samp {003EFA}Owna {FFFFFF}______|");
  370. format(string, 256, "Helper %s [%d] está jogando, use /helpers para mais informações.",sendername, playerid);
  371. SendClientMessageToAll(COLOR_HELPER, string);
  372. PlayerInfo[playerid][pHelperTrabalhando] = 0;
  373. }
  374. }
  375. else
  376. {
  377. SendClientMessage(playerid, COLOR_GRAD1, "** você não está autorizado a usar esse comando!");
  378. }
  379. }
  380. return 1;
  381. }
  382. if(strcmp(cmd, "/irh", true) == 0)
  383. {
  384. if(IsPlayerConnected(playerid))
  385. {
  386. tmp = strtok(cmdtext, idx);
  387. if(!strlen(tmp))
  388. {
  389. SendClientMessage(playerid, COLOR_GRAD2, "USE: /irh [ID/Nome]");
  390. return 1;
  391. }
  392. giveplayerid = ReturnUser(tmp);
  393. new Float:givepx,Float:givepy,Float:givepz,Float:givepang;
  394. GetPlayerPos(giveplayerid, givepx, givepy, givepz);
  395. GetPlayerFacingAngle(giveplayerid,givepang);
  396. if(IsPlayerConnected(giveplayerid))
  397. {
  398. if(giveplayerid != INVALID_PLAYER_ID)
  399. {
  400. if(PlayerInfo[playerid][pHelper] >= 10)
  401. {
  402. if(PlayerInfo[playerid][pHelperTrabalhando] == 0)
  403. {
  404. return SendClientMessage(playerid,COLOR_GRAD2,"Você não está em modo de trabalho! Use: /shelper");
  405. }
  406. SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid));
  407. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(giveplayerid));
  408. SetPlayerPos(playerid,givepx,givepy+2, givepz);
  409. SetPlayerFacingAngle(playerid,givepang);
  410. }
  411. else
  412. {
  413. SendClientMessage(playerid, COLOR_GRAD1, "** você não está autorizado a usar esse comando!");
  414. }
  415. }
  416. }
  417. else
  418. {
  419. format(string, sizeof(string), "O jogador não está conectado!", giveplayerid);
  420. SendClientMessage(playerid, COLOR_GRAD1, string);
  421. }
  422. }
  423. return 1;
  424. }
  425. if(strcmp(cmd, "/darhelper", true) == 0)
  426. {
  427. if(IsPlayerConnected(playerid))
  428. {
  429. tmp = strtok(cmdtext, idx);
  430. if(!strlen(tmp))
  431. {
  432. SendClientMessage(playerid, COLOR_GRAD2, "USE: /darhelper [player/nick] [level 1 á 3]");
  433. return 1;
  434. }
  435. new playa;
  436. new level;
  437. playa = ReturnUser(tmp);
  438. tmp = strtok(cmdtext, idx);
  439. level = strval(tmp);
  440. if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pHelper] >= 3)// Aqui está Para Helper lv 3 dar Helper, Para Admin dar Mude pHelper.
  441. {
  442. if(IsPlayerConnected(playa))
  443. {
  444. if(playa != INVALID_PLAYER_ID)
  445. {
  446. if(level < 0 || level > 30) { SendClientMessage(playerid, COLOR_GREY, "** Nível não pode ser inferior a 0 ou acima de 3!"); return 1; }
  447. GetPlayerName(playa, giveplayer, sizeof(giveplayer));
  448. PlayerInfo[playa][pHelper] = level;
  449. format(string, sizeof(string), "** Você definiu o nivel de helper de %s[ID:%d] para [%d]",giveplayer,playa,level);
  450. SendClientMessage(playerid, COLOR_ORANGE, string);
  451. format(string, sizeof(string), "** Admin %s[ID:%d] definiu seu nivel de helper para [%d]",sendername,playerid,level);
  452. SendClientMessage(playa, COLOR_ORANGE, string);
  453. format(string, sizeof(string), "[Aviso]%s[ID %d] é o novo helper do servidor",giveplayer,playa);
  454. SendHelperMessage(COLOR_HELPER,string);
  455. format(string, sizeof(string), "~b~Parabens %s voce agora e um Helper",giveplayer);
  456. GameTextForPlayer(playa, string, 4500,3);
  457. }
  458. }
  459. }
  460. else
  461. {
  462. SendClientMessage(playerid, COLOR_GRAD1, "** você não está autorizado a usar esse comando!");
  463. }
  464. }
  465. return 1;
  466. }
  467. return 0;
  468. }
  469. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  470. {
  471. new string[128];
  472. new sendername[MAX_PLAYER_NAME];
  473. GetPlayerName(playerid, sendername, sizeof(sendername));
  474. if(dialogid == DIALOG_PAR)
  475. {
  476. if(response)
  477. {
  478. format(string, sizeof(string), "Helper %s[ID %d]: %s",sendername,playerid,strlen(inputtext));
  479. SendClientMessage(clickplay[playerid], COLOR_GREY,string);
  480. }
  481. }
  482. if(dialogid == DIALOG_HELPER)
  483. {
  484. if(response)
  485. {
  486. if(listitem == 0)
  487. {
  488. format(string, sizeof(string), "/irh %d",clickplay[playerid]);
  489. OnPlayerCommandText(playerid,string);
  490. }
  491. else if(listitem == 2)
  492. {
  493. ShowPlayerDialog(playerid, DIALOG_PAR,DIALOG_STYLE_INPUT,"Mensagem","Digite sua mensagem abaixo","Ok","Cancel");
  494. }
  495. }
  496. }
  497. return 1;
  498. }
  499. strtok(const string[], &index)
  500. {
  501. new length = strlen(string);
  502. while ((index < length) && (string[index] <= ' '))
  503. {
  504. index++;
  505. }
  506.  
  507. new offset = index;
  508. new result[20];
  509. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  510. {
  511. result[index - offset] = string[index];
  512. index++;
  513. }
  514. result[index - offset] = EOS;
  515. return result;
  516. }
  517. public ABroadCast(COLOR,const string[],level)
  518. {
  519. for(new i = 0; i < MAX_PLAYERS; i++)
  520. {
  521. if(IsPlayerConnected(i))
  522. {
  523. if (PlayerInfo[i][pHelper] >= level)
  524. {
  525. SendClientMessage(i, COLOR, string);
  526. printf("%s", string);
  527. }
  528. }
  529. }
  530. return 1;
  531. }
  532. public SendHelperMessage(color, string[])
  533. {
  534. for(new i = 0; i < MAX_PLAYERS; i++)
  535. {
  536. if(IsPlayerConnected(i))
  537. {
  538. if(PlayerInfo[i][pHelper] >= 1)
  539. {
  540. SendClientMessage(i, color, string);
  541. }
  542. }
  543. }
  544. printf("[Helper]%s", string);
  545. }
  546. #pragma unused ret_memcpy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement