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

Скупка регов

тут можно задать вопрос по скриптингу
Post Reply
Vlad_T
Posts: 9
Joined: 23.01.2016 22:44

Скупка регов

Post by Vlad_T »

Здравствуйте!

Кто-то мог бы поделиться скупщиком регов (складывать в банк, использование рунбука), или примерным teamplate для этого?

Спасибо что ознакомились с моим сообщением!
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Скупка регов

Post by Vizit0r »

типа скрипт

Code: Select all

 program skupka_mages;

//ВПИСАТЬ ФУНКЦИИ ПРОТИВ ПОКРАСКИ!!!

{$Include 'all.inc'}
type
MyArray = Array[1..30] of Cardinal;
MyArray2 = Array[1..8] of Word;

var
ArrayMagesGZ, ArrayMagesNoGZ, ArrayJewelers, ArrayBowyersProvisioners : MyArray;
Regs, Reg : MyArray2;
stime : TDateTime;

const
rb_Main = $4F77778F;
rb_MagesGZ = $6B5D9051;
rb_MagesNoGZ = $12345678;   // выставить!
//rb_Jewelers = ;
//rb_Provisioners = ;
MagesGZ = 1;
MagesNoGZ  = 1;
Jewelers = 0;
BowyersProvisioners =0;
BoatID = $4DF064BE;


procedure CheckGold(Quantity : Integer); 
var
NeededQuantity : Integer;
begin
IF Gold < Quantity then
begin
  While Gold < Quantity do 
  begin
    NeededQuantity:=Quantity -Gold;	
    FindType($0EED,ground); 
    IF FindFullQuantity > 0 then 
    begin
      IF GetQuantity(finditem) < NeededQuantity then 
      begin
	MoveItem(finditem, GetQuantity(finditem), backpack, 0,0,0) 
	wait(900);
      end
      else MoveItem(finditem, NeededQuantity, backpack, 0,0,0);
      wait(900);
    end;
  end;
end;
end;

procedure DropAll;
Var 
Counter : Integer;
begin
//	FindType($0EED,ground); 
//	IF FindFullQuantity > 0 then DropHere($0EED);

	IF (MagesGZ = 1) or (MagesNoGZ  = 1) then
	begin
AddToSystemJournal('Сейчас у вас '+IntToStr(Count(bp))+'bp, '+IntToStr(Count(SA))+'sa, '+IntToStr(Count(SS))+'ss');
	    Reg[1] := $0F7B; // BM
	    Reg[2] := $0F86; // MR
	    Reg[3] := $0F84; // GA
	    Reg[4] := $0F85; // GS
	    Reg[5] := $0F7A; // BP
	    Reg[6] := $0F88; // NS
	    Reg[7] := $0F8C; // SA
	    Reg[8] := $0F8D; // SS
	    for Counter := 3 to 8 do
	    begin  
	      Findtype(Reg[counter],backpack);
	      IF FindFullQuantity > 0 then Stack(Reg[counter],$FFFF);
	      Wait(900);
	    end;
	    CheckGold(11000);
	end;
	IF Jewelers = 1 then
	begin  
	    Findtype($0F30,backpack);
	    IF FindFullQuantity > 0 then Stack($0F30,$FFFF);
	    Wait(200);
	    CheckGold(50400);
	end;
	IF BowyersProvisioners = 1 then
	begin  
	    Findtype($0F3F,backpack);
	    IF FindFullQuantity > 0 then Stack($0F3F,$FFFF);
	    Wait(200);
	    Findtype($1BD1,backpack);
	    IF FindFullQuantity > 0 then Stack($1BD1,$FFFF);
	    Wait(200);
	end;
end;

procedure GoHome;
begin
  while GetY(self) > 790 do
  begin
	IF IntToHex(GetType(BoatID),4) = '06A5' then 
	begin
	  UseObject( BoatID);
	  Wait(500);
	end;
	IF IntToHex(GetType(BoatID),4) = '06A6' then GotoXY(3196,790,0,False); 
	wait(500);
  end;
 Raw_Move(8,false);
 wait(500);
 Raw_Move(8,false);
 wait(3000);
