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