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

Вопрос про Raw_Move

тут можно задать вопрос по скриптингу
PJA
Posts: 6
Joined: 10.11.2006 5:02

Вопрос про Raw_Move

Post by PJA »

Портировал тут простенькую ходилку с инжекта и столкнулся с одной проблемой таймаут у Raw_Move примерно 50секунд. Есть ли возможность изменить его или он статичный?
DerMeister
Novice
Novice
Posts: 54
Joined: 19.11.2006 17:35

Post by DerMeister »

ТОесть 50 секунд? Поясни плзз, я как раз союбрался эту команду юзать...
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Внимательно читаем комментарий к той ходилке, что я постил в раздел Scripts. Таймаут (1 мин) у команды raw_move срабатывает только в том случае, если Стелс не смог поймать ответ сервера с подтверждением перемещения чара (или с запретом на шаг). Протокол обмена пакетами о хождении чара не тривиален, а в данной версии стелса реализован по упрощенному способу. Потому как предназначено в первую очередь для разовых перемещений чара.

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

А пока - таймаут не изменить. Но он требуется редко. У меня при перемещении чара по сложному маршруту на сотню тайлов максимум один раз чар встает по дороге по таймауту на 1 мин. А часто вообще не встает. Несмертельно. Главное - помнить, что стелс при каждом шаге чара (посылке пакета) все равно дожидается ответа сервера, прежде чем завершить команду. Это фактически означает, что сервер при пересылке подтверждения уже сделал необходимую паузу между шагами и задавать в скрипте дополнительную нет никакой необходимости (в отличие от инжекта).
PJA
Posts: 6
Joined: 10.11.2006 5:02

Post by PJA »

Читал твой пост внимательно и поэтому очень удивился, когда понял что после неудачного шага (упёрся в препятствие) стелс ждёт ровно 50 секунд (пришлось вставить в скрип, чтобы отписывался в журнал после каждой попытки шагнуть) прежде чем пустить скрипт дальше. По скрипту чар должен пытаться 3 раза шагнуть, прежде чем пойти в обход - так вот все 3 раза он делает таймаут 50сек. Естественно при удачном шаге всё ок.

"Ближайшие планы" это конечно хорошо, но нужно сейчас, поэтому и начал разбираться в ходилках и пытаться портировать инжектовские, (в принципе все необходимое есть) а не ждать пока "дядя напишет" :wink:

То, что нельзя изменить таймаут это очень прискорбно :cry: , а так хотелось перенести добывающие скрипты на стелс.

Способ, предложенный тобой Edred, мне не подходит принципиально, так как не учитывает динамические объекты, коих в моём случае (основном из-за которого я и взялся за ходилки) масса.
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Я перенес добывающие на стелс сразу после RC1 (и даже чуть раньше) и все ок. Вполне вероятно, что когда упирается - таймаут срабатывает. Просто не надо упираться.

Если ты почитаешь топик насчет косметических изменений - то увидишь, что Миралекс многократно говорил, что писать нормальную ходилку долго. Это достаточно сложно реализовано в клиенте обычном. А мы все просили добавить хотя бы возможность делать разовые шаги. Именно это и было добавлено. А таймаут введен только для того, чтобы аккуратно обрабатывать ситуации когда перемещение невозможно или еще что-то. Я думаю, ты же первый взвоешь, если убрать таймаут, потом сервер сочтет твое движение спидхаком и админ шарда забанит твой акк. Чтобы такого не произошло даже теоретически - введен таймаут для всех ситуаций, непредусмотренных в данной версии Стелса. Не забывай - обычный клиент при движении читает файл карты, вердату и проверяет сам, может ли чар переместиться или нет. А сервер потом только присылает подтверждение об этом. Стелс же пока работать с такими файлами не умеет.

Надо же соизмерять свои желания с возможностями программы. Стандартный клиент писала группа программистов несколько лет, получая при этом немалую зарплату. А здесь один человек на энтузиазме делает, так что "все сразу и побольше" не будет.
PJA
Posts: 6
Joined: 10.11.2006 5:02

Post by PJA »

Начнём с того, что применять ходилку я хотел в 2 случаях:
Прокачка таминга - есть загон, в котором в беспорядке ходит живность, которая так и норовит встать на маршрут.
Мининг - есть у нас на шарде нюби шахта, в которой можно безопасно покопаться, а в ней народ...
Ламбер и мининг по кочкам для меня даже не вторичны, а так где-то в конце.

Естественно я понимаю, что проект делается на голом энтузиазме и в свободное время, поэтому я "соизмеряя" всего лиш спросил (надеясь на собственную невнимательность) есть ли такая команда или нет... всё.

Форум, наверное, уже весь прочитал.

P.S. Разговор уже на отвлечённые темы пошел, так что прикрывать нужно топик.
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Edred wrote:Стелс не смог поймать ответ сервера с подтверждением перемещения чара (или с запретом на шаг).
Если идет запрет на шаг - сервер сразу посылает "отказ" перемещения. Можешь проверить: упрись в стену и попробуй пройти сквозь нее. :wink:

Edred wrote:Это фактически означает, что сервер при пересылке подтверждения уже сделал необходимую паузу между шагами и задавать в скрипте дополнительную нет никакой необходимости (в отличие от инжекта).

Как раз сервер никакие паузы не делает. Если бы делал, то спидхак надо было запускать на сервере :wink:
В Стелсе стоят стандартные (вроде бы :wink: ) задержки, которые приняты протоколом УО. Единственное, что еще не успел учесть в коде, так это время, которое было потрачено на "отправку запроса - прием подтверждения"...
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Miralex wrote:
Edred wrote:Стелс не смог поймать ответ сервера с подтверждением перемещения чара (или с запретом на шаг).
Если идет запрет на шаг - сервер сразу посылает "отказ" перемещения. Можешь проверить: упрись в стену и попробуй пройти сквозь нее. :wink:
Ну так я об этом и написал... Просто, наверное, криво выразился. То есть если стелс не смог поймать ответа сервера с либо подтверждением, либо с запретом шага.

ЗЫ: Автору - разберись лучше почему у тебя чар не может проходить сквозь других чаров или животных. Обычно дело в стамине.
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Edred wrote: ЗЫ: Автору - разберись лучше почему у тебя чар не может проходить сквозь других чаров или животных. Обычно дело в стамине.
А Стелс знает, что на пути у него чар или животное? 100%, что не пускает его сервер.
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Стелс, естественно, не знает. Но обычно, если прохождение чаров сквозь друг друга основано на стамине - то чар с большей стаминой может пройти через другого, а наоборот нет. При этом на многих шардах есть прибамбасы, дающие разные плюсы к статам. Поэтому возможным решением проблемы может стать надевание на себя шмотки дающей плюс к дексе. Это все чисто теоретические рассуждения. На самом деле я еще никогда не видел эффективной ходилки, которая способна легко огибать движущиеся препятствия... Я не про стелс, я про все программы. Даже на изе не видел, а уж там ходилок понаписано море.
Macks
Apprentice
Apprentice
Posts: 250
Joined: 27.02.2006 22:23
Location: АоП - Age Of Power

Post by Macks »

Edred wrote:Стелс, естественно, не знает. Но обычно, если прохождение чаров сквозь друг друга основано на стамине - то чар с большей стаминой может пройти через другого, а наоборот нет. При этом на многих шардах есть прибамбасы, дающие разные плюсы к статам. Поэтому возможным решением проблемы может стать надевание на себя шмотки дающей плюс к дексе. Это все чисто теоретические рассуждения. На самом деле я еще никогда не видел эффективной ходилки, которая способна легко огибать движущиеся препятствия... Я не про стелс, я про все программы. Даже на изе не видел, а уж там ходилок понаписано море.
1. Обычно проходит с полной стаминой.
2. Пакет подтверждения идет через 6 ходов движения, специальная буферизация против лагов.
3. Тайм-аут после отброса это, я так понимаю, вынужденная мера, от плохих скриптеров, что бы не давать лишнюю нагрузку на сервер.

Миралексу, браво! Спасибо за хорошую программку. Ждем плагинов, красивую ходьбу по мулам и восстановление чата.

Кстати нельзя ли как-то к чату прикрепить клилок, что бы видеть что пишет сервер?
DerMeister
Novice
Novice
Posts: 54
Joined: 19.11.2006 17:35

Post by DerMeister »

Edred wrote:Стелс, естественно, не знает. Но обычно, если прохождение чаров сквозь друг друга основано на стамине - то чар с большей стаминой может пройти через другого, а наоборот нет. При этом на многих шардах есть прибамбасы, дающие разные плюсы к статам. Поэтому возможным решением проблемы может стать надевание на себя шмотки дающей плюс к дексе. Это все чисто теоретические рассуждения. На самом деле я еще никогда не видел эффективной ходилки, которая способна легко огибать движущиеся препятствия... Я не про стелс, я про все программы. Даже на изе не видел, а уж там ходилок понаписано море.
Хмм... на том же ЗУЛУХОТЕЛЕ через чаров тоже как бы ходить нельзя (не знаю что там со стаминой) но это ограничение чисто клиентское, тоесть если я тукну в мешающего мне чара ,hide то смогу через него пройти без проблем. Но, возможно, при этом сервер не высылает ни подтверждения, ни запрета на движение. Поэтому и ступорится.

Вообще, таймаут в 50 секунд эт много. Мне кажется, что нужно дать возможность настраивать этот параметр. Есть флаг Connected и, используя checklag, эффекта СХ не будет. А 50 это реально жестоко.
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Macks wrote: Кстати нельзя ли как-то к чату прикрепить клилок, что бы видеть что пишет сервер?
Для этого необходимо работать с файлами УО, над чем и начинается работа потихонечку.
DerMeister wrote: через чаров тоже как бы ходить нельзя (не знаю что там со стаминой) но это ограничение чисто клиентское
TileData.mul . В нем, у айтимов 0х0190 и 0х0191, стоит флаг Impassable. Но опять же надо сначала научить Стелс работать с файлами уо.
DerMeister wrote: Вообще, таймаут в 50 секунд эт много. Мне кажется, что нужно дать возможность настраивать этот параметр. Есть флаг Connected и, используя checklag, эффекта СХ не будет. А 50 это реально жестоко.
Таймаут, теоретически, не должен выскакивать. Я не успел до конца 100% реализовать алгоритм перемещения как и в обычном клиенте, поэтому и выскакивает. Чтобы доделать - мне надо доанализировать все эти нюансы, при которых он выскакивает и реализовать решение. В данный момент на это времени нету. Позже постараюсь заняться.
DerMeister
Novice
Novice
Posts: 54
Joined: 19.11.2006 17:35

Post by DerMeister »

Miralex wrote:
DerMeister wrote: через чаров тоже как бы ходить нельзя (не знаю что там со стаминой) но это ограничение чисто клиентское
TileData.mul . В нем, у айтимов 0х0190 и 0х0191, стоит флаг Impassable. Но опять же надо сначала научить Стелс работать с файлами уо.
Хммм, а как ниудь можно тайлдату править? Я когда то пытался найти способ, но ненашел.
Miralex wrote:
DerMeister wrote: Вообще, таймаут в 50 секунд эт много. Мне кажется, что нужно дать возможность настраивать этот параметр. Есть флаг Connected и, используя checklag, эффекта СХ не будет. А 50 это реально жестоко.
Таймаут, теоретически, не должен выскакивать. Я не успел до конца 100% реализовать алгоритм перемещения как и в обычном клиенте, поэтому и выскакивает. Чтобы доделать - мне надо доанализировать все эти нюансы, при которых он выскакивает и реализовать решение. В данный момент на это времени нету. Позже постараюсь заняться.
Это понятно. Я имел ввиду, что пока ты не доделал ходилку, сделай этот таймаут просто меньше или настраиваемым. До лучших времён.
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

1. TileData Editor или как там его. Вообщем в гугле есть точно.
2. Нет. Прийдется немного подождать. В данный момент занят слегка другим. Ускорить этот процесс можно, если кто-то попытается изучить ошибки, при которых возникает такое явление. :wink:
Post Reply