Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
Вопрос про Raw_Move
Вопрос про Raw_Move
Портировал тут простенькую ходилку с инжекта и столкнулся с одной проблемой таймаут у Raw_Move примерно 50секунд. Есть ли возможность изменить его или он статичный?
-
- Novice
- Posts: 54
- Joined: 19.11.2006 17:35
Внимательно читаем комментарий к той ходилке, что я постил в раздел Scripts. Таймаут (1 мин) у команды raw_move срабатывает только в том случае, если Стелс не смог поймать ответ сервера с подтверждением перемещения чара (или с запретом на шаг). Протокол обмена пакетами о хождении чара не тривиален, а в данной версии стелса реализован по упрощенному способу. Потому как предназначено в первую очередь для разовых перемещений чара.
Не дергайтесь, насколько мне известно, у Миралекса в ближайших планах заняться перемещением чара в стелсе. То есть полной обработкой всех вариантов пакетов, тогда в таймауте нужды просто не будет, да и чар бегать быстрее начнет.
А пока - таймаут не изменить. Но он требуется редко. У меня при перемещении чара по сложному маршруту на сотню тайлов максимум один раз чар встает по дороге по таймауту на 1 мин. А часто вообще не встает. Несмертельно. Главное - помнить, что стелс при каждом шаге чара (посылке пакета) все равно дожидается ответа сервера, прежде чем завершить команду. Это фактически означает, что сервер при пересылке подтверждения уже сделал необходимую паузу между шагами и задавать в скрипте дополнительную нет никакой необходимости (в отличие от инжекта).
Не дергайтесь, насколько мне известно, у Миралекса в ближайших планах заняться перемещением чара в стелсе. То есть полной обработкой всех вариантов пакетов, тогда в таймауте нужды просто не будет, да и чар бегать быстрее начнет.
А пока - таймаут не изменить. Но он требуется редко. У меня при перемещении чара по сложному маршруту на сотню тайлов максимум один раз чар встает по дороге по таймауту на 1 мин. А часто вообще не встает. Несмертельно. Главное - помнить, что стелс при каждом шаге чара (посылке пакета) все равно дожидается ответа сервера, прежде чем завершить команду. Это фактически означает, что сервер при пересылке подтверждения уже сделал необходимую паузу между шагами и задавать в скрипте дополнительную нет никакой необходимости (в отличие от инжекта).
Читал твой пост внимательно и поэтому очень удивился, когда понял что после неудачного шага (упёрся в препятствие) стелс ждёт ровно 50 секунд (пришлось вставить в скрип, чтобы отписывался в журнал после каждой попытки шагнуть) прежде чем пустить скрипт дальше. По скрипту чар должен пытаться 3 раза шагнуть, прежде чем пойти в обход - так вот все 3 раза он делает таймаут 50сек. Естественно при удачном шаге всё ок.
"Ближайшие планы" это конечно хорошо, но нужно сейчас, поэтому и начал разбираться в ходилках и пытаться портировать инжектовские, (в принципе все необходимое есть) а не ждать пока "дядя напишет"
То, что нельзя изменить таймаут это очень прискорбно , а так хотелось перенести добывающие скрипты на стелс.
Способ, предложенный тобой Edred, мне не подходит принципиально, так как не учитывает динамические объекты, коих в моём случае (основном из-за которого я и взялся за ходилки) масса.
"Ближайшие планы" это конечно хорошо, но нужно сейчас, поэтому и начал разбираться в ходилках и пытаться портировать инжектовские, (в принципе все необходимое есть) а не ждать пока "дядя напишет"
То, что нельзя изменить таймаут это очень прискорбно , а так хотелось перенести добывающие скрипты на стелс.
Способ, предложенный тобой Edred, мне не подходит принципиально, так как не учитывает динамические объекты, коих в моём случае (основном из-за которого я и взялся за ходилки) масса.
Я перенес добывающие на стелс сразу после RC1 (и даже чуть раньше) и все ок. Вполне вероятно, что когда упирается - таймаут срабатывает. Просто не надо упираться.
Если ты почитаешь топик насчет косметических изменений - то увидишь, что Миралекс многократно говорил, что писать нормальную ходилку долго. Это достаточно сложно реализовано в клиенте обычном. А мы все просили добавить хотя бы возможность делать разовые шаги. Именно это и было добавлено. А таймаут введен только для того, чтобы аккуратно обрабатывать ситуации когда перемещение невозможно или еще что-то. Я думаю, ты же первый взвоешь, если убрать таймаут, потом сервер сочтет твое движение спидхаком и админ шарда забанит твой акк. Чтобы такого не произошло даже теоретически - введен таймаут для всех ситуаций, непредусмотренных в данной версии Стелса. Не забывай - обычный клиент при движении читает файл карты, вердату и проверяет сам, может ли чар переместиться или нет. А сервер потом только присылает подтверждение об этом. Стелс же пока работать с такими файлами не умеет.
Надо же соизмерять свои желания с возможностями программы. Стандартный клиент писала группа программистов несколько лет, получая при этом немалую зарплату. А здесь один человек на энтузиазме делает, так что "все сразу и побольше" не будет.
Если ты почитаешь топик насчет косметических изменений - то увидишь, что Миралекс многократно говорил, что писать нормальную ходилку долго. Это достаточно сложно реализовано в клиенте обычном. А мы все просили добавить хотя бы возможность делать разовые шаги. Именно это и было добавлено. А таймаут введен только для того, чтобы аккуратно обрабатывать ситуации когда перемещение невозможно или еще что-то. Я думаю, ты же первый взвоешь, если убрать таймаут, потом сервер сочтет твое движение спидхаком и админ шарда забанит твой акк. Чтобы такого не произошло даже теоретически - введен таймаут для всех ситуаций, непредусмотренных в данной версии Стелса. Не забывай - обычный клиент при движении читает файл карты, вердату и проверяет сам, может ли чар переместиться или нет. А сервер потом только присылает подтверждение об этом. Стелс же пока работать с такими файлами не умеет.
Надо же соизмерять свои желания с возможностями программы. Стандартный клиент писала группа программистов несколько лет, получая при этом немалую зарплату. А здесь один человек на энтузиазме делает, так что "все сразу и побольше" не будет.
Начнём с того, что применять ходилку я хотел в 2 случаях:
Прокачка таминга - есть загон, в котором в беспорядке ходит живность, которая так и норовит встать на маршрут.
Мининг - есть у нас на шарде нюби шахта, в которой можно безопасно покопаться, а в ней народ...
Ламбер и мининг по кочкам для меня даже не вторичны, а так где-то в конце.
Естественно я понимаю, что проект делается на голом энтузиазме и в свободное время, поэтому я "соизмеряя" всего лиш спросил (надеясь на собственную невнимательность) есть ли такая команда или нет... всё.
Форум, наверное, уже весь прочитал.
P.S. Разговор уже на отвлечённые темы пошел, так что прикрывать нужно топик.
Прокачка таминга - есть загон, в котором в беспорядке ходит живность, которая так и норовит встать на маршрут.
Мининг - есть у нас на шарде нюби шахта, в которой можно безопасно покопаться, а в ней народ...
Ламбер и мининг по кочкам для меня даже не вторичны, а так где-то в конце.
Естественно я понимаю, что проект делается на голом энтузиазме и в свободное время, поэтому я "соизмеряя" всего лиш спросил (надеясь на собственную невнимательность) есть ли такая команда или нет... всё.
Форум, наверное, уже весь прочитал.
P.S. Разговор уже на отвлечённые темы пошел, так что прикрывать нужно топик.
Если идет запрет на шаг - сервер сразу посылает "отказ" перемещения. Можешь проверить: упрись в стену и попробуй пройти сквозь нее.Edred wrote:Стелс не смог поймать ответ сервера с подтверждением перемещения чара (или с запретом на шаг).
Edred wrote:Это фактически означает, что сервер при пересылке подтверждения уже сделал необходимую паузу между шагами и задавать в скрипте дополнительную нет никакой необходимости (в отличие от инжекта).
Как раз сервер никакие паузы не делает. Если бы делал, то спидхак надо было запускать на сервере
В Стелсе стоят стандартные (вроде бы ) задержки, которые приняты протоколом УО. Единственное, что еще не успел учесть в коде, так это время, которое было потрачено на "отправку запроса - прием подтверждения"...
Ну так я об этом и написал... Просто, наверное, криво выразился. То есть если стелс не смог поймать ответа сервера с либо подтверждением, либо с запретом шага.Miralex wrote:Если идет запрет на шаг - сервер сразу посылает "отказ" перемещения. Можешь проверить: упрись в стену и попробуй пройти сквозь нее.Edred wrote:Стелс не смог поймать ответ сервера с подтверждением перемещения чара (или с запретом на шаг).
ЗЫ: Автору - разберись лучше почему у тебя чар не может проходить сквозь других чаров или животных. Обычно дело в стамине.
Стелс, естественно, не знает. Но обычно, если прохождение чаров сквозь друг друга основано на стамине - то чар с большей стаминой может пройти через другого, а наоборот нет. При этом на многих шардах есть прибамбасы, дающие разные плюсы к статам. Поэтому возможным решением проблемы может стать надевание на себя шмотки дающей плюс к дексе. Это все чисто теоретические рассуждения. На самом деле я еще никогда не видел эффективной ходилки, которая способна легко огибать движущиеся препятствия... Я не про стелс, я про все программы. Даже на изе не видел, а уж там ходилок понаписано море.
1. Обычно проходит с полной стаминой.Edred wrote:Стелс, естественно, не знает. Но обычно, если прохождение чаров сквозь друг друга основано на стамине - то чар с большей стаминой может пройти через другого, а наоборот нет. При этом на многих шардах есть прибамбасы, дающие разные плюсы к статам. Поэтому возможным решением проблемы может стать надевание на себя шмотки дающей плюс к дексе. Это все чисто теоретические рассуждения. На самом деле я еще никогда не видел эффективной ходилки, которая способна легко огибать движущиеся препятствия... Я не про стелс, я про все программы. Даже на изе не видел, а уж там ходилок понаписано море.
2. Пакет подтверждения идет через 6 ходов движения, специальная буферизация против лагов.
3. Тайм-аут после отброса это, я так понимаю, вынужденная мера, от плохих скриптеров, что бы не давать лишнюю нагрузку на сервер.
Миралексу, браво! Спасибо за хорошую программку. Ждем плагинов, красивую ходьбу по мулам и восстановление чата.
Кстати нельзя ли как-то к чату прикрепить клилок, что бы видеть что пишет сервер?
-
- Novice
- Posts: 54
- Joined: 19.11.2006 17:35
Хмм... на том же ЗУЛУХОТЕЛЕ через чаров тоже как бы ходить нельзя (не знаю что там со стаминой) но это ограничение чисто клиентское, тоесть если я тукну в мешающего мне чара ,hide то смогу через него пройти без проблем. Но, возможно, при этом сервер не высылает ни подтверждения, ни запрета на движение. Поэтому и ступорится.Edred wrote:Стелс, естественно, не знает. Но обычно, если прохождение чаров сквозь друг друга основано на стамине - то чар с большей стаминой может пройти через другого, а наоборот нет. При этом на многих шардах есть прибамбасы, дающие разные плюсы к статам. Поэтому возможным решением проблемы может стать надевание на себя шмотки дающей плюс к дексе. Это все чисто теоретические рассуждения. На самом деле я еще никогда не видел эффективной ходилки, которая способна легко огибать движущиеся препятствия... Я не про стелс, я про все программы. Даже на изе не видел, а уж там ходилок понаписано море.
Вообще, таймаут в 50 секунд эт много. Мне кажется, что нужно дать возможность настраивать этот параметр. Есть флаг Connected и, используя checklag, эффекта СХ не будет. А 50 это реально жестоко.
Для этого необходимо работать с файлами УО, над чем и начинается работа потихонечку.Macks wrote: Кстати нельзя ли как-то к чату прикрепить клилок, что бы видеть что пишет сервер?
TileData.mul . В нем, у айтимов 0х0190 и 0х0191, стоит флаг Impassable. Но опять же надо сначала научить Стелс работать с файлами уо.DerMeister wrote: через чаров тоже как бы ходить нельзя (не знаю что там со стаминой) но это ограничение чисто клиентское
Таймаут, теоретически, не должен выскакивать. Я не успел до конца 100% реализовать алгоритм перемещения как и в обычном клиенте, поэтому и выскакивает. Чтобы доделать - мне надо доанализировать все эти нюансы, при которых он выскакивает и реализовать решение. В данный момент на это времени нету. Позже постараюсь заняться.DerMeister wrote: Вообще, таймаут в 50 секунд эт много. Мне кажется, что нужно дать возможность настраивать этот параметр. Есть флаг Connected и, используя checklag, эффекта СХ не будет. А 50 это реально жестоко.
-
- Novice
- Posts: 54
- Joined: 19.11.2006 17:35
Хммм, а как ниудь можно тайлдату править? Я когда то пытался найти способ, но ненашел.Miralex wrote:TileData.mul . В нем, у айтимов 0х0190 и 0х0191, стоит флаг Impassable. Но опять же надо сначала научить Стелс работать с файлами уо.DerMeister wrote: через чаров тоже как бы ходить нельзя (не знаю что там со стаминой) но это ограничение чисто клиентское
Это понятно. Я имел ввиду, что пока ты не доделал ходилку, сделай этот таймаут просто меньше или настраиваемым. До лучших времён.Miralex wrote:Таймаут, теоретически, не должен выскакивать. Я не успел до конца 100% реализовать алгоритм перемещения как и в обычном клиенте, поэтому и выскакивает. Чтобы доделать - мне надо доанализировать все эти нюансы, при которых он выскакивает и реализовать решение. В данный момент на это времени нету. Позже постараюсь заняться.DerMeister wrote: Вообще, таймаут в 50 секунд эт много. Мне кажется, что нужно дать возможность настраивать этот параметр. Есть флаг Connected и, используя checklag, эффекта СХ не будет. А 50 это реально жестоко.