forked from metin2/server
113 lines
4.0 KiB
Plaintext
113 lines
4.0 KiB
Plaintext
|
--[[
|
||
|
This quest send the player a letter with Information about new Stuff
|
||
|
At the Moment we have 3 possible options:
|
||
|
1. Happy Hour in the shop
|
||
|
2. New stuff in the shop
|
||
|
3. security announce
|
||
|
|
||
|
Concept side: https://wiki.gameforge.de/bin/view/MMO/Metin2/ConceptIngameAnnounce
|
||
|
Workflow ticket: https://mantis-i.gameforge.de/view.php?id=76862
|
||
|
]]
|
||
|
|
||
|
quest ingame_message begin
|
||
|
state start begin
|
||
|
|
||
|
-- return the unique message id for campaign
|
||
|
function get_message_id()
|
||
|
return (game.get_event_flag("message_id"))
|
||
|
end --end function get_message_id
|
||
|
|
||
|
-- return which kind of message appear
|
||
|
function get_message_type()
|
||
|
return (game.get_event_flag("message_type"))
|
||
|
end --end function get_message_type
|
||
|
|
||
|
-- return the displayed item vnum
|
||
|
function get_announce_vnum()
|
||
|
return (game.get_event_flag("message_item_vnum"))
|
||
|
end --end function get_announce_vnum
|
||
|
|
||
|
-- return the vnum that can is the gift
|
||
|
function get_gift_vnum()
|
||
|
return (game.get_event_flag("message_gift_vnum"))
|
||
|
end --end function get_gift_vnum
|
||
|
|
||
|
--[[
|
||
|
Provide a duration time to have a option to show options often
|
||
|
Value should be hours ;)
|
||
|
]]
|
||
|
function get_message_duration()
|
||
|
local duration = game.get_event_flag("message_duration")
|
||
|
-- if not duration is set, we will implement the standard 24h duration
|
||
|
if duration == 0 then
|
||
|
duration = 24
|
||
|
end
|
||
|
|
||
|
return duration
|
||
|
end --end function get_message_id
|
||
|
|
||
|
when info or button begin
|
||
|
local message_type = ingame_message.get_message_type()
|
||
|
if message_type == 1 then
|
||
|
--local happyhour_start = game.get_event_flag("message_happyhour_start")
|
||
|
--local happyhour_end = game.get_event_flag("message_happyhour_end")
|
||
|
--say_size(250, 250)
|
||
|
-- say_show_item(70029)
|
||
|
-- Eine günstige Gelegenheit
|
||
|
say_important_title(gameforge.ingame_message._010_sayTitle)
|
||
|
--say_important(string.format("Heute von %s bis %s Happy Hour!", happyhour_start, happyhour_end))
|
||
|
say("")
|
||
|
-- Eine neue Aktion ist im Item-Shop gestartet! Verpasse nicht diese günstige Gelegenheit und besuche direkt den Item-Shop.
|
||
|
say_important(gameforge.ingame_message._020_say)
|
||
|
local c = select(gameforge.locale.guild.yes, gameforge.locale.guild.no)
|
||
|
if 2 == c then
|
||
|
return
|
||
|
else
|
||
|
game.open_web_mall()
|
||
|
end
|
||
|
elseif message_type == 2 then
|
||
|
local new_item_vnum = ingame_message.get_announce_vnum()
|
||
|
say_important_title(gameforge.ingame_message._030_sayTitle)
|
||
|
say_item_vnum(new_item_vnum) -- icon of item
|
||
|
say_important(gameforge.ingame_message._040_say)
|
||
|
-- We will provide the user the option to select the gift
|
||
|
local gift_vnum = ingame_message.get_gift_vnum()
|
||
|
local message_id = ingame_message.get_message_id()
|
||
|
local gift_check = pc.getqf("gift_" .. message_id .. "_" ..gift_vnum)
|
||
|
|
||
|
if gift_check < 1 and gift_vnum != 0 then
|
||
|
wait()
|
||
|
-- Ein Geschenk der Götter
|
||
|
say_title(gameforge.important_message._050_sayTitle)
|
||
|
say(gameforge.ingame_message._060_say)
|
||
|
local gift = select(gameforge.ingame_message._070_select, gameforge.ingame_message._080_select)
|
||
|
if gift == 1 then
|
||
|
pc.give_item2(gift_vnum, 1)
|
||
|
pc.setqf("gift_"..message_id.."_"..gift_vnum, 1)
|
||
|
end -- gift vergeben
|
||
|
end -- gift check
|
||
|
|
||
|
else
|
||
|
say_important_title("GM News")
|
||
|
say_important("Du wirst nie nach Login gefragt")
|
||
|
end
|
||
|
end --endbegin letter
|
||
|
|
||
|
when login with ingame_message.get_message_type() > 0 begin
|
||
|
local message_type = ingame_message.get_message_type()
|
||
|
local duration_time = ingame_message.get_message_duration()
|
||
|
|
||
|
if get_time() > pc.getqf("duration") then
|
||
|
pc.setqf("duration",get_time()+60*60*duration_time)--------------24 Stunden
|
||
|
if message_type == 1 then
|
||
|
send_letter(gameforge.ingame_message._010_sayTitle)
|
||
|
elseif message_type == 2 then
|
||
|
send_letter(gameforge.ingame_message._030_sayTitle)
|
||
|
else
|
||
|
send_letter("GM News")
|
||
|
end -- endif
|
||
|
end -- endif duration
|
||
|
end -- endif
|
||
|
end -- endbegin state start
|
||
|
end -- endbegin quest
|