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

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

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

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

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

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

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

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

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

Подробнее

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

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

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


knight_rider

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

Нажмите здесь, чтобы скачать файл

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

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

  • Ответов 57
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

RuneCalc

Просмотр файла

Автор исходной версии аддона: Knight_Rider

При объединении Рун, помогает выставить правильное соотношение пыли и крошки, основываясь на их стоимости.

Для корректного вычисления необходимо обрабатываемую руну, перед соединением, переместить в свободный слот сумки.

When you Combine Runes, helps set the correct ratio of Gold Dust, and Crystal Chips, based on their price.

For the correct calculation you must move treated rune into a free slot bags before joining.


 

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

Было бы здорово добавить поддержку локализаций, тем более, что в исходнике для этого уже всё готово (в смысле, все строки GUI и так назначаются из Lua).

Я бы перевёл так:

Code:
Параметры = RuneCalc

Цена 1000 золотой пыльцы = Price of 1000 Gold Dust

Курс кристалла = gPotato Exchange Rate

Цена 1 кристаллической крошки = Price of 1 Crystal Chip

OK = OK

Отмена = Cancel

К тому же, для EU/US версий нужно добавить альтернативную текстуру "CrystalEditable", в которой иконку Кристалла заменить на иконку gPotatoes (в EU/US версиях, Кристаллов нет, вместо них, там валюта gPotatoes).

Текстуру можно подменять программно - просто поместить её в ресурсы аддона (UIRelatedTextures), и в Init() сделать что-то вроде этого:

Code:
if GetGameLocalization() ~= "rus" then

local CrystalEditableG = common.GetAddonRelatedTexture( "CrystalEditableG" )

RC.wt.ConfigPanel:GetChildChecked( "PriseOf1CrystalCrumb" , false ):SetBackgroundTexture( CrystalEditableG )

end

В аттачменте - иконка gPotatoes, выбранная из EU/US версии АО.

UPD: В соседней теме выложил готовую текстуру для "CrystalEditable" с gPotatoes.

.

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

Я бы ещё переименовал "Параметры" в "RunrCalc",

кнопку "OK" в "Посчитать" ("Calculate"),

а кнопку "Отмена" сделал бы в виде "X" в правом-верхнем углу окна.

Я тут заметил, что почти все текстуры аддона не открываются в "AoTextureViewer". Причину этого я давно знаю, и тут дело вот в чём - некоторые DDS-конвертеры (как плагин для Фотошопа от nVidia) умеют экспортировать не совсем стандартные DDS-файлы. Дело в том, что по стандарту, стороны DDS текстуры должны быть степенями двойки, а у плагина от nVidia требования помягче - стороны текстуры у него должны быть кратны 4 (или вообще любые - точно уже не помню)... Кстати, ниваловский оригинальный конвертер, тоже растягивает фоны текстур до размеров, кратных степеням двойки. И все-все текстуры в ресурсах АО сделаны именно так, их размеры ВСЕГДА степени двойки. А то, что "AoTextureViewer" умеет такие нестандартные текстуры конвертировать в BIN-файлы - это, вообще-то, баг! :) и я уже исправил его в своей девелоперской версии - теперь, он выдаёт сообщение об ошибке, и отказывается конвертировать такую текстуру. Кстати, я даже не думал, что такие текстуры могут работать в АО, может быть, игра ремонтирует их "на лету"?. Так например, если у текстуры есть несколько мипмапов (как в текстурах для моддинга АО), то их вообще невозможно сконвертировать таким способом, этого просто не позволит формат BIN-файлов, если я не ошибаюсь. А вот, если мипмапов нет (как в интерфейсных текстурах), то "AoTextureViewer" НЕЧАЯННО их конвертирует, и оказывается, они даже работают... На самом деле, беда в том, что игры обычно работают с DDS-файлами чуть ли не на уровне железа (буквально, загружают их прямиком в память видеокарты). И это железо заточено именно под текстуры с размерами - степенями двойки, с ними железу работать быстрее, проще и понятнее, особенно, когда у текстуры много мипмапов. Я не знаю, как именно АО обращается с DDS-файлами, то есть, есть вероятность, что такие нестандартные текстуры, будут работать не на всех видеокартах, или у кого-то вызывать произвольные вылеты драйвера видеокарты. Именно поэтому, в "AoTextureViewer" не будет поддержки таких нестандартных текстур.

