Jump to content
Alloder.pro  about Allods with love 😱
Search In
  • More options...
Find results that contain...
Find results in...

Servers monitoring and the Addons Editor

We present you two legends. All dreams come true.

Servers monitoring The Addons Editor

Digest April

We talk about what was done and updated in the past month. We help keep abreast of events.

Read more

Game tooltips

Tooltips provide a way for 3rd party fansites and extensions to display detailed information on mouseover.

Read more

Как узнать ItemID


Guest QuiteUnknown
 Share

Recommended Posts

Guest QuiteUnknown

Как eзнать ItemID? Получить его в аддоне можно, им можно оперировать, но как его узнать мне, тоесть как вывести это число из игры, например в чат игры или в текстовый фал лога (mods.txt)? Никак не получается вывести в чат или в лог числовое значение, не string....

Link to comment
Share on other sites

в отличие от других игр, в Аллодах нет уникального привязанного itemID, однозначно описывающий класс(тип) вещи.

описание предмета составляется на ходу и характеризуется неким resourceID (userdata с метатаблицей) в базе клиента, которая составляется на основе запрашиваемых данных с сервера.

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

Link to comment
Share on other sites

Guest KentAVr57

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

вполне возможно что я ошибаюсь или сливаю в одну кучу несливаемые факты.. )

для того чтоб вывести в лог число пишите tostring(ItemID )

Link to comment
Share on other sites

Guest Valltron

сколько уж можно этот ID мучать...

Сначала определитесь с чем вы работаете:

если это itemID - это число, то просто пишем:

LogInfo( "itemID: ", itemID )

если это itemObject - это userdata, если перевести в string - то ничего хорошего из этого не получится. будет просто указатель наподобии userdata:123456

нужно из него получить сначала ID (число): itemID = itemObject:GetId() и уже число использовать в своих нуждах.

В каких событиях что приходит - смотрите уже в АПИ... или же пишите вопрос более конкретнее

А насчет сессий - предмет создается и хранится на сервере в таблице определенной, и постоянно из одной таблицы перемещается в другую... поэтому ID не статический какойнибудь...

Например убили моба, появился лут. создалась таблица на сервере с лутом, луту присвоились ID. игрок подошел взял предмет, он на сервере переместился из таблицы лута в таблицу рюкзака, в таблице Аватара... соответственно ему присвоился новый уникальный ID для данной таблицы... и так далее.

Это конечно все примерно и упращенно написано :) но надеюсь понятно.

Link to comment
Share on other sites

ээээ.... а это так модно счас писать, чтобы вещи перемещались по таблицам?

а про 3 нормальную форму они чето слышали интересно эти разрабы?

а то видал я както на заре карьеры пацана написавшего первую бухгалтерию в жизни (это его и извиняет ) ) которая работала на том же принципе )

работала она недолго...

кстати на счет тормозов

я тут подумал - а они скорее всего возникают изза того, что канал шифрованный и нужно много процессорного времени на распаковку протоколу )

ЗЗЫ привет архитекторам (я всегда его вам передаю ) )

Link to comment
Share on other sites

ну отчасти это лучше, чем каждой вещи (юниту, объекту) в мире присваивать инкрементное ObjectID по мере появления в мире.

Например, в той же ла2 после релога у тебя менялся ObjectID аватара, пета, и всей сумки, а поскольку в целочисленном инте всего 2^32 = 4 294 967 296 значений, и часть (не помню сколько) нижней границы зарезервировано для статик объектов и прочего, то подход к верхней границе осуществляется уже за неделю онлайна сервера (в частности и поэтому еженедельный мейнтенс на оффе, вкупе с бэкапом - чтобы избежать переполнения).

имхо, в подходе аллодов ничего плохого нет, динамическое описание предмета это тру.

вот только линк предмета, например, в чат, в отличие от той же ла2, где каждому предмету присваивался уникальный objectid, валидный для всего времени жизни сервера, так же просто сделать не получится - скорей всего в текстовом сообщении придется передавать непосредственно описание предмета, а не указатель на него.

Link to comment
Share on other sites

да вот в том то и дело, что только отчасти.

всетаки иногда лучше один раз написать нормально архитектуру и потом не парится.

и что им мешало сделать нормальный индекс инт64 или составной

например класс и идентификатор внутри класса......

заодноб и с классами объектов было все понятно )

З.Ы.

а это.... инт64 народ зря придумал например.... и реляционные базы данных....

З.З.Ы. Нивал жжот )

Link to comment
Share on other sites

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use