GotoXY(5663,2279,0,True);
end;

procedure RecallRB(RBID : Cardinal; RuneNumber : Integer); 
var 
var_mana : Integer;
Breaking : Boolean;
begin 
  Breaking := False;
  IF Life < Str then UOSay('.guards');
  IF not Dead then
  begin
    while Breaking = False do 
    begin
	stime := Now;
	var_mana:= mana;
	UseObject(RBID); 
	WaitGump(IntToStr(600 + RuneNumber)); 
	repeat 
		CheckSave; 
		InJournalBetweenTimes('fizzles', stime, Now);   // |enough reagents
		wait(100); 
	until (LineCount > 0) or (var_mana > mana) or (Now > stime + (1.0/1440)); 
	IF var_mana > mana then Breaking := true;
    end;	
  IF mana < (int/2) then
  begin
    UseSkill('Meditation');
    wait(1500);
  end;
  end;
wait(2000);
end; 

procedure CheckReags;
var
Counter, quantity : Integer;
begin
  Regs[1] := $0F7B; // BM
  Regs[2] := $0F7A; // BP
  Regs[3] := $0F86; // MR
    for Counter := 1 to 3 do
    begin
        if  Count(regs[Counter]) <30 then
begin
        quantity :=Count(regs[Counter]);
        FindType(regs[Counter],ground); 
        IF FindFullQuantity > 0 then 
        begin
       MoveItem (finditem,30-quantity, backpack, 0,0,0) ;
      wait(900);
        end;
end;
    end;

end;

procedure HomeSweetHome;
begin
  AddToSystemJournal('Иду домой');
IF not ((GetX(self) = 5663) and (GetY(self)=2279)) then 
begin
  GoHome;
  wait(500);
end;
FindDistance:=1;
  DropAll;
  CheckReags;
  Hungry(1,ground);
end;

procedure  WalkTo(Target:Cardinal); 
var 
dx,dy:Integer;
begin
  If Target<>0 Then 
  begin
     dx:=GetX(Target);
     dy:=GetY(Target) ;
     If GetDistance(Target) > 1 Then GotoXY(dx,dy,1,True);  
  end;
end;

//#########################
procedure buy(num : Integer; rb_id, mage1, mage2 : Cardinal);
begin
IF not Dead then
begin
	If GetDistance(mage1)  >  1 Then WalkTo(mage1);
	If GetDistance(mage1)  <= 1 then
	begin
 	  stime := Now;
	  AutoBuy(BP,$0000,50);
	  AutoBuy(SA,$0000,50);
	  AutoBuy(SS,$0000,50);
	  UOSay('buy')
	  repeat 
		CheckSave; 
		InJournalBetweenTimes('The total|No items', stime, Now); 
		wait(100); 
	  until (LineCount > 0) or (Now > stime + (0.2/1440)); 
	end;
	IF mage2 <> 0 then
	begin
		If GetDistance(mage2)  >  1 Then WalkTo(mage1);
		If GetDistance(mage2)  <=  1 then
		begin
		  stime := Now;
		  AutoBuy(BP,$0000,50);
		  AutoBuy(SA,$0000,50);
		  UOSay('buy')
		  repeat 
			CheckSave; 
			InJournalBetweenTimes('The total|No items', stime, Now); 
			wait(100); 
		  until (LineCount > 0) or (Now > stime + (0.1/1440)); 
		end;
	end;
AddToSystemJournal('Лечу по руне номер '+IntToStr(num));
RecallRB(rb_id,num);
end;
end;

//#########################
procedure Skupka_MagesGZ;
begin
ArrayMagesGZ[1] :=   $0126B741;      
ArrayMagesGZ[2] :=   $0122E9BD;   
ArrayMagesGZ[3] :=   $0122E98F;   //b3
ArrayMagesGZ[4] :=   $00751FB7;   //minoc1
ArrayMagesGZ[5] :=   $01225101;    //Moon1
ArrayMagesGZ[6] :=   $01225141;   
ArrayMagesGZ[7] :=   $0122512E;   
ArrayMagesGZ[8] :=   $01225145;    //m4
ArrayMagesGZ[9] :=   $012251A1;   //magic1    #8
ArrayMagesGZ[10] := $012F0510;   // Thelom1
ArrayMagesGZ[11] := $01225261;   // SB1
ArrayMagesGZ[12] := $01225262;   // SB2
ArrayMagesGZ[13] := $0033A0DF; //Buck1
ArrayMagesGZ[14] := $0122512C;  //Moon 5
ArrayMagesGZ[15] := $012251A2;  //Magic 2
ArrayMagesGZ[16] := $0029EEB1; //Cove1
SetAutoBuyDelay(4); 
RecallRB(rb_MagesGZ,1);
buy(2, rb_MagesGZ, ArrayMagesGZ[1],0); //			#1
buy(3, rb_MagesGZ, ArrayMagesGZ[2],0); //			#2
buy(4, rb_MagesGZ, ArrayMagesGZ[3],0); //			#3
buy(5, rb_MagesGZ, ArrayMagesGZ[4],0); //			#4
buy(6, rb_MagesGZ, ArrayMagesGZ[5],0); //			#5
buy(7, rb_MagesGZ, ArrayMagesGZ[6],0); //			#6
buy(8, rb_MagesGZ, ArrayMagesGZ[7],0); //			#7
buy(9, rb_MagesGZ, ArrayMagesGZ[8],0); //			#8
buy(10, rb_MagesGZ, ArrayMagesGZ[9],0); //			#9
buy(11, rb_MagesGZ, ArrayMagesGZ[10],0); //			#10
buy(12, rb_MagesGZ, ArrayMagesGZ[11],0); //  		#11
buy(13, rb_MagesGZ, ArrayMagesGZ[12],0); //		#12
buy(14, rb_MagesGZ, ArrayMagesGZ[13],0); //		#13
buy(15, rb_MagesGZ, ArrayMagesGZ[14],0); //		#14
buy(16, rb_MagesGZ, ArrayMagesGZ[15],0); //		#15
//home, HSH
buy(10,   rb_Main,         ArrayMagesGZ[16],0); //		#16
HomeSweetHome;
end;

procedure Skupka_MagesNoGZ;
begin
//каст  зеркала на себя
  FindType($0F8D,backpack); 
  IF FindFullQuantity > 0 then MoveItem (finditem,2, backpack, 0,0,0);
  wait(900);
  FindType($0F84,backpack); 
  IF FindFullQuantity > 0 then MoveItem (finditem,2, backpack, 0,0,0);
  wait(900);
  stime := Now; 
  cast('Magic Reflection'); 
  repeat 
      wait(200); 
  until TargetPresent or (InJournalBetweenTimes('fizzles', stime, Now)<>-1); 
  if TargetPresent then TargetToObject(self); 
  wait(500);
//конец каста
RecallRB(rb_MagesNoGZ,1);

buy(2, rb_MagesGZ, ArrayMagesGZ[0],0); //			#1
buy(3, rb_MagesGZ, ArrayMagesGZ[1],0); //			#2
buy(4, rb_MagesGZ, ArrayMagesGZ[2],0); //			#3
buy(5, rb_MagesGZ, ArrayMagesGZ[3],0); //			#4
buy(6, rb_MagesGZ, ArrayMagesGZ[4],0); //			#5
buy(7, rb_MagesGZ, ArrayMagesGZ[5],0); //			#6
buy(8, rb_MagesGZ, ArrayMagesGZ[6],0); //			#7
buy(9, rb_MagesGZ, ArrayMagesGZ[7],0); //			#8
buy(10, rb_MagesGZ, ArrayMagesGZ[8],0); //			#9
buy(11, rb_MagesGZ, ArrayMagesGZ[9],0); //			#10
buy(12, rb_MagesGZ, ArrayMagesGZ[10],0); //  		#11
buy(13, rb_MagesGZ, ArrayMagesGZ[11],0); //		#12
buy(14, rb_MagesGZ, ArrayMagesGZ[12],0); //		#13
buy(15, rb_MagesGZ, ArrayMagesGZ[13],0); //		#14
buy(16, rb_MagesGZ, ArrayMagesGZ[14],0); //		#15

