ucell-uz Опубликовано 5 августа, 2017 Жалоба Поделиться Опубликовано 5 августа, 2017 (изменено) всё никак не могу разобраться со скриптами по мульти языку помогите пожалуйста перевёл нпц, который обрабатывает элу и ори скрипт выложу в студию, просто помогите доработать его! Скрытый текст prt_in,63,69,3 script Дитрих 4_M_02,{ if(#language == 1) { callfunc "orimain","Дитрих"; end; } callfunc "orimain","Dietrich"; end; } payon,137,178,5 script Хаким 4_M_ORIENT01,{ if(#language == 1) { callfunc "orimain","Хаким"; end; } callfunc "orimain","Hakhim"; end; } morocc_in,72,32,6 script Абдула 4W_M_03,{ if(#language == 1) { callfunc "orimain","Абдула"; end; } callfunc "orimain","Abdula"; end; } alberta_in,21,63,5 script Ксенофон 4_M_02,{ if(#language == 1) { callfunc "orimain","Ксенофон"; end; } callfunc "orimain","Xenophon Zolotas"; end; } yuno_in01,164,27,4 script Дилайт 4_M_ORIENT01,{ if(#language == 1) { callfunc "orimain","Дилайт"; end; } callfunc "orimain","Delight"; end; } ein_in01,18,82,6 script Мэйтштайн 4_M_02,{ if(#language == 1) { callfunc "orimain","Мэйтштайн"; end; } callfunc "orimain","Matestein"; end; } lhz_in02,281,24,5 script Фруиль 4_M_02,{ if(#language == 1) { callfunc "orimain","Фруиль"; end; } callfunc "orimain","Fruel"; end; } function script orimain { if(#language == 1) { mes "^BC7F15[ " + getarg(0) + " ]^000000"; if (checkweight(Knife,1) == 0) { mes "- Погоди минуточку !! -"; mes "- У тебя сейчас с собой -"; mes "- слишком много предметов. -"; mes "- Пожалуйста, попробу снова -"; mes "- но после того, как избавишься от лишнего веса. -"; close; } mes "Я могу очистить твой Необработанный "; mes "<ITEMLINK>Rough Oridecon<INFO>756</INFO></ITEMLINK> а так же "; mes "<ITEMLINK>Rough Elunium<INFO>757</INFO></ITEMLINK>. Но, мне для этого"; mes "понадобится 5 Камней Руды, чтобы сделать для тебя 1 очищенный."; next; switch(select("Сделать Oridecon:Сделать Elunium:Спросить о зачарованных камнях")) { case 1: if (countitem(Oridecon_Stone) > 4) { delitem Oridecon_Stone,5; getitem Oridecon,1; // Oridecon mes "[" + getarg(0) + "]"; mes "Вот твой <ITEMLINK>Oridecon<INFO>984</INFO></ITEMLINK>"; mes "Приходи в любое время, когда пожелаешь."; close; } else { mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "Ты меня разыгрываешь что ли?"; mes "Я только что говорил, что мне нужно 5 камней Rough Oridecon"; mes "чтобы сделать для тебя 1 <ITEMLINK>Oridecon<INFO>984</INFO></ITEMLINK>."; close; } case 2: if (countitem(Elunium_Stone) > 4) { delitem Elunium_Stone,5; getitem Elunium,1; // Elunium mes "[" + getarg(0) + "]"; mes "Вот твой <ITEMLINK>Elunium<INFO>985</INFO></ITEMLINK>"; mes "Приходи в любое время, когда пожелаешь."; close; } else { mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "Ты меня разыгрываешь что ли?"; mes "Я только что говорил, что мне нужно 5 камней Rough Elunium"; mes "чтобы сделать для тебя 1 <ITEMLINK>Elunium<INFO>985</INFO></ITEMLINK>."; close; } case 3: mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "Зачарованные Камни...? Я занимаюсь обработкой камней больше 20 лет, поэтому я многое о них слышал. Предположительно, существует четыре вида."; next; mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "Каждый Зачарованный Камень обладает одним из элементальных свойств: Земля, Вода, Огонь и Ветер."; next; mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "Если кто-нибудь комбинирует Зачарованный Камень и оружие во время ковки, это оружие будет обладать тем же свойством, что и сам Камень."; next; mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "Разумеется, тебе необходимо иметь некоторые кузнечные навыки, чтобы изготовить такой вид элементального оружия."; close; } } if(#language == 2) { mes "^BC7F15[ " + getarg(0) + " ]^000000"; if (checkweight(Knife,1) == 0) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please try again -"; mes "- after you lose some weight. -"; close; } mes "I can purify your"; mes "<ITEMLINK>Rough Oridecon<INFO>756</INFO></ITEMLINK> or"; mes "<ITEMLINK>Rough Elunium<INFO>757</INFO></ITEMLINK>. But, I'll need"; mes "5 Rough Stones to make 1 pure one for you."; next; switch(select("Make Oridecon:Make Elunium:Ask about Enchanted Stones")) { case 1: if (countitem(Oridecon_Stone) > 4) { delitem Oridecon_Stone,5; getitem Oridecon,1; // Oridecon mes "[" + getarg(0) + "]"; mes "Here's your <ITEMLINK>Oridecon<INFO>984</INFO></ITEMLINK>"; mes "You're welcome to come back whenever you want."; close; } else { mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "You're kidding me, right?"; mes "I just told you that I need 5 Rough Oridecons "; mes "to make a pure 1 <ITEMLINK>Oridecon<INFO>984</INFO></ITEMLINK>."; close; } case 2: if (countitem(Elunium_Stone) > 4) { delitem Elunium_Stone,5; getitem Elunium,1; // Elunium mes "[" + getarg(0) + "]"; mes "Here's your <ITEMLINK>Elunium<INFO>985</INFO></ITEMLINK>"; mes "You're welcome to come back whenever you want."; close; } else { mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "You're kidding me, right?"; mes "I just told you that I need 5 Rough Eluniums "; mes "to make a pure 1 <ITEMLINK>Elunium<INFO>985</INFO></ITEMLINK>."; close; } case 3: mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "Enchanted Stones...? I've been a stonesmith for 20 years, so I've heard a lot about them. Supposedly, there are four different kinds."; next; mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "Each Enchanted Stone possesses one of the following elemental properties: Earth, Wind, Water and Fire."; next; mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "If someone combines a Enchanted Stone with a weapon while smithing, that weapon will possess the same property as the Stone."; next; mes "^BC7F15[ " + getarg(0) + " ]^000000"; mes "Needless to say, you need to have some smithing skill to produce this kind of elemental weapon."; close; } } } сам скрипт работает прекрасно, без глюков без проблем и спокойно переключается с инглиша на русишь и на оборот! но дело в том что проблема в названиях нпц, никак не могу разделить их на мультиязычность, помогите может какой-то доп скрипт нужен о котором я увы не знаю в чём именно трабла, я поясню при переключении на инглиш версию, нпц отображается русскими буквами, а нужно что-то вроде этого Скрытый текст prt_in,63,69,3 script Дитрих 4_M_02,{ callfunc "orimain","Дитрих"; end; } prt_in,63,69,3 script Dietrich 4_M_02,{ callfunc "orimain","Dietrich"; end; } Изменено 5 августа, 2017 пользователем ucell-uz Ссылка на комментарий Поделиться на другие сайты Поделиться
Milkshake Опубликовано 5 августа, 2017 Жалоба Поделиться Опубликовано 5 августа, 2017 Не вникал, как реализована мультиязычность, но мб так поможет prt_in,63,69,3 script Дитрих 4_M_02,{ if(langtype){ callfunc "orimain","Дитрих"; end; } callfunc "orimain","Dietrich"; end;} Ссылка на комментарий Поделиться на другие сайты Поделиться
ucell-uz Опубликовано 5 августа, 2017 Автор Жалоба Поделиться Опубликовано 5 августа, 2017 (изменено) спасибо за ответ ваш вариант подошёл, но вот беда в том что сами нпц не переводятся, как быть? нужно как то пристроить if(#language == 1) { и if(#language == 2) { чтобы охватывало всё, но у меня чёт мозгов не хватает, как правильно это сделать, я в скриптинге полный краб... но скрипт я подогнал сам просто не догоняю как правильно пристроить лангтип... надежда вся на пользователей! Изменено 5 августа, 2017 пользователем ucell-uz Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 5 августа, 2017 Жалоба Поделиться Опубликовано 5 августа, 2017 1 час назад, ucell-uz сказал: спасибо за ответ ваш вариант подошёл, но вот беда в том что сами нпц не переводятся, как быть? нужно как то пристроить if(#language == 1) { и if(#language == 2) { чтобы охватывало всё, но у меня чёт мозгов не хватает, как правильно это сделать, я в скриптинге полный краб... но скрипт я подогнал сам просто не догоняю как правильно пристроить лангтип... надежда вся на пользователей! Названия нпцов по моему никак не перевести. Только в Herc можно с использованием их системы локализации (в файлах .po нпцам имена дать нужные) Ссылка на комментарий Поделиться на другие сайты Поделиться
Habilis Опубликовано 5 августа, 2017 Жалоба Поделиться Опубликовано 5 августа, 2017 (изменено) Хабиля думает что не получиться, Единственное с чем ты можещь пое*аться так это с этим prontera,156,145,4 script LoL::tatata 4_WHIKEBAIN,{ // обрати внимание на декларацию нпц LoL::tatata } prontera,157,145,4 duplicate(tatata) КеК 4_F_AGENTKAFRA prontera,158,145,4 duplicate(tatata) Чебурек 4_F_AGENTKAFRA prontera,159,145,4 duplicate(tatata) ЛоЛ 4_F_AGENTKAFRA создать дупликат с русским именем.. Изменено 5 августа, 2017 пользователем Habilis Ссылка на комментарий Поделиться на другие сайты Поделиться
Milkshake Опубликовано 5 августа, 2017 Жалоба Поделиться Опубликовано 5 августа, 2017 (изменено) Я читал одним глазом, походу. Названия НПЦ переводить для каждого игрока отдельно не получится. Есть 1 теоретический выход: Зашить в ехе'шник выбор языка при логине, на основе выбора определять имена НПЦ посредством клиента, а не сервера. И 1 практический: 1. Сделать 2 одинаковые локации, разместить на них нпц с русскими и английскими именами соответственно, научить варп в локу определять язык, при ontouch варпать в нужную. map,xxx,yyy,0 script #warp WARPNPC,2,2,{ OnTouch: if(langtype){ warp "map1", xxx,yyy; end; } warp "map2", xxx,yyy; end; } Изменено 5 августа, 2017 пользователем Milkshake Ссылка на комментарий Поделиться на другие сайты Поделиться
Ultima Опубликовано 6 августа, 2017 Жалоба Поделиться Опубликовано 6 августа, 2017 зачем столько гемора? Сделай названия нпц на английском, а текст, который они уже говорят дели через переменные. Или так принципиально вместо Ditrih увидеть Дитрих? Думаю у нас в ру хотя бы алфавит должны знать английский, а всё остальное будет на русском... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения