Jump to content

Nightwish

Inactive Member
  • Posts

    30
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Posts posted by Nightwish

  1. Hello m2dev community,

     

    today I had the idea to make it possible to switch new bonuses like RESIST_EARTH and RESIST_ICE.

     

    (Im using an privat core powered by Vanilla, so 40k)  

    I added the bonuses in the item_attr table. But ingame I was just able to get "Energy". If I equip the item the core goes down.

     

    Any Ideas? Any Ideas for client modification to give the boni a clientside name? (there are locale_game entrys for those bonuses)

     

    King regards

     

    Nightwish

  2. If you want to open a (promotet) big german server you have to go to voxility directly !.

     

    I have bought a server at blazingfast aka. xertonia and its really useless. The network connection is at the end cause everybody uses 5$ VPS to flood somebody else.

    Im going with vox cause there is no other hoster I trust in anymore (in the protecton thing), OVH has a great firewall but its not directly filtering. The swiss host (i forgot the name) is also taken down by some ppl.

     

    So back to the money, there is no other host I can take, so im paying over 700€ (962,22$) in the month. If some ppl hate you, you need this (im talking about german servers).

     

    Watchout! If you are going with voxility (or even if you not!), block the whole subnets of blazingfast!

     

    King regards

  3. Create a new item (the item you put in the belt), call it like the the original and use the same picture for it. Then you go into your

     

    root -> constinfo

    def GET_BELT_MATERIAL_VNUM(vnum, subType = 0):
    	# ÇöÀç´Â ¸ðµç º§Æ®¿¡´Â ÇϳªÀÇ ¾ÆÀÌÅÛ(#18900)¸¸ »ðÀÔ °¡´É
    	return 18900

     and change the "return 18900" (the Item you put into your belt) into the fake item (i used value 18901)

     

    King regards.

    • Love 6
  4. Hello, 

     

    I have two problems.

     

    1. The blazing purgatory quest stops at one point. Everysting works beside this part. Its the level where you have to kill all mobs spawning in one area.

     

    Here is the part of the quest wich seems buggy.

     

    [FULL QUEST, .DE Files]

    define BLOCK_DOOR 20387
    define DUNGEON_MAN 20385
    define DUNGEON_MAN_DIR 0
    define DUNGEON_MAP_INDEX 351
    define ENTER_LIMIT_TIME 30
    define ENTRY_MAN 20394
    define ENTRY_MAP_INDEX 62
    define FINAL_BOSS 6091
    define LEVEL2_KEY 30329
    define LEVEL2_STONE 20386
    define LEVEL4_TARGET 6051
    define LEVEL5_REALKEY 30330
    define LEVEL5_STONE 20386
    define LEVEL5_GEN_LIMIT 100
    define LEVEL6_TARGET 8057
    define LEVEL_CUT 100
    define MOB_REGEN_FILE_PATH = "data/dungeon/flame_dungeon/"
    define IN_DOOR 20388
    define NPC_REGEN_FILE_PATH = "data/dungeon/flame_dungeon/npc.txt"
    define TICKET_GROUP 10033
    define LIMITED_PASS_TICKET 71175
    
    quest flame_dungeon begin
    	state start begin	
    		when ENTRY_MAN.click with pc.get_level() >= 90 begin
    			pc.give_item2(LIMITED_PASS_TICKET, 1)
    			set_state(run)
    		end
    	end
    
    	state run begin
    	
    	function setting()
    		return 
    		{
    		["bossroom_entry_pos"] = {8109,6867},
    		["boss_pos"] = {686,637},
    		["doors_pos"] = {
    			{320,394},
    			{293,359},
    			{333,321},
    			{378,320},
    			{400,355},
    			{394,401}
    		},
    		["idoors_pos"] = {
    			{268,447},
    			{234,359},
    			{300,264},
    			{454,217},
    			{470,355},
    			{467,469}
    		},
    		["doors_dir"] = {135,90,210,152,90,223},
    		["idoors_dir"] = {135,90,210,135,90,239},
    		["dungeon_entry_pos"] = {7762, 6739},-- ´øÀü¿¡ óÀ½ µé¾î¿À´Â °÷
    		["DUNGEON_MAN_bpos"] = {690,722},
    		["DUNGEON_MAN_pos"] = {354,362},
    		["LEVEL2_STONE_pos"] = {195,352},
    		["LEVEL4_TARGET_pos"] = {470,175},
    		["LEVEL5_STONE_pos"] = {
    				{486, 345},
    				{511, 336},
    				{525, 349},
    				{521, 365},
    				{503, 372},
    				{486, 365},
    				{500, 354}
    		},
    		["LEVEL6_TARGET_pos"] = {511,480},
    		["outside_entry_pos"] = {6142,7068}, --ÀÔÀå½ÃÄÑÁÖ´Â¾Ö ¼­ÀÖ´Â °÷
    		["YAK_pos"] = {376, 397} -- ¾àȯ ºÎÇÏ
    		
    		}
    	end
    	function is_flamed(idx) -- Àû·æ¼º¿¡ ÀÖ´ÂÁö È®ÀÎ 
    		return idx >= DUNGEON_MAP_INDEX * 10000 and idx < (DUNGEON_MAP_INDEX + 1) *10000
    	end
    	function make_dungeon() -- ´øÀü ¸¸µé±â
    		local setting = flame_dungeon.setting()
    		d.new_jump_party(DUNGEON_MAP_INDEX, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
    		-- d.spawn_mob_ac_dir(DUNGEON_MAN, setting.DUNGEON_MAN_pos[1], setting.DUNGEON_MAN_pos[2],DUNGEON_MAN_DIR)
    		-- d.spawn_mob(YAK,setting.YAK_pos[1],setting.YAK_pos[2])
    		d.regen_file(NPC_REGEN_FILE_PATH)
    		d.setf("level",0)
    		for i=1,6 do
    			d.set_unique("door"..i, d.spawn_mob_ac_dir(BLOCK_DOOR, setting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i]))
    		end
    		for i=1,6 do
    			d.set_unique("idoor"..i, d.spawn_mob_ac_dir(IN_DOOR, setting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i]))
    		end
    		d.setf("clear_count",0)
    		d.setf("started",0)
    		d.setf("dungeon_enter",0) -- Á¤»óÀûÀ¸·Î ÀÔÀåÇß´ÂÁö? // ºñÁ¤»ó : 0 Á¤»ó : 1 // ƨ±â¸é ÀÔÀåÁ¦Çѽð£À» ±â·Ï ¾ÈÇÔ
    	end	
    	function go_boss() -- º¸½º·ë °¡±â 
    		local setting = flame_dungeon.setting()
    		if pc.get_level() < 104 then --·¹º§È®ÀÎ
                -- syschat(gameforge.flame_dungeon._580_notice)
                say(gameforge.flame_dungeon._580_notice)
                return
    		else
    			if pc.getf("main_quest_flame_lv103", "__status")==main_quest_flame_lv103.__COMPLETE__ then -- ¼±ÇàÄù½ºÆ® È®ÀÎ
    				-- say_title(gameforge.flame_dungeon._010_say)
                    say(gameforge.flame_dungeon._010_say)
    				local warp = select(gameforge.flame_dungeon._020_select,gameforge.flame_dungeon._030_select)
    				if warp == 1 then
    					d.setf("level",17)
    					d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])
    					d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_fild_boss.txt")
    				--	d.spawn_mob(DUNGEON_MAN,setting.DUNGEON_MAN_bpos[1],setting.DUNGEON_MAN_bpos[2])
    					d.spawn_mob(FINAL_BOSS,setting.boss_pos[1],setting.boss_pos[2])
    				end
    			else 
                    -- syschat(gameforge.flame_dungeon._040_notice)
                    say(gameforge.flame_dungeon._040_notice)
                    return
    			end
    		end
    	end
    	function level_clear() -- ·¹º§ ²£À»¶§, ¸®Á¨Å¬¸®¾î, Áö¿ªÅ¬¸®¾î
    		d.setf("level",0)
    		d.clear_regen()
    		d.purge_area(750000,620000,817400,689400) -- ¸ÊÀüü -- d.purge() »ç¿ë°í·Á
    	end
    	function clear_timer(inx) -- ŸÀÌ¸Ó ´ÙÁö¿ì±â
    		clear_server_timer ("flame_dungeon_0m_left_timer", inx)
    		clear_server_timer ("flame_dungeon_1m_left_timer", inx)
    		clear_server_timer ("flame_dungeon_5m_left_timer", inx)
    		clear_server_timer ("flame_dungeon_10m_left_timer", inx)
    		clear_server_timer ("flame_dungeon_15m_left_timer", inx)
    		clear_server_timer ("flame_dungeon_30m_left_timer", inx)
    		clear_server_timer ("flame_dungeon_45m_left_timer", inx)
    		clear_server_timer ("killed_A_1", inx)
    		clear_server_timer ("killed_A_2", inx)
    		clear_server_timer ("flame_dungeon_ticket_remove", inx)	
    	end
    	
    		when login begin
    			local idx = pc.get_map_index()
    			local setting = flame_dungeon.setting()
    			if idx == DUNGEON_MAP_INDEX then
    				pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX)
    			elseif flame_dungeon.is_flamed(idx) then -- ´øÀü ÀÔÀå, º¸½º·ë ÀÔÀå ¿¹¿Ü
    			------------------------------------------------------------------------------------------------------------------------------------------------------
    			--¾Æ·¡ÀÇ µÎÁÙÁß À§¿¡ÁÙÀ» »ç¿ëÇÏ¸é ´øÀü¿¡¼­ Á¾·áÇßÀ»°æ¿ì ´Ù½Ã ¿ø·¡ À§Ä¡·Î µ¹¾Æ¿Â´Ù. ¾Æ·¡ÁÙÀ» È°¼ºÈ­ ÇÏ¸é ´øÀü¿¡¼­ Á¾·áÇßÀ» °æ¿ì ´øÀü ¹ÛÀ¸·Î ³ª°¡°Ô µÈ´Ù.
    			--´øÀü¿¡¼­ Á¾·áÇßÀ» °æ¿ì ´Ù½Ã ¿ø·¡ À§Ä¡·Î µ¹¾Æ¿Ã °æ¿ì, ´øÀü¿¡¼­ ³ª°¡´Â ¹æ¹ýÀ» ¸¸µé¾îÁà¾ß Çϱ⠶§¹®¿¡ Àû·æ¼ººñÀÇ ³ª°¡±â¶õ ¿É¼ÇÀ» È°¼ºÈ­ ÇØÁà¾ß ÇÑ´Ù.
    			------------------------------------------------------------------------------------------------------------------------------------------------------
    				-- pc.set_warp_location(0, 0 , 0) --ƨ°åÀ»¶§ ´Ù½Ã µ¹¾Æ¿À°Ô ¸¸µé¾î ÁÖ´Â ºÎºÐ
    				pc.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ´øÀü ³ª°¬À» ¶§ ¹ÛÀ¸·Î ƨ±â°ÔÇÔ
    				local ticketGroup = {get_special_item_group (TICKET_GROUP)}
    				if d.getf("dungeon_enter") == 0 then -- ÁøÇàÁßÀÌ ¾Æ´Ï¸é
    					local canPass = false
    					for i=1, table.getn(ticketGroup),2 do 
    						if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
    							canPass = true
    							break
    						end
    					end
    
    					if get_global_time() - pc.getf("flame_dungeon","exit_time") < ENTER_LIMIT_TIME * 60 then -- ÀÔÀåÁ¦Çѽð£ÀÌ °É·ÈÀ¸¸é
    						notice_multiline(gameforge.flame_dungeon._050_notice,d.notice)
    						say(gameforge.flame_dungeon._060_say)
    						timer("flame_dungeon_warp_timer", 5)
    					elseif not canPass then
    						notice_multiline(gameforge.flame_dungeon._070_notice,d.notice)
    						say(gameforge.flame_dungeon._080_say)
    						timer("flame_dungeon_warp_timer", 5)
    					elseif pc.get_level() < 100 then
    						notice_multiline(gameforge.flame_dungeon._090_notice,d.notice)
    						say(gameforge.flame_dungeon._100_say)
    						timer("flame_dungeon_warp_timer", 5)
    					end
    				elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- ÁøÇàÁßÀε¥ ƼÄÏÀÌ ¾ÈÁö¿öÁ³À»°æ¿ì
    					
    					for i=1, table.getn(ticketGroup),2 do 
    						if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
    							pc.remove_item(ticketGroup[i], ticketGroup[i+1])
    							break
    						end
    					end
    					pc.setf("flame_dungeon","ticket_delete",1)
    				end
    			else
    				pc.setf("flame_dungeon","ticket_delete",0)
    			end
    		end
    		when flame_dungeon_warp_timer.timer begin
    			local setting = flame_dungeon.setting()
    			pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX)
    		end
    		when logout begin
    			local idx = pc.get_map_index()
    			if flame_dungeon.is_flamed(idx) then 
    				if d.getf("dungeon_enter") == 1 then -- Á¤»óÀûÀÎ ´øÀü ÀÔÀå ÈÄ ·Î±×¾Æ¿ô
    					pc.setf("flame_dungeon","exit_time",get_global_time()) -- ÀνºÅϽº ¾È¿¡¼­ÀÇ ¸¶Áö¸· ½Ã°£À» ±â·Ï, ±Ùµ¥ ½Ã°£Á¦ÇÑ ¶§¹®¿¡ or ±×³É ƨ±ä°Å¸é ¾È±â·Ï
    				end
    				
    
    			end
    		end
    		when ENTRY_MAN.chat.gameforge.flame_dungeon._110_npcChat begin
    		
    			local setting = flame_dungeon.setting()
    			if party.is_party() then
    				-- ´øÀü µµÁß ³ª°¥ °æ¿ì ÀçÀÔÀå °¡´ÉÇϵµ·Ï
    				local party_check = 0
    				if d.find(party.getf("dungeon_index")) then
    					party_check = (d.getf_from_map_index("party_leader_pid", party.getf("dungeon_index")) == party.get_leader_pid())
    				end
    				
    				if d.find(party.getf("dungeon_index")) and party_check then
    					if get_global_time() - pc.getf("flame_dungeon","exit_time") < 5 * 60 then -- Á¢Á¾ ÀÌÈÄ 5ºÐ ³»?
    						local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index"))
    						if dungeon_level == 17 then -- º¸½º
    							pc.warp(setting.bossroom_entry_pos[1] * 100, setting.bossroom_entry_pos[2] * 100, party.getf("dungeon_index"))
    						else
    							pc.warp(setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100, party.getf("dungeon_index"))
    						end
    					else -- 5ºÐ ÃÊ°úÇÏ¿© Àç ÀÔÀå ºÒ°¡
    						say_title(mob_name(ENTRY_MAN))
                            say(gameforge.flame_dungeon._590_say)
    					end
    				else
    					local pids = {party.get_member_pids()}
    					local noTicketMembers = {}
    					local notEnoughLevelMembers = {}
    					local ticketCheck = true
    					local levelCheck = true
    					local ticketGroup = {get_special_item_group (TICKET_GROUP)}
    					for i, pid in next, pids, nil do
    						q.begin_other_pc_block(pid)
    						local canPass = false
    						for idx=1, table.getn(ticketGroup),2 do 
    							if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
    								canPass = true
    								break
    							end
    						end
    						
    						if not canPass then
    							table.insert(noTicketMembers, pc.get_name())
    							ticketCheck = false
    						end
    						if pc.level < LEVEL_CUT then
    							table.insert(notEnoughLevelMembers, pc.get_name())
    							levelCheck = false
    						end
    						q.end_other_pc_block()
    					end
    
    					if not ticketCheck then
    						say_title(mob_name(ENTRY_MAN))
    						say(gameforge.flame_dungeon._610_say)
    						for i, name in next, noTicketMembers, nil do
    							say(color(1,1,0), "    "..name)
    						end
    						if levelCheck then
    							return
    						else
    							wait()
    						end
    					end
    
    					if not levelCheck then
    						say_title(mob_name(ENTRY_MAN))
    						say(gameforge.flame_dungeon._630_say)
    						for i, name in next, notEnoughLevelMembers, nil do
    							say(color(1,1,0), "    "..name)
    						end
    						return
    					end
    
    					if party.is_leader() then
    						say(gameforge.flame_dungeon._120_say)
    						local warp = select(gameforge.flame_dungeon._130_select,gameforge.flame_dungeon._140_select)
    						if warp == 1 then
    							if party.is_map_member_flag_lt("exit_time", get_global_time() - ENTER_LIMIT_TIME * 60 ) then
    								flame_dungeon.make_dungeon()
    							else
    								--say("test : ÆÄƼ¿øÀÇ ÀÔÀå Á¦Çѽð£ÀÌ ³¡³ªÁö ¾Ê¾Ò½À´Ï´Ù.")
    								say(gameforge.flame_dungeon._600_say)
    							end
    						end
    						
    						party.setf("flame_dungeon_boss_kill_count", 0)
    						
    					else
    						say(gameforge.flame_dungeon._150_say)
    					end
    				end
    			else
    				say(gameforge.flame_dungeon._160_say)
    			end
    		end
    		-- when ENTRY_MAN.chat."Test : ¸®¼Ò½ºÈ®ÀÎ" with is_test_server() begin -- Å×½ºÆ®¿ë
    			-- local setting = flame_dungeon.setting()
    			-- pc.setf("flame_dungeon","fdRtest",1)
    			-- pc.warp( setting.dungeon_entry_pos[1]*100, setting.dungeon_entry_pos[2]*100, DUNGEON_MAP_INDEX)
    		-- end
    		
    		
    		when ENTRY_MAN.chat."TEST : Init time limit init" with is_test_server() begin -- Å×½ºÆ®¿ë
    			pc.setf("flame_dungeon","exit_time",get_global_time()-1800)
    			say("Done")
    		end
    		-- when DUNGEON_MAN.chat."Test : ÇöÀç »óÅÂ" with is_test_server() begin -- Å×½ºÆ®¿ë
    			-- say("³²Àº ¸ó½ºÅÍ : "..d.count_monster())
    			-- say("level : "..d.getf("level"))
    			-- say("Dmap index : "..d.get_map_index())
    			-- say("Pmap index : "..pc.get_map_index())
    			-- say("access limit : "..pc.getf("flame_dungeon","exit_time"))
    			-- say("global time : "..get_global_time())
    			-- if flame_dungeon.is_flamed(d.get_map_index()) then
    				-- say("in dungeon") -- is_flamed ÇÔ¼ö üũ
    			-- end
    			-- if d.is_unique_dead("stone1") then
    				-- say("stone1 is dead")
    			-- else
    				-- say("stone1 is not dead")
    			-- end
    		-- end
    		-- when DUNGEON_MAN.chat."óÀ½À¸·Î" begin -- Å×½ºÆ®¿ë
    			-- say("ÃʱâÈ­ ÇÕ´Ï´Ù")
    			-- flame_dungeon.clear_timer(d.get_map_index())
    			-- flame_dungeon.make_dungeon()
    		-- end
    		when DUNGEON_MAN.chat."Test : Boss Room" with is_test_server() begin -- Å×½ºÆ®¿ë
    			flame_dungeon.go_boss()
    		end
    		
    		-- < ½Ã°£ °æ°ú ŸÀ̸Ó>
    		-- when DUNGEON_MAN.chat."³ª°¡±â" begin -- ´øÀü¿¡¼­ ƨ±âÁö ¾Ê°Ô ÇÒ °æ¿ì È°¼ºÈ­
    			-- local setting = flame_dungeon.setting()
    			-- say("¹ÛÀ¸·Î ³ª°¡½Ã°Ú½À´Ï±î?")
    			-- local warp = select("È®ÀÎ","Ãë¼Ò")
    			-- if warp == 1 then
    				-- pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX)
    			-- end
    		-- end
    		when flame_dungeon_45m_left_timer.server_timer begin
    			if d.select(get_server_timer_arg()) then
    				notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 45),d.notice)
    				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
    				server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg())
    			end
    		end
    		when flame_dungeon_30m_left_timer.server_timer begin
    			if d.select(get_server_timer_arg()) then
    				notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 30),d.notice)
    				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
    				server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg())
    			end
    		end
    		when flame_dungeon_15m_left_timer.server_timer begin
    			if d.select(get_server_timer_arg()) then
    				notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 15),d.notice)
    				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
    				server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg())
    			end
    		end
    		when flame_dungeon_5m_left_timer.server_timer begin
    			if d.select(get_server_timer_arg()) then
    				notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 5),d.notice)
    				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
    				server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg())
    			end
    		end
    		when flame_dungeon_1m_left_timer.server_timer begin
    			if d.select(get_server_timer_arg()) then
    				notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 1),d.notice)
    				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
    				server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg())
    			end
    		end
    		when flame_dungeon_0m_left_timer.server_timer begin
    			local setting = flame_dungeon.setting()
    			if d.select(get_server_timer_arg()) then		
    				notice_multiline(gameforge.flame_dungeon._190_notice,d.notice)
    				notice_multiline(gameforge.flame_dungeon._200_notice,d.notice)
    				server_timer("dungeon_end_timer",10,d.get_map_index())	
    			end
    		end	
    
    
    		-- <<<< ´øÀü ÁøÇà>>>> --
    		when DUNGEON_MAN.chat.gameforge.flame_dungeon._210_npcChat with npc.lock() begin -- '0x'´Â x¹ø° ·¹º§ Äù½ºÆ® ¹ÞÀ» ¼ö ÀÖ´Â »óÅ , '1x'´Â x¹ø° ·¹º§ Äù½ºÆ® ÁøÇàÁß
    			local setting = flame_dungeon.setting()
    			if d.getf("started") == 0 then
    				say(gameforge.flame_dungeon._230_say)
    				say(gameforge.flame_dungeon._240_say)
    				wait()
    				d.setf("started",1)
    				-- ÆÄƼ¿øÀÌ Æ¨°Ü¹ö·È´Âµ¥ Àڱ⸸ ³²¾Æ¼­ exit timer°¡ ¸®¼ÂµÇ¸é ¾ÈµÇ´Ï±ñ ´ÙÀ½·¹º§À» ´­·¶À»¶§¸¦ ½ÃÀÛÇÒ¶§·Î º½
    				server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index())
    				notice_multiline(gameforge.flame_dungeon._250_notice,d.notice)
    				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
    				
    				-- ÅëÇàÁõ °ü·ÃµÈ ó¸®
    				-- ÀÔÀå ÈÄ¿¡ ƼÄÏÀ» ¾ø¾Ø »ç¶÷À» ƨ°Ü³»±â À§Çؼ­ ŸÀ̸Ӹ¦ ÀÌ¿ëÇØ Æ¼ÄÏÀ» Á¦°ÅÇÑ´Ù.
    				local pids = {party.get_member_pids()}
    				local ticketGroup = {get_special_item_group (TICKET_GROUP)}
    				for i, pid in next, pids, nil do
    					q.begin_other_pc_block(pid)
    					local canPass = false
    					for idx=1, table.getn(ticketGroup),2 do 
    						if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
    							canPass = true
    							pc.remove_item(ticketGroup[idx], ticketGroup[idx+1])
    							break
    						end
    					end
    					
    					if not canPass then
    						pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX)
    					end
    					q.end_other_pc_block()
    				end
    				d.setqf2("flame_dungeon","ticket_delete",1)
    				d.setf("dungeon_enter",1)
    				
    				-- ´øÀü°ú ÆÄƼ¿¡ ¼­·Î¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÑ´Ù.
    				party.setf("dungeon_index", d.get_map_index())
    				d.setf("party_leader_pid", party.get_leader_pid())
    			end
    			if d.getf("level") < 7 then --ÁøÇàÁßÀÌ ¾Æ´Ï¸é
    				if d.getf("clear_count") == 6 then -- ¹æ ¿©¼¸°³ ÇßÀ¸¸é º¸½º¹æ
    					d.setf("level",7)
    				else
    					local rand = number(1,6)--·£´ý¿¡¼­ ¹æ¹®Ã¼Å©´Â µû·Î ¹è¿­¾øÀÌ ¹æÀÇ ¹®ÀÇ ¿­·ÁÀÖ´ÂÁö·Î üũÇÔ
    					local setlev = 0
    					d.setf("level",7) -- Ȥ½Ã ¸ð¸¦ ¹®Á¦°¡ »ý°Ü ·¹º§ÀÌ ¾ÈÀâÈú°æ¿ì¸¦ ´ëºñÇØ º¸½º·ëÀ¸·Î ¼ÂÆÃÇصÒ
    					for i=1,50 do
    						setlev = setlev + 1
    						if setlev > 6 then
    							setlev = 1
    						end
    						if not d.is_unique_dead("door"..setlev) then
    							rand = rand - 1
    							if rand == 0 then
    								d.setf("level",setlev)
    								d.setf("clear_count",d.getf("clear_count")+1)
    								break
    							end	
    						end
    					end
    				end
    			end
    				if d.getf("level") == 1 then
    					say(gameforge.flame_dungeon._260_say)
    					notice_multiline(gameforge.flame_dungeon._260_say,d.notice)
    					d.kill_unique("door1")
    					d.kill_unique("idoor1")
    					d.setf("level",11)
    					d.regen_file (MOB_REGEN_FILE_PATH.."fd_a.txt")
    						
    					server_timer ("killed_A_1", 12, d.get_map_index())
    				elseif d.getf("level") == 11 then
    					say(gameforge.flame_dungeon._270_say)
    					say_title(gameforge.flame_dungeon._280_sayTitle .. d.count_monster())
    				elseif d.getf("level") == 2 then
    						say(gameforge.flame_dungeon._290_say)
    						say(gameforge.flame_dungeon._300_say)
    						notice_multiline(gameforge.flame_dungeon._290_say,d.notice)
    						notice_multiline(gameforge.flame_dungeon._300_say,d.notice)
    						d.spawn_mob(LEVEL2_STONE, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- ºÀÀμ® ¼Òȯ
    						d.kill_unique("door2")
    						d.kill_unique("idoor2")
    						d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_b.txt")
    						d.setf("level",12)
    				elseif d.getf("level") == 12 then
    					say(gameforge.flame_dungeon._310_say)
    				elseif d.getf("level") == 3 then
    					say(gameforge.flame_dungeon._260_say)
    					notice_multiline(gameforge.flame_dungeon._260_say,d.notice)
    					d.kill_unique("door3")
    					d.kill_unique("idoor3")
    					d.setf("level",13)
    					d.regen_file (MOB_REGEN_FILE_PATH.."fd_c.txt")
    					server_timer ("killed_A_1", 12, d.get_map_index())
    				elseif d.getf("level") == 13 then
    					say(gameforge.flame_dungeon._270_say)
    					say_title(gameforge.flame_dungeon._280_sayTitle..d.count_monster())
    				elseif d.getf("level") == 4 then -- 474 178
    					say(gameforge.flame_dungeon._320_notice)
    					notice_multiline(gameforge.flame_dungeon._320_notice,d.notice)
    					d.setf("level",14)
    					d.kill_unique("door4")
    					d.kill_unique("idoor4")
    					d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_d.txt")
    					d.spawn_mob(LEVEL4_TARGET,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- Ÿ°Ù¸ó½ºÅÍ ¼ÒÇÑ
    				elseif d.getf("level") == 14 then
    					say(gameforge.flame_dungeon._330_say)
    					say(gameforge.flame_dungeon._340_say)
    				elseif d.getf("level") == 5 then -- 510 355
    					say(gameforge.flame_dungeon._350_say)
    					say(gameforge.flame_dungeon._360_say)
    					notice_multiline(gameforge.flame_dungeon._350_say,d.notice)
    					notice_multiline(gameforge.flame_dungeon._360_say,d.notice)
    					d.kill_unique("door5")
    					d.kill_unique("idoor5")
    					d.setf("level",15)
    					d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
    					local vis = { 0,0,0,0,0,0,0}
    					for i=1,7 do
    						vis[i] = 0
    					end
    					for i = 1, 7 do -- ·£´ýÇÏ°Ô µ¹¼Òȯ
    						local ran = number(1,7)
    						local st = 0
    						for j = 1, 50 do
    							st = st + 1
    							if st > 7 then
    								st = 1
    							end
    							if vis[st] == 0 then
    								ran = ran - 1
    								if ran == 0 then
    									vis[st] = 1
    									d.set_unique("stone5_"..st, d.spawn_mob(LEVEL5_STONE, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))
    									break
    								end
    							end
    						end
    					end  
    				elseif d.getf("level") == 15 then
    					say(gameforge.flame_dungeon._370_say)
    				elseif d.getf("level") == 6 then -- 507 490
    					say(gameforge.flame_dungeon._380_say) 
    					notice_multiline(gameforge.flame_dungeon._380_say,d.notice)
    					d.setf("level",16)
    					d.kill_unique("door6")
    					d.kill_unique("idoor6")
    					d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_f.txt")
    					d.spawn_mob(LEVEL6_TARGET, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- Ÿ°Ù¿ÀºêÁ§Æ® ¼Òȯ
    				elseif d.getf("level") == 16 then
    					say(gameforge.flame_dungeon._390_say)
    					say(gameforge.flame_dungeon._400_say)
    				elseif d.getf("level") == 7 then
    					-- setskin(NOWINDOW)
                        flame_dungeon.go_boss()
    				else
    					say(gameforge.flame_dungeon._410_say)
    				end
    			npc.unlock()		
    		end
    	
    
    
    		when dungeon_end_timer.server_timer begin -- Á¾·á ŸÀÌ¸Ó (³¡³ª°í ³ª°¡´Â°Å)
    			local setting = flame_dungeon.setting()
    			if d.select(get_server_timer_arg()) then
    				flame_dungeon.clear_timer(d.get_map_index())		
    				d.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) 
    				d.exit_all()
    				d.setf("party_leader_pid", 0)
    			end
    		end
    
    		when killed_A_1.server_timer begin -- ŸÀÌ¸Ó µ¹¸®±â1 (level1,level3)
    			if d.select(get_server_timer_arg()) then
    				if d.count_monster() <= 0 then -- 1·¹º§ ¸ó½ºÅÍ Àü¸ê½Ã
    					if d.getf("level") == 11 then
    						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
    						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    					else
    						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
    						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    					end
    					d.setf("level",0)
    				else 
    					server_timer ("killed_A_2", 6, get_server_timer_arg())
    				end
    			end
    		end
    		when killed_A_2.server_timer begin -- ŸÀÌ¸Ó µ¹¸®±â2 (1°ú 2 ¹ø°¥¾Æ°¡¸é¼­ µ¹¾Æ°¨)
    			if d.select(get_server_timer_arg()) then
    				if d.count_monster() <= 0 then -- 1·¹º§ ¸ó½ºÅÍ Àü¸ê½Ã
    					if d.getf("level") == 11 then
    						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
    						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    					else
    						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
    						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    					end
    					d.setf("level",0)
    				else 
    					server_timer ("killed_A_1", 6, get_server_timer_arg())
    				end
    			end
    		end
    
    		when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2·¹º§ ºÀÀμ® ¿­¼è µå¶ø
    			local i = number(1, 100) -- 100ºÐÀÇ 1 È®·ü·Î ¿­¼èµå¶ø
    			if i == 1 then
    				game.drop_item (LEVEL2_KEY, 1)
    			end
    		end
    		when LEVEL2_STONE.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == LEVEL2_KEY and d.getf("level") == 12 begin -- 2·¹º§ ¿­¼è ¸Ô¾úÀ»¶§
    			local i = number(1, 5) -- 5ºÐÀÇ 1 È®·ü·Î ÁøÂ¥ ¿­¼è
    			if i == 1 then
    				npc.purge()
    				item.remove()
    				notice_multiline(gameforge.flame_dungeon._440_notice,d.notice)
    				notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    				flame_dungeon.level_clear()
    			else
    				item.remove()
    				say(gameforge.flame_dungeon._450_say)
    			end
    		end
    
    		when LEVEL4_TARGET.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
    			notice_multiline(gameforge.flame_dungeon._460_notice,d.notice)
    			notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    			flame_dungeon.level_clear()
    		end
    
    		when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5·¹º§ ºÀÀμ® ¿­¼è µå¶ø
    			local i = number(1, 30) -- 30ºÐÀÇ 1 È®·ü·Î ¿­¼èµå¶ø
    			if i == 1 then
    				game.drop_item (LEVEL5_REALKEY, 1)
    			end
    		end
    		when LEVEL5_STONE.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == LEVEL5_REALKEY and d.getf("level") == 15 begin -- 5·¹º§ ÁøÂ¥¿­¼è ¸Ô¾úÀ»¶§
    			local setting = flame_dungeon.setting()
    			if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ù¹ø° ²¨´Â ¼±ÇàµÇ¾î¾ß ÇÒ ÀÏÀÌ ÇÊ¿ä¾øÀ¸´Ï ãÀÚ¸¶ÀÚ Á¦°ÅÇØÁÜ
    				npc.purge()
    				item.remove()
    				say(gameforge.flame_dungeon._470_say)
    				d.setf("stonekill",2) -- 2¹ø µ¹À» Á׿©¶ó
    				if d.count_monster() < LEVEL5_GEN_LIMIT then
    					d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
    				end
    			elseif npc.get_vid() == d.get_unique_vid("stone5_2") then 
    				if d.getf("stonekill") == 2 then -- 2¹øµ¹À» Á×ÀÏ Â÷·Ëµ¥ 2¹øµ¹¿¡°Ô ¿­¼è¸¦ ¸Ô¿´À» ¶§
    					npc.purge()
    					item.remove()
    					say(gameforge.flame_dungeon._480_say)
    					d.setf("stonekill",3)
    					if d.count_monster() < LEVEL5_GEN_LIMIT then
    						d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
    					end
    				else
    					item.remove()
    					say(gameforge.flame_dungeon._490_say)
    			--		say("2¹ø")
    				end
    			elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
    				if d.getf("stonekill") == 3 then
    					npc.purge()
    					item.remove()
    					say(gameforge.flame_dungeon._500_say)
    					d.setf("stonekill",4)
    					if d.count_monster() < LEVEL5_GEN_LIMIT then
    						d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
    					end
    				else
    					item.remove()
    					say(gameforge.flame_dungeon._490_say)
    			--		say("3¹ø")
    				end
    			elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
    				if d.getf("stonekill") == 4 then
    					npc.purge()
    					item.remove()
    					say(gameforge.flame_dungeon._510_say)
    					d.setf("stonekill",5)
    					if d.count_monster() < LEVEL5_GEN_LIMIT then
    						d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
    					end
    				else
    					item.remove()
    					say(gameforge.flame_dungeon._490_say)
    				--	say("4¹ø")
    				end
    			elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
    				if d.getf("stonekill") == 5 then
    					npc.purge()
    					item.remove()
    					say(gameforge.flame_dungeon._520_say)
    					d.setf("stonekill",6)
    					if d.count_monster() < LEVEL5_GEN_LIMIT then
    						d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
    					end
    				else
    					item.remove()
    					say(gameforge.flame_dungeon._490_say)
    			--		say("5¹ø")
    				end
    			elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
    				if d.getf("stonekill") == 6 then
    					npc.purge()
    					item.remove()
    					say(gameforge.flame_dungeon._530_say)
    					d.setf("stonekill",7)
    					if d.count_monster() < LEVEL5_GEN_LIMIT then
    						d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
    					end
    				else
    					item.remove()
    					say(gameforge.flame_dungeon._490_say)
    			--		say("6¹ø")
    				end
    			else 
    				if d.getf("stonekill") == 7 then
    					npc.purge()
    					item.remove()
    					notice_multiline(gameforge.flame_dungeon._440_notice,d.notice)
    					notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    					flame_dungeon.level_clear()
    				else
    					item.remove()
    					say(gameforge.flame_dungeon._490_say)
    			--		say("7¹ø")
    				end
    			end
    		end
    
    		when LEVEL6_TARGET.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ¸Á¸¶¼® Æı«ÇßÀ» ¶§
    			notice_multiline(gameforge.flame_dungeon._540_notice,d.notice)
    			notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    			flame_dungeon.level_clear()
    		end
    
    		when FINAL_BOSS.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- º¸½º Á׿´À»¶§
    			notice_multiline(gameforge.flame_dungeon._550_notice,d.notice)
    			notice_multiline(gameforge.flame_dungeon._560_notice,d.notice)
    			server_timer("dungeon_end_timer", 60,d.get_map_index())	
    			flame_dungeon.level_clear()
    			
    			-- ÆÄƼ¿ø Áß, ¾ß¸¶Ãµ Àâ´Â Äù½ºÆ®(104·¾, 105·¾ Äù½ºÆ®) ÁøÇàÁßÀÎ »ç¶÷ÀÌ ÀÖÀ¸¸é Äù½ºÆ® Ŭ¸®¾î µÇµµ·Ï.
    			if party.is_party() then
    				party.setf("flame_dungeon_boss_kill_count", 1)
    			end
    			
    		end
    	end
    end 

     

    Here is the part :

     

    when killed_A_1.server_timer begin -- ŸÀÌ¸Ó µ¹¸®±â1 (level1,level3)
    			if d.select(get_server_timer_arg()) then
    				if d.count_monster() <= 0 then -- 1·¹º§ ¸ó½ºÅÍ Àü¸ê½Ã
    					if d.getf("level") == 11 then
    						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
    						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    					else
    						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
    						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    					end
    					d.setf("level",0)
    				else 
    					server_timer ("killed_A_2", 6, get_server_timer_arg())
    				end
    			end
    		end
    		when killed_A_2.server_timer begin -- ŸÀÌ¸Ó µ¹¸®±â2 (1°ú 2 ¹ø°¥¾Æ°¡¸é¼­ µ¹¾Æ°¨)
    			if d.select(get_server_timer_arg()) then
    				if d.count_monster() <= 0 then -- 1·¹º§ ¸ó½ºÅÍ Àü¸ê½Ã
    					if d.getf("level") == 11 then
    						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
    						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    					else
    						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
    						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
    					end
    					d.setf("level",0)
    				else 
    					server_timer ("killed_A_1", 6, get_server_timer_arg())
    				end
    			end
    		end

     

    The mobs you kill getting counted just @ the NPC you speaking with, but the quest seems to not run anymore. I dont get kicked after the time when Iam at this part!

     

    I hope you have have ideas to fixx this bug.

     

    Problem2:

     

    I cant use horse skills with some mounts. Is that defined in the quest ? In the game ?

     

     

    Hope you can help me,

     

    king regards,

     

    Nightwish

  5. Does anybody got this running with cron?

     

    It works perfect without cron.

     

    I have tried different crons and /var/log/cron shows that the cron was done but nothing happens.

     

     

    /usr/sbin/cron[28936]: (root) CMD (sh /usr/home/autobackup/backup.sh all)

     

    /usr/sbin/cron[29013]: (root) CMD (sh /root/backup/backupsql.sh all)

    ...

     

    I hope anybody get this.

     

    King regards,

     

    Nightwish

     

  6. Hello m2dev community,

     

    I have a large problem using vanilla core. The dragon soul items disappear after some times if they are NOT equipped.

     

    Here is the syserr entry for the problem.

     

    6c00f5a168.png

     

    I hope you can help me.

     

    King regards,

     

    Nightwish

  7. Solved Problem with .TXT

    The DB core is not able to handle my item_proto without *.txt and the conf.txt option dont work. The core is always trying to use the database.

     

    Edit: now I put the config option right under the WELCOME_MSG entry, but now the core is not even start anymore. 

    Syserr says:

     

    SYSERR: Mar  4 19:54:36 :: Start: TABLE_POSTFIX not configured use default
    SYSERR: Mar  4 19:54:36 :: Start: SQL_ACCOUNT not configured
    SYSERR: Mar  4 19:54:36 :: pid_deinit: 
    End of pid

     

    Edit2 an fixx:

    I copied you post where it is TXT_STARTUP: 1 but in conf.txt you have to set it like

    TXT_STARTUP = 1.

     

    Next problem:

     

    Server runs normal but if I buy something out of an NPC shop server goes down.

    Here you can see syserr:

     

    SYSERR: Mar  4 20:02:05 :: Start: TABLE_POSTFIX not configured use default
    SYSERR: Mar  4 20:02:06 :: Load:  DirectQuery failed(SELECT login FROM block_exception)
    SYSERR: Mar  4 20:02:08 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:12 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:12 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:04:50 :: Process: FDWATCH: peer null in event: ident 27

     

    Next Problem:

     

    686f203f6d.jpg

     

    There are no skills anymore, the skybox is not there anymore sometimes and sometimes hair is not displayed. 

     

    I did no change on the client betweeen 2.1 and 2.2 so its a server fault.

     

     

     

    King regards.

     

    I will go back to 2.1 and Ymirs core too. I hope there is a fix for those bugs we have soon.

     

    King regards.

  8. Solved Problem with .TXT

    The DB core is not able to handle my item_proto without *.txt and the conf.txt option dont work. The core is always trying to use the database.

     

    Edit: now I put the config option right under the WELCOME_MSG entry, but now the core is not even start anymore. 

    Syserr says:

     

    SYSERR: Mar  4 19:54:36 :: Start: TABLE_POSTFIX not configured use default
    SYSERR: Mar  4 19:54:36 :: Start: SQL_ACCOUNT not configured
    SYSERR: Mar  4 19:54:36 :: pid_deinit: 
    End of pid

     

    Edit2 an fixx:

    I copied you post where it is TXT_STARTUP: 1 but in conf.txt you have to set it like

    TXT_STARTUP = 1.

     

    Next problem:

     

    Server runs normal but if I buy something out of an NPC shop server goes down.

    Here you can see syserr:

     

    SYSERR: Mar  4 20:02:05 :: Start: TABLE_POSTFIX not configured use default
    SYSERR: Mar  4 20:02:06 :: Load:  DirectQuery failed(SELECT login FROM block_exception)
    SYSERR: Mar  4 20:02:08 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:09 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:12 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:02:12 :: __GetHostInfo: __GetHostInfo() ==> DirectQuery failed(SELECT mIP FROM gmhost)
    SYSERR: Mar  4 20:04:50 :: Process: FDWATCH: peer null in event: ident 27

     

    Next Problem:

     

    686f203f6d.jpg

     

    There are no skills anymore, the skybox is not there anymore sometimes and sometimes hair is not displayed. 

     

    I did no change on the client betweeen 2.1 and 2.2 so its a server fault.

     

     

     

    King regards.

  9. I have played metin2 for about 5 years, 3 of them really active. Me and some friends reached nerly everything you can get in this game. Ninja lv94 Sura lv90&93 warrior lv90 and some more really nice charakters. The biggest part of the equipment is sold but the accounts are still ours. But as a friend showed me a server first time, short after rain release in germany, I was interested in doing servers. But I was too young in that time. Some years later i got the chance to sell parts of my .DE equipment for 500 € and rented my first server. So I tried much things and learnd a lot and also launched some servers.

     

    King regards,

     

    Nightwish

    • Love 1
  10. Im sorry, but these are things you have to lern by doint. You have to find locations of files by yourself and understand how they work together. Explore the client & server.

     

    I can help you to understand somethings but nobody can give you a master key for those things because if you get errors you mostly have to fixx them alone.

     

    Some tips:

     

    1. Maps: there are 2 files in client which are setting the clientside mapname  & coordinates "atlasinfo.txt". You can find them in root & locale_xx dictionary.

    You also have to put the same name/coordinates into the serverside folder which you can find in locale/map (there you have to paste the mapfile and put the name into a list located there too(map_list? idk atm). In those list you have to define a number for the map which you can allow in the CONFIG files of the cores. After a reboot you will be able to join the map.

     

    2.Mobs are located in Monster&Monster2 in the client. You have to know how mob_proto works. You also have to put the mob into npc_list in root & give them a value. Same serverside in mob_proto

     

    Note: These things are really basically and easy. If you really want to learn all those things you have to work a lot more.

     

    If you are able to do those easy things you can ask for more.

     

     

    King regards,

     

    Nightwish

    • Love 1
  11. For webhosting im using nitrado. First time i heard about that a admin uses such a webspace i was laughing because i was thinking that a 6,99€ (paysavecard) webspace can only be shit. But they have a good Network Connection (Roman said that the connection is bad from US,link11 routing) and there is no ddos protection. But if you just use the basic (free) cloudflare protection its nice to use. At my last serverstart I have done it like that, and I got a few attacks but had no big downtime. For this price its absolutly perfect.

    But dont put the client there when a lot of unsers want do download, they will suspend your space. Im using it also for client patcher and it works good & is fully anonym.

    King regards,

    Nightwish

  12. Im using OVH and its very good in my opinion.

    We have done a few tests on one of my servers.

     

    This one was unfiltered, but it also took incloudibly down. I think there are no hosters for private persons which are able to filter such an attack directly.

     

    574a58fddd.png

     

    Here is a screenshot of the attacks i got as i was starting a new server. I think the 5mpps attack was from us too on this server.

    Im sure that there was no attack with more than ~2,5mpps from a user/hater/1337hAxX0r which turned us down for more than 2 minutes.

     

    2989c9f25c.png

     

    King regards,

     

    Nightwish 

    • Love 1
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.