HomeSweetHome;
end;

procedure Skupka_Jewelers;
begin
{
//каст  зеркала на себя
  FindType('$0F8D',backpack); 
  IF FindFullQuantity > 0 then MoveItem (finditem,2, backpack, 0,0,0);
  wait(500);
  FindType('$0F84',backpack); 
  IF FindFullQuantity > 0 then MoveItem (finditem,2, backpack, 0,0,0);
  wait(500);
  sTime := Now; 
  cast('Magic Reflection'); 
  repeat 
      wait(200); 
      i:=i+1; 
  until TargetPresent or (InJournalBetweenTimes('fizzles', sTime, Now)<>-1) or (i=50); 
  if TargetPresent then TargetToObject(self); 
  wait(500);
//конец каста
######Jeweler NPC's Vendors ID#######
//VAR vendor01=ID=$00410C35
//VAR vendor02=ID=$00AB6031
//VAR vendor03=ID=$00AB5B9C
//VAR vendor04=ID=$002B001B
//VAR vendor05=ID=$00AB5C2D
//VAR vendor06=ID=$002AD755
//VAR vendor07=ID=$00AB5C40

//VAR vendor08=ID=$00AB5BC7
//VAR vendor09=ID=$0033A839

//VAR vendor10=ID=$0033A839
//VAR vendor11=ID=$00AB5BC7
//VAR vendor12=ID=$00AB5C65
//VAR vendor13=ID=$00AB5C67
//VAR vendor14=ID=$001A0F01
//VAR vendor15=ID=$00AB5FE0
//VAR vendor16=ID=$00AB60B4
//VAR vendor17=ID=$002EF68B
//VAR vendor18=ID=$00AB7A95
//VAR vendor19=ID=$001A0F05
######Jeweler NPC's Vendors ID#######
CheckGold2()
wait(1000)
#########################
recall('$42C6827D',1)
##########################GZ only#######################################
buy(2, '$42C6827D','$00410C35',0)				#1
buy(3, '$42C6827D','$00AB6031',0)				#2   3 -number of rune for recall  #'$0032211E'
buy(4, '$42C6827D','$002B001B','$00AB5B9C')	#3
buy(5, '$42C6827D','$00AB5C2D',0)			    #4
buy(6, '$42C6827D','$002AD755','$00AB5C40')  #5
buy(7, '$42C6827D','$0033A839','$00AB5BC7')  #6
buy(8, '$42C6827D','$00AB5C65',0)				#7
buy(9, '$42C6827D','$00AB5C67',0)				#8
buy(10,'$42C6827D','$001A0F01',0)			    #9
buy(11,'$42C6827D','$00AB5FE0',0)			    #10
buy(12,'$42C6827D','$00AB60B4',0)			    #11
buy(13,'$42C6827D','$002EF68B',0)			    #12
buy(14,'$42C6827D','$00AB7A95',0)			    #13
buy(15,'$42C6827D','$001A0F05',0)			    #14
buy(16,'$42C6827D','$001A1006',0)			    #15

buy(14,'$5232E638','$00322137',0)			    #16
#buy(5, '$770A82E2','$00AB600C',0)		    #17

#buy(14,'$5232E638','$00AB6062','$002ACECC') #18
##########################GZ only#######################################
#gotoxy(4104,571)}

end;

procedure bowyers_provisioners;
begin
{
######Bowyers&Provisioners NPC's Vendors ID#######
;rbname: bower
;VAR vendor01=$004CBAFB
;VAR vendor02=$001A1009
;VAR vendor03=$001A1008
;VAR vendor04=$002ADFB1
;VAR vendor05=$00C6F47D
;VAR vendor06=$0080B7F4
;VAR vendor07=$0059142B
;VAR vendor08=$001A0F1A
;VAR vendor09=$004CBB0D
;VAR vendor10=$0021B6E5
;VAR vendor11=$0048589D
;rbname: provizioner
;VAR vendor12=$00591444
;VAR vendor13=$00591441
;VAR vendor14=$0059144E
;VAR vendor15=$001D71C2
;VAR vendor16=$00591483
;VAR vendor17=$0059142F
;VAR vendor18=$00591418
;VAR vendor19=$00591435
;VAR vendor20=$00591457
;VAR vendor21=$00591440
;VAR vendor22=$00591456
;VAR vendor23=$0059150F
;VAR vendor24=$0080B7F8
######Bowyers&Provisioners NPC's Vendors ID#######
;rb01='$4455E8D5'
;rb02='$4455EB8A'
##########################
//каст  зеркала на себя
  FindType('$0F8D',backpack); 
  IF FindFullQuantity > 0 then MoveItem (finditem,2, backpack, 0,0,0);
  wait(500);
  FindType('$0F84',backpack); 
  IF FindFullQuantity > 0 then MoveItem (finditem,2, backpack, 0,0,0);
  wait(500);
  sTime := Now; 
  cast('Magic Reflection'); 
  repeat 
      wait(200); 
      i:=i+1; 
  until TargetPresent or (InJournalBetweenTimes('fizzles', sTime, Now)<>-1) or (i=50); 
  if TargetPresent then TargetToObject(self); 
  wait(500);
//конец каста

CheckGold()
wait(1000)
#########################
recall('$4455E8D5',1)
##########################GZ only#######################################
buy(2, '$4455E8D5','$004CBAFB',0)				#1
buy(3, '$4455E8D5','$001A1009',0)				#2   3 -number of rune for recall  #'$0032211E'
buy(4, '$4455E8D5','$001A1008',0)				#3
buy(5, '$4455E8D5','$002ADFB1',0)			    #4
buy(6, '$4455E8D5','$00C6F47D',0)				#5
buy(7, '$4455E8D5','$0080B7F4',0)			    #6
buy(8, '$4455E8D5','$0059142B',0)				#7
buy(9, '$4455E8D5','$001A0F1A',0)				#8
buy(10,'$4455E8D5','$004CBB0D',0)			    #9
buy(11,'$4455E8D5','$0021B6E5',0)			    #10

buy(1, '$4455EB8A','$0048589D',0)			    #11
buy(2, '$4455EB8A','$00591444',0)			    #12
buy(3, '$4455EB8A','$00591441',0)			    #13
buy(4, '$4455EB8A','$0059144E',0)			    #14
buy(5, '$4455EB8A','$001D71C2',0)			    #15
buy(6, '$4455EB8A','$00591483',0)			    #16
buy(7, '$4455EB8A','$0059142F',0)			    #17
buy(8, '$4455EB8A','$00591418',0)			    #18
buy(9, '$4455EB8A','$00591435',0)			    #19
buy(10,'$4455EB8A','$00591457',0)			    #20
buy(11,'$4455EB8A','$00591440',0)			    #21
buy(12,'$4455EB8A','$00591456',0)		    	#22
buy(13,'$4455EB8A','$0059150F',0)			    #23

buy(16,'$5D655CA7','$0080B7F8',0) 			#18
##########################GZ only#######################################
gotoxy(4104,571)
home()
	StartTime = UO.Timer()
	repeat
	UO.UseSkill('Evaluating Intelligence','self')
	wait(20000)
	until (UO.Timer() - StartTime) > 9600
uo.exec("exec main")
}
end;

BEGIN
//AddToSystemJournal(IntToStr(GetDistance($0126B74)));
HomeSweetHome;
while Life <1000 do 
begin
Skupka_MagesGZ;
stime := Now;
	  repeat 
		wait(60000); 
	  UseObject(backpack);
	  until Now > stime + (24.0/1440); 
end;
end.
Скрипт от января 2007 года, так что ему уже больше 9 лет. Я даже не помню, кто его писал, может и я - по срокам подходит, я стелсом занялся только летом того года.

GotoXY убрал, вписать нормальную ходилку. Скупка камней тоже вряд ли нужна. Впрочем, как каркас - пойдет. Проверок побольше, все дела.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Vlad_T
Posts: 9
Joined: 23.01.2016 22:44

Re: Скупка регов

Post by Vlad_T »

Спасибо!
Post Reply