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

Поправте скрипт на магию пожалста

тут можно задать вопрос по скриптингу
Post Reply
Паразит
Neophyte
Neophyte
Posts: 10
Joined: 03.02.2012 23:36

Поправте скрипт на магию пожалста

Post by Паразит »

Здрям! Собсна есть скрипт на прокачку магии, но с изьяном. Когда заканчиваются реагенты, новые не берёт.. Кто знает, поправте и лишнее уберите пожалста!
Program Magery;
{$Include 'all.inc'}

Var
k:integer;

Const

sback=$51EE5F31; // пак с регами
bpe=$0F7A;
gl=$0F84;
mre=$0F86;
sa=$0F8C;
tmana=30;

procedure getitemsgl(item:cardinal);

// процедура берет из контейнера 60 шт gl
begin
Useobject(sback);
wait(500);
if (count(item)=0) then
begin
findType(item,sback);
if (FindCount < 200) then
begin
k := FindQuantity;
Grab(finditem,300);
wait(1000);
checksave;
case item of
gl : addtosystemjournal('взял 300 GL из ' + inttostr(k));
end;
end;
end;
end;

procedure getitemsmre(item:cardinal);

// процедура берет из контейнера 60 шт mr
begin
Useobject(sback);
wait(500);
if (count(item)=0) then
begin
findType(item,sback);
if (FindCount < 200) then
begin
k := FindQuantity;
Grab(finditem,300);
wait(1000);
checksave;
case item of
mre : addtosystemjournal('взял 300 mr из ' + inttostr(k));
end;
end;
end;
end;

procedure getitemssa(item:cardinal);

// процедура берет из контейнера 60 шт sa
begin
Useobject(sback);
wait(500);
if (count(item)=0) then
begin
findType(item,sback);
if (FindCount < 200) then
begin
k := FindQuantity;
Grab(finditem,300);
wait(1000);
checksave;
case item of
sa : addtosystemjournal('взял 300 sa из ' + inttostr(k));
end;
end;
end;
end;



procedure getitemsbpe(item:cardinal);
// процедура берет из контейнера 60 шт bpe
begin
Useobject(sback);
wait(500);
if (count(item)=0) then
begin
findType(item,sback);
if (FindCount < 200) then
begin
k := FindQuantity;
Grab(finditem,300);
wait(1000);
checksave;
case item of
bpe : addtosystemjournal('взял 300 bpe из ' + inttostr(k));
end;
end;
end;
end;

Procedure Casting;
begin

getitemsmre(mre);
getitemsgl(gl);
getitemsbpe(bpe);
getitemssa(sa);
addtosystemjournal('Начинаю Шурум-Бурумить');

while true do begin
if (Mana < 33) then
begin
while (Mana < MaxMana) do
begin
useskill('Meditation');
wait(5200);
end;
end;
Cast('Mass Dispel');
WaitForTarget(200);
wait(5500);
end;
end;

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


BEGIN
If connected then
begin
SetARStatus(true); {Включаю реконнектор}
while true do
begin
waitconnection(5000);

Finddistance:=2;
repeat
Casting;
until ( mana <= tmana);
if (GetSkillValue('Magery') > 100) then FullDisconnect;
end;
end;
END.

END.
Roe
Posts: 2
Joined: 09.04.2012 2:12

Re: Поправте скрипт на магию пожалста

Post by Roe »

я конечно не спец но вроде вот так будет всё работать проверь
Program Magery;
{$Include 'all.inc'}

Var
k:integer;
Reg : array[1..3] of Word; // поправить если больше трех реагентов

Const

sback=$51EE5F31; // пак с регами
bpe=$0F7A;
gl=$0F84;
mre=$0F86;
sa=$0F8C;
tmana=30;

procedure Reags;
begin

Reg[1]:= $0F7B; // тут если надо поставь ещё реги и выше и ниже поправь цифру
Reg[2]:= $0F8D;
Reg[3]:= $0F86;
//Reg[4]:= $0F86;
AddToSystemJournal('Берем реги');
Useobject(sback);
wait(500)
for i:=1 to 3 do // поправить если больше трех реагентов
begin
findtype(Reg,backpack)
if (FindCount = 0) or (Count(Reg) < 5) then
begin
findtype(Reg,(sback);
if findcount > 0 then
begin
checksave;
MoveItem(FindItem,100,Backpack,0,0,0);
wait(800);
end;
end;
end;
end;

Procedure Casting;
begin

Reags;
addtosystemjournal('Начинаю Шурум-Бурумить');

while true do begin
if (Mana < 33) then
begin
while (Mana < MaxMana) do
begin
useskill('Meditation');
wait(5200);
end;
end;
Cast('Mass Dispel');
WaitForTarget(200);
wait(5500);
end;
end;

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


BEGIN
If connected then
begin
SetARStatus(true); {Включаю реконнектор}
while true do
begin
waitconnection(5000);

Finddistance:=2;
repeat
Casting;
until ( mana <= tmana);
if (GetSkillValue('Magery') > 100) then FullDisconnect;
end;
end;
END.

END.

[/quote]
Паразит
Neophyte
Neophyte
Posts: 10
Joined: 03.02.2012 23:36

Re: Поправте скрипт на магию пожалста

Post by Паразит »

Roe wrote:я конечно не спец но вроде вот так будет всё работать проверь
Та же проблема что и в "моём" скрипте. По началу работает всё нормально, но как только заканчиваются реагенты, новые не берёт.
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Поправте скрипт на магию пожалста

Post by nepopus »

Code: Select all

Procedure Casting;

  begin
    getitemsmre(mre);
    getitemsgl(gl);
    getitemsbpe(bpe);
    getitemssa(sa);
    addtosystemjournal('Начинаю Шурум-Бурумить');

    while true do begin // <--------------- Когда скрипт должен выйти из этого цикла?

      if (Mana < 33) then begin
        while (Mana < MaxMana) do begin
          useskill('Meditation');
          wait(5200);
        end;
      end; 

      Cast('Mass Dispel');
      WaitForTarget(200);
      wait(5500); 
    end;
  end;
Не поверите, но этот кусок, это часть верхнего скрипта, только красивее.
Ответ спрятан внутри. Я в скрипт ничего не добавлял.
<( o_O<) <( O_O )> (>O_o )>
Паразит
Neophyte
Neophyte
Posts: 10
Joined: 03.02.2012 23:36

Re: Поправте скрипт на магию пожалста

Post by Паразит »

nepopus wrote:Не поверите, но этот кусок, это часть верхнего скрипта, только красивее.
Ответ спрятан внутри. Я в скрипт ничего не добавлял.
Пасибо.. "Ларчик просто открывался" Ну просто нижайший поклон :)
Post Reply