Перейти к содержанию

вопрос по скрипту и мульти-языку, снова!


ucell-uz

Рекомендуемые сообщения

всё никак не могу разобраться со скриптами по мульти языку

помогите пожалуйста перевёл нпц, который обрабатывает элу и ори

скрипт выложу в студию, просто помогите доработать его!

 

Скрытый текст

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;
}

 

 

 

Изменено пользователем ucell-uz
Ссылка на комментарий
Поделиться на другие сайты

Не вникал, как реализована мультиязычность, но мб так поможет

prt_in,63,69,3    script    Дитрих    4_M_02,{

    if(langtype){
    callfunc "orimain","Дитрих";
    end;

}

    callfunc "orimain","Dietrich";
    end;
}

Ссылка на комментарий
Поделиться на другие сайты

спасибо за ответ ваш вариант подошёл, но вот беда в том что сами нпц не переводятся, как быть?

нужно как то пристроить

if(#language == 1) {
и
if(#language == 2) {

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

просто не догоняю как правильно пристроить лангтип... надежда вся на пользователей! 

 

Изменено пользователем ucell-uz
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, ucell-uz сказал:

спасибо за ответ ваш вариант подошёл, но вот беда в том что сами нпц не переводятся, как быть?

нужно как то пристроить


if(#language == 1) {
и
if(#language == 2) {

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

просто не догоняю как правильно пристроить лангтип... надежда вся на пользователей! 

 

Названия нпцов по моему никак не перевести. Только в Herc можно с использованием их системы локализации (в файлах .po нпцам имена дать нужные)

Ссылка на комментарий
Поделиться на другие сайты

Хабиля думает что не получиться, Единственное с чем ты можещь пое*аться так это с этим

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

создать дупликат с русским именем..

Изменено пользователем Habilis
Ссылка на комментарий
Поделиться на другие сайты

Я читал одним глазом, походу.

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

Есть 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;
	}

 

Изменено пользователем Milkshake
Ссылка на комментарий
Поделиться на другие сайты

зачем столько гемора? Сделай названия нпц на английском, а текст, который они уже говорят дели через переменные. Или так принципиально вместо Ditrih увидеть Дитрих?
Думаю у нас в ру хотя бы алфавит должны знать английский, а всё остальное будет на русском...

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика