Jump to content

DomeSs

Inactive Member
  • Posts

    46
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by DomeSs

  1. i found this in syserr 

    SYSERR: Nov 26 13:15:37 :: AddServerTimer: already registered server timer name:CheckLevelAndCountKillOnMobs arg:3520000
    SYSERR: Nov 26 13:15:37 :: AddServerTimer: already registered server timer name:Jp_OutAllFailNotice arg:3520000
    SYSERR: Nov 26 13:17:12 :: RunState: LUA_ERROR: locale/turkey/quest/object/state/snow_dungeon:163: attempt to index field `?' (a nil value)
    SYSERR: Nov 26 13:17:12 :: WriteRunningStateToSyserr: LUA_ERROR: quest snow_dungeon.start click

     

  2. Hi, can anyone help me solve this ? if i want jump to level 5 my core crash.. 

    on this -> 

     

    Program terminated with signal SIGSEGV, Segmentation fault.
    #0  0x081a2ff2 in quest::CQuestManager::SendScript (this=<optimized out>) at questmanager.h:165
    165     questmanager.h: No such file or directory.
    [Current thread is 1 (LWP 100217)]
    (gdb) Quit
    (gdb) bt bull
    No symbol "bull" in current context.
    (gdb) bt full
    #0  0x081a2ff2 in quest::CQuestManager::SendScript (this=<optimized out>) at questmanager.h:165
            packet_script = {header = 45 '-', size = 12, skin = 0 '\000', src_size = 6}
            buf = {buf = 0x28fdcfa0, forceDelete = false}
    #1  0x081763e9 in quest::CQuestManager::GotoEndState (this=<optimized out>, qs=...) at questlua.cpp:971
    No locals.
    #2  0x0817758e in quest::CQuestManager::RunState (this=0xffffab54, qs=...) at questlua.cpp:1049
            ret = <optimized out>
            __FUNCTION__ = "RunState"
    #3  0x081a27c7 in quest::CQuestManager::ExecuteQuestScript (pc=..., quest_name=..., state=<optimized out>, code=<optimized out>, code_size=<optimized out>,
        pChatScripts=<optimized out>, bUseCache=<optimized out>) at ../../common/singleton.h:24
            qs = {co = 0x29b4a8e0, ico = 3, args = 0, suspend_state = 0 '\000', iIndex = 0, bStart = false, st = 0, _title = {static npos = 4294967295,
                _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xffff9bc0 ""},
                _M_string_length = 0, {_M_local_buf = '\000' <repeats 15 times>, _M_allocated_capacity = 0}}, _clock_name = {static npos = 4294967295,
                _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xffff9bd8 ""},
                _M_string_length = 0, {_M_local_buf = '\000' <repeats 13 times>, "\300\341(", _M_allocated_capacity = 0}}, _counter_name = {static npos = 4294967295,
                _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xffff9bf0 ""},
                _M_string_length = 0, {_M_local_buf = "\000\b\342(\000\300\341(\000\000\000\000\001\065\032\b", _M_allocated_capacity = 685901824}}, _clock_value = 0,
              _counter_value = 0, _icon_file = {static npos = 4294967295,
                _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xffff9c10 ""},
                _M_string_length = 0, {_M_local_buf = "\000\000\000\000\000\300\341(\224\347;@\001\000\000", _M_allocated_capacity = 0}},
              chat_scripts = {<std::_Vector_base<quest::AArgScript*, std::allocator<quest::AArgScript*> >> = {
                  _M_impl = {<std::allocator<quest::AArgScript*>> = {<__gnu_cxx::new_allocator<quest::AArgScript*>> = {<No data fields>}, <No data fields>},



    here is my quest -> 

     

    quest snow_dungeon begin
    	state start begin
    		when 9010.chat."Spawn Estátua" with snow_dungeon.is_nemeres_dungeon() == true begin
    			d.purge()
    			d.spawn_mob_dir(20397, 173,262,1)
    			setskin(NOWINDOW)
    		end
    		when 9010.chat."TESTSERVER: SnowD Jump level 9" with snow_dungeon.is_nemeres_dungeon() == true  begin
    			local set = snow_dungeon.get_settings()
    			d.notice("Der Richtige Schlüssel wurde gefunden, in wenigen Sekunden geht es in den nächsten Stock.")
    			server_timer("Jp_9",6,d.get_map_index())
    			d.clear_regen()
    			d.kill_all()
    			d.regen_file("data/dungeon/ice_dungeon/zone_9.txt")
    			setskin(NOWINDOW)
    		end
    		when 9010.chat."TESTSERVER: SnowD Jump level 10" with snow_dungeon.is_nemeres_dungeon() == true  begin
    			local set = snow_dungeon.get_settings()
    			server_timer("Jp_Boss",3,d.get_map_index())
    			d.clear_regen()
    			d.kill_all()
    			d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt")
    			local v = set.BossVnumGroup
    			d.spawn_group(v, 928, 335, 5 ,1, 1) --  (Input from SRC: argument: vnum,x,y,radius,aggressive,count)
    			setskin(NOWINDOW)
    		end
    		when 9010.chat."TESTSERVER: SnowD Spawn Boss" with snow_dungeon.is_nemeres_dungeon() == true  begin
    			local set = snow_dungeon.get_settings()
    			local v = set.BossVnumGroup
    			d.spawn_group(v, 928, 335, 5 ,1, 1) --  (INFO from SRC: argument: vnum,x,y,radius,aggressive,count)
    		end
    		when 9010.chat."TESTSERVER: SnowD Ending" with snow_dungeon.is_nemeres_dungeon() == true  begin
    			server_timer("Jp_OutAll",5,d.get_map_index())
    			say("done")
        end
    		-- when 30331.use begin --key_level_2
    			-- LIB_writelog("{"..pc.get_local_x()..","..pc.get_local_y().."}",3,"snowcordis.txt")
    			-- d.spawn_mob(20399, pc.get_local_x(), pc.get_local_y())
    			-- chat("write north star coordinates")
    		-- end
    		when 9010.chat."TESTSERVER: SnowD Spawn create Cords Test level 5" with snow_dungeon.is_nemeres_dungeon() == true  begin
    			snow_dungeon._Create_Stones_level5()
    			setskin(NOWINDOW)
    		end
    		when 9010.chat."TESTSERVER: SnowD Create Key level 5" with snow_dungeon.is_nemeres_dungeon() == true  begin
    			snow_dungeon._DropKeyOnLevel5()
    			setskin(NOWINDOW)
    		end
    		when 9010.chat."TESTSERVER: SnowD Get cord from Level" with snow_dungeon.is_nemeres_dungeon() == true begin
    			local set = snow_dungeon.get_settings()
    			local warp_to_level = set.Position_level_1
    			local level = 2
    			say("old: x: "..warp_to_level[1].." y:"..warp_to_level[2].."")
    			local warp_to_level = set. _G[ "Position_level_"..level ]
    			say("new: x: "..warp_to_level[1].." y:"..warp_to_level[2].."")
    			--DONT WORKS!
    		end
    	function get_settings()
    		local snow_dungeon_settings = {}
            snow_dungeon_settings.map_index = 352                       --Mapindex
            snow_dungeon_settings.base_cord = {5120, 1536 }             --Base Kordinaten
            snow_dungeon_settings.outside_entry_pos = {61,4321,1667}    --Mapindex, Exit Position (Eisland)
            snow_dungeon_settings.need_level = 100                      --Ab wann ist der Dungeon betretbar.
            snow_dungeon_settings.need_level_group = 100                --Benötigte Level für Gruppenmitglieder
            snow_dungeon_settings.WaitBeforOutAllOnExit = 60            --Wartezeit bevor alle alle herausteleportiert werden bei einem erfolgreichen Run. (Empfohlen 60)
            snow_dungeon_settings.NextJumpTime = 5                      --Wann man zur nächsten ebene Gejumpt wird (timer) (Empfohlen 5)
            snow_dungeon_settings.DurationLoopTimer = 45                --Welchen intervall die Level und Missionen geprüft werden sollen. (Empfohlen 45)
            snow_dungeon_settings.wait_duration = 60*60*4               --Ab wann der Dungeon wieder betretbar ist (PartyLeader)
            snow_dungeon_settings.maxlife_time_on_dungeon = 60*60*1 --Maximale Zeit für den Dungeon.
            snow_dungeon_settings.DurationMaxOnReJoinGroup = 60*5       --Maximale Zeit innerhalb wann man wieder in die Gruppe joinen kann.
            snow_dungeon_settings.key_level_2 = 30331                   --KeyVnum für die 2.Ebene   --Frostschlüssel
            snow_dungeon_settings.NpcVnum_level_5 = 20398               --MobVnum von 5.Ebene   --Würfel des Arktos
            snow_dungeon_settings.StoneCount_level_5 = 6                --Wie viele Würfel des Arktos sollen erscheinen?
            snow_dungeon_settings.Key_on_level_5 = 30332                --KeyVnum von 5.Ebene   --Nordstern
            snow_dungeon_settings.StoneCords_level_5 = {
            {432,508},{437,493},{448,492},{448,476},{467,475},{466,464},
            {462,450},{458,428},{446,439},{431,431},{415,416},{402,427},
            {397,438},{375,434},{374,456},{390,468},{385,492},{402,505},
            {404,489},{386,482}
            }   --Positionen von Würfel des Arktos
            snow_dungeon_settings.MobVnum_level_6 = 8058                --MobVnum von 6.Ebene   --Metin der Kälte
            snow_dungeon_settings.MobVnum_level_7 = 6151                --MobVnum von 7.Ebene   --Szel
            snow_dungeon_settings.SzelCords_level_7 = {
            {752,499},{758,479},{772,452},{763,444},{750,451},{728,441},
            {726,455},{718,482},{715,491},{731,473},{748,429}
            } --Positionen von Szel
            snow_dungeon_settings.Key_on_level_8 = 30333                --KeyVnum von 8.Ebene   --Eisblumenschlüssel
            snow_dungeon_settings.NpcVnum_level_9 = 20399               --MobVnum von 9.Ebene   --Säule des Norddrachen
            snow_dungeon_settings.BossVnumGroup = 6062                  --GroupMobVnum vom Boss --(Group.txt)
            snow_dungeon_settings.BossVnum = 6191                       --MobVnum von 10.Ebene  --Nemere(6191)
             
            snow_dungeon_settings.Position_level_1 = { 171,271 }        --Position ebene 1  --Startposition     --Töte alle Monster auf dieser Ebene.
            snow_dungeon_settings.Position_level_2 = { 761,270 }        --Position ebene 2                      --Finde den richtigen Frostschlüssel, nur ein Schamane kann ihn benutzen.
            snow_dungeon_settings.Position_level_3 = { 187,491 }        --Position ebene 3                      --Töte alle Monster auf dieser Ebene.
            snow_dungeon_settings.Position_level_4 = { 421,259 }        --Position ebene 4                      --Töte alle Monster auf dieser Ebene.
            snow_dungeon_settings.Position_level_5 = { 419,530 }        --Position ebene 5                      --Öffnet die Siegel an den Würfel des Arktos in der richtigen Reihenfolge. (Zieht Nordstern auf die Würfel)
            snow_dungeon_settings.Position_level_6 = { 571,706 }        --Position ebene 6                      --Töte alle Monster auf dieser Ebene. Danach Zersöre den Metin der Kälte (Nur ein Schamane kann ihn Schaden)
            snow_dungeon_settings.Position_level_7 = { 746,534 }        --Position ebene 7                      --Töte alle Monster auf dieser Ebene und Szel
            snow_dungeon_settings.Position_level_8 = { 303,710 }        --Position ebene 8                      --Der Eisblumenschlüssel muss gedroppt werden, jedoch kann dieser nur von Schamanen und Ninja benutzt werden.
            snow_dungeon_settings.Position_level_9 = { 848,693  }       --Position ebene 9                      --Zerstört die Säule des Norddrachen. Nur Ninjas und Schamanen können ihm Schaden zufügen.
            snow_dungeon_settings.Position_level_10 = { 927,391 }       --Position ebene 10 (BossZone)          --Besiege Nemere, den König über Frost und Eis.
            snow_dungeon_settings.Enable_TestServerMode = false         --Ob TestServer mode aktiviert ist. Wenn ja werden die Aufgaben schneller beendet.
            snow_dungeon_settings.IsNewGameRevision = true              --Need GameRevision 40301
            return snow_dungeon_settings
        end
        function is_TestServerMode()
            local set = snow_dungeon.get_settings()
            return set.Enable_TestServerMode
        end
        function is_nemeres_dungeon()
            local set = snow_dungeon.get_settings()
            local map = pc.get_map_index()
            if map >= (set.map_index * 10000) and map < (set.map_index * 10000 + 9000) then
                return true
            else
                return false
            end
        end
    		-- when 20395.chat."Juntar ao grupo" with (party.is_party() and d.find(party.getf("ice_dungeon_map_index"))) begin
    		when 20395.chat."Nemerova strážní věž " with (party.is_party() and d.find(party.getf("ice_dungeon_map_index"))) begin
    			local set = snow_dungeon.get_settings()
    			local n = party.getf("ice_dungeon_map_index")
    			local cord = set.base_cord
    			local level = d.getf_from_map_index("level", n)
    			--say("News Dungeon Level your group: "..level.."")
    			if level == 0 then
    				say_npc_name()
    				say("O teu grupo já matou o nemere.") 
    				return
    			end
    			if pc.getqf("out_party_time") < get_global_time() then
    				say_npc()
    				say("")
    				say("Já saiste a "..math.ceil(set.DurationMaxOnReJoinGroup  /60) .." Minuto(s)")
    				say("Já nao é possivel juntares-te ao teu grupo.")
    				say(" ")
    				return
    			end
    			if n == 0 then
    				setskin(NOWINDOW)
    				return
    			else
    				say_npc()
    				say("")
    				say("Chcete přesunout??")
    				if select("Ano","Ne") == 1 then
    					local warp_to_level = set.Position_level_1
    					local level = d.getf_from_map_index("level", n)
    					if level >= 1 and level <= 10 then
    						if level == 1 then      warp_to_level = set.Position_level_1
    						elseif level == 2 then  warp_to_level = set.Position_level_2
    						elseif level == 3 then  warp_to_level = set.Position_level_3
    						elseif level == 4 then  warp_to_level = set.Position_level_4
    						elseif level == 5 then  warp_to_level = set.Position_level_5
    						elseif level == 6 then  warp_to_level = set.Position_level_6
    						elseif level == 7 then  warp_to_level = set.Position_level_7
    						elseif level == 8 then  warp_to_level = set.Position_level_8
    						elseif level == 9 then  warp_to_level = set.Position_level_9
    						elseif level == 10 then warp_to_level = set.Position_level_10
    						end
    						pc.warp((cord[1] + warp_to_level[1])*100,(cord[2] + warp_to_level[2])*100,n)
    					else
    						return
    					end
    				end
    			end
    		end
         
    		when 20395.chat."Nemerova strážní věž " begin
    			local set = snow_dungeon.get_settings()
    			local need_level = set.need_level
    			say_npc()
    			say("")
    			say("Chceš přesunout?")
    			if select("Ano ","Ne") == 2 then
    				return
    			end
    			if (pc.is_gm() and pc.getf("snow_dungeon","duration") >= get_global_time()) then
    				say("Jsi GM, máš možnost restartovat čekací dobu.")
    				if select("Restartovat","Čekat") == 1 then
    					pc.setf("snow_dungeon","duration",0)
    					return
    				end
    			end
    			if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
    				say("O servidor está em modo teste.")
    				say("Juntar agora.")
    				timer("make_dungeon",3)
    				return
    			end
    			if not party.is_leader() then
    				say_npc()
    				say("Nejdříve musí do Veže vstoupit zakladatel skupiny.")
    				say("Pote se teleportují všichni členové.")
    				return
    			end
    			if pc.get_level() < need_level then
    				say("Pro vstup potřebuješ alespoň level: "..need_level.."")
    				return
    			end
    			if pc.getf("snow_dungeon","duration") >= get_global_time() then
    				say_npc()
    				say("Čekací doba na znovu otevřeních Nemerovi strážní věže.")
    				say("Zbývajíci čas: "..LIB_duration(pc.getf("snow_dungeon","duration") - get_global_time()).."")
    				return
    			end
    			if snow_dungeon._CheckMembersLevel() == false then  
    				return
    			else
    				timer("make_dungeon",2)
    			end
    		end
    		when 20397.chat."Spustit " begin --Eisiger Löwe
    			say_npc()
    			say("")
    			say("Opravdu chceš začít?")
    			if select("Ano","Ne") == 1 then
    				local set = snow_dungeon.get_settings()
    				local loop_durr = set.DurationLoopTimer
    				local wait_durations = set.wait_duration
    				local t = get_global_time()
    				d.setf("LastTimeGetOutPut",0)   
    				server_loop_timer("CheckLevelAndCountKillOnMobs",loop_durr,d.get_map_index())
    				d.regen_file("data/dungeon/ice_dungeon/zone_1.txt")
    				d.setf("Start_Time",t + set.maxlife_time_on_dungeon)
    				server_timer("Jp_OutAllFailNotice",(t + set.maxlife_time_on_dungeon) -  t,d.get_map_index())
    				--pc.setqf("duration",t + wait_durations)
    				d.setqf2("snow_dungeon","duration",t + wait_durations)
    				d.setf("level",1)
    				d.notice("Objeví se první příšery, zabijte je a budete přesunuti do dalšího patra.")
    				npc.purge()
    				snow_dungeon._GetLastTime()
    			end
    			setskin(NOWINDOW)
    		end
    		when make_dungeon.timer begin
    			local set = snow_dungeon.get_settings()
    			local cord = set.base_cord
    			local start_pos = set.Position_level_1
    			local t = get_global_time()
    			d.new_jump_party(352,(cord[1] + start_pos[1]), (cord[2] + start_pos[2]))
    			--d.new_jump_all(set.map_index,(cord[1] + start_pos[1]), (cord[2] + start_pos[2]))
    			snow_dungeon._ClearAlls()
    			d.setf("party_leader_pid",party.get_leader_pid())
    			party.setf("ice_dungeon_map_index",d.get_map_index())
    			d.spawn_mob_dir(20397, 173,262,1) --Eisiger Löwe
    		end
    		function _ClearAlls()
    			local d_index = d.get_map_index()
    			clear_server_timer("CheckLevelAndCountKillOnMobs",d_index)
    			clear_server_timer("Jp_1",d_index)
    			clear_server_timer("Jp_2",d_index)
    			clear_server_timer("Jp_3",d_index)
    			clear_server_timer("Jp_4",d_index)
    			clear_server_timer("Jp_5",d_index)
    			clear_server_timer("Jp_6",d_index)
    			clear_server_timer("Jp_7",d_index)
    			clear_server_timer("Jp_8",d_index)
    			clear_server_timer("Jp_9",d_index)
    			clear_server_timer("Jp_10",d_index)
    			clear_server_timer("Jp_OutAll",d_index)
    			clear_server_timer("Jp_OutAllFail",d_index)
    			clear_server_timer("Jp_OutAllFailNotice",d_index)
    			d.setf("level",0)   
    			d.setf("party_leader_pid",0)
    			d.setf("Start_Time",0)
    			d.setf("LastTimeGetOutPut",0)
    			d.setf("Stone_5_count",0)
    			d.setf("Stone_5_item_fail",0)
    			d.clear_regen()
    			d.kill_all()
    		end
         
        function _CheckMembersLevel()
            local set = snow_dungeon.get_settings()
            local user_fail_level = {}
            local pids = {party.get_member_pids()}
            local need_level = set.need_level_group
            local have_ninja = false
            local have_shaman = false
            for i = 1, table.getn(pids), 1 do
                q.begin_other_pc_block(pids)
                if pc.get_level() < need_level then
                    table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name())
                end
                local job = pc.get_job()
                have_ninja = true
                have_shaman = true
                q.end_other_pc_block()
            end
    			if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
    				--dchat("TestServer Mode is enable.")
    				return true
    			end
    			if have_ninja == false then
    				say("Nao podes entrar sem um ninja.")
    				say("")
    				return false
    			end
    			if have_shaman == false then
    				say("Nao podes entrar sem um shaman.")
    				say("")
    				return false
    			end
    			if table.getn(user_fail_level) >= 1 then
    				say_npc()
    				say("")
    				say("Alguns membros do grupo")
    				say("ainda nao sao nivel "..need_level..":")
    				for x = 1, table.getn(user_fail_level), 1 do
    					say(color(1,1,0), "    "..user_fail_level[x])
    				end
    				return false
    			end
    			if table.getn(user_fail_level) == 0 then
    				return true
    			end
    		end
    		when logout begin
    			if snow_dungeon.is_nemeres_dungeon() == true then
    			local set = snow_dungeon.get_settings()
    			pc.setqf("out_party_time",get_global_time() + set.DurationMaxOnReJoinGroup)
    			--snow_dungeon.unregister_name()
    			end
    		end
         
    		when login begin
    			if snow_dungeon.is_nemeres_dungeon() == true then
    				local set = snow_dungeon.get_settings()
    				local backk = set.outside_entry_pos
    				pc.set_warp_location(backk[1], backk[2],backk[3])
    				if d.getf("party_leader_pid") != party.get_leader_pid() then
    					chat("nemeres_wait_dungeon #RAUS:#  O teu grupo nao está na cave")
    					chat("nemeres_wait_dungeon #RAUS:#debug -> "..d.getf("party_leader_pid").." != "..party.get_leader_pid().."")
    					d.exit()
    					return
    				end
    				if pc.get_level() < set.need_level_group then
    					chat("nemeres_wait_dungeon #RAUS:#  O meu nivel é muito baixo")
    					d.exit()
    					return
    				end
    				--chat("Welcome to Nemeres waiting, you have "..math.ceil((d.getf("Start_Time")  - get_global_time()) /60) .." Minutes Time.")
    				--notice("Kill all the monsters on this level to get to the next floor.")
    				--snow_dungeon._GetLastTime()
    			end
    		end
         
    		function _GetLastTime()
    			local c = get_global_time()
    			local t = d.getf("Start_Time") - c
    			local o = d.getf("LastTimeGetOutPut")
    			--d.notice("CurrentTime: "..c.." Last: "..o.."")
    			if c >= o then
    				if t >= 60 then
    					d.notice("Zbývajíci čas: "..math.ceil(t / 60).." minut.")
    				else
    					d.notice("Zbývá  "..t .." sekund.")
    				end
    				if t >= (60*10) then
    					d.setf("LastTimeGetOutPut",c + 60*5)
    				elseif t >= (60*5) then
    					d.setf("LastTimeGetOutPut",c + 60*2)
    				else
    					d.setf("LastTimeGetOutPut",c + 10)
    				end
    				--d.setf("LastTimeGetOutPut",c + 60*number(3,5)) -- Random
    			end
    		end
         
    		when Jp_OutAllFailNotice.server_timer begin
    			if d.select(get_server_timer_arg()) then
    				d.notice("O tempo acabou.")
    				server_timer("Jp_OutAll",1,d.get_map_index())
    			end
    		end
    		
    		when CheckLevelAndCountKillOnMobs.server_timer begin
    			if d.select(get_server_timer_arg()) then
    				local set = snow_dungeon.get_settings()
    				local level = d.getf("level")
    				local mob_count = d.count_monster()
    				local next_jump_time = set.NextJumpTime
    				d.notice("Úroveň: "..level.." Počet příšer: "..mob_count.."")
    				if level == 1 and mob_count <= 0 then
    					d.notice("Teď by mělo být patro 2")
    					d.notice("Porazil jste všechny příšery. Budete přesunuti do dalšího patra")
    					d.notice("")
    					server_timer("Jp_2",next_jump_time,d.get_map_index())
    					d.clear_regen()
    					d.kill_all()
    					d.set_regen_file("data/dungeon/ice_dungeon/zone_2.txt")
    				elseif level == 3 and mob_count <= 0 then
    					d.notice("Teď by mělo být patro 4")
    					d.notice("Porazil jste všechny příšery. Budete přesunuti do dalšího patra")
    					d.notice("")
    					server_timer("Jp_4",next_jump_time,d.get_map_index())
    					d.clear_regen()
    					d.kill_all()
    					d.regen_file("data/dungeon/ice_dungeon/zone_4.txt")
    				elseif level == 4 and mob_count <= 0 then
    					d.notice("Teď by mělo být patro 5")
    					d.notice("Porazil jste všechny příšery. Budete přesunuti do dalšího patra")
    					d.notice("")
    					server_timer("Jp_5",next_jump_time,d.get_map_index())
    					d.clear_regen()
    					d.kill_all()
    					d.set_regen_file("data/dungeon/ice_dungeon/zone_5.txt")
    				elseif level == 6 and mob_count <= 0 then
    					d.notice("Teď by mělo být patro 7")
    					local MobStonelvl6 = set.MobVnum_level_6
    					d.notice("Porazte všechny příšery,[ENTER} a "..mob_name(MobStonelvl6).." se objeví..")
    					d.notice("")
    					d.clear_regen()
    					d.kill_all()
    					d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
    					d.spawn_mob(MobStonelvl6,570,649)
    				elseif level == 7 and mob_count <= 0 then
    					d.notice("Porazil jste všechny příšery. Budete přesunuti do dalšího patra")
    					d.notice("")
    					server_timer("Jp_8",next_jump_time,d.get_map_index())
    					d.clear_regen()
    					d.kill_all()
    					d.set_regen_file("data/dungeon/ice_dungeon/zone_8.txt")             
    				end
    				snow_dungeon._GetLastTime()
    			end
    		end
     
    		when Jp_2.server_timer begin --Jump Level 2
    			if d.select(get_server_timer_arg()) then
    				local set = snow_dungeon.get_settings()
    				local v = set.key_level_2
    				d.setf("level",2)
    				local cord = set.base_cord
    				local pos = set.Position_level_2
    				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
    				d.notice("Získejte "..item_name(v).." a budete moci postoupit.")
    				d.notice("")
    			end
    		end
    		when 30331.use with snow_dungeon.is_nemeres_dungeon() == true begin --key_level_2
    			local set = snow_dungeon.get_settings()
    			local next_jump_time = set.NextJumpTime
    			local job = pc.get_job()
    			local level = d.getf("level")
    			if level == 2 then
    				if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
    					--dchat("SET VARIABLE JOB 3")
    					job = 3
    				end
    				if job == pc.get_job() -- Schamane weiblich
    				or job == pc.get_job() --Schamane männlich
    				then
    					if number(1,3) == 1 then --or d.count_monster() < 10 then
    						d.notice("Teď by mělo být patro 3")
    						d.notice("Tento klíč zafungoval. Budete přesunuti do dalšího patra.")
    						server_timer("Jp_3",next_jump_time,d.get_map_index())
    						d.clear_regen()
    						d.kill_all()
    						d.regen_file("data/dungeon/ice_dungeon/zone_3.txt")
    						item.remove()
    					else
    						d.notice("Zkuste to znovu..")
    						item.remove()
    					end
    				else
    					d.notice("Apenas shamans.")
    					return
    				end
    			end
    		end
         
    		when Jp_3.server_timer begin --Jump Level 3
    			if d.select(get_server_timer_arg()) then
    				local set = snow_dungeon.get_settings()
    				d.setf("level",3)
    				local cord_MQ = set.base_cord
    				local pos = set.Position_level_3
    				d.jump_all((cord_MQ[1] + pos[1]), (cord_MQ[2] + pos[2]))
    				d.notice("Porazil jste všechny příšery. Budete přesunuti do dalšího patra ")
    			end
    		end
         
    		when Jp_4.server_timer begin --Jump Level 4
    			if d.select(get_server_timer_arg()) then
    				local set = snow_dungeon.get_settings()
    				d.setf("level",4)
    				local cord = set.base_cord
    				local pos = set.Position_level_4
    				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
    				d.notice("Porazil jste všechny příšery. Budete přesunuti do dalšího patra ")
    			end
    		end
         
    		when Jp_5.server_timer begin --Jump Level 5
    			if d.select(get_server_timer_arg()) then
    				local set = snow_dungeon.get_settings()
    				local v = set.NpcVnum_level_5
    				d.setf("level",5)
    				local cord = set.base_cord
    				local pos = set.Position_level_5
    				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
    				d.notice("Abriste "..mob_name(v).." na ordem correta.")
    				if set.IsNewGameRevision == true then
    					d.notice("A chave caiu do monstro ...")
    				else
    					d.notice("A chave foi diretamente para o teu inventário ...")
    				end
    				snow_dungeon._Create_Stones_level5()
    			end
    		end
    		
    		function _DropKeyOnLevel5()
    			if number(1,1000) >= 666 then --Abbruch der weiteren funtion -> Damit es spannend bleibt bei den würfeln... :P
    				return
    			end
    			local set = snow_dungeon.get_settings()
    			local count = set.StoneCount_level_5
    			local vnum = set.Key_on_level_5
    			local get_random_unique = d.get_unique_vid("stone5_"..number(1,count).."")
    			local fail_count = d.getf("Stone_5_item_fail") +1
    			local search = d.getf("Stone_5_count")
    			local search2 = d.get_unique_vid("stone5_"..search.."")
    			if search2 != get_random_unique then
    				d.setf("Stone_5_item_fail",fail_count)
    			end
    			--
    			if set.IsNewGameRevision == true then
    				--New function
    				game.drop_item_and_select(vnum,1)
    			else
    				pc.give_item2_select(vnum,1)
    			end
    			--dchat("Creaty Key fail_count: "..fail_count.."")
    			if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --Wenn TestServer Modus
    				item.set_socket(1,search2)
    				d.setf("Stone_5_item_fail",0)
    			elseif fail_count > 6 then --Wenn mehr wie x mal nicht richtig erstellt wird, dann kommt der richtige Key
    				item.set_socket(1,search2)
    				d.setf("Stone_5_item_fail",0)
    			else   
    				item.set_socket(1,get_random_unique)
    			end
    		end
    		 
    		function _Create_Stones_level5()
    			local set = snow_dungeon.get_settings()
    			local stone_level5_count_MQ = set.StoneCount_level_5
    			local c = set.StoneCords_level_5 --{ {432,508},{437,493},{448,492},{448,476},{467,475},{466,464}}
    			local v = set.NpcVnum_level_5
    			for i = 1, stone_level5_count_MQ, 1 do
    				local n = number(1,table.getn©)
    				--d.spawn_mob(20398, c[n][1], c[n][2])
    				d.set_unique("stone5_"..i.."", d.spawn_mob(v, c[n][1], c[n][2]))
    				--d.set_unique("stone5_"..i.."", mob.spawn(20398, c[n][1], c[n][2],1,1,1)) --GEHT
    				--d.set_unique("stone5_"..i.."", d.spawn_mob_ac_dir(20398, c[n][1], c[n][2],i)) --GEHT
    				table.remove(c,n)
    				if i == 1 then
    					d.setf("Stone_5_count",1)
    					d.setf("Stone_5_item_fail",0)
    				end
    			end
    		end
    		 
    		when 20398.take begin --NpcVnum_level_5
    			if snow_dungeon.is_nemeres_dungeon() == true then
    				local set = snow_dungeon.get_settings()
    				local stone_level5_count = set.StoneCount_level_5
    				local next_jump_time = set.NextJumpTime
    				local vnum = item.get_vnum()
    				local key_level_5 = set.Key_on_level_5 --30332
    				local unique_item = item.get_socket(1)
    				dchat("unique_item: "..unique_item.."")
    				if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
    					d.notice("TESTSERVERMODE, vais ser teleportado para o próximo piso.")
    					npc.purge()
    					item.remove()
    					server_timer("Jp_6",next_jump_time,d.get_map_index())
    					d.clear_regen()
    					d.kill_all()
    					d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
    					return
    				end
    				if vnum == key_level_5 then
    					local npc_vid = npc.get_vid()
    					local search = d.getf("Stone_5_count")
    					local search2 = d.get_unique_vid("stone5_"..search.."")
    					dchat("npc_vid: "..npc_vid.." search:"..search.." search2:"..search2.." ")
    					if npc_vid == search2 then
    						if unique_item == npc_vid then
    							local new = search +1
    							if new > stone_level5_count then
    								d.notice("A última pedra foi destruida, vais ser teleporado para o próximo piso.")
    								npc.purge()
    								item.remove()
    								server_timer("Jp_6",next_jump_time,d.get_map_index())
    								d.clear_regen()
    								d.kill_all()
    								d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
    							else
    								d.notice("A "..search..". pedra foi destruida. [ENTER}Faltam ".. stone_level5_count - search .." pedras.")
    								npc.purge()
    								item.remove()
    							end
    							d.setf("Stone_5_count",new)
    						else
    							chat("Pedra certa, chave errada.")
    							item.remove()
    						end
    					else
    						chat("Esta nao é a pedra certa.")
    					end
    				end
    			end --if is dungeon end
    		end --when end
    		 
    		when Jp_6.server_timer begin --Jump Level 6
    			if d.select(get_server_timer_arg()) then
    				local set = snow_dungeon.get_settings()
    				local v = set.MobVnum_level_6
    				d.setf("level",6)
    				local cord = set.base_cord
    				local pos = set.Position_level_6
    				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
    				 
    				d.notice("Mata todos os monstros. [ENTER]Depois, mata o "..mob_name(v).."")
    				d.notice("Apenas os shaman podem ajudar-te.")
    				--d.spawn_mob(v,570,649)
    				 
    			end
    		end
    		 
    		when Jp_7.server_timer begin --Jump Level 7
    			if d.select(get_server_timer_arg()) then
    				local set = snow_dungeon.get_settings()
    				local v = set.MobVnum_level_7
    				d.setf("level",7)
    				local cord = set.base_cord
    				local pos = set.Position_level_7
    				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
    				d.notice("Teď by mělo být patro 8")
    				d.notice("Mataste todos os monstros, [ENTER]mata agora o "..mob_name(v)..".")
    			end
    		end
    		 
    		when Jp_8.server_timer begin --Jump Level 8
    			if d.select(get_server_timer_arg()) then
    				local set = snow_dungeon.get_settings()
    				local v = set.Key_on_level_8
    				d.setf("level",8)
    				local cord = set.base_cord
    				local pos = set.Position_level_8
    				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
    				d.notice("Kill monsters to her as long "..item_name(v).." have.")
    				d.notice("But only Mage and Ninjas can use it.")
    			end
    		end
    		 
    		when 30333.use with snow_dungeon.is_nemeres_dungeon() == true begin --Key_on_level_8
    			local set = snow_dungeon.get_settings()
    			local next_jump_time = set.NextJumpTime
    			local level = d.getf("level")
    			local job = pc.get_job()
    			if level == 8 then
    				if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
    					--dchat("SET VARIABLE JOB 3")
    					job = 3
    				end
    				if job == 1 -- Ninja weiblich
    				or job == 5 --Ninja männlich
    				or job == 3 -- Schamane weiblich
    				or job == 7 --Schamane männlich
    				then
    					if number(1,3) == 1 then
    						d.notice("The correct key has been found in a few seconds[ENTER] it goes to the next floor.")
    						server_timer("Jp_9",next_jump_time,d.get_map_index())
    						d.clear_regen()
    						d.kill_all()
    						d.regen_file("data/dungeon/ice_dungeon/zone_9.txt")
    						item.remove()
    					else
    						d.notice("That was the wrong key.")
    						item.remove()
    					end
    				else
    					d.notice("Only Mage and Ninja can use.")
    					return
    				end
    			end
    		end
    		 
    		when Jp_9.server_timer begin --Jump Level 9
    			if d.select(get_server_timer_arg()) then
    				local set = snow_dungeon.get_settings()
    				local v = set.NpcVnum_level_9
    				d.setf("level",9)
    				local cord = set.base_cord
    				local pos = set.Position_level_9
    				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
    				d.notice("Destroy the "..mob_name(v).." ")
    				d.notice("But only Mage and Ninjas can add him naught.")
    				d.notice("")
    				d.spawn_mob(v,849,655)
    			end
    		end
    		 
    		when Jp_Boss.server_timer begin --Jump Level BossZone
    			if d.select(get_server_timer_arg()) then
    				local set = snow_dungeon.get_settings()
    				local v = set.BossVnum
    				d.setf("level",10)
    				local cord = set.base_cord
    				local pos = set.Position_level_10
    				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
    				d.notice("Defeated "..mob_name(v)..", the king of frost and ice.")
    			end
    		end
    		 
    		when kill begin
    			if snow_dungeon.is_nemeres_dungeon() == true then
    				local set = snow_dungeon.get_settings()
    				local next_jump_time = set.NextJumpTime
    				local level = d.getf("level")
    				local stone_level_6 = set.MobVnum_level_6
    				local stone_level_9 = set.NpcVnum_level_9
    				local boss_vnum = set.BossVnum
    				local wait_time = set.WaitBeforOutAllOnExit
    				local mobvnum = npc.get_race()
    				--dchat("nemeres_wait_dungeon MobVnum = "..mobvnum.."")
    				if level == 2 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10)  then
    					local v = set.key_level_2
    					game.drop_item(v,1)
    				elseif level == 5 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,15) then
    					d.notice("Teď by mělo být patro 6")
    					snow_dungeon._DropKeyOnLevel5()
    				elseif level == 6 and mobvnum == stone_level_6 then
    					d.notice("Teď by mělo být patro 7")
    					d.notice("The "..mob_name(stone_level_6).." was destroyed,  in a few seconds it goes to the next floor.")
    					d.notice("")
    					server_timer("Jp_7",next_jump_time,d.get_map_index())
    					d.clear_regen()
    					d.kill_all()
    					d.regen_file("data/dungeon/ice_dungeon/zone_7.txt") --Szel
    					local v_MQv = set.MobVnum_level_7
    					local c = set.SzelCords_level_7
    					local n = number(1,table.getn©)
    					d.spawn_mob(v_MQv, c[n][1], c[n][2])
    				elseif level == 8 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10) then
    					d.notice("Teď by mělo být patro 9")
    					local v = set.Key_on_level_8
    					game.drop_item(v,1)
    				elseif level == 9 and mobvnum == stone_level_9 then
    					d.notice("Teď by mělo být patro 10")
    					d.notice("The "..mob_name(stone_level_9).." was destroyed, in a few seconds it goes to the next floor.")
    					server_timer("Jp_Boss",next_jump_time,d.get_map_index())
    					d.clear_regen()
    					d.kill_all()
    					d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt")
    					local v = set.BossVnumGroup
    					d.spawn_group(v, 928, 335, 5 ,1, 1) --  (Input from SRC: argument: vnum,x,y,radius,aggressive,count)
    				elseif level == 10 and mobvnum == boss_vnum then
    					d.notice("Teď by mělo být patro 11")
    					d.clear_regen()
    					d.kill_all()
    					d.notice("You defeated "..mob_name(boss_vnum).." . In "..wait_time.." seconds all be teleported.")
    					server_timer("Jp_OutAll",wait_time,d.get_map_index())
    				end
    			end
    		end
    		when Jp_OutAll.server_timer begin --Jump Out Bye bye ;D
    			if d.select(get_server_timer_arg()) then
    				snow_dungeon._ExitAll()
    			end
    		end
    		function _ExitAll()
    			d.exit_all()
    		end
    	end
    	end

     

  3. Hi, can some one help me fix this quest? if i complete quest i did not get reward and did not get quest +1 😕 

    thx for help 

     

     

    quest lovecky begin
    	state start begin
    		when login begin
    			pc.setqf("lovecky_ukol", 1)
    			setstate(lovecky)
    		end
    	end
    	state lovecky begin
    		function lovecky_tabulka()
    			local lovecky_tabulkaX = 
    				{
    					[1] 	=	{1,			15,		101,		50000,			114000,		1,		124000,		1,		134000,		1,		144000,		1,		154000,		1,		164000,		1},
    					[2] 	=	{5,			20,		104,		100000,			114000,		1,		124000,		1,		134000,		1,		144000,		1,		154000,		1,		164000,		1},
    					[3]	=	{10,		25,		110,		150000,			114000,		2,		124000,		2,		134000,		2,		144000,		2,		154000,		2,		164000,		2},
    					[4]	=	{15,		30,		114,		200000,			114000,		2,		124000,		2,		134000,		2,		144000,		2,		154000,		2,		164000,		2},
    					[5]	=	{20,		35,		302,		250000,			114000,		3,		124000,		3,		134000,		3,		144000,		3,		154000,		3,		164000,		3},
    					[6]	=	{25,		40,		303,		300000,			114000,		3,		124000,		3,		134000,		3,		144000,		3,		154000,		3,		164000,		3},
    					[7]	=	{30,		45,		404,		350000,			114000,		4,		124000,		4,		134000,		4,		144000,		4,		154000,		4,		164000,		4},
    					[8]	=	{35,		50,		405,		400000,			114000,		4,		124000,		4,		134000,		4,		144000,		4,		154000,		4,		164000,		4},
    					[9]	=	{40,		55,		634,		450000,			114000,		5,		124000,		5,		134000,		5,		144000,		5,		154000,		5,		164000,		5},
    					[10]	=	{45,		60,		2301,		500000,			114000,		5,		124000,		5,		134000,		5,		144000,		5,		154000,		5,		164000,		5},
    					[11]	=	{50,		65,		2303,		600000,			114000, 	6,		124000,		6,		134000,		6,		144000,		6,		154000,		6,		164000,		6},
    					[12]	=	{55,		70,		2064,		650000,			114000,		6,		124000,		6,		134000,		6,		144000,		6,		154000,		6,		164000,		6},
    					[13]	=	{60,		75,		2065,		700000,			114000,		7,		124000,		7,		134000,		7,		144000,		7,		154000,		7,		164000,		7},
    					[14]	=	{65,		80,		2314,		750000,			114000,		7,		124000,		7,		134000,		7,		144000,		7,		154000,		7,		164000,		7},
    					[15]	=	{70,		85,		2315,		800000,			114000,		8,		124000,		8,		134000,		8,		144000,		8,		154000,		8,		164000,		8},
    					[16]	=	{75,		90,		2401,		850000,			114000,		8,		124000,		8,		134000,		8,		144000,		8,		154000,		8,		164000,		8},
    					[17]	=	{80,		95,		2402,		900000,			114000,		9,		124000,		9,		134000,		9,		144000,		9,		154000,		9,		164000,		9},
    					[18]	=	{85,		100,	2403,		950000,			114000,		9,		124000,		9,		134000,		9,		144000,		9,		154000,		9,		164000,		9},
    					[19]	=	{90,		200,	4000,		1000000,		114000,		10,		124000,		10,		134000,		10,		144000,		10,		154000,		10,		164000,		10},
    					[20]	=	{95,		200,	4001,		1050000,		114000,		10,		124000,		10,		134000,		10,		144000,		10,		154000,		10,		164000,		10},
    					[21]	=	{100,		200,	4005,		1100000,		114000, 	11,		124000,		11,		134000,		11,		144000,		11,		154000,		11,		164000,		11},
    					[22]	=	{105,		200,	4006,		1200000,		114000,		11,		124000,		11,		134000,		11,		144000,		11,		154000,		11,		164000,		11},
    					[23]	=	{110,		200,	4007,		1300000,		114000,		12,		124000,		12,		134000,		12,		144000,		12,		154000,		12,		164000,		12},
    					[24]	=	{115,		200,	4008,		1400000,		114000,		12,		124000,		12,		134000,		12,		144000,		12,		154000,		12,		164000,		12},
    					[25]	=	{120,		200,	4010,		1500000,		114000,		13,		124000,		13,		134000,		13,		144000,		13,		154000,		13,		164000,		13},
    					[26]	=	{125,		200,	4011,		1600000,		114000,		13,		124000,		13,		134000,		13,		144000,		13,		154000,		13,		164000,		13},
    					[27]	=	{130,		200,	4012,		1700000,		114000,		14,		124000,		14,		134000,		14,		144000,		14,		154000,		14,		164000,		14},
    					[28]	=	{135,		200,	4013,		1800000,		114000,		14,		124000,		14,		134000,		14,		144000,		14,		154000,		14,		164000,		14},
    					[29]	=	{140,		200,	4015,		1900000,		114000,		15,		124000,		15,		134000,		15,		144000,		15,		154000,		15,		164000,		15},
    					[30]	=	{145,		200,	4016,		2000000,		114000,		15,		124000,		15,		134000,		15,		144000,		15,		154000,		15,		164000,		15},
    					[31]	=	{150,		400,	4017,		2100000,		114000, 	16,		124000,		16,		134000,		16,		144000,		16,		154000,		16,		164000,		16},
    					[32]	=	{155,		400,	4018,		2200000,		114000,		16,		124000,		16,		134000,		16,		144000,		16,		154000,		16,		164000,		16},
    					[33]	=	{160,		400,	4020,		2300000,		114000,		17,		124000,		17,		134000,		17,		144000,		17,		154000,		17,		164000,		17},
    					[34]	=	{165,		400,	4021,		2400000,		114000,		17,		124000,		17,		134000,		17,		144000,		17,		154000,		17,		164000,		17},
    					[35]	=	{170,		400,	4022,		2500000,		114000,		18,		124000,		18,		134000,		18,		144000,		18,		154000,		18,		164000,		18},
    					[36]	=	{175,		400,	4023,		2600000,		114000,		18,		124000,		18,		134000,		18,		144000,		18,		154000,		18,		164000,		18},
    					[37]	=	{180,		400,	4025,		2700000,		114000,		19,		124000,		19,		134000,		19,		144000,		19,		154000,		19,		164000,		19},
    					[38]	=	{185,		400,	4026,		2800000,		114000,		19,		124000,		19,		134000,		19,		144000,		19,		154000,		19,		164000,		19},
    					[39]	=	{190,		400,	4027,		2900000,		114000,		20,		124000,		20,		134000,		20,		144000,		20,		154000,		20,		164000,		20},
    					[40]	=	{195,		400,	4028,		3000000,		114000,		20,		124000,		20,		134000,		20,		144000,		20,		154000,		20,		164000,		20},
    					[41]	=	{200,		400,	4030,		3100000,		114000,		21,		124000,		21,		134000,		21,		144000,		21,		154000,		21,		164000,		21},
    					[42]	=	{205,		700,	4031,		3200000,		114000,		21,		124000,		21,		134000,		21,		144000,		21,		154000,		21,		164000,		21},
    					[43]	=	{210,		700,	4032,		3300000,		114000,		22,		124000,		22,		134000,		22,		144000,		22,		154000,		22,		164000,		22},
    					[44]	=	{215,		700,	4033,		3300000,		114000,		22,		124000,		22,		134000,		22,		144000,		22,		154000,		22,		164000,		22},
    					[45]	=	{220,		700,	4045,		3400000,		114000,		22,		124000,		22,		134000,		22,		144000,		22,		154000,		22,		164000,		22},
    					[46]	=	{225,		700,	4046,		3400000,		114000,		22,		124000,		22,		134000,		22,		144000,		22,		154000,		22,		164000,		22},
    					[47]	=	{230,		700,	4047,		3500000,		114000,		23,		124000,		23,		134000,		23,		144000,		23,		154000,		23,		164000,		23},
    					[48]	=	{235,		700,	4048,		3500000,		114000,		23,		124000,		23,		134000,		23,		144000,		23,		154000,		23,		164000,		23},
    					[49]	=	{240,		700,	4040,		3600000,		114000,		23,		124000,		23,		134000,		23,		144000,		23,		154000,		23,		164000,		23},
    					[50]	=	{245,		700,	4041,		3600000,		114000,		23,		124000,		23,		134000,		23,		144000,		23,		154000,		23,		164000,		23},
    					[51]	=	{250,		700,	4042,		3700000,		114000,		24,		124000,		24,		134000,		24,		144000,		24,		154000,		24,		164000,		24},
    					[52]	=	{255,		700,	4043,		3700000,		114000,		24,		124000,		24,		134000,		24,		144000,		24,		154000,		24,		164000,		24},
    					[53]	=	{260,		700,	4044,		3800000,		114000,		24,		124000,		24,		134000,		24,		144000,		24,		154000,		24,		164000,		24},
    				}
    			return lovecky_tabulkaX
    		end
    		when kill begin
    			local tabulka = lovecky.lovecky_tabulka()
    			local lovecky_ukol = pc.getqf("lovecky_ukol")
    			local lovecky_pocet = table.getn(tabulka)
    			if lovecky_ukol <= lovecky_pocet then
    				if pc.level >= tabulka[lovecky_ukol][1] then
    					if npc.get_race() == tabulka[lovecky_ukol][3] then
    						pc.setqf("lovecky_pocet", pc.getqf("lovecky_pocet")+1)
    						q.set_counter(mob_name(tabulka[lovecky_ukol][3]), tabulka[lovecky_ukol][2]-pc.getqf("lovecky_pocet"))
    						if pc.getqf("lovecky_pocet") >= tabulka[lovecky_ukol][2] then
    							setstate(lovecky_odmena)
    						end
    					end
    				end
    			end
    		end
    		when letter begin
    			send_letter("Lovecký úkol - Zadání ")
    		end
    		when button or info begin
    			local tabulka = lovecky.lovecky_tabulka()
    			local lovecky_ukol = pc.getqf("lovecky_ukol")
    			local lovecky_pocet = table.getn(tabulka)
    			if lovecky_ukol <= lovecky_pocet then
    				q.set_counter(mob_name(tabulka[lovecky_ukol][3]), tabulka[lovecky_ukol][2]-pc.getqf("lovecky_pocet"))
    				
    				say_title("[DELAY value;0]Lovecký úkol "..tabulka[lovecky_ukol][1].." Lv.")
    				say("")
    				say("Lovecký úkol :")
    				if pc.level >= tabulka[lovecky_ukol][1] then
    					say("Úkol level: "..tabulka[lovecky_ukol][1])
    				else
    					say("Úkol level: "..tabulka[lovecky_ukol][1])
    				end
    				say("Co musíš zabít? "..mob_name(tabulka[lovecky_ukol][3])..".")
    				say("Počet: "..tabulka[lovecky_ukol][2])
    				say("Zůstává: "..tabulka[lovecky_ukol][2] - pc.getqf("lovecky_pocet"))
    				say("")
    				say("")
    				say(""..locale.logo.."")
    				say("")
    			else
    				say("Již jsi dokončil veškeré lovecké úkoly. ")
    				q.set_counter("Polowanie ukończone", 0)
    			end
    		end
    	end
    	state lovecky_odmena begin
    		when letter begin
    			send_letter("Lovecký úkol - Dokončeno ")
    		end
    		when button or info begin
    			local tabulka = lovecky.lovecky_tabulka()
    			local lovecky_ukol = pc.getqf("lovecky_ukol")
    			local lovecky_pocet = table.getn(tabulka)
    			
    			say_title("Gratulujeme, dokončil jsi Lovecký úkol! ")
    			say("")
    			say("Lovecký úkol:")
    			say("")
    			say("Za ochotu, a způsobené škody získáváš: ")
    			say("Yangů: "..(tabulka[lovecky_ukol][4]))
    			say(item_name(tabulka[lovecky_ukol][5]).." "..tabulka[lovecky_ukol][6].." ks.")
    			say(item_name(tabulka[lovecky_ukol][7]).." "..tabulka[lovecky_ukol][8].." ks.")
    			say(item_name(tabulka[lovecky_ukol][9]).." "..tabulka[lovecky_ukol][10].." ks.")
    			say(item_name(tabulka[lovecky_ukol][11]).." "..tabulka[lovecky_ukol][12].." ks.")
    			say(item_name(tabulka[lovecky_ukol][13]).." "..tabulka[lovecky_ukol][14].." ks.")
    			say(item_name(tabulka[lovecky_ukol][15]).." "..tabulka[lovecky_ukol][16].." ks.")
    			say("")
    			say(""..locale.logo.."")
    			say("")
    			pc.change_money(tabulka[lovecky_ukol][4])
    			if tabulka[lovecky_ukol][5] > 0 then
    				pc.give_item2(tabulka[lovecky_ukol][5], tabulka[lovecky_ukol][6])
    			end
    			if tabulka[lovecky_ukol][7] > 0 then
    				pc.give_item2(tabulka[lovecky_ukol][7], tabulka[lovecky_ukol][8])
    			end
    			if tabulka[lovecky_ukol][9] > 0 then
    				pc.give_item2(tabulka[lovecky_ukol][9], tabulka[lovecky_ukol][10])
    			end
    			if tabulka[lovecky_ukol][11] > 0 then
    				pc.give_item2(tabulka[lovecky_ukol][11], tabulka[lovecky_ukol][12])
    			end
    			if tabulka[lovecky_ukol][13] > 0 then
    				pc.give_item2(tabulka[lovecky_ukol][13], tabulka[lovecky_ukol][14])
    			end
    			if tabulka[lovecky_ukol][15] > 0 then
    				pc.give_item2(tabulka[lovecky_ukol][15], tabulka[lovecky_ukol][16])
    			end
    			say("")
    			pc.setqf( "lovecky_ukol", pc.getqf("lovecky_ukol") + 1 )
    			pc.setqf("lovecky_pocet", 0)
    			clear_letter()
    			setstate(lovecky)
    		end
    	end
    end

     

  4. 2 hours ago, Drow said:

     

     

    His frunction has 3 parameters but only 2 are used, so I just removed the 3'th parameter.

    In addition he is using c++14 that has std::unique_ptr and c++11 doesn't, so I googled it and found that template function.

    Enjoy.

    
    #ifdef ENABLE_SHOW_CHEST_DROP
    #include "../../libgame/include/grid.h"
    
    template<typename T, typename... Args>
    std::unique_ptr<T> make_unique(Args&&... args) {
        return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
    }
    
    void ITEM_MANAGER::GetChestItemList(DWORD dwChestVnum, std::vector<TChestDropInfoTable>& vec_item)
    {
        const auto pGroup = GetSpecialItemGroup(dwChestVnum);
        if (!pGroup)
            return;
        std::vector<std::unique_ptr<CGrid>> pGrids;
        pGrids.emplace_back(make_unique<CGrid>(15, 5));
    
        for (int i = 0; i < pGroup->GetGroupSize(); i++) {
            const auto itemTable = GetTable(pGroup->GetVnum(i));
            //pass if exp, yang or duplicate item
            if (!itemTable || !itemTable->dwVnum || itemTable->dwVnum < 3 || std::find_if(vec_item.begin(), vec_item.end(), [&pGroup, &i](const TChestDropInfoTable& data) -> bool { return static_cast<DWORD>(pGroup->GetVnum(i)) == data.dwItemVnum; }) != vec_item.end())
                continue;
            bool PushNewGrid = true;
            for (size_t iPage = 0; iPage < pGrids.size(); iPage++) {
                const auto iPos = pGrids.at(iPage)->FindBlank(1, static_cast<int>(itemTable->bSize));
                if (iPos >= 0) {
                    pGrids.at(iPage)->Put(iPos, 1, static_cast<int>(itemTable->bSize));
                    vec_item.push_back({ static_cast<BYTE>(iPage + 1), static_cast<BYTE>(iPos), static_cast<DWORD>(pGroup->GetVnum(i)), static_cast<BYTE>(pGroup->GetCount(i)) });
                    PushNewGrid = false;
                    break;
                }
            }
            if (PushNewGrid) {
                pGrids.emplace_back(make_unique<CGrid>(15, 5));
                i--;//again
            }
        }
    }
    #endif

     

    Famous thanks ❤️ 

    Anyone known bug if box dont have drop game core crashed? 
    viz: gdb game.core
     

    #1  TrafficProfiler::Report (dwSize=0, byHeader=<optimized out>, dir=TrafficProfiler::IODIR_OUTPUT, this=0x6) at TrafficProfiler.h:59
    No locals.
    #2  DESC::Packet (this=<optimized out>, c_pvData=0x0, iSize=0) at desc.cpp:470
            buf = <optimized out>
            stName = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                _M_p = 0xffff9c74 "DomeSs"}, _M_string_length = 6, {_M_local_buf = "DomeSs\000@s\314\024\b\030\224\243@", _M_allocated_capacity = 1701670724}}
    #3  0x0813b3d6 in CInputMain::Acce (this=0x0, pkChar=0x0, c_pData=0x0) at input_main.cpp:3126
            pPC = <optimized out>
            sPacket = 0x40a4b800


     

  5. On 12/7/2019 at 7:30 PM, Mali61 said:

    thanks for topic here is auto adaptable codes and some improvings..

    
    
    #ifdef ENABLE_SHOW_CHEST_DROP
    #include "../../libgame/include/grid.h"
    void ITEM_MANAGER::GetChestItemList(DWORD dwChestVnum, std::vector<TChestDropInfoTable>& vec_item, int& sizee)
    {
    	const auto pGroup = GetSpecialItemGroup(dwChestVnum);
    	if (!pGroup)
    		return;
    	std::vector<std::unique_ptr<CGrid>> pGrids;
    	pGrids.emplace_back(std::make_unique<CGrid>(15, 5));
    	
    	for (int i = 0; i < pGroup->GetGroupSize(); i++) {
    		const auto itemTable = GetTable(pGroup->GetVnum(i));
    		//pass if exp, yang or duplicate item
    		if (!itemTable || !itemTable->dwVnum || itemTable->dwVnum < 3 || std::find_if(vec_item.begin(), vec_item.end(), [&pGroup, &i](const TChestDropInfoTable& data) -> bool { return static_cast<DWORD>(pGroup->GetVnum(i)) == data.dwItemVnum; }) != vec_item.end())
    			continue;
    		bool PushNewGrid = true;
    		for (size_t iPage = 0; iPage < pGrids.size(); iPage++) {
    			const auto iPos = pGrids.at(iPage)->FindBlank(1, static_cast<int>(itemTable->bSize));
    			if (iPos >= 0) {
    				pGrids.at(iPage)->Put(iPos, 1, static_cast<int>(itemTable->bSize));
    				vec_item.push_back({ static_cast<BYTE>(iPage+1), static_cast<BYTE>(iPos), static_cast<DWORD>(pGroup->GetVnum(i)), static_cast<BYTE>(pGroup->GetCount(i)) });
    				PushNewGrid = false;
    				break;
    			}
    		}
    		if (PushNewGrid) {
    			pGrids.emplace_back(std::make_unique<CGrid>(15, 5));
    			i--;//again
    		}
    	}
    }
    #endif

     

    can some one help implement this function? dont work for me..

     

    
    item_manager.cpp:1870:6: error: no declaration matches 'void ITEM_MANAGER::GetChestItemList(DWORD, std::vector<SChestDropInfoTable>&, int&)'
     void ITEM_MANAGER::GetChestItemList(DWORD dwChestVnum, std::vector<TChestDropInfoTable>& vec_item, int& sizee)
          ^~~~~~~~~~~~
    In file included from item_manager.cpp:19:
    item_manager.h:398:9: note: candidate is: 'void ITEM_MANAGER::GetChestItemList(DWORD, std::vector<SChestDropInfoTable>&)'
      void   GetChestItemList(DWORD dwChestVnum, std::vector<TChestDropInfoTable>& vec_item);
             ^~~~~~~~~~~~~~~~
    In file included from item_manager.cpp:19:
    item_manager.h:353:7: note: 'class ITEM_MANAGER' defined here
     class ITEM_MANAGER : public singleton<ITEM_MANAGER>
           ^~~~~~~~~~~~


     

  6. On 7/27/2015 at 12:10 PM, Minton said:

    Require administrator priviliges:

    Right click on the project -> Add -> New Item -> Application Manifest File

    Search this:
     

    
    <requestedExecutionLevel level="asInvoker" uiAccess="false" />

     

    Replace with this:
     

    
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

     

    HI, can anyone help? i cant create app manifest.. 

  7. Hi, i try install Offline shop by great. 

    Game source OK
    DB source OK
    Client source OK 

    but if i try implement root python scripts i got this 

     

    1016 16:06:16696 :: GameButtonWindow.LoadScript - 'GiftIcon'
    1016 16:06:16696 :: ============================================================================================================
    1016 16:06:16696 :: Abort!!!!
    
    
    1016 16:06:16696 :: ============================================================================================================
    1016 16:06:16696 :: Abort!!!!
    
    
    1016 16:06:16696 :: ============================================================================================================
    1016 16:06:16696 :: Abort!!!!
    
    
    1016 16:06:16696 :: ============================================================================================================
    1016 16:06:16696 :: Abort!!!!
    
    
    1016 16:06:16696 :: ============================================================================================================
    1016 16:06:16696 :: Abort!!!!
    
    
    1016 16:06:16696 :: ============================================================================================================
    1016 16:06:16696 :: Abort!!!!
    
    
    1016 16:06:16696 :: ============================================================================================================
    1016 16:06:16696 :: Abort!!!!
    
    
    1016 16:06:17310 :: 
    system.py(line:267) RunMainScript
    system.py(line:228) execfile
    prototype.py(line:63) <module>
    prototype.py(line:61) RunApp
    networkModule.py(line:113) Destroy
    game.py(line:321) Close
    interfaceModule.py(line:501) Close
    uiGameButton.py(line:48) Destroy
    
    Run - <type 'exceptions.AttributeError'>:'GameButtonWindow' object has no attribute 'gameButtonDict'

     

×
×
  • 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.