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

Автоламбер с лодкой (сервер new age)

тут можно задать вопрос по скриптингу
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Автоламбер с лодкой (сервер new age)

Post by Oasis »

Скрипт как бы работает, а именно: зайдет и выйдет с лодки, сделает топоры, поест, сбросит дерево, словом все работает, и нет ошибок. НО! Есть беда которую я не могу сам решить. Чар пробует рубить деревья с места запуска скрипта. к примеру если я запущу скрипт, где чар будет стоять возле дерева которое попадает в зону координат, он будет рубить деревья только те, до которых будет доставать. Если запустить скрипт в лодке, он выйдет с лодки и все. будет стоять как вкопанный и пробовать рубить деревья с того места.

Сервер Pol95
На форуме пишут что у всех работает, проблема походу только у меня.

скрипт

Code: Select all

program lumber_autotile;

var
TyleType : Array [0..19] of Word;
a : TFoundTilesArray;
c,b,s : Integer;

const
Xmin = 2556;
Xmax = 2567;
Ymin = 508;
Ymax = 510;
vozleX = 2557;
vozleY = 529;
lodkaX = 2556;
lodkaY = 534;
lodkaZ = -2;
Trap = $43883F62;
TynkType = $1EBC;
AxeType = $0F43;
IngotType = $1BF2;
LogType = $1BDD;
AxeGump = '3907';
WLimit = 150;
eda = $097B;

{$Include 'all.inc'}

procedure checkcoord;
begin
if (GetZ(self) = lodkaZ) then
  begin
  repeat
  MoveXY(lodkaX,lodkaY, True, 0, True);
  UseObject(Trap);
  wait(1000);
  Raw_Move(0,True);
  Raw_Move(0,True);
  wait(1000);
  until (GetZ(self) <> lodkaZ);
  end;
end;

procedure CheckIngot;
begin
FindType(IngotType, Backpack);
if (FindFullQuantity < 4) then
  begin
  FindType(IngotType, Ground);
  if (FindCount > 0) then
    begin
    MoveItem(finditem, 4, Backpack, 0,0,0);
    wait(500);
    end;
  end;
end;

procedure CheckAxe;
begin
if (Count(AxeType) < 4) then
   begin
   If TargetPresent Then CancelTarget;
   repeat
   CheckIngot;
   UseObject(FindType(TynkType,Ground));
   WaitTargetObject(FindType(IngotType,BackPack));
   WaitGump(AxeGump);
   WaitJournalLine(Now, 'You create|destroy|must stand', 30000);
   until (Count(AxeType) >= 5);
   end;
end;

procedure DropLog;
begin
repeat
FindType(LogType,Backpack);
if (FindCount > 0) then
   begin
   stack(LogType,GetColor(finditem));
   wait(500);
   end;
until (Count(LogType) = 0);
FindType(LogType,ground);
Addtosystemjournal('Дерева всего на лодке - '+intToStr(findfullquantity));
FindType(TynkType,ground);
Addtosystemjournal('Тулзов на лодке - '+intToStr(findfullquantity));
FindType(eda,ground);
Addtosystemjournal('Еды осталось - '+intToStr(findfullquantity));
Addtosystemjournal('=========================================');
end;

procedure checkfish;
begin
if (Count(eda) < 10) then
   begin
   MoveItem(FindType(eda,ground), 50, Backpack, 0,0,0);
   Wait(500);
   end;
end;

procedure GotoOnBoad;
begin
MoveXY(vozleX,vozleY, True, 0, True);
repeat
UseObject(Trap);
wait(1000);
until (GetZ(self) = lodkaZ);
DropLog;
checkfish;
Hungry(1,ground);
CheckAxe;
checkcoord;
end;

procedure checktools;
begin
if (Count(AxeType) = 0) then
   begin
   GotoOnBoad;
   end;
end;

procedure checkweight;
begin
if (Weight > WLimit) then  
   begin
   GotoOnBoad;
   end;
end;

