Advertisement
An0nym0uZ

Sistema de Presentes

Sep 6th, 2012
858
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.22 KB | None | 0 0
  1. /*
  2.                             Sistema de Presentes V-1.2
  3.                             Este é um Sistema simples, ótimo para servidores RP ou RPG.
  4.                             Creditos: AnonymouSs - Criação
  5.                             Dicas/Ajuda: BlueX, Mandrack_Freeze
  6.                             Favor nao retirar os créditos :)
  7. */
  8. //[Includes]
  9. #include <a_samp>
  10. #include <zcmd>
  11. #include <sscanf2>
  12.  
  13. //[Variaveis]
  14. new Presentes[10];
  15. new str[256];
  16. new nome[MAX_PLAYER_NAME];
  17. new bool:PresentesON;
  18. new bool:Presente1;
  19. new bool:Presente2;
  20. new bool:Presente3;
  21. new bool:Presente4;
  22. new bool:Presente5;
  23. new PresentesS;
  24. new Carro;
  25. //      Pos Randomicos dos Presentes
  26. new Float:PosP1[][3] = { // Presente 1
  27.     {1679.3547,764.7830,10.8203},
  28.     {1074.7871,1360.4675,10.8203},
  29.     {409.0438,2445.8823,16.5000},
  30.     {170.7376,1834.8569,17.6406},
  31.     {1565.9558,1680.5415,10.8203}
  32. };
  33.  
  34. new Float:PosP2[][3] = { // Presente 2
  35.     {410.3170,1165.4447,7.9069},
  36.     {676.3964,828.6520,-42.9609},
  37.     {1080.0352,1001.6307,11.0000},
  38.     {1336.1379,1919.2657,11.4609},
  39.     {1460.8502,2032.8099,10.8203}
  40. };
  41.  
  42. new Float:PosP3[][3] = { // Presente 3
  43.     {969.9153,2021.5613,11.3672},
  44.     {1124.3917,2031.7479,10.8203},
  45.     {1124.7054,1959.9232,24.9536},
  46.     {1059.3982,1864.8138,14.9297},
  47.     {937.2090,1747.9916,15.7941}
  48. };
  49.  
  50. new Float:PosP4[][3] = { // Presente 4
  51.     {1343.1893,1653.3903,10.8203},
  52.     {1292.0728,1579.5107,19.8637},
  53.     {1267.5626,1329.4642,10.8130},
  54.     {1432.0682,1098.9417,10.8203},
  55.     {1586.9862,1187.0731,38.0466}
  56. };
  57.  
  58. new Float:PosP5[][3] = { // Presente 5
  59.     {1714.5117,1317.8984,10.8203},
  60.     {1678.8364,1447.7605,47.7780},
  61.     {1659.1014,1727.3586,17.5223},
  62.     {1631.3134,1978.1212,10.8203},
  63.     {1681.2046,2108.9719,11.3667}
  64. };
  65.  
  66. //[Defines]
  67. //Mensagens
  68. #define Msg SendClientMessage
  69. #define MsgAll SendClientMessageToAll
  70. //----------------------------------------------------------------------------//
  71. public OnFilterScriptInit()
  72. {
  73.     print("\n--------------------------------------");
  74.     print(" Sistema de Presentes --- Carregado com Sucesso!");
  75.     print(" Sistema de Presentes --- Criado por: AnonymouSs");
  76.     print("--------------------------------------\n");
  77.     return 1;
  78. }
  79.  
  80. public OnFilterScriptExit()
  81. {
  82.     if(Presente1 == false) DestroyObject(Presentes[0]);
  83.     if(Presente2 == false) DestroyObject(Presentes[1]);
  84.     if(Presente3 == false) DestroyObject(Presentes[2]);
  85.     if(Presente4 == false) DestroyObject(Presentes[3]);
  86.     if(Presente5 == false) DestroyObject(Presentes[4]);
  87.     DestroyVehicle(Carro);
  88.     return 1;
  89. }
  90.  
  91. public OnPlayerConnect(playerid)
  92. {
  93.     Msg(playerid, -1, "{FFFF00}Sistema de Presentes By: [AnonymouSs]");
  94.     return 1;
  95. }
  96.  
  97. CMD:darpresentes(playerid)
  98. {
  99.     GetPlayerName(playerid, nome, sizeof(nome));
  100.     if(PresentesON == false)
  101.     {
  102.         if(IsPlayerAdmin(playerid))
  103.         {
  104.             format(str, sizeof(str), "{FF0000}O Admin {0000FF} %s {FF0000} soltou os presentes pela cidade, corram!", nome);
  105.             MsgAll(-1, str);
  106.             PresentesON = true;
  107.             PresentesS = 5;
  108.             new Random1 = random(sizeof(PosP1));
  109.             new Random2 = random(sizeof(PosP2));
  110.             new Random3 = random(sizeof(PosP3));
  111.             new Random4 = random(sizeof(PosP4));
  112.             new Random5 = random(sizeof(PosP5));
  113.             Presentes[0] = CreateObject(19341, PosP1[Random1][0], PosP1[Random1][1], PosP1[Random1][2], 0.0, 0.0, 0.0);
  114.             Presentes[1] = CreateObject(19342, PosP2[Random2][0], PosP2[Random2][1], PosP2[Random2][2], 0.0, 0.0, 0.0);
  115.             Presentes[2] = CreateObject(19343, PosP3[Random3][0], PosP3[Random3][1], PosP3[Random3][2], 0.0, 0.0, 0.0);
  116.             Presentes[3] = CreateObject(19344, PosP4[Random4][0], PosP4[Random4][1], PosP4[Random4][2], 0.0, 0.0, 0.0);
  117.             Presentes[4] = CreateObject(19345, PosP5[Random5][0], PosP5[Random5][1], PosP5[Random5][2], 0.0, 0.0, 0.0);
  118.             Presente1 = false;
  119.             Presente2 = false;
  120.             Presente3 = false;
  121.             Presente4 = false;
  122.             Presente5 = false;
  123.         }
  124.         else
  125.         {
  126.             Msg(playerid, -1, "[FaiL] Você não é Admin!");
  127.         }
  128.     }
  129.     else
  130.     {
  131.         Msg(playerid, -1, "[FaiL]Já foram soltados os presentes, aguardem todos acabarem");
  132.     }
  133.     return 1;
  134. }
  135.  
  136. CMD:pegarpresente(playerid)
  137. {
  138.     GetPlayerName(playerid, nome, sizeof(nome));
  139.     new Float:OP1[3], Float:OP2[3], Float:OP3[3], Float:OP4[3], Float:OP5[3];
  140.     GetObjectPos(Presentes[0], OP1[0], OP1[1], OP1[2]);
  141.     GetObjectPos(Presentes[1], OP2[0], OP2[1], OP2[2]);
  142.     GetObjectPos(Presentes[2], OP3[0], OP3[1], OP3[2]);
  143.     GetObjectPos(Presentes[3], OP4[0], OP4[1], OP4[2]);
  144.     GetObjectPos(Presentes[4], OP5[0], OP5[1], OP5[2]);
  145.     if(PresentesON == true)
  146.     {
  147.         if(IsPlayerInRangeOfPoint(playerid, 2.0, OP1[0], OP1[1], OP1[2]))
  148.         {
  149.             GivePlayerWeapon(playerid, 24, 999);
  150.             GivePlayerWeapon(playerid, 31, 999);
  151.             SetPlayerHealth(playerid, 200);
  152.             SetPlayerArmour(playerid, 200);
  153.             format(str, sizeof(str), "|Presentes|{FF0000} O jogador {0000FF}%s {FF0000}pegou o presente numero {0000FF}1{FF0000}, e ganhou um Kit Assassino", nome);
  154.             MsgAll(-1, str);
  155.             Presente1 = true;
  156.             DestroyObject(Presentes[0]);
  157.             PresentesS --;
  158.             if(PresentesS < 1)
  159.             {
  160.                 MsgAll(-1, "|Presentes| Ahhhh! Acabaram todos os presentes :(, aguarde mais :)");
  161.                 PresentesON = false;
  162.             }
  163.         }
  164.         else if(IsPlayerInRangeOfPoint(playerid, 2.0, OP2[0], OP2[1], OP2[2]))
  165.         {
  166.             SetPlayerSkin(playerid, 299);
  167.             format(str, sizeof(str), "|Presentes|{FF0000} O jogador {0000FF}%s {FF0000}pegou o presente numero {0000FF}2{FF0000}, e ganhou uma troca de Skin Grátis!", nome);
  168.             MsgAll(-1, str);
  169.             DestroyObject(Presentes[1]);
  170.             PresentesS --;
  171.             Presente2 = true;
  172.             if(PresentesS < 1)
  173.             {
  174.                 MsgAll(-1, "|Presentes| Ahhhh! Acabaram todos os presentes :(, aguarde mais :)");
  175.                 PresentesON = false;
  176.             }
  177.         }
  178.         else if(IsPlayerInRangeOfPoint(playerid, 2.0, OP3[0], OP3[1], OP3[2]))
  179.         {
  180.             SetPlayerHealth(playerid, 0);
  181.             format(str, sizeof(str), "|Presentes|{FF0000} O jogador {0000FF}%s {FF0000}pegou o presente numero {0000FF}3{FF0000}, e ganhou uma visita do senhor Morte!", nome);
  182.             MsgAll(-1, str);
  183.             Presente3 = true;
  184.             DestroyObject(Presentes[2]);
  185.             PresentesS --;
  186.             if(PresentesS < 1)
  187.             {
  188.                 MsgAll(-1, "|Presentes| Ahhhh! Acabaram todos os presentes :(, aguarde mais :)");
  189.                 PresentesON = false;
  190.             }
  191.         }
  192.         else if(IsPlayerInRangeOfPoint(playerid, 2.0, OP4[0], OP4[1], OP4[2]))
  193.         {
  194.             new Float:P[3], Float:Angulo;
  195.             GetPlayerPos(playerid, P[0], P[1], P[2]);
  196.             GetPlayerFacingAngle(playerid, Angulo);
  197.             Carro = CreateVehicle(522, P[0], P[1], P[2], Angulo, -1, -1, 60);
  198.             PutPlayerInVehicle(playerid, Carro, 0);
  199.             format(str, sizeof(str), "|Presentes|{FF0000} O jogador {0000FF}%s {FF0000}pegou o presente numero {0000FF}4{FF0000}, e ganhou uma motoca novinha!!", nome);
  200.             MsgAll(-1, str);
  201.             Presente4 = true;
  202.             DestroyObject(Presentes[3]);
  203.             PresentesS --;
  204.             if(PresentesS < 1)
  205.             {
  206.                 MsgAll(-1, "|Presentes| Ahhhh! Acabaram todos os presentes :(, aguarde mais :)");
  207.                 PresentesON = false;
  208.             }
  209.         }
  210.         else if(IsPlayerInRangeOfPoint(playerid, 2.0, OP5[0], OP5[1], OP5[2]))
  211.         {
  212.             new lvl = GetPlayerScore(playerid);
  213.             SetPlayerScore(playerid, lvl + 50);
  214.             format(str, sizeof(str), "|Presentes|{FF0000} O jogador {0000FF}%s {FF0000}pegou o presente numero {0000FF}5{FF0000}, e ganhou +50 de Score", nome);
  215.             MsgAll(-1, str);
  216.             Presente5 = true;
  217.             DestroyObject(Presentes[4]);
  218.             PresentesS --;
  219.             if(PresentesS < 1)
  220.             {
  221.                 MsgAll(-1, "|Presentes| Ahhhh! Acabaram todos os presentes :(, aguarde mais :)");
  222.                 PresentesON = false;
  223.             }
  224.         }
  225.         else
  226.         {
  227.             Msg(playerid, -1, "[FaiL]Você não está perto de um presente");
  228.         }
  229.     }
  230.     else
  231.     {
  232.         Msg(playerid, -1, "[FaiL]Não foram soltados presente no momento, aguarde.");
  233.     }
  234.     return 1;
  235. }
  236.  
  237. CMD:irpresente(playerid, params[])
  238. {
  239.     new LePresente;
  240.     new Float:OP1[3], Float:OP2[3], Float:OP3[3], Float:OP4[3], Float:OP5[3];
  241.     GetObjectPos(Presentes[0], OP1[0], OP1[1], OP1[2]);
  242.     GetObjectPos(Presentes[1], OP2[0], OP2[1], OP2[2]);
  243.     GetObjectPos(Presentes[2], OP3[0], OP3[1], OP3[2]);
  244.     GetObjectPos(Presentes[3], OP4[0], OP4[1], OP4[2]);
  245.     GetObjectPos(Presentes[4], OP5[0], OP5[1], OP5[2]);
  246.     if(!IsPlayerAdmin(playerid)) return Msg(playerid, -1, "[FaiL] Você não é um Admin!");
  247.     if(sscanf(params, "d", LePresente)) return Msg(playerid, -1, "Use: /irpresente [1-5]");
  248.     if(LePresente < 1 || LePresente > 5) return Msg(playerid, -1, "Use: /irpresente [1-5]");
  249.     if(PresentesON == false) return Msg(playerid, -1, "[FaiL] Desculpe, mas não foram dados presentes ainda");
  250.     if(LePresente == 1)
  251.     {
  252.         if(Presente1 == true) return Msg(playerid, -1, "[FaiL] Este presente já foi pego");
  253.         SetPlayerPos(playerid, OP1[0], OP1[1], OP1[2]);
  254.     }
  255.     else if(LePresente == 2)
  256.     {
  257.         if(Presente2 == true) return Msg(playerid, -1, "[FaiL] Este presente já foi pego");
  258.         SetPlayerPos(playerid, OP2[0], OP2[1], OP2[2]);
  259.     }
  260.     else if(LePresente == 3)
  261.     {
  262.         if(Presente3 == true) return Msg(playerid, -1, "[FaiL] Este presente já foi pego");
  263.         SetPlayerPos(playerid, OP3[0], OP3[1], OP3[2]);
  264.     }
  265.     else if(LePresente == 4)
  266.     {
  267.         if(Presente4 == true) return Msg(playerid, -1, "[FaiL] Este presente já foi pego");
  268.         SetPlayerPos(playerid, OP4[0], OP4[1], OP4[2]);
  269.     }
  270.     else if(LePresente == 5)
  271.     {
  272.         if(Presente5 == true) return Msg(playerid, -1, "[FaiL] Este presente já foi pego");
  273.         SetPlayerPos(playerid, OP5[0], OP5[1], OP5[2]);
  274.     }
  275.     return 1;
  276. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement