Advertisement
CromartieTX

[FS SAMP] Area Segura (Ver. 2.0)

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