Jump to content

Recommended Posts

Идеи для модов

 

В данной теме обсуждаются идеи для создания новых модов, а так же для улучшения уже существующих.


Share this post


Link to post
Share on other sites

Несколько предложений по поводу разработки модов.

1. Выход из игры через "N" сек.

Было бы здорово сделать выход из игры через "N" секунд после того, как игрок нажал на кнопку выхода.
Это полезно для "PvP" серверов и карт, где игроки могут  мгновенно выходить нажав на кнопку выхода из игры.

 

2. Откат всех умений в момент использования скилла.

Уже был такой мод, если не ошибаюсь на збт какого-то проекта.

Некий вид антианимации. На самом деле считаю, что игра без анимации ударов/скиллов выглядит неказисто.

 

3. Добавление 3 уровней для ларька для торговли.

Через хекс game.exe можно заменить вид 1 или 2 уровня ларька при торговле и сделать его 3-им, но чтобы отображались все 3 уровня в зависимости от прокаченного уровня скилла, сделать так и не получилось.

 

4. Добавить возможность указывать ID временных питомцев.

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

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

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
1 минуту назад, aleksandr сказал:

1. Выход из игры через "N" сек.

Было бы здорово сделать выход из игры через "N" секунд после того, как игрок нажал на кнопку выхода.
Это полезно для "PvP" серверов и карт, где игроки могут  мгновенно выходить нажав на кнопку выхода из игры.

Дополню: ввести специальную функцию SetExitTime(map, time) и при инициализации карты в функцию config выставлять время каждой карте сколько на ней выход. 
Тогда вы сможете регулировать время на каждой карте. Ну и не будете заставлять игроков испытывать негативные эмоции при выходе на мирных картах.
Но придется апргейдить не только ГС и клиент, но еще и GateServer или ProxyServer или StallServer в зависимости от того, что вы используете. 
 

 

4 минуты назад, aleksandr сказал:

2. Откат всех умений в момент использования скилла.

Уже был такой мод, если не ошибаюсь на збт какого-то проекта.

Некий вид антианимации. На самом деле считаю, что игра без анимации ударов/скиллов выглядит неказисто.

Скорей всего был холд всех умений на миллисекунду) Не помню какие там подводные камни, но они были.

 

6 минут назад, aleksandr сказал:

4. Добавить возможность указывать ID временных питомцев.

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

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

