Привет прожжённым скриптоделам!
// Пишу Targeting-аддон и столкнулся вот с какими неприятностями:
// Перелопатил весь Wow API (и не только) на wowwiki.com и не нашёл нужные команды (по своему опыту знаю, что там не все команды которые есть в игре, видимо самые "сладкие" зажали написать, находил через поиск по wowwiki команды которых нет в Wow API.). Если кто нибудь знает более полный ресурс или где лежит ПОЛНЫЙ список команд, буду весьма признателен. Так же буду благодарен за подсказки по пунктам ниже. В свою очередь, возможно, смогу помочь и вам.
{
1. Как сделать проверку на местоположение цели относительно игрока и наоборот?
// Конкретно:
1.1. Находится ли цель за спиной игрока, т.е. может ли игрок кастануть спелом, который требует нахождения цели перед игроком (например "Автоматическая атака").
1.2. Находится ли игрок за спиной цели, т.е. может ли игрок кастануть спелом, который требует нахождения игрока за спиной цели (например "Удар в спину").
1.3. IsSpellInRange (и подобные) - Не подходит. Проверяет только расстояние.
1.4. IsUsableSpell (и подобные) - Не подходит. Проверяет, практически, всё остальное, кроме того, что мне нужно.
1.5. GetPlayerFacing - Что то похожее. Например, если бы удалось какой ни-будь другой командой определить, что цель находится на северо-западе/севере/северо-востоке от игрока, то скрипт "/run F=GetPlayerFacing();if((F<1)or(F>5))then ... ;else ... end" определил бы, что цель находится перед игроком, иначе за спиной. А, например, если бы удалось определить, что цель смотрит на северо-запад/север/северо-восток, то этот же скрипт показал бы, что цель стоит спиной к игроку, иначе лицом. Может как ни будь через Mapping или ещё как возможно реализовать хотя-бы один вариант?
}
{
2. Так же не нашёл команду на проверку конкретной дистанции в метрах/ярдах.
// Конкретно:
2.1. CheckInteractDistance - Насколько я понял, работает с 4-мя индексами и не поддаётся арифметике, если я ошибаюсь растолкуйте эту команду.
2.2. IsSpellInRange (и подобные) - Использую их (например "Автоматическая атака" дистанция 5м., спелы и итемы на 10м. | 20м. | 30м. | 40м. найти легко, а вот 15м. | 25м. | 35м. не могу найти (на Wowhead хрен найдёшь нужное для 3.3.5.а) если кто знает итем(ы) нужной дальности подскажите название.).
2.3. Конечно лучше проверять точную дистанцию, т.к. хочу что бы аддон отслеживал приближается цель или отдаляется + изменения скорости цели и игрока (тут всё знаю), а 5м. слишком большой диапазон, не говоря уже о 10м..
}
{
3. Цель и фокус. Не секрет, что команда "/target (и её производные)" куда более функциональна нежели "/focus" , по-этому я пользуюсь ими наоборот - играю в "/focus", а с "/target" провожу всяческие манипуляции (типа /target mouseover | /targetenemy | /targetfriend | /targetlasttarget и т.п.), но тут тоже есть пару проблем.
// Конкретно:
3.1. Автоатака по фокусу. Её нет, при принудительной атаке фокус берётся в цель. В принципе это не страшно т.к. есть = /targetlasttarget = , но может есть другое решение?
3.2. Графика цели (кружок под ней и более яркое выделение фрейма (полоски здоровья над целью)). На Функциональность никак не влияет, но "глаз режет", можно ли поменять графику "/target" и "/focus" местами? Или хотя бы отключить графику "/target"? Знаю что можно покопаться в файлах игры (кстати как в них копаться?), например у меня есть дополнительная папка "Sound" в которой "аннулированы" звуки ошибок, спама и т.п., скачал давным давно.
3.3. Фреймы (полоски здоровья над целью). Можно ли отображать/скрывать их выборочно (например, показывать фрейм только над целью или только над фокусом, или только над целью и фокусом и т.д.)?
}
{
4. Иконки спелов/бафов/дебафов.
// Конкретно:
4.1. Как их заменить (имеется ввиду сами картинки) на свои (самому нарисовать)? Знаю что можно, даже помню такой гайд, но не могу найти. Как добавить новые иконки для макросов знаю, а как именно заменить, именно иконки спелов/бафов/дебафов?
}
{
5. Что-бы не выглядеть халявщиком, вот пару скриптов общего назначения для начинающих:
// Конкретно:
5.1. "/run w=SendChatMessage;g=GetUnitName("PLAYER");t=infoTy pe;t,i=GetCursorInfo()if (t=="item")then w(i,"WHISPER",nil,g);end;if(t=="spell")then w(i,"WHISPER",nil,g);end;if(t=="macro")then w(i,"WHISPER",nil,g)end" - Пишет вам в ЛС ID предмета/спела/макроса который вы держите курсором.
5.2. "/run f=GetMouseFocus();if f then SendChatMessage(f:GetName(),"WHISPER",nil,GetUnitN ame("PLAYER"))end" - Пишет вам в ЛС название элемента интерфейса под курсором.
}
// Может кому не сложно откопипастить на форум battle.net, а то я забыл свои "позывные" на оффе.
// Если сюда заглянет модератор, я дублировал тему в макросах 3.3.5. и аддонах 3.3.5. т.к. тема относится к обоим разделам (неплохо было бы объединить разделы всех дополнений, касательно интерфейса, а уже в них подразделы и общие, будет удобней).