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

Очень бы хотелось скупку регов.

тут можно задать вопрос по скриптингу
v26RuS
Novice
Novice
Posts: 61
Joined: 18.05.2008 16:07
Location: DRW
Contact:

Post by v26RuS »

Я писал скрипт на скупку регов но так тестирование он окончательное и не прошел, да и выкладывать в паблик такие вещи нельзя...
Невозможное возможнО!
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Scripts Writer wrote:Ничего глупее никогда не слышал.
Рекомендую оставить подобные высказывания при себе. Это серьезное предупреждение. Мне лично надоело постоянно везде наблюдать подобные комментарии к постам Acronym. Особенно с учетом, что умение скриптить Acronim-а гораздо выше твоего. И пользы на форуме от него гораздо больше.
Scripts Writer
Novice
Novice
Posts: 130
Joined: 06.05.2008 18:03

Post by Scripts Writer »

Edred wrote:
Scripts Writer wrote:Ничего глупее никогда не слышал.
Рекомендую оставить подобные высказывания при себе. Это серьезное предупреждение. Мне лично надоело постоянно везде наблюдать подобные комментарии к постам Acronym. Особенно с учетом, что умение скриптить Acronim-а гораздо выше твоего. И пользы на форуме от него гораздо больше.
Ну забань в таком случае,- у меня своё мнение на этот счёт.
Проще научить человека ловить рыбу, чем постоянно ею его кормить. (с) Destruction
proZak
Novice
Novice
Posts: 78
Joined: 28.02.2008 0:08
Location: [Age of Power]
Contact:

Post by proZak »

Acronym wrote: б)Вопросы мне не адресовать, я скупкой никогда не интересовался. Я реги выращивал ;))
[/code]
А можеш выложыть скрипт на посадку регов? буду очень благодарен!! :D !!
[Ultima and Dota]-pro... Gamer
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

proZak wrote:
Acronym wrote: б)Вопросы мне не адресовать, я скупкой никогда не интересовался. Я реги выращивал ;))
[/code]
А можеш выложыть скрипт на посадку регов? буду очень благодарен!! :D !!
Реги садятся обычно вручную и собирают, пока их кто-то не уничтожит.
А скрипт на сбор примерно такой (если он еще рабочий):

Code: Select all

Program PesokRB;
var i, MaxWeight, X_GK, Y_GK : Integer;
TrapID, RB : Cardinal;
HarvestNS, HarvestBM, HarvestMR, HarvestGA, HarvestGS, HarvestWheet : Boolean;
temptime : TDateTime;
MakeTime : Cardinal;

Const
{Типы кустов}
ShrubNS = $18E5;
ShrubBM = $1783;
ShrubMR = $18E0;
ShrubGA = $18E1;
ShrubGS = $18E9;
ShrubWheet = $0C56;
{Типы Сырых ресурсов}
RawNS = $18E7;
RawBM = $0C70;
RawMR = $18DE;
RawGA = $18E3;
RawGS = $18EB;
Wheet = $1EBD;
Fertile_Dirts = $0F81;



{$Include 'all.inc'} 




procedure SetValues;
begin
TrapID := $4EFD3A0A;
RB := $4F1C1006;
HarvestNS := true;
HarvestBM := true;
HarvestMR := true;
HarvestGA := true;
HarvestGS := true;
HarvestWheet := true;
MaxWeight := 350;
X_GK := 4070;
Y_GK := 530;
end;



procedure FullDisconnect; 
begin 
SetARStatus(false); 
Disconnect; 
end; 




procedure CheckDead;
begin
WaitConnection(3000);
CheckSave;
if Dead then
begin
 SetWarMode(true);
 WaitGump('1');
 wait(5000);
 while (Dead) do
    begin
    UOSay('.c I''m was killed on Field at ' + IntToStr(GetX(Self)) + ' ' + IntToStr(GetY(Self)) + ' ! ' + 'Waiting while anybody ressurect me!');
    Wait (200000);
    end;
 wait (2000);
 WaitConnection(3000);
 CheckSave;
 CheckTargetError(5, 2);
 WaitConnection(3000);
 CheckSave;
 CheckDead;
 Hungry(1, backpack);
end;
end;



procedure Harvest(HarvestType : Word);
var c,d,e,f : Integer;
    StrubsList : TStringList;
    SaveFindDistanse : Integer;
    StrubID : Cardinal;
    stime : TDateTime;
begin
SaveFindDistanse := FindDistance;
FindDistance := 2;
WaitConnection(3000);
CheckSave;
CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
FindType(HarvestType, Ground);
if (FindFullQuantity = 0) then Exit;
StrubsList := TStringList.Create;
GetFindedList(StrubsList);
While (StrubsList.Count > 0) and (Not Dead) and (Weight < MaxWeight) do
   begin
   WaitConnection(3000);
   CheckSave;
   CheckTargetError(5, 2);
   WaitConnection(3000);
   CheckSave;
   CheckDead;
   StrubID := StrToInt('$'+StrubsList.Strings[0]);
   stime := Now;
   {Начинаем собирать}
   UseObject(StrubID);
   WaitGump('0');
   repeat
      c := InJournalBetweenTimes('performing|doing', stime, Now); 
      d := InJournalBetweenTimes('That has already been harvested', stime, Now); 
      e := InJournalBetweenTimes('You harvest all you can', stime, Now); 
      f := InJournalBetweenTimes('That has already been harvested', stime, Now); 
      wait(200); 
   until (c >= 0) or (d >= 0) or (e >= 0) or (f >= 0) or (Now > stime + (2.0/1440)) or Dead;
   if (f >= 0) then WaitGump('0');
   if (c >= 0) then wait(2000);
   wait(200);
   StrubsList.Delete(0);
   end; {End While (StrubsList.Count > 0) and (Not Dead)}
StrubsList.Free;
FindDistance := SaveFindDistanse;
end;



procedure MakeField;
Begin
WaitConnection(3000);
CheckSave;
CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
AddToSystemJournal('Make Field');
if (HarvestNS) and (Weight < MaxWeight) then Harvest(ShrubNS);
if (HarvestBM) and (Weight < MaxWeight) then Harvest(ShrubBM);
if (HarvestMR) and (Weight < MaxWeight) then Harvest(ShrubMR);
if (HarvestGA) and (Weight < MaxWeight) then Harvest(ShrubGA);
if (HarvestGS) and (Weight < MaxWeight) then Harvest(ShrubGS);
if (HarvestWheet) and (Weight < MaxWeight) then Harvest(ShrubWheet);
end; {End procedure MakeField;}





function CheckRegs : Boolean;
begin
WaitConnection(3000);
CheckSave;
CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
result := true;
{Проверяем кол-во регов}
if (Count(BM) < 10) or (Count(BP) < 10) or (Count(MR) < 10) then result := false;
end;



function GetRegs : Boolean;
begin
wait(500);
WaitConnection(3000);
CheckSave;
CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
{Если мало BM, то берем в бекпак}
findtype(BM, backpack);
if FindFullQuantity < 10 then 
   begin
   AddToSystemJournal('Drag BM');
   if findtype(BM, ground) <> 0 then Grab(finditem, 30)
   else AddToSystemJournal('Error: No BM at GK');
   wait(1000);
   end;
{Если мало BP, то берем в бекпак}
findtype(BP, backpack);
if FindFullQuantity < 10 then 
   begin
   AddToSystemJournal('Drag BP');
   if findtype(BP, ground) <> 0 then Grab(finditem, 30)
   else AddToSystemJournal('Error: No BP at GK');
   wait(1000);
   end;
{Если мало MR, то берем в бекпак}
findtype(MR, backpack);
if FindFullQuantity < 10 then 
   begin
   AddToSystemJournal('Drag MR');
   if findtype(MR, ground) <> 0 then Grab(finditem, 30)
   else AddToSystemJournal('Error: No MR at GK');
   wait(1000);
   end;
result := true;
end;



procedure DropRawRegs;
begin
findtype(RawNS, backpack);
if (FindFullQuantity > 0) then
    begin
    Stack(RawNS, GetColor(finditem));
    findtype(RawNS, ground);
    AddToSystemJournal('There are '+IntToStr(FindFullQuantity)+' RawNS');
    wait(1000);
    end;
findtype(RawBM, backpack);
if (FindFullQuantity > 0) then
    begin
    Stack(RawBM, GetColor(finditem));
    findtype(RawBM, ground);
    AddToSystemJournal('There are '+IntToStr(FindFullQuantity)+' RawBM');
    wait(1000);
    end;
findtype(RawMR, backpack);
if (FindFullQuantity > 0) then
    begin
    Stack(RawMR, GetColor(finditem));
    findtype(RawMR, ground);
    AddToSystemJournal('There are '+IntToStr(FindFullQuantity)+' RawMR');
    wait(1000);
    end;
findtype(RawGA, backpack);
if (FindFullQuantity > 0) then
    begin
    Stack(RawGA, GetColor(finditem));
    findtype(RawGA, ground);
    AddToSystemJournal('There are '+IntToStr(FindFullQuantity)+' RawGA');
    wait(1000);
    end;
findtype(RawGS, backpack);
if (FindFullQuantity > 0) then
    begin
    Stack(RawGS, GetColor(finditem));
    findtype(RawGS, ground);
    AddToSystemJournal('There are '+IntToStr(FindFullQuantity)+' RawGS');
    wait(1000);
    end;
findtype(Wheet, backpack);
if (FindFullQuantity > 0) then
    begin
    Stack(Wheet, GetColor(finditem));
    findtype(Wheet, ground);
    AddToSystemJournal('There are '+IntToStr(FindFullQuantity)+' Wheet');
    wait(1000);
    end;
findtype(Fertile_Dirts, backpack);
if (FindFullQuantity > 0) then
    begin
    Stack(Fertile_Dirts, GetColor(finditem));
    findtype(Fertile_Dirts, ground);
    AddToSystemJournal('There are '+IntToStr(FindFullQuantity)+' Fertile_Dirts');
    wait(1000);
    end;
end;



function RecallRB(RBID : Cardinal; RuneNumber : Integer) : Boolean;
var CurMana : Integer;
    Recalled : Boolean;
    c,d,e,f : Integer;
    stime : TDateTime;
    LastX, LastY : Integer;
begin
wait(500);
AddToSystemJournal('function RecallRB started');
WaitConnection(3000);
CheckSave;
CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
LastX := GetX(Self);
LastY := GetY(Self);
{Если в руках чтото есть, то снимаем}
if ObjAtLayer(RhandLayer) <> 0 then
    begin
    disarm;
    wait(1000);
    end;
Recalled := false;
while (not Recalled) do
begin
WaitConnection(3000);
CheckSave;
CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
{Если в руках чтото есть, то снимаем}
if ObjAtLayer(RhandLayer) <> 0 then
    begin
    disarm;
    wait(1000);
    end;
{Ждем пока восстановиться мана, если она не полная}
while Mana < MaxMana do
    begin
    UseSkill('Meditation');
    wait(8000);
    end;
wait(500);
stime := Now;
CurMana := Mana;
{Если нету регов на рекол, то реколимся по заряду}
if (Count(BP) > 0) and (Count(MR) > 0) and (Count(BM) > 0) then
    begin
    {Recall используя реги}
    UseObject(RBID);
    WaitGump(IntToStr(600 + RuneNumber));
    end
else
    begin
    {Recall используя заряд РБ}
    AddToSystemJournal('Регов нету! Recall по заряду!');
    UseObject(RBID);
    WaitGump(IntToStr(2 * RuneNumber));
    end;
AddToSystemJournal('Try to recall');
repeat
   c := InJournalBetweenTimes('perform|doing', stime, Now); 
   d := InJournalBetweenTimes('fizzles', stime, Now); 
   e := InJournalBetweenTimes('cast with things in your hands', stime, Now); 
   f := InJournalBetweenTimes('your book is out of charges', stime, Now); 
   wait(500); 
until (c >= 0) or (d >= 0) or (e >= 0) or (Mana < CurMana) or (Now > stime + (1.0/1440));
AddToSystemJournal('c = '+IntToStr(c)+' '+'d = '+IntToStr(d)+' '+'e = '+IntToStr(e)+' '+'Mana = '+IntToStr(Mana)+' '+'CurMana = '+IntToStr(CurMana));
wait(500);
{Если шард говорит, что чтото в руках, то явно глюк и реконнектимся}
if (e >= 0) then
    begin
    Disconnect;
    wait(2000);
    WaitConnection(3000);
    CheckSave;
    CheckTargetError(5, 2);
    WaitConnection(3000);
    CheckSave;
    CheckDead;
    end;
{Если шард говорит что нету зарядов, то полный дисконнект, пока не забросят вручную заряды}
if (f >= 0) then
    begin
    AddToSystemJournal('Нету зарядов!');
    FullDisconnect;
    wait(2000);
    WaitConnection(3000);
    CheckSave;
    CheckTargetError(5, 2);
    WaitConnection(3000);
    CheckSave;
    CheckDead;
    end;
{Если среколились, то Recalled := true;}
if (Mana < CurMana) then Recalled := true;
AddToSystemJournal('Mana = '+IntToStr(Mana)+' '+'CurMana = '+IntToStr(CurMana));
if Recalled then AddToSystemJournal('Recalled')
else AddToSystemJournal('Not Recalled');
end; {End while not Recalled}
{Раз среколились, то надо подождать чуток, пока изменяться координаты}
stime := Now;
if Recalled then repeat
wait(500);
until (Now > stime + (0.1/1440)) or (LastX <> GetX(Self)) or (LastY <> GetY(Self));
WaitConnection(3000);
CheckSave;
CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
if Recalled then result := true
else Result := false;
end;




function Lodka : Boolean;
var i,c : Integer;
    stime : TDateTime;
begin
wait(1000);
AddToSystemJournal('function GK started');
result := True;
CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
if not ((X_GK = GetX(Self)) and (Y_GK = GetY(Self))) then
    begin
    {Реколимся в GK}
    AddToSystemJournal('Реколимся в GK!');
    RecallRB(RB, 2);
    wait(1000);    
    end;
stime := Now;
repeat
wait(500);
until (Now > stime + (1.0/1440)) or ((X_GK = GetX(Self)) and (Y_GK = GetY(Self)));
if not ((X_GK = GetX(Self)) and (Y_GK = GetY(Self))) then
    begin
    result := false;
    Exit;
    end;
c := 0;
repeat
{Далее производим синхронизацию снаряжения}
CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
DropRawRegs;
GetRegs;
until (c > 2) or (CheckRegs);
if not CheckRegs then Result := false;
wait(1000);
end;






Begin {Main Program Start}
SetValues;
FindDistance := 2;
SetARStatus(false);
WaitConnection(3000);
CheckSave;
CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
wait(3000);
SetARStatus(true);
if FindType($097B, $FFFFFFFF) <> 0 then Hungry(1, $FFFFFFFF);


{Перед запуском устанавливаем РБ в состояние Cast Recall (кнопка 403)}
WaitGump('');
WaitConnection(3000);
CheckSave;
Wait(2000);
UseObject(RB);
WaitGump('403');
Wait(4000);
WaitConnection(3000);
CheckSave;



while true do
begin

CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;

{Если мало регов или полный пак, то идем домой}
if (CheckRegs = false) or (Weight >= MaxWeight) then while not Lodka do
    begin
    AddToSystemJournal('Error with lodka');
    wait(10000);
    end;

CheckTargetError(5, 2);
WaitConnection(3000);
CheckSave;
CheckDead;
if FindType($097B, $FFFFFFFF) <> 0 then Hungry(1, $FFFFFFFF);
wait(500);


{Ждем 5 минут после последнего збора поля}
temptime := Now;
AddToSystemJournal('Waiting some time ...');
repeat
wait(2000);
until (Now > temptime + (3.0/1440)) or (Timer > (Maketime + (5 * 60 * 1000)));
MakeTime := Timer;
AddToSystemJournal('Waiting complete.');


i := 0;
while (i < 1) and CheckRegs and (Weight < MaxWeight) do
  begin
  {Реколл на поле}
  while not RecallRB(RB, 3) do
        begin
        AddToSystemJournal('Не могу среколиться на поле!');
        wait(30000);
        end;
  wait(1000);
  MakeField;
  wait(500);
  while not RecallRB(RB, 4) do
        begin
        AddToSystemJournal('Не могу среколиться на поле!');
        wait(30000);
        end;
  wait(1000);
  MakeField;
  wait(500);
  i := i + 1;
  end;


end;


End.
proZak
Novice
Novice
Posts: 78
Joined: 28.02.2008 0:08
Location: [Age of Power]
Contact:

Post by proZak »

Miralex wrote:
proZak wrote:
Acronym wrote: б)Вопросы мне не адресовать, я скупкой никогда не интересовался. Я реги выращивал ;))
[/code]
А можеш выложыть скрипт на посадку регов? буду очень благодарен!! :D !!
Реги садятся обычно вручную и собирают, пока их кто-то не уничтожит.
А скрипт на сбор примерно такой (если он еще рабочий):
.[/code]
Спасибо канешно но скрипт неподходит под наш шард!!
[Ultima and Dota]-pro... Gamer
SaNeK
Novice
Novice
Posts: 65
Joined: 08.09.2008 9:52
Contact:

Post by SaNeK »

proZak wrote: Спасибо канешно но скрипт неподходит под наш шард!!
Понятно, что не подходит ) А этот захотеть можно и переделать ;)
+ на АоПе проблема с резендом, и определением наличия посаженого рега.
proZak
Novice
Novice
Posts: 78
Joined: 28.02.2008 0:08
Location: [Age of Power]
Contact:

Post by proZak »

SaNeK wrote:
proZak wrote: Спасибо канешно но скрипт неподходит под наш шард!!
Понятно, что не подходит ) А этот захотеть можно и переделать ;)
+ на АоПе проблема с резендом, и определением наличия посаженого рега.
Привет подгони пару скриптов :D
[Ultima and Dota]-pro... Gamer
Post Reply