forked from metin2/server
146 lines
5.4 KiB
Plaintext
146 lines
5.4 KiB
Plaintext
|
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
|
||
|
|
||
|
|