PACI Posted January 10, 2013 Report Share Posted January 10, 2013 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! Link to comment Share on other sites More sharing options...
KeKo Posted January 11, 2013 Report Share Posted January 11, 2013 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 PACI and TonyStark 2 Link to comment Share on other sites More sharing options...
ElRaulxX Posted January 11, 2013 Report Share Posted January 11, 2013 Mi pequeño padawan por fin aprendió 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: PACI 1 Link to comment Share on other sites More sharing options...
KeKo Posted January 11, 2013 Report Share Posted January 11, 2013 Mi pequeño padawan por fin aprendió Se hace lo que se puede maestro PACI 1 Link to comment Share on other sites More sharing options...
Recommended Posts