Jump to content
Sign in to follow this  
BETEP/macs509

Выносим перевод во внешние файлы

Recommended Posts

Еще одна из старых наработок. Позволяет вынести весь перевод 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

Edited by BETEP/macs509

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×