Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Обсуждение и поиск API


Гость skillcoder

Рекомендуемые сообщения

Собственно в атаче есть все доступные/недоступные уже функции.

Правда некоторые данные уже устарели, но других пока нет.

Разрабы пока игнорят все запросы на открытый доступ к API.

Что ж давайте сами копать.

На повестке дня функция ToWs - конвертирование строки в wide string

Без неё многое не получится сделать.

Может кто знает аналоги ?

Ссылка на комментарий
Поделиться на другие сайты

Есть мысль заделать модификацию по типу Chatbar'a ВоВа ( такой бар с кнопками каналов над чатом при клике на которые в чат сразу вбивается например "/гильдия ")

Такой вопрос немогу понять как можно "нарисовать" чтото новое на экране, есть какиенибудь мысли? как отрисовать новую кнопку в чате?

Ссылка на комментарий
Поделиться на другие сайты

На сколько мне известно прошлый способ (буфер обмена) выгрузки не работает.

Скорее всего ща выгружать инфу из Аллодов можно тока через конфиги.

Ссылка на комментарий
Поделиться на другие сайты

Возможно чтото из этого пригодится..

API Monitor 1.5 (Beta) by Rohitab Batra

Очередной шпион API. + довешен еще и IOCTL Decoder. Вполне стоит того, чтобы иметь в коллекции.

Сайт программы: http://www.rohitab.com/apimonitor

APISpy32 3.0 by Yariv Kaplan

Перехватчик API-функций. За последнее время значительно улучшился. До BoundsChecker ему все равно далеко, однако он умеет следить за всеми программами сразу, что есть и преимущество и недостаток. Поведение утилиты определяется файлом APISpy32.api, который представляет собой всего лишь описания прототипов функций (причем, описание ПАРАМЕТРОВ может и не в точности совпадать с таковым у оригинальной функции!) в текстовом формате. Редактируйте файл, потом скопируйте его в WINDIR и вперед! Да, если у кого этот файл будет выглядеть прилично - просьба мылить мне - выложу на сайт.

Сайт программы: http://www.internals.com

Ссылка на комментарий
Поделиться на другие сайты

Врятли что либо из этого нам пригодится для раскопок lua скриптов.

То что ты предложил имеет отношение к WinApi, а он в свою очередь к lua врятли относиться.

Но всёравно спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Крайне полезно при поиске API и для отладки

Code:

local section = {}

for i,v in params do

section [ i ]  = v

end

common.SetGlobalConfigSection( "MANUAL_CONFIG_SECTION", section ) 

Данные код сохраняет содержимое params в конфиг файл игры (personal\user.cfg) в секцию с названием MANUAL_CONFIG_SECTION

(с) Valltron

Ссылка на комментарий
Поделиться на другие сайты

Функция common.SetGlobalConfigSection переписывает текущую таблицу на то, что содержит section.

Если нужно изменить или дополнить существующую, то лучше использовать объявление таблицы section как:

local section = common.SetGlobalConfigSection( "MANUAL_CONFIG_SECTION" )

Да, и "MANUAL_CONFIG_SECTION" - это имя таблицы в файле user.cfg

а params - это название таблицы в скрипте, ключи и значения которой хотите разузнать

Ссылка на комментарий
Поделиться на другие сайты

Я щас пишу (точнее пытаюсь написать) аддон, который выдаёт координаты игрока, а также показывает качество моба (элитность).

По сему возникло ряд вопросов (пока опытным путём всё это стараюсь обойти).

1) Где собственно хранятся формы?

В WOW они хранились отдельно, в XML. А тут?

2) Почему в качестве шаблона нужно выбирать уже готовый

(например format = common.GetAddonRelatedText( "Experience" )), и нельзя просто воспользоваться строкой?

3) За что отвечает функция ValidateWs() ? В каком формате она возвращает данные, и можно ли её «сэмулировать» для своих данных?

4) Как выводить данные на экран в произвольной форме?

Пока что у меня получилось выводить позицию игрока, но не так, как планируется.

Качество (элитность) мобов вообще не хочет выводиться. Такое впечатление, что вывод жёсско шаблонизирован и нет никакой возможности переделать под себя или создать что-либо новое.

Ссылка на комментарий
Поделиться на другие сайты

Не понял про элитность мобов. Она и так выводитсяв виде цвета ореола/короны при выделении моба.

2) Потому что нивал хавАл трамал.

4) никак потому что см 2).

У меня не получилось вывести локальную позицию игрока, она в формате отличном от глобальной? Расскажи как ты сделал локальню позицию.

(в 1 делении глобальной 32 локальные)

Элитность есть:

UNIT_QUALITY_COMMON

UNIT_QUALITY_CRITTER

UNIT_QUALITY_ELITE

А так же 4 разделения боссов, минибоссов, коронованных и еще каких-то мобов.

Как пасхалку можно в каждый аддон добавить строчки делающие всех создателей аддонов элитками.

Ссылка на комментарий
Поделиться на другие сайты

Начну с начала)

Я интересуюсь игровыми формулами и для удобства хочу выводить всё более информативно.

Элитность на самом деле чуть сложнее чем кажется.

Как определить элитность и редкость моба?

Например:

Редкий Элитный:

a5a118bce0d1.jpg - даёт x1.5 опыта

Элитный:

43dac6de124e.jpg - даёт x2 опыта

хотя в то же время с виду ни чем не отличающийся, ещё один Элитный:

06012b6824d7.jpg - даёт x1 опыта

Ну и боссы, например, Мизгирь:

abc3694fd3b2.jpg - даёт примерно x10 опыта.

В файлах игры:

Code:
-- mob qualities (eliteness)

Global( "UNIT_QUALITY_COMMON", 0 )

Global( "UNIT_QUALITY_ELITE", 1 )

Global( "UNIT_QUALITY_FLAVOR_ELITE", 2 )

Global( "UNIT_QUALITY_MINI_BOSS", 3 )

Global( "UNIT_QUALITY_BOSS", 4 )

Global( "UNIT_QUALITY_RAID_BOSS", 5 )

Global( "UNIT_QUALITY_RAID_ELITE", 6 )

Global( "UNIT_QUALITY_CRITTER", 7 )

Code:
if unit.IsEnemy( targetId ) then

if quality == UNIT_QUALITY_ELITE then

stack:Add( "AdvancedQuestBosses" )

elseif quality == UNIT_QUALITY_FLAVOR_ELITE then

stack:Add( "AdvancedRareBosses" )

elseif quality == UNIT_QUALITY_MINI_BOSS then

stack:Add( "AdvancedEliteBosses" )

end

end

Code:
eliteFrames [ UNIT_QUALITY_FLAVOR_ELITE ]  = common.GetAddonRelatedTexture( "EliteSilver" )

eliteFrames [ UNIT_QUALITY_ELITE ]  = common.GetAddonRelatedTexture( "EliteGolden" )

eliteFrames [ UNIT_QUALITY_MINI_BOSS ]  = common.GetAddonRelatedTexture( "EliteCopper" )

eliteFrames [ UNIT_QUALITY_BOSS ]  = common.GetAddonRelatedTexture( "EliteRed" )

Из чего вывод делаю, что мобы бывают слеюующих типов:

1) Безобидное существо, x 0

2) Обычный, x 1

3) Квестовый Элитный, x1

4) Рарный Элитный, x 1.5

5) Элитный мини-Босс, x2

6) Босс, x?

7) Рэйд Босс, x?

8) Элитный Рэйд Босс, x?

И сколько же опыта дают за убийство (соло) этих мобов?

Даже если их невозможно убить соло, то в группе опыт попросту делится.

Скажем, если в группе было 2 игрока 10 уровня, то за убийство моба 10 уровня они получат половину опыта, который бы они получили, убивая моба соло.

Дак вот.

Я хочу определить, какие бывают мобы, как их отличать и каков у них множитель.

Насчёт позиции игрока (ContextCartographer2\ScriptCartographer.lua):

Code:

...

local pos = avatar.GetPos()

local meterX = pos.globalX * 32 + pos.localX

local meterY = pos.globalY * 32 + pos.localY

...

Числа получаются не маленькие (у меня было примерно X=17000, Y=4000), но зато они абсолютные и точные.

Выводил, немного модифицировав jExpBlue:

ca3f0355410ex.jpg

Ссылка на комментарий
Поделиться на другие сайты

