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

Помогите разобраться !

тут можно задать вопрос по скриптингу
Post Reply
Lietman
Novice
Novice
Posts: 74
Joined: 12.12.2010 14:17
Contact:

Помогите разобраться !

Post by Lietman »

Взял на форуме скрипт хочу отредактировать его под себя, Мне просто надо чтоб он обкапывал шахту. Буду очень благодарен за помощь.

Code: Select all

program MiningVip; 
// (c) v26RuS (Galiano{ASTARTA} DRW) v1.1 
{$Include 'all.inc'} 

const 
M_nothing1 = 'There is no ore here to mine'; 
M_nothing2 = 'That is too far'; 
M_nothing3 = 'Try mining in rock'; 
M_nothing4 = 'You cannot mine so close'; 
M_nothing5 = 'You have no line'; 
M_nothing6 = 'reach'; 
M_fizzles1 = 'You loosen some rocks'; 
M_needwait = 'You decide not to mine'; 
M_success = 'in your pack.'; 
MaxLimit = 15;              // максимальное кол-во физлов одной точки 
Cords_x = 1251;       // Кордината сундука X 
Cords_y = 1251;       // Кордината сундука Y 
Cord_x = 1251;          // Кордината копки X 
Cord_y = 1251;          // Кордината копки Y 
Pickaxe1 = $0E85;           // Типы кирок 
Pickaxe2 = $0E86; 
Ore1 = $19B7;               // 1 Ore 
Ore2 = $19BA;               // 2 Ore 
Ore3 = $19B8;               // 3 Ore 
Ore4 = $19B9;               // 4 Ore 
MyMaxWeight = 400;       // Max Weight 
CaveLimit = 1282;        // Cave limit 
var 
minret,StartFlag : Integer; 
HowManyDischarge : Integer; 
ScriptStartTime : TDateTime; 

flag1 : Boolean; 

   procedure CheckDead; 
Begin 
if Dead then 
begin 
AddToSystemJournal('Персонаж мертв: '+TimeToStr(now)); 
FullDisconnect; // тут мне пишет ошибку
end 
      end; 


procedure GoXY(x,y : integer; runflag : boolean); 
   // x,y - eii?aeiaou, a eioi?ua eaai 
   // prec - oi?iinou iiaoiaa 
   // runflag - aa?aou eee eaoe 
   // v. 1.04 (n) Edred, ne?eio ii?oe?iaai n ei?aeoa 
   // i?eaeiaeuiay aa?ney Yoko n ai?aaioeie AGRS e Edred. 
   var ld, ldc, dx, dy, mx, my,d,e,a : Integer; 
   begin 
        ld := 0;   ldc := 0;   d := 0;     e := 2; 
   AddToSystemJournal('Начинаем переход'); 
     while true do 
        begin 
         dx := GetX(self) - x; if dx < 0 then dx := 0 - dx; 
         dy := GetY(self) - y; if dy < 0 then dy := 0 - dy; 
         if dy > dx then dx := dy; 
         mx := GetX(self); my := GetY(self); 
         dx := mx - x; if dx < 0 then dx := 0 - dx; 
         dy := my - y; if dy < 0 then dy := 0 - dy; 
         if dy > dx then dx := dy; 
         if ld = dx then begin 
            ldc := ldc + 1; 
           if ldc > 4 then begin 
             addtosystemjournal( 'GotoXY: Cannot reach location!' ); 
             a := 0 
             repeat 
             Raw_Move(d,runflag); 
             a := a+1 
             until a = e 
             d := d + 2; 
             If d = 8 then d:=0 e:= e+1 ldc :=0 
              end; 
         end 
         else ld := dx; 
         waitconnection(5000); 
         if mx = x then begin 
            if my = y then exit; 
            // North 
            if my > y then begin Raw_Move(0,runflag); continue; end; 
            // South 
            Raw_Move(4,runflag); continue; 
         end; 
         if mx < x then begin 
            // Northeast 
            if my > y then begin Raw_Move(1,runflag); continue; end; 
            // East 
            if my = y then begin Raw_Move(2,runflag); continue; end; 
            // Southeast 
            Raw_Move(3,runflag); continue; 
         end; 
         // Southwest 
         if my < y then begin Raw_Move(5,runflag); continue; end; 
         // West 
         if my = y then begin Raw_Move(6,runflag); continue; end; 
         // Nortwest 
         Raw_Move(7,runflag); continue; 
      end; 
   end; 
   function CheckPickaxe : Boolean; 
   // Проверяем есть ли кирка и одеваем ее (если необходимо) в правую руку 
   // возвращаем true - если все ок, false - если нет кирки 
   // Проверка на то, что в руке у чара не кирка не производится! 
   var tmpser : Cardinal; 
   begin 
      Result := true; 
      if (ObjAtLayerEx(RhandLayer,self) = 0) then 
      begin 
         // ничего в руках нету 
         tmpser := findtype(Pickaxe1,backpack); 
         if tmpser = 0 then tmpser := findtype(Pickaxe2,backpack); 
         if tmpser = 0 then 
         begin 
            Result := false; 
                 addtosystemjournal('Нету кирки :(('); 
            exit; 
         end; 
         if not equip(RhandLayer,tmpser) then 
         begin 
            wait(1000); 
            if not equip(RhandLayer,tmpser) then 
            begin 
               Result := false; 
              addtosystemjournal('Нету кирки :(('); 
               exit; 
            end; 
         end; 
         wait(500); 
         checksave; 
      end; 
   end; 

   procedure CheckHide; 
   begin 
      if Hidden then exit; 
      if WarMode = true then SetWarMode(false); 
      repeat 
         UseSkill('Hiding'); 
         wait(4500); 
         checksave; 
      until Hidden or (not Connected); 
   end; 




   function MiningAround : Integer ; 
   // копаем вокруг чара 
   // параметр - максимальный вес. 
   // возвращаем: 
   // 1 - вокруг чара все вскопано успешно 
   // 2 - превышен максимальный вес 
   // 3 - чар под атакой 
   // 4 - нет кирки 
   var k, r, x, y : Integer; 
   var mn1, mn2, mn3, mn4, mn5, mn6, mf1, mw1, ms1 : Integer; 
   var ctime : TDateTime; 
   begin 
      Result := 1; 
      addtosystemjournal(inttostr(GetX(self)) + ' ' + inttostr(GetY(self)) + ': Начинаем обкопку. Вес чара: ' + inttostr(Weight)); 
      for x := -4 to 4 do 
      begin 
         for y := -4 to 4 do 
         begin 
            r := 0; 
            repeat 
               waitconnection(5000); 
               if not CheckPickaxe then 
               begin 
                  Result := 4; 
                  exit; 
               end; 
               CheckHide; 
               if TargetPresent then CancelTarget; 
               if WarMode = true then SetWarMode(false); 
               ctime := Now; 
               UseObject(ObjAtLayerEx(RhandLayer,self)); 
               WaitForTarget(1000); 
               If TargetPresent then TargetToTile(1342, GetX(self)+x, GetY(self)+y, GetZ(self)); 
               k := 0; 
               repeat 
                  wait(100); 
                  k := k + 1; 
                  checksave; 
                  mn1 := InJournalBetweenTimes(M_nothing1, ctime, Now); 
                  mn2 := InJournalBetweenTimes(M_nothing2, ctime, Now); 
                  mn3 := InJournalBetweenTimes(M_nothing3, ctime, Now); 
                  mn4 := InJournalBetweenTimes(M_nothing4, ctime, Now); 
                  mn5 := InJournalBetweenTimes(M_nothing5, ctime, Now); 
                  mn6 := InJournalBetweenTimes(M_nothing6, ctime, Now); 
                  mf1 := InJournalBetweenTimes(M_fizzles1, ctime, Now); 
                  ms1 := InJournalBetweenTimes(M_success, ctime, Now); 
               until (mn1<>-1) or (mn2<>-1) or (mn3<>-1) or (mn4<>-1) or (mn5<>-1) or (mn6<>-1) or (mf1<>-1) or (ms1<>-1) or Dead or (k > 300); 

          if InJournalBetweenTimes('heavy', ctime, Now) <> -1 then 
      begin 
        Result := 6 
        exit; 
          end; 
    

               if Weight > MyMaxWeight then 
               begin 
                  Result := 2; 
                  exit; 
               end; 
               if (mf1<>-1) then 
               begin 
                  r := r + 1; 
                  if r >= 10 then break 
                  else continue; 
               end; 
               if (mw1<>-1) then wait(3000); 
            until (mn1<>-1) or (mn2<>-1) or (mn3<>-1) or (mn4<>-1) or (mn5<>-1) or (mn6<>-1); 
         end; 
      end; 
   end; 


  
   function GetPickaxe : Boolean; 
   // Проверяем есть ли кирка и одеваем ее (если необходимо) в правую руку 
   // возвращаем true - если все ок, false - если нет кирки 
   // Проверка на то, что в руке у чара не кирка не производится! 
   var tmpser : Cardinal; 
   begin 
      Result := true; 
      if (ObjAtLayerEx(RhandLayer,self) = 0) then 
      begin 
         // ничего в руках нету 
         tmpser := findtype(Pickaxe1,backpack); 
         if tmpser = 0 then tmpser := findtype(Pickaxe2,backpack); 
         if tmpser = 0 then 
         begin 
            Result := false; 
            exit; 
         end; 
         if not equip(RhandLayer,tmpser) then 
         begin 
            wait(1000); 
            if not equip(RhandLayer,tmpser) then 
            begin 
               Result := false; 
               exit; 
            end; 
         end; 
         wait(500); 
         checksave; 
      end; 
if Result = false then 
begin 
                 GoXY(Cords_x,Cords_y,true); 
       useobject(sunduk_ore); 
       tmpser := findtype(Pickaxe1,Sunduk_pix); 
       if tmpser = 0 then tmpser := findtype(Pickaxe2,Sunduk_pix); 
       if tmpser = 0 then 
       begin 
        Result := false; 
        addtosystemjournal('Нету кирки в сундуке:(('); 
       end; 
       grab(Finditem,1); 
         if not equip(RhandLayer,tmpser) then 
         begin 
            wait(1000); 
            if not equip(RhandLayer,tmpser) then 
            begin 
               Result := false; 
        addtosystemjournal('Нету кирки в сундуке:(('); 
               exit; 
            end; 
         end; 
         wait(500); 
         checksave; 
                 GoXY(Cord_x,Cord_y,true); 
end; 
   end.
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Помогите разобраться !

Post by shinma »

а в чем вопрос то?
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Lietman
Novice
Novice
Posts: 74
Joined: 12.12.2010 14:17
Contact:

Re: Помогите разобраться !

Post by Lietman »

shinma wrote:а в чем вопрос то?
ошибку пишет :( Я удалил те функции которые мне не нужны. Мне надо чтоб просто вокруг себя окапывал.
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Re: Помогите разобраться !

Post by Alex »

отпиши какая ошибка, люди не будут запускать твой скрипт у себя, потому что
1. быстро надоест все скрикты у тебя тестить
2. часто нужно создать определённые условия что бы скрипт заработал, например прибежать в какую то шахту

так что помогают в основном анализируя ошибку и просматривая текст скрипта на форуме
Новый стелс лежит тут. Стелс это произведение искусства! :)
Lietman
Novice
Novice
Posts: 74
Joined: 12.12.2010 14:17
Contact:

Re: Помогите разобраться !

Post by Lietman »

FullDisconnect; // тут мне пишет ошибку
там в скрипте написоно
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Re: Помогите разобраться !

Post by Alex »

замени FullDisconnect на

Code: Select all

SetARStatus(false);
Disconnect;
Новый стелс лежит тут. Стелс это произведение искусства! :)
Post Reply