Jump to content

Multi Language Offline Message System


Recommended Posts

M2 Download Center

This is the hidden content, please
( Internal )

Hi metin2dev,
First multi language offline message system by [007]DawisHUN

Information:
 

Spoiler

------------------------------------------
--- Információ ---
--- [007]DawisHUN ---
--- Offline levél rendszer ---
--- Verzió : 1.0.0.3 ---
------------------------------------------

Installation:
Install in MySQL

Spoiler

Player table + console....

Spoiler

CREATE TABLE `Leveles_lada` (
`id`  int(16) NOT NULL ,
`kuldo`  varchar(50) NOT NULL ,
`uzenet`  varchar(50) NOT NULL ,
PRIMARY KEY (`id`)
)
;
 

IN Notepad++
convert to ANSI
SAVE AS
offline_levelezes.quest

Language :

Spoiler
  • Hungarian
  • English
  • German
  • Turkish coming soon Special thank daradevil124

Have problem?

  • Reply to this topic ...
  • Quote topic
  • i will work on including more language
  • Try to help? send me PM ;)


Offline_levelezes.quest
 

Spoiler

------------------------------------------
--- Információ ---
--- [007]DawisHUN ---
--- Offline levél rendszer ---
--- Verzió : 1.0.0.3 ---
------------------------------------------
--- MySQLre való telepítés ---
--- player táblázat jobb klik ---
--- Konzol ---
--- MÁSOLD EZT BE ---
--- CREATE TABLE `Leveles_lada` ( ---
--- `id`  int(16) NOT NULL , ---
--- `kuldo`  varchar(50) NOT NULL , ---
--- `uzenet`  varchar(50) NOT NULL , ---
--- PRIMARY KEY (`id`) ---
--- ) ---
--- ;  ---
---  ---
------------------------------------------
--- Telepítés: ---
--- Átalakítás ANSIra ---
--- Mentés másként (CTRL+ALT+S) ---
--- Mentsd így: offline_levelezes.quest ---
------------------------------------------
quest offline_levelezes begin
    state start begin
        when 9006.chat."Üzenetek" with pc.getqf("nyelv")==0 begin
            say_title(mob_name(npc.get_race())..":")
            say("")
            say("")
            local nyelv = select("Magyar","English","Deutch")
            if nyelv == 1 then
                pc.setqf("magyar", 1)
                pc.setqf("nyelv", 1)
            end
            if nyelv == 2 then
                pc.setqf("english", 1)
                pc.setqf("nyelv", 1)
            end
            if nyelv == 3 then
                pc.setqf("deutch", 1)
                pc.setqf("nyelv", 1)
            end
        end
----------------------------------------------------------------------------------------------
---                                         HUNGARIAN LANGUAGE                             ---
----------------------------------------------------------------------------------------------
        when 9006.chat."Üzenetek" with pc.getqf("magyar")==1 and pc.getqf("nyelv")==1 begin
            say_title(mob_name(npc.get_race())..":")
            say("")
            ---
            say("Szia "..pc.name)
            say("Mit szeretnél tenni? ")
            say("")
            local magyar = select("Beérkező leveleim","Üzenet írása","Bezárni")
            if(magyar == 1) then
                say_title(mob_name(npc.get_race())..":")
                say("[DELAY value; 350]Adatok lekérdezése (1)/(2)[/DELAY]")
                say("[DELAY value; 150]Adatok lekérdezése (2)/(2)[/DELAY]")
                say("")
                ---
                local inbox = mysql_query("select * from player.Leveles_lada where id = '"..pc.get_player_id().."' ")
                local inbox_table = {}
                for i = 1,table.getn(inbox),1 do
                    table.insert(inbox_table,inbox.uzenet)
                end
                table.insert(inbox_table,"Close")
 
                if(table.getn(inbox) == 0) then
                    say_reward("Jelenleg nincs üzeneted. ")
                    say_reward("Offline levelező rendszert készítette ")
                    say_reward("[007]DawisHUN .")
                    say_reward("Verzió 1.0.0.3")
                    say_reward("Nézz vissza később. ")
                    return
                end
 
                local m = select_table(inbox_table)
                if(table.getn(inbox_table) == magyar) then
                    return
                elseif(table.getn(inbox_table) >= magyar) then
                    say_title(inbox.kuldo[m]..": ")
                    say("")
                    ---
                    say(inbox_table[m])
                    say("")
                    say_reward("Törölni szeretnéd az üzenetett? ")
                    local q = select(locale.yes,locale.no)
                    if(q == 2) then
                    return
                    end
                    mysql_query("delete * from player.Leveles_lada where kuldo = '"..inbox.kuldo[m].."' ")
                    say_title(mob_name(npc.get_race())..":")
                    say("")
                    ---
                    say_reward("Az üzenet sikeresen törölve. ")
                    say_reward("Offline levelező rendszert készítette ")
                    say_reward("[007]DawisHUN .")
                    say_reward("Verzió 1.0.0.3")
                    say_reward("Viszlát,Később. ")
                    say_reward("")
                end
            elseif(magyar == 2) then
                say_title(mob_name(npc.get_race())..":")
                say("[DELAY value; 350]Adatok lekérdezése (1)/(2)[/DELAY]")
                say("[DELAY value; 150]Adatok lekérdezése (2)/(2)[/DELAY]")
                say("")
                ---
                say("Szeretnéd elküldeni ezt az üzenetett? ")
                say("Add meg a nevét. ")
                local sname = input()
                local search = find_pc_by_name(sname)
                say_title(mob_name(npc.get_race())..":")
                say("")
                ---
                if(tostring(sname) == nil or sname == "") then
                    say("Add meg a nevét. ")
                    return
                elseif(search == 1) then
                    say("Jelenleg elérhető a játékos. ")
                    say("Te most csak szórakozol velem? ")
                end
                local sp = pc.select(sname)
                local l = pc.get_player_id()
                pc.select(sp)    
                say("Mi az üzeneted? ")
                say("Írd a szöveg dobozba. ")
                local uzenet = input()
                say_title(mob_name(npc.get_race())..":")
                say("")
                ---
                if(tostring(uzenet) == nil or uzenet == "") then
                    say("írd az üzenetedet. ")
                    return
                end
                mysql_query("insert into player.Leveles_lada values ('"..l.."','"..pc.name.."','"..uzenet.."') ")
                say_reward("Az üzenet sikeresen elküldve! ")
                say_reward("Offline levelező rendszert készítette ")
                say_reward("[007]DawisHUN .")
                say_reward("Verzió 1.0.0.3")
                say_reward("Viszlát,Később. ")
            end
        end
----------------------------------------------------------------------------------------------
---                                         ENGLISH LANGUAGE                             ---
----------------------------------------------------------------------------------------------
        when 9006.chat."Messages" with pc.getqf("english")==1 and pc.getqf("nyelv")==1 begin
            say_title(mob_name(npc.get_race())..":")
            say("")
            ---
            say("Hi "..pc.name)
            say("What do you want? ")
            say("")
            local english = select("My Inbox","Write Message","Close")
            if(english == 1) then
                say_title(mob_name(npc.get_race())..":")
                say("[DELAY value; 350]connecting to the host(1)/(2)[/DELAY]")
                say("[DELAY value; 150]connecting to the host . . .(2)/(2)[/DELAY]")
                say("")
                ---
                local inbox = mysql_query("select * from player.Leveles_lada where id = '"..pc.get_player_id().."' ")
                local inbox_table = {}
                for i = 1,table.getn(inbox),1 do
                    table.insert(inbox_table,inbox.uzenet)
                end
                table.insert(inbox_table,"Close")
 
                if(table.getn(inbox) == 0) then
                    say("Currently don't have any messages. ")
                    say_reward("Offline Message system By ")
                    say_reward("[007]DawisHUN .")
                    say_reward("Version 1.0.0.3")
                    say_reward("See you later. ")
                    return
                end
 
                local m = select_table(inbox_table)
                if(table.getn(inbox_table) == english) then
                    return
                elseif(table.getn(inbox_table) >= english) then
                    say_title(inbox.kuldo[m]..": ")
                    say("")
                    ---
                    say(inbox_table[m])
                    say("")
                    say_reward("Do you want to delete the message? ")
                    local q = select(locale.yes,locale.no)
                    if(q == 2) then
                    return
                    end
                    mysql_query("delete * from player.Leveles_lada where kuldo = '"..inbox.kuldo[m].."' ")
                    say_title(mob_name(npc.get_race())..":")
                    say("")
                    ---
                    say_reward("Message was succesfully deleted. ")
                    say_reward("Offline levelező rendszert készítette ")
                    say_reward("Offline Message system By ")
                    say_reward("[007]DawisHUN .")
                    say_reward("Version 1.0.0.3")
                    say_reward("See you later. ")
                    say_reward("")
                end
            elseif(english == 2) then
                say_title(mob_name(npc.get_race())..":")
                say("[DELAY value; 350]connecting to the host(1)/(2)[/DELAY]")
                say("[DELAY value; 150]connecting to the host . . .(2)/(2)[/DELAY]")
                say("")
                ---
                say("To whom will you send the message? ")
                say("write his name. ")
                local sname = input()
                local search = find_pc_by_name(sname)
                say_title(mob_name(npc.get_race())..":")
                say("")
                ---
                if(tostring(sname) == nil or sname == "") then
                    say("Write a name. ")
                    return
                elseif(search == 1) then
                    say("this person is now online. ")
                    say("are you kidding me? ")
                end
                local sp = pc.select(sname)
                local l = pc.get_player_id()
                pc.select(sp)    
                say("What is the message? ")
                say("Write in the box. ")
                local uzenet = input()
                say_title(mob_name(npc.get_race())..":")
                say("")
                ---
                if(tostring(uzenet) == nil or uzenet == "") then
                    say("Write a message. ")
                    return
                end
                mysql_query("insert into player.Leveles_lada values ('"..l.."','"..pc.name.."','"..uzenet.."') ")
                say_reward("Message was successfully sent. ")
                say_reward("Offline Message system By ")
                say_reward("[007]DawisHUN .")
                say_reward("Version 1.0.0.3")
                say_reward("See you later. ")
            end
----------------------------------------------------------------------------------------------
---                                         GERMAN LANGUAGE                             ---
----------------------------------------------------------------------------------------------
        when 9006.chat."Nachrichten" with pc.getqf("deutch")==1 and pc.getqf("nyelv")==1 begin
            say_title(mob_name(npc.get_race())..":")
            say("")
            ---
            say("Hallo "..pc.name)
            say("Was willst du? ")
            say("")
            local deutch = select("Posteingang","Neue Nachricht","Abbrechen")
            if(deutch == 1) then
                say_title(mob_name(npc.get_race())..":")
                say("[DELAY value; 350]connecting to the host(1)/(2)[/DELAY]")
                say("[DELAY value; 150]connecting to the host . . .(2)/(2)[/DELAY]")
                say("")
                ---
                local inbox = mysql_query("select * from player.Leveles_lada where id = '"..pc.get_player_id().."' ")
                local inbox_table = {}
                for i = 1,table.getn(inbox),1 do
                    table.insert(inbox_table,inbox.uzenet)
                end
                table.insert(inbox_table,"Close")
 
                if(table.getn(inbox) == 0) then
                    say("Du hast keine neuen Nachrichten. ")
                    say_reward("Offline Message system By ")
                    say_reward("[007]DawisHUN .")
                    say_reward("Version 1.0.0.3")
                    say_reward("Bis später. ")
                    return
                end
 
                local m = select_table(inbox_table)
                if(table.getn(inbox_table) == deutch) then
                    return
                elseif(table.getn(inbox_table) >= deutch) then
                    say_title(inbox.kuldo[m]..": ")
                    say("")
                    ---
                    say(inbox_table[m])
                    say("")
                    say_reward("Willst du diese Nachricht wirklich löschen? ")
                    local q = select(Ja","Nein")
                    if(q == 2) then
                    return
                    end
                    mysql_query("delete * from player.Leveles_lada where kuldo = '"..inbox.kuldo[m].."' ")
                    say_title(mob_name(npc.get_race())..":")
                    say("")
                    ---
                    say_reward("Die Nachricht wurde gelöscht. ")
                    say_reward("Offline levelező rendszert készítette ")
                    say_reward("Offline Message system By ")
                    say_reward("[007]DawisHUN .")
                    say_reward("Version 1.0.0.3")
                    say_reward("Bis später. ")
                    say_reward("")
                end
            elseif(deutch == 2) then
                say_title(mob_name(npc.get_race())..":")
                say("[DELAY value; 350]connecting to the host(1)/(2)[/DELAY]")
                say("[DELAY value; 150]connecting to the host . . .(2)/(2)[/DELAY]")
                say("")
                ---
                say("An wen willst du die Nachricht senden? ")
                say("Gib seinen Namen ein ")
                local sname = input()
                local search = find_pc_by_name(sname)
                say_title(mob_name(npc.get_race())..":")
                say("")
                ---
                if(tostring(sname) == nil or sname == "") then
                    say("Gib einen Namen ein. ")
                    return
                elseif(search == 1) then
                    say("Diese Person ist nun online. ")
                    say("Willst du mich rollen? ")
                end
                local sp = pc.select(sname)
                local l = pc.get_player_id()
                pc.select(sp)    
                say("Wie lautet die Nachricht? ")
                say("Gib eine Nachricht ein. ")
                local uzenet = input()
                say_title(mob_name(npc.get_race())..":")
                say("")
                ---
                if(tostring(uzenet) == nil or uzenet == "") then
                    say("Gib eine Nachricht ein. ")
                    return
                end
                mysql_query("insert into player.Leveles_lada values ('"..l.."','"..pc.name.."','"..uzenet.."') ")
                say_reward("Nachricht erfolgreich übermittelt. ")
                say_reward("Offline Message system By ")
                say_reward("[007]DawisHUN .")
                say_reward("Version 1.0.0.3")
                say_reward("Bis später. ")
            end
        end
    end
end

 

It will help " + " thank you :)

  • Metin2 Dev 3
  • Good 1
  • Love 5

787292068_Nvtelen.png.6faa7b0bbb3398fd29

Link to comment
Share on other sites

300+ lines for translate and exist 3 quests per language..omg.

I will prefer much better something like this:

translate[1].offline_msg = {}
translate[1].offline_msg.notice = "Választott nyelv: Magyar!"

translate[2].offline_msg = {}
translate[2].offline_msg.notice = "Language selected: English!"

translate[3].offline_msg = {}
translate[3].offline_msg.notice = "Sprache gewählt: Deutsch!"

And quest for select need to look like this:

quest offline_message begin
    state start begin
        when 9006.chat."Select lang" with pc.getqf("selected") == 0 begin
            say_title(mob_name(npc.get_race())..":")
            say("")
            local selected = select("Magyar", "English", "Deutsch")

			for key = 1, 3 do
				if selected == key then
					pc.setqf("lang", key)
					pc.setqf("selected", 1)
					say(translate[pc.getqf("lang")].offline_msg.notice)
				end
			end
		end
	end
end

 

And now you can call all with:

  • say(translate[pc.getqf("lang")].offline_msg.name)
Link to comment
Share on other sites

4 hours ago, PACI said:

@Tasho, didn't get that for-loop.

Yeah i know, was just for other shit things, sorry.

  • You can do it like this, without loop.
	if selected then
		[.......]
	end
  • Or you can remove without check selected and without any loops.
quest offline_message begin
    state start begin
        when 9006.chat."Select lang" with pc.getqf("selected") == 0 begin
			say_title(mob_name(npc.get_race())..":")
			say("")
			local selected = select("Magyar", "English", "Deutsch")

			pc.setqf("lang", selected)
			pc.setqf("selected", 1)
			say(translate[pc.getqf("lang")].offline_msg.notice)
			end
		end
	end
end

 

Link to comment
Share on other sites

Announcements



×
×
  • 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.