Advertisement
Guest User

kPickups.inc - by KAT V1.1

a guest
Jun 6th, 2013
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.16 KB | None | 0 0
  1. /*
  2.  
  3.  
  4.                 * Autorius: KAT
  5.                 * Versija: 1.1
  6.                 * Išleidimas: 2013/06/06
  7.                 * Paskutinis atnaujinimas: 2013.06.06
  8.  
  9.  
  10.  
  11.  
  12. */
  13.  
  14.  
  15. /*
  16.     native Pickup(sP_id,Float:pP_x,Float:pP_y,Float:pP_z, pP_type, pP_model, pP_virtual,picklimit = -1);
  17.     native ReloadPickups();
  18.     native ReloadPickup(_pID);
  19.     native HidePickup(_pID);
  20.     native ShowPickup(_pID);
  21.     native HidePickupForTime(_pID, _pSeconds);
  22.     native ChangePickupModel(_pID, _p_Model);
  23.     native ChangePickupType(_pID, _p_Type);
  24.     native GetNearestPickupFromPoint(Float:x1, Float:y1, Float:z1, Float: dist = 100.0);
  25.     native IsValidPickup(_pID);
  26.     native GetPickupType(_pID);
  27.     native eOnPlayerPickUpPickup(playerid, pickupid);
  28.     native GetPickupModel(_pID);
  29. */
  30. /*
  31.    
  32.     APRAŠYMAS:
  33.  
  34.     Funkcija: Pickup(sP_id,Float:pP_x,Float:pP_y,Float:pP_z, pP_type, pP_model, pP_virtual,picklimit = -1); - naudojama sukurti Pickup'ui
  35.     Funkcija: ReloadPickups(); - Perkrauna visus Pickup'us
  36.     Funkcija: ReloadPickup(_pID); - Perkrauna pickup'ą pagal jo ID
  37.     Funkcija: HidePickup(_pID); - paslepia Pickup'ą ( jo nerodo žaidėjams )
  38.     Funkcija: ShowPickup(_pID); - parodo Pickup'ą žaidėjams
  39.     Funkcija: HidePickupForTime(_pID, _pSeconds); - paslėpia pickup'ą kažkuriam laikui ( pvz.: 10 sek )
  40.     Funkcija: ChangePickupModel(_pID, _p_Model); - pakeičiai pickup'o modelį ir iškarto realod'ina pickupą
  41.     Funkcija: ChangePickupType(_pID, _p_Type); - pakeičiai pickup'o tipą ir iškarto realod'ina pickupą
  42.     Funkcija: GetNearestPickupFromPoint(Float:x1, Float:y1, Float:z1, Float: dist = 100.0); - išgauna arčiausiai esantį pickup'ą pagal nurodytą atstumą ( default - 100.0 )
  43.     Funkcija: IsValidPickup(_pID); - patikrina ar pickup'as yra egzistuojantis pagal nurodytą ID
  44.     Funkcija: GetPickupType(_pID); - išgauna pickup'o tipą pagal jo id
  45.     Funkcija: eOnPlayerPickUpPickup(playerid, pickupid); - ją reikia dėti po OnPlayerPickupPickup, naudojama pickup'inimo limitui
  46.     Funkcija: GetPickupModel(_pID); - išgauna pickup'o pagal nurodytą id modelį
  47. */
  48.  
  49.  
  50. enum _pDATA
  51. {
  52.     s_id,
  53.     s_pickup,
  54.     Float:p_x,
  55.     Float:p_y,
  56.     Float:p_z,
  57.     p_type,
  58.     p_model,
  59.     p_virtual,
  60.     bool:hidden,
  61.     pick_limit,
  62.     times_picked
  63.  
  64. }
  65. new _pickup[MAX_PICKUPS][_pDATA];
  66.  
  67.  
  68. stock Pickup(sP_id,Float:pP_x,Float:pP_y,Float:pP_z, pP_type, pP_model, pP_virtual, picklimit = -1)
  69. {
  70.     _pickup[sP_id][s_id] = sP_id;
  71.     _pickup[sP_id][s_pickup] = CreatePickup(pP_model, pP_type, pP_x, pP_y, pP_z, pP_virtual);
  72.     _pickup[sP_id][p_x] = pP_x;
  73.     _pickup[sP_id][p_y] = pP_y;
  74.     _pickup[sP_id][p_z] = pP_z;
  75.     _pickup[sP_id][p_type] = pP_type;
  76.     _pickup[sP_id][p_model] = pP_model;
  77.     _pickup[sP_id][p_virtual] = pP_virtual;
  78.     _pickup[sP_id][times_picked] = 0;
  79.     if( picklimit > 0 ) _pickup[sP_id][pick_limit] = picklimit;
  80.     return printf("Pickup( ID: %i, model: %i ) pakrautas!",sP_id,pP_model);
  81.  
  82. }
  83.  
  84.  
  85. stock ReloadPickups()
  86. {
  87.     for(new p = 0; p < MAX_PICKUPS; p++)
  88.     {
  89.         DestroyPickup(_pickup[p][s_pickup]);
  90.         _pickup[p][s_pickup] = CreatePickup(_pickup[p][p_model], _pickup[p][p_type], _pickup[p][p_x], _pickup[p][p_y], _pickup[p][p_z], _pickup[p][p_virtual]);
  91.         printf("Perkrauta %i pickupų!");
  92.     }
  93. }
  94.  
  95. stock ReloadPickup(_pID)
  96. {
  97.     if(!IsValidPickup(_pID)) return 0;
  98.     DestroyPickup(_pickup[_pID][s_pickup]);
  99.     _pickup[_pID][s_pickup] = CreatePickup(_pickup[_pID][p_model], _pickup[_pID][p_type], _pickup[_pID][p_x], _pickup[_pID][p_y], _pickup[_pID][p_z], _pickup[_pID][p_virtual]);
  100.     printf("Perkrautas ID: %i pickup'as!");
  101.     return 1;
  102. }
  103.  
  104. stock HidePickup(_pID)
  105. {
  106.     if(!IsValidPickup(_pID)) return 0;
  107.     DestroyPickup(_pickup[_pID][s_pickup]);
  108.     _pickup[_pID][hidden]=true;
  109.     printf("Paslėptas ID: %i pickup'as!");
  110.     return 1;
  111. }
  112.  
  113. stock ShowPickup(_pID)
  114. {
  115.     if(!IsValidPickup(_pID)) return 0;
  116.     if(!_pickup[_pID][hidden]) return 0;
  117.     _pickup[_pID][s_pickup] = CreatePickup(_pickup[_pID][p_model], _pickup[_pID][p_type], _pickup[_pID][p_x], _pickup[_pID][p_y], _pickup[_pID][p_z], _pickup[_pID][p_virtual]);
  118.     printf("Parodytas ID: %i pickup'as!");
  119.     return 1;
  120. }
  121.  
  122. stock HidePickupForTime(_pID, _pSeconds)
  123. {
  124.     if(!IsValidPickup(_pID)) return 0;
  125.     DestroyPickup(_pickup[_pID][s_pickup]);
  126.     _pickup[_pID][hidden]=true;
  127.     SetTimerEx("_ShowPickupAfterTime",_pSeconds*1000,false,"d",_pID);
  128.     printf("Paslėptas ID: %i pickup'as %i sekundems!",_pSeconds);
  129.     return 1;
  130. }
  131.  
  132. forward _ShowPickupAfterTime(_pID);
  133. public _ShowPickupAfterTime(_pID)
  134. {
  135.     if(!IsValidPickup(_pID)) return 0;
  136.     if(!_pickup[_pID][hidden]) return 0;
  137.     _pickup[_pID][s_pickup] = CreatePickup(_pickup[_pID][p_model], _pickup[_pID][p_type], _pickup[_pID][p_x], _pickup[_pID][p_y], _pickup[_pID][p_z], _pickup[_pID][p_virtual]);
  138.     printf("Parodytas ID: %i pickup'as po taimerio!");
  139.     return 1;
  140. }
  141.  
  142. stock ChangePickupModel(_pID, _p_Model)
  143. {
  144.     if(!IsValidPickup(_pID)) return 0;
  145.     if(_pickup[_pID][hidden]) return 0;
  146.     _pickup[_pID][p_model] = _p_Model;
  147.     ReloadPickup(_pID);
  148.     return 1;
  149. }
  150. stock ChangePickupType(_pID, _p_Type)
  151. {
  152.     if(!IsValidPickup(_pID)) return 0;
  153.     if(_pickup[_pID][hidden]) return 0;
  154.     _pickup[_pID][p_type] = _p_Type;
  155.     ReloadPickup(_pID);
  156.     return 1;
  157. }
  158.  
  159. forward eOnPlayerPickUpPickup(playerid, pickupid);
  160. public eOnPlayerPickUpPickup(playerid, pickupid)
  161. {
  162.     for( new p = 0; p < MAX_PICKUPS; p++ )
  163.     {
  164.         if(_pickup[p][s_pickup] == pickupid)
  165.         {
  166.             if(_pickup[p][pick_limit] > _pickup[p][times_picked]) return 0;
  167.             else _pickup[p][times_picked]++;
  168.         }
  169.     }
  170.     return 1;
  171. }
  172.  
  173. stock GetNearestPickupFromPoint(Float:x1, Float:y1, Float:z1, Float: dist = 100.0)
  174. {
  175.     new targetid = -1;
  176.     new Float:tmpdis;
  177.     for( new p = 0; p < MAX_PICKUPS; p++)
  178.     {
  179.         tmpdis = floatsqroot(floatpower(floatabs(floatsub(_pickup[p][p_x],x1)),2)+floatpower(floatabs(floatsub(_pickup[p][p_y],y1)),2)+floatpower(floatabs(floatsub(_pickup[p][p_z],z1)),2));
  180.         if(tmpdis < dist)
  181.         {
  182.             dist = tmpdis;
  183.             targetid = p;
  184.         }
  185.     }
  186.     return targetid;
  187. }
  188.  
  189. stock GetPickupType(_pID)
  190. {
  191.     if(!IsValidPickup(_pID)) return 0;
  192.     return _pickup[_pID][p_type];
  193. }
  194.  
  195. stock GetPickupModel(_pID)
  196. {
  197.     if(!IsValidPickup(_pID)) return 0;
  198.     return _pickup[_pID][p_model];
  199. }
  200.  
  201. stock IsValidPickup(_pID)
  202. {
  203.     for( new p = 0; p < MAX_PICKUPS; p++)
  204.     {
  205.         if(_pickup[p][s_id] == _pID)
  206.         {
  207.             return true;
  208.         }
  209.     }
  210.     return false;
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement