Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

DRW Magery+Meditation для бомжей

Only working scripts
Post Reply
Unholy
Novice
Novice
Posts: 119
Joined: 23.06.2008 2:26
Location: DRW

DRW Magery+Meditation для бомжей

Post by Unholy »

Идем в магазин регов, находящийся в ГЗ и запускаем.
Чар будет подходить ко всем продавцам, скупать NS, кастовать на себя poison пока NS есть в паке и так по кругу.

Code: Select all

Program Magery;

Function NextVendor2(Dist:Integer; var X,Y:Integer; var vName:String):Boolean;
var
	Cur_Vend:Cardinal;
begin
	Ignore(Self);
	X:=0;
	Y:=0;
	vName:='';
	Result:=false;
	FindDistance:=Dist;
	   Cur_Vend:=FindType($0190,Ground);
	   Ignore(FindItem);
	if Cur_Vend > 0 then begin
	   X:=GetX(Cur_Vend);
	   Y:=GetY(Cur_Vend);
	   vName:=GetName(Cur_Vend);
	   Result:=True;
	end else begin
		  Cur_Vend:=FindType($0191,Ground);
		  Ignore(FindItem);
	   if Cur_Vend > 0 then begin
		  X:=GetX(Cur_Vend);
		  Y:=GetY(Cur_Vend);
		  vName:=GetName(Cur_Vend);
		  Result:=True;
	   end;
	end;
end;

procedure BuyReg;
    var
    vendor_X,vendor_Y:Integer;
    vendor_Name:String;
begin
FindVertical:=100;
while NextVendor2(20,vendor_X,vendor_Y,vendor_Name) do
   begin 
      NewMoveXY(vendor_X,vendor_Y,false,2,false);
      UOSay('Bye '+vendor_Name+' Buy');
      CheckLag(15000);
      wait(3000);
   end;
   IgnoreReset;
end;

procedure CheckHealth;
begin
  if GetMaxHP(self) > GetMaxHP(self) then
    begin
        UOSay('guards');
        Wait(1000);
        CheckLag(15000);      
        SetWarMode(false);
    end;
end;

procedure CastPoisonSelf;
begin
  CheckLag(15000);
  if TargetPresent then CancelTarget;
  Cast('Poison');
  CheckLag(15000);
  WaitForTarget(5000);
  if targetpresent then
    begin
    TargetToObject(self);
    end;
  CheckLag(15000);
  Wait(2200);
end;

procedure Meditation;
begin
  While GetMaxMana(self) > GetMana(self) do
    begin
        useskill('Meditation');
        Wait(1000);
        CheckLag(15000); 
        CheckHealth();
    end;
end;

begin
 ClearShopList();
 AutoBuy($0F88, $0000, 999);
 SetAutoBuyDelay(2000);
 while GetSkillValue('Magery') < 100 do
    begin
    BuyReg();  
    while NSCount > 0 do
        begin
            CastPoisonSelf();
            Meditation();
        end;
    end;
end.
Unholy
Novice
Novice
Posts: 119
Joined: 23.06.2008 2:26
Location: DRW

Re: DRW Magery+Meditation для бомжей

Post by Unholy »

Есть предположение, что скорость роста магии не зависит от сложности заклинания (как это происходит с крафтовыми скиллами). В связи с этим скрипт был переписан на каст magic arrow. Со скупкой NS и BP соответственно. Уже докачан до 73.4. Большой разницы в скорости роста на пойзоне я не наблюдаю.

Code: Select all

Program Magery;

Function NextVendor2(Dist:Integer; var X,Y:Integer; var vName:String):Boolean;
var
	Cur_Vend:Cardinal;
begin
	Ignore(Self);
	X:=0;
	Y:=0;
	vName:='';
	Result:=false;
	FindDistance:=Dist;
	   Cur_Vend:=FindType($0190,Ground);
	   Ignore(FindItem);
	if Cur_Vend > 0 then begin
	   X:=GetX(Cur_Vend);
	   Y:=GetY(Cur_Vend);
	   vName:=GetName(Cur_Vend);
	   Result:=True;
	end else begin
		  Cur_Vend:=FindType($0191,Ground);
		  Ignore(FindItem);
	   if Cur_Vend > 0 then begin
		  X:=GetX(Cur_Vend);
		  Y:=GetY(Cur_Vend);
		  vName:=GetName(Cur_Vend);
		  Result:=True;
	   end;
	end;
end;

procedure BuyReg;
    var
    vendor_X,vendor_Y:Integer;
    vendor_Name:String;
begin
    ClearShopList();
    if (NSCount < 100) then AutoBuy($0F88, $0000, 200) else AutoBuy($0F88, $0000, 0);  //NS    
    if (BPCount < 100) then AutoBuy($0F7A, $0000, 200) else AutoBuy($0F7A, $0000, 0);  //BP
    SetAutoBuyDelay(2000);
    FindVertical:=100;
    while NextVendor2(20,vendor_X,vendor_Y,vendor_Name) do
    begin 
        NewMoveXY(vendor_X,vendor_Y,false,2,false);
        UOSay('Bye '+vendor_Name+' Buy');
        CheckLag(15000);
        wait(3000);
    end;
    IgnoreReset;   
    ClearShopList();  
    AutoBuy($0F88, $0000, 0);
    AutoBuy($0F7A, $0000, 0);
end;

procedure CheckHealth;
begin
  if GetMaxHP(self) > GetMaxHP(self) then
    begin
        UOSay('guards');
        Wait(1000);
        CheckLag(15000);      
        SetWarMode(false);
    end;
end;

procedure CastPoisonSelf;
begin
  CheckLag(15000);
  if TargetPresent then CancelTarget;
  Cast('Magic Arrow');
  CheckLag(15000);
  WaitForTarget(5000);
  if targetpresent then
    begin
    TargetToObject(self);
    end;
  CheckLag(15000);
  Wait(1600);
end;

procedure Meditation;
begin
  While GetMaxMana(self) > GetMana(self) do
    begin
        useskill('Meditation');
        Wait(1000);
        CheckLag(15000); 
        CheckHealth();
    end;
end;

begin
 while GetSkillValue('Magery') < 100 do
    begin
    BuyReg();  
    while (NSCount > 0) And (BPCount > 0) do
        begin
            CastPoisonSelf();
            Meditation();
        end;
    end;
end.
Post Reply