Jump to content

BalooUA

Member
  • Posts

    4
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

BalooUA last won the day on January 23 2017

BalooUA had the most liked content!

About BalooUA

Informations

  • Gender
    Male

Social Networks

Recent Profile Visitors

1184 profile views

BalooUA's Achievements

Rookie

Rookie (2/16)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

34

Reputation

  1. Does anyone have the player.shop table? Just the shop_item table is not enough
  2. @HaveBeen™, i've just post this 2yo quest because we're working on a better solution, based on language files which we'll load over the client. Anyways i like your function but it's overall view inside the locale.lua might be a bit messy with it, at least for me.
  3. I'll try it later. Wrote this quest 2 years ago and it was working fine. "Never change a running system" Of course there is but when i made this quest back then, there was no source.
  4. M2 Download Center Download Here ( Internal ) Hey Everyone, since i'm new here, i want to share my Multi-Language System with you as small "contribution" to this community. Many private servers still don't have a proper language-system and i thought it might be a good idea to start sharing stuff with you instead of keeping it only for my server. So let's start I've written a quest to select your language and called her: changelanguage.quest quest changelanguage begin state start begin when login begin set_state(change_lang) end end state change_lang begin when letter begin send_letter(t('locale.changelanguage.letter')) end when button or info begin local s = 0 local subset = 1 while s == 0 or (subset == 1 and s == 6) or (subset == 2 and s == 12) or (subset == 3 and s == 19) or (subset == 4 and s == 22) do if s == 0 or (s == 12 and subset == 2) then say(t('locale.changelanguage.welcome') .. " " .. pc.get_name() .. " " .. t('locale.changelanguage.msg')) subset = 1 s = select(t('locale.changelanguage.select', 1), t('locale.changelanguage.select', 6), t('locale.changelanguage.select', 3), t('locale.changelanguage.select', 4), t('locale.changelanguage.select', 5), t('locale.main.next'), t('locale.main.cancel')) end if (s == 6 and subset == 1) or (s == 19 and subset == 3) then say(t('locale.changelanguage.welcome') .. " " .. pc.get_name() .. " " .. t('locale.changelanguage.msg')) subset = 2 s = select(t('locale.changelanguage.select', 2), t('locale.changelanguage.select', 7), t('locale.changelanguage.select', 8), t('locale.changelanguage.select', 9), t('locale.changelanguage.select', 14), t('locale.main.next'), t('locale.main.back')) + 5 end if (s == 11 and subset == 2) or (s == 22 and subset == 4) then say(t('locale.changelanguage.welcome') .. " " .. pc.get_name() .. " " .. t('locale.changelanguage.msg')) subset = 3 s = select(t('locale.changelanguage.select', 13), t('locale.changelanguage.select', 10), t('locale.changelanguage.select', 20), t('locale.changelanguage.select', 21), t('locale.changelanguage.select', 22), t('locale.main.next'), t('locale.main.back')) + 12 end if s == 18 and subset == 3 then say(t('locale.changelanguage.welcome') .. " " .. pc.get_name() .. " " .. t('locale.changelanguage.msg')) subset = 4 s = select(t('locale.changelanguage.select', 23), t('locale.changelanguage.select', 24), t('locale.main.back'), t('locale.main.cancel')) + 19 end end if s == 1 then set_lang(1) say(t('locale.changelanguage.info')) elseif s == 2 then set_lang(6) say(t('locale.changelanguage.info')) elseif s == 3 then set_lang(3) say(t('locale.changelanguage.info')) elseif s == 4 then set_lang(4) say(t('locale.changelanguage.info')) elseif s == 5 then set_lang(5) say(t('locale.changelanguage.info')) ----------------- SUB_SET 2 ------------------------------- elseif s == 6 then set_lang(2) say(t('locale.changelanguage.info')) elseif s == 7 and subset == 2 then set_lang(7) say(t('locale.changelanguage.info')) elseif s == 8 and subset == 2 then set_lang(8) say(t('locale.changelanguage.info')) elseif s == 9 and subset == 2 then set_lang(9) say(t('locale.changelanguage.info')) elseif s == 10 and subset == 2 then set_lang(14) say(t('locale.changelanguage.info')) elseif s == 14 and subset == 3 then set_lang(10) say(t('locale.changelanguage.info')) elseif s == 13 and subset == 3 then set_lang(13) say(t('locale.changelanguage.info')) elseif s == 15 and subset == 3 then set_lang(20) say(t('locale.changelanguage.info')) elseif s == 16 and subset == 3 then set_lang(21) say(t('locale.changelanguage.info')) elseif s == 17 and subset == 3 then set_lang(22) say(t('locale.changelanguage.info')) elseif s == 20 and subset == 4 then set_lang(23) say(t('locale.changelanguage.info')) elseif s == 21 and subset == 4 then set_lang(24) say(t('locale.changelanguage.info')) end end end end As you can see, it contains many different languages, that's why i left the quest complete and didn't clean it up so you can have a better understanding how it works. The quest translation, we've added to our locale.lua. Here a small variable example for the above posted quest, changelanguage.quest: ----- changelanguage.quest ----- locale.changelanguage= {} locale.changelanguage.select = "English" locale.changelanguage.welcome = "Welcome" locale.changelanguage.msg = ",[ENTER]Please select your language![ENTER]" locale.changelanguage.letter = "Change Language" locale.changelanguage.info = "You have successfully changed your language![ENTER]" ------------------------- and in case you want to add more languages, simple add a small syntax like "_de" ( german) which would look like that: ----- changelanguage.quest ----- locale.changelanguage.select_de = "Deutsch" locale.changelanguage.welcome_de = "Willkommen" locale.changelanguage.msg_de = ",[ENTER]Bitte wähle deine Sprache![ENTER]" locale.changelanguage.letter_de = "Sprache Ändern" locale.changelanguage.info_de = "Du hast erfolgreich deine Sprache geändert![ENTER]" ------------------------- of course it won't work without the actual function which will be added to: questlib.lua function set_lang(arg) local name = string.gsub(pc.get_name(), "[.*](.*)", "%1") pc.setf('changelanguage', 'lang_' .. name, arg) end and function t(varname, l) local name = string.gsub(pc.get_name(), "[.*](.*)", "%1") local line = 0 line = pc.getf('changelanguage', 'lang_' .. name) if not l then l = line end local lang_suffix = '' if l == 1 or l == 0 then lang_suffix = '' -- English (Default) elseif l == 2 then lang_suffix = '_it' -- Italian elseif l == 3 then lang_suffix = '_de' -- German elseif l == 4 then lang_suffix = '_bg' -- Bulgarian elseif l == 5 then lang_suffix = '_et' -- Estonian elseif l == 6 then lang_suffix = '_ro' -- Romanian elseif l == 7 then lang_suffix = '_hr' -- Croatian elseif l == 8 then lang_suffix = '_cz' -- Czech elseif l == 9 then lang_suffix = '_pt' -- Portuguese elseif l == 10 then lang_suffix = '_fr' -- French elseif l == 13 then lang_suffix = '_lt' -- Lithuanian elseif l == 14 then lang_suffix = '_hu' -- Hungarian elseif l == 20 then lang_suffix = '_gr' -- Greek elseif l == 21 then lang_suffix = '_nl' -- Dutch elseif l == 22 then lang_suffix = '_pl' -- Polish elseif l == 23 then lang_suffix = '_se' -- Swedish elseif l == 24 then lang_suffix = '_mk' -- Macedonian end s = assert(loadstring( 'return ' .. varname .. lang_suffix )) if not s() or s() == '' then s = assert(loadstring( 'return ' .. varname )) end if not s() then return "" end return(s()) end And please check if you've set_lang in your quest_functions. The function inside your quest will be used like that. For example in "say" say("I <3 Metin2Dev") would be replaced with say(t('locale.questname.lovemetin2dev')) I've created the variables based on their quest name and the part where it's used inside the quest to give it more sense and it will make it easier to read later, ones you've 5k+ lines in your locale I hope you like it and i looking forward to work with and for you guys Cheers, BalooUA
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.