yutaro21 Опубликовано 3 апреля, 2015 Жалоба Поделиться Опубликовано 3 апреля, 2015 (изменено) Задумал сделать многоязычных НЦП(точнее русский/английский).Хочу, что бы НЦП могли при определенном параметре на русском общаться или на английском.как понимаю в скрипте(каждого диалога) необходимо добавить проверку на какой то параметр и в случае его выполнения 1 ветка(на русском языке), а иначе 2 ветка диалога(на английском).Посоветуйте пожалуйста какой параметр можно применить для проверки и как его реализовать.Как вариант можно добавить проверку на наличие какого то предмета у игрока(русско-английский словарь *смеется*). Изменено 3 апреля, 2015 пользователем yutaro21 Ссылка на комментарий Поделиться на другие сайты Поделиться
yutaro21 Опубликовано 3 апреля, 2015 Автор Жалоба Поделиться Опубликовано 3 апреля, 2015 вариант 2 пройти какой нибудь квест!? Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 3 апреля, 2015 Жалоба Поделиться Опубликовано 3 апреля, 2015 После создании персонажа спрашивать который язык егоOnPCLoginEvent:if(firstlogin){ mes "Choose your language"; mes "Выбери свой язык"; set lang, select("English:Русский"); set firstlogin, 1; close;}После этого переменную lang и проверяй, чтобы узнать какой язык у игрока. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
yutaro21 Опубликовано 3 апреля, 2015 Автор Жалоба Поделиться Опубликовано 3 апреля, 2015 (изменено) После создании персонажа спрашивать который язык егоOnPCLoginEvent:if(firstlogin){mes "Choose your language";mes "Выбери свой язык";set lang, select("English:Русский");set firstlogin, 1;close;}После этого переменную lang и проверяй, чтобы узнать какой язык у игрока.Хороший вариант, но если в последствии игрок захочет сменить, то без квеста или админа ни как, но с меня в любом случае +1Только не могу понять, где это прописать(в скриптах,конфигах)? Изменено 3 апреля, 2015 пользователем yutaro21 Ссылка на комментарий Поделиться на другие сайты Поделиться
yutaro21 Опубликовано 3 апреля, 2015 Автор Жалоба Поделиться Опубликовано 3 апреля, 2015 После создании персонажа спрашивать который язык егоOnPCLoginEvent:if(firstlogin){mes "Choose your language";mes "Выбери свой язык";set lang, select("English:Русский");set firstlogin, 1;close;}После этого переменную lang и проверяй, чтобы узнать какой язык у игрока.Как я понимаю в mysql так, же требуется в таблице login создать дополнительный столбец для данной переменной? Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 3 апреля, 2015 Жалоба Поделиться Опубликовано 3 апреля, 2015 Это кусок скрипта. Можешь поставить нпц, который по аналогии позволит сменить язык.В базу ничего не надо прописывать, это будет переменная, привязанная к персонажу (можно еще использовать #firstlogin и #lang, чтобы к аккаунту привязать) и автоматом в базу (таблица mapreg если память не изменяет) запишется и там храниться будет. Ссылка на комментарий Поделиться на другие сайты Поделиться
yutaro21 Опубликовано 3 апреля, 2015 Автор Жалоба Поделиться Опубликовано 3 апреля, 2015 Это кусок скрипта. Можешь поставить нпц, который по аналогии позволит сменить язык.В базу ничего не надо прописывать, это будет переменная, привязанная к персонажу (можно еще использовать #firstlogin и #lang, чтобы к аккаунту привязать) и автоматом в базу (таблица mapreg если память не изменяет) запишется и там храниться будет. Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
yutaro21 Опубликовано 3 апреля, 2015 Автор Жалоба Поделиться Опубликовано 3 апреля, 2015 (изменено) В итоге реализовал следующим образом:создал НПС у которого происходит смена языков в игре, где переменная lang в значении 1 - Английский язык, в значении 2 - русский.prontera,146,35,6 script Учитель языков 109,{mes "[Учитель языков]"; mes "Choose your language"; mes "Выбери свой язык";next;if(select("English:Русский")==2){if(lang==2){ mes "Русский язык был изучен ранее!"; close; }else {set lang,2;mes "Русский язык изучен!";close;}}if(lang==1){ mes "English is already included!"; close; }else {set lang,1;mes "English included!";close;}}и у НПС которого хотим научить общаться на нескольких языках(в данном случае сотрудница кафры):prontera,151,29,0 script Сотрудница Кафры::kaf_prontera2 115,{cutin "kafra_03",2;callfunc "F_KafSet";if(lang==2){mes "[Сотрудница Кафры южных ворот]";mes "Приветствую Вас, от представительства Кафра в городе Пайон!";mes "*мило улыбнулась*";mes "Скажите, чеми я могу быть Вам полезна?";callfunc "F_Kafra",5,0,0,40,800;savepoint "prontera",150,33;callfunc "F_KafEnd",0,1,"in the city of Prontera"; }else {mes "[Kafra Employee]";mes "Welcome~!";mes "The Kafra Services";mes "are always on your side.";mes "So how can I help you?";callfunc "F_Kafra",5,0,0,40,800;savepoint "prontera",150,33;callfunc "F_KafEnd",0,1,"in the city of Prontera";}}Есть над, чем работать, но в грубой форме уже ВКЛ. Изменено 3 апреля, 2015 пользователем yutaro21 Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 3 апреля, 2015 Жалоба Поделиться Опубликовано 3 апреля, 2015 Используй тег CODEprontera,146,35,6 script Учитель языков 109,{mes "[Учитель языков]";mes "Choose your language";mes "Выбери свой язык";next;if(select("English:Русский")==2){if(lang==2){ mes "Русский язык был изучен ранее!"; close; }else {set lang,2;mes "Русский язык изучен!";close;}}if(lang==1){ mes "English is already included!"; close; }else {set lang,1;mes "English included!";close;}}Зачем проверки на уже изученный язык?prontera,146,35,6 script Учитель языков 109,{ mes "[Учитель языков]"; mes "Choose your language"; mes "Выбери свой язык"; next; set lang, select("English:Русский"); switch(lang){ case 1: mes "English included!"; break; case 2: mes "Русский язык изучен!"; break; } close;} Ссылка на комментарий Поделиться на другие сайты Поделиться
Kubix! Опубликовано 3 апреля, 2015 Жалоба Поделиться Опубликовано 3 апреля, 2015 Используй #lang, чтобы люди не парились изменять язык на всех персонажах.Можешь еще добавить что-то типа:if(#lang == 1) mes "Сейчас выбран Английский язык";elsemes "Сейчас выбран Русский язык";В начале нпц. Ссылка на комментарий Поделиться на другие сайты Поделиться
yutaro21 Опубликовано 4 апреля, 2015 Автор Жалоба Поделиться Опубликовано 4 апреля, 2015 prontera,146,35,6 script Учитель_языков 109,{mes "[Учитель языков]";if(#lang == 1){mes "Сейчас выбран Английский язык";} else{mes "Сейчас выбран Русский язык";} mes "Select your desired language"; mes "Выбери желаемый язык";next;if(select("English:Русский")==2){set #lang,2;mes "Русский язык выключен!";close;} else {set #lang,1;mes "English included!";close;}} Ссылка на комментарий Поделиться на другие сайты Поделиться
Kubix! Опубликовано 4 апреля, 2015 Жалоба Поделиться Опубликовано 4 апреля, 2015 (изменено) prontera,146,35,6 script Учитель_языков 109,{mes "[Учитель языков]";if(#lang == 0) mes "Select your desired language/Выберите желаемый язык";else if(#lang == 1) mes "Сейчас выбран Английский язык";else if(#lang == 2) mes "Сейчас выбран Русский язык";next;if(select("English:Русский")==2){set #lang,2;mes "Русский язык выключен!";close;}set #lang,1;mes "English included!";close;}Так будет лучше Изменено 4 апреля, 2015 пользователем Kubix 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
yutaro21 Опубликовано 4 апреля, 2015 Автор Жалоба Поделиться Опубликовано 4 апреля, 2015 (изменено) prontera,146,35,6 script Учитель_языков 109,{mes "[Учитель языков]";if(#lang == 0) mes "Select your desired language/Выберите желаемый язык";else if(#lang == 1) mes "Сейчас выбран Английский язык";else if(#lang == 2) mes "Сейчас выбран Русский язык";next;if(select("English:Русский")==2){set #lang,2;mes "Русский язык включен!";close;}set #lang,1;mes "English included!";close;}Так будет лучшеСпасибо! Изменено 4 апреля, 2015 пользователем yutaro21 Ссылка на комментарий Поделиться на другие сайты Поделиться
Kubix! Опубликовано 4 апреля, 2015 Жалоба Поделиться Опубликовано 4 апреля, 2015 (изменено) Я там ошибся, вместо включен написал выключен )А не, это ты ошибся) Изменено 4 апреля, 2015 пользователем Kubix Ссылка на комментарий Поделиться на другие сайты Поделиться
yutaro21 Опубликовано 5 апреля, 2015 Автор Жалоба Поделиться Опубликовано 5 апреля, 2015 Я там ошибся, вместо включен написал выключен )А не, это ты ошибся)Угу, я уже поменял! Ссылка на комментарий Поделиться на другие сайты Поделиться
ucell-uz Опубликовано 23 декабря, 2015 Жалоба Поделиться Опубликовано 23 декабря, 2015 (изменено) мистер кеник-) помогите со скриптом, вообщем цель такова, при первом заходе чтобы выводился скрипт языка мульти..но только при создании чара и при первом запуске, без какого либо нпц в городе... у вас скрипт первый даёт ошибки под рА 17хххOnPCLoginEvent:if(firstlogin){mes "Choose your language";mes "Выбери свой язык";set lang, select("English:Русский");set firstlogin, 1;close;}я попробовал сделать так- script firstlogin -1,{OnPCLoginEvent:if(#language);else if(#language == 1) mes "Мой язык - Русский";else if(#language == 2) mes "My langeage - English";if(select("Русский:English")==1){set #language,1;mes "Выбран русский язык!";close;}set #language,2;mes "English language selected!";close;}скрипт запахал, но вот беда в том что при каждом входе такая хрень... после чего я сделал так- script firstlogin -1,{OnPCLoginEvent:if(firstlogin);else if(#language == 1) mes "Мой язык - Русский";else if(#language == 2) mes "My langeage - English";if(select("Русский:English")==1){set #language,1;mes "Выбран русский язык!";close;}set #language,2;mes "English language selected!";close;}мне стал выдавать что мой язык такой то, но мессага всё равно при входе вылетает... подправьте пожалуйста, где я что не то сделал? Изменено 23 декабря, 2015 пользователем ucell-uz Ссылка на комментарий Поделиться на другие сайты Поделиться
Nurkz Опубликовано 23 декабря, 2015 Жалоба Поделиться Опубликовано 23 декабря, 2015 (изменено) - script firstlogin -1,{end;OnPCLoginEvent:if(#language) end;set #language, select("Русский:English");mes (@menu == 1?"Выбран русский язык!":"English language selected!");close;} Изменено 23 декабря, 2015 пользователем Nurkz Ссылка на комментарий Поделиться на другие сайты Поделиться
ucell-uz Опубликовано 23 декабря, 2015 Жалоба Поделиться Опубликовано 23 декабря, 2015 (изменено) огромное человеческое спасибо!)- script firstlogin -1,{end;OnPCLoginEvent:if(#language) end;set #language, select("Русский:English");mes (@menu == 1?"Выбран русский язык!":"English language selected!");close;}это конечно отличный скрипт, но дело вот в чём при создании 2 или 3 персонажей скрипт реагирует на все слоты в создании, а как сделать чтоб он только привязывался к 1 персонажу? например я создал 2го перса и чтоб данное окошко всплывало ещё раз при создании другого персонажа? Изменено 23 декабря, 2015 пользователем ucell-uz Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 23 декабря, 2015 Жалоба Поделиться Опубликовано 23 декабря, 2015 огромное человеческое спасибо!)- script firstlogin -1,{end;OnPCLoginEvent:if(#language) end;set #language, select("Русский:English");mes (@menu == 1?"Выбран русский язык!":"English language selected!");close;}это конечно отличный скрипт, но дело вот в чём при создании 2 или 3 персонажей скрипт реагирует на все слоты в создании, а как сделать чтоб он только привязывался к 1 персонажу? например я создал 2го перса и чтоб данное окошко всплывало ещё раз при создании другого персонажа?Использовать переменную, привязанную не к аккаунту, а к персонажу. Первый класс, вторая четверть. Вместо #language возьмите language Ссылка на комментарий Поделиться на другие сайты Поделиться
ucell-uz Опубликовано 23 декабря, 2015 Жалоба Поделиться Опубликовано 23 декабря, 2015 (изменено) огромное человеческое спасибо!)- script firstlogin -1,{end;OnPCLoginEvent:if(#language) end;set #language, select("Русский:English");mes (@menu == 1?"Выбран русский язык!":"English language selected!");close;}это конечно отличный скрипт, но дело вот в чём при создании 2 или 3 персонажей скрипт реагирует на все слоты в создании, а как сделать чтоб он только привязывался к 1 персонажу? например я создал 2го перса и чтоб данное окошко всплывало ещё раз при создании другого персонажа?Использовать переменную, привязанную не к аккаунту, а к персонажу. Первый класс, вторая четверть. Вместо #language возьмите languageееех! спасибо всё норм запахалотут возникает вопрос по мимо нпц-шниковразберём к примеру данный скриптprontera,120,88,4 script Сотрудница Кафры::kaf_prontera0 115,{cutin "kafra_03",0;callfunc "F_KafSet";if(language == 1){mes "[Сотрудница Кафры южных ворот]";mes "Приветствую Вас, от представительства Кафра в городе Пайон!";mes "*мило улыбнулась*";mes "Скажите, чеми я могу быть Вам полезна?";callfunc "F_Kafra",5,0,0,800,40;savepoint "prontera",120,90;callfunc "F_KafEnd",0,1,"in the city of Prontera";}else {mes "[Kafra Employee]";mes "Welcome~!";mes "The Kafra Services";mes "are always on your side.";mes "So how can I help you?";callfunc "F_Kafra",5,0,0,800,40;savepoint "prontera",150,33;callfunc "F_KafEnd",0,1,"in the city of Prontera";}}а возможно ли такое что б были 2 папки с нпц типо /npc - это как дефаулт например и /npc_ruчтоб при выборе языка скрипты прогружались с папки /npc_ru - я к чему так интересуюсь? если даже ты язык по умолчанию выбрал, имена нпц один фиг по русски остаются,prontera,120,88,4 script Kafra Employee::kaf_prontera0 115,{ - /npcprontera,120,88,4 script Сотрудница Кафры::kaf_prontera0 115,{ - /npc_ruмб например в код нпц можно встроить что-то тип того if(language == 1 import: /npc_ru/kafras/kafra.txt) ??данный метод будит удобен тем что все переведённые нпц с инглиша на руссишь можно будит за бэкапитьи например перейти в дальнейшем на новую ревизию без каких либо там изменений в нпц.... Изменено 23 декабря, 2015 пользователем ucell-uz Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 23 декабря, 2015 Жалоба Поделиться Опубликовано 23 декабря, 2015 Обращу ваше внимание, что нпц загружаются в память сервера при запуске. И они загружаются независимо от того, какой язык выбран у какого из пользователей. Так же нет возможности выбирать, какого НПЦ отображать на экране - всем пользователям отображается один и тот же нпц. Вопрос довольно интересный, если честно - не помню, как с этим система локализации Геркулеса работает. Скорее всего так же не получится имена НПЦ локализовать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения