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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

как запросить вещь с сервера


icreator

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

я так понимаю что можно в конфиге сохранять название вещи, а потом его восстановить.

Но как взять именно вещь - Например с помощью:

FunctionAvatarGetItemInfo

там ведь нужен уникальный ИД - который каждый раз с сервера разный присылается при перезагрузке персонажа

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

По моим данным ни как. Я писал разработчикам что бы сделали доступ к открытию вещей которые сохранены по названию. Получил ответ: Объясните для чего это нужно, если это нам покажется интересным мы добавим. Увы мне предложить нечего потому что я эту возможность хотел для аддона aospider

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

так вот я сделала аддон

http://ui9.ru/forum/enhancedactionpanel/about

там если в сумке персонажа нет вещи или зелья, которое стояло на панели - оно исчезает с панели вообще ((( очень неудобно

а ведь у них оно как-то сохраняется!!! только ячейка закрашивается темным цветом

в моем случае надо как-то сохранять иконку предмета, потом смотреть его по имени в сумке - если нету - подставлять на панель потухшую иконку и ждать когда же в сумке появится эта вещь... можно конечно и так сделать - но куда и как иконки вещей сохранять?

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

мало того еще и ID вещи меняется! так в Action панели у удаленной вещи меняется ИД и как как ее и откуда взять - иконку и прочее...

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

The user data ID system in this game is completely dynamic. If you walk 200 yards away from an NPC/Player/LootBag/Device/Transport/anything and come back, that object has a completely new ID. The same is true anywhere you see the word "ID", they are temporary identifiers used only to transmit the data they contain at that moment.

These IDs change less frequently in the case of constantly stable information, such as objects in slots and the spell book. This is a problem that MasterLoot experienced with the Morse-derived ID notification where the ID passed to each separate player for a single item was different.

IDs are not a good or feasible means for bouncing stored data checks off of, but they are sometimes the only thing we have access to that is different. (Ex. Two devices with the same info table data and the only difference being X/Y/Z position and their ID.)

One of the bugs in my ShipHUD occurs from this problem; which I should address when I get free time. This is when the player leaves the ship's range and all the devices get new IDs and it creates a secondary set of devices or a whole new ship in response to the change. (Iconic bug only, the circular version functions quite differently.)

In the case of your EnhancedActionPanel idea, it would more than likely be better to store slot names and the name/slotnumber/stackcount of the skill/item stored there and then run a check on all locations where slots can be stored to find out if an item with that name (and stackcount/slot number for items/abilities with stacks or the same name) exists. A much more extraneous methodology, but should never result in an erroneous situation.

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

можешь поссмотреть как я в свое время брал и хранил иконки в аддоне LootInfo. Если не разберешься - завтра попробую объяснить наглядно что к чему :)

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

итак, как это делал я :)

для начала я вытащил из ресурсов иконку, которую буду использовать для подстановки в аддоне иконок, для которых нет иконок :) и обозвал ее Placeholder. Файл с описанием моих текстур:

Code:
<UIRelatedTextures>

<Items>

<Item>

<name>Placeholder</name>

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

</Item>

</Items>

</UIRelatedTextures>

как подготовить, собственно, текстуру я здесь описывать не буду, это отдельный разговор. и он обсуждался уже на этом форуме :)

и не забываем подключить наш файл с описанием текстур к аддону, если у вас его еще нет. в файле AddonDesc.(UIAddon).xdb прописываем строчку:

Code:
<textures href="textures/textures.(UIRelatedTextures).xdb"/>

Теперь идем, собственно, в наш скрипт.

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

Code:
Global( "PLACEHOLDER", common.GetAddonRelatedTexture( "Placeholder" ) )

думаю тут все понятно.

теперь определяем переменную для нашего виджета, куда будем "рисовать" нашу иконку, пусть она так и называется wIcon:

Code:
wIcon = widget:GetChildChecked( "Icon", false )

Виджет Icon это у нас это WidgetPanel, на задний фон которого и будет накладываться наша текстура:

Code:
<WidgetPanel>

<Name>Icon</Name>

<BackLayer href="icon.(WidgetLayerSimpleTexture).xdb#xpointer(/WidgetLayerSimpleTexture)" />

<Placement>

<X>

<Align>WIDGET_ALIGN_LOW</Align>

<Pos>0</Pos>

<Size>48</Size>

</X>

<Y>

<Align>WIDGET_ALIGN_LOW</Align>

<Pos>8</Pos>

<Size>48</Size>

</Y>

</Placement>

</WidgetPanel>

снова возвращаемся к нашему скрипту. допустим ID предмета нам уже известно. тогда нам надо получить его ValuedObject:

Code:
local ItemVO = avatar.GetItemValuedObject( ID )

-- и из него получаем нашу иконку и куда нибудь сохраняем:

local icon = ItemVO:GetImage()

И затем в нужном нам месте, когда необходимо нарисовать нашу иконку мы пишем примерно следующее:

Code:
if icon then

wIcon:SetBackgroundTexture( icon )

else

wIcon:SetBackgroundTexture( PLACEHOLDER )

end

вот, както так :)

PS: конечно, многое упустил, оставил тошлько самое необходимое, основные функции. ну я, собственно, и не ставил перед собой цель написать мануал для новичков. Сам принцип, думаю, понятен. а как и где и когда это использовать - решать уже вам. ;)

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

Спасибо, с иконками я разобралась и с ValuedObject тоже - жаль намного раньше - но на вашем аддоне - стыбрила оттуда как раз иконку с вопросом и вставила ее в AucEDSman.

но для них всех нужен действующий ID

а если вещь удалена, то его у нас нету...

а по имени вещи тебе ID не получить (( и иконку соответственно то же

но как то же а Action Panel иконку от удаленных вещей сохраняются! И у них даже есть своий ID - у удаленных вещей. Может кто видел функцию в API -

GetDeletedItemInfo ( ID )

??

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

в каком виде предоставляется апи сейчас - думаю это не возможно, а на экшн панели, как я понимаю, при «привязке» создается просто свой экземпляр объекта, имеющий свой id...

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

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

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

Ну это естественно, что должна быть какая то база, чтобы можно было в таблицы на сервере том же, находить и отдавать по ним инфу...

А нужно это для составления разных таблиц, графиков, баз и прочих подобных экшн- и инфо- панелей... А что нам ещё остается? Ведь реально полезное все равно нам не дадут что-то сделать, посчитают за ботов, итп... «автоматизации игрового процесса, и получения преимуществ...»

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

идентификатор то я получаю - причем удаленной вещи - но к какому типу объектов он относится?

mount.GetInfo(Id)

avatar.getInfo(Id)

spell.GetInfo(Id)

...

???

то есть ИД вещи например = 12333, затем я ее привязываю к панели действий. ИД тот же. Потом удаляю вещь - и запрашиваю ИД с панели действий - возвращает новое значение ИД = 4122 !

и как эту удаленную вещь опять получить после перезагрузки клиента?

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

это не Valued Object

а - objectId

и в API нет GetDELETEDitemInfo(Id)

и даже если вы получите имя удаленной вещи, то как получить ее НОВЫЙ ИД при перезагрузке персонажа?

короче нужен в АПИ:

object.GetInfoDeletedItem()

object.GetInfoDeletedObj()

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

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

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

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

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

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

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

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

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

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