Page 1 of 1

таргей

Posted: 28.05.2012 12:51
by roma777
можно ли как-то кликнуть таргетом по относительным координатам?

Re: таргей

Posted: 28.05.2012 13:42
by alpi
что такое относительные координаты?

Re: таргей

Posted: 28.05.2012 14:01
by roma777
alpi wrote:что такое относительные координаты?
ну в разоре есть такое. допустим чар это (0,0), а точка (4,4) это +4 по (х) и +4 по (y) тайл относительно чара.
я делаю скрипт на ламбер с реколом. руны у меня замарчены в места, где вокруг чара 4 дерева которые он может рубить с точки рекола. я пытался сделать через targettotile(0,getx()-2,gety()+2,getz()), но так не выходит. нужен номер тайла обязательно. а я покачто не могу въехать как сделать перебор номеров тайлов.

Re: таргей

Posted: 28.05.2012 14:15
by nepopus
roma777 wrote:
alpi wrote:что такое относительные координаты?
ну в разоре есть такое. допустим чар это (0,0), а точка (4,4) это +4 по (х) и +4 по (y) тайл относительно чара.
я делаю скрипт на ламбер с реколом. руны у меня замарчены в места, где вокруг чара 4 дерева которые он может рубить с точки рекола. я пытался сделать через targettotile(0,getx()-2,gety()+2,getz()), но так не выходит. нужен номер тайла обязательно. а я покачто не могу въехать как сделать перебор номеров тайлов.

Code: Select all

WaitTargetXYZ(getx(self)+4, gety(self)+4, getz(self));
Или же по вашему примеру:

Code: Select all

TargetToXYZ(getx(self)+4, gety(self)+4, getz(self));

Re: таргей

Posted: 28.05.2012 14:21
by roma777
вот такой скрипт для теста сделал:

Code: Select all

Program New;
var x,y,z : Integer;
begin
x := getx(self);
y := gety(self);
z := getz(self);
useobject($40CDB8F1)
wait(500)
TargetToXYZ(x-2,y+1,z);
wait(2000)
useobject($40CDB8F1)
wait(500)
TargetToXYZ(x-2,y-2,z);
wait(2000)
useobject($40CDB8F1)
wait(500)
TargetToXYZ(x+2,y-2,z);
wait(2000)
useobject($40CDB8F1)
wait(500)
TargetToXYZ(x+2,y+1,z);
wait(2000)
end.
не хочет рубить через tagettoxyz, пишет You can't use an axe on that.

Re: таргей

Posted: 28.05.2012 14:31
by nepopus
roma777 wrote:вот такой скрипт для теста сделал:

Code: Select all

Program New;
var x,y,z : Integer;
begin
x := getx(self);
y := gety(self);
z := getz(self);
useobject($40CDB8F1)
wait(500)
TargetToXYZ(x-2,y+1,z);
wait(2000)
useobject($40CDB8F1)
wait(500)
TargetToXYZ(x-2,y-2,z);
wait(2000)
useobject($40CDB8F1)
wait(500)
TargetToXYZ(x+2,y-2,z);
wait(2000)
useobject($40CDB8F1)
wait(500)
TargetToXYZ(x+2,y+1,z);
wait(2000)
end.
не хочет рубить через tagettoxyz, пишет You can't use an axe on that.
Могу предположить самое страшное, что нельзя использовать топор на этом предмете. : )
Посоветую лишь, во избежание глюков, вставить

Code: Select all

if TargetPresent then
  CancelTarget;
для отмены существующего таргета.
И, если вы по каким то причинам вы не хотите использовать WaitTargetXYZ, вставлять

Code: Select all

WaitForTarget;
для ожидания таргета.

Re: таргей

Posted: 28.05.2012 14:36
by roma777
вот инфотайл деревьев и места где я стою

Code: Select all

Tile: 3283   X: 2092   Y: 2115   Z: 0 - дерево1
Tile: 3392   X: 2092   Y: 2113   Z: 0 - дерево2
Tile: 3280   X: 2096   Y: 2112   Z: 0 - дерево3
Tile: 3299   X: 2096   Y: 2115   Z: 0 - дерево4
Tile: 605   X: 2094   Y: 2114   Z: 0 - я

Re: таргей

Posted: 28.05.2012 14:43
by nepopus
roma777 wrote:вот инфотайл деревьев и места где я стою

Code: Select all

Tile: 3283   X: 2092   Y: 2115   Z: 0 - дерево1
Tile: 3392   X: 2092   Y: 2113   Z: 0 - дерево2
Tile: 3280   X: 2096   Y: 2112   Z: 0 - дерево3
Tile: 3299   X: 2096   Y: 2115   Z: 0 - дерево4
Tile: 605   X: 2094   Y: 2114   Z: 0 - я
А, ну правильно. Деревья рубятся только по тайлам. Сори я до конца не разобрался, прочитал первое сообщение)
Самое простое решение - использовать самый часто встрчающийся тип тайла, т.к. их дохрена.
Либо я могу подогнать макрос написанный своими потом и кровью. Ну договориться мона : )

Re: таргей

Posted: 28.05.2012 17:55
by roma777
я выкрутился так:

Code: Select all

Program New;
var TArray : array [0..3] of integer;
    i,a,b : integer;
begin
   TArray[0] := 3283;
   TArray[1] := 3288;
   TArray[2] := 3293;
   TArray[3] := 3302;
for i := 0 to 3 do
begin
if i = 0 then
begin
   a := -2
   b := 1
end;
if i = 1 then
begin
   a := -2
   b := -2
end;
if i = 2 then
begin
   a := 2
   b := -2
end;
if i = 3 then
begin
   a := 2
   b := 1
end;
repeat
AddToSystemJournal('рубим дерево ' + IntToStr(i));
WaitTargettile(TArray[i],getx(self)+a,gety(self)+b,getz(self));
useobject($40CDB8F1);
WaitJournalLine(now,'harvest.|wood.|backpack!|backpack.',5000);
wait(500);
until (InJournal('harvest.')<>-1)
ClearJournal
AddToSystemJournal('срубили дерево ' + IntToStr(i));
end;
end.
скажите а есть предел длинны масива?

Re: таргей

Posted: 28.05.2012 19:47
by nepopus
roma777 wrote:я выкрутился так:

Code: Select all

Program New;
var TArray : array [0..3] of integer;
    i,a,b : integer;
begin
   TArray[0] := 3283;
   TArray[1] := 3288;
   TArray[2] := 3293;
   TArray[3] := 3302;
for i := 0 to 3 do
begin
if i = 0 then
begin
   a := -2
   b := 1
end;
if i = 1 then
begin
   a := -2
   b := -2
end;
if i = 2 then
begin
   a := 2
   b := -2
end;
if i = 3 then
begin
   a := 2
   b := 1
end;
repeat
AddToSystemJournal('рубим дерево ' + IntToStr(i));
WaitTargettile(TArray[i],getx(self)+a,gety(self)+b,getz(self));
useobject($40CDB8F1);
WaitJournalLine(now,'harvest.|wood.|backpack!|backpack.',5000);
wait(500);
until (InJournal('harvest.')<>-1)
ClearJournal
AddToSystemJournal('срубили дерево ' + IntToStr(i));
end;
end.
скажите а есть предел длинны масива?
Можно просто вручную прописать каждое дерево:

Code: Select all

var
  i: integer;
  trees: array of array of word;

begin
  setlength(trees, 4);
  trees[0] := {тип1, кордаХ1, кордаУ1};
  trees[1] := {тип2, кордаХ2, кордаУ2};
  trees[2] := {тип3, кордаХ3, кордаУ3};
  trees[3] := {тип4, кордаХ4, кордаУ4};

  while NOT dead do
    for i := 0 to high(trees) do
      .....
end.

Re: таргей

Posted: 29.05.2012 0:23
by alpi
http://stealth.od.ua/forum/viewtopic.ph ... lit=lamber
этот скрипт видели? чем не устраивает?
есть еще с автопоиском: http://stealth.od.ua/forum/viewtopic.ph ... 0%B5%D1%80

себе скоро буду на ламбер делать тоже, интересно, какой подход лучше?

Re: таргей

Posted: 29.05.2012 3:13
by Vizit0r
тот, который тебе удобнее.
есть ситуации, когда жестко прописанный маршрут с деревьями.
А в общем случае скрипт с автопоиском проще и удобнее.

Re: таргей

Posted: 31.05.2012 1:10
by admir
А если в месте рекола в радиусе 3х(4х?) тайлов сделать поиск деревьев ( диапазон типов дерева) и по каждому найденому топором шмакать?

Re: таргей

Posted: 09.06.2012 14:43
by nepopus
admir wrote:А если в месте рекола в радиусе 3х(4х?) тайлов сделать поиск деревьев ( диапазон типов дерева) и по каждому найденому топором шмакать?
Если человек сможет сделать поиск деревьев по диапазону типов тайлов на нужный радиус, то там не так далеко до ходилки, а то и до сортировки.