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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

Как узнать ItemID


Гость QuiteUnknown

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LogInfo( "itemID: ", itemID )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

З.Ы.

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

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

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

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

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

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

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

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

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

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

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

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