ucell-uz

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

7 сообщений в этой теме

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

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

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

 

Скрытый текст
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
0

Поделиться сообщением


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

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

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

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

}

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

0

Поделиться сообщением


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

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

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

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

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

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

 

Изменено пользователем ucell-uz
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, ucell-uz сказал:

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

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

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

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

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

 

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

0

Поделиться сообщением


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

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

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
0

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

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

0

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас