Advertisement
CromartieTX

[FS SAMP] Area Segura (Ver. 2.5)

Feb 28th, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.08 KB | None | 0 0
  1. /* CREDITOS       28/02/2019
  2. Desenvolvedor   : CROMARTIE
  3. VIDEO Youtube   : https://www.youtube.com/watch?v=7KKqpFGGo0Q
  4. CONTATO DISCORD : TAG DISCORD = Cromartie#4133
  5. VERSÃO          : 2.5
  6. */
  7.  
  8. #include <a_samp>
  9. #include <sscanf2>
  10. #include <streamer>
  11. #include <zcmd>
  12. #include <YSI\y_hooks>
  13.  
  14. new bool:GzAREA[4][MAX_PLAYERS];
  15. new CriarREDOR[4];
  16. new Float:GzX[3], Float:GzY[3], Float:GzZ[3];
  17. new CriarZONE[2];
  18. new AreaID[2];
  19. new GzTIMER[2];
  20. new Float:GzRADIAU;
  21. new IDPLAYER;
  22. new CORGz;
  23.  
  24. #define ConstGz GzRADIAU
  25. new HPgzDEFINE, TIMEgzDEFINE;
  26. #define HPgz HPgzDEFINE
  27. #define TIMEgz TIMEgzDEFINE
  28.  
  29. public OnFilterScriptInit()
  30. {
  31.     HPgz = 1;
  32.     TIMEgz = 200;
  33.     return 1;
  34. }
  35.  
  36. CMD:zonedefine(playerid, params[])
  37. {
  38.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO:] {FFFFFF}Somente {FF4500}ADMIN{FFFFFF} do {FF4500}RCON{FFFFFF} podem usar este {FF4500}COMANDO.");
  39.     if(sscanf(params, "ii", HPgz, TIMEgz)) return SendClientMessage(playerid, -1, "{FF0000}[USE:]{33CC33} /zonedefine [HP que vai PERDER] [Velocidade que vai PERDER] {FF0000}[EX:]{FFFF00} 3 500");
  40.     new str[130]; format(str,sizeof(str),"[INFO:]{33CC33} Vida é Velocidade DEFINIDO para {00FCFC}VIDA: {FFFF00}%i{00FCFC}, VELOCIDADE: {FFFF00}%i", HPgz, TIMEgz); SendClientMessage(playerid,0xFF0000FF,str);
  41.     return 1;
  42. }
  43.  
  44. CMD:zone(playerid, params[])
  45. {
  46.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO:] {FFFFFF}Somente {FF4500}ADMIN{FFFFFF} do {FF4500}RCON{FFFFFF} podem usar este {FF4500}COMANDO.");
  47.     if(GzAREA[0][playerid] == false)
  48.     {
  49.         if(sscanf(params, "ufN(0xFF000066)", IDPLAYER, GzRADIAU,CORGz)) return SendClientMessage(playerid, -1, "{FF0000}[USE:]{33CC33} /zone [PLayer ID] [Radiau] [OPCIONAL: (COR)] {FF0000}[EX:]{FFFF00} 199 10 {FF0000}[EX:]{FFFF00} 199 10 0x33CC3366");
  50.         GetPlayerPos(playerid, GzX[0], GzY[0], GzZ[0]);
  51.         CriarZONE[0] = GangZoneCreate(GzX[0]+ConstGz, GzY[0]+ConstGz, GzX[0]-ConstGz, GzY[0]-ConstGz);
  52.         AreaID[0] = CreateDynamicRectangle(GzX[0]+ConstGz, GzY[0]+ConstGz, GzX[0]-ConstGz, GzY[0]-ConstGz);
  53.         GangZoneShowForAll(CriarZONE[0],CORGz);
  54.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} A Zona SEGURA Foi CRIADA");
  55.         GzAREA[0][playerid] = true;
  56.     }
  57.     else
  58.     {
  59.         GzAREA[0][playerid] = false;
  60.         KillTimer(GzTIMER[0]);
  61.         GangZoneDestroy(CriarZONE[0]);
  62.         DestroyDynamicArea(AreaID[0]);
  63.         SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00} a AREA SEGURA foi {FF0000}DELETADO!");
  64.     }
  65.     return 1;
  66. }
  67.  
  68. CMD:zoneall(playerid, params[])
  69. {
  70.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO:] {FFFFFF}Somente {FF4500}ADMIN{FFFFFF} do {FF4500}RCON{FFFFFF} podem usar este {FF4500}COMANDO.");
  71.     if(GzAREA[1][playerid] == false)
  72.     {
  73.         for (new i = 0; i <MAX_PLAYERS; i++)
  74.         {
  75.             if(sscanf(params, "fN(0xFF000066)", GzRADIAU ,CORGz)) return SendClientMessage(playerid, -1, "{FF0000}[USE:]{33CC33} /zoneall [Radiau] [OPCIONAL: (COR)] {FF0000}[EX:]{FFFF00}/zoneall 10 {FF0000}[EX:]{FFFF00}/zoneall 10 0x33CC3366");
  76.             GetPlayerPos(playerid, GzX[1], GzY[1], GzZ[1]);
  77.             SendClientMessage(i,-1,"{FF0000}[INFO:]{33CC33} A Zona SEGURA Foi CRIADA");
  78.             GzAREA[1][playerid] = true;
  79.         }
  80.         CriarZONE[1] = GangZoneCreate(GzX[1]+ConstGz, GzY[1]+ConstGz, GzX[1]-ConstGz, GzY[1]-ConstGz);
  81.         AreaID[1] = CreateDynamicRectangle(GzX[1]+ConstGz, GzY[1]+ConstGz, GzX[1]-ConstGz, GzY[1]-ConstGz);
  82.         GangZoneShowForAll(CriarZONE[1],CORGz);
  83.     }
  84.     else
  85.     {
  86.         GangZoneDestroy(CriarZONE[1]);
  87.         SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00} a AREA SEGURA foi {FF0000}DELETADO!");
  88.         GzAREA[1][playerid] = false;
  89.         KillTimer(GzTIMER[1]);
  90.         DestroyDynamicArea(AreaID[1]);
  91.     }
  92.     return 1;
  93. }
  94.  
  95. CMD:redor(playerid, params[])
  96. {
  97.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO:] {FFFFFF}Somente {FF4500}ADMIN{FFFFFF} do {FF4500}RCON{FFFFFF} podem usar este {FF4500}COMANDO.");
  98.     if(GzAREA[1][playerid] == false)
  99.     {
  100.         new COR, Float:VEZES;
  101.         if(sscanf(params, "fF(8)N(0xFF000066)", GzRADIAU,VEZES,COR))
  102.         {
  103.             SendClientMessage(playerid, -1, "{FF0000}[USE:]{33CC33} /redor [Radiau DENTRO] [OPCIONAL:(Radiau FORA)(COR)]");
  104.             SendClientMessage(playerid, -1, "{FF0000}[EX:]/redor{FFFF00} 10{FF0000}[EX:]{FFFF00}/redor 10 20 0x33CC3366");
  105.             return 1;
  106.         }
  107.         GetPlayerPos(playerid, GzX[1], GzY[1], GzZ[1]);
  108.         CriarREDOR[0] = GangZoneCreate(GzX[1]+GzRADIAU, GzY[1]+GzRADIAU*VEZES, GzX[1]+GzRADIAU*VEZES, GzY[1]-GzRADIAU);
  109.         CriarREDOR[1] = GangZoneCreate(GzX[1]-GzRADIAU, GzY[1]-GzRADIAU*VEZES, GzX[1]-GzRADIAU*VEZES, GzY[1]+GzRADIAU);
  110.         CriarREDOR[2] = GangZoneCreate(GzX[1]-GzRADIAU*VEZES, GzY[1]+GzRADIAU, GzX[1]+GzRADIAU, GzY[1]+GzRADIAU*VEZES);
  111.         CriarREDOR[3] = GangZoneCreate(GzX[1]-GzRADIAU, GzY[1]-GzRADIAU, GzX[1]+GzRADIAU*VEZES, GzY[1]-GzRADIAU*VEZES);
  112.         for (new i = 0; i < 4; i++){
  113.         GangZoneShowForAll(CriarREDOR[i],COR);}
  114.         for (new i = 0; i <MAX_PLAYERS; i++){
  115.         SendClientMessage(i,-1,"{FF0000}[INFO:]{33CC33} A Zona SEGURA Foi CRIADA");}
  116.         AreaID[1] = CreateDynamicRectangle(GzX[1]+ConstGz, GzY[1]+ConstGz, GzX[1]-ConstGz, GzY[1]-ConstGz);
  117.         GzAREA[1][playerid] = true;
  118.     }
  119.     else
  120.     {
  121.         GzAREA[1][playerid] = false;
  122.         KillTimer(GzTIMER[1]);
  123.         for (new i = 0; i < 4; i++){
  124.         GangZoneDestroy(CriarREDOR[i]);}
  125.         KillTimer(GzTIMER[1]);
  126.         DestroyDynamicArea(AreaID[1]);
  127.         SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00} a AREA SEGURA foi {FF0000}DELETADO!");
  128.     }
  129.     return 1;
  130. }
  131.  
  132. CMD:zoneflash(playerid, params[])
  133. {
  134.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO:] {FFFFFF}Somente {FF4500}ADMIN{FFFFFF} do {FF4500}RCON{FFFFFF} podem usar este {FF4500}COMANDO.");
  135.     {
  136.     if(GzAREA[2][playerid] == false)
  137.     {
  138.         GzAREA[2][playerid] = true;
  139.         for (new i = 0; i < 4; i++){
  140.         GangZoneFlashForAll(CriarREDOR[i],0xFFFFFF00);}
  141.         GangZoneFlashForAll(CriarZONE[0],0xFFFFFF00);
  142.         GangZoneFlashForAll(CriarZONE[1],0xFFFFFF00);
  143.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{00FCFC} Flash GANGZONE foi {33CC33}ATIVADO");
  144.     }
  145.     else
  146.     {
  147.         GzAREA[2][playerid] = false;
  148.         for (new i = 0; i < 4; i++){
  149.         GangZoneStopFlashForAll(CriarREDOR[i]);}
  150.         GangZoneStopFlashForAll(CriarZONE[0]);
  151.         GangZoneStopFlashForAll(CriarZONE[1]);
  152.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{00FCFC} Flash GANGZONE foi {FF0000}DESATIVADO");
  153.     }
  154.     }
  155.     return 1;
  156. }
  157.  
  158. CMD:zoneoff(playerid, params[])
  159. {
  160.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO:] {FFFFFF}Somente {FF4500}ADMIN{FFFFFF} do {FF4500}RCON{FFFFFF} podem usar este {FF4500}COMANDO.");
  161.     if(GzAREA[0][playerid] == false)
  162.     {
  163.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA {21DD00}LIGADO");
  164.         GangZoneShowForAll(CriarZONE[0],CORGz);
  165.         GzAREA[0][playerid] = true;
  166.     }
  167.     else
  168.     {
  169.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA {E60000}DESLIGADO");
  170.         GangZoneHideForAll(CriarZONE[0]);
  171.         GzAREA[0][playerid] = false;
  172.     }
  173.     return 1;
  174. }
  175.  
  176. CMD:zoneoffall(playerid, params[])
  177. {
  178.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO:] {FFFFFF}Somente {FF4500}ADMIN{FFFFFF} do {FF4500}RCON{FFFFFF} podem usar este {FF4500}COMANDO.");
  179.     if(GzAREA[1][playerid] == false)
  180.     {
  181.         GangZoneShowForAll(CriarZONE[1],CORGz);
  182.         GzAREA[1][playerid] = true;
  183.         for (new i = 0; i < 4; i++){
  184.         GangZoneShowForAll(CriarREDOR[i],CORGz);}
  185.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA {21DD00}LIGADO");
  186.     }
  187.     else
  188.     {
  189.         GzAREA[1][playerid] = false;
  190.         GangZoneHideForAll(CriarZONE[1]);
  191.         for (new i = 0; i < 4; i++){
  192.         GangZoneHideForAll(CriarREDOR[i]);}
  193.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA {E60000}DESLIGADO");
  194.     }
  195.     return 1;
  196. }
  197.  
  198. public OnPlayerLeaveDynamicArea(playerid, areaid)
  199. {
  200.     if(GzAREA[0][playerid] == true)
  201.     {
  202.         if(areaid == AreaID[0])
  203.         {
  204.             SendClientMessage(playerid, -1, "{FF0000}[WARNING:]{FFFF00}Você {FF0000}SAIU{FFFF00} da ÁREA!");
  205.             GzTIMER[0] = SetTimer("GangZONE", TIMEgz, true);
  206.         }
  207.     }
  208.     if(GzAREA[1][playerid] == true)
  209.     {
  210.         if(areaid == AreaID[1])
  211.         {
  212.             SendClientMessage(playerid, -1, "{FF0000}[WARNING:]{FFFF00}Você {FF0000}SAIU{FFFF00} da ÁREA!");
  213.             GzTIMER[1] = SetTimer("GangZONall", TIMEgz, true);
  214.         }
  215.     }
  216.     return 1;
  217. }
  218.  
  219. public OnPlayerEnterDynamicArea(playerid, areaid)
  220. {
  221.     if(GzAREA[0][playerid] == true)
  222.     {
  223.         if(areaid == AreaID[0])
  224.         {
  225.             SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00}Você ENTROU na ÁREA! {FF0000}NÃO SAIA");
  226.             KillTimer(GzTIMER[0]);
  227.         }
  228.     }
  229.     if(GzAREA[1][playerid] == true)
  230.     {
  231.         if(areaid == AreaID[1])
  232.         {
  233.             SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00}Você ENTROU na ÁREA! {FF0000}NÃO SAIA");
  234.             KillTimer(GzTIMER[1]);
  235.         }
  236.     }
  237.     return 1;
  238. }
  239.  
  240. forward GangZONE();
  241. public GangZONE()
  242. {
  243.     if(GzAREA[0][0] == true)
  244.     {
  245.         new Float:HP;
  246.         GetPlayerHealth(IDPLAYER, HP);
  247.         SetPlayerHealth(IDPLAYER, HP-HPgz);
  248.     }
  249.     return 1;
  250. }
  251.  
  252. forward GangZONall();
  253. public GangZONall()
  254. {
  255.     if(GzAREA[1][0] == true)
  256.     {
  257.         new Float:HP;
  258.         for (new i = 0; i <MAX_PLAYERS; i++)
  259.         {
  260.             GetPlayerHealth(i, HP);
  261.             SetPlayerHealth(i, HP-HPgz);
  262.         }
  263.     }
  264.     return 1;
  265. }
  266.  
  267. CMD:zonedelete(playerid, params[])
  268. {
  269.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO:] {FFFFFF}Somente {FF4500}ADMIN{FFFFFF} do {FF4500}RCON{FFFFFF} podem usar este {FF4500}COMANDO.");
  270.     for (new i = 0; i < 2; i++){
  271.     GangZoneDestroy(CriarZONE[i]);
  272.     DestroyDynamicArea(AreaID[i]);
  273.     KillTimer(GzTIMER[i]);}
  274.     for (new i = 0; i < 4; i++){
  275.     GangZoneDestroy(CriarREDOR[i]);}
  276.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} TODAS as Zonas SEGURAS foram DELETADAS!");
  277.     return 1;
  278. }
  279.  
  280. CMD:zonewarning(playerid, params[])
  281. {
  282.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO:] {FFFFFF}Somente {FF4500}ADMIN{FFFFFF} do {FF4500}RCON{FFFFFF} podem usar este {FF4500}COMANDO.");
  283.     new Warning;
  284.     if(GzAREA[3][playerid] == false)
  285.     {
  286.         SendClientMessage(playerid,-1,"ZONA WARNING {FF0000}DESLIGADO");
  287.         Warning = SetTimer("GzWARNING1",2000,true);
  288.         GzAREA[3][playerid] = true;
  289.     }
  290.     else
  291.     {
  292.         SendClientMessage(playerid,-1,"ZONA WARNING {21DD00}LIGADO");
  293.         KillTimer(Warning);
  294.         GzAREA[3][playerid] = false;
  295.     }
  296.     return 1;
  297. }
  298.  
  299. forward GzWARNING1();
  300. public GzWARNING1()
  301. {
  302.     if(GzAREA[3][0] == false)
  303.     {
  304.         for(new i; i < MAX_PLAYERS; i++)
  305.         {
  306.             GameTextForPlayer(i,"WARNING!",1000,4);
  307.             GetPlayerPos(i,GzX[2],GzY[2],GzZ[2]);
  308.             PlayerPlaySound(i,1056,GzX[2],GzY[2],GzZ[2]);
  309.         }
  310.     }
  311. }
  312.  
  313. new strGzA[1585];
  314. new NamGzA;
  315.  
  316.     CMD:cmdzone(playerid)
  317.     {                          
  318.         strcat(strGzA, " {FF0000}COMANDOS: {FFFFFF}[OBS:]{FFFF00} {00FCFC}AREA SEGURA{FFFFFF} {FF0000}={FFFF00} Se o PLAYER estiver DENTRO não perde vida, SE TIVER FORA, perde VIDA\n");
  319.         strcat(strGzA, " {FFFFFF}[OBS:]{00BFFF}[ID] {FF0000}={FFFFFF} GANGZONE, é {00FCFC}AREA SEGURA{FFFFFF} para um PLAYER    {FF0000}// {FF4500}[TODOS] {FF0000}={FFFFFF} GANGZONE, é {00FCFC}AREA SEGURA{FFFFFF} para TODOS os PLAYERs\n");
  320.         strcat(strGzA, " {FF0000}_________________________________________________________________________________________________________________________________________\n");
  321.         strcat(strGzA, " {33CC33}/zone {FF0000}={00FCFC} Cria uma AREA SEGURA, é um GANGZONE para um PLAYER {00BFFF}[ID]\n");
  322.         strcat(strGzA, " {33CC33}/zoneall {FF0000}={00FCFC} Cria uma AREA SEGURA, é um GANGZONE para todos os PLAYERs {FF4500}[TODOS]\n");
  323.         strcat(strGzA, " {33CC33}/redor {FF0000}={00FCFC} Cria uma AREA SEGURA {FFFF00}[INVERTIDA]{00FCFC}, CENTRO LIMPO, em VOLTA VERMELHO {FF4500}[TODOS]\n");
  324.         strcat(strGzA, " {33CC33}/zoneflash {FF0000}={00FCFC} O GANGZONE da AREA SEGURA fica PISCANDO {FF4500}[TODOS]\n");
  325.         strcat(strGzA, " {33CC33}/zoneoff {FF0000}={00FCFC} {33CC33}[ATIVA/ {FF0000}DESATIVA]{00FCFC} os GANGZONEs é as AREAs SEGURAs {33CC33}(DE TODAS AS AREAS) {FF4500}[TODOS]\n");
  326.         strcat(strGzA, " {33CC33}/zonedelete {FF0000}={00FCFC} DELETA o GANGZONE das AREAs SEGURAs  {33CC33}(DE TODAS AS AREAS) {FF4500}[TODOS]\n");
  327.         strcat(strGzA, " {33CC33}/zonewarning {FF0000}={00FCFC} MENSAGEM de 'WARNING' na TELA de TODOS os PLAYERS {FF4500}[TODOS]\n");
  328.         strcat(strGzA, " {33CC33}/zonedefine {FF0000}={FFFF00} DEFINA{00FCFC} a {FFFF00}VIDA{00FCFC} que o PLAYER vai PERDER, é a {FFFF00}VELOCIDADE{00FCFC} que vai PERDER\n");
  329.         strcat(strGzA, " {1E90FF}___________________________________________________________________________________________________________________________________________");
  330.         ShowPlayerDialog(playerid, NamGzA, DIALOG_STYLE_MSGBOX, "{1E90FF} __________________________________________________ {FF0000}[ CMD GangZONE, AREA SEGURA ] {1E90FF}_________________________________________________________", strGzA, "OK", "");
  331.         return 1;
  332.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement