[Quest] Multi-Language

03/22/2013 14:02 MrGanja#1
Is a example...

Video: [Only registered and activated users can see links. Click Here To Register...]

Quest multi_language_first:
PHP Code:
quest multi_language_first begin
    state start begin
        when login with game
.get_event_flag("language_system"..pc.get_name().."") == 0 begin
            set_state
(multi_language_0)
        
end
    end

    state multi_language_0 begin
        when letter with game
.get_event_flag("language_system"..pc.get_name().."") == 0 begin
            send_letter
("Multi-Language")
        
end

        when button 
or info begin
            say_title
("Multi-Language:")
            
say("")
            
say("Bla..bla")
            
local language = select("English", "Italian", "Deutsch")
            if 
language == 1 then
                say_title
("Multi-Language:")
                
say("")
                
say("Bla..bla")
                
say_reward("Very good, your base language is English!")
                
game.set_event_flag("language_system"..pc.get_name().."", 1)
                
set_state(end_multi_language_0)
                return
            
end

            
if language == 2 then
                say_title
("Multi-Language:")
                
say("")
                
say("Bla..bla")
                
say_reward("Molto bene, la tua lingua di base è l'Inglese!")
                
game.set_event_flag("language_system"..pc.get_name().."", 2)
                
set_state(end_multi_language_0)
                return
            
end

            
if language == 3 then
                say_title
("Multi-Language:")
                
say("")
                
say("Bla..bla")
                
say_reward("Sehr gut, ist Ihr Basis-Sprache Deutsch!")
                
game.set_event_flag("language_system"..pc.get_name().."", 3)
                
set_state(end_multi_language_0)
                return
            
end
        end
    end

    state end_multi_language_0 begin
    end
end 
Quest multi_language_after:
PHP Code:
quest multi_language_after begin
    state start begin
        when login 
or levelup with game.get_event_flag("language_system"..pc.get_name().."") == 1 or game.get_event_flag("language_system"..pc.get_name().."") == 2 or game.get_event_flag("language_system"..pc.get_name().."") == 3 begin
            set_state
(multi_language_1)
        
end
    end

    state multi_language_1 begin
        when letter with game
.get_event_flag("language_system"..pc.get_name().."") == 1 or game.get_event_flag("language_system"..pc.get_name().."") == 2 or game.get_event_flag("language_system"..pc.get_name().."") == 3 begin
            send_letter
("Reset Multi-Language")
        
end

        when button 
or info begin
            say_title
("Multi-Language:")
            
say("")
            
say("Bla..bla")
            
local language = select("English", "Italian", "Deutsch")
            if 
language == 1 then
                say_title
("Multi-Language:")
                
say("")
                
say("Bla..bla")
                
say_reward("Very good, your base language is English!")
                
game.set_event_flag("language_system"..pc.get_name().."", 1)
                return
            
end

            
if language == 2 then
                say_title
("Multi-Language:")
                
say("")
                
say("Bla..bla")
                
say_reward("Molto bene, la tua lingua di base è l'Inglese!")
                
game.set_event_flag("language_system"..pc.get_name().."", 2)
                return
            
end

            
if language == 3 then
                say_title
("Multi-Language:")
                
say("")
                
say("Bla..bla")
                
say_reward("Sehr gut, ist Ihr Basis-Sprache Deutsch!")
                
game.set_event_flag("language_system"..pc.get_name().."", 3)
                return
            
end
        end
    end
end 
Quest npc_blacksmith:
PHP Code:
quest blacksmith begin
    state start begin
        when 20016.chat
."Information" with game.get_event_flag("language_system"..pc.get_name().."") == 1 begin
            say_title
("Blacksmith:")
            
say("")
            
say("Bla..bla -> ENGLISH")
        
end

        when 20016.chat
."Informazioni" with game.get_event_flag("language_system"..pc.get_name().."") == 2 begin
            say_title
("Fabbro:")
            
say("")
            
say("Bla..bla -> ITALIAN")
        
end

        when 20016.chat
."Information" with game.get_event_flag("language_system"..pc.get_name().."") == 3 begin
            say_title
("Fabbro:")
            
say("")
            
say("Bla..bla -> DEUTSCH")
        
end
    end
end 
About:
Quote:
This multi-language can be work only with the character !
There exist and a quest how put in account-> language :
1, 2 or 3 but is at a payment.
03/22/2013 14:04 #SoNiice#2
Had this already a few years ago at my international server - not the best solution.
03/22/2013 14:06 MrGanja#3
Quote:
Originally Posted by SoNiice View Post
Had this already a few years ago at my international server - not the best solution.
The good system with mysql table is at payment...

Yes i know is not the best but can be used by anyone without problems ...
03/22/2013 14:11 ´Sh4Xx`#4
PHP Code:
quest multi_language_first begin 
    state start begin 
        when login with game
.get_event_flag("language_system"..pc.get_name().."") == 0 begin 
            set_state
(multi_language_0) 
        
end 
    end 

    state multi_language_0 begin 
        when letter with game
.get_event_flag("language_system"..pc.get_name().."") == 0 begin 
            send_letter
("Multi-Language") 
        
end 

        when button 
or info begin 
            say_title
("Multi-Language:") 
            
say("") 
            
say("Bla..bla") 
            
local language = select("English", "Italian", "Deutsch") 
            if 
language == 1 then 
                say_title
("Multi-Language:") 
                
say("") 
                
say("Bla..bla") 
                
say_reward("Very good, your base language is English!") 
                
game.set_event_flag("language_system"..pc.get_name().."", 1) 
                
set_state(end_multi_language_0) 
                return 
            
end 

            
if language == 2 then 
                say_title
("Multi-Language:") 
                
say("") 
                
say("Bla..bla") 
                
say_reward("Molto bene, la tua lingua di base è l'Inglese!") 
                
game.set_event_flag("language_system"..pc.get_name().."", 2) 
                
set_state(end_multi_language_0) 
                return 
            
end 

            
if language == 3 then 
                say_title
("Multi-Language:") 
                
say("") 
                
say("Bla..bla") 
                
say_reward("Sehr gut, ihre Basis sprache ist Deutsch!") 
                
game.set_event_flag("language_system"..pc.get_name().."", 3) 
                
set_state(end_multi_language_0) 
                return 
            
end 
        end 
    end 

    state end_multi_language_0 begin 
    end 


PHP Code:
uest multi_language_after begin 
    state start begin 
        when login 
or levelup with game.get_event_flag("language_system"..pc.get_name().."") == 1 or game.get_event_flag("language_system"..pc.get_name().."") == 2 or game.get_event_flag("language_system"..pc.get_name().."") == 3 begin 
            set_state
(multi_language_1) 
        
end 
    end 

    state multi_language_1 begin 
        when letter with game
.get_event_flag("language_system"..pc.get_name().."") == 1 or game.get_event_flag("language_system"..pc.get_name().."") == 2 or game.get_event_flag("language_system"..pc.get_name().."") == 3 begin 
            send_letter
("Reset Multi-Language") 
        
end 

        when button 
or info begin 
            say_title
("Multi-Language:") 
            
say("") 
            
say("Bla..bla") 
            
local language = select("English", "Italian", "Deutsch") 
            if 
language == 1 then 
                say_title
("Multi-Language:") 
                
say("") 
                
say("Bla..bla") 
                
say_reward("Very good, your base language is English!") 
                
game.set_event_flag("language_system"..pc.get_name().."", 1) 
                return 
            
end 

            
if language == 2 then 
                say_title
("Multi-Language:") 
                
say("") 
                
say("Bla..bla") 
                
say_reward("Molto bene, la tua lingua di base è l'Inglese!") 
                
game.set_event_flag("language_system"..pc.get_name().."", 2) 
                return 
            
end 

            
if language == 3 then 
                say_title
("Multi-Language:") 
                
say("") 
                
say("Bla..bla") 
                
say_reward("Sehr gut, ihre Basis sprache ist Deutsch!") 
                
game.set_event_flag("language_system"..pc.get_name().."", 3) 
                return 
            
end 
        end 
    end 
end 

Sorry so is better :D i hate Translator German ^^
03/22/2013 14:39 kekoroto#5
Quote:
Originally Posted by MrGanja View Post
Yes i know is not the best but can be used by anyone without problems ...
Appart from having to translate all the npcs and quests to each of the three different idioms that you put in the game flags :S
03/22/2013 19:37 ionutxp#6
Mysql on quest texts for premium. I don't think it's a good idea?
I would make something like:

dofile("blah/blah/blah/"..get_current_language()..".lang") where you define global variables (or constants)
BLACKSMITH_QUEST_TEXT = "Hello.[ENTER]I am the BlackSmith"
I will try that and i will post some results.
03/22/2013 19:41 MrGanja#7
Quote:
Originally Posted by ionutxp View Post
Mysql on quest texts for premium. I don't think it's a good idea?
I would make something like:

dofile("blah/blah/blah/"..get_current_language()..".lang") where you define global variables (or constants)
BLACKSMITH_QUEST_TEXT = "Hello.[ENTER]I am the BlackSmith"
I will try that and i will post some results.
In mysql it's better, and really do you want to make a file.lang with all say? o.O

what the fuck you tall?

dofile = load
local get_current_language = input() (your name language)
dofile("blah/blah/blah/blah/"..get_current_language()..".lang") and now how define the text maybe use in .quest
local s = select("english.YES", "english.NO")

Who make all that work it's need to much....
03/22/2013 19:45 ionutxp#8
But is better to make 312139102931 requests on mysql just for sake of multi-languages?
get_current_language() will be a function that get de user selected language.
dofile will dinamically parse the lang file on runtime.
It was just an ideea. :)
03/22/2013 19:47 MrGanja#9
Quote:
Originally Posted by ionutxp View Post
But is better to make 312139102931 requests on mysql just for sake of multi-languages?
get_current_language() will be a function that get de user selected language.
dofile will dinamically parse the lang file on runtime.
It was just an ideea. :)
I don't think it's a good ideea...

you don't need to make 312139102931 requests it's need only 3 for account.
INSERT - put the language
UPDATE - change language
SELECT - load quest

And i don't see where is the problem if you load in mysql.

In what mode you load the account id if you don't use mysql or pc.setqf or game.set_event_flag?