Классы
Статы, идеальное соотношение · Умения и вехи, как получить · Души · Сравнение классов
Воин · Жрец · Некр · Лучник · Шаман · Мист · Бард · Инж · Демон
Игровой процесс
Как одеваться · Драконий облик · Наследие Богов · Фарм золота
Прохождения локаций
Мониторинг серверов и редактор аддонов
Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.
Подсказки из игры на вашем сайте
Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.
-
Постов
944 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Магазин
Галерея
Весь контент Nikon
-
Quote: американский Блин, как до меня сразу не дошло? Тогда тебе надо было только 2-й пункт делать.
-
Правленый под 2.0.02 File: DarkPremonition.zip
-
Ты точно в обоих файлах исправления делал? Игру перезапускал? Клиент русский? Щас для пробы удалил, снова сделал то же - работает
-
Нет Конфликтовать не будет с ДаркДПСметром
-
Прикольно. Но еще пилить и пилить ДНД там основано на старой версии аддона 1. Ищем файл Scripts\AOClassLibrary.lua Там в функцию OnEventDNDPickAttempt( params ) вставляем строчку mission.DNDConfirmPickAttempt(), чтобы получилось это: Code: function OnEventDNDPickAttempt( params ) for wtID, NewDNDWidgetInfo in DragNDropWidgetList do if math.mod( params.srcId, DND_CONTAINER_STEP ) == NewDNDWidgetInfo.ID then mission.DNDConfirmPickAttempt() NewDNDWidgetInfo.Place = NewDNDWidgetInfo.Widget:GetPlacementPlain() ScreenInfo = widgetsSystem:GetPosConverterParams() NewDNDWidgetInfo.DeltaX = math.ceil( params.posX * ScreenInfo.fullVirtualSizeX / ScreenInfo.realSizeX - NewDNDWidgetInfo.Place.posX ) NewDNDWidgetInfo.DeltaY = math.ceil( params.posY * ScreenInfo.fullVirtualSizeY / ScreenInfo.realSizeY - NewDNDWidgetInfo.Place.posY ) common.SetCursor( "drag" ) NewDNDWidgetInfo.IsPicked = true end end end 2. Ищем файл Scripts\DarkDPSMeter.lua Правим аналогичный кусок кода на это: Code: ShowHideBtn = TWidget:CreateNewObject( "ShowHideBtn" ) ShowHideBtn:MakeMovable( true, 689 ) MainPanel = TWidget:CreateNewObject( "MainPanel" ) MainPanel:MakeMovable( true, 690 ) SpellsPanel = TWidget:CreateNewObject( "SpellInfoPanel" ) SpellsPanel:MakeMovable( true, 691 ) SpellsPanel:Hide() FightPanel = MainPanel:GetChildByName( "FightPanel" ) Вроде все ЗЫ. лагает с ним в столице... ничуть не хуже чем с ДПСметром в бою
-
Quote: Today evening i'll edit this post and show you how to find direction to target, and maybe tomorrow evening - even a distance to target ;-) ?
-
Setras, скажи мне 1 простую вещь: зачем тебе знать имя своей главной формы? Из твоего аддона к своим виджетам ты обращаешься как и раньше (тебе нужно было знать имя формы?) Надеюсь, к другим пользовательским аддонам ты обращаться не собираешься из своего? Хотя и тут проблем не вижу особых Кто сказал, что невозможно иметь хоть 10 форм с одинаковым именем на 1 родителе? Ваши виджеты - это 1 набор объектов. Вы как к нему обращались до переноса (через mainForm), так и будете обращаться после Недостаток этого метода только в том, что приоритет донорской формы нельзя(и не по технической причине) менять, но доноров хоть отбавляй - выбирай с тем приоритетом, который тебе нравится Преимущество тоже 1: "Положил и забыл" + простота реализации Никого ни в чем убеждать не собираюсь, но способ кажется очень удобным En Who has told, what it is impossible to have though 10 forms with an identical name on 1 parent? Yours widgets is 1 set of objects. You as to him addressed before carrying over (through mainForm), and will address after Lack of this method only that the priority of the donor form is impossible (and not for the technical reason) to change, but donors though take away - choose with that priority which is pleasant to you Advantage too 1: "Has put and has forgotten" + simplicity of realization Anybody of what I am not going to convince, but the way seems very convenient
-
Quote: Map/image Map/buttons And that's all you just add another child like Map/MainForm so that's that Before Map/image Map/buttons after Map/image Map/buttons Map/MainForm Quote: but if motherform of Map is hidden all your addon forms are automaticaly hidden too That we also wanted to achieve (reaction on "Alt+Z" and "ESC") Try to make it
-
Not absolutely clearly. The code line resulted above, is fulfilled 1 time at add-on start. In it the user form is added by child ContextOverlayMap. More than anything it is not necessary to do. Such forms it is possible to add a little, different add-ons to 1 parent (for example, I have added DarkDPSMeter and LightDPS children ContextBag - they not bad work together, including DnD) The code in TiogansEvent, as far as I understand, is fulfilled every second? Quote: The "AddChild" command acts as a "stealing" mechanic in this case I move the form (with all contents) on the form of other add-on
-
Считает. Дебаф накладывает пет? Вот у него в уроне и ищи В файле LDPSettings.lua поменяй параметр у переменной MasterAndPet на false для интереса
-
Начал открывать для себя чУдный мир стандартных аддонов Мммм.. у пользовательских аддонов проблемы "Alt+Z", "ESC"? Паразитируем на стандартных аддонах 1. Ищем стандартный, форма которого удовлетворяет условиям: Quote: alignX == 3 alignY == 3 IsVisible == true 2. Находим таких несколько (в скобках приоритет формы) ContextOvertip (900) ContextDamageVisualization (1200) ContextOverlayMap (3200) ContextBag (4200) ContextEmotions (6900) AstralMap (7400) ContextItemMall (7900) ну и тд, все перечислять не буду Итого: В раздел начальной инициализации своего аддона добавляем, к примеру, строчку: Code: stateMainForm:GetChildUnchecked("ContextOverlayMap",false):AddChild(mainForm) Запускаем свой аддон и радуемся результату Естественно выгрузка/перезагрузка "доноров" во время работы не рекомендуется Работа со своими виджетами нисколько не изменяется
-
1. Карты можно выдрать из ресурсов игры (Allods Online Texture Viewer) или попытаться использовать внутриигровую 1.1 Если вести БД - она будет пополняться только на компе сборщика без возможности переноса на другие компы. Хотя, в принципе, есть способ извратиться с переносом БД в отдельный файл, который будет пополняться ручками или сторонней утилитой и выкладываться где то рядом с аддоном Все вроде бы реально. Знаешь Дельфу - легко понять и ЛУА - дерзай Как рисовать линии в аддонах (не горизонтальные-вертикальные) по-моему еще никто не знает (это по стрелкам) Ну и уж тогда не только травникам - рудокопам тоже
-
Прекомпиляция должна еще давать какой то прирост в скорости работы кода (не виджетов) На код того компилятора, который я выложил здесь легко найти декомпилятор, если захотеть
-
Quote: luac (not luc) Да хоть .lucacocoroc Лишь бы потом правильное название файла прописал в AddonDesc
-
1.Такое уже давно есть. Кури доки 3.Переводи в Стринги и узнавай длину если тебе только это нужно
-
Взято где то оттуда (точнее уже не помню): http://www.lua.org/download.html Использовать: LuaC50.exe -o FileName.luc FileName.lua File: lua5_0_3_Win32_bin.zip
-
адынн. рас-рас-рас Эх, все равно не заценю до февраля
-
Че хоть за аддон то? По какому поводу ошибка? Выкладывай, может порешаем
-
Че то ты путаешь. Как то тоже одно время тестировал эту функцию (unit.GetQuality, поверь мне, достаточно долго и во многих локациях) Так вот, качество UNIT_QUALITY_FLAVOR_ELITE было только у рарных мобов. Никакие стражники под эту категорию не попадают Может с последним патчем чего кардинально поменялось? Сомневаюсь А вот UNIT_QUALITY_BOSS было у многих, даже левых боссов. Начиная от мировых РБ и до ГДшных РБ. + лидеры фракций и некоторые НПЦ ЗЫ. проверяй еще на смерть обьекта (object.IsDead). Невидимый трупик может валяться в пределах досягаемости, на него будет реагировать unit.GetQuality, но пользы тебе от этого моба уже не будет никакой (ну, кроме координаты, и то примерной, ибо трупа не видно) По кнопочке фокус сделать хочешь? Тогда можно и кнопочку показывать вместе(вместо) с сообщением о появлении моба
-
Лучше бегать за всеми мобами с Quality UNIT_QUALITY_FLAVOR_ELITE, чем создавать базу под всех рарных мобов. Которых еще могут и изменить/добавить в будущем (очень хочется постоянно обновлять аддон?) Кстати, идею подаю: ты его после обнаружения еще и в фокус возьми
-
[typevaluedtext.html] Quote: ValuedText Форматированная строка с подстановочными значениями. Специальный вариант userdata . Ога, текст Quote: не пользовательскими функциями И о чем тогда разговор? Ты какими то другими функциями можешь пользоваться?
-
О_О Это вы из ValuedText`а решили чето выколупать? Удачи вам желаю С чего вдруг mehael решил, что оно является ValuedObject`ом? Нет в пользовательском АПИ функций, добывающих из ValuedText какую-либо инфу
-
Неправильная логика. Подумай еще DpS - урон в секунду. С полным уроном все ясно. В какой промежуток времени наносится этот урон? В рейде-астрале была? Никогда не было ситуаций - вроде уже бить некого, а бой продолжается. Время идет, а урон наносить не по кому (это 1 из вариантов)
-
Текст WString, наверное, должен использоваться только для отображения локализованой информации в игровом интерфейсе Как aospider (сам им не пользовался, пока нет нормального инета) некорректно работает? 1. Сохраненяем в .cfg текст в формате WString, ничем не преобразованый до этого (или он как-то зачем-то преобразуется? ) 2. Считываем этот же текст из .cfg - пытаемся отобразить в игровом интерфейсе, получаем нечитаемый набор символов? 2. Или смотрим .cfg и "видим фигу"? (чем смотрим? Режим отображения UTF8 в ANSI кодировке? ) Нет в пользовательском АПИ никаких функций для преобразования WString в String кроме "тестовой" FromWString (по крайней мере я что то про них не слышал) В общем ИМХО пока не поправят FromWString и ToWString рыпаться бесполезно. Как вариант, попробовать составить таблицу соответствия преобразованиых символов после WString -> BuggedString <=> String и состряпать функцию, которая по этой таблице будет восстанавливать текст
-
И? События начала-окончания боя естественно существуют Hint: Не обязательно бой начинается с 1-м ударом персонажа и не обязан заканчиваться с последним ударом персонажа
