forked from metin2/server
1
0
Fork 0
server/gamefiles/data/quest/guild_manage.quest

146 lines
5.4 KiB
Plaintext
Raw Normal View History

quest guild_building begin
state start begin
when guild_man1.chat.gameforge.guild_manage._10_npcChat or guild_man2.chat.gameforge.guild_manage._10_npcChat or guild_man3.chat.gameforge.guild_manage._10_npcChat with pc.is_gm() begin
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._20_say)
local u_name = input()
local u_vid=find_pc_by_name(u_name)
if u_vid==0 then
say_title(gameforge.guild_manage._30_sayTitle)
say(u_name)
return
end
local old_vid = pc. select(u_vid , u_vid )
u_withdrawTime=pc.getqf("new_withdraw_time")
u_withdrawTime=pc.getqf("new_withdraw_time")
pc. select(old_vid , old_vid )
withdrawDelay=game.get_event_flag("guild_withdraw_delay")
disbandDelay=game.get_event_flag("guild_disband_delay")
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._40_say)
if u_withdrawTime>0 then
say(string.format(gameforge.guild_manage._50_say, time_to_str(u_withdrawTime)..gameforge.guild_manage._55_say.. withdrawDelay))
end
if u_disbandTime>0 then
say(string.format(gameforge.guild_manage._60_say, time_to_str(u_disbandTime)..gameforge.guild_manage._65_say.. disbandDelay))
end
local retryTime1 = u_withdrawTime + withdrawDelay*86400
local retryTime2 = u_withdrawTime + disbandDelay*86400
local retryTime = 0
if retryTime1 > retryTime2 then
retryTime = retryTime1
else
retryTime = retryTime2
end
local curTime = get_time()
if curTime < retryTime then
say(string.format(gameforge.guild_manage._70_say, time_to_str(retryTime)..gameforge.guild_manage._75_say..((retryTime-curTime)/3600)))
if is_test_server() then
local s= select(gameforge.guild_manage._80_select, gameforge.arena_manager._200_tableInsert)
if s==1 then
local old_vid = pc. select(u_vid , u_vid )
local curTime=get_time()
pc.setqf("new_withdraw_time", curTime-withdrawDelay*86400)
pc.setqf("new_withdraw_time", curTime-disbandDelay*86400)
pc. select(old_vid , old_vid )
end
end
else
say(gameforge.guild_manage._90_say)
end
end
when guild_man1.chat.gameforge.guild_manage._100_npcChat or guild_man2.chat.gameforge.guild_manage._100_npcChat or guild_man3.chat.gameforge.guild_manage._100_npcChat with pc.is_gm() begin
test_chat(string.format(gameforge.guild_manage._110_chat, bool_to_str(pc.has_guild()).." [ENTER]pc.is_guildmaster: "..bool_to_str(pc.isguildmaster()).." [ENTER]pc.empire: "..pc.empire.." [ENTER]npc.empire: "..npc.empire))
end
when guild_man1.chat.gameforge.locale.guild.withdraw or guild_man2.chat.gameforge.locale.guild.withdraw or guild_man3.chat.gameforge.locale.guild.withdraw with pc.hasguild() and not pc.isguildmaster() and (pc.is_gm() or npc.empire == pc.empire) begin
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._120_say)
local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no)
if s==1 then
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._130_say)
pc.remove_from_guild()
pc.setqf("new_withdraw_time",get_global_time())
end
end
when guild_man1.chat.gameforge.locale.guild.disband or guild_man2.chat.gameforge.locale.guild.disband or guild_man3.chat.gameforge.locale.guild.disband with pc.hasguild() and pc.isguildmaster() and (pc.is_gm() or npc.empire == pc.empire) begin
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._140_say)
local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no)
if s==1 then
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._150_say)
pc.destroy_guild()
pc.setqf("new_disband_time", get_global_time())
pc.setqf("new_withdraw_time", get_global_time())
end
end
when guild_man1.chat.gameforge.guild_manage._160_npcChat or guild_man2.chat.gameforge.guild_manage._170_npcChat or guild_man3.chat.gameforge.guild_manage._170_npcChat begin
local level_limit;
local guild_create_item
level_limit = 40
guild_create_item = false
if pc.hasguild() then
return
end
if game.get_event_flag("guild_withdraw_delay")*86400 >
get_global_time() - pc.getqf("new_withdraw_time") then
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._180_say)
-- say(string.format(gameforge.guild_manage._190_say, game.get_event_flag("guild_withdraw_delay")))
return
end
if game.get_event_flag("guild_disband_delay")*86400 >
get_global_time() - pc.getqf("new_withdraw_time") then
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._200_say)
-- say(string.format(gameforge.guild_manage._190_say, game.get_event_flag("guild_disband_delay")))
return
end
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._210_say)
local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no)
if s == 2 then
return
end
if pc.level >= 40 then
if pc.gold >= 200000 then
if not guild_create_item or pc.countitem(guild_create_item)>0 then
game.request_make_guild()
end
else
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._220_say)
return
end
else
say_title(gameforge.find_squareguard._10_targetVid)
say(gameforge.guild_manage._230_say)
end
end
end
end