Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
А проблем с определением координат ни у кого не возникало?
А проблем с определением координат ни у кого не возникало?
Качал резист, бегая голыми пятками по фаерфильду и обратил внимание, что в стелсе координаты определяются с ошибкой +-1 тайл.Спасал только постоянный ресинк.Теперь в скрипте на мининг с кучкой маршрутов изза этого возникают проблемы в узких проходах.То есть частенько залезает куда не нужно.Ставить ресинк на каждом шагу не очень хочется... Кто что думает по этому поводу?
"в стелсе координаты определяются с ошибкой" - координаты чего то или просто координаты?
По поводу маршрута- raw_move это все таки временная замена. Пересмотри маршруты которые используешь на кривизну пути, может имеет смысл разбить несколько кривых на прямые отрезки, чтобы чар не застревал.
Ты кидаешь ФФилд, проверку на то как он лёг делаешь и если да, то корректно ли?
По поводу маршрута- raw_move это все таки временная замена. Пересмотри маршруты которые используешь на кривизну пути, может имеет смысл разбить несколько кривых на прямые отрезки, чтобы чар не застревал.
Ты кидаешь ФФилд, проверку на то как он лёг делаешь и если да, то корректно ли?
aka Trickster [YGG]
current version: 1.0 [RC3]
current version: 1.0 [RC3]
Координаты чара ,естественно.ФФ кидаю на тайл, находящийся в строго заданных относительно кастующего координатах.Наблюдая за процессом, заметил ,что чар часто начинает бегать параллельно ФФ,причем то с одной, то с другой стороны.Стал смотреть координаты на закладке Main.И понял, что в таких ситуациях отображаются они неверно.Пока ресинк не сделашь...
У тебя чар который бегает:
а)не тот же самый который кидает каст, иными словами 2 чара используются в скрипте?
б)бегает по заданным изначально координатам рядом с которыми кидается ФФ или по координатам около ФФ, котоые он вычисляет исходя из положения ФФ?
в)глупый вопрос - местность конечно ровная?
PS: что такое "ресинк"?
а)не тот же самый который кидает каст, иными словами 2 чара используются в скрипте?
б)бегает по заданным изначально координатам рядом с которыми кидается ФФ или по координатам около ФФ, котоые он вычисляет исходя из положения ФФ?
в)глупый вопрос - местность конечно ровная?
PS: что такое "ресинк"?
aka Trickster [YGG]
current version: 1.0 [RC3]
current version: 1.0 [RC3]
Вообщем так.Запускаю чара, который кастует ФФ. ФФ он кастует в соответсвии со своими кординатами.Он в глобалку кидает свои координаты. Запускаю чара, который бегает по ФФ. Он читает координаты, соответствующим образом обрабатывает.Определяет две точки, между которыми он и бегает. В общем то проблема возникала не только в этой ситуации, проблема возникает и при хождении по маршрутам в скрипте на мининг.Тоже часто слетает на +-1-2 тайла с маршрута...
Проверяй свои скрипты. Потому что у меня никогда ничего не слетало. А так, как это описал ты, слетать просто не может физически. Потому что координаты чара определяет не стелс - их присылает шард. А шард не может ошибаться +-1 тайл. Если только не какой-нибудь кривой, написанный безграмотным скриптером на коленке...
Возможно и изза шарда...Бывали чудеса ,когда минер реколился от ПК, выжидал дома 20 мин., реколился обратно и находил того же ПК.(Хотя на самом деле его и след простыл).Или ревилишь чара, от которого успеваешь на два-три экрана отбежать...Edred wrote:Проверяй свои скрипты. Потому что у меня никогда ничего не слетало. А так, как это описал ты, слетать просто не может физически. Потому что координаты чара определяет не стелс - их присылает шард. А шард не может ошибаться +-1 тайл. Если только не какой-нибудь кривой, написанный безграмотным скриптером на коленке...
Скрипт то простейший. Чар бегает по клеткам вдоль оси Х.Y фиксированно.Я знаю чему равно Y, и стелс показывает это значение.Тем не менее чар может бегать и "справа", и "слева" от этого Y.
Как правильно уже заметил Chepka, ты для хождения что используешь? Мной написанную функцию GotoXY? А как выглядит ее вызов из скрипта?
Так, нет? Просто напоминаю - третий параметр - точность подхода к точке.
ЗЫ: Сослаться, что мол, шард кривой или стелс неправильно работает - это проще всего. Гораздо труднее понять, что в 99% случаев виноват кривой скрипт. Так что скрипты в студию.
Code: Select all
GotoXY(111,222,1,true);
Code: Select all
procedure GotoXY(x,y,prec : integer; runflag : boolean);
// x,y - координаты, в которые идем
// prec - точность подхода
// runflag - бежать или идти
Как скажешь, белый хозяин...
Ребят, я прекрасно понимаю как пользоваться вашими функциями.Кстати, в ходилке СамБоди расстояние между точками рассчитывается неверно.Кв Корень не катит...
Code: Select all
Program Resist;
{$Include 'GotoXY.inc'}
{$Include 'all.inc'}
Var
xxMage,yyMage: integer;
x0,x1,x2,y: integer;
Const
Gloves=$13C6;
Procedure InitCoord;
Begin
repeat
AddToSystemJournal('Считываем координаты мага ...');
xxMage:=myStrToInt(GetGlobal('stealth','xMage'));
yyMage:=myStrToInt(GetGlobal('stealth','yMage'));
Wait(2000);
until ((xxMage<>-666) AND (yyMage<>-666));
AddToSystemJournal('Координаты мага инициализированы. X='+IntToStr(xxMage)+', Y='+IntToStr(yyMage));
x0:=xxMage-2;
x1:=xxMage;
x2:=xxMage+2;
y:=yyMage+3;
end;
Procedure CheckSkill;
Begin
If GetSkillValue('Magic Resistance')>=100 then
begin
GotoXY(xxMage,yyMage+2,0,false);
SetGlobal('stealth','TargetStatus','STOP');
FullllDisconnect;
raiseException(erCustomError,'Скилл достиг максимума!');
end;
End;
Procedure CheckHealth;
Begin
If Life<80 then
begin
AddToSystemJournal('Со здоровьем совсем хреновенько! Выходим из огня! ');
GotoXY(xxMage,yyMage+2,0,false);
While (Life<>STR) do Wait(500);
end;
end;
BEGIN
WaitConnection(3000);
SetARStatus(true);
InitCoord;
SetGlobal('stealth','ResistTargetID',IntToStr(self));
SetGlobal('stealth','TargetStatus','Ready');
While Not Dead do
begin
If Connected then
begin
CheckSkill;
PutTheGloves;
UOSay('.resync');
Wait(300);
CheckHealth;
GotoXY(x0,y,0,false);
CheckHealth;
GotoXY(x1,y,0,false);
CheckHealth;
GotoXY(x2,y,0,false);
end
Else
Wait(3000);
end;
If Dead then
begin
AddToSystemJournal('Я ПОДОХЛА!!');
PlayWav('death2.wav');
Exit;
end;
END.
Ну, я, конечно, сделал бы не так, но неважно. Ошибок не вижу. Правда, я не вижу и скрипта, который кастует фаерфилд в координату yyMage+3. Плюс есть еще какая-то PutTheGloves, но она явно не влияет. Перчатки чар что ли какие надевает?
По названию похоже...
Кидай скрипт второго чара на каст. А вообще, если нет ошибок, подумай об обходном маневре. Легко ведь можно вычислить, попал чар в стенку или нет. Если, как у тебя получается, он ошибся на 1 линию, ну что ж, засекаем здоровье, пробегаемся, если здоровье не изменилось - надо попробовать сдвинуться по оси Y... Сначала в одну сторону, потом в другую... И все ок, чар будет сам подстраиваться под огненную стенку...
А вообще, встрой "доходилку". Если обратишь внимание на мои мининг и ламбер, там подобная штука встроена когда чар приходит на разгрузку. То есть после перехода в какую-то координату дополнительно проверяется (причем в цикле), дошел ли чар на самом деле до этой координаты. Если нет - повтор перемещения. Потому как просто элементарно не дойти чар может легко. Как раз обычно на одну-две клетки. Слишком уж несовершенны raw_move, ну что с ними сделаешь, временные функции всего лишь.

Кидай скрипт второго чара на каст. А вообще, если нет ошибок, подумай об обходном маневре. Легко ведь можно вычислить, попал чар в стенку или нет. Если, как у тебя получается, он ошибся на 1 линию, ну что ж, засекаем здоровье, пробегаемся, если здоровье не изменилось - надо попробовать сдвинуться по оси Y... Сначала в одну сторону, потом в другую... И все ок, чар будет сам подстраиваться под огненную стенку...
А вообще, встрой "доходилку". Если обратишь внимание на мои мининг и ламбер, там подобная штука встроена когда чар приходит на разгрузку. То есть после перехода в какую-то координату дополнительно проверяется (причем в цикле), дошел ли чар на самом деле до этой координаты. Если нет - повтор перемещения. Потому как просто элементарно не дойти чар может легко. Как раз обычно на одну-две клетки. Слишком уж несовершенны raw_move, ну что с ними сделаешь, временные функции всего лишь.
Да, одевает перчатки когда скилл достигает 30%.Иначе скилл не растет.Перчатки дают +к резисту, потом он их снимает.Вырезал, это роли не играет.Вот кастер:
Вообще ситуацию я спасаю ресинками.Просто и доступно:)
Блин, почему тут отступы неверно отображаются?
А равмув я обвинить не могу.Я знаю значение координаты У, на закладке main отображается именно оно.Но бегает чар по соседним У.То есть равмув тут ни причем.Делаешь ресинк, маршрут выправляется...Пробегает пару "кругов"- и опять сбивается.
Code: Select all
program Resist_Mage;
{$Include 'all.inc'}
Const
ReagsChest=$40028EC0;
FFType=$3996;
Procedure CastFF;
Var
STime: TDateTime;
Begin
FindType(FFType,ground);
AddToSystemJournal(IntToStr(FindCount)+' FireField tiles found');
UOSay('.resync');
Wait(700);
If FindCount<6 then
Repeat
STime:=Now;
IF Mana<20 then Exit;
Cast('Fire Field');
WaitTargetTile(400,GetX(self),GetY(self)+3,GetZ(self));
Wait(5000);
Until (InJournalBetweenTimes('Заклинание не удалось!',STime,Now)=-1);
End;
Procedure CoordInit;
Begin
UOSay('.resync');
Wait(700);
SetGlobal('stealth','xMage',IntToStr(GetX(self)));
SetGlobal('stealth','yMage',IntToStr(GetY(self)));
End;
Procedure meditation;
VAR
STime:TDateTime;
Begin
repeat
//AddToSystemJournal('Медитируем...') ;
STime:=Now;
SetWarMode(false);
UseSkill('Meditation')
wait(1500);
WaitJournalLine(STime,'at peace.|прервана',60000);
If (InJournalBetweenTimes('прервана',STime,Now)<>-1) then Wait(500);
until (InJournalBetweenTimes('at peace',STime,Now)<>-1);
end;
BEGIN
SetARStatus(true);
WaitConnection(2000);
FindDistance:=8;
FindVertical:=8;
CoordInit;
While Not Dead do
begin
If Connected then
begin
If (GetGlobal('stealth','TargetStatus')='STOP') then
begin
FullllDisconnect;
raiseException(erCustomError,'Резист прокачан!');
end;
LoadItem(BP,$FFFF,ReagsChest,40,10);
LoadItem(SS,$FFFF,ReagsChest,40,10);
LoadItem(SA,$FFFF,ReagsChest,40,10);
CastFF;
Meditation;
Wait(100000);
end
Else
Wait(30000);
end;
END.
Блин, почему тут отступы неверно отображаются?
А равмув я обвинить не могу.Я знаю значение координаты У, на закладке main отображается именно оно.Но бегает чар по соседним У.То есть равмув тут ни причем.Делаешь ресинк, маршрут выправляется...Пробегает пару "кругов"- и опять сбивается.
И всё таки он глючит... Что ИЗЯ, что инжект показывают вернуюю координату!!! Стелс же ошибаеться на плис-минус единицу!!! Просто делаю реконект и стелс начинает правильно показывать её.
У фаерфильда Y=2000. Конекчюсь... Показывает Y=1999. Запускаю скрипт, чар делает один шаг, а стелсе координата Y оказывается равной 2001! За один шаг она увеличилась на две единицы! Чар из огня выскакивает на один тайл, теперь Y чара равно 2000... Делаю реконект, Y опять равно 1999.
ПС: ресинк отрубили ,суки...
У фаерфильда Y=2000. Конекчюсь... Показывает Y=1999. Запускаю скрипт, чар делает один шаг, а стелсе координата Y оказывается равной 2001! За один шаг она увеличилась на две единицы! Чар из огня выскакивает на один тайл, теперь Y чара равно 2000... Делаю реконект, Y опять равно 1999.
ПС: ресинк отрубили ,суки...
-
- Neophyte
- Posts: 17
- Joined: 12.11.2006 10:07
- Contact:
в инжекте спасает ,resend
в стелзе кроме как реконекта -выхода не нашел
еще интересное обновление координаты- z на лодке -2, он сходит с лодки, и z остается -2, хотя на самом деле у него она изменяется.
а самый ужасначинается при пробежках по пересеченной местности, скажем, по песчаным барханам- очень часто высота меняется и становится оч тяжело копать - в оригинале таргет кидался на мировые координаты + GetZ(self) -пишет что не может, т.к. точка не достежима - потому как копает где себя видит.а не там где на самом деле стоит...
в стелзе кроме как реконекта -выхода не нашел
еще интересное обновление координаты- z на лодке -2, он сходит с лодки, и z остается -2, хотя на самом деле у него она изменяется.
а самый ужасначинается при пробежках по пересеченной местности, скажем, по песчаным барханам- очень часто высота меняется и становится оч тяжело копать - в оригинале таргет кидался на мировые координаты + GetZ(self) -пишет что не может, т.к. точка не достежима - потому как копает где себя видит.а не там где на самом деле стоит...