Вот например, текстура CrystalEditable.dds (и сделанный из него CrystalEditable.(UITexture).bin) должны были иметь размер НЕ 92x32, а 128x32.

А в файле CrystalEditable.(UITexture).xdb, соответственно, должно было быть написано:

Code:
<width>128</width>

<height>32</height>

<realWidth>92</realWidth>

<realHeight>32</realHeight>

В аттачменте - 2 текстуры - исправленный CrystalEditable для русской версии, и CrystalEditableG (GPotatoes), для EU/US версии:

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

Был не в курсе, переделаю текстуры. Не перевел на другие языки, т.к. не играл на EU/US серверах и не был уверен в актуальности аддона для них. Добалвлю локализацию.

Интерфейс настроек планировал переделывать, пожалуй учту пожелания

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

Можно поподробнее про подмену текстур. Создал файл

Textures.(UIRelatedTextures).xdb

Code:
<?xml version="1.0" encoding="UTF-8" ?>

<UIRelatedTextures>

<Items>

<Item>

<name>CrystalEditableG1<name />

<textureItem href="CrystalEditable/CrystalEditableG.(UITexture).xdb#xpointer(/UITexture)" />

</Item>

<Item>

<name>CrystalEditableG2<name />

<textureItem href="CrystalEditable/CrystalEditableG.(UISingleTexture).xdb#xpointer(/UISingleTexture)" />

</Item>

<Item>

<name>CrystalEditableG3<name />

<textureItem href="CrystalEditable/CrystalEditableG.(WidgetLayerSimpleTexture).xdb#xpointer(/WidgetLayerSimpleTexture)" />

</Item>

</Items>

</UIRelatedTextures>

Добавил его в AddonDesc.(UIAddon).xdb

Code:
<?xml version="1.0" encoding="UTF-8" ?>

<UIAddon>

<AutoStart>true</AutoStart>

<Forms>

<Item>

<Form href="GUI/MainForm.(WidgetForm).xdb#xpointer(/WidgetForm)" />

<Form href="GUI/ConfigPanel/Textures.(UIRelatedTextures).xdb#xpointer(/UIRelatedTextures)" />

<Id>Main</Id>

</Item>

</Forms>

<MainFormId>Main</MainFormId>

<Name>RuneCalc</Name>

<ScriptFileRefs>

<Item href="Locales/Locales.lua" />

<Item href="RuneCalc.lua" />

</ScriptFileRefs>

</UIAddon>

В программе пробую

Code:
local CrystalEditableG1 = common.GetAddonRelatedTexture( "CrystalEditableG1" )

local CrystalEditableG2 = common.GetAddonRelatedTexture( "CrystalEditableG2" )

local CrystalEditableG3 = common.GetAddonRelatedTexture( "CrystalEditableG3" )

Ни один из виджетов не подходит. Для каждого получаю в логах

Code:
Error: addon RuneCalc: UI::LuaGetAddonRelatedTexture: Addon (RuneCalc) don't contain related textures, details: int __cdecl UI::LuaGetAddonRelatedTexture(struct lua_State *)
Ссылка на комментарий
Поделиться на другие сайты

Для подключения текстур используются другие тэги:

Code:
<textures href="" />

или

Code:
<texturesGroups>

<Item>

<groupName />

<textures href="" />

</Item>

</texturesGroups>

Кроме того, в UIRelatedTextures прописываются только UISingleTexture, по-моему.

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

Брал из файла SampleDefaultExt.(UIRelatedTextures).xdb

Code:
<?xml version="1.0" encoding="UTF-8" ?>

<UIRelatedTextures>

<Items>

<Item>

<name />

<textureItem href="" />

</Item>

</Items>

</UIRelatedTextures>

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

Да, все верно. В этот файл заносятся UISingleTexture (кстати, <name><name /> следует исправить на <name></name>), затем путь до UIRelatedTextures прописывается в AddonDesc, например, в <textures href="" />.

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

С name накосячил. Спасибо.

P.S. Вы не против, если я из AddonManager текстурки подергаю? ^_^

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

Я-то? Не, ни разу не против. Это скорее надо у мыло.ру интересоваться XD

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

Вопрос о текстурах.

Можно ли как-то определить параметры для Layout из WidgetLayerTiledTexture.

Я взял из AddonManager текстуру фона и доп. файлы для нее, слегка уменьшил по высоте. Теперь текстура отобрашается с размерами, меньше панели. Попробывал поменять Layout, но пропала прозрачность.

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

dds и bin прикрепляю.

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

На европейской версии аддон работать не будет. Вот структура его виджета ContextRuneCombiner2

Code:
stateMainForm:MainForm:ContextRuneCombiner2

stateMainForm:MainForm:ContextRuneCombiner2:Name

stateMainForm:MainForm:ContextRuneCombiner2:Comment

stateMainForm:MainForm:ContextRuneCombiner2:MemUsage

stateMainForm:MainForm:ContextRuneCombiner2:ButtonToggleDND

stateMainForm:MainForm:ContextRuneCombiner2:ButtonToggleAddonState

stateMainForm:MainForm:ContextRuneCombiner2:ButtonItem

Вот то что в нашей версии

Code:
stateMainForm:ContextRuneCombiner2

stateMainForm:ContextRuneCombiner2:MainPanel

stateMainForm:ContextRuneCombiner2:MainPanel:CrystalTube

stateMainForm:ContextRuneCombiner2:MainPanel:CrystalTube:FlowHighlight

stateMainForm:ContextRuneCombiner2:MainPanel:GoldTube

stateMainForm:ContextRuneCombiner2:MainPanel:GoldTube:FlowHighlight

stateMainForm:ContextRuneCombiner2:MainPanel:GoldenCorner

stateMainForm:ContextRuneCombiner2:MainPanel:GoldenCorner:CornerCross

stateMainForm:ContextRuneCombiner2:MainPanel:Reset

stateMainForm:ContextRuneCombiner2:MainPanel:WindowHeader

stateMainForm:ContextRuneCombiner2:MainPanel:WindowHeader:HeaderText

stateMainForm:ContextRuneCombiner2:MainPanel:Combine

stateMainForm:ContextRuneCombiner2:MainPanel:GoldenDust

stateMainForm:ContextRuneCombiner2:MainPanel:GoldenDust:Need

stateMainForm:ContextRuneCombiner2:MainPanel:GoldenDust:ItemTexture

stateMainForm:ContextRuneCombiner2:MainPanel:GoldenDust:Have

stateMainForm:ContextRuneCombiner2:MainPanel:LesserRune

stateMainForm:ContextRuneCombiner2:MainPanel:LesserRune:RuneLevel

stateMainForm:ContextRuneCombiner2:MainPanel:LesserRune:Need

stateMainForm:ContextRuneCombiner2:MainPanel:LesserRune:ItemTexture

stateMainForm:ContextRuneCombiner2:MainPanel:LesserRune:RuneGlow

stateMainForm:ContextRuneCombiner2:MainPanel:LesserRune:Have

stateMainForm:ContextRuneCombiner2:MainPanel:CrystalDust

stateMainForm:ContextRuneCombiner2:MainPanel:CrystalDust:Need

stateMainForm:ContextRuneCombiner2:MainPanel:CrystalDust:ItemTexture

stateMainForm:ContextRuneCombiner2:MainPanel:CrystalDust:Have

stateMainForm:ContextRuneCombiner2:MainPanel:HigherRune

stateMainForm:ContextRuneCombiner2:MainPanel:HigherRune:ButtonScrollLeft

stateMainForm:ContextRuneCombiner2:MainPanel:HigherRune:ButtonScrollRight

stateMainForm:ContextRuneCombiner2:MainPanel:HigherRune:RuneLevel

stateMainForm:ContextRuneCombiner2:MainPanel:HigherRune:ItemTexture

stateMainForm:ContextRuneCombiner2:MainPanel:HigherRune:RuneGlow

stateMainForm:ContextRuneCombiner2:MainPanel:HigherRune:Need

stateMainForm:ContextRuneCombiner2:MainPanel:Chamber

stateMainForm:ContextRuneCombiner2:MainPanel:Chamber:ChamberOverlay

stateMainForm:ContextRuneCombiner2:MainPanel:Chamber:ChamberOverlay:ChamberGlow

stateMainForm:ContextRuneCombiner2:MainPanel:Chamber:ChamberOverlay:FlowHighlight

stateMainForm:ContextRuneCombiner2:MainPanel:Chamber:Slider

stateMainForm:ContextRuneCombiner2:MainPanel:Chamber:ChamberMixed

stateMainForm:ContextRuneCombiner2:MainPanel:Chamber:ChamberMixed:MixedCrystal

stateMainForm:ContextRuneCombiner2:MainPanel:Chamber:ChamberMixed:MixedBoth

stateMainForm:ContextRuneCombiner2:MainPanel:Chamber:ChamberMixed:MixedGold

Интересно, такая структура в русской версии стала после обновления 2.0 и будет ли она изменена на зарубежных версиях?

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

Ну я в аддонописании новичек. Со структурой виджетов аллодов практически не знаком. Обе структуры получял одинаковым образом.

Получается как-то можно достучаться до самого виджета?

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

Да, можно. Если есть какой-то виджет с уникальным именем, не встречающимся в других аддонах, достаточно воспользоваться рекурсивным поиском

Code:
stateMainForm:GetChildChecked( "UniqueName", true )

Затем "подняться" до, например, mainFrame с помощью :GetParent().

Каким образом виджеты Item'a в логе оказались связаны с ContextRuneCombiner2, я, честно говоря, не знаю.

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

ну я взял функцию

Code:
function getAllChildrensOfWidget(tab,widget) -- (с) icreator

local childrens = widget:GetNamedChildren()

for _, w in childrens do

local tab1 = tab .. ":" .. w:GetName()

LogInfo (tab1)

getAllChildrensOfWidget(tab1,w)

end

end

и вызвал ее

Code:
getAllChildrensOfWidget("",stateMainForm)

То что получил в русской и европейской версиях я и выложил выше

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

Оказалось все из-за того, что в старой версии бардак в виджетах. У каждого виджета корень называется MainForm, в новой же версии их переименовали в соответствии с названием виджета ContextRuneCombiner2. Вот путь к необходимому мне виджету:

Сейчас

Code:
stateMainForm:ContextRuneCombiner2:MainPanel:Chamber:Slider

В старой версии

Code:
stateMainForm:MainForm:MainPanel:Chamber:Slider

Пришлось искать по вложеному виджету Chamber.

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

Я бы сделал так:

Code:

Цена 1000 золотой пыльцы = Price of 1000 Gold Dust

Курс кристалла = 1 gPotato to gold rate

Цена 1 кристаллической крошки = Price of 1 Crystal Chip

OK = OK

Отмена = Cancel

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

да так и приходится выкручиваться - на евро версиях -причем я там не играю - ошибки присылает народ оттуда

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

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

поставил вчера, решил попробовать, но аддона не видно, вернее он появляется, но после закрытия окна соединения рун, и буквально на пол секунды, сложилось впечатление, что аддон все-таки был, но находился он ЗА/ПОД окошком, а не НАД ним

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

После последнего обновления игры окошко аддона залезло под(!) окно объединения рун.

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

В ближайшее время обновлю.

Добавил в него пару плюшек. Поправлю и ввыложу.

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

  • 2 недели спустя...
ВНИМАНИЕ!
Обязательна информация из \Personal\Logs\mods.txt для диагностики ошибки.
Иначе вам не помочь.
В игре включите в Меню → Интерфейс → Общие настройки → Запись ошибок пользовательских дополнений. Затем запустите аддон в игре.
Гость
Ответить в этой теме...

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

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

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

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

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


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

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

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