Da ich ProfiFighter eigt. garnichts mehr mit Metin2 zu tun haben möchte, mache ich eine Quest von mir public.
Info: Item-ID: 80009 & Sprache: Englisch & Was kann dieser Ring: Event-Statuse anzeigen, im GM-Chat schreiben, Teleportieren usw.
PS1: Der Questname steht im Thread-Titel
PS2: Die Quest wurde sehr im komplexen Style geschrieben(Wenn ihr mal nicht wisst, was das in der Quest ist, dann ist es nicht so schlimm).
PS3: Der Fehler in der Quest wurde gefunden und beseitigt. Er war nicht am Ende, was die Sache erschwert hat(Nichts ist besser und auch dämlicher als der Mensch wdf). Also, bitte die neue Version benutzen, falls noch jemand die Alte benutzt!
So, nun die Anleitung:
1.) Das da in den Questordner als Datei "multi_ring.quest" abspeichern:
2.) In die "[locale]_list"-Datei "multi_ring.quest" einfügen.
3.) In der "[locale]_list"-Datei "move_ring.quest" entfernen.
4.) In die "questlib.lua"-Datei "function say_item_name(vnum) say_title(item_name(vnum)..":") end" einfügen.
5.) In die "quest_functions"-Datei "say_item_name" einfügen.
6.) Mir ein Thanks geben
!
Code:
----------------------------------------------------
--Created by ProfiFighter.
----------------------------------------------------
quest multi_ring begin
state start begin
when 80009.use begin
say_item_name(80009)
say("Hi, I'm the multi ring. How can I help you?[ENTER]")
local s = select("Teleport Me", "Let Me", "List Me", "Setting Up", "Close You")
if s != 5 then
say_item_name(80009)
if s == 1 then
if pc.get_level() <= 10 then
say("Hm... With your current level you're too weak to[ENTER]"..
"travel through time and space. Abuse me back when[ENTER]"..
"you're higher than level 10.[ENTER]")
else
say("Pick a location, go wherever you want and press[ENTER]"..
"on top of him. Otherwise, if you go nowhere else[ENTER]"..
"press on top of 'Close'.[ENTER]")
local empire = pc.get_empire()
local warp1 = empire
local warp2 = 1
local warp3 = 3
if empire == 1 then
warp2 = 2
elseif empire == 3 then
warp3 = 2
elseif empire != 2 then
warp2 = 2
end
local new_warp1 = pc.getqf("new_warp1")
local new_warp2 = pc.getqf("new_warp2")
local new_warp3 = pc.getqf("new_warp3")
if new_warp1 != 0 and new_warp2 != 0 and new_warp3 != 0 then
if new_warp1 != new_warp2 and new_warp1 != new_warp3 and new_warp2 != new_warp1 and new_warp2 != new_warp3 and new_warp3 != new_warp1 and new_warp3 != new_warp2 then
if new_warp1 != warp1 then
warp1 = new_warp1
end
if new_warp2 != warp2 then
warp2 = new_warp2
end
if new_warp3 != warp3 then
warp3 = new_warp3
end
end
else
if new_warp1 != 0 then
pc.setqf("new_warp1", 0)
end
if new_warp2 != 0 then
pc.setqf("new_warp2", 0)
end
if new_warp3 != 0 then
pc.setqf("new_warp3", 0)
end
end
local warp = {
{
{"Argos", 474300, 954800},
{"Netha", 63800, 166400},
{"London", 959900, 269200},
},
{
{"Maadi", 353100, 882900},
{"Aswan", 145500, 240000},
{"Cornith", 863900, 246000},
},
}
local warp_list = 1
s = select(warp[warp_list][warp1][1], warp[warp_list][warp2][1], warp[warp_list][warp3][1], "Other Locations", "Close")
if s == 4 then
say_item_name(80009)
say("Pick a location, go wherever you want and press[ENTER]"..
"on top of him. Otherwise, if you go nowhere else[ENTER]"..
"press on top of 'Close'.[ENTER]")
warp_list = 2
s = select(warp[warp_list][warp1][1], warp[warp_list][warp2][1], warp[warp_list][warp3][1], "Back", "Close")
if s == 4 then
say_item_name(80009)
say("Pick a location, go wherever you want and press[ENTER]"..
"on top of him. Otherwise, if you go nowhere else[ENTER]"..
"press on top of 'Close'.[ENTER]")
warp_list = 1
s = select(warp[warp_list][warp1][1], warp[warp_list][warp2][1], warp[warp_list][warp3][1], "Other Locations", "Close")
if s == 4 then
say_item_name(80009)
say("Pick a location, go wherever you want and press[ENTER]"..
"on top of him. Otherwise, if you go nowhere else[ENTER]"..
"press on top of 'Close'.[ENTER]")
warp_list = 2
s = select(warp[warp_list][warp1][1], warp[warp_list][warp2][1], warp[warp_list][warp3][1], "Close")
if s == 4 then
return
end
end
end
end
if s != 5 then
local warp_coordinate = 0
if s == 1 then
warp_coordinate = warp1
elseif s == 2 then
warp_coordinate = warp2
elseif s == 3 then
warp_coordinate = warp3
end
test_chat(warp[warp_list][warp_coordinate][2]..warp[warp_list][warp_coordinate][3])
say_item_name(80009)
say("I teleport you there.[ENTER]")
wait()
pc.warp(warp[warp_list][warp_coordinate][2], warp[warp_list][warp_coordinate][3])
end
end
elseif s == 2 then
say("Please choose what you want to make.[ENTER]"..
"Otherwise, if you go nowhere else press[ENTER]"..
"on top of 'Close'.[ENTER]")
s = select("Write In", "Close")
if s == 1 then
say_item_name(80009)
say("Please choose where you want to write in.[ENTER]"..
"Otherwise, if you go nowhere else press[ENTER]"..
"on top of 'Close'.[ENTER]")
s = select("The Global Chat", "Close")
if s == 1 then
say_item_name(80009)
if pc.get_level() <= 30 then
say("Hm... With your current level you're too weak to[ENTER]"..
"travel through time and space. Abuse me back when[ENTER]"..
"you're higher than level 30.[ENTER]")
return
elseif get_time() < pc.getqf("next_time_chat") then
if pc.is_gm() then
pc.setqf("next_time_chat", 0)
else
say("You're only allowed every 15 minutes to send[ENTER]"..
"something here, not for the chat to be View active![ENTER]")
return
end
end
say("Please write your text in the column down there.[ENTER]"..
"For safety, your name will stand before the sentence![ENTER]")
say_reward("Note that you can only send every 15 minutes[ENTER]"..
"a message![ENTER]")
local notice_text = input()
say_item_name(80009)
if notice_text == "" then
say("You have not been writing in the column, so no[ENTER]"..
"message could be sent.[ENTER]")
else
say("'"..notice_text.."'[ENTER]"..
"was sent successful as a global notice.[ENTER]")
notice_all(pc.get_name().." : "..notice_text)
if not pc.is_gm() then
pc.setqf("next_time_chat", get_time() + 900)
end
end
end
end
elseif s == 3 then
say("Please choose what you want to see.[ENTER]"..
"Otherwise, if you go nowhere else press[ENTER]"..
"on top of 'Close'.[ENTER]")
s = select("The Events", "Close")
if s == 1 then
say_item_name(80009)
local oxevent_status = game.get_event_flag("oxevent_status")
local oxevent_status1 = 2
local oxevent_status2 = 1
if oxevent_status == 0 then
oxevent_status1 = 1
elseif oxevent_status == 1 then
oxevent_status2 = 2
else
oxevent_status2 = 3
end
local lotto_chance_of_winning = game.get_event_flag("lotto_chance_of_winning")
local lotto_status1 = 0
if lotto_chance_of_winning == 0 then
lotto_status1 = 1
else
lotto_status1 = 2
end
local status = {
{"Offline", "Online"},
{"None", "Play & Watch", "Watch"},
}
say("Here see you the status of the events.[ENTER]"..
"OX: "..status[1][oxevent_status1].." ("..status[2][oxevent_status2]..").[ENTER]"..
"Lotto: "..status[1][lotto_status1].." ("..lotto_chance_of_winning.."%).[ENTER]")
end
elseif s == 4 then
say("Please choose what you want to change.[ENTER]"..
"Otherwise, if you go nowhere else press[ENTER]"..
"on top of 'Close'.[ENTER]")
s = select("The Teleportation", "Close")
if s == 1 then
say_item_name(80009)
say("Please choose what you want to make[ENTER]"..
"by the teleportation. Otherwise, if you[ENTER]"..
"go nowhere else press on top of 'Close'.[ENTER]")
local new_warp1 = pc.getqf("new_warp1")
local new_warp2 = pc.getqf("new_warp2")
local new_warp3 = pc.getqf("new_warp3")
local mode1 = 0
if new_warp1 != 0 and new_warp2 != 0 and new_warp3 != 0 then
mode1 = 2
else
mode1 = 1
if new_warp1 != 0 then
pc.setqf("new_warp1", 0)
end
if new_warp2 != 0 then
pc.setqf("new_warp2", 0)
end
if new_warp3 != 0 then
pc.setqf("new_warp3", 0)
end
end
local mode = {"Set", "Reset"}
s = select(mode[mode1], "Close")
if s == 1 then
say_item_name(80009)
if mode1 == 1 then
say("Pick a location and press on top of him,[ENTER]"..
"which should be in first place. Otherwise,[ENTER]"..
"if you go nowhere else press on top of[ENTER]"..
"'Close'.[ENTER]")
local nation = {"Milgard Nation (Red)", "Listhmos Nation (Yellow)", "Dendera Nation (Blue)"}
s = select(nation[1], nation[2], nation[3], "Close")
if s != 4 then
say_item_name(80009)
say("Pick a location and press on top of him,[ENTER]"..
"which should be in second place. Otherwise,[ENTER]"..
"if you go nowhere else press on top of[ENTER]"..
"'Close'.[ENTER]")
local new_warp1 = s
local warp1 = 1
local warp2 = 3
if new_warp1 == 1 then
warp1 = 2
elseif new_warp1 == 3 then
warp2 = 2
end
s = select(nation[warp1], nation[warp2], "Close")
if s != 3 then
local new_warp2 = 0
if s == 1 then
new_warp2 = warp1
elseif s == 2 then
new_warp2 = warp2
end
local new_warp3 = 0
if new_warp1 == 1 then
if new_warp2 == 2 then
new_warp3 = 3
elseif new_warp2 == 3 then
new_warp3 = 2
end
elseif new_warp1 == 2 then
if new_warp2 == 1 then
new_warp3 = 3
elseif new_warp2 == 3 then
new_warp3 = 1
end
elseif new_warp1 == 3 then
if new_warp2 == 1 then
new_warp3 = 2
elseif new_warp2 == 2 then
new_warp3 = 1
end
end
say_item_name(80009)
say("First: "..nation[new_warp1]..".[ENTER]"..
"Second: "..nation[new_warp2]..".[ENTER]"..
"Third: "..nation[new_warp3]..".[ENTER]"..
"Is this right?[ENTER]")
s = select(locale.yes, locale.no)
if s == 1 then
say_item_name(80009)
say("Settings are applied.[ENTER]")
pc.setqf("new_warp1", new_warp1)
pc.setqf("new_warp2", new_warp2)
pc.setqf("new_warp3", new_warp3)
end
end
end
elseif mode1 == 2 then
say("The teleportation procedure has been reset to[ENTER]"..
"their default.[ENTER]")
if pc.getqf("new_warp1") != 0 then
pc.setqf("new_warp1", 0)
end
if pc.getqf("new_warp2") != 0 then
pc.setqf("new_warp2", 0)
end
if pc.getqf("new_warp3") != 0 then
pc.setqf("new_warp3", 0)
end
end
end
end
end
end
end
end
end
3.) In der "[locale]_list"-Datei "move_ring.quest" entfernen.
4.) In die "questlib.lua"-Datei "function say_item_name(vnum) say_title(item_name(vnum)..":") end" einfügen.
5.) In die "quest_functions"-Datei "say_item_name" einfügen.
6.) Mir ein Thanks geben






