Advertisement
SEGA_RUS

base.fos

Jun 3rd, 2020
790
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.50 KB | None | 0 0
  1. // Функция заполнения багажника, для наборов итэмов, с chance=100 для 100% вероятности.
  2. void FillBag(Item@ bag, array<uint16>& pids, uint min, uint max, int chance)
  3. {
  4.     if(chance>=Random(1,100))
  5.     {
  6.         uint count = Random(min, max);
  7.         uint16 pid = Random(0,pids.length()-1);
  8.         Item@ item = bag.AddItem(pids[pid],1,-1);
  9.         count--;
  10.         if (count == 0) return;
  11.         if(item.Proto.Deteriorable)
  12.         {
  13.             for(uint i=0, iMax=count; i<iMax; i++)
  14.             {          
  15.                 bag.AddItem(pids[pid],1,-1);
  16.             }
  17.         }
  18.         else
  19.         {
  20.             item.SetCount(count);      
  21.         }
  22.     }
  23. }
  24.  
  25. //Перегруженная функция заполнения багажника, для отдельных итэмов, с chance=1000 для 100% вероятности.
  26. void FillBag(Item@ bag, uint16 pid, uint min, uint max, int chance)
  27. {
  28.     if(chance>=Random(1,1000))
  29.     {
  30.         uint count = Random(min, max);
  31.         Item@ item = bag.AddItem(pid,1,-1);
  32.         count--;
  33.         if (count == 0) return;
  34.         if(item.Proto.Deteriorable)
  35.         {
  36.             for(uint i=0, iMax=count; i<iMax; i++)
  37.             {          
  38.                 bag.AddItem(pid,1,-1);
  39.             }
  40.         }
  41.         else
  42.         {
  43.             item.SetCount(count);      
  44.         }
  45.     }
  46. }
  47.  
  48. // Функция заполнения багажника, для наборов итэмов, с chance=100 для 100% вероятности.
  49. void FillBag(Item@ bag, array<uint16>& pids, uint min, uint max, int chance, uint16 var, uint16 value)
  50. {
  51.     if(chance<Random(1,100)) return;
  52.     if(!ItemTimeouts::checkItemTimeout(var)) return;   
  53.     uint count = Random(min, max);
  54.     uint16 pid = Random(0,pids.length()-1);
  55.     Item@ item = bag.AddItem(pids[pid],1,-1);
  56.     count--;
  57.     if (count != 0)
  58.     {
  59.         if(item.Proto.Deteriorable)
  60.         {
  61.             for(uint i=0, iMax=count; i<iMax; i++)
  62.             {          
  63.                 bag.AddItem(pids[pid],1,-1);
  64.             }
  65.         }
  66.         else
  67.         {
  68.             item.SetCount(count);      
  69.         }
  70.         ItemTimeouts::setItemTimeoutMinute(var, value);
  71.     }
  72. }
  73.  
  74. //Перегруженная функция заполнения багажника, для отдельных итэмов, с chance=1000 для 100% вероятности.
  75. void FillBag(Item@ bag, uint16 pid, uint min, uint max, int chance, uint16 var, uint16 value)
  76. {
  77.     if(chance<Random(1,1000)) return;
  78.     uint count = Random(min, max);
  79.     Item@ item = bag.AddItem(pid,1,-1);
  80.     count--;
  81.     if (count != 0)
  82.     {
  83.         if(item.Proto.Deteriorable)
  84.         {
  85.             for(uint i=0, iMax=count; i<iMax; i++)
  86.             {          
  87.                 bag.AddItem(pid,1,-1);
  88.             }
  89.         }
  90.         else
  91.         {
  92.             item.SetCount(count);      
  93.         }
  94.     ItemTimeouts::setItemTimeoutMinute(var, value);
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement