Page 1 of 1
Проблема с тайлами
Posted: 30.05.2011 21:59
by Scripts Writer
Хоть убейте, не могу грязные бинты в воде (луже/море) помыть с помощью стелса.
Перепробовал WaitTargetTile, WaitTargetXYZ, TargetToTile, TargetToXYZ.
Выскакивает таргет и ничего не происходит.
Пробую с работающим клиентом.
Posted: 30.05.2011 22:42
by Scripts Writer
,infotile на воду показывает одни координаты
используя бинт и после этого ,infotile lasttile другие
но обе не работают ни в какой из команд перечисленных выше.
мозг оф.
Posted: 31.05.2011 7:38
by Fenix
Вот для примера метод добычи в указанных координатах:
Code: Select all
procedure Mine(X, Y: Integer);
var
StaticData: TStaticCell;
Tile: Word;
Z: ShortInt;
Finded: Boolean;
Counter: Byte;
StartTime: TDateTime;
i: Integer;
begin
Finded := False;
StaticData := ReadStaticsXY(X, Y, WorldNum);
for i := 0 to StaticData.StaticCount - 1 do begin
if i >= StaticData.StaticCount then Break;
if (GetTileFlags(2, StaticData.Statics[i].Tile) and $200) = $200 then begin
Tile := StaticData.Statics[i].Tile;
Z := StaticData.Statics[i].Z;
Finded := True;
Break;
end;
end;
CheckState();
while Finded do begin
if Dead or not Connected then Exit;
if TargetPresent then CancelTarget;
while not CheckMiningTool do begin
if Dead or not Connected then Exit;
CreateMiningTools;
end;
CheckLag(LagWait);
Wait(WaitTime);
UseObject(MiningTool);
CheckLag(LagWait);
WaitForTarget(WaitTime);
if TargetPresent then begin
StartTime := Now;
TargetToTile(Tile, X, Y, Z);
Counter := WaitCycles;
Finded := False;
while (not Finded) and (Counter > 0) do begin
CheckLag(LagWait);
if InJournalBetweenTimes('t mine there|is too far away|cannot be seen|is no metal here to mine', StartTime, Now) > 0 then Exit;
if InJournalBetweenTimes('put it in your backpack|loosen some rocks but fail to find any useable ore|have worn out your tool', StartTime, Now) > 0 then Finded := True;
if Not Finded then Wait(200);
Dec(Counter);
end;
CheckState();
end;
end;
end;
Этот метод великолептно работал на версии 3.0, а вместе с ним и
TargetToTile.
Posted: 31.05.2011 10:16
by Scripts Writer
Fenix wrote:Вот для примера метод добычи в указанных координатах:
Code: Select all
procedure Mine(X, Y: Integer);
var
StaticData: TStaticCell;
Tile: Word;
Z: ShortInt;
Finded: Boolean;
Counter: Byte;
StartTime: TDateTime;
i: Integer;
begin
Finded := False;
StaticData := ReadStaticsXY(X, Y, WorldNum);
for i := 0 to StaticData.StaticCount - 1 do begin
if i >= StaticData.StaticCount then Break;
if (GetTileFlags(2, StaticData.Statics[i].Tile) and $200) = $200 then begin
Tile := StaticData.Statics[i].Tile;
Z := StaticData.Statics[i].Z;
Finded := True;
Break;
end;
end;
CheckState();
while Finded do begin
if Dead or not Connected then Exit;
if TargetPresent then CancelTarget;
while not CheckMiningTool do begin
if Dead or not Connected then Exit;
CreateMiningTools;
end;
CheckLag(LagWait);
Wait(WaitTime);
UseObject(MiningTool);
CheckLag(LagWait);
WaitForTarget(WaitTime);
if TargetPresent then begin
StartTime := Now;
TargetToTile(Tile, X, Y, Z);
Counter := WaitCycles;
Finded := False;
while (not Finded) and (Counter > 0) do begin
CheckLag(LagWait);
if InJournalBetweenTimes('t mine there|is too far away|cannot be seen|is no metal here to mine', StartTime, Now) > 0 then Exit;
if InJournalBetweenTimes('put it in your backpack|loosen some rocks but fail to find any useable ore|have worn out your tool', StartTime, Now) > 0 then Finded := True;
if Not Finded then Wait(200);
Dec(Counter);
end;
CheckState();
end;
end;
end;
Этот метод великолептно работал на версии 3.0, а вместе с ним и
TargetToTile.
Да, я перепробовал множество вариаций клика по тайлу из многих скриптов, от мининга, фишинга, ламбера, суммона и пр. но не помогло.
Вопрос не в том, как у Вас это работает в Ваших скриптах, а как с открытым клиентом помыть бинты в воде- только проверенные собственными руками варианты, т.к. в теории всё на самом деле прекрасно работает, а на практике.
Posted: 31.05.2011 14:36
by Fenix
Ну так для практики неплохо было бы получить, как минимум, информацию по серверу, на котором пытаетесь такое реализовать (а как максимум - аккаунт для тестирования).
Кстати, не вижу особой разницы между мойкой бинтов с открытым клиентом и с закрытым.
К тому же вы утверждаете, что скрипты которые вы просматривали, якобы, не работают на практике. А вот конкретно ваш скрипт я так и не увидел.
Posted: 31.05.2011 18:28
by Vizit0r
пакеты бы хорошо увидеть, иначе это все гадание на кофе.
подключиться клиентом к стелсу.
удалить пакетный лог стелса.
сделать операцию клиентом (правильные пакеты), в свежесозданном логе найти пакет 0x6С, скинуть его сюда.
сказать, какие параметры пихал в WaitTargetTile.
Posted: 31.05.2011 19:28
by Scripts Writer
Code: Select all
21:24:25:591: GLHF, Server -> Client: 0x6C, len: 19
0000: 6C 00 00 00 01 ED 00 00 00 00 00 00 00 00 00 00 l...............
0010: 00 00 00 ...
21:24:25:591: GLHF, Client -> Server: 0x6C, len: 19
0000: 6C 00 00 00 01 ED 00 40 05 29 7C 14 A1 0B DB 00 l......@.)|.....
0010: 00 0B 44
Code: Select all
21:24:25:733: GLHF, Server -> Client: 0x6C, len: 19
0000: 6C 00 00 00 01 ED 00 00 00 00 00 00 00 00 00 00 l...............
0010: 00 00 00 ...
Code: Select all
21:24:26:866: GLHF, Client -> Server: 0x6C, len: 19
0000: 6C 00 00 00 01 ED 00 00 04 79 9F 14 AE 0B D1 00 l........y......
0010: 00 01 90 ...
Code: Select all
21:24:30:426: GLHF, Server -> Client: 0x6C, len: 19
0000: 6C 00 00 00 01 ED 00 00 00 00 00 00 00 00 00 00 l...............
0010: 00 00 00 ...
Code: Select all
21:24:30:854: GLHF, Client -> Server: 0x6C, len: 19
0000: 6C 00 00 00 01 ED 00 00 04 79 9F 14 AE 0B D1 00 l........y......
0010: 00 01 90 ...
Code: Select all
21:24:37:033: GLHF, Server -> Client: 0x6C, len: 19
0000: 6C 00 00 00 01 ED 00 00 00 00 00 00 00 00 00 00 l...............
0010: 00 00 00 ...
21:24:38:172: GLHF, Client -> Server: 0x6C, len: 19
0000: 6C 00 00 00 01 ED 00 40 02 5C 8E 14 B0 0B D1 00 l......@.\......
0010: 00 17 97 ...
Posted: 01.06.2011 7:46
by Vizit0r
вот я подозревал такую фигню. еще хотел спросить, но подумать что это совсем уж явно, не будет человек такое делать.
с каких пор лоханка с водой (water through) стала ВОДОЙ? ты ж не с берега в море моешь свои бинты.тайлы тут вообще ни при чем , это самый что ни на есть обьект.
все элементарно просто - WaitTargetObject($00400529) если я правильно разглядел айди корыта с водой.
Posted: 01.06.2011 9:54
by Scripts Writer
Если ты подозревал такое, то я виноват.
За то долгое время, которое играю, никогда такого не видел, либо не замечал- вода объектом. Примечательно, что в других местах такая же вода является тайлом.
Posted: 01.06.2011 11:09
by Alex
Визитор умеет читать матрицу

Posted: 01.06.2011 12:53
by MuDaCk
Незнаю как у вас, но у меня лужи объектом не считаются. Пишет - инкорект трали-вали.

Posted: 01.06.2011 15:38
by Fenix
Вполне возможно, что вода в некоторых случаях может выступать либо как объект, либо как статика, либо как тайл карты.
Posted: 01.06.2011 16:40
by Vizit0r
Scripts Writer wrote:Если ты подозревал такое, то я виноват.
За то долгое время, которое играю, никогда такого не видел, либо не замечал- вода объектом. Примечательно, что в других местах такая же вода является тайлом.
оригинальное оформление. в таком виде да, фиг поймешь.
у меня на шарде (в далекие времена, когда я еще играл) эти "куски воды" можно было сделать и поставить в доме - мыть бинты, и прочее.