Advertisement
CromartieTX

[FS SAMP] Area Segura (Secure Area)

Feb 26th, 2019
392
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.62 KB | None | 0 0
  1. /* CREDITOS       26/02/2019
  2. Desenvolvedor   : CROMARTIE
  3. VIDEO Youtube   : https://www.youtube.com/watch?v=7KKqpFGGo0Q
  4. CONTATO DISCORD : TAG DISCORD = Cromartie#4133
  5. */
  6.  
  7. #include <a_samp>
  8. #include <sscanf2>
  9. #include <zcmd>
  10.  
  11. new IDPLAYER;
  12. new CMDPlayer;
  13. new Float:GzRADIAU;
  14. new Float:GzX, Float:GzY, Float:GzZ;
  15. new Float:GzXf, Float:GzYf, Float:GzZf;
  16. new CriarZONEr[4];
  17. new CriarZONE;
  18. new CriarZONall;
  19. new CORGz;
  20. new GzTIMERxALL;
  21. new GzTIMERy;
  22.  
  23. new bool:ZoneK[MAX_PLAYERS];
  24. new bool:ZoneALLx[MAX_PLAYERS];
  25. new bool:GzZONE[MAX_PLAYERS];
  26. new bool:GzZONEall[MAX_PLAYERS];
  27. new bool:GzZONwar[MAX_PLAYERS];
  28.  
  29. new HPgzDEFINE, TIMEgzDEFINE;
  30. #define ConstGz GzRADIAU
  31. #define HPgz HPgzDEFINE
  32. #define TIMEgz TIMEgzDEFINE
  33.  
  34. forward GangZONE();
  35. forward GangZONall();
  36. forward GzWARNING1();
  37.  
  38. public OnFilterScriptInit(){
  39.     HPgz = 5;
  40.     TIMEgz = 2000;
  41.     return 1;}
  42.  
  43. CMD:zonedefine(playerid, params[]){
  44.     new HP, TIME;
  45.     if(sscanf(params, "ii", HP, TIME)) return SendClientMessage(playerid, -1, "{FF0000}[USE:]{33CC33} /zonedefine [HP que vai PERDER] [Velocidade que vai PERDER] {FF0000}[EX:]{FFFF00} 3 500");
  46.     HPgzDEFINE = HP;
  47.     TIMEgzDEFINE = TIME;
  48.     new str[130]; format(str,sizeof(str),"[INFO:]{33CC33} Vida é Velocidade DEFINIDO para {00FCFC}VIDA: {FFFF00}%i{00FCFC}, VELOCIDADE: {FFFF00}%i", HP, TIME ); SendClientMessage(playerid,0xFF0000FF,str);
  49.     return 1;}
  50.  
  51. CMD:zone(playerid, params[]){
  52.     if(ZoneK[playerid] == false)
  53.     {
  54.         new ID, Float:Radiau, COR;
  55.         if(sscanf(params, "ufN(0xFF000066)", ID, Radiau,COR)) return SendClientMessage(playerid, -1, "{FF0000}[USE:]{33CC33} /zone [PLayer ID] [Radiau] [OPCIONAL: (COR)] {FF0000}[EX:]{FFFF00} 199 10 {FF0000}[EX:]{FFFF00} 199 10 0x33CC3366");
  56.         GzRADIAU = Radiau;
  57.         IDPLAYER = ID;
  58.         CMDPlayer = playerid;
  59.         GzTIMERy = SetTimer("GangZONE", TIMEgz, true);
  60.         GetPlayerPos(CMDPlayer, GzX, GzY, GzZ);
  61.         CORGz = COR;
  62.         CriarZONE = GangZoneCreate(GzX+ConstGz, GzY+ConstGz, GzX-ConstGz, GzY-ConstGz);
  63.         GangZoneShowForAll(CriarZONE,COR);
  64.         SendClientMessage(ID, -1, "{FF0000}[WARNING!] NÂO SAIA DA AREA!");
  65.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} A Zona SEGURA Foi CRIADA");
  66.         ZoneK[CMDPlayer] = true;
  67.     }
  68.     else
  69.     {
  70.         ZoneK[CMDPlayer] = false;
  71.         KillTimer(GzTIMERy);
  72.         GangZoneDestroy(CriarZONE);
  73.         SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00} a AREA SEGURA foi {FF0000}DELETADO!");
  74.     }
  75.     return 1;}
  76.  
  77. CMD:zoneall(playerid, params[]){
  78.     if(ZoneALLx[playerid] == false)
  79.     {
  80.         new Float:Radiau, COR;
  81.         for (new i = 0; i < 999; i++)
  82.         {
  83.             if(sscanf(params, "fN(0xFF000066)", Radiau,COR)) return SendClientMessage(playerid, -1, "{FF0000}[USE:]{33CC33} /zoneall [Radiau] [OPCIONAL: (COR)] {FF0000}[EX:]{FFFF00}/zoneall 10 {FF0000}[EX:]{FFFF00}/zoneall 10 0x33CC3366");
  84.             GzRADIAU = Radiau;
  85.             CMDPlayer = playerid;
  86.             GetPlayerPos(CMDPlayer, GzX, GzY, GzZ);
  87.             CORGz = COR;
  88.             SendClientMessage(i, -1, "{FF0000}[WARNING!] NÂO SAIA DA AREA!");
  89.             SendClientMessage(i,-1,"{FF0000}[INFO:]{33CC33} A Zona SEGURA Foi CRIADA");
  90.             ZoneALLx[CMDPlayer] = true;
  91.         }
  92.         GzTIMERxALL = SetTimer("GangZONall", TIMEgz, true);
  93.         CriarZONall = GangZoneCreate(GzX+ConstGz, GzY+ConstGz, GzX-ConstGz, GzY-ConstGz);
  94.         GangZoneShowForAll(CriarZONall,COR);
  95.     }
  96.     else
  97.     {
  98.         GangZoneDestroy(CriarZONall);
  99.         SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00} a AREA SEGURA foi {FF0000}DELETADO!");
  100.         ZoneALLx[CMDPlayer] = false;
  101.         KillTimer(GzTIMERxALL);
  102.     }
  103.     return 1;}
  104.  
  105. CMD:redor(playerid, params[]){
  106.     if(ZoneALLx[playerid] == false)
  107.     {
  108.         new Float:Radiau, COR, VEZES;
  109.         if(sscanf(params, "fI(8)N(0xFF000066)", Radiau,VEZES,COR))
  110.         {
  111.             SendClientMessage(playerid, -1, "{FF0000}[USE:]{33CC33} /redor [Radiau DENTRO] [OPCIONAL:(Radiau FORA)(COR)]");
  112.             SendClientMessage(playerid, -1, "{FF0000}[EX:]/redor{FFFF00} 10{FF0000}[EX:]{FFFF00}/redor 10 20 0x33CC3366");
  113.             return 1;
  114.         }
  115.         GzRADIAU = Radiau;
  116.         CMDPlayer = playerid;
  117.         GetPlayerPos(playerid, GzX, GzY, GzZ);
  118.         CriarZONEr[0] = GangZoneCreate(GzX+Radiau, GzY+Radiau*VEZES, GzX+Radiau*VEZES, GzY-Radiau);
  119.         CriarZONEr[1] = GangZoneCreate(GzX-Radiau, GzY-Radiau*VEZES, GzX-Radiau*VEZES, GzY+Radiau);
  120.         CriarZONEr[2] = GangZoneCreate(GzX-Radiau*VEZES, GzY+Radiau, GzX+Radiau, GzY+Radiau*VEZES);
  121.         CriarZONEr[3] = GangZoneCreate(GzX-Radiau, GzY-Radiau, GzX+Radiau*VEZES, GzY-Radiau*VEZES);
  122.         GangZoneShowForAll(CriarZONEr[0],COR);
  123.         GangZoneShowForAll(CriarZONEr[1],COR);
  124.         GangZoneShowForAll(CriarZONEr[2],COR);
  125.         GangZoneShowForAll(CriarZONEr[3],COR);
  126.         SendClientMessage(playerid, -1, "{FF0000}[WARNING!] NÂO SAIA DA AREA!");
  127.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} A Zona SEGURA Foi CRIADA");
  128.         GzTIMERxALL = SetTimer("GangZONall", TIMEgz, true);
  129.         ZoneALLx[playerid] = true;
  130.     }
  131.     else
  132.     {
  133.         ZoneALLx[playerid] = false;
  134.         KillTimer(GzTIMERxALL);
  135.         GangZoneDestroy(CriarZONEr[0]);
  136.         GangZoneDestroy(CriarZONEr[1]);
  137.         GangZoneDestroy(CriarZONEr[2]);
  138.         GangZoneDestroy(CriarZONEr[3]);
  139.         SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00} a AREA SEGURA foi {FF0000}DELETADO!");
  140.     }
  141.     return 1;}
  142.  
  143. CMD:zoneflash(playerid, params[]){
  144.     GangZoneFlashForAll(CriarZONE,0xFFFFFF00);
  145.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Flash GANGZONE foi ATIVADO");
  146.     return 1;}
  147.  
  148. CMD:zoneflashall(playerid, params[]) {
  149.     GangZoneFlashForAll(CriarZONall,0xFFFFFF00);
  150.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Flash GANGZONE foi ATIVADO");
  151.     return 1;}
  152.  
  153.  
  154. CMD:zoneoff(playerid, params[]){
  155.     //new ID;
  156.     //if(ID != IDPLAYER)
  157.     //{
  158.     if(GzZONE[playerid] == false)
  159.     {
  160.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA {E60000}DESLIGADO");
  161.         GangZoneHideForAll(CriarZONE);
  162.         GzZONE[CMDPlayer] = true;
  163.     }
  164.     else
  165.     {
  166.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA {21DD00}LIGADO");
  167.         GangZoneShowForAll(CriarZONE,CORGz);
  168.         GzZONE[CMDPlayer] = false;
  169.     }
  170.     //}
  171.     return 1;}
  172.  
  173.  
  174. CMD:zoneoffall(playerid, params[]){
  175.     //new ID;
  176.     //if(ID != IDPLAYER)
  177.     //{
  178.     if(GzZONEall[playerid] == false)
  179.     {
  180.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA {E60000}DESLIGADO");
  181.         GangZoneHideForAll(CriarZONall);
  182.         GzZONEall[CMDPlayer] = true;
  183.     }
  184.     else
  185.     {
  186.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA {21DD00}LIGADO");
  187.         GangZoneShowForAll(CriarZONall,CORGz);
  188.         GzZONEall[CMDPlayer] = false;
  189.     }
  190.     //}
  191.     return 1;}
  192.  
  193. public GangZONE(){
  194.     new Float:HP;
  195.     if(GzZONE[CMDPlayer] == false)
  196.     {
  197.         if(IsPlayerInRangeOfPoint(IDPLAYER, GzRADIAU, GzX, GzY, GzZ))
  198.         {
  199.             //SendClientMessage(IDPLAYER, -1, "PERMANEÇA DENTRO DA AREA!");
  200.         }
  201.         else
  202.         {
  203.             GetPlayerHealth(IDPLAYER, HP);
  204.             SetPlayerHealth(IDPLAYER, HP-HPgz);
  205.         }
  206.     }
  207.     return 1;}
  208.  
  209. public GangZONall(){
  210.     new Float:HP;
  211.     for (new i = 0; i < 999; i++)
  212.     {
  213.         if(GzZONEall[CMDPlayer] == false)
  214.         {
  215.             if(IsPlayerInRangeOfPoint(i, GzRADIAU, GzX, GzY, GzZ))
  216.             {
  217.                 //SendClientMessage(IDPLAYER, -1, "PERMANEÇA DENTRO DA AREA!");
  218.             }
  219.             else
  220.             {
  221.                 GetPlayerHealth(i, HP);
  222.                 SetPlayerHealth(i, HP-HPgz);
  223.             }
  224.         }
  225.     }
  226.     return 1;}
  227.  
  228. CMD:zonedelete(playerid, params[]){
  229.     GangZoneDestroy(CriarZONE);
  230.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA foi DELETADA!");
  231.     return 1;}
  232.  
  233. CMD:zonedeleteall(playerid, params[]){
  234.     GangZoneDestroy(CriarZONall);
  235.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA foi DELETADA!");
  236.     return 1;}
  237.  
  238. CMD:zonetime(playerid, params[]){
  239.     KillTimer(GzTIMERy);
  240.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} O TIME foi DELETADO!");
  241.     return 1;}
  242.  
  243. CMD:zonetimeall(playerid, params[]){
  244.     KillTimer(GzTIMERxALL);
  245.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} O TIME foi DELETADO!");
  246.     return 1;}
  247.  
  248. CMD:zonewarning(playerid, params[]){
  249.     if(GzZONwar[playerid] == false)
  250.     {
  251.         SendClientMessage(playerid,-1,"ZONA WARNING {FF0000}DESLIGADO");
  252.         SetTimer("GzWARNING1",2000,true);
  253.         GzZONwar[CMDPlayer] = true;
  254.     }
  255.     else
  256.     {
  257.         SendClientMessage(playerid,-1,"ZONA WARNING {21DD00}LIGADO");
  258.         GzZONwar[CMDPlayer] = false;
  259.     }
  260.     return 1;}
  261.  
  262. public GzWARNING1(){
  263.     if(GzZONwar[0] == false)
  264.     {
  265.         for(new i; i < MAX_PLAYERS; i++)
  266.         {
  267.             GameTextForPlayer(i,"WARNING!",1000,4);
  268.             GetPlayerPos(i,GzXf,GzYf,GzZf);
  269.             PlayerPlaySound(i,1056,GzXf,GzYf,GzZf);
  270.         }
  271.     }}
  272.  
  273. new strGzA[2130];
  274. new CROMARTIE;
  275.     CMD:cmdzone(playerid){
  276.         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");
  277.         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");
  278.         strcat(strGzA, " {FF0000}_________________________________________________________________________________________________________________________________________\n");
  279.         strcat(strGzA, " {33CC33}/zone {FF0000}={00FCFC} Cria uma AREA SEGURA, é um GANGZONE para um PLAYER {00BFFF}[ID]\n");
  280.         strcat(strGzA, " {33CC33}/zoneall {FF0000}={00FCFC} Cria uma AREA SEGURA, é um GANGZONE para todos os PLAYERs {FF4500}[TODOS]\n");
  281.         strcat(strGzA, " {33CC33}/redor {FF0000}={00FCFC} Cria uma AREA SEGURA {FFFF00}[INVERTIDA]{00FCFC}, CENTRO LIMPO, em VOLTA VERMELHO {FF4500}[TODOS]\n");
  282.         strcat(strGzA, " {33CC33}/zoneflash {FF0000}={00FCFC} O GANGZONE da AREA SEGURA fica PISCANDO {00BFFF}[ID]\n");
  283.         strcat(strGzA, " {33CC33}/zoneflashall {FF0000}={00FCFC} O GANGZONE da AREA SEGURA fica PISCANDO {FF4500}[TODOS]\n");
  284.         strcat(strGzA, " {33CC33}/zoneoff {FF0000}={00FCFC} {33CC33}[ATIVA/ {FF0000}DESATIVA]{00FCFC} o GANGZONE é a AREA SEGURA {00BFFF}[ID]\n");
  285.         strcat(strGzA, " {33CC33}/zoneoffall {FF0000}={00FCFC} {33CC33}[ATIVA/ {FF0000}DESATIVA]{00FCFC} o GANGZONE é a AREA SEGURA {FF4500}[TODOS]\n");
  286.         strcat(strGzA, " {33CC33}/zonedelete {FF0000}={00FCFC} DELETA o GANGZONE da AREA SEGURA do PLAYER {00BFFF}[ID]\n");
  287.         strcat(strGzA, " {33CC33}/zonedeleteall {FF0000}={00FCFC} DELETA o GANGZONE da AREA SEGURA dos PLAYERs {FF4500}[TODOS]\n");
  288.         strcat(strGzA, " {33CC33}/zonewarning {FF0000}={00FCFC} MENSAGEM de 'WARNING' na TELA de TODOS os PLAYERS {FF4500}[TODOS]\n");
  289.         strcat(strGzA, " {33CC33}/zonetime {FF0000}={00FCFC} RESETAR o TIME (Velocidade que vai PERDER a VIDA se SAIR da AREA SEGURA) {00BFFF}[ID]\n");
  290.         strcat(strGzA, " {33CC33}/zonetimeall {FF0000}={00FCFC} RESETAR o TIME (Velocidade que vai PERDER a VIDA se SAIR da AREA SEGURA) {FF4500}[TODOS]\n");
  291.         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");
  292.         strcat(strGzA, " {1E90FF}___________________________________________________________________________________________________________________________________________");
  293.         ShowPlayerDialog(playerid, CROMARTIE, DIALOG_STYLE_MSGBOX, "{1E90FF} __________________________________________________ {FF0000}[ CMD GangZONE, AREA SEGURA ] {1E90FF}_________________________________________________________", strGzA, "OK", "");
  294.         return 1;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement