| Yoko http://forum.yoko.com.ua/ |
|
| Глупая ходилка с обходом. http://forum.yoko.com.ua/viewtopic.php?f=20&t=16644 |
Page 1 of 1 |
| Author: | ZeroDX [ 2011-06-02 03:46:29 ] |
| Post subject: | Глупая ходилка с обходом. |
В общем дело было вечером, делать было...... Решил я понять, как работает ходилка бьёндера. Посмотрел, ни чего не понял вообще, и решил написать свою (попроще), с таким же обходом. (туда 10 шагов, сюда 10 шагов). И спустя часок, в блокноте родилась вот такая вот ходячая беда. В общем тут несколько проблемм. 3) Закоментировов while в LegToIt и уперев в стену (которая было с противоположной от целевой точки стороны) добился обхода этой стены (вечного), но и тут меня ждал облом... При смене направления, он не делает шаг, а просто крутанется в сторону (но это решить можно дублированием UO.Press()) 2) Runtime error 1) Определение направления. Вроде все правильно расставил, но зараза делает шаг в другую сторону. Code: var Pause = 200, StepDelay = 500, MaximalBypassDistance = 10, Bypass = 0, Turn = 1 В общем... Кто чем сможет |
|
| Author: | ZeroDX [ 2011-06-02 11:32:57 ] |
| Post subject: | Re: Глупая ходилка с обходом. |
Такой вопрос Code: Sub Bypass(dir) Не будут ли слетать переменные после рекурсии? |
|
| Author: | Mirage [ 2011-06-02 13:45:09 ] |
| Post subject: | Re: Глупая ходилка с обходом. |
If AttemptDirection(dir) then Return в этом месте скрипт прекратит свое существование - все что ниже выполнятся не будет. Bypass = Bypass + 1 - зачем это? У тебя же значение задается от переменной dir Ps я ходилками как то не озадачивался |
|
| Author: | ZeroDX [ 2011-06-02 14:03:56 ] |
| Post subject: | Re: Глупая ходилка с обходом. |
Return провтыкал. Спасибо. Уже сам не помню для чего Bypass |
|
| Author: | ZeroDX [ 2011-06-02 14:37:35 ] |
| Post subject: | Re: Глупая ходилка с обходом. |
Обновил скрипт в первом посте. Ходит, но куда не надо ходит, а если в 2-3 тайлах от пункта назначения запустить, то Runtime error line 12 Вот как я себе это представляю ![]() Code: Sub FindDirection(x, y) Вроде все правильно, но идёт не туда... С Bypass'ом тоже весело получилось, во время обхода выше одного не поднимается, хотя было задумано сначала до 10, потом поднять до 20 (идти в обратную сторону) Так же просто не лезет в голову, как после смены направления, сделать ещё и шаг в ту сторону. Ведб одноразовое клацкание просто повернёт персонажа. PS. Все наоборот PSS. А нет все верно |
|
| Author: | Mirage [ 2011-06-02 14:53:37 ] |
| Post subject: | Re: Глупая ходилка с обходом. |
2 раза прескей Code: если направление <> направлению на север тогда какаято команда была для разворачивания - в helpe посмотри - мне сейчас некогда сори. |
|
| Author: | ZeroDX [ 2011-06-02 14:55:12 ] |
| Post subject: | Re: Глупая ходилка с обходом. |
Проблемму с направлением решил. Остальные актуальны. Решения проблеммы с поворотами - Просто делать шаг при смене направления в Sub ChangeRoute(dir). Но если есть более изящное решение, буду благодарен. Скрипт обновлён в первом посте |
|
| Author: | ZeroDX [ 2011-06-02 16:36:39 ] |
| Post subject: | Re: Глупая ходилка с обходом. |
Только после подхода к точке. prec игнорирует. Грешу на то, что Sub FindDirection() не знает, что нужно вернуть 0. Line 13: Runtime error. Invalid operation for this type. Code: While Absolute(UO.GetX() - x) >= prec or Absolute(UO.GetY() - y) >= prec Попробую похимичить |
|
| Author: | ZeroDX [ 2011-07-07 18:02:02 ] |
| Post subject: | Re: Глупая ходилка с обходом. |
Проект скорее жив, чем мёртв |
|
| Page 1 of 1 | All times are UTC+02:00 |
| Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |
|