BEGIN
Addtosystemjournal('Скрипт успешно стартовал.');
TyleType[0] := 3274;
TyleType[1] := 3275;
TyleType[2] := 3276;
TyleType[3] := 3277;
TyleType[4] := 3280;
TyleType[5] := 3283;
TyleType[6] := 3286;
TyleType[7] := 3289;
TyleType[8] := 3291;
TyleType[9] := 3292;
TyleType[10] := 3294;
TyleType[11] := 3295;
TyleType[12] := 3296;
TyleType[13] := 3299;
TyleType[14] := 3302;
TyleType[15] := 3394;
TyleType[16] := 3395;
TyleType[17] := 3417;
TyleType[18] := 3440;
TyleType[19] := 3460;
while not Dead do
   begin
   for s := 0 to 19 do
      begin
      b:= GetStaticTilesArray(Xmin,Ymin,Xmax,Ymax, 0, TyleType[s], a); 
      AddToSystemJournal('Tile Count : '+IntToStr(b));
      for c :=0 to b-1 do
         begin
         checktools;
         CheckWeight;
         checkcoord; 
         MoveXY(a[c].X,a[c].Y, True, 1, True); 
         Hungry(1,Backpack);
         If TargetPresent Then CancelTarget;
         if (GetType(ObjAtLayer(LhandLayer)) <> AxeType) then
            begin
            UseObject(FindType(AxeType, Backpack));
            end;
         if (GetType(ObjAtLayer(LhandLayer)) = AxeType) then
            begin
            UseObject(ObjAtLayer(LhandLayer));
            end;
         WaitTargetTile(TyleType[s],(a[c].X),(a[c].Y),(a[c].Z));
         WaitJournalLine(Now,'is attacking|enough|how to use|broke|stop|see|far away',120000);
         end;
      end;
   end;
END.
SystemJournal

Code: Select all

13:54:33:897 [1 Craft]: Compiling
13:54:33:927 [1 Craft]: Compiled succesfully
13:54:33:929 [1 Craft]: Скрипт успешно стартовал.
13:54:33:930 [1 Craft]: Tile Count : 0
13:54:33:932 [1 Craft]: Tile Count : 0
13:54:33:934 [1 Craft]: Tile Count : 0
13:54:33:936 [1 Craft]: Tile Count : 0
13:54:33:937 [1 Craft]: Tile Count : 0
13:54:33:939 [1 Craft]: Tile Count : 0
13:54:33:942 [1 Craft]: Tile Count : 0
13:54:33:944 [1 Craft]: Tile Count : 0
13:54:33:946 [1 Craft]: Tile Count : 0
13:54:33:949 [1 Craft]: Tile Count : 0
13:54:33:951 [1 Craft]: Tile Count : 0
13:54:33:953 [1 Craft]: Tile Count : 0
13:54:33:955 [1 Craft]: Tile Count : 0
13:54:33:957 [1 Craft]: Tile Count : 0
13:54:33:959 [1 Craft]: Tile Count : 1
13:54:36:491 [1 Craft]: Tile Count : 0
13:54:36:496 [1 Craft]: Tile Count : 0
13:54:36:500 [1 Craft]: Tile Count : 0
13:54:36:506 [1 Craft]: Tile Count : 0
13:54:36:510 [1 Craft]: Tile Count : 0
13:54:36:514 [1 Craft]: Tile Count : 0
13:54:36:517 [1 Craft]: Tile Count : 0
13:54:36:519 [1 Craft]: Tile Count : 0
13:54:36:521 [1 Craft]: Tile Count : 0
13:54:36:523 [1 Craft]: Tile Count : 0
13:54:36:526 [1 Craft]: Tile Count : 0
13:54:36:528 [1 Craft]: Tile Count : 0
13:54:36:530 [1 Craft]: Tile Count : 0
13:54:36:532 [1 Craft]: Tile Count : 0
13:54:36:534 [1 Craft]: Tile Count : 0
13:54:36:536 [1 Craft]: Tile Count : 0
13:54:36:538 [1 Craft]: Tile Count : 0
13:54:36:540 [1 Craft]: Tile Count : 0
13:54:36:542 [1 Craft]: Tile Count : 0
13:54:36:544 [1 Craft]: Tile Count : 1
UO Journal

Code: Select all

[13:53:32:031] System: Reconnected.
[13:53:32:031] System: You could use a bite to eat...
[13:53:32:593] You see: Takiyah the tinker
[13:53:32:594] You see: [invulnerable] 
[13:53:32:594] You see: a horse
[13:53:32:594] You see: xxx
[13:53:40:665] System: You are somewhat hungry
[13:53:41:068] System: Tasty!
[13:53:41:270] System: Yum!
[13:53:41:472] System: Tasty!
[13:53:41:758] System: Select a tree to chop.
[13:53:41:852] xxx: That is too far away.
[13:53:43:718] System: You are stuffed
[13:53:43:922] System: Select a tree to chop.
[13:53:44:313] xxx: That is too far away.
[13:53:46:196] System: You are stuffed
[13:53:46:405] System: Select a tree to chop.
[13:53:46:800] xxx: That is too far away.
[13:53:48:672] System: You are stuffed
[13:53:48:874] System: Select a tree to chop.
[13:53:49:272] xxx: That is too far away.
[13:53:51:148] System: You are stuffed
[13:53:51:351] System: Select a tree to chop.
[13:53:51:738] xxx: That is too far away.
[13:53:53:725] System: You are stuffed
[13:53:53:933] System: Select a tree to chop.
[13:53:54:318] xxx: That is too far away.
[13:54:28:066] System: You are stuffed
[13:54:28:566] System: Select a tree to chop.
[13:54:28:665] xxx: That is too far away.
[13:54:30:549] System: You are stuffed
[13:54:30:837] System: Select a tree to chop.
[13:54:31:158] xxx: That is too far away.
[13:54:35:874] System: You are stuffed
[13:54:36:094] System: Select a tree to chop.
[13:54:36:486] xxx: That is too far away.
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Автоламбер с лодкой (сервер new age)

Post by nah nah »

а карту мира стелс показывает? в смысле путь к мулам или уопам прописан? ну и будет нубством не вписать координаты, или перепутать их. и спроси у тех, у кого работает, какая у них версия стелса.

зы. забавный скрипт, сначала рубит вырубает в локации деревья одного типа, потом переходит к другому.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Автоламбер с лодкой (сервер new age)

Post by drabadan »

nah nah wrote:а карту мира стелс показывает? в смысле путь к мулам или уопам прописан? ну и будет нубством не вписать координаты, или перепутать их. и спроси у тех, у кого работает, какая у них версия стелса.

зы. забавный скрипт, сначала рубит вырубает в локации деревья одного типа, потом переходит к другому.
тоже удивился...

Автору:
запускай скрипт не в лодке! всего-то делов...
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: Автоламбер с лодкой (сервер new age)

Post by Oasis »

карту показывает, с координатами как только не баловался, запускал вне лодки тоже. беда скрипта или скорее у меня, в том, что он не желает бегать.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Автоламбер с лодкой (сервер new age)

Post by drabadan »

Он не может делать то чего ему не говорят. Понатыкай сообщений и смотри где зависает!
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: Автоламбер с лодкой (сервер new age)

Post by Oasis »

что зависает? все работает но не бегает.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Автоламбер с лодкой (сервер new age)

Post by Vizit0r »

включи в настройках сообщения от мувера, и увидишь что не работает в ходилке.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: Автоламбер с лодкой (сервер new age)

Post by Oasis »

сделал, пишет как и раньше.
правильно я понял, поставить галочку: messages from mover in sysjournal?

Code: Select all

18:02:04:798 [1 Craft]: Compiling
18:02:04:831 [1 Craft]: Compiled succesfully
18:02:04:833 [1 Craft]: Скрипт успешно стартовал.
18:02:04:838 [1 Craft]: Tile Count : 0
18:02:04:840 [1 Craft]: Tile Count : 0
18:02:04:841 [1 Craft]: Tile Count : 0
18:02:04:843 [1 Craft]: Tile Count : 0
18:02:04:846 [1 Craft]: Tile Count : 0
18:02:04:848 [1 Craft]: Tile Count : 1
18:02:07:587 [1 Craft]: Tile Count : 0
18:02:07:591 [1 Craft]: Tile Count : 0
18:02:07:594 [1 Craft]: Tile Count : 0
18:02:07:596 [1 Craft]: Tile Count : 0
18:02:07:599 [1 Craft]: Tile Count : 0
18:02:07:601 [1 Craft]: Tile Count : 0
18:02:07:604 [1 Craft]: Tile Count : 2
18:02:12:973 [1 Craft]: Tile Count : 0
18:02:12:976 [1 Craft]: Tile Count : 1
18:02:15:417 [1 Craft]: Tile Count : 0
18:02:15:421 [1 Craft]: Tile Count : 0
18:02:15:425 [1 Craft]: Tile Count : 0
18:02:15:429 [1 Craft]: Tile Count : 0
18:02:15:433 [1 Craft]: Tile Count : 0
18:02:15:436 [1 Craft]: Tile Count : 0
18:02:15:440 [1 Craft]: Tile Count : 0
18:02:15:444 [1 Craft]: Tile Count : 0
18:02:15:447 [1 Craft]: Tile Count : 0
18:02:15:450 [1 Craft]: Tile Count : 0
18:02:15:454 [1 Craft]: Tile Count : 1
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Автоламбер с лодкой (сервер new age)

Post by drabadan »

[quote="Oasis"]сделал, пишет как и раньше.
правильно я понял, поставить галочку: messages from mover in sysjournal?

то-есть упорно гнем свою линию, без какого-либо желания попытаться решить проблему?

Тебе же 100 раз написали, что нужно сделать...
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: Автоламбер с лодкой (сервер new age)

Post by Oasis »

я не умею тыкать сообщения
но готов учиться :wink:
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Автоламбер с лодкой (сервер new age)

Post by drabadan »

Oasis wrote:я не умею тыкать сообщения
c этого надо было начинать...
скрипт

Code: Select all

program lumber_autotile;

var
TyleType : Array [0..19] of Word;
a : TFoundTilesArray;
c,b,s : Integer;

const
Xmin = 2556;
Xmax = 2567;
Ymin = 508;
Ymax = 510;
vozleX = 2557;
vozleY = 529;
lodkaX = 2556;
lodkaY = 534;
lodkaZ = -2;
Trap = $43883F62;
TynkType = $1EBC;
AxeType = $0F43;
IngotType = $1BF2;
LogType = $1BDD;
AxeGump = '3907';
WLimit = 150;
eda = $097B;

{$Include 'all.inc'}

procedure checkcoord;
begin
if (GetZ(self) = lodkaZ) then
  begin
  repeat
  MoveXY(lodkaX,lodkaY, True, 0, True);
  UseObject(Trap);
  wait(1000);
  Raw_Move(0,True);
  Raw_Move(0,True);
  wait(1000);
  until (GetZ(self) <> lodkaZ);
  end;
end;

procedure CheckIngot;
begin
FindType(IngotType, Backpack);
if (FindFullQuantity < 4) then
  begin
  FindType(IngotType, Ground);
  if (FindCount > 0) then
    begin
    MoveItem(finditem, 4, Backpack, 0,0,0);
    wait(500);
    end;
  end;
end;

procedure CheckAxe;
begin
if (Count(AxeType) < 4) then
   begin
   If TargetPresent Then CancelTarget;
   repeat
   CheckIngot;
   UseObject(FindType(TynkType,Ground));
   WaitTargetObject(FindType(IngotType,BackPack));
   WaitGump(AxeGump);
   WaitJournalLine(Now, 'You create|destroy|must stand', 30000);
   until (Count(AxeType) >= 5);
   end;
end;

procedure DropLog;
begin
repeat
FindType(LogType,Backpack);
if (FindCount > 0) then
   begin
   stack(LogType,GetColor(finditem));
   wait(500);
   end;
until (Count(LogType) = 0);
FindType(LogType,ground);
Addtosystemjournal('Дерева всего на лодке - '+intToStr(findfullquantity));
FindType(TynkType,ground);
Addtosystemjournal('Тулзов на лодке - '+intToStr(findfullquantity));
FindType(eda,ground);
Addtosystemjournal('Еды осталось - '+intToStr(findfullquantity));
Addtosystemjournal('=========================================');
end;

procedure checkfish;
begin
if (Count(eda) < 10) then
   begin
   MoveItem(FindType(eda,ground), 50, Backpack, 0,0,0);
   Wait(500);
   end;
end;

procedure GotoOnBoad;
begin
MoveXY(vozleX,vozleY, True, 0, True);
repeat
UseObject(Trap);
wait(1000);
until (GetZ(self) = lodkaZ);
DropLog;
checkfish;
Hungry(1,ground);
CheckAxe;
checkcoord;
end;

procedure checktools;
begin
if (Count(AxeType) = 0) then
   begin
   GotoOnBoad;
   end;
end;

procedure checkweight;
begin
if (Weight > WLimit) then  
   begin
   GotoOnBoad;
   end;
end;

BEGIN
Addtosystemjournal('Скрипт успешно стартовал.');
TyleType[0] := 3274;
TyleType[1] := 3275;
TyleType[2] := 3276;
TyleType[3] := 3277;
TyleType[4] := 3280;
TyleType[5] := 3283;
TyleType[6] := 3286;
TyleType[7] := 3289;
TyleType[8] := 3291;
TyleType[9] := 3292;
TyleType[10] := 3294;
TyleType[11] := 3295;
TyleType[12] := 3296;
TyleType[13] := 3299;
TyleType[14] := 3302;
TyleType[15] := 3394;
TyleType[16] := 3395;
TyleType[17] := 3417;
TyleType[18] := 3440;
TyleType[19] := 3460;
while not Dead do
   begin
   for s := 0 to 19 do
      begin     
      b:= GetStaticTilesArray(Xmin,Ymin,Xmax,Ymax, 0, TyleType[s], a); 
      AddToSystemJournal('Tile Count : '+IntToStr(b));
      for c :=0 to b-1 do
         begin
         checktools;
         CheckWeight;
         checkcoord;
         Wait(1000); 
         NewMoveXY(a[c].X,a[c].Y, True, 1, True); 
         Hungry(1,Backpack);
         If TargetPresent Then CancelTarget;
         if (GetType(ObjAtLayer(LhandLayer)) <> AxeType) then
            begin
            UseObject(FindType(AxeType, Backpack));
            end;
         if (GetType(ObjAtLayer(LhandLayer)) = AxeType) then
            begin
            UseObject(ObjAtLayer(LhandLayer));
            end;
         WaitTargetTile(TyleType[s],(a[c].X),(a[c].Y),(a[c].Z));
         WaitJournalLine(Now,'is attacking|enough|how to use|broke|stop|see|far away',120000);
         end;
      end;
   end;
END.
особо ничего не менял, но хто знает, авось...
чем дальше вчитываюсь тем больше партизан...
он у тебя после каждого дерева должен на лодку ходить?



З.Ы. Спасибо, что скрипты прячешь в спойлеры!
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: Автоламбер с лодкой (сервер new age)

Post by Oasis »

таки что-то изменилось, запустил с лодки, вышел и подбежал к дереву и вырубил его. но дальше он не ходит и с большой задержкой скорее всего то самое дерево и лупит.
уо журнал

Code: Select all

[19:37:08:687] System: You are stuffed
[19:37:09:338] System: Select a tree to chop.
[19:37:13:170] System: You put 6 log log in your backpack.
[19:37:17:336] System: You put maple log in your backpack.
[19:37:21:476] System: You put poplar log in your backpack.
[19:37:25:610] System: You put maple log in your backpack.
[19:37:30:106] System: You put poplar log in your backpack.
[19:37:34:246] System: You put mahogany log in your backpack.
[19:37:38:419] System: You put poplar log in your backpack.
[19:37:42:564] System: You put maple log in your backpack.
[19:37:46:410] System: There is no more logs here to chop.
[19:39:10:108] System: You are stuffed
[19:39:10:417] System: Select a tree to chop.
[19:39:14:224] System: There is no more logs here to chop.
[19:39:16:953] System: SYSTEM: Saving in 2 minutes.
[19:41:11:594] System: You are stuffed
[19:41:12:009] System: Select a tree to chop.
[19:41:16:235] System: You put oak log in your backpack.
[19:41:17:000] System: SYSTEM: Saving World State
[19:41:18:762] System: SYSTEM: World Saved
[19:41:21:162] System: You put maple log in your backpack.
[19:41:25:309] System: You put mahogany log in your backpack.
[19:41:29:248] System: There is no more logs here to chop.
[19:43:13:104] System: You are stuffed
[19:43:13:450] System: Select a tree to chop.
[19:43:17:281] System: There is no more logs here to chop.
я не знаю. к сожалению он у меня ещё не разу не работал. человек писал именно под сервер где я играю, но его нет больше на форуме и спросить нет возможности. но люди пишут, что все рубят на этом скрипте, правда писал 1 человек. серву пару мес. людей мало.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Автоламбер с лодкой (сервер new age)

Post by drabadan »

а какой вес у чара?
Проверь зет координату чара и лодки, все ли совпадает?


нет желания другой скрипт использовать, а то у меня температура сейчас и как-то не могу въехать...
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: Автоламбер с лодкой (сервер new age)

Post by Oasis »

Работает=)
я поправил координаты осей и начал работать. спасибо=))
осталось только задержу сделать меньше.

и остался вопрос, между какими процедурами можно вставить процедуру, что бы он сбрасывал в лодку негрореги и реги которые иногда выпадают при рубки?

теперь в журнале есть что-то новое.
сис журнал
19:55:19:695 [1 Craft]: Compiling
19:55:19:727 [1 Craft]: Compiled succesfully
19:55:19:729 [1 Craft]: Скрипт успешно стартовал.
19:55:19:733 [1 Craft]: Tile Count : 0
19:55:19:735 [1 Craft]: Tile Count : 0
19:55:19:737 [1 Craft]: Tile Count : 0
19:55:19:738 [1 Craft]: Tile Count : 0
19:55:19:740 [1 Craft]: Tile Count : 0
19:55:19:742 [1 Craft]: Tile Count : 1
19:55:24:731 [1 Craft]: MoveXYZ: Location reached!
19:57:25:498 [1 Craft]: Tile Count : 0
19:57:25:502 [1 Craft]: Tile Count : 0
19:57:25:506 [1 Craft]: Tile Count : 0
19:57:25:509 [1 Craft]: Tile Count : 0
19:57:25:512 [1 Craft]: Tile Count : 0
19:57:25:515 [1 Craft]: Tile Count : 0
19:57:25:518 [1 Craft]: Tile Count : 2
19:57:27:746 [1 Craft]: MoveXYZ: Location reached!
19:59:31:149 [1 Craft]: MoveXYZ: Location reached!
19:59:32:458 [1 Craft]: Tile Count : 0
19:59:32:462 [1 Craft]: Tile Count : 1
19:59:34:636 [1 Craft]: MoveXYZ: Location reached!
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Автоламбер с лодкой (сервер new age)

Post by drabadan »

Oasis wrote:Работает=)
я поправил координаты осей и начал работать. спасибо=))
осталось только задержу сделать меньше.

и остался вопрос, между какими процедурами можно вставить процедуру, что бы он сбрасывал в лодку негрореги и реги которые иногда выпадают при рубки?
ну или динмассивом, или просто тупо вписать в разгрузку еще и выкладку негрорегов.
Post Reply