Advertisement
ScydoPaste

[INC] Just Property

Jun 11th, 2019
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.21 KB | None | 0 0
  1. #include <a_samp>
  2. #define MAX_PROPERTY        125
  3. #define MAX_PROPERTY_NAME   100
  4.  
  5. enum p_main {
  6.     create,
  7.     delete,
  8.     copy,
  9.     null
  10. }
  11.  
  12. enum p_data {
  13.     valid,
  14.     profit,
  15.     bank,
  16.     price,
  17.     owned
  18. }
  19.  
  20. enum enum0 {
  21.     bool: e_Exist,
  22.     e_Name[MAX_PROPERTY_NAME + 1],
  23.     e_Owner[MAX_PLAYER_NAME],
  24.     bool: e_Owned,
  25.     e_Profit, e_Bank, e_Price,
  26.     e_Pickup,
  27.     Float: e_x,
  28.     Float: e_y,
  29.     Float: e_z
  30. }
  31. new _property[MAX_PROPERTY][enum0];
  32.  
  33. #define IsValidProperty(%0) _property[%0][e_Exist]
  34. #define GetPropertyOwner(%0) _property[%0][e_Owner]
  35. #define SetPropertyOwner(%0,%1) format(_property[%0][e_Owner],MAX_PLAYER_NAME,%1)
  36. #define GetPropertyName(%0) _property[%0][e_Name]
  37.  
  38. GetPlayerNearProperty(playerid) {
  39.     new i = 0;
  40.     while (i++ < MAX_PROPERTY) if (IsPlayerInRangeOfPoint(playerid, 1.0, _property[i][e_x], _property[i][e_y], _property[i][e_z])) return i;
  41.     return -1;
  42. }
  43.  
  44. SetPropertyData(p_data: datatype, propertyid, var) {
  45.     if (datatype == valid) _property[propertyid][e_Exist] = var == 1 ? true : false;
  46.     if (datatype == profit) _property[propertyid][e_Profit] = var;
  47.     if (datatype == bank) _property[propertyid][e_Bank] = var;
  48.     if (datatype == price) _property[propertyid][e_Price] = var;
  49.     if (datatype == owned) _property[propertyid][e_Owned] = var == 1 ? true : false;
  50.     return 1;
  51. }
  52.  
  53. GetPropertyData(p_data: datatype, propertyid) {
  54.     if (datatype == valid) return _property[propertyid][e_Exist];
  55.     if (datatype == profit) return _property[propertyid][e_Profit];
  56.     if (datatype == bank) return _property[propertyid][e_Bank];
  57.     if (datatype == price) return _property[propertyid][e_Price];
  58.     if (datatype == owned) return _property[propertyid][e_Owned];
  59.     return 0;
  60. }
  61.  
  62. Property(p_main: mode, name[] = "", bool: byPos=false, bool:byPlayer=false, player =-1, propertyid =-1, Float:x=0.0, Float:y=0.0, Float:z=0.0, pickupm = 1239) {
  63.     if (mode == create) {
  64.         new i = 0, freeid = -1;
  65.         while (i++ < MAX_PROPERTY) {
  66.             if (!IsValidProperty(i)) {
  67.                 freeid = i;
  68.                 break;
  69.             }
  70.         }
  71.         if (freeid == -1) print("error moc property !");
  72.         _property[freeid][e_Exist] = true;
  73.         _property[freeid][e_Owned] = false;
  74.         format (_property[freeid][e_Name], MAX_PROPERTY_NAME, name);
  75.         format (_property[freeid][e_Owner], MAX_PLAYER_NAME, "-Nikdo-");
  76.         if (byPos) {
  77.             _property[freeid][e_x] = x; _property[freeid][e_y] = y;_property[freeid][e_z] = z;
  78.             _property[freeid][e_Pickup] = CreatePickup(pickupm, 1, x, y, z, 0);
  79.         }
  80.         if (byPlayer) {
  81.             GetPlayerPos(player, x, y, z);
  82.             _property[freeid][e_x] = x; _property[freeid][e_y] = y;_property[freeid][e_z] = z;
  83.             _property[freeid][e_Pickup] = CreatePickup(pickupm, 1, x, y, z, 0);
  84.         }
  85.         return freeid;
  86.     }
  87.     if (mode == delete) {
  88.         if (IsValidProperty(propertyid)) {
  89.             DestroyPickup(_property[propertyid][e_Pickup]);
  90.             _property[propertyid][e_Exist] = _property[propertyid][e_Owned] = false;
  91.             _property[propertyid][e_Profit] = _property[propertyid][e_Bank] = _property[propertyid][e_Price] = 0;
  92.         }
  93.         return 1;
  94.     }
  95.     if (mode == null) {
  96.         if (IsValidProperty(propertyid)) {
  97.             _property[propertyid][e_Profit] = _property[propertyid][e_Bank] = _property[propertyid][e_Price] = 0;
  98.         }
  99.         return 1;
  100.     }
  101.     if (mode == copy) {
  102.         new i = 0, freeid = -1;
  103.         while (i++ < MAX_PROPERTY) {
  104.             if (!IsValidProperty(i)) {
  105.                 freeid = i;
  106.                 break;
  107.             }
  108.         }
  109.         if (freeid == -1) print("error moc property !");
  110.         _property[freeid][e_Exist] = true;
  111.         _property[freeid][e_Owned] = _property[propertyid][e_Owned];
  112.         _property[freeid][e_Profit] = _property[propertyid][e_Profit];
  113.         _property[freeid][e_Bank] = _property[propertyid][e_Bank];
  114.         _property[freeid][e_Price] = _property[propertyid][e_Price];
  115.         format (_property[freeid][e_Name], MAX_PROPERTY_NAME, _property[propertyid][e_Name]);
  116.         format (_property[freeid][e_Owner], MAX_PLAYER_NAME, _property[propertyid][e_Owner]);
  117.         if (byPos) {
  118.             _property[freeid][e_x] = x; _property[freeid][e_y] = y;_property[freeid][e_z] = z;
  119.             _property[freeid][e_Pickup] = CreatePickup(pickupm, 1, x, y, z, 0);
  120.         }
  121.         if (byPlayer) {
  122.             GetPlayerPos(player, x, y, z);
  123.             _property[freeid][e_x] = x; _property[freeid][e_y] = y;_property[freeid][e_z] = z;
  124.             _property[freeid][e_Pickup] = CreatePickup(pickupm, 1, x, y, z, 0);
  125.         }
  126.         return freeid;
  127.     }
  128.     return -1;
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement