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

New program for writers

We turn from quantity to quality and tell you how we will supplement the Allods Team program with rewards in rubles.

More

The new Updater

Let us to introduce the new addon updater software and to share the details

Read more

Alloder 2.0

We have started the process of project evolve, and this relates not only, and not even primarily of the site's view

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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