Помогите исправить скрипт на ламбер, работает,но глючит |
Помогите исправить скрипт на ламбер, работает,но глючит |
12 февраля 2017 12:51
Сообщение #1
|
|
В общем есть скрипт на ламбер и он просто шикарен - сам ищет дереья и сам рубит...ну и ходит на поиски деревьев,конечно,но...есть одно небольшое НО - он дико глючит...по непонятным причинам,т.е. то всё работает шикарно...то он стирает всё хождение,которое ты забивал в настройках игры (как вообще исправить этот косяк уо,когда стираются забинденные кнопки в самом клиенте ?),а то начинает дико глючить,собственно - стирает настройки хождения и не ходит или...или ходит,но даже не пытается рубить...т.е. даже в ластмессагах нету сообщений о том,что персонаж пытается юзать топор...т.е. просто тупо бродит по лесу без остановки...собственно,если исправить эти косяки,то скрипт будет просто идеальным (напомню - сам ходит,сам ищет деревья,сам вырубает их до конца...вырубает все деревья вокруг себя и идёт дальше на поисках следующем полянки)...собственно,вот скрипт: // F6 у меня Last object, wait for target, last target // На топор два клика и на дерево , потом запускаешь макрос. //z - низ лево //x - низ //c - низ право //a - лево //s - -- //d - право //q - верх лево //w - верх //e - верх право set #tau 0 set #squareside 18 gosub getxy set #startx #x set #starty #y :start for #ddy 0 #squareside 2 for #ddx 0 #squareside 2 set #rr (#ddy / 4) * 4 if #rr = #ddy set #targetx #startx + #ddx else set #targetx #startx + #squareside - #ddx end_if set #targety #starty + #ddy gosub goxy gosub lumber end_for end_for goto start :goxy gosub getxy if #x < #targetx set #dir 2 set #steps #targetx - #x set #steps #steps * 4 gosub walkdir end_if if #x > #targetx set #dir 6 set #steps #x - #targetx set #steps #steps * 4 gosub walkdir end_if if #y < #targety set #dir 4 set #steps #targety - #y set #steps #steps * 3 gosub walkdir end_if if #y > #targety set #dir 0 set #steps #y - #targety set #steps #steps * 3 gosub walkdir end_if gosub getxy if (#x = #targetx) and (#y = #targety) return else set #dir random (8) set #steps 1 gosub walkdir end_if goto goxy :getxy set #x charposx set #y charposy set #x (#x / 4) set #y (#y / 3) return :walkdir set #tau 25 if #dir <> chardir set #steps #steps + 1 end_if if #dir = 0 repeat #steps send217 c #tau //низ право end_repeat end_if if #dir = 1 repeat #steps send217 d #tau //право end_repeat end_if if #dir = 2 repeat #steps send217 z #tau //низ лево end_repeat end_if if #dir = 3 repeat #steps send217 x #tau //низ end_repeat end_if if #dir = 4 repeat #steps send217 e #tau //верх право end_repeat end_if if #dir = 5 repeat #steps send217 a #tau //лево end_repeat end_if if #dir = 6 repeat #steps send217 q #tau //лево верх end_repeat end_if if #dir = 7 repeat #steps send217 w #tau //верх end_repeat end_if return :lumber //set #cnt 0 //не понятно,зачем эти две строки //закоменчены и зачем они нужны //send F6 3000 //last object-wait for target-last target for #dx 0 4 4 for #dy 0 3 3 set #x charposx set #y charposy set #x (#x / 4) * 4 + #dx set #y (#y / 3) * 3 + #dy set lasttargetx #x set lasttargety #y gosub work end_for end_for return :work set #tau 230 send F6 #tau //last object-wait for target-last target set timer 0 :loop if (lastmsg you put) or (lastmsg you can) or (lastmsg changed) or (lastmsg you hack) or (lastmsg increased) or (lastmsg yourself well) send F6 #tau //last object-wait for target-last target set timer 0 end_if if (lastmsg no logs left here) or (lastmsg try chopping a tree) or (lastmsg too far) or (timer > 5000) wait #tau return end_if goto loop _____________________________________________________________ Проблема в том - вообще не понимаю,как он работает...собственно - как определяет,что это дерево...или тупо наощуп...ну и не пойму,откуда берутся косяки описанные выше...т.е. иногда,я тупо релог делаю и всё отлично работает,а в остальных случаях (например когда движение перестаёт работать и я его назначаю заного - он только ходить начинает,но не рубить...) Да,я очень странные кнопки забил на перемещение,знаю,но...это единственные кнопки,которые у меня не сбиваются после релога... И единственный выход,когда скрипт "зависает" и начинает только ходить - дождаться пока он дойдёт до новой полянки и перезапустить скрипт (остановить его,персонаж остановится,потом запустить скрипт снова и он начнёт рубить...т.е. просто быстро тыкнуть два раза на кнопку запуска скрипта) |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
12 февраля 2017 18:36
Сообщение #2
|
Цитата: Aleksei и он просто шикарен - сам ищет дереья и сам рубит...ну и ходит на поиски деревьев,конечно,но...есть одно небольшое НО Там в принципе как бы и ответ на вопрос. Сомневаюсь что имеет смысл на пилоте пилить что то тяжелое. |
|
|
|
13 февраля 2017 10:57
Сообщение #3
|
|
Ну реализация-то просто шикарная,вот только откуда этот косяк вылазит - непонятно( |
|
|
|
Сообщений: 6208 Рег. 27.11.2009 |
13 февраля 2017 15:50
Сообщение #4
|
Косяк вылазит из lastmsg. Скрипт "шикарен", но не учитывает особенности сервера - тут есть ряд своих сообщений, помимо тех, что перечислены в скрипте. И нет проверки на ворлд сэйв, |
|
|
|
Сообщений: 133 Рег. 26.02.2016 |
14 февраля 2017 00:55
Сообщение #5
|
Mirage, Так тут наоборот, секс со скриптом будет Пилот не адаптирован под 6 клиент вроде( |
|
|
|
Сообщений: 29 Рег. 25.01.2017 |
14 февраля 2017 12:17
Сообщение #6
|
Это на пилоте все написано что ли ? Жесть. |
|
|
|
15 февраля 2017 09:37
Сообщение #7
|
|
Fes, На самом деле далеко не самый большой и трудный скрипт из тех,что я видел. По сути пилот очень неплохая платформа для написания разноплановых скриптов. |
|
|
|
Сообщений: 133 Рег. 26.02.2016 |
15 февраля 2017 14:15
Сообщение #8
|
FATAL DISEASE, Да, только он на журнал не реагирует если не адаптирован под клиент. |
|
|
|
16 февраля 2017 10:27
Сообщение #9
|
|
One Love, Не самая великая проблема. |
|
|
|
Сейчас: 27 ноября 2024 05:10 |