| Yoko http://forum.yoko.com.ua/ |
|
| Проблемка... думаю решаемая.... http://forum.yoko.com.ua/viewtopic.php?f=3&t=8777 |
Page 1 of 2 |
| Author: | comatoza [ 2006-09-14 19:14:44 ] |
| Post subject: | Проблемка... думаю решаемая.... |
Здравствуйте, многоуважаемые... начну с начала... играю в данное время на шарде Destiny of Middle-Earth а ноги у моей проблемки растут оттуда, что для того чтобы использовать одну из абилок класса вор необходимо находиться строго за спиной у оппонента и смотреть с ним в одном направлении... идея была такая - позиция создаётся ручками - т.е. активный скрипт, который проводит проверку положения и направления собственно своего чара и жертвы... и в момент Х срабатывает абилка... но остановило меня следующее: Описание: GetDistance • Синтакс: number uo.GetDistance([object]) Тема: Команды скриптов Ключевые слова: uoscript, objhandling -------------------------------------------------------------------------------- Возвращает параметр обьекта object (по умолчанию - персонажа игрока) - расстояние до обьекта, которое вычисляется как минимальное из расстояний по осям X и Y. т.е. если чар находится на расстоянии 1 клетки от жертвы по одной оси и смотрит с ней в одном направлении скрипт срабатывает полюбому... независимо от расстояния по другой.... подскажите - как это сделать иначе? есть у меня ышо версия с проверкой координат и направления взгляда... но это 8 на (4(координаты чара и жертвы)+2(куда смотрит чар и жертва)) 48 проверок в секунду.... думаю будет лагать нереально.... ах да.... собственно примерно так выглядит то, что я наваял Code: sub navodka() заранее спасибо... |
|
| Author: | DerMeister =) [ 2006-09-14 19:40:48 ] |
| Post subject: | |
Нифгига не понял что именно ты хочешь. Quote: подскажите - как это сделать иначе?
Что именно "иначе"? ЗЫ: Это просто убило: while str(dist)<>1 AND str(dir)<>str(mydir) |
|
| Author: | comatoza [ 2006-09-14 19:49:26 ] |
| Post subject: | |
DerMeister =) wrote: Нифгига не понял что именно ты хочешь.
Quote: подскажите - как это сделать иначе? Что именно "иначе"? ЗЫ: Это просто убило: while str(dist)<>1 AND str(dir)<>str(mydir) ладно попробую попростому мне нада проверку что чар находится за спиной у жертвы и смотрит с ней в одну сторону.... а что такого криминального в стой строке ты нашёл? простая проверка расстояния до жертвы и нарпавления взгляда обоих.... или ты думаешь сравнивать не числа, а переменные будет вернее? |
|
| Author: | DerMeister =) [ 2006-09-14 19:55:13 ] |
| Post subject: | |
Это гдеж у тебя числа то? Если x - число, то str(x) - строка, а ты её пытаешься с числом 1 сравнить... У тебя условие (str(dist)<>1) выполняется всегда так как строка ВСЕГДА НЕравна числу (кроме нулевой строки и числа 0) Теперь насчёт твоего вопроса - всё очень просто, надо тока всять и написать по новой, а то то что у тебя это галиматья (без обид Будет время, раскину мозгами. |
|
| Author: | comatoza [ 2006-09-14 20:06:37 ] |
| Post subject: | |
спасибо что объяснил а то я думаю чего это он просто dir yне выводит по print а str(dir) выводит а насчёт галиматьи... это первое что мне пришлось писать после возвращения к УО кстати до миддлы играл на рессе был там такой вор nuDoBKa ЗЫ програмистом не являюсь и никогда им себя не считал но вот поломать голову люблю... и эта задачка засадила меня часов на 6 будет возможность помоги как я уже говорил - заранее спасибо |
|
| Author: | DerMeister =) [ 2006-09-14 21:14:49 ] |
| Post subject: | |
Нужно маленькое уточнение - За спиной понятно, а вот количество возможных положений чё то не понятно... Вобщем, сколько возможных различных положений "за спиной"... ? наверно я плохо обьяснил... блин... говорила мама - читай книги. =_) |
|
| Author: | comatoza [ 2006-09-14 22:43:10 ] |
| Post subject: | |
чётко за спиной.... т.е. тока так я->ж-> <-ж<-я ну и те же вариации вверх вниз и диагональные... |
|
| Author: | DerMeister =) [ 2006-09-14 23:06:47 ] |
| Post subject: | |
comatoza wrote: чётко за спиной....
т.е. тока так я->ж-> <-ж<-я ну и те же вариации вверх вниз и диагональные... Вот решение для диагональной "вариации" (взаимное расположение - на одной оси): Code: Скрипт не рабочий! Вот что у меня получилось... я не тестил... Если не запустится или будет некорректно работать, то отпишись об этом (как можно подробнее). ЗЫ: На "вариацию" "всех сторон света" нужно немножко переделать условие и процедуру getorient Но это уже завтра, счас я хочу спать. Вобщем, жду результатов теста. ----------------------------------------------- Потестил, поговорил с умными людми... Понял, что это работать не может. =_( |
|
| Author: | comatoza [ 2006-09-14 23:44:30 ] |
| Post subject: | |
работает.... задержка великовата.... но это исправимо |
|
| Author: | Grin [ 2006-09-16 12:23:15 ] |
| Post subject: | |
ох ужас;) уроки геометрии прошли даром?;) расчитать клетко за спиной подойти на нее... дистанци проверить просто главное чтобы х и у лежали в пределах [0,1] единстеное замечание только что GetDir и AddDir работают по разным направления |
|
| Author: | DerMeister =) [ 2006-09-16 12:31:25 ] |
| Post subject: | |
Grin wrote: ох ужас;)
уроки геометрии прошли даром?;) расчитать клетко за спиной подойти на нее... дистанци проверить просто главное чтобы х и у лежали в пределах [0,1] единстеное замечание только что GetDir и AddDir работают по разным направления Можно по подробней про по каждому пункту... Особенно по последнему |
|
| Author: | DerMeister =) [ 2006-09-16 14:48:54 ] |
| Post subject: | |
comatoza wrote: работает....
задержка великовата.... но это исправимо Это работать не может. УЖоС ,а не скрипт... |
|
| Author: | comatoza [ 2006-09-16 16:10:33 ] |
| Post subject: | |
DerMeister =) wrote: comatoza wrote: работает.... задержка великовата.... но это исправимо Это работать не может. УЖоС ,а не скрипт... ужас не ужас... а кой что упростил в той версии в которой я тупо перебирал через if все варианты возможные |
|
| Author: | DerMeister =) [ 2006-09-16 16:14:54 ] |
| Post subject: | |
Твоя задача реализуется очень просто. Если тебе интересно, то я, вернувшись с дачи, напишу "как надо". Еще, тебе может помочь Grin. Если оч. срочно, то к нему. |
|
| Author: | comatoza [ 2006-09-16 16:29:05 ] |
| Post subject: | |
Grin wrote: ох ужас;)
уроки геометрии прошли даром?;) расчитать клетко за спиной подойти на нее... дистанци проверить просто главное чтобы х и у лежали в пределах [0,1] единстеное замечание только что GetDir и AddDir работают по разным направления если я верно понял говорится о следующем.... должно выполняться условие: ((абсолютное значение от (координата Х жертвы минус координат Х чара) = 1 и абсолютное значение от (координата У жертвы минус координата У чара) = 0) или (абсолютное значение от (координата Х жертвы минус координат Х чара) = 0 и абсолютное значение от (координата У жертвы минус координата У чара) = 1)) И (направление взглядов совпадает) по-моему так.... вот тока знание инжевской орфографии у меня слабовато.... как взять абсолютную величину? с остальным сам справлюсь.... |
|
| Author: | comatoza [ 2006-09-16 17:12:25 ] |
| Post subject: | |
кстати дальнейшая работа моего извращённого мозга подсказала ышо один тактический ход но! для него мне требуется осуществить прицел в определённые координаты... и если Х,У,Z я вытащить смогу... то как вытащить tilenum? ф смысле не оставнавливаясь и вынимая его из текстового окна т.е. допустим так: Code: uo.infotile(x,y,z) |
|
| Author: | Grin [ 2006-09-16 17:24:00 ] |
| Post subject: | |
Казалось бы что все что тебе нужно так это infotile а дальше вот такой скриптик uo.infotile() while uo.targeting() wait(100) wend Но так завелось, что это работать небудет;) Но можно сделать другое змечание info как не страно также заполняет lasttile;) поэтому делаем такое.. uo.info() while uo.targeting() wait(100) wend tilenum=uo.LastTile(0) и тд читай инфу про uo.LastTile |
|
| Author: | comatoza [ 2006-09-16 17:51:58 ] |
| Post subject: | |
а ларчик просто открывался пасибки |
|
| Author: | comatoza [ 2006-09-28 19:54:50 ] |
| Post subject: | |
Code: sub navodka() получается вот такая бодяга, тока abs он не знает... а как иначе модуль взять? |
|
| Author: | DerMeister =) [ 2006-09-28 21:13:57 ] |
| Post subject: | |
А чё, самому слабо процедуру написать? Code: sub abs(x) |
|
| Page 1 of 2 | All times are UTC+02:00 |
| Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |
|