Advertisement
Guest User

Sistema de natal modificado!

a guest
Dec 18th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.27 KB | None | 0 0
  1. /* Includes */
  2. #include <a_samp>
  3. #include <a_zones>
  4. #include <zcmd>
  5. #include <sscanf2>
  6. #include <streamer>
  7.  
  8. /* Definições */
  9. #define MAX_NATAL (10) // Define o maximo de Árvores de Natal.
  10. #define UPDATE_TEXT_LABEL (200) // Define por quantos milesegundo a textlabel será atualizada.
  11. #define PRESENTE_DELAY (3600) // Define quantos segundos o player poderá usar o comando '/pegarpresente' novamente.
  12.  
  13. /* Variaveis */
  14. new PresenteTempo[MAX_PLAYERS];
  15.  
  16. enum enumNatal {
  17. n_Objects[5],
  18. Float:n_Position[3],
  19. Text3D: n_TextLabel[2]
  20. }
  21. new Natal[MAX_NATAL][enumNatal];
  22.  
  23. /* Comandos */
  24. CMD:criarnatal(playerid, params[]) {
  25. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{F76060}Somente Administradores RCON pode usar este comando!");
  26. new Nome[MAX_PLAYER_NAME+1], Mensagem[158], Zone_Name[28];
  27. for(new i; i < MAX_NATAL; i++) {
  28. if(Natal[i][n_Position][0] == 0 && Natal[i][n_Position][1] == 0) {
  29. GetPlayerPos(playerid, Natal[i][n_Position][0], Natal[i][n_Position][1], Natal[i][n_Position][2]);
  30. SetPlayerPos(playerid, Natal[i][n_Position][0]+3, Natal[i][n_Position][1], Natal[i][n_Position][2]);
  31. Criar_Natal(i);
  32. SetTimer("Update_Text_Natal", UPDATE_TEXT_LABEL, true);
  33. GetPlayerName(playerid, Nome, sizeof(Nome));
  34. GetPlayer2DZone(playerid, Zone_Name, 28);
  35. format(Mensagem, sizeof(Mensagem), "{FF3333}[ * Natal * ] %s{D9FF00} Está convidando a todos para vir até {FF3333}%s{D9FF00} para receber presentes!", Nome, Zone_Name);
  36. SendClientMessageToAll(-1, Mensagem);
  37. format(Mensagem, sizeof Mensagem, "{A8A8A8}›› Você criou uma Árvore de Natal. #ID {E36D6D}%i{FFFFFF}.", i);
  38. return SendClientMessage(playerid, -1, Mensagem);
  39. }
  40. }
  41. return 1;
  42. }
  43.  
  44. CMD:destruirnatal(playerid, params[]) {
  45. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{F76060}Somente Administradores RCON pode usar este comando!");
  46. new Natal_ID, Mensagem[128];
  47. if(sscanf(params, "i", Natal_ID)) return SendClientMessage(playerid, -1, "{F55151}Use:{FFFFFF} /destruirnatal [{FA7373}natalid{FFFFFF}]");
  48. if(0 <= Natal_ID < MAX_NATAL) {
  49. if(Natal[Natal_ID][n_Position][0] == 0 && Natal[Natal_ID][n_Position][1] == 0) return SendClientMessage(playerid, -1, "{FF6B6B}Este Natal ID não está sendo usado!");
  50. Destruir_Natal(Natal_ID);
  51. format(Mensagem, sizeof(Mensagem), "{A8A8A8}›› Você destruiu uma Árvore de Natal. #ID {E36D6D}%i{FFFFFF}.", Natal_ID);
  52. SendClientMessage(playerid, -1, Mensagem);
  53. }
  54. else SendClientMessage(playerid, -1, "Árvore de Natal inválida.");
  55. return 1;
  56. }
  57.  
  58. CMD:resetarpresentetempo(playerid, params[]) {
  59. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{F76060}Somente Administradores RCON pode usar este comando!");
  60. new Alvo, Mensagem[128], Nome[MAX_PLAYER_NAME+1];
  61. if(sscanf(params, "i", Alvo)) return SendClientMessage(playerid, -1, "{F55151}Use:{FFFFFF} /resetarpresentetempo [{FA7373}playerid{FFFFFF}]");
  62. PresenteTempo[Alvo] = 0;
  63. GetPlayerName(playerid, Nome, sizeof(Nome));
  64. format(Mensagem, sizeof(Mensagem), "{84E64C}O administrador %s resetou seu tempo de pegar presente agora você pode pegar presente novamente.", Nome);
  65. SendClientMessage(playerid, -1, Mensagem);
  66. return 1;
  67. }
  68.  
  69. CMD:pegarpresente(playerid, params[]) {
  70. if(gettime() - PresenteTempo[playerid] < PRESENTE_DELAY) return SendClientMessage(playerid, -1, "{F76060}››{FFFfFF} Você já abriu uma caixa de presentes é necessario esperar 1 hora para usar este comando novamente!");
  71. for(new i; i < MAX_NATAL; i++) {
  72. if(IsPlayerInRangeOfPoint(playerid, 5.0, Natal[i][n_Position][0], Natal[i][n_Position][1], Natal[i][n_Position][2])) {
  73. new iRand = random(5), Mensagem[128], Nome[MAX_PLAYER_NAME+1];
  74. GetPlayerName(playerid, Nome, sizeof(Nome));
  75. switch(iRand) {
  76. case 0: {
  77. GivePlayerMoney(playerid, 50000);
  78. format(Mensagem, sizeof(Mensagem), "{00FA3A}(Árvore de Natal){B7FA00} %s abriu uma das caixas de presentes e ganhou {048704}$50,000{B7FA00}.");
  79. SendClientMessageToAll(1, Mensagem);
  80. }
  81. case 1: {
  82. GivePlayerWeapon(playerid, 24, 99999);
  83. GivePlayerWeapon(playerid, 29, 99999);
  84. GivePlayerWeapon(playerid, 31, 99999);
  85. GivePlayerWeapon(playerid, 34, 99999);
  86. GivePlayerWeapon(playerid, 4, 1);
  87. format(Mensagem, sizeof(Mensagem), "{00FA3A}(Árvore de Natal){B7FA00} %s abriu uma das caixas de presentes e ganhou um {02D185}Kit de Armas{B7FA00}.");
  88. SendClientMessageToAll(1, Mensagem);
  89. }
  90. case 2: {
  91. GivePlayerWeapon(playerid, 9, 1);
  92. format(Mensagem, sizeof(Mensagem), "{00FA3A}(Árvore de Natal){B7FA00} %s abriu uma das caixas de presentes e ganhou uma {F5F50C}Motosserra{B7FA00}.");
  93. SendClientMessageToAll(1, Mensagem);
  94. }
  95. case 3: {
  96. GivePlayerWeapon(playerid, 38, 5000);
  97. format(Mensagem, sizeof(Mensagem), "{00FA3A}(Árvore de Natal){B7FA00} %s abriu uma das caixas de presentes e ganhou uma {F5F50C}Minigun{B7FA00}.");
  98. SendClientMessageToAll(1, Mensagem);
  99. }
  100. case 4: {
  101. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
  102. format(Mensagem, sizeof(Mensagem), "{00FA3A}(Árvore de Natal){B7FA00} %s abriu uma das caixas de presentes e ganhou um {F5F50C}JetPack{B7FA00}.");
  103. SendClientMessageToAll(1, Mensagem);
  104. }
  105. }
  106. PresenteTempo[playerid] = gettime();
  107. }
  108. }
  109. return 1;
  110. }
  111.  
  112. /* Callbacks */
  113. public OnFilterScriptInit()
  114. {
  115. print("* ----------------------------------------------------- *");
  116. print(" Nome do Filter Script: Árvore de Natal");
  117. print(" Criado por: NurbWill");
  118. print(" Editado por: daniel_UBR/Daniel_Gamer");
  119. print(" Includes: zcmd, sscanf e streamer.");
  120. print("* ----------------------------------------------------- *");
  121. return 1;
  122. }
  123.  
  124. forward Update_Text_Natal();
  125. public Update_Text_Natal() {
  126. new Label_String[128];
  127. new const Cores[][] = {"FF0000", "FF00C3", "1500FF", "FFEA00", "FF6200", "15FF00", "6705A8", "3CE8E5", "FF6D05", "768705", "FF00CC", "FFFFFF"};
  128. format(Label_String, sizeof(Label_String), "{%s}F{%s}e{%s}l{%s}i{%s}z {%s}N{%s}a{%s}t{%s}a{%s}l{%s}!{%s}", Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))]);
  129. for(new i; i < MAX_NATAL; i++) UpdateDynamic3DTextLabelText(Natal[i][n_TextLabel][0], -1, Label_String);
  130. }
  131.  
  132. stock Criar_Natal(id) {
  133. new Label_String[128];
  134. Natal[id][n_Objects][0] = CreateDynamicObject(19076, Natal[id][n_Position][0], Natal[id][n_Position][1], Natal[id][n_Position][2]-0.9, 0.00000, 0.00000, 0.20201);
  135. Natal[id][n_Objects][1] = CreateDynamicObject(19054, Natal[id][n_Position][0]+1.5, Natal[id][n_Position][1]+1, Natal[id][n_Position][2]-0.5, 0.00000, 0.00000, -13.68000);
  136. Natal[id][n_Objects][2] = CreateDynamicObject(19055, Natal[id][n_Position][0]-1.5, Natal[id][n_Position][1]-1, Natal[id][n_Position][2]-0.5, 0.00000, 0.00000, -10.91999);
  137. Natal[id][n_Objects][3] = CreateDynamicObject(19056, Natal[id][n_Position][0]+1.5, Natal[id][n_Position][1]-1.5, Natal[id][n_Position][2]-0.5, 0.00000, 0.00000, -13.68000);
  138. Natal[id][n_Objects][4] = CreateDynamicObject(19057, Natal[id][n_Position][0]-1.5, Natal[id][n_Position][1]+1.5, Natal[id][n_Position][2]-0.5, 0.00000, 0.00000, -13.68000);
  139. Natal[id][n_TextLabel][0] = CreateDynamic3DTextLabel("Feliz Natal", 0x008080FF, Natal[id][n_Position][0], Natal[id][n_Position][1], Natal[id][n_Position][2]+11.0, 40.0);
  140. format(Label_String, sizeof(Label_String), "{2BFF00}Árvore {FFFB00}de {FF0A0A}Natal\n{FFFB00}Use '{0004FF}/pegarpresente{FFFB00}' para abrir uma das caixas\nID: {94AD03}%i", id);
  141. Natal[id][n_TextLabel][1] = CreateDynamic3DTextLabel(Label_String, 0x008080FF, Natal[id][n_Position][0], Natal[id][n_Position][1], Natal[id][n_Position][2], 10.0);
  142. printf("[Natal] Árvore de Natal #%i criado com sucesso.", id);
  143. }
  144.  
  145. stock Destruir_Natal(id) {
  146. Natal[id][n_Position][0] = 0;
  147. Natal[id][n_Position][1] = 0;
  148. Natal[id][n_Position][2] = 0;
  149. for(new i; i < 5; i++) DestroyDynamicObject(Natal[id][n_Objects][i]);
  150. DestroyDynamic3DTextLabel(Natal[id][n_TextLabel][0]);
  151. DestroyDynamic3DTextLabel(Natal[id][n_TextLabel][1]);
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement