Page 1 of 1

народ помогите разобратся

Posted: 27.11.2011 19:26
by dima
вот скрипт на мининг немогу понять как вписать руны штоб он летел в шахту и обратно летал вдом в скрипте вроде все есть но когда береш рунбуку полную то он нелетит по рунам которые вписываеш по номерам подскажите надо ли ренеймить руны или как их правельно внести туда

заранее спасибо

Code: Select all

program mining;
//Mining s rekolom domoy
//Rekolits9 pri nahojdenii tipov man,woman,explojen,prichki
//pri previshenii vesa 1000
//dobor kirok, zariajaet RB
//resaets9 cheresz .rescue
//
// crafted by bahoho   1.04
const
pickaxe = $0E85;
sunduk = $59FB7380; //Sunduk dl9 scroll recall, jarenoy ribi, kirok <Need Setup>
sunduk2 = $59FB7309; // Sunduk dl9 sbrosa rudi  <Need Setup>
RB = $59B17CEA; // Roone book  <Need Setup>
RunaHome = 8; // Nomer runi domoy [1-16] <Need Setup>
Xhome = 2086; // Koordinata X  v dome  <Need Setup>
trash = $592AFB0B; // pomoyka dl9 sbrosa mapov <Need Setup>
Moving = 1; // esli 1 s hodilkoy, esli drugoe 4islo to bez
MaxWeight = 200;

var x,y,i,t,k,p,r:integer;
ctime:TDateTime;
Enemy : array[1..5] of cardinal;
Ruda : array[1..8] of cardinal;
Runa : array[1..4] of integer;

{$Include 'all.inc'}

procedure Recall;
begin
Runa[1] := 12; // Nomera run v RB po shahtam [1-16] <Need Setup>
Runa[2] := 13; //esli netu stolko run prosto povtorit' neskolko odinakovih
Runa[3] := 12;
Runa[4] := 13;
UseObject(RB);
WaitGump(IntToStr(15 + Runa[r]));
wait(4000);
r:=r+1;
if (r > 4) then r:=1;
end;

procedure Home;
begin
repeat
checksave;
disarm;
wait(200);
UseObject(RB);  
WaitGump(IntToStr(15 + RunaHome));
wait(3000);
if (GetX(self) <> Xhome) then
    begin
    Raw_move(Random(7), true);
    wait(250);
    Raw_move(GetDirection(self), true);
    wait(500);
    end;
until (GetX(self) = Xhome) or dead
end;

function CheckPickaxe : Boolean;
   var tmpser : Cardinal;
   begin
      Result := true;
      if (ObjAtLayer(RhandLayer) = 0) then
      begin
        tmpser := findtype(pickaxe,backpack);
        if tmpser = 0 then
         begin
            Result := false;
            exit;
         end;
         wait(500);
         checksave;
      end;
   end;

function CheckEnemy : Boolean;
begin
Result := false;
for  p:=1  to 5  do
    begin
    findtype(Enemy[p],ground)
    if (findcount > 0) then
        begin
        Result := true;
        Addtosystemjournal('Vragi, suka, ne sp9t!!!');
        exit;
        end;
    wait(100)
    checksave;
    end;
end;

procedure move;
begin
x:=GetX(self);
y:=GetY(self);
t:=1;
if (GetDirection(self) = 0) then k:= 4;
if (GetDirection(self) = 1) then k:= 5;
if (GetDirection(self) = 2) then k:= 6;
if (GetDirection(self) = 3) then k:= 7;
if (GetDirection(self) = 4) then k:= 0;
if (GetDirection(self) = 5) then k:= 1;
if (GetDirection(self) = 6) then k:= 2;
if (GetDirection(self) = 7) then k:= 3;
repeat
if (ObjAtLayer(RHandLayer) = 0) then equipt(RHandLayer,pickaxe);
ctime:=now;
UseObject(ObjAtLayer(RHandLayer));
WaitForTarget(2000);
If TargetPresent then TargetToTile(0,GetX(self),GetY(self), GetZ(self));
wait(2000);
k := InJournalBetweenTimes('start', ctime, Now);
if (k <> -1) then
    begin
    if (t = 1) then
        begin
        Raw_move(GetDirection(self), true);
        t:= t+1;
        end
    else
        begin
        Raw_move(Random(7), true);
        t:=1;
        end;
    end
else
    begin
    Raw_move(k, true);
    end;
wait(1000);
until (GetX(self) <> x) or (GetY(self) <> y) or dead
end;

function timer(var acttimer:integer;actafter:integer):boolean;
begin
   result:=false;
   acttimer:=acttimer+1;
   if acttimer>=actafter then
   begin
      acttimer:=0;
      result:=true;      
   end;
end;

procedure Min;
begin
while (connected) do
begin
    if (ObjAtLayer(RHandLayer) = 0) then equipt(RHandLayer,pickaxe);
    UOSay(' ')
    for x := -2 to 2 do
    begin
        for y := -2 to 2 do
        begin
        wait(1000);
        if (weight > MaxWeight) then
            begin
            wait(1000);
            home;
            exit;
            end;        
        ctime := Now;
        UseObject(ObjAtLayer(RHandLayer));
        WaitForTarget(5000);
        checksave;
        If TargetPresent then TargetToTile(0, GetX(self)+x, GetY(self)+y, GetZ(self));
            k:=0
            repeat
            if (CheckEnemy) then
                begin
                uosay('.guards')
                Raw_move(GetDirection(self), true);
                wait(1000);
                home;
                exit;
                end;
            checksave;
            wait(100);
            k:= k+1;
            i := InJournalBetweenTimes('stop|anything', ctime, Now);
            until (i<>-1) or ( k > 600);
            wait(1000);
            if (ObjAtLayer(RHandLayer) = 0) then
                begin
                if (not CheckPickaxe) then exit;
                equipt(RHandLayer,pickaxe);
                end;
            end;
        end;
    if (Moving = 1) then move;
end;
end;

BEGIN
r:=1;
Ruda[1] := $19B9;
Ruda[2] := $0F30;
Ruda[3] := $0F2D;
Ruda[4] := $0F25;
Ruda[5] := $0EED;
Ruda[6] := $0F21;
Ruda[7] := $0F25;
Ruda[8] := $1BE9;
Enemy[1] := $0191;
Enemy[2] := $0190;
Enemy[3] := $0F0D;
Enemy[4] := $0005;
Enemy[5] := $0006;
ignore(self);
finddistance := 20;
if (not dead) then home;
SetARStatus(true);

while true do
begin
    while Connected do
    begin
    if (GetX(self) = Xhome) and not dead then
        begin
        Addtosystemjournal('Home, sweet home');
        wait(1000);
        MoveItems(backpack, $14ED, $FFFF, trash, 0, 0, 0, 50)
        wait(1000);
        useobject(sunduk2);
        wait(1000);
        for k := 1 to 8 do
            begin
            repeat
                findtype(Ruda[k],BackPack);
                if (findcount > 0) then MoveItems(backpack, Ruda[k], $FFFF, sunduk2, 0, 0, 0, 50);
                wait(100);
                checksave;
            until findcount = 0;
            end;
        wait(1000);
        useobject(sunduk);
        wait(1000);
        Hungry(1,sunduk);
        wait(1000);
        checksave;
        findtype($1F4C,sunduk);
        if (findcount > 0) then MoveItems(sunduk, $1F4C, $FFFF, RB, 0, 0, 0, 500)
        else
            begin
            Addtosystemjournal('KoH4uJIuCb scrool recall');
            exit;
            end;
        wait(1000);
        checksave;
        MoveItems(Backpack, $1F4C, $FFFF, sunduk, 0, 0, 0, 500);
        wait(1000);
        checksave;
        wait(1000);
        if (not CheckPickaxe) then
            begin
            findtype($0E85,sunduk);
            if findcount > 0 then
                MoveItem(FindItem, 1, BackPack, 0, 0, 0)
            else
                Addtosystemjournal('KoH4uJIuCb Kupku');
                checksave;
            end;
         wait(1000);
        disarm;
        recall;
        end;

    if CheckPickaxe and (not dead) then Min
        else
        begin
        if dead then
            begin
            wait(1000);
            uosay('.rescue');
            wait(3000);
            Addtosystemjournal('y6uJIu!!!');
            home;
            end;
        end;
    end;
wait(100);
end;
END.

Re: народ помогите разобратся

Posted: 28.11.2011 0:59
by dima
с рунами разобрался а вот с кирками немогу летит в шахту копает а когда кирка ломается стоит и нелетит домой за кирками

Re: народ помогите разобратся

Posted: 28.11.2011 9:58
by CFA
Не надо одну и ту же тему, постить в разные разделы.
Насчет кирок - он и не делает домой за ними, а использует те что в бекпаке лежат.

Re: народ помогите разобратся

Posted: 28.11.2011 17:17
by dima
так когда она ломается он просто стоит ниче неделает как исправить чтоб домой летел как сломает кирку

Re: народ помогите разобратся

Posted: 02.12.2011 17:11
by dima
хелп плиз

Re: народ помогите разобратся

Posted: 05.12.2011 8:29
by dima
народ подскажите почему скрипт современем просто отключается

Re: народ помогите разобратся

Posted: 05.12.2011 9:49
by CFA
dima wrote:народ подскажите почему скрипт современем просто отключается

Code: Select all

Addtosystemjournal('KoH4uJIuCb scrool recall');
exit;
это единственное место в скрипте, где он может закончить работу.

Re: народ помогите разобратся

Posted: 05.12.2011 16:47
by dima
ок спасибо