daily pastebin goal
3%
SHARE
TWEET

Untitled

a guest Feb 19th, 2019 72 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Премиум версия Магии для бомжей v1.0
  2. // for DRW. By Unholy
  3. // Ставим чара в магазине с реагентами в ГЗ
  4. // Опционально надеваем на него брас маны.
  5. //
  6. // Бот будет скупать реги и кастовать на себя заклинания
  7. // отличия от той версии, что лежит на форуме:
  8. // 1. Заклинания кастуются пока у чара есть мана
  9. // 2. В зависимости от наличия реагентов в паке кастуется
  10. //    MagicArrow, NightSight и Cure. Связанно это с тем,
  11. //    что реагенты для стрелки у НПС не успевают появится.
  12. //
  13. // Ходят слухи, что в некоторых магазинах работает криво.
  14. // В случае ошибок - поменяйте магазин и сообщите мне, в
  15. // каком магазине наблюдаются проблемы.
  16.  
  17. Program Magery;
  18. const
  19.     // можно увеличить, если чар подходит не ко всем NPC
  20.     // можно уменьшить, если чар выходит из магазина
  21.     NPCSearchDistance = 10;
  22.  
  23.     //при достижении этого кол-ва реагентов, они больше не будут покупаться
  24.     //для Magic Arrow
  25.     NSMaxCount = 1000;
  26.     BPMaxCount = 1000;
  27.     //для Night Sight
  28.     SSMaxCount = 500;
  29.     SAMaxCount = 500;
  30.     //для Cure
  31.     GAMaxCount = 500;
  32.     GSMaxCount = 500;
  33.    
  34. procedure initWalker;
  35. begin
  36.     ClearBadLocationList;
  37.     ClearBadObjectList;
  38.     MoveBetweenTwoCorners := false;
  39.     MoveThroughCorner  := false;
  40.     MoveOpenDoor := true;
  41.     MoveThroughNPC := 20;
  42. end;   
  43.  
  44. procedure useMeditation;
  45. begin
  46.     if WarMode = true then SetWarMode(false);
  47.     if (GetMaxMana(self) > GetMana(self)) then useskill('Meditation');
  48. end;
  49.  
  50. Function NextVendor2(Dist:Integer; var X,Y:Integer; var vName:String):Boolean;
  51. var
  52.     Cur_Vend:Cardinal;
  53. begin
  54.     Ignore(Self);
  55.     X:=0;
  56.     Y:=0;
  57.     vName:='';
  58.     Result:=false;
  59.     FindDistance:=Dist;
  60.        Cur_Vend:=FindType($0190,Ground);
  61.        Ignore(FindItem);
  62.     if Cur_Vend > 0 then begin
  63.        X:=GetX(Cur_Vend);
  64.        Y:=GetY(Cur_Vend);
  65.        vName:=GetName(Cur_Vend);
  66.        Result:=True;
  67.     end else begin
  68.           Cur_Vend:=FindType($0191,Ground);
  69.           Ignore(FindItem);
  70.        if Cur_Vend > 0 then begin
  71.           X:=GetX(Cur_Vend);
  72.           Y:=GetY(Cur_Vend);
  73.           vName:=GetName(Cur_Vend);
  74.           Result:=True;
  75.        end;
  76.     end;
  77. end;
  78.  
  79. procedure BuyReg;
  80.     var
  81.     vendor_X,vendor_Y:Integer;
  82.     vendor_Name:String;
  83.         buyDelaySec, i: integer;
  84. begin
  85.         buyDelaySec := 0;
  86.     ClearShopList();
  87.     if (NSCount < NSMaxCount) then
  88.         begin
  89.             AutoBuy(NS, $0000, 200);
  90.             buyDelaySec := buyDelaySec + 1;
  91.         end;
  92.         if (BPCount < BPMaxCount) then
  93.         begin
  94.             AutoBuy(BP, $0000, 200);
  95.             buyDelaySec := buyDelaySec + 1;
  96.         end;
  97.         if (SSCount < SSMaxCount) then
  98.         begin
  99.             AutoBuy(SS, $0000, 200);
  100.             buyDelaySec := buyDelaySec + 1;
  101.     end;
  102.         if (SACount < SAMaxCount) then
  103.         begin
  104.             AutoBuy(SA, $0000, 200);  
  105.             buyDelaySec := buyDelaySec + 1;
  106.     end;
  107.         if (GACount < GAMaxCount) then
  108.         begin
  109.             AutoBuy(GA, $0000, 200);
  110.             buyDelaySec := buyDelaySec + 1;
  111.     end;
  112.         if (GSCount < GSMaxCount) then
  113.         begin
  114.             AutoBuy(GS, $0000, 200);  
  115.             buyDelaySec := buyDelaySec + 1;
  116.     end;
  117.        
  118.         SetAutoBuyDelay(buyDelaySec * 1000);
  119.     FindVertical:=100;
  120.     while NextVendor2(NPCSearchDistance,vendor_X,vendor_Y,vendor_Name) do
  121.     begin
  122.         NewMoveXY(vendor_X,vendor_Y,false,2,false);
  123.         UOSay('Bye '+vendor_Name+' Buy guards');
  124.         CheckLag(15000);
  125.                 for i:= 0 to buyDelaySec do
  126.                 begin
  127.                     wait(1000);
  128.                     useMeditation;
  129.                 end;
  130.     end;
  131.     IgnoreReset;  
  132.     ClearShopList();  
  133.     AutoBuy(NS, $0000, 0);
  134.     AutoBuy(BP, $0000, 0);
  135.         AutoBuy(SS, $0000, 0);
  136.     AutoBuy(SA, $0000, 0);
  137.         AutoBuy(GA, $0000, 0);
  138.     AutoBuy(GS, $0000, 0);
  139. end;
  140.  
  141.  
  142.  
  143. procedure CastMagicArrows;
  144. var checker: boolean;
  145. begin
  146.     While (Mana >= 10) and (NSCount > 0) and (BPCount > 0) do
  147.     begin
  148.         WaitTargetObject(self);
  149.         Cast('Magic Arrow');
  150.         CheckLag(15000);
  151.         Wait(1550);      
  152.         checker := not checker;
  153.         if (checker = true) then UOSay('guards');
  154.     end;
  155. end;
  156.  
  157. procedure CastNightSight;
  158. var checker: boolean;
  159. begin
  160.     While (Mana >= 12) and (SSCount > 0) and (SACount > 0) do
  161.     begin
  162.         WaitTargetObject(self);
  163.         Cast('Night Sight');
  164.         CheckLag(15000);
  165.         Wait(1850);      
  166.         checker := not checker;
  167.         if (checker = true) then UOSay('guards');
  168.     end;
  169. end;
  170.  
  171. procedure CastCure;
  172. var checker: boolean;
  173. begin
  174.     While (Mana >= 16) and (GACount > 0) and (GSCount > 0) do
  175.     begin
  176.         WaitTargetObject(self);
  177.         Cast('Cure');
  178.         CheckLag(15000);
  179.         Wait(2450);      
  180.         checker := not checker;
  181.         if (checker = true) then UOSay('guards');
  182.     end;
  183. end;
  184.  
  185. procedure Meditation;
  186. begin
  187.   While GetMaxMana(self) > GetMana(self) do
  188.     begin
  189.             useMeditation;
  190.             Wait(1000);
  191.             CheckLag(15000);                          
  192.             UOSay('guards');
  193.     end;
  194. end;
  195.  
  196. begin
  197.     initWalker;
  198.     repeat
  199.         CastMagicArrows;
  200.         CastNightSight;
  201.         CastCure;
  202.         if ((NSMaxCount > NSCount) or (BPMaxCount > BPCount) or (SSMaxCount > SSCount) or (SAMaxCount > SACount) or (GAMaxCount > GACount) or (GSMaxCount > GSCount)) then
  203.             BuyReg;  
  204.         Meditation();
  205.     until GetSkillValue('Magery') > 100
  206. end.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top