CromartieTX

[FS SAMP] Secure Area

Feb 27th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 10.47 KB | None | 0 0
  1. /* CREDITS            02/26/2019
  2. Developer           : CROMARTIE
  3. VIDEO Youtube       : https://www.youtube.com/watch?v=7KKqpFGGo0Q
  4. CONTACT DISCORD TAG : Cromartie#4133
  5. */
  6.  
  7. #include <a_samp>
  8. #include <sscanf2>
  9. #include <zcmd>
  10. #include <YSI\y_hooks>
  11.  
  12. new IDPLAYER;
  13. new CMDPlayer;
  14. new Float:GzRADIAU;
  15. new Float:GzX, Float:GzY, Float:GzZ;
  16.  
  17. new CreatZONE;
  18. new CreatZONall;
  19. new COLORGz;
  20.  
  21. new GzTIMERxALL;
  22. new GzTIMERy;
  23.  
  24. #define ConstGz GzRADIAU
  25. new HPgzDEFINE, TIMEgzDEFINE;
  26. #define HPgz HPgzDEFINE
  27. #define TIMEgz TIMEgzDEFINE
  28.  
  29. hook OnFilterScriptInit()
  30. {
  31.     HPgz = 5;
  32.     TIMEgz = 2000;
  33.     return 1;
  34. }
  35.  
  36. CMD:zonedefine(playerid, params[])
  37. {
  38.     if(sscanf(params, "ii", HPgz, TIMEgz)) return SendClientMessage(playerid, -1, "{FF0000}[USAGE:]{33CC33} /zonedefine [LIFE going to lose] [Speed that will LOSE] {FF0000}[EX:]{FFFF00} 3 500");
  39.     new str[130]; format(str,sizeof(str),"[INFO:]{33CC33} Life is Speed DEFINED for {00FCFC}LIFE: {FFFF00}%i{00FCFC}, SPEED: {FFFF00}%i", HPgz, TIMEgz); SendClientMessage(playerid,0xFF0000FF,str);
  40.     return 1;
  41. }
  42.  
  43. new bool:ZoneK[MAX_PLAYERS];
  44. CMD:zone(playerid, params[])
  45. {
  46.     if(ZoneK[playerid] == false)
  47.     {
  48.         if(sscanf(params, "ufN(0xFF000066)", IDPLAYER, GzRADIAU,COLORGz)) return SendClientMessage(playerid, -1, "{FF0000}[USAGE:]{33CC33} /zone [Player ID] [Radiau] [OPTIONAL: (COLOR)] {FF0000}[EX:]{FFFF00} 199 10 {FF0000}[EX:]{FFFF00} 199 10 0x33CC3366");
  49.         GzTIMERy = SetTimer("GangZONE", TIMEgz, true);
  50.         GetPlayerPos(CMDPlayer, GzX, GzY, GzZ);
  51.         CreatZONE = GangZoneCreate(GzX+ConstGz, GzY+ConstGz, GzX-ConstGz, GzY-ConstGz);
  52.         GangZoneShowForAll(CreatZONE,COLORGz);
  53.         SendClientMessage(IDPLAYER, -1, "{FF0000}[WARNING!] DO NOT LEAVE THE AREA!");
  54.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} SAFE AREA HAS BEEN CREATED");
  55.         ZoneK[CMDPlayer] = true;
  56.     }
  57.     else
  58.     {
  59.         ZoneK[CMDPlayer] = false;
  60.         KillTimer(GzTIMERy);
  61.         GangZoneDestroy(CreatZONE);
  62.         SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00} The SAFE AREA was {FF0000}DELETED!");
  63.     }
  64.     return 1;
  65. }
  66.  
  67. new bool:ZoneALLx[MAX_PLAYERS];
  68. CMD:zoneall(playerid, params[])
  69. {
  70.     if(ZoneALLx[playerid] == false)
  71.     {
  72.         for (new i = 0; i <MAX_PLAYERS; i++)
  73.         {
  74.             if(sscanf(params, "fN(0xFF000066)", GzRADIAU ,COLORGz)) return SendClientMessage(playerid, -1, "{FF0000}[USAGE:]{33CC33} /zoneall [Radiau] [OPCIONAL: (COLOR)] {FF0000}[EX:]{FFFF00}/zoneall 10 {FF0000}[EX:]{FFFF00}/zoneall 10 0x33CC3366");
  75.             GetPlayerPos(CMDPlayer, GzX, GzY, GzZ);
  76.             SendClientMessage(i, -1, "{FF0000}[WARNING!] DO NOT LEAVE THE AREA!");
  77.             SendClientMessage(i,-1,"{FF0000}[INFO:]{33CC33} SAFE AREA HAS BEEN CREATED");
  78.             ZoneALLx[CMDPlayer] = true;
  79.         }
  80.         GzTIMERxALL = SetTimer("GangZONall", TIMEgz, true);
  81.         CreatZONall = GangZoneCreate(GzX+ConstGz, GzY+ConstGz, GzX-ConstGz, GzY-ConstGz);
  82.         GangZoneShowForAll(CreatZONall,COLORGz);
  83.     }
  84.     else
  85.     {
  86.         GangZoneDestroy(CreatZONall);
  87.         SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00} The SAFE AREA was {FF0000}DELETED!");
  88.         ZoneALLx[CMDPlayer] = false;
  89.         KillTimer(GzTIMERxALL);
  90.     }
  91.     return 1;
  92. }
  93.  
  94. new CreatREDOR[4];
  95. CMD:redor(playerid, params[])
  96. {
  97.     if(ZoneALLx[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}[USAGE:]{33CC33} /redor [Radiau INSIDE] [OPTIONAL:(Radiau OUT)(COLOR)]");
  103.             SendClientMessage(playerid, -1, "{FF0000}[EX:]/redor{FFFF00} 10{FF0000}[EX:]{FFFF00}/redor 10 20 0x33CC3366");
  104.             return 1;
  105.         }
  106.         GetPlayerPos(playerid, GzX, GzY, GzZ);
  107.         CreatREDOR[0] = GangZoneCreate(GzX+GzRADIAU, GzY+GzRADIAU*VEZES, GzX+GzRADIAU*VEZES, GzY-GzRADIAU);
  108.         CreatREDOR[1] = GangZoneCreate(GzX-GzRADIAU, GzY-GzRADIAU*VEZES, GzX-GzRADIAU*VEZES, GzY+GzRADIAU);
  109.         CreatREDOR[2] = GangZoneCreate(GzX-GzRADIAU*VEZES, GzY+GzRADIAU, GzX+GzRADIAU, GzY+GzRADIAU*VEZES);
  110.         CreatREDOR[3] = GangZoneCreate(GzX-GzRADIAU, GzY-GzRADIAU, GzX+GzRADIAU*VEZES, GzY-GzRADIAU*VEZES);
  111.         for (new i = 0; i < 4; i++){
  112.         GangZoneShowForAll(CreatREDOR[i],COR);}
  113.         for (new i = 0; i <MAX_PLAYERS; i++){
  114.         SendClientMessage(i, -1, "{FF0000}[WARNING!] DO NOT LEAVE THE AREA!");
  115.         SendClientMessage(i,-1,"{FF0000}[INFO:]{33CC33} SAFE AREA HAS BEEN CREATED");}
  116.         GzTIMERxALL = SetTimer("GangZONall", TIMEgz, true);
  117.         ZoneALLx[playerid] = true;
  118.     }
  119.     else
  120.     {
  121.         ZoneALLx[playerid] = false;
  122.         KillTimer(GzTIMERxALL);
  123.         for (new i = 0; i < 4; i++){
  124.         GangZoneDestroy(CreatREDOR[i]);}
  125.         SendClientMessage(playerid, -1, "{FF0000}[INFO:]{FFFF00} The SAFE AREA was {FF0000}DELETED!");
  126.     }
  127.     return 1;
  128. }
  129.  
  130. CMD:zoneflash(playerid, params[])
  131. {
  132.     GangZoneFlashForAll(CreatZONE,0xFFFFFF00);
  133.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Flash GANGZONE was ON");
  134.     return 1;
  135. }
  136.  
  137. CMD:zoneflashall(playerid, params[])
  138. {
  139.     GangZoneFlashForAll(CreatZONall,0xFFFFFF00);
  140.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Flash GANGZONE was ON");
  141.     return 1;
  142. }
  143.  
  144. new bool:GzZONE[MAX_PLAYERS];
  145. CMD:zoneoff(playerid, params[])
  146. {
  147.     if(GzZONE[playerid] == false)
  148.     {
  149.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} SECURE Zone {E60000}OFF");
  150.         GangZoneHideForAll(CreatZONE);
  151.         GzZONE[CMDPlayer] = true;
  152.     }
  153.     else
  154.     {
  155.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} SECURE Zone {21DD00}ON");
  156.         GangZoneShowForAll(CreatZONE,COLORGz);
  157.         GzZONE[CMDPlayer] = false;
  158.     }
  159.     return 1;
  160. }
  161.  
  162. new bool:GzZONEall[MAX_PLAYERS];
  163. CMD:zoneoffall(playerid, params[])
  164. {
  165.     if(GzZONEall[playerid] == false)
  166.     {
  167.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA {E60000}OFF");
  168.         GangZoneHideForAll(CreatZONall);
  169.         GzZONEall[CMDPlayer] = true;
  170.     }
  171.     else
  172.     {
  173.         SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} Zona SEGURA {21DD00}ON");
  174.         GangZoneShowForAll(CreatZONall,COLORGz);
  175.         GzZONEall[CMDPlayer] = false;
  176.     }
  177.     return 1;
  178. }
  179.  
  180. forward GangZONE();
  181. public GangZONE()
  182. {
  183.     new Float:HP;
  184.     if(GzZONE[CMDPlayer] == false)
  185.     {
  186.         if(IsPlayerInRangeOfPoint(IDPLAYER, GzRADIAU, GzX, GzY, GzZ))
  187.         {
  188.             //SendClientMessage(IDPLAYER, -1, "STAY INSIDE THE AREA!");
  189.         }
  190.         else
  191.         {
  192.             GetPlayerHealth(IDPLAYER, HP);
  193.             SetPlayerHealth(IDPLAYER, HP-HPgz);
  194.         }
  195.     }
  196.     return 1;
  197. }
  198.  
  199. forward GangZONall();
  200. public GangZONall()
  201. {
  202.     new Float:HP;
  203.     for (new i = 0; i <MAX_PLAYERS; i++)
  204.     {
  205.         if(GzZONEall[CMDPlayer] == false)
  206.         {
  207.             if(IsPlayerInRangeOfPoint(i, GzRADIAU, GzX, GzY, GzZ))
  208.             {
  209.                 //SendClientMessage(i, -1, "STAY INSIDE THE AREA!");
  210.             }
  211.             else
  212.             {
  213.                 GetPlayerHealth(i, HP);
  214.                 SetPlayerHealth(i, HP-HPgz);
  215.             }
  216.         }
  217.     }
  218.     return 1;
  219. }
  220.  
  221. CMD:zonedelete(playerid, params[])
  222. {
  223.     GangZoneDestroy(CreatZONE);
  224.     KillTimer(GzTIMERy);
  225.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} SAFE Zone was DELETED!");
  226.     return 1;
  227. }
  228.  
  229. CMD:zonedeleteall(playerid, params[])
  230. {
  231.     GangZoneDestroy(CreatZONall);
  232.     KillTimer(GzTIMERxALL);
  233.     SendClientMessage(playerid,-1,"{FF0000}[INFO:]{33CC33} SAFE Zone was DELETED!");
  234.     return 1;
  235. }
  236.  
  237. new bool:GzZONwar[MAX_PLAYERS];
  238. CMD:zonewarning(playerid, params[])
  239. {
  240.     if(GzZONwar[playerid] == false)
  241.     {
  242.         SendClientMessage(playerid,-1,"ZONA WARNING {FF0000}OFF");
  243.         SetTimer("GzWARNING1",2000,true);
  244.         GzZONwar[CMDPlayer] = true;
  245.     }
  246.     else
  247.     {
  248.         SendClientMessage(playerid,-1,"ZONA WARNING {21DD00}ON");
  249.         GzZONwar[CMDPlayer] = false;
  250.     }
  251.     return 1;
  252. }
  253.  
  254. forward GzWARNING1();
  255. public GzWARNING1()
  256. {
  257.     if(GzZONwar[0] == false)
  258.     {
  259.         for(new i; i < MAX_PLAYERS; i++)
  260.         {
  261.             GameTextForPlayer(i,"WARNING!",1000,4);
  262.             GetPlayerPos(i,GzX,GzY,GzZ);
  263.             PlayerPlaySound(i,1056,GzX,GzY,GzZ);
  264.         }
  265.     }
  266. }
  267.  
  268. new strGzA[1818];
  269. new NamGzA;
  270.  
  271.     CMD:cmdzone(playerid)
  272.     {
  273.         strcat(strGzA, " {FF0000}COMMANDS: {FFFFFF}[OBS:]{FFFF00} {00FCFC}SAFE AREA{FFFFFF} {FF0000}={FFFF00} If the PLAYER is IN, it does not lose life, IF IT IS OUT, it loses LIFE\n");
  274.         strcat(strGzA, " {FFFFFF}[OBS:]{00BFFF}[ID] {FF0000}={FFFFFF} GANGZONE, is {00FCFC}SAFE AREA{FFFFFF} for a PLAYER    {FF0000}// {FF4500}[ALL] {FF0000}={FFFFFF} GANGZONE, is {00FCFC}SAFE AREA{FFFFFF} for ALL PLAYERS\n");
  275.         strcat(strGzA, " {FF0000}_________________________________________________________________________________________________________________________________________\n");
  276.         strcat(strGzA, " {33CC33}/zone {FF0000}={00FCFC} Create a SAFE AREA, IT'S A GANGZONE FOR A PLAYER {00BFFF}[ID]\n");
  277.         strcat(strGzA, " {33CC33}/zoneall {FF0000}={00FCFC} Create a SAFE AREA, it's a GANGZONE for all PLAYERS {FF4500}[ALL]\n");
  278.         strcat(strGzA, " {33CC33}/redor {FF0000}={00FCFC} Create a SAFE AREA {FFFF00}[INVERTED]{00FCFC}, 'Clean center, off red' {FF4500}[ALL]\n");
  279.         strcat(strGzA, " {33CC33}/zoneflash {FF0000}={00FCFC} THE GANGZONE OF SAFE AREA FLASHING {00BFFF}[ID]\n");
  280.         strcat(strGzA, " {33CC33}/zoneflashall {FF0000}={00FCFC} THE GANGZONE OF SAFE AREA FLASHING {FF4500}[ALL]\n");
  281.         strcat(strGzA, " {33CC33}/zoneoff {FF0000}={00FCFC} {33CC33}[ACTIVE/ {FF0000}DISABLED]{00FCFC} GANGZONE is the SAFE AREA {00BFFF}[ID]\n");
  282.         strcat(strGzA, " {33CC33}/zoneoffall {FF0000}={00FCFC} {33CC33}[ACTIVE/ {FF0000}DISABLED]{00FCFC} GANGZONE is the SAFE AREA {FF4500}[ALL]\n");
  283.         strcat(strGzA, " {33CC33}/zonedelete {FF0000}={00FCFC} DELETE or GANGZONE SAFE PLAYER AREA {00BFFF}[ID]\n");
  284.         strcat(strGzA, " {33CC33}/zonedeleteall {FF0000}={00FCFC} DELETE GANGZONE OF SAFE PLAYERs AREA {FF4500}[ALL]\n");
  285.         strcat(strGzA, " {33CC33}/zonewarning {FF0000}={00FCFC} WARNING MESSAGE on ALL PLAYERS SCREENS {FF4500}[ALL]\n");
  286.         strcat(strGzA, " {33CC33}/zonedefine {FF0000}={FFFF00} DEFINE{00FCFC} The {FFFF00}LIFE{00FCFC} that the PLAYER is going to LOSE, is the {FFFF00}VELOCITY{00FCFC} going to lose\n");
  287.         strcat(strGzA, " {1E90FF}___________________________________________________________________________________________________________________________________________");
  288.         ShowPlayerDialog(playerid, NamGzA, DIALOG_STYLE_MSGBOX, "{1E90FF} __________________________________________________ {FF0000}[ CMD GangZONE, SAFE AREA ] {1E90FF}_________________________________________________________", strGzA, "OK", "");
  289.         return 1;
  290.     }
Advertisement
Add Comment
Please, Sign In to add comment