summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/constants.conf4
-rw-r--r--npc/000-0/sailors.txt16
-rw-r--r--npc/000-2-0/julia.txt26
-rw-r--r--npc/001-2-21/julia.txt19
-rw-r--r--npc/functions/asklanguage.txt80
-rw-r--r--npc/scripts.conf1
6 files changed, 89 insertions, 57 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 8b2c8491..26c1399a 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -3888,5 +3888,9 @@ constants_db: {
E_METAL: 127
E_CRYING: 128
+ comment__: "Language function constants"
+ LANG_ON_SEA: 1
+ LANG_IN_SHIP: 2
+
@include "conf/import/constants.conf"
}
diff --git a/npc/000-0/sailors.txt b/npc/000-0/sailors.txt
index 5d66a28c..cac7ff8c 100644
--- a/npc/000-0/sailors.txt
+++ b/npc/000-0/sailors.txt
@@ -51,21 +51,7 @@ OnTouch:
next;
restorecam;
- select
- menuimage("flags/en", "I hear you... (English)"),
- menuimage("flags/fr", "Je vous entends... (Français)"),
- menuimage("flags/ru", "Да я вас слышу... (Русский)"),
- menuimage("flags/es", "Te oigo... (Español)"),
- menuimage("flags/pt_BR", "Eu te ouço... (Português)"),
- menuimage("flags/de", "Ich höre euch... (Deutsch)"),
- menuimage("flags/vls", "'k hoar ui wel... (Vlaams)"),
- menuimage("flags/pl", "Słyszę cię... (Polski)"),
- menuimage("flags/it", "Vi sento... (Italiano)"),
- menuimage("flags/nl_BE", "Ik kan je horen... (Nederlands)"),
- menuimage("flags/ca", "Et escolto (Català)");
- .@lang = @menu-1;
- if (.@lang < 0 || .@lang > 10) close;
- Lang = .@lang;
+ asklanguage (LANG_ON_SEA);
setcamnpc;
mes "";
diff --git a/npc/000-2-0/julia.txt b/npc/000-2-0/julia.txt
index 641727ec..53843c25 100644
--- a/npc/000-2-0/julia.txt
+++ b/npc/000-2-0/julia.txt
@@ -145,31 +145,7 @@
mesq l("Of course! Tell me which language you speak and I will change the note on the ship passenger list.");
next;
- select
- menuimage("flags/en", l("I speak English.") + " (English)"),
- menuimage("flags/fr", l("I speak French.") + " (Français)"),
- menuimage("flags/ru", l("I speak Russian.") + " (Русский)"),
- menuimage("flags/es", l("I speak Spanish.") + " (Español)"),
- menuimage("flags/pt_BR", l("I speak Portuguese.") + " (Português)"),
- menuimage("flags/de", l("I speak German.") + " (Deutsch)"),
- menuimage("flags/vls", l("I speak Flemish.") + " (Vlaams)"),
- menuimage("flags/pl", l("I speak Polish.") + " (Polski)"),
- menuimage("flags/it", l("I speak Italian.") + " (Italiano)"),
- menuimage("flags/nl_BE", l("I speak Dutch.") + " (Nederlands)"),
- menuimage("flags/ca", l("I speak Catalan.") + " (Català)"),
- getarg(0, "");
-
- .@lang = @menu-1;
- if (.@lang < 0 || .@lang > 10)
- {
- mes "";
- mesn;
- mesq l("No problem, do you have any other questions for me?");
- next;
- ynMenu;
- return;
- }
- Lang = .@lang;
+ asklanguage (LANG_IN_SHIP);
mes "";
mesn;
diff --git a/npc/001-2-21/julia.txt b/npc/001-2-21/julia.txt
index 06342582..24cf89f2 100644
--- a/npc/001-2-21/julia.txt
+++ b/npc/001-2-21/julia.txt
@@ -20,7 +20,7 @@ L_Menu:
.@enora = getq(ArtisQuests_Enora);
menu
- rif(getskilllv(1) != 9, l("Something is wrong with me, I can't smile nor sit.")), L_BasicSkill,
+ rif(getskilllv(1) < 6, l("Something is wrong with me, I can't smile nor sit.")), L_BasicSkill,
rif (.@enora == 0, l("Where should I go?")), L_Enora,
lg("I made a mistake, I would like to change my language."), L_ChooseLang,
l("Is it possible to go back to Drasil Island?"), L_Island,
@@ -48,22 +48,7 @@ L_ChooseLang:
mesq l("Of course! Tell me which language you speak and I will change the note on the ship board list.");
next;
- menu
- menuimage("flags/en", l("I speak English.") + " (English)"), -,
- menuimage("flags/fr", l("I speak French.") + " (Français)"), -,
- menuimage("flags/ru", l("I speak Russian.") + " (Русский)"), -,
- menuimage("flags/es", l("I speak Spanish.") + " (Español)"), -,
- menuimage("flags/pt_BR", l("I speak Portuguese.") + " (Português)"), -,
- menuimage("flags/de", l("I speak German.") + " (Deutsch)"), -,
- menuimage("flags/vls", l("I speak Flemish.") + " (Vlaams)"), -,
- menuimage("flags/pl", l("I speak Polish.") + " (Polski)"), -,
- menuimage("flags/it", l("I speak Italian.") + " (Italiano)"), -,
- menuimage("flags/nl_BE", l("I speak Dutch.") + " (Nederlands)"), -,
- menuimage("flags/ca", l("I speak Catalan.") + " (Català)"), -,
- .@s$, L_NoChanges;
- .@lang = @menu-1;
- if (.@lang < 0 || .@lang > 10) close;
- Lang = .@lang;
+ asklanguage (LANG_IN_SHIP);
mes "";
mesn;
diff --git a/npc/functions/asklanguage.txt b/npc/functions/asklanguage.txt
new file mode 100644
index 00000000..480ca030
--- /dev/null
+++ b/npc/functions/asklanguage.txt
@@ -0,0 +1,80 @@
+// Evol functions.
+// Author:
+// Reid
+// Description:
+// Function setting the player language
+
+function script asklanguage {
+
+ .@nb_language = 11;
+
+ switch (getarg(0, 0))
+ {
+ case LANG_ON_SEA:
+ setarray .@messages$[0], l("I hear you... (English)"),
+ l("Je vous entends... (Français)"),
+ l("Да я вас слышу... (Русский)"),
+ l("Te oigo... (Español)"),
+ l("Eu te ouço... (Português)"),
+ l("Ich höre euch... (Deutsch)"),
+ l("'k hoar ui wel... (Vlaams)"),
+ l("Słyszę cię... (Polski)"),
+ l("Vi sento... (Italiano)"),
+ l("Ik kan je horen... (Nederlands)"),
+ l("Et escolto (Català)"),
+ l("Mi aŭdas vin... (Angle)");
+ break;
+ case LANG_IN_SHIP:
+ setarray .@messages$[0], l("I speak English."),
+ l("I speak French."),
+ l("I speak Russian."),
+ l("I speak Spanish."),
+ l("I speak Portuguese."),
+ l("I speak German."),
+ l("I speak Flemish."),
+ l("I speak Polish."),
+ l("I speak Italian."),
+ l("I speak Dutch."),
+ l("I speak Catalan."),
+ l("I speak Esperanto.");
+ break;
+ default:
+ return;
+ }
+
+ setarray .@flags$[0], l("flags/en"),
+ l("flags/fr"),
+ l("flags/ru"),
+ l("flags/es"),
+ l("flags/pt_BR"),
+ l("flags/de"),
+ l("flags/vls"),
+ l("flags/pl"),
+ l("flags/it"),
+ l("flags/nl_BE"),
+ l("flags/ca"),
+ l("flags/eo");
+
+ .@menustr$ = "";
+ .@separator$ = ":";
+
+ for (.@i = 0; .@i <= .@nb_language; .@i++)
+ {
+ if (.@i == .@nb_language)
+ {
+ .@separator$ = "";
+ }
+ .@menustr$ = .@menustr$ + .@flags$[.@i] + "|" + .@messages$[.@i] + .@separator$;
+ }
+
+ select (.@menustr$);
+
+ .@lang = @menu - 1;
+
+ if (.@lang >= 0 || .@lang <= .@nb_language)
+ {
+ Lang = .@lang;
+ }
+
+ return;
+}
diff --git a/npc/scripts.conf b/npc/scripts.conf
index ef4c18e2..49e412ac 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -33,6 +33,7 @@
"npc/functions/mouboofunc.txt",
"npc/functions/string.txt",
"npc/functions/time.txt",
+"npc/functions/asklanguage.txt",
// quest debug
"npc/functions/quest-debug/functions.txt",