Перейти к содержанию
Авторизация  
lvlkoo

Способы realtime выдачи предметов персонажу

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

Здравствуйте, уважаемые формучане.

Меня интересует следующий вопрос: какие существую способы доставки предметов пресонажу, а так же способы делать это realtime? На сколько они универсальные, или на каждой сборке, они очень разнятся?

Наверное самый прямой способ это инсертить\инкрементить напрямую  в таблицу items. Персонаж получит предмет после перезахода. 

Еще один способ это таблица character_items, предметы появятся в инвентаре тоже после перезахода.

Еще я слышал о таблице character_items_delayed, которая, существует на некоторых сборках. Но как обрабатывается она сервером, я не знаю. Предметы появятся в инвентаре после после перезахода или в реалтайме?

Самым универсальным и удобным способом считаю telnet - удобно, просто, одна команда - предмет сразу в инвентаре. Но на сколько он действительно универсален? Все ли ява сборки поддерживают telent подключение? На сколько это безопасно?

 

Какие еще есть способы? Всем заранее  спасибо за ответы\советы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, lvlkoo сказал:

Здравствуйте, уважаемые формучане.

Меня интересует следующий вопрос: какие существую способы доставки предметов пресонажу, а так же способы делать это realtime? На сколько они универсальные, или на каждой сборке, они очень разнятся?

Наверное самый прямой способ это инсертить\инкрементить напрямую  в таблицу items. Персонаж получит предмет после перезахода. 

Еще один способ это таблица character_items, предметы появятся в инвентаре тоже после перезахода.

Еще я слышал о таблице character_items_delayed, которая, существует на некоторых сборках. Но как обрабатывается она сервером, я не знаю. Предметы появятся в инвентаре после после перезахода или в реалтайме?

Самым универсальным и удобным способом считаю telnet - удобно, просто, одна команда - предмет сразу в инвентаре. Но на сколько он действительно универсален? Все ли ява сборки поддерживают telent подключение? На сколько это безопасно?

 

Какие еще есть способы? Всем заранее  спасибо за ответы\советы

На некоторых сборках реализовано кэширование определённой таблицы каждые N минут.
В данную таблице  id,char_id, item_id , count.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, OurLastNight сказал:

На некоторых сборках реализовано кэширование определённой таблицы каждые N минут.
В данную таблице  id,char_id, item_id , count.

Можете назвать пример сборки, на которой это реализовано?

Изменено пользователем lvlkoo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, lvlkoo сказал:

Можете назвать пример сборки, на которой это реализовано?

https://yadi.sk/d/9zk025IQ3QTq9t
Rebellion
Так-же в шаре есть старая сборка pain-team и в ней тоже есть такая штучка.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
24 минуты назад, lvlkoo сказал:

Здравствуйте, уважаемые формучане.

Меня интересует следующий вопрос: какие существую способы доставки предметов пресонажу, а так же способы делать это realtime? На сколько они универсальные, или на каждой сборке, они очень разнятся?

Наверное самый прямой способ это инсертить\инкрементить напрямую  в таблицу items. Персонаж получит предмет после перезахода. 

Еще один способ это таблица character_items, предметы появятся в инвентаре тоже после перезахода.

Еще я слышал о таблице character_items_delayed, которая, существует на некоторых сборках. Но как обрабатывается она сервером, я не знаю. Предметы появятся в инвентаре после после перезахода или в реалтайме?

Самым универсальным и удобным способом считаю telnet - удобно, просто, одна команда - предмет сразу в инвентаре. Но на сколько он действительно универсален? Все ли ява сборки поддерживают telent подключение? На сколько это безопасно?

 

Какие еще есть способы? Всем заранее  спасибо за ответы\советы

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

Поделиться сообщением


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

В каждой сборке есть выдача администратором предмета игроку, на некоторых есть выдача всем игрокам. Рассматривайте этот вариант, он и есть реалтаймовый с сохранением в базу. Если нет выдачи всем игрокам, то опять же смотрите реализацию выдачи и путем выборки всех игроков онлайн в коллекцию, проходите циклом по коллекции и применяйте данные действия по выдаче предмета каждому игроку.

Поделиться сообщением


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

 

19 минут назад, SmokiMo сказал:

В каждой сборке есть выдача администратором предмета игроку, на некоторых есть выдача всем игрокам. Рассматривайте этот вариант, он и есть реалтаймовый с сохранением в базу. Если нет выдачи всем игрокам, то опять же смотрите реализацию выдачи и путем выборки всех игроков онлайн в коллекцию, проходите циклом по коллекции и применяйте данные действия по выдаче предмета каждому игроку.

Нет, нет, меня наверно не так поняли. Меня интересует способы для выдачи из внешних систем, к примеру веб донат модуль, или что-то подобное. 

Поделиться сообщением


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

Понял, тогда есть аналогия, выдача наград за голосования в топах. Вы создаете цикл с таймером, допустим 10 минут, который раз проверяет таблицу (в которую вы ранее отправили данные с именем/чаридом игрока и информации о выдаваемом предмете. И если такой игрок в сети, то выдаете ему по типу, что я описал ранее, если нет, то просто отправляете эту информацию в таблицу с items и соответственно затираете эти данные в той таблице, где хранилась информация. Или же telnet, как уже предложили выше

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 часов назад, SmokiMo сказал:

Понял, тогда есть аналогия, выдача наград за голосования в топах. Вы создаете цикл с таймером, допустим 10 минут, который раз проверяет таблицу (в которую вы ранее отправили данные с именем/чаридом игрока и информации о выдаваемом предмете. И если такой игрок в сети, то выдаете ему по типу, что я описал ранее, если нет, то просто отправляете эту информацию в таблицу с items и соответственно затираете эти данные в той таблице, где хранилась информация. Или же telnet, как уже предложили выше

И опять чуть чуть не то. Я знаю что все проблемы решаемы, при наличии исходников, но я сейчас не говорю конкретно об одном проекте. К примеру, веб донат модуль или сервис, который на правленый на широкое распространение, которому необходимо обеспечить максимальную поддержку большинства популярных сборок, с помощью какого-то механизма выдачи предметов. То есть нужно проработать все популярные варианты, вон тут и вопрос, на сколько этих вариантов много, быть команды разработчиков делают все как у других, и опять же вопрос на сколько универсален и безопасен telnet.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, lvlkoo сказал:

И опять чуть чуть не то. Я знаю что все проблемы решаемы, при наличии исходников, но я сейчас не говорю конкретно об одном проекте. К примеру, веб донат модуль или сервис, который на правленый на широкое распространение, которому необходимо обеспечить максимальную поддержку большинства популярных сборок, с помощью какого-то механизма выдачи предметов. То есть нужно проработать все популярные варианты, вон тут и вопрос, на сколько этих вариантов много, быть команды разработчиков делают все как у других, и опять же вопрос на сколько универсален и безопасен telnet.

Для каждой сборки по разному. Но в основном это items_delayed или character_donate.
Возьмите скрипт юнитпея и посмотрите как там и что происходит.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, lvlkoo сказал:

И опять чуть чуть не то. Я знаю что все проблемы решаемы, при наличии исходников, но я сейчас не говорю конкретно об одном проекте. К примеру, веб донат модуль или сервис, который на правленый на широкое распространение, которому необходимо обеспечить максимальную поддержку большинства популярных сборок, с помощью какого-то механизма выдачи предметов. То есть нужно проработать все популярные варианты, вон тут и вопрос, на сколько этих вариантов много, быть команды разработчиков делают все как у других, и опять же вопрос на сколько универсален и безопасен telnet.

Способ который описал вам я, не нуждается в исходном коде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, SmokiMo сказал:

Способ который описал вам я, не нуждается в исходном коде.

Видимо я Вас не так понял, разве вы говорили не о таймере в плане реализации в самом ГС? Тогда просто не пойму какой в этом смысл, если по таймеру инсертить в items, когда персонажу все равно придется пере зайти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, lvlkoo сказал:

Видимо я Вас не так понял, разве вы говорили не о таймере в плане реализации в самом ГС? Тогда просто не пойму какой в этом смысл, если по таймеру инсертить в items, когда персонажу все равно придется пере зайти.

Перечитайте внимательно мои сообщения, я же сказал вам, что инсертить в итемс в том случае, если игрок не находится в сети, а если в сети, то выдавать ему методом как в админке (например)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 14.12.2017 в 19:50, lvlkoo сказал:

Можете назвать пример сборки, на которой это реализовано?

любая на базе Phoenix/Overworld/Lostworld

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

Смотри и изучай вобщем класс DelayedItemsManager в ядре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, Gaikotsu сказал:

Смотри и изучай в общем класс DelayedItemsManager в ядре.

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

Поделиться сообщением


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

ну дык я и советую посмотреть как это там реализовано

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

Изменено пользователем Gaikotsu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, Gaikotsu сказал:

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

Да, безусловно, я это понимаю, но дело в том что не все сборки имеют такую реализацию

Поделиться сообщением


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

На базе Phoenix/Overworld/Lostworld все - так что там можно сказать все это унифицированно, т.к. большинство тех кто делает сборки на основе Phoenix/Overworld/Lostworld данные механизмы не трогают/не меняют.

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

  • Upvote 1

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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