Jump to content

BETEP/macs509

Community
  • Content Count

    258
  • Joined

  • Last visited

  • Days Won

    28

Posts posted by BETEP/macs509


  1. Argent City Technical Demo

    Данной работой занимались в течении 2х недель 2 человека. Весь используемый софт изучался с нуля и был запущен первый раз. Эта работа проделана для демонстрации того, как могла бы выглядеть игра на современном движке. Суточный цикл длится 4 минуты.

     

    https://drive.google.com/open?id=18GPlF822f5PdlD6wbeZ-srVGWOvHwIlm

     

    https://yadi.sk/d/kp1GYekH3PyQIg

     

    _40afbe705421d91802555f4e5914c8c8.jpeg

    _4284c8cdc3cdc9b537d34ffe2b7784e3.jpeg

     

    _7e515ccedba2d9a200dc3be28bdbad45.jpeg

    _02e59796b85527d479cc0556be3d51e0.jpeg

    _f3e6d0b5abad780feb86a793336afd05.jpeg

     

    Авторы: @V3ct0r и @BETEP/macs509

     

     

    Just now, V3ct0r said:

    Выкладываем исходный проект Unity3D для данного демо.

     

    Проект разрабатывался на версии Unity3D 2018.2.11f1, но так же открывается и запускается на более поздних версиях, например, 2022.3.13f1.

    image.png

     

    Выкладывается "как есть" и не претендует на качественное исполнение.

     

    Скачать (Google Drive) - 117,5 Мб

    • Like 5
    • Thanks 1

  2. Ну поставить проверку если одет плащ то при завершении поссейшена возвращать скорректированные статы.
    function State_JLFT_Rem ( role , sklv )
    local statelv_плащ = GetChaStateLv ( role , STATE_плащ ) -- узнать уровень эффекта плаща

    local statelv_предмет_дающий_стат = GetChaStateLv ( role , STATE_предмет_дающий_стат ) -- узнать уровень эффекта дающий стат
    local укажим_кол-во_стата = statelv_bbring1 * 5

    local statistika = 0 + bring1 -- сложим все бонусы
    SystemNotice ( role , "Возвращено силы: "..statistika) --выведем после окончания поса
    SetCharaAttr(statistika ,role , ATTR_STATEV_STR) - сбросим силу после поса с корректировкой на плащ

    • Thanks 2

  3. Что такое мистическая сила? Рб пасивка? Если да то люди делают 2 способами либо измененной книжкой, которые выдают в стандартной функции GiveItem_zsbookX где х-номер функции выдачи перерождения. Либо увеличивают уровень навыка после всех проверок       
    local sk_add = SK_ZSSL
    AddChaSkill ( role , sk_add , 2 , 2 , 0 )

    Все перерождения выше 1 делаются очень легко на примере первого, просто увеличиваешь уровень самого рб AddSailExp(role, npc , 1 , 1 ) в каждом рб, увеличиваешь уровень навыков, активного и пасивки (можно у без книжек, кому как удобно). И не забываешь проверку на навык свадьбы, что бы не удалялся. Точнее он удалится, чтобы по выполнению условий он заново изучился.

    • Like 1

  4. Ну я ради интереса статы менял так:
    указал разброс статов в интеминфо, потом переделал функцию которая определяет уровень рарности. Ну и управлял статами так:
    7755(id),1(кол-во),55(редкость) = 5 статов в шмотке. 
    7755(id),1(кол-во),56(редкость) = 6 статов в шмотке ну и т.д.


  5. @V3ct0r я вообще думаю сделать вот так :

     

    Условие если квест пройден то:  textlocal = "Привет "

    если нету то: textlocal  = "Hello "
    Talk( 1, textlocal )

    Но такую проверку я не смог сделать, пока думаю как еще можно проверить
     


  6. Еще одна из старых наработок. Позволяет вынести весь перевод NPC/квестов во внешние файлы. Описание пишу по памяти, возможны неточности. Ответственности за последствия не несу.

    Q: Зачем?
    A: По пунктам:

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

    Q: Как?
    A: Перво-наперво качаем GameServer.exe: http://www.mediafire.com/file/mvwx84gs3c1pfs8/GameServer.rar
    Затем: http://www.mediafire.com/file/k1m4dwlgwrmk3r7/L10n.rar
    Распаковываем содержимое архива в /resource/script/

     

    Затем открываем /resource/script/MisScript/ScriptDefine.lua и первой строкой добавляем:

    L10n_init(true) -- true в данном случае означает, что при запуске сервера нужно сдампить диалоги/квесты в файлы

    Сохраняем, запускаем Game Server (даже без Account/Group/Gate) и ждем его полной загрузки. Для всех карт поочередно.
    Вновь открываем /resource/script/MisScript/ScriptDefine.lua и меняем true на false (нам ведь не надо, чтобы диалоги дампились каждый раз, затирая все наши наработки по переводу):

     

    L10n_init(false)

    Теперь можно, собственно, переводить.

    Q: Где находится перевод?
    A: Перевод квестов находится в /resource/script/L10n/Mission/
    Внутри следующие файлы:

    • {id}.txt — название квеста
    • {id}_begin.txt — сообщение при взятии квеста
    • {id}_help.txt — сообщение в процессе квеста
    • {id}_result.txt — сообщение при сдаче квеста

    Перевод диалогов находится в /resource/script/L10n/Npc/
    Внутри папки с именами-названиями функций каждого Npc.
    Внутри этих папок, в свою очередь, папки с названиями вида page{страница_диалога}.
    И в самом конце уже файлы:

    • {i}_talk.txt — текст диалога
    • {i}_text.txt — текст пункта выбора
    • ...
    • {i}_text.txt — текст пункта выбора
    • Где {i} — порядковый номер каждого пункта.


    Так же внутри каждой папки page{страница_диалога} есть файл missions.txt. Он содержит id квестов этого NPC. Не используется сервером, но требуется для редактирования перевода квестов через редактор.

    Q: Демон, откуда ты все это знаешь?
    A: Дык друзья

    Q: Моего вопроса здесь нет, как быть?
    A: Задавайте в теме.

    Enjoy!

    Редактор для облегчения редактирования перевода: http://www.mediafire.com/file/4kkwg3tlqtvgacf/editor.rar
    Создаем MySQL базу. Выполняем в нее дамп из архива. Настраиваем config.php.
    В папку со скриптом кладем полную папку resource с сервера с уже задампленными диалогами, ну и, собственно, переводим.

    Ни в коем случае не ставить на основной веб-сервер, вас очень легко могут хакнуть (скрипт не проверяет никаких входных данных). И не говорите, что не предупреждал.

    by insider


  7. Наверное все слышали о таком баге, что игроки выкидывают морской мануфак с суши и подбирают его в трюм корабля. Он становится бесконечным, пока вы не сойдете на сушу.

    Вот сам фикс:

    Ищем все _Begin и _End функции мануфака. Из _Begin удаляем:Код (C (Unknown Language)):

    local item_count = CheckBagItem(atk_role, _ид_предмета_данного_мануфака_)
    
    if item_count <= 0 then
    
        SkillUnable(atk_role)
    
        SystemNotice(atk_role, "Does not possess required item to use skill")
    
    end
    
    local a = DelBagItem(atk_role, _ид_предмета_данного_мануфака_, 1)

    Дописываем в каждую _End функцию после проверки на KitbagLock:

    local atk_role = TurnToCha(ATKER)
    
    local item_count = CheckBagItem(atk_role, _ид_предмета_данного_мануфака_)
    
    if item_count <= 0 then
    
        SkillUnable(atk_role)
    
        SystemNotice(atk_role, "Does not possess required item to use skill")
    
        return 0
    
    end
    
    DelBagItem(atk_role, _ид_предмета_данного_мануфака_, 1)

    Вот и весь фикс.
     

    ©Insider


  8. В той теме полезного нету.
     Сделал диалоги по другому, у нпс выбор кликнул на 1, присвоен рекорд, он же и во всех нпс проверяется, в любой момент можно сменить язык, нажал - старый рекорд удалился, новый записался.

    И вот думаю, можно ли как то облегчить конструкцию диалогов нпс, что бы грубо говоря не было полного кода на одном языке и на другом в одной функции, а как то менять строки или что то в этом роде.
    Например для рус языка функция называется function noob_talk01(), а для англ function noob_talk01_1(), есть ли мысли по этому поводу?


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

    Непонятно:

    Как сделать название нпс/монстров (чарактер берет серверные имена, хотя я думал клиентский файл).

    Те системные сообщение которые хранятся в res гс.
    Те системные что выводятся при юзе предмета, форже и т.д  которые хранятся в lua. Тут есть мысль что бы добавить столбец в бд и при регистрации или в лк выбирать типо 0 - рус, 1 англ. Но вот как дальше считать это не совсем понятно.

    Может есть какие предположения, идеи, мысли?

     

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


  10. 12 часов назад, RedMAN сказал:

    По поводу бага с голдой - цена предмета у нпс не должна быть даже более 10кк. Если цена нужна выше ,то ставить следует только обмен

    В архиве маиндева, был фикс. На 2+ всё норм.
     

     

    52 минуты назад, rsprince сказал:

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

    Включай сервер, попробуем.


  11. я же писал где то что в MindPower проблема и где именно, только я не мог это исправить, попросил пару те кто могли бы, но как видите реакции не последовало. У меня кстати норм работает. 
    И такой вопрос сразу как сделать что бы папки не создавались log1 и т.д. при запуске.


  12. Там кажется с рыком на чампе + еще 1 перс можно почти любого босса забагать, что бы он стоял но не атаковал, если честно я даже не искал почему так работает. Где то в 2012 на трех приватках проверял, работало. Да зависания от музыки.


  13. Ну и еще всякую мелочь вспомнил.
    Функцию работы поссейшена нужно править, что бы она корректно работала с темы усилениями которые действуют на персонажа (всякие ауры и т.д.).
    Восполнение хп от кука должно быть не полное, а только на то количество что оно прибавляет, это исправлено в 2+.

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

    В продаже в церки не должно быть маленьких монстров.

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

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

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

×
×
  • Create New...