Если память не изменяет то их минимум 5 дефолтно и Вы сами можете изменять ID моба, который будет призван. Только необходимо чтоб у моба в Character.txt были выставлены специальные параметры(AI_TYPE) чтоб моб отображался нормально на мини карте(последнее не точно, нужно смотреть).

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 1. Вот еще можно было бы сделать возможность выбора иконок для ги и что бы отображалось над персонажем рядом с названием гильдии
  • 2. Банк ги но я думаю что модом здесь не помочь 🙄. Но хотелось бы.🤗
  • 3. Возможность покупка товаров из игрового магазина за игровые предметы ( к примеру руна кель )
  • 4. Почта GM что бы когда гм не в сети, игрок мог отправить гм сообщение и по заходу в игру гм мог просмотреть данное сообщение. ( P/s что то как то бредово звучит ...... ну думаю вы меня поняли 🤣
  • 5. Кнопку под мини карту , при нажатии что бы открывалось внутриигровое окно со списком                    данжей и отсчетом реального времени до открытия данжа
  • 6. Иконки отображение наложенных бафов на персонажа
Edited by small666
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Интересует проблема просмотра\редактированием area карты. Через ямми это ад какой-то, да еще и не работает (у меня сложилось такое впечатление как минимум). Что если сделать Area банально через координаты. То есть примерно следующая строка:

 

AreaMapName(х_1, y_1, x_2, y_2, area_name)

 

Это скрасит новые локации, да и по лору очень поможет.

Edited by hokage
Немного не в тему модов написал предложения.
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Возможно ли сделать мод который бы ставил язык от клиента? т.е. если сервер мультиязычный где играют русские, англоязычные.
Чтобы не было все только на английском? 

  • Thanks 1

Share this post


Link to post
Share on other sites

Я думаю такой мод дал бы толчок к развитию зарубежных серверов, ру комьюнити более приветлево шло бы туда еслиб все по русски было

Share this post


Link to post
Share on other sites
В 23.02.2022 в 21:29, Venjik сказал:

пиратии нужны не моды, а новый движок

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

Share this post


Link to post
Share on other sites
On 2/23/2022 at 9:29 PM, Venjik said:

пиратии нужны не моды, а новый движок

Согласен с @Kst, если речь идет про улучшение графики. Когда мы переносили Аргент на Unity3D, то столкнулись с мнением, что это уже другая игра и её восприятие совсем иное.

 

On 3/3/2022 at 6:50 PM, Venjik said:

Возможно ли сделать мод который бы ставил язык от клиента? т.е. если сервер мультиязычный где играют русские, англоязычные.
Чтобы не было все только на английском? 

Нужно придумать как локализовывать строки, которые сервер присылает клиенту. Это строки, зашитые в GameServer.exe, а так же указанные в lua-скриптах. Честно, у меня сейчас нет идей как это нормально реализовать.


Share this post


Link to post
Share on other sites
16 минут назад, V3ct0r сказал:

Согласен с @Kst, если речь идет про улучшение графики. Когда мы переносили Аргент на Unity3D, то столкнулись с мнением, что это уже другая игра и её восприятие совсем иное.

 

Нужно придумать как локализовывать строки, которые сервер присылает клиенту. Это строки, зашитые в GameServer.exe, а так же указанные в lua-скриптах. Честно, у меня сейчас нет идей как это нормально реализовать.

Мы тоже столкнулись с тем что это сложно нормально реализовать. Как итог пришли к тому, что все строчки должны быть на стороне клиента, а сервер должен присылать ключ и значения для строчек(аргументы), а клиент в зависимости от выставленного языка будет выбирать строчку по ключу и подставлять аргументы. Таким образом мы будем экономить трафик и не будем вешать на сервер лишнюю логику по выбору языка. 

В основном проблема в таких функциях как Notice/GmNotice/MapNotice/ColorNotice(для корсаров)/SetMapEntryMapName/CreateEventEntity/GetItemName.
Функции Text/Talk  и все что связано с квестами перевести на стороне сервера не составляет трудностей. Но из-за вышеупомянутых функций приходится полностью пересматривать логику на хранение текста на стороне клиента.

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

Пока мы не дошли до полномасштабной разработки этой идеи и подводные камни сказать не могу.
 

Share this post


Link to post
Share on other sites

Мод с мультиязыком был реализован мной ещё пару лет назад.

Квесты\Нпсы\Предметы\Имена НПС\Монстров\Карты и все прочее что было необходимо для комфортной игры.

 

Почти все это делается, кстати, из под lua.

 

 

 

Edited by e1mer
  • Thanks 1

Share this post


Link to post
Share on other sites
1 час назад, e1mer сказал:

Мод с мультиязыком был реализован мной ещё пару лет назад.

Квесты\Нпсы\Предметы\Имена НПС\Монстров\Карты и все прочее что было необходимо для комфортной игры.

 

Почти все это делается, кстати, из под lua.

 

 

 

Тут вопрос в полном мультиязыке, который невозможно реализовать чисто на Lua. То о чем говоришь ты:

В 05.03.2022 в 09:05, Kara Online сказал:

Функции Text/Talk  и все что связано с квестами перевести на стороне сервера не составляет трудностей. Но из-за вышеупомянутых функций приходится полностью пересматривать логику на хранение текста на стороне клиента.

Да, это делается на Lua без особого труда. И на стороне клиента подсасывать "правильные" ItemInfo/CharacterInfo/SkillInfo/... в зависимости от выбранного языка пользователем при запуске игры или переключения на горячую. 

 

В 05.03.2022 в 09:05, Kara Online сказал:

В основном проблема в таких функциях как Notice/GmNotice/MapNotice/ColorNotice(для корсаров)/SetMapEntryMapName/CreateEventEntity/GetItemName.

Придется повторить еще раз:

Если посмотреть на реализацию Notice - она берет строку и бездумно отправляет всем Gate серверам без обработки. Gate сервера ничего не знаю про язык клиента или язык пользователя. Так же как и язык при инициализации NPC или инициализации любых Entity в которую передается ОДНО значение-строка и это должен быть КЛЮЧ, а клиент на своей стороне должен узнать этот ключ и вставить нужную строчку. Логика нормального человека работы с функцией Notice - берешь строку и параметры, кидаешь в клиента, клиент выбирает по ключу строчку нужную ему и сам расставляет параметры и выводит пользователю. Насколько мне известно - вы это не реализовали. 

 

Большая часть "нормального" мультиязыка сделана на 2.0 версии и там все строки являются ключами во всех файлах и есть большие словари для работы с языками, но как реализованы функции Notice или MapNotice мне не известно, скорей всего не в полной мере, как и реализация выше. 

 

Советую посмотреть нормальные проекты в нормальных движках и изучить как это работает там.
Задача реализованная на 99% не реализованная и выглядит примерно вот так:

Спойлер

kak-xodit-kostilyax-BA9218.png

 

По теме: в каком то  бородатом году @insider выкладывал некоторый "мод", о котором ты говоришь и который встречается в файлах сервера на видео примерно в 2017-2018 году. 

 

Не по теме: советую посмотреть тему, возьмите на вооружение. 

 

Edited by Kara Online

Share this post


Link to post
Share on other sites
On 3/5/2022 at 6:05 AM, Kara Online said:

Мы тоже столкнулись с тем что это сложно нормально реализовать. Как итог пришли к тому, что все строчки должны быть на стороне клиента, а сервер должен присылать ключ и значения для строчек(аргументы), а клиент в зависимости от выставленного языка будет выбирать строчку по ключу и подставлять аргументы. Таким образом мы будем экономить трафик и не будем вешать на сервер лишнюю логику по выбору языка. 

В основном проблема в таких функциях как Notice/GmNotice/MapNotice/ColorNotice(для корсаров)/SetMapEntryMapName/CreateEventEntity/GetItemName.
Функции Text/Talk  и все что связано с квестами перевести на стороне сервера не составляет трудностей. Но из-за вышеупомянутых функций приходится полностью пересматривать логику на хранение текста на стороне клиента.

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

Пока мы не дошли до полномасштабной разработки этой идеи и подводные камни сказать не могу.
 

Привет! А зачем в данном случае вообще тогда напрягать сервер? С таким же успехом перевод можно хранить на стороне клиента в подходящих папках, например ru, en, es, pt. Пользователь сам мог бы выбирать подходящий язык в настройках. Учитывая выбор игрока, вы могли бы подгружать перевод из подходящей папки. В каждой папке был бы файл с одним и тем же именем, например translation.json, при этом ключи были бы одинаковые. Чтобы отсеять недобросовестных конкурентов, файлы можно зашифровать.

 

Данный способ будет работать только если весь перевод будет лежать на стороне клиента.

Share this post


Link to post
Share on other sites
3 часа назад, Kara Online сказал:

Большая часть "нормального" мультиязыка сделана на 2.0 версии и там все строки являются ключами во всех файлах и есть большие словари для работы с языками, но как реализованы функции Notice или MapNotice мне не известно, скорей всего не в полной мере, как и реализация выше. 

 

Советую посмотреть нормальные проекты в нормальных движках и изучить как это работает там.
Задача реализованная на 99% не реализованная и выглядит примерно вот так:

  Показать контент

kak-xodit-kostilyax-BA9218.png

 

По теме: в каком то  бородатом году @insider выкладывал некоторый "мод", о котором ты говоришь и который встречается в файлах сервера на видео примерно в 2017-2018 году. 

 

 

 

 

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

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

 

Я видел как вы пытались реализовать мультиязык, через некоторое видео после публикации этого видео, ничего советовать и объяснять не буду, мне похер, я лишь говорю что большинство задач легко реализуемы, и их можно использовать, lua-sql тоже костыль для работы с бд, патчи релизнутых подсерверов и клиентов это тоже костыль, нормальные игры так не делают.

Share this post


Link to post
Share on other sites
1 час назад, patrick13 сказал:

Привет! А зачем в данном случае вообще тогда напрягать сервер? С таким же успехом перевод можно хранить на стороне клиента в подходящих папках, например ru, en, es, pt. Пользователь сам мог бы выбирать подходящий язык в настройках. Учитывая выбор игрока, вы могли бы подгружать перевод из подходящей папки. В каждой папке был бы файл с одним и тем же именем, например translation.json, при этом ключи были бы одинаковые. Чтобы отсеять недобросовестных конкурентов, файлы можно зашифровать.

 

Данный способ будет работать только если весь перевод будет лежать на стороне клиента.

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

Edited by Kara Online
  • Like 1

Share this post


Link to post
Share on other sites

Давайте уделим немного уважения Виктору и все сторонние вопросы решать вне данной темы :) Все последующие комментарии прошу постить только по теме.

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

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

 

Можно сделать шаблонный проект в котором будет всё необходимое для обработки пакета, формировании нового, создании lua функции и возможно готовые методы работы с функциями, к примеру класс Character или Actor. Такое же и на стороне клиента, тогда разработчики могли бы реализовывать собственные пакеты.

 

Как пример могу показать plugin-sdk для создании плагинов на основе GTA всех 3-ёх версий

https://github.com/DK22Pac/plugin-sdk

 

Если из конкретных модов, мог бы отметить полезность увеличения области видимости (убрать синие полосы), смена разрешения окна и фикс краша клиента при входе с Windows 10

Edited by Kst
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
On 3/6/2022 at 10:09 AM, e1mer said:

Мод с мультиязыком был реализован мной ещё пару лет назад.

Квесты\Нпсы\Предметы\Имена НПС\Монстров\Карты и все прочее что было необходимо для комфортной игры.

 

Почти все это делается, кстати, из под lua.

Привет! 

 

А как, например, локализовывать строки, "зашитые" в GameServer.exe? Это системные сообщения о погоде, о покупке и продаже предметов и многое другое. Так же на сцене выбора персонажей у тебя названия профессий персонажей отображаются только на русском языке - их отправляет GroupServer.exe "как есть" из базы данных. Как сервер узнает какой язык нужно использовать для того или иного клиента? 

 

22 hours ago, e1mer said:

Я видел как вы пытались реализовать мультиязык, через некоторое видео после публикации этого видео, ничего советовать и объяснять не буду, мне похер, я лишь говорю что большинство задач легко реализуемы, и их можно использовать, lua-sql тоже костыль для работы с бд, патчи релизнутых подсерверов и клиентов это тоже костыль, нормальные игры так не делают.

Каковы критерии для оценивания нормальности игры? Существует много игр с развитым сообществом моддеров, например, GTA: SA (особенно SAMP), TES, The Witcher, CS 1.6 и прочие. Пиратия в этом плане ничем не хуже, тем более все эти патчи и моды работают на протяжении многих лет и в полной мере выполняют свои задачи.

 

12 hours ago, Kst said:

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

Такой шаблон есть:

 

12 hours ago, Kst said:

Можно сделать шаблонный проект в котором будет всё необходимое для обработки пакета, формировании нового, создании lua функции и возможно готовые методы работы с функциями, к примеру класс Character или Actor. Такое же и на стороне клиента, тогда разработчики могли бы реализовывать собственные пакеты.

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

 

14 hours ago, patrick13 said:

Давайте уделим немного уважения Виктору и все сторонние вопросы решать вне данной темы :) Все последующие комментарии прошу постить только по теме.

Благодарю!

  • Like 1

Share this post


Link to post
Share on other sites

Идея:

Ввести функции (на серверной части):

1. Есть ли вещь в банке;

2. Удалить вещь в банке.

Share this post


Link to post
Share on other sites

@V3ct0r Приветствую!

Есть ли возможность добавить мод на прокачку характеристик персонажа зажатием мыши?

 

Share this post


Link to post
Share on other sites
25 минут назад, 1nosensio сказал:

@V3ct0r Приветствую!

Есть ли возможность добавить мод на прокачку характеристик персонажа зажатием мыши?

 

Напиши дискорд, могу помочь.

Share this post


Link to post
Share on other sites

1. Monster drop info - возможность открытии вкладки дропа монстров при наведении на монстра 

2. Увеличение количества слотов в банке, ( или добавление новых вкладок банка)

 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

@V3ct0r Добрый вечер. Будут ли создаваться новые моды? Посмотрел активность открытых репозиториев, последняя от 29 августа.. Немного грустно((

  • Thanks 1

Share this post


Link to post
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.

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.


×
×
  • Create New...