С выводом элитности моба - разобрался.

Постараюсь красиво оформить в отдельный аддон и выложить.

Ссылка на комментарий
Поделиться на другие сайты

Я пробовал отдельно выводить глобальные и отдельно локальные координаты, не получалось вывести локальные =(

Аналогично, выводил через опыт, через компас не смог.

Ссылка на комментарий
Поделиться на другие сайты

Оформил в отдельный аддон.

thumb_ed736c93d5847b3c9cf57313570c19ca.j

Аддон показывает значение элитности моба. В данный момент не доработано. Лишь в виде цифры.

0 - простой

1 - элита

2 - рарный

3 - мини босс

4 - босс

5 - рэйд босс

6 - рэйд элитный

7 - безобидное существо

Т.к. пока не получилось сделать как хотелось, не стал заливать на сайт.

В связи с чем - вопрос.

Как писать произвольный текст в тултипе?

см. 205 строку:

Пробовал:

Code:
data.quality.value = string("test")

Code:
data.quality.value = ToWs("test")

Code:
data.quality.value = "test"

...не работает...

И формат уже прописывал... (он игнорируется)

Code:
data.quality.format = GetText( "Header" )

Пока только выводит так (цифру):

Code:
data.quality.value = common.FormatInt( Quality, "%d" )

Что посоветуете?

Ссылка на комментарий
Поделиться на другие сайты

В соседних темах уже прочитал... Пока ответа на этот вопрос ещё нет...

Ссылка на комментарий
Поделиться на другие сайты

Вот мой последний вариант аддона координат (залил его в аддоны, скоро должен появиться).

А пока тут

476f29d80f14.jpg

Вообще, в идеале ещё должно по движению мышки показывать координаты курсора на карте + на компасе координаты...

Да и формат попроще...

Но... Пока не научимся писать произвольный текст, это не так просто...

Ссылка на комментарий
Поделиться на другие сайты

есть такой замечательный файлик

data/Packs/BaseLocrus.pak

в нем

bin/pack.loc

"... в том ларце заяц... утко... яйцо..." =)

в этом файле все тексты, форматы и т.д локализатора...

очень многое еще не использовано или уже не используется... разнообразие форматов рябит в глазах...

файл имеет вид (на первый взгляд) некую структурированный вид...

сначала идет хедер с кол-вом записей.

затем блоки, с начальным и конечным "номером" ограничивающий сам блок (почему-то идущих на убывание... т.е. номер последнего блока меньше чем номер первого)

в последнем - контент в ютф8

кто со мной его разберет?

Ссылка на комментарий
Поделиться на другие сайты

Странно... У меня файл содержит шифрованную "кашу", с виду явно не похожую на utf8.

Если у тебя не такой как у меня pack.loc, поделись им плиз (например с cbt).

У меня файл из последнего (рабочего) клиента obt, 2123382 байт.

А вообще, насчёт *.bin у меня родилось предположение, что они зашифрованы xor-подобным алгоритмом.

Тестить - ещё не тестил, но эта мысль возникла после того, как я заметил повторяющиеся фрагменты.

Ссылка на комментарий
Поделиться на другие сайты

Всё, разобрался) У меня тот же файл что и у тебя. Спс за наводку)

Попробую покопать дальше)

Ссылка на комментарий
Поделиться на другие сайты

У меня есть старая версия этого архива, до того как все тексты спрятали в bin.

Тексты там, правда, старые.

Версия июньская.

Ссылка на комментарий
Поделиться на другие сайты

Выкладывай, пригодится.

Если файлы большие, кинь на файлшаринг какойнить, а суда ссылку

Ссылка на комментарий
Поделиться на другие сайты

Чуток погодите, распаковщик уже написал для pack.loc, скоро выложу.

Всего файлов 62065.

Upd:

Выложил.

Ссылка на тему

Ссылка на комментарий
Поделиться на другие сайты

Выложи, плиз. Очень надо.

Вполне возможно поможет ускорить создание компилятора ресурсов в pack.loc

А то распаковщик готов, а вот компилятор пока не может сделать файл, который годится клиенту.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Написал нивалам на оф. почту, жду ответа уже 3й день.

Надеемся в понедельник ответят где лежит API.

Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования