Advertisement
Guest User

Untitled

a guest
Jul 21st, 2011
3,408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.89 KB | None | 0 0
  1. #include <a_samp>
  2. #include <utils>
  3.  
  4. #define COLOR_GRAD1 0xB4B5B7FF
  5. #define COLOR_GRAD2 0xBFC0C2FF
  6. #define COLOR_GREY 0xAFAFAFAA
  7. #define COLOR_ORANGE 0xFF9900AA
  8. #define COLOR_WHITE 0xFFFFFFAA
  9. #define COLOR_HELPER 0x00D087AA
  10. forward SendHelperMessage(color, string[]);
  11. forward SendHelperAdminMessage(color, string[]);
  12. new anhelper[MAX_PLAYERS];
  13. new meavaliehelper[MAX_PLAYERS];
  14. new meavalie[MAX_PLAYERS];
  15. new clickplay[MAX_PLAYERS];
  16. forward TempoAnHelper(playerid);
  17. forward TempoAvalieHelper(playerid);
  18. #define DIALOG_MEAVALIE 100
  19. #define DIALOG_HELPER 101
  20. #define DIALOG_PAR 102
  21.  
  22. #define TEMPO_AN 900000 // 15 minutos
  23. #define TEMPO_MEAVALIE 900000 //15 minutos
  24. enum pInfo
  25. {
  26. pAdmin,
  27. pHelper,
  28. pHelperTrabalhando
  29. };
  30. new PlayerInfo[MAX_PLAYERS][pInfo];
  31. #if defined FILTERSCRIPT
  32.  
  33. public OnFilterScriptInit()
  34. {
  35. print("\n----------------------------------");
  36. print(" sistema de Helpers por [iPs]Bohm");
  37. print("----------------------------------\n");
  38. return 1;
  39. }
  40.  
  41. public OnFilterScriptExit()
  42. {
  43. return 1;
  44. }
  45.  
  46. #else
  47.  
  48. main()
  49. {
  50. print("\n----------------------------------");
  51. print(" sistema de Helpers por [iPs]Bohm");
  52. print("----------------------------------\n");
  53. }
  54.  
  55. #endif
  56.  
  57. public OnPlayerConnect(playerid)
  58. {
  59. PlayerInfo[playerid][pHelper] = 0;
  60. PlayerInfo[playerid][pHelperTrabalhando] = 0;
  61. return 1;
  62. }
  63.  
  64. public OnPlayerDisconnect(playerid, reason)
  65. {
  66. return PlayerInfo[playerid][pHelperTrabalhando] = 0;
  67. }
  68.  
  69. public OnPlayerCommandText(playerid, cmdtext[])
  70. {
  71. new sendername[MAX_PLAYER_NAME];
  72. GetPlayerName(playerid, sendername, sizeof(sendername));
  73. new giveplayer[MAX_PLAYER_NAME];
  74. new cmd[128];
  75. new tmp[128];
  76. //new giveplayerid, idx;
  77. new idx;
  78. new string[128];
  79. if (strcmp(cmd, "/helpers", true) == 0)
  80. {
  81. SendClientMessage(playerid, COLOR_GREY, "||--||--|| Helpers Online ||--||--||");
  82. for(new i = 0; i <= MAX_PLAYERS; i++)
  83. {
  84. if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pHelper] > 0)
  85. {
  86. if(PlayerInfo[i][pHelperTrabalhando] == 1)
  87. {
  88. GetPlayerName(i, sendername, sizeof(sendername));
  89. if(PlayerInfo[i][pHelper] == 1)
  90. {
  91. format(string, 256, "Nome: %s [Helper Inicante] (Trabalhando)", sendername);
  92. SendClientMessage(playerid, COLOR_HELPER, string);
  93. }
  94. if(PlayerInfo[i][pHelper] >= 2 && PlayerInfo[i][pAdmin] < 10)
  95. {
  96. format(string, 256, "Nome: %s [Helper] (Trabalhando)", sendername);
  97. SendClientMessage(playerid, COLOR_HELPER, string);
  98. }
  99. if(PlayerInfo[i][pHelper] >= 10 && PlayerInfo[i][pAdmin] < 30)
  100. {
  101. format(string, 256, "Nome: %s [Helper Master] (Trabalhando)", sendername);
  102. SendClientMessage(playerid, COLOR_HELPER, string);
  103. }
  104. if(PlayerInfo[i][pHelper] >= 30)
  105. {
  106. format(string, 256, "Nome: %s [Helper Lider] (Trabalhando)", sendername);
  107. SendClientMessage(playerid, COLOR_HELPER, string);
  108. }
  109. }
  110. else
  111. {
  112. GetPlayerName(i, sendername, sizeof(sendername));
  113. if(PlayerInfo[i][pHelper] == 1)
  114. {
  115. format(string, 256, "Nome: %s [Helper Inicante] (Jogando)", sendername);
  116. SendClientMessage(playerid, COLOR_HELPER, string);
  117. }
  118. if(PlayerInfo[i][pHelper] >= 2 && PlayerInfo[i][pAdmin] < 10)
  119. {
  120. format(string, 256, "Nome: %s [Helper] (Jogando)", sendername);
  121. SendClientMessage(playerid, COLOR_HELPER, string);
  122. }
  123. if(PlayerInfo[i][pHelper] >= 10 && PlayerInfo[i][pAdmin] < 30)
  124. {
  125. format(string, 256, "Nome: %s [Helper Master] (Jogando)", sendername);
  126. SendClientMessage(playerid, COLOR_HELPER, string);
  127. }
  128. if(PlayerInfo[i][pHelper] >= 30)
  129. {
  130. format(string, 256, "Nome: %s [Helper Lider] (Jogando)", sendername);
  131. SendClientMessage(playerid, COLOR_HELPER, string);
  132. }
  133. }
  134. }
  135. }
  136. return 1;
  137. }
  138. if(strcmp(cmd, "/avisohelper", true) == 0 || strcmp(cmd, "/avh", true) == 0)
  139. {
  140. if(IsPlayerConnected(playerid))
  141. {
  142. new length = strlen(cmdtext);
  143. while ((idx < length) && (cmdtext[idx] <= ' '))
  144. {
  145. idx++;
  146. }
  147. new offset = idx;
  148. new result[128];
  149. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  150. {
  151. result[idx - offset] = cmdtext[idx];
  152. idx++;
  153. }
  154. result[idx - offset] = EOS;
  155. if(!strlen(result))
  156. {
  157. SendClientMessage(playerid, COLOR_GRAD2, "USE: (/[av]iso[h]elper) [mensagem]");
  158. return 1;
  159. }
  160. if(PlayerInfo[playerid][pHelperTrabalhando] == 0)
  161. {
  162. return SendClientMessage(playerid,COLOR_GRAD2,"Você não está em trabalho!Use: /ha");
  163. }
  164. if(PlayerInfo[playerid][pHelper] < 2)
  165. {
  166. return SendClientMessage(playerid,COLOR_GRAD1,"Você não tem autorização para usar este comando");
  167. }
  168. if(anhelper[playerid] == 1)
  169. {
  170. return SendClientMessage(playerid,COLOR_GRAD1,"Você ainda não pode fazer um novo anuncio!Espere...");
  171. }
  172. SendClientMessageToAll(COLOR_WHITE,"||-||Aviso dos Helpers||-||");
  173. if(PlayerInfo[playerid][pHelper] >= 3)
  174. {
  175. format(string, sizeof(string), "[HELPER]: Helper %s: %s", sendername, result);
  176. }
  177. else if(PlayerInfo[playerid][pHelper] >= 10)
  178. {
  179. format(string, sizeof(string), "[HELPER]: Helper Master %s: %s", sendername, result);
  180. }
  181. else if(PlayerInfo[playerid][pHelper] >= 30)
  182. {
  183. format(string, sizeof(string), "[HELPER]: Helper Lider %s: %s", sendername, result);
  184. }
  185. SendClientMessageToAll(COLOR_HELPER, string);
  186. anhelper[playerid] = 1;
  187. SetTimer("TempoAnHelper",TEMPO_AN,false);
  188. }
  189. return 1;
  190. }
  191. if(strcmp(cmd, "/ahelperchat", true) == 0 || strcmp(cmd, "/ahc", true) == 0)
  192. {
  193. if(IsPlayerConnected(playerid))
  194. {
  195. GetPlayerName(playerid, sendername, sizeof(sendername));
  196. new length = strlen(cmdtext);
  197. while ((idx < length) && (cmdtext[idx] <= ' '))
  198. {
  199. idx++;
  200. }
  201. new offset = idx;
  202. new result[126];
  203. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  204. {
  205. result[idx - offset] = cmdtext[idx];
  206. idx++;
  207. }
  208. result[idx - offset] = EOS;
  209. if(!strlen(result))
  210. {
  211. SendClientMessage(playerid, COLOR_GRAD2, "USE: (/ahc) [Chat dos helpers e admins]");
  212. return 1;
  213. }
  214. if (PlayerInfo[playerid][pHelper] >= 1)
  215. {
  216. format(string, sizeof(string), "Helper %s[%d]: %s", sendername, PlayerInfo[playerid][pHelper], result);
  217. SendHelperAdminMessage(COLOR_HELPER, string);
  218. }
  219. else if (PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
  220. {
  221. format(string, sizeof(string), "Helper %s[%d]: %s", sendername, PlayerInfo[playerid][pHelper], result);
  222. SendHelperAdminMessage(COLOR_HELPER, string);
  223. }
  224. else
  225. {
  226. SendClientMessage(playerid, COLOR_GRAD1, "** você não está autorizado a usar esse comando!");
  227. }
  228. }
  229. return 1;
  230. }
  231. if(strcmp(cmd, "/helperchat", true) == 0 || strcmp(cmd, "/hc", true) == 0)
  232. {
  233. if(IsPlayerConnected(playerid))
  234. {
  235. GetPlayerName(playerid, sendername, sizeof(sendername));
  236. new length = strlen(cmdtext);
  237. while ((idx < length) && (cmdtext[idx] <= ' '))
  238. {
  239. idx++;
  240. }
  241. new offset = idx;
  242. new result[126];
  243. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  244. {
  245. result[idx - offset] = cmdtext[idx];
  246. idx++;
  247. }
  248. result[idx - offset] = EOS;
  249. if(!strlen(result))
  250. {
  251. SendClientMessage(playerid, COLOR_GRAD2, "USE: (/hc) [Chat dos helpers]");
  252. return 1;
  253. }
  254. format(string, sizeof(string), "Helper %s[%d]: %s", sendername, PlayerInfo[playerid][pHelper], result);
  255. if (PlayerInfo[playerid][pHelper] >= 1)
  256. {
  257. SendHelperMessage(COLOR_HELPER, string);
  258. }
  259. else
  260. {
  261. SendClientMessage(playerid, COLOR_GRAD1, "** você não está autorizado a usar esse comando!");
  262. }
  263. }
  264. return 1;
  265. }
  266. if(strcmp(cmd,"/duvida",true) == 0 || strcmp(cmd,"/duv",true) == 0)
  267. {
  268. if(IsPlayerConnected(playerid))
  269. {
  270. new length = strlen(cmdtext);
  271. while ((idx < length) && (cmdtext[idx] <= ' '))
  272. {
  273. idx++;
  274. }
  275. new offset = idx;
  276. new result[64];
  277. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  278. {
  279. result[idx - offset] = cmdtext[idx];
  280. idx++;
  281. }
  282. result[idx - offset] = EOS;
  283. if(!strlen(result))
  284. {
  285. SendClientMessage(playerid, COLOR_GRAD2, "Use: /duvida [Pergunta]");
  286. return 1;
  287. }
  288. format(string, sizeof(string), "Dúvida de %s(ID:%d): %s", sendername, playerid, (result));
  289. SendHelperMessage(COLOR_HELPER, string);
  290. SendClientMessage(playerid, COLOR_GRAD2, "Sua dúvida foi enviada aos Helpers.");
  291. }
  292. return 1;
  293. }
  294. if(strcmp(cmd, "/helpajudar", true) == 0 || strcmp(cmd, "/ha", true) == 0)
  295. {
  296. if(IsPlayerConnected(playerid))
  297. {
  298. if(PlayerInfo[playerid][pHelper] >= 1)
  299. {
  300. if(PlayerInfo[playerid][pHelperTrabalhando] == 0)
  301. {
  302. SendClientMessageToAll(COLOR_WHITE,"||-||Aviso dos Helpers||-||");
  303. format(string, 256, "Helper %s [%d] está em trabalho, use /helpers para mais informações.",sendername, playerid);
  304. SendClientMessageToAll(COLOR_HELPER, string);
  305. PlayerInfo[playerid][pHelperTrabalhando] = 1;
  306. }
  307. else if(PlayerInfo[playerid][pHelperTrabalhando] == 1)
  308. {
  309. SendClientMessageToAll(COLOR_WHITE,"||-||Aviso dos Helpers||-||");
  310. format(string, 256, "Helper %s [%d] está em jogo, use /helpers para mais informações.",sendername, playerid);
  311. SendClientMessageToAll(COLOR_HELPER, string);
  312. PlayerInfo[playerid][pHelperTrabalhando] = 0;
  313. }
  314. }
  315. else
  316. {
  317. SendClientMessage(playerid, COLOR_GRAD1, "** você não está autorizado a usar esse comando!");
  318. }
  319. }
  320. return 1;
  321. }
  322. if(strcmp(cmd, "/meavalie", true) == 0)
  323. {
  324. if(IsPlayerConnected(playerid))
  325. {
  326. tmp = strtok(cmdtext, idx);
  327. if(!strlen(tmp))
  328. {
  329. SendClientMessage(playerid, COLOR_GRAD2, "USE: /meavalie [ID/Nome]");
  330. return 1;
  331. }
  332. new giveplayerid;
  333. giveplayerid = ReturnUser(tmp);
  334. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  335. if(IsPlayerConnected(giveplayerid))
  336. {
  337. if(giveplayerid != INVALID_PLAYER_ID)
  338. {
  339. if(PlayerInfo[playerid][pHelper] >= 1)
  340. {
  341. if(PlayerInfo[playerid][pHelperTrabalhando] == 0)
  342. {
  343. return SendClientMessage(playerid,COLOR_GRAD2,"Você não está em trabalho!Use: /ha");
  344. }
  345. if(meavaliehelper[playerid] == 1)
  346. {
  347. return SendClientMessage(playerid,COLOR_GRAD1,"Você já foi avaliado recentemente!Espere...");
  348. }
  349. meavalie[giveplayerid] = playerid;
  350. meavaliehelper[playerid] = 1;
  351. SetTimer("TempoAvalieHelper",TEMPO_MEAVALIE,false);
  352. format(string,sizeof(string),"Olá %s\nO Helper %s[ID:%d]\nPediu a você que o avalia-se como helper\nCaso ele tenha o ajudado aperte em SIM\nCaso contrario aperte NÃO",giveplayer, sendername, playerid);
  353. ShowPlayerDialog(playerid, DIALOG_MEAVALIE, DIALOG_STYLE_MSGBOX, "Avaliação do Helper", string, "Sim", "Não");
  354. }
  355. else
  356. {
  357. SendClientMessage(playerid, COLOR_GRAD1, "** você não está autorizado a usar esse comando!");
  358. }
  359. }
  360. }
  361. else
  362. {
  363. format(string, sizeof(string), "O jogador não está conectado!", giveplayerid);
  364. SendClientMessage(playerid, COLOR_GRAD1, string);
  365. }
  366. }
  367. return 1;
  368. }
  369. if(strcmp(cmd, "/irh", true) == 0)
  370. {
  371. if(IsPlayerConnected(playerid))
  372. {
  373. tmp = strtok(cmdtext, idx);
  374. if(!strlen(tmp))
  375. {
  376. SendClientMessage(playerid, COLOR_GRAD2, "USE: /irh [ID/Nome]");
  377. return 1;
  378. }
  379. new giveplayerid;
  380. giveplayerid = ReturnUser(tmp);
  381. new Float:givepx,Float:givepy,Float:givepz,Float:givepang;
  382. GetPlayerPos(giveplayerid, givepx, givepy, givepz);
  383. GetPlayerFacingAngle(giveplayerid,givepang);
  384. if(IsPlayerConnected(giveplayerid))
  385. {
  386. if(giveplayerid != INVALID_PLAYER_ID)
  387. {
  388. if(PlayerInfo[playerid][pHelper] >= 10)
  389. {
  390. if(PlayerInfo[playerid][pHelperTrabalhando] == 0)
  391. {
  392. return SendClientMessage(playerid,COLOR_GRAD2,"Você não está em trabalho!Use: /ha");
  393. }
  394. SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid));
  395. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(giveplayerid));
  396. SetPlayerPos(playerid,givepx,givepy+2, givepz);
  397. SetPlayerFacingAngle(playerid,givepang);
  398. }
  399. else
  400. {
  401. SendClientMessage(playerid, COLOR_GRAD1, "** você não está autorizado a usar esse comando!");
  402. }
  403. }
  404. }
  405. else
  406. {
  407. format(string, sizeof(string), "O jogador não está conectado!", giveplayerid);
  408. SendClientMessage(playerid, COLOR_GRAD1, string);
  409. }
  410. }
  411. return 1;
  412. }
  413. if(strcmp(cmd, "/editarhelper", true) == 0)
  414. {
  415. if(IsPlayerConnected(playerid))
  416. {
  417. tmp = strtok(cmdtext, idx);
  418. if(!strlen(tmp))
  419. {
  420. SendClientMessage(playerid, COLOR_GRAD2, "USE: /editarhelper [playerid/ParteDoNome] [level(0-30)]");
  421. return 1;
  422. }
  423. new playa;
  424. new level;
  425. playa = ReturnUser(tmp);
  426. tmp = strtok(cmdtext, idx);
  427. level = strval(tmp);
  428. if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] >= 1337)
  429. {
  430. if(IsPlayerConnected(playa))
  431. {
  432. if(playa != INVALID_PLAYER_ID)
  433. {
  434. if(level < 0 || level > 30) { SendClientMessage(playerid, COLOR_GREY, "** Nível não pode ser inferior a 0 ou acima de 30!"); return 1; }
  435. GetPlayerName(playa, giveplayer, sizeof(giveplayer));
  436. PlayerInfo[playa][pHelper] = level;
  437. format(string, sizeof(string), "** Você definiu o nivel de helper de %s[ID:%d] para [%d]",giveplayer,playa,level);
  438. SendClientMessage(playerid, COLOR_ORANGE, string);
  439. format(string, sizeof(string), "** Admin %s[ID:%d] definiu seu nivel de helper para [%d]",sendername,playerid,level);
  440. SendClientMessage(playa, COLOR_ORANGE, string);
  441. format(string, sizeof(string), "[HELPER]%s[ID %d] é o novo helper do servidor",giveplayer,playa);
  442. SendHelperMessage(COLOR_HELPER,string);
  443. format(string, sizeof(string), "~b~Parabens %s voce agora e um Helper",giveplayer);
  444. GameTextForPlayer(playa, string, 4500,3);
  445. }
  446. }
  447. }
  448. else
  449. {
  450. SendClientMessage(playerid, COLOR_GRAD1, "** você não está autorizado a usar esse comando!");
  451. }
  452. }
  453. return 1;
  454. }
  455. return 0;
  456. }
  457. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  458. {
  459. new string[128];
  460. new giveplayer[MAX_PLAYER_NAME];
  461. GetPlayerName(meavalie[playerid], giveplayer, sizeof(giveplayer));
  462. new sendername[MAX_PLAYER_NAME];
  463. GetPlayerName(playerid, sendername, sizeof(sendername));
  464. if(dialogid == DIALOG_MEAVALIE)
  465. {
  466. if(response == 1)
  467. {
  468. SendClientMessage(meavalie[playerid],COLOR_GRAD2,"O Jogador qualificou a sua ajuda como {9EC73D}POSITIVA");
  469. PlayerInfo[meavalie[playerid]][pHelper] = PlayerInfo[meavalie[playerid]][pHelper]+1;
  470. format(string, sizeof(string), "Você classificou a ajuda do Helper %s como {9EC73D}positiva!",giveplayer);
  471. SendClientMessage(playerid,COLOR_HELPER,string);
  472.  
  473. }
  474. if(response == 0)
  475. {
  476. SendClientMessage(meavalie[playerid],COLOR_GRAD2,"O Jogador qualificou a sua ajuda como {FF0000}NEGATIVA");
  477. format(string, sizeof(string), "Você classificou a ajuda do Helper %s como {FF0000}negativa!",giveplayer);
  478. SendClientMessage(playerid,COLOR_HELPER,string);
  479. }
  480. return 1;
  481. }
  482. if(dialogid == DIALOG_PAR)
  483. {
  484. if(response)
  485. {
  486. format(string, sizeof(string), "Helper %s[ID %d]: %s",sendername,playerid,strlen(inputtext));
  487. SendClientMessage(clickplay[playerid], COLOR_GREY,string);
  488. }
  489. }
  490. if(dialogid == DIALOG_HELPER)
  491. {
  492. if(response)
  493. {
  494. if(listitem == 0)
  495. {
  496. format(string, sizeof(string), "/irh %d",clickplay[playerid]);
  497. OnPlayerCommandText(playerid,string);
  498. }
  499. else if(listitem == 1)
  500. {
  501. format(string, sizeof(string), "/meavalie %d",clickplay[playerid]);
  502. OnPlayerCommandText(playerid,string);
  503. }
  504. else if(listitem == 2)
  505. {
  506. ShowPlayerDialog(playerid, DIALOG_PAR,DIALOG_STYLE_INPUT,"Mensagem","Digite sua mensagem abaixo","Ok","Cancel");
  507. }
  508. }
  509. }
  510. return 1;
  511. }
  512.  
  513. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  514. {
  515. if(PlayerInfo[playerid][pHelper] >= 1)
  516. {
  517. clickplay[playerid] = clickedplayerid;
  518. ShowPlayerDialog(playerid,DIALOG_HELPER,DIALOG_STYLE_LIST,"Menu Helper","1\tIr\n2\tSolicitar Avaliação\n3\tMensagem Particular","Selecionar","Cancelar");
  519. }
  520. return 1;
  521. }
  522.  
  523. strtok(const string[], &index)
  524. {
  525. new length = strlen(string);
  526. while ((index < length) && (string[index] <= ' '))
  527. {
  528. index++;
  529. }
  530.  
  531. new offset = index;
  532. new result[20];
  533. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  534. {
  535. result[index - offset] = string[index];
  536. index++;
  537. }
  538. result[index - offset] = EOS;
  539. return result;
  540. }
  541. public SendHelperMessage(color, string[])
  542. {
  543. for(new i = 0; i < MAX_PLAYERS; i++)
  544. {
  545. if(IsPlayerConnected(i))
  546. {
  547. if(PlayerInfo[i][pHelper] >= 1 || IsPlayerAdmin(i))
  548. {
  549. SendClientMessage(i, color, string);
  550. }
  551. }
  552. }
  553. printf("[Helper]%s", string);
  554. }
  555. public SendHelperAdminMessage(color, string[])
  556. {
  557. for(new i = 0; i < MAX_PLAYERS; i++)
  558. {
  559. if(IsPlayerConnected(i))
  560. {
  561. if(PlayerInfo[i][pHelper] >= 1 || IsPlayerAdmin(i) || PlayerInfo[i][pAdmin] >= 1)
  562. {
  563. SendClientMessage(i, color, string);
  564. }
  565. }
  566. }
  567. printf("[Helper]%s", string);
  568. }
  569. public TempoAnHelper(playerid)
  570. {
  571. anhelper[playerid] = 0;
  572. return 1;
  573. }
  574. public TempoAvalieHelper(playerid)
  575. {
  576. meavaliehelper[playerid] = 0;
  577. return 1;
  578. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement