Jump to content
PACI

Array? Multi-Idioma?

Recommended Posts

Hola,

Estaba yo navegando por uno de los foros que frequento habitualmente y me depare con un Post en el que decian:

 

Multi - Idioma en Quest

 

Y me quedé pensando y me habia acordado que un servidor de metin2 (MyLastPvP) tiene un npc que cambia el idioma de las quests.

Y la respuesta al dicho post, fué "poner arrays."

 

Yo me pregunto, como funcionan los arrays, para que sirven al final y si me podrian dar un ejemplo y su funcionamento.

 

Gracias!

Saludos!

Share this post


Link to post
Share on other sites

Pues los arrays son una herramienta que los programadores de quests utilizan para ahorrar código. La verdad es que no se demasiado sobre ellos pero te intentaré explicar los básicos así por encima.

 

Un array se usa para almacenar informacion dentro de él, para luego solo hacer referencia al array y no tener que escribir de nuevo todo lo que contiene. Su sintaxis es la siguiente:

 

local prueba = {datos} -- array local
prueba = {datos} -- array global
{ } son los que usan los arrays

Cuando los usas digamos que creas una tabla con diversos apartados:

 

gms = { "GM1" , "GM2" , "GM3" , "GM4" }

En este caso nuestra tabla se llamaria gms y tendria un apartado por cada nombre que le añadas. Para hacer referencia a cada uno de los elementos de nuestro arrays se hace de la siguiente manera:

 

gms[1] -- primer elemento del array
gms[2] -- segundo elemento
gms[3] -- tercer elemento
gms[4] -- cuarto elemento

Lo normal es combinar los arrays con otras funciones o con estructuradores como el for y el do aunque de eso te lo explicaría mejor Noa que yo.

 

Un ejemplo de una quest en varios idiomas como lo comentas tu, usando un array, sería algo así:

 

quest buenas begin
state start begin
when 20094.chat."Buenas" begin
say_title("Buenas")
say("")
say("En que idioma lo quieres leer?")
say("")
texto = {"Buenas" , "Hello" , "Salut" , "Hallo" }
local idi = select ("Castellano" , "Ingles" , "Frances" , "Aleman")
if idi == 1 then
say(""..texto[1].."")
elseif idid == 2 then
say(""..texto[2].."")
elseif idid == 3 then
say(""..texto[3].."")
elseif idid == 4 then
say(""..texto[4].."")
end
end
end
end

Por supuesto el texto puede ser mas largo si así lo necesitas, ahi solo puse una palabra porque es un ejemplo ^^

Share this post


Link to post
Share on other sites

Mi pequeño padawan por fin aprendió :D

 

Hacer tal multiidioma es tan sencillo como guardar un valor como qf, en un campo nuevo en la db o incluso en un archivo en el servidor asociado a la id del personaje o cuenta. Lo más lógico sería el campo en player/account, pero eso viene a gusto. Tan solo sería utilizar arrays asociando un mismo valor a cada idioma en cada quest, tal como dice keko, o declararlas globalmente en un archivo lua del servidor. Lo mejor, las declaras en el locale.lua y queda to' profesional :fuckyeah:

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...