Здравствуйте!
Кто-то мог бы поделиться скупщиком регов (складывать в банк, использование рунбука), или примерным teamplate для этого?
Спасибо что ознакомились с моим сообщением!
- Board index Stealth Client in Russian Помощь по скриптам
- Search
-
- It is currently 20.04.2024 0:09
- All times are UTC+02:00
Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
Скупка регов
тут можно задать вопрос по скриптингу
Re: Скупка регов
типа скрипт
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.
GotoXY убрал, вписать нормальную ходилку. Скупка камней тоже вряд ли нужна. Впрочем, как каркас - пойдет. Проверок побольше, все дела.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".