Guest User

Sistema de Drogas

a guest
Nov 5th, 2011
517
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 16.40 KB | None | 0 0
  1. //Sistema de Drogas by Pedro Miranda
  2. #include <a_samp>
  3. #include <zcmd>
  4. #include <sscanf2>
  5. #include <DOF2>
  6.  
  7. new corda[90];
  8.  
  9. forward CriarDrogas(playerid);
  10. forward CarregarDrogas(playerid);
  11. forward SalvarDrogas(playerid); // to colocando as funcoes em pt pq da ultima q fiz ingles inventaram que era copia e cola
  12. forward MensagemDelimitada(Float:distancia, playerid, cor, texto[]);
  13.  
  14. public OnFilterScriptInit()
  15. {
  16.     print("\nSistema de Drogas by Pedro Miranda Iniciado.");
  17.     return 1;
  18. }
  19.  
  20. public OnFilterScriptExit()
  21. {
  22.     print("\nSistema de Drogas by Pedro Miranda Finalizado.");
  23.     for(new i; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { SalvarDrogas(i); } }
  24.     DOF2_Exit();
  25.     return 1;
  26. }
  27.  
  28. public OnPlayerConnect(playerid)
  29. {
  30.     format(corda, 36, "Drogas/%s.ini", pNome(playerid));
  31.     if(DOF2_FileExists(corda))
  32.     {
  33.         CarregarDrogas(playerid);
  34.     }
  35.     else
  36.     {
  37.         CriarDrogas(playerid);
  38.         CarregarDrogas(playerid);
  39.     }
  40.     return 1;
  41. }
  42.  
  43. public OnPlayerDisconnect(playerid)
  44. {
  45.     SalvarDrogas(playerid);
  46.     return 1;
  47. }
  48.  
  49. CMD:comprarmaconha(playerid, params[])
  50. {
  51.     if(PlayerEstaEmPontoDeDrogas(playerid))
  52.     {
  53.         if(GetPVarInt(playerid, "Maconha") < 5000)
  54.         {
  55.             new quantia;
  56.             if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /ComprarMaconha [Quantia]");
  57.             if(GetPlayerMoney(playerid) < quantia * 5) return SendClientMessage(playerid, 0xFFFFFFAA, "Você não tem grana suficiente para comprar drogas.");
  58.             GivePlayerMoney(playerid, -quantia * 5);//1 grama = 2 reais
  59.             SetPVarInt(playerid, "Maconha", GetPVarInt(playerid, "Maconha") + quantia);
  60.             format(corda, 49, "Você comprou %i gramas de maconha por R$ %i", quantia, quantia*5);
  61.             SendClientMessage(playerid, 0xF6F600AA, corda);
  62.         }
  63.         else return SendClientMessage(playerid, 0xFFFFFFAA, "Você atingiu o limite de maconha guarde no esconderijo para poder pegar mais!");
  64.     }
  65.     else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um ponto de venda de drogas.");
  66.     return 1;
  67. }
  68.  
  69. CMD:comprarcocaina(playerid, params[])
  70. {
  71.     if(PlayerEstaEmPontoDeDrogas(playerid))
  72.     {
  73.         if(GetPVarInt(playerid, "Cocaina") < 5000)
  74.         {
  75.             new quantia;
  76.             if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /ComprarCocaina [Quantia]");
  77.             if(GetPlayerMoney(playerid) < quantia * 5) return SendClientMessage(playerid, 0xFFFFFFAA, "Você não tem grana suficiente para comprar drogas.");
  78.             GivePlayerMoney(playerid, -quantia * 5);//1 grama = 2 reais
  79.             SetPVarInt(playerid, "Cocaina", GetPVarInt(playerid, "Cocaina") + quantia);
  80.             format(corda, 49, "Você comprou %i gramas de maconha por R$ %i", quantia, quantia*5);
  81.             SendClientMessage(playerid, 0xF6F600AA, corda);
  82.         }
  83.         else return SendClientMessage(playerid, 0xFFFFFFAA, "Você atingiu o limite de cocaina, guarde no esconderijo para poder pegar mais!");
  84.     }
  85.     else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um ponto de venda de drogas.");
  86.     return 1;
  87. }
  88.  
  89. CMD:comprarcrack(playerid, params[])
  90. {
  91.     if(PlayerEstaEmPontoDeDrogas(playerid))
  92.     {
  93.         if(GetPVarInt(playerid, "Crack") < 5000)
  94.         {
  95.             new quantia;
  96.             if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /ComparCrack [Quantia]");
  97.             if(GetPlayerMoney(playerid) < quantia * 5) return SendClientMessage(playerid, 0xFFFFFFAA, "Você não tem grana suficiente para comprar drogas.");
  98.             GivePlayerMoney(playerid, -quantia * 5);//1 grama = 2 reais
  99.             SetPVarInt(playerid, "Crack", GetPVarInt(playerid, "Crack") + quantia);
  100.             format(corda, 49, "Você comprou %i gramas de crack por R$ %i", quantia, quantia*5);
  101.             SendClientMessage(playerid, 0xF6F600AA, corda);
  102.         }
  103.         else return SendClientMessage(playerid, 0xFFFFFFAA, "Você atingiu o limite de crack, guarde no esconderijo para poder pegar mais!");
  104.     }
  105.     else return SendClientMessage(playerid, 0xFFFFFFAA, "Você não esta em um ponto de venda de drogas.");
  106.     return 1;
  107. }
  108.  
  109. CMD:escondermaconha(playerid, params[])
  110. {
  111.     if(PlayerEstaEmEsconderijoDeDrogas(playerid))
  112.     {
  113.         if(GetPVarInt(playerid, "SMaconha") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Esconderijo lotado viciado! Agora a solucao e consumir tudo kk.");
  114.         new quantia;
  115.         if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /EsconderMaconha [Quantia]");
  116.         if(quantia > GetPVarInt(playerid, "Maconha")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem essa maconha toda.");
  117.         SetPVarInt(playerid, "Maconha", GetPVarInt(playerid, "Maconha") - quantia);
  118.         SetPVarInt(playerid, "SMaconha", GetPVarInt(playerid, "SMaconha") + quantia);
  119.         format(corda, 52, "Voce guardou %i gramas de maconha no esconderijo.", quantia);
  120.         SendClientMessage(playerid, 0xF6F600AA, corda);
  121.     }
  122.     else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
  123.     return 1;
  124. }
  125.  
  126. CMD:escondercocaina(playerid, params[])
  127. {
  128.     if(PlayerEstaEmEsconderijoDeDrogas(playerid))
  129.     {
  130.         if(GetPVarInt(playerid, "SCocaina") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Esconderijo lotado viciado! Agora a solucao e consumir tudo kk.");
  131.         new quantia;
  132.         if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /EsconderCocaina [Quantia]");
  133.         if(quantia > GetPVarInt(playerid, "Cocaina")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem essa cocaina toda.");
  134.         SetPVarInt(playerid, "Cocaina", GetPVarInt(playerid, "Cocaina") - quantia);
  135.         SetPVarInt(playerid, "SCocaina", GetPVarInt(playerid, "SCocaina") + quantia);
  136.         format(corda, 52, "Voce guardou %i gramas de cocaina no esconderijo.", quantia);
  137.         SendClientMessage(playerid, 0xF6F600AA, corda);
  138.     }
  139.     else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
  140.     return 1;
  141. }
  142.  
  143. CMD:escondercrack(playerid, params[])
  144. {
  145.     if(PlayerEstaEmEsconderijoDeDrogas(playerid))
  146.     {
  147.         if(GetPVarInt(playerid, "SCrack") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Esconderijo lotado viciado! Agora a solucao e consumir tudo kk.");
  148.         new quantia;
  149.         if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /EsconderCrack [Quantia]");
  150.         if(quantia > GetPVarInt(playerid, "Crack")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem esse crack todo.");
  151.         SetPVarInt(playerid, "Crack", GetPVarInt(playerid, "Crack") - quantia);
  152.         SetPVarInt(playerid, "SCrack", GetPVarInt(playerid, "SCrack") + quantia);
  153.         format(corda, 52, "Voce guardou %i gramas de crack no esconderijo.", quantia);
  154.         SendClientMessage(playerid, 0xF6F600AA, corda);
  155.     }
  156.     else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
  157.     return 1;
  158. }
  159.  
  160. CMD:pegarsmaconha(playerid, params[])
  161. {
  162.     if(PlayerEstaEmEsconderijoDeDrogas(playerid))
  163.     {
  164.         new quantia;
  165.         if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /PegarSMaconha [Quantia]");
  166.         if(quantia > GetPVarInt(playerid, "SMaconha")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem isso tudo.");
  167.         if(GetPVarInt(playerid, "Maconha") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce ja esta abarrotado de maconha! Consuma antes de pegar mais.");
  168.         SetPVarInt(playerid, "SMaconha", GetPVarInt(playerid, "SMaconha") - quantia);
  169.         SetPVarInt(playerid, "Maconha", GetPVarInt(playerid, "Maconha") + quantia);
  170.         format(corda, 51, "Voce pegou %i gramas de maconha no esconderijo.", quantia);
  171.         SendClientMessage(playerid, 0xF6F600AA, corda);
  172.     }
  173.     else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
  174.     return 1;
  175. }
  176.  
  177. CMD:pegarscocaina(playerid, params[])
  178. {
  179.     if(PlayerEstaEmEsconderijoDeDrogas(playerid))
  180.     {
  181.         new quantia;
  182.         if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /PegarSMaconha [Quantia]");
  183.         if(quantia > GetPVarInt(playerid, "SCocaina")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem isso tudo.");
  184.         if(GetPVarInt(playerid, "Cocaina") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce ja esta abarrotado de maconha! Consuma antes de pegar mais.");
  185.         SetPVarInt(playerid, "SCocaina", GetPVarInt(playerid, "SCocaina") - quantia);
  186.         SetPVarInt(playerid, "Cocaina", GetPVarInt(playerid, "Cocaina") + quantia);
  187.         format(corda, 51, "Voce pegou %i gramas de cocaina no esconderijo.", quantia);
  188.         SendClientMessage(playerid, 0xF6F600AA, corda);
  189.     }
  190.     else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
  191.     return 1;
  192. }
  193.  
  194. CMD:pegarscrack(playerid, params[])
  195. {
  196.     if(PlayerEstaEmEsconderijoDeDrogas(playerid))
  197.     {
  198.         new quantia;
  199.         if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /PegarSMaconha [Quantia]");
  200.         if(quantia > GetPVarInt(playerid, "SCrack")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem isso tudo.");
  201.         if(GetPVarInt(playerid, "Crack") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce ja esta abarrotado de maconha! Consuma antes de pegar mais.");
  202.         SetPVarInt(playerid, "SCrack", GetPVarInt(playerid, "SCrack") - quantia);
  203.         SetPVarInt(playerid, "Crack", GetPVarInt(playerid, "Crack") + quantia);
  204.         format(corda, 51, "Voce pegou %i gramas de crack no esconderijo.");
  205.         SendClientMessage(playerid, 0xF6F600AA, corda);
  206.     }
  207.     else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
  208.     return 1;
  209. }
  210.  
  211. CMD:usar(playerid, params[])
  212. {
  213.     new droga[8];
  214.     if(sscanf(params, "s[8]", droga)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /Usar [Maconha,Cocaina,Crack]");
  215.     if(strcmp(droga, "maconha", true) == 0)
  216.     {
  217.         if(GetPVarInt(playerid, "Maconha") > 0)
  218.         {
  219.             new Float:colete;
  220.             SetPlayerArmour(playerid, GetPlayerArmour(playerid, colete) + 5);
  221.             SetPVarInt(playerid, "Maconha", GetPVarInt(playerid, "Maconha") - 1);
  222.             format(corda, 40, "%s fumou maconha.", pNome(playerid));
  223.             MensagemDelimitada(10.0, playerid, 0xF6F600AA, corda);
  224.         }
  225.         else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem maconha.");
  226.         return 1;
  227.     }
  228.     if(strcmp(droga, "cocaina", true) == 0)
  229.     {
  230.         if(GetPVarInt(playerid, "Cocaina") > 0)
  231.         {
  232.             new Float:colete;
  233.             SetPlayerArmour(playerid, GetPlayerArmour(playerid, colete) + 5);
  234.             SetPVarInt(playerid, "Cocaina", GetPVarInt(playerid, "Cocaina") - 1);
  235.             format(corda, 42, "%s cheirou cocaina.", pNome(playerid));
  236.             MensagemDelimitada(10.0, playerid, 0xF6F600AA, corda);
  237.         }
  238.         else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem cocaina.");
  239.         return 1;
  240.     }
  241.     if(strcmp(droga, "crack", true) == 0)
  242.     {
  243.         if(GetPVarInt(playerid, "Crack") > 0)
  244.         {
  245.             new Float:colete;
  246.             SetPlayerArmour(playerid, GetPlayerArmour(playerid, colete) + 5);
  247.             SetPVarInt(playerid, "Crack", GetPVarInt(playerid, "Crack") - 1);
  248.             format(corda, 38, "%s fumou crack.", pNome(playerid));
  249.             MensagemDelimitada(10.0, playerid, 0xF6F600AA, corda);
  250.         }
  251.         else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem crack.");
  252.         return 1;
  253.     }
  254.     return 1;
  255. }
  256.  
  257. CMD:dar(playerid, params[])
  258. {
  259.     new droga[8];
  260.     if(sscanf(params, "s[8]", droga)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /Dar [Droga]");
  261.     if(strcmp(droga, "maconha", true) == 0)
  262.     {
  263.         new id, quantia;
  264.         if(sscanf(params, "ui", id)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /Dar Maconha [ID][Quantia]");
  265.         new Float:Pos[3];
  266.         GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  267.         if(!IsPlayerInRangeOfPoint(id, 1.5, Pos[0], Pos[1], Pos[2])) return SendClientMessage(playerid, 0xFFFFFFAA, "Este drogado nao esta perto de voce!");
  268.         if(quantia > GetPVarInt(playerid, "Maconha")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem toda essa maconha.");
  269.         SetPVarInt(playerid, "Maconha", GetPVarInt(playerid, "Maconha") - quantia);
  270.         format(corda, 83, "%s deu %i gramas de maconha para %s", pNome(playerid), pNome(id));
  271.         MensagemDelimitada(10.0, playerid, 0xFFFFFFAA, corda);
  272.         SetPVarInt(id, "Maconha", GetPVarInt(id, "Maconha") + quantia);
  273.         return 1;
  274.     }
  275.     if(strcmp(droga, "cocaina", true) == 0)
  276.     {
  277.         new id, quantia;
  278.         if(sscanf(params, "ui", id)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /Dar Cocaina [ID][Quantia]");
  279.         new Float:Pos[3];
  280.         GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  281.         if(!IsPlayerInRangeOfPoint(id, 1.5, Pos[0], Pos[1], Pos[2])) return SendClientMessage(playerid, 0xFFFFFFAA, "Este drogado nao esta perto de voce!");
  282.         if(quantia > GetPVarInt(playerid, "Cocaina")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem toda essa cocaina.");
  283.         SetPVarInt(playerid, "Cocaina", GetPVarInt(playerid, "Cocaina") - quantia);
  284.         format(corda, 83, "%s deu %i gramas de cocaina para %s", pNome(playerid), pNome(id));
  285.         MensagemDelimitada(10.0, playerid, 0xFFFFFFAA, corda);
  286.         SetPVarInt(id, "Cocaina", GetPVarInt(id, "Cocaina") + quantia);
  287.         return 1;
  288.     }
  289.     if(strcmp(droga, "crack", true) == 0)
  290.     {
  291.         new id, quantia;
  292.         if(sscanf(params, "ui", id)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /Dar Crack [ID][Quantia]");
  293.         new Float:Pos[3];
  294.         GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  295.         if(!IsPlayerInRangeOfPoint(id, 1.5, Pos[0], Pos[1], Pos[2])) return SendClientMessage(playerid, 0xFFFFFFAA, "Este drogado nao esta perto de voce!");
  296.         if(quantia > GetPVarInt(playerid, "Crack")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem todo esse crack.");
  297.         SetPVarInt(playerid, "Crack", GetPVarInt(playerid, "Crack") - quantia);
  298.         format(corda, 81, "%s deu %i gramas de crack para %s", pNome(playerid), pNome(id));
  299.         MensagemDelimitada(10.0, playerid, 0xFFFFFFAA, corda);
  300.         SetPVarInt(id, "Crack", GetPVarInt(id, "Crack") + quantia);
  301.         return 1;
  302.     }
  303.     return 1;
  304. }
  305.  
  306. public CriarDrogas(playerid)
  307. {
  308.     format(corda, 36, "Drogas/%s.ini", pNome(playerid));
  309.     DOF2_CreateFile(corda);
  310.     DOF2_SetInt(corda, "Maconha", 0);
  311.     DOF2_SetInt(corda, "Cocaina", 0);
  312.     DOF2_SetInt(corda, "Crack", 0);
  313.     DOF2_SetInt(corda, "SafeMaconha", 0);
  314.     DOF2_SetInt(corda, "SafeCocaina", 0);
  315.     DOF2_SetInt(corda, "SafeCrack", 0);
  316.     DOF2_SaveFile();
  317.     printf("Informações Drogásticas de %s Criadas ! :D", pNome(playerid));
  318.     return 1;
  319. }
  320.  
  321. public CarregarDrogas(playerid)
  322. {
  323.     format(corda, 36, "Drogas/%s.ini", pNome(playerid));
  324.     SetPVarInt(playerid, "Maconha", DOF2_GetInt(corda, "Maconha"));
  325.     SetPVarInt(playerid, "Cocaina", DOF2_GetInt(corda, "Cocaina"));
  326.     SetPVarInt(playerid, "Crack", DOF2_GetInt(corda, "Crack"));
  327.     SetPVarInt(playerid, "SMaconha", DOF2_GetInt(corda, "SafeMaconha"));
  328.     SetPVarInt(playerid, "SCocaina", DOF2_GetInt(corda, "SafeCocaina"));
  329.     SetPVarInt(playerid, "SCrack", DOF2_GetInt(corda, "SafeCrack"));
  330.     printf("Informações Drogásticas de %s Carregadas ! :D", pNome(playerid));
  331.     return 1;
  332. }
  333.  
  334. public SalvarDrogas(playerid)
  335. {
  336.     format(corda, 36, "Contas/%s.ini", pNome(playerid));
  337.     DOF2_SetInt(corda, "Maconha", GetPVarInt(playerid, "Maconha"));
  338.     DOF2_SetInt(corda, "Cocaina", GetPVarInt(playerid, "Maconha"));
  339.     DOF2_SetInt(corda, "Crack", GetPVarInt(playerid, "Maconha"));
  340.     DOF2_SetInt(corda, "SafeMaconha", GetPVarInt(playerid, "SMaconha"));
  341.     DOF2_SetInt(corda, "SafeCocaina", GetPVarInt(playerid, "SCocaina"));
  342.     DOF2_SetInt(corda, "SafeCrack", GetPVarInt(playerid, "SCrack"));
  343.     printf("Informações Drogásticas de %s Salvas ! :D", pNome(playerid));
  344.     return 1;
  345. }
  346.  
  347. public MensagemDelimitada(Float:distancia, playerid, cor, texto[])
  348. {
  349.     new Float:X,Float:Y,Float:Z;
  350.     GetPlayerPos(playerid, X, Y, Z);
  351.     for(new i = 0; i < MAX_PLAYERS; i++)
  352.     {
  353.         if(IsPlayerConnected(i))
  354.         {
  355.             if(IsPlayerInRangeOfPoint(i, distancia, X, Y, Z))
  356.             {
  357.                 SendClientMessage(i, cor, texto);
  358.             }
  359.         }
  360.     }
  361.     return 1;
  362. }
  363.  
  364. stock PlayerEstaEmPontoDeDrogas(playerid)
  365. {
  366.     if(IsPlayerInRangeOfPoint(playerid, 2.0, 123.456, 123.456, 123.456)) return 1;//troque os 123.456 pelas coordenadas x,y,z do(s) local(is) de venda que quiser
  367.     //Pode colocar mais locais seguindo o modelo acime
  368.     else return 0;
  369. }
  370.  
  371. stock PlayerEstaEmEsconderijoDeDrogas(playerid)
  372. {
  373.     if(IsPlayerInRangeOfPoint(playerid, 2.0, 128.456, 123.456, 123.456)) return 1;//assim como no de cima troque 123.456 pelas coords X,Y e Z podendo adicionar mais locais
  374.     //pode colocar mais :D
  375.     else return 0;
  376. }
  377.  
  378. stock pNome(playerid)
  379. {
  380.     new Name[MAX_PLAYER_NAME];
  381.     GetPlayerName(playerid, Name, sizeof(Name));
  382.     return Name;
  383. }
  384.  
  385. //Qualquer BUG Comente no Topico
  386.  
Advertisement
Add Comment
Please, Sign In to add comment