lvlkoo 190 Опубликовано 14 декабря, 2017 Здравствуйте, уважаемые формучане. Меня интересует следующий вопрос: какие существую способы доставки предметов пресонажу, а так же способы делать это realtime? На сколько они универсальные, или на каждой сборке, они очень разнятся? Наверное самый прямой способ это инсертить\инкрементить напрямую в таблицу items. Персонаж получит предмет после перезахода. Еще один способ это таблица character_items, предметы появятся в инвентаре тоже после перезахода. Еще я слышал о таблице character_items_delayed, которая, существует на некоторых сборках. Но как обрабатывается она сервером, я не знаю. Предметы появятся в инвентаре после после перезахода или в реалтайме? Самым универсальным и удобным способом считаю telnet - удобно, просто, одна команда - предмет сразу в инвентаре. Но на сколько он действительно универсален? Все ли ява сборки поддерживают telent подключение? На сколько это безопасно? Какие еще есть способы? Всем заранее спасибо за ответы\советы Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ffffffffffffffffff 643 Опубликовано 14 декабря, 2017 10 минут назад, lvlkoo сказал: Здравствуйте, уважаемые формучане. Меня интересует следующий вопрос: какие существую способы доставки предметов пресонажу, а так же способы делать это realtime? На сколько они универсальные, или на каждой сборке, они очень разнятся? Наверное самый прямой способ это инсертить\инкрементить напрямую в таблицу items. Персонаж получит предмет после перезахода. Еще один способ это таблица character_items, предметы появятся в инвентаре тоже после перезахода. Еще я слышал о таблице character_items_delayed, которая, существует на некоторых сборках. Но как обрабатывается она сервером, я не знаю. Предметы появятся в инвентаре после после перезахода или в реалтайме? Самым универсальным и удобным способом считаю telnet - удобно, просто, одна команда - предмет сразу в инвентаре. Но на сколько он действительно универсален? Все ли ява сборки поддерживают telent подключение? На сколько это безопасно? Какие еще есть способы? Всем заранее спасибо за ответы\советы На некоторых сборках реализовано кэширование определённой таблицы каждые N минут. В данную таблице id,char_id, item_id , count. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lvlkoo 190 Опубликовано 14 декабря, 2017 (изменено) 3 минуты назад, OurLastNight сказал: На некоторых сборках реализовано кэширование определённой таблицы каждые N минут. В данную таблице id,char_id, item_id , count. Можете назвать пример сборки, на которой это реализовано? Изменено 14 декабря, 2017 пользователем lvlkoo Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ffffffffffffffffff 643 Опубликовано 14 декабря, 2017 4 минуты назад, lvlkoo сказал: Можете назвать пример сборки, на которой это реализовано? https://yadi.sk/d/9zk025IQ3QTq9t Rebellion Так-же в шаре есть старая сборка pain-team и в ней тоже есть такая штучка. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Falkland 51 Опубликовано 14 декабря, 2017 24 минуты назад, lvlkoo сказал: Здравствуйте, уважаемые формучане. Меня интересует следующий вопрос: какие существую способы доставки предметов пресонажу, а так же способы делать это realtime? На сколько они универсальные, или на каждой сборке, они очень разнятся? Наверное самый прямой способ это инсертить\инкрементить напрямую в таблицу items. Персонаж получит предмет после перезахода. Еще один способ это таблица character_items, предметы появятся в инвентаре тоже после перезахода. Еще я слышал о таблице character_items_delayed, которая, существует на некоторых сборках. Но как обрабатывается она сервером, я не знаю. Предметы появятся в инвентаре после после перезахода или в реалтайме? Самым универсальным и удобным способом считаю telnet - удобно, просто, одна команда - предмет сразу в инвентаре. Но на сколько он действительно универсален? Все ли ява сборки поддерживают telent подключение? На сколько это безопасно? Какие еще есть способы? Всем заранее спасибо за ответы\советы Ну универсально сразу под все сборки из коробки вряд ли получится сделать, а вот посмотреть, как это сделано в telnet, и сделать более менее универсальный модуль выдачи предмета по запросу, это уже можно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 14 декабря, 2017 В каждой сборке есть выдача администратором предмета игроку, на некоторых есть выдача всем игрокам. Рассматривайте этот вариант, он и есть реалтаймовый с сохранением в базу. Если нет выдачи всем игрокам, то опять же смотрите реализацию выдачи и путем выборки всех игроков онлайн в коллекцию, проходите циклом по коллекции и применяйте данные действия по выдаче предмета каждому игроку. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lvlkoo 190 Опубликовано 14 декабря, 2017 19 минут назад, SmokiMo сказал: В каждой сборке есть выдача администратором предмета игроку, на некоторых есть выдача всем игрокам. Рассматривайте этот вариант, он и есть реалтаймовый с сохранением в базу. Если нет выдачи всем игрокам, то опять же смотрите реализацию выдачи и путем выборки всех игроков онлайн в коллекцию, проходите циклом по коллекции и применяйте данные действия по выдаче предмета каждому игроку. Нет, нет, меня наверно не так поняли. Меня интересует способы для выдачи из внешних систем, к примеру веб донат модуль, или что-то подобное. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 14 декабря, 2017 Понял, тогда есть аналогия, выдача наград за голосования в топах. Вы создаете цикл с таймером, допустим 10 минут, который раз проверяет таблицу (в которую вы ранее отправили данные с именем/чаридом игрока и информации о выдаваемом предмете. И если такой игрок в сети, то выдаете ему по типу, что я описал ранее, если нет, то просто отправляете эту информацию в таблицу с items и соответственно затираете эти данные в той таблице, где хранилась информация. Или же telnet, как уже предложили выше Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 14 декабря, 2017 например в pwsoft уже реализовано, исходник в шаре Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lvlkoo 190 Опубликовано 15 декабря, 2017 16 часов назад, SmokiMo сказал: Понял, тогда есть аналогия, выдача наград за голосования в топах. Вы создаете цикл с таймером, допустим 10 минут, который раз проверяет таблицу (в которую вы ранее отправили данные с именем/чаридом игрока и информации о выдаваемом предмете. И если такой игрок в сети, то выдаете ему по типу, что я описал ранее, если нет, то просто отправляете эту информацию в таблицу с items и соответственно затираете эти данные в той таблице, где хранилась информация. Или же telnet, как уже предложили выше И опять чуть чуть не то. Я знаю что все проблемы решаемы, при наличии исходников, но я сейчас не говорю конкретно об одном проекте. К примеру, веб донат модуль или сервис, который на правленый на широкое распространение, которому необходимо обеспечить максимальную поддержку большинства популярных сборок, с помощью какого-то механизма выдачи предметов. То есть нужно проработать все популярные варианты, вон тут и вопрос, на сколько этих вариантов много, быть команды разработчиков делают все как у других, и опять же вопрос на сколько универсален и безопасен telnet. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ffffffffffffffffff 643 Опубликовано 15 декабря, 2017 6 минут назад, lvlkoo сказал: И опять чуть чуть не то. Я знаю что все проблемы решаемы, при наличии исходников, но я сейчас не говорю конкретно об одном проекте. К примеру, веб донат модуль или сервис, который на правленый на широкое распространение, которому необходимо обеспечить максимальную поддержку большинства популярных сборок, с помощью какого-то механизма выдачи предметов. То есть нужно проработать все популярные варианты, вон тут и вопрос, на сколько этих вариантов много, быть команды разработчиков делают все как у других, и опять же вопрос на сколько универсален и безопасен telnet. Для каждой сборки по разному. Но в основном это items_delayed или character_donate. Возьмите скрипт юнитпея и посмотрите как там и что происходит. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lvlkoo 190 Опубликовано 15 декабря, 2017 19 часов назад, OurLastNight сказал: https://yadi.sk/d/9zk025IQ3QTq9t Огромное спасибо за ссылочку, очень полезная Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 15 декабря, 2017 2 часа назад, lvlkoo сказал: И опять чуть чуть не то. Я знаю что все проблемы решаемы, при наличии исходников, но я сейчас не говорю конкретно об одном проекте. К примеру, веб донат модуль или сервис, который на правленый на широкое распространение, которому необходимо обеспечить максимальную поддержку большинства популярных сборок, с помощью какого-то механизма выдачи предметов. То есть нужно проработать все популярные варианты, вон тут и вопрос, на сколько этих вариантов много, быть команды разработчиков делают все как у других, и опять же вопрос на сколько универсален и безопасен telnet. Способ который описал вам я, не нуждается в исходном коде. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lvlkoo 190 Опубликовано 15 декабря, 2017 1 минуту назад, SmokiMo сказал: Способ который описал вам я, не нуждается в исходном коде. Видимо я Вас не так понял, разве вы говорили не о таймере в плане реализации в самом ГС? Тогда просто не пойму какой в этом смысл, если по таймеру инсертить в items, когда персонажу все равно придется пере зайти. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 15 декабря, 2017 3 часа назад, lvlkoo сказал: Видимо я Вас не так понял, разве вы говорили не о таймере в плане реализации в самом ГС? Тогда просто не пойму какой в этом смысл, если по таймеру инсертить в items, когда персонажу все равно придется пере зайти. Перечитайте внимательно мои сообщения, я же сказал вам, что инсертить в итемс в том случае, если игрок не находится в сети, а если в сети, то выдавать ему методом как в админке (например) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 17 декабря, 2017 В 14.12.2017 в 19:50, lvlkoo сказал: Можете назвать пример сборки, на которой это реализовано? любая на базе Phoenix/Overworld/Lostworld там имеется работа с отдельной таблицей item_delayed в которую можно добавлять записи на выдачу предметов и которую сервер проверяет на наличие новых записей с определенной периодичностью. Смотри и изучай вобщем класс DelayedItemsManager в ядре. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lvlkoo 190 Опубликовано 17 декабря, 2017 5 минут назад, Gaikotsu сказал: Смотри и изучай в общем класс DelayedItemsManager в ядре. К сожалению меня не интересует реализация подобного механизма, и техническая составляющая. Как я писал выше, мне нужно знать какие есть уже реализованые механизмы в популярных сборках, для обращения из внешнего сервиса, который должен обрабатывать все возможные варианты Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 17 декабря, 2017 (изменено) ну дык я и советую посмотреть как это там реализовано и да - это как раз механизм для реалтаймового добавления предметов для любого внешнего сервиса - скрипты сайта, админки или еще чего подобного - добавил чем угодно запись в эту таблицу, а сервер уже это обработает как надо и выдаст игроку в онлайне (или при входе в игру если игрока в этот момент нет в игре). Изменено 17 декабря, 2017 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lvlkoo 190 Опубликовано 17 декабря, 2017 5 минут назад, Gaikotsu сказал: и да - это как раз механизм для реалтаймового добавления предметов для любого внешнего сервиса - скрипты сайта, админки или еще чего подобного - добавил чем угодно запись в эту таблицу, а сервер уже это обработает как надо и выдаст игроку в онлайне (или при входе в игру если игрока в этот момент нет в игре). Да, безусловно, я это понимаю, но дело в том что не все сборки имеют такую реализацию Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 17 декабря, 2017 На базе Phoenix/Overworld/Lostworld все - так что там можно сказать все это унифицированно, т.к. большинство тех кто делает сборки на основе Phoenix/Overworld/Lostworld данные механизмы не трогают/не меняют. На базе лыжи... там вроде с этим все печальней - в чистой лыже вроде как такого функционала нет, так что если что и есть в сборках на ее основе, то уже такое какое захотелось сделать тому кто пилит сборку, т.е. по сути вразнобой. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты