Jump to content

Slime

Inactive Member
  • Posts

    15
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Slime

  1. Same thing happens with temple of ochao/enchanted forest/jothun room and other new dungeons, they all work if i go by warp, but they warp me out if i go by /private instance... any ideas?

    ]

     

     

     

    //edit

     

    Solved, i used the blue dragon run by demon, and there was a line that sayd something like

    If map_inex != 79 or not pc.in_dungeon() begin

    warp_to_village()

    end

     

    that's why it warped me out. 

    • Confused 1
  2. Hi, i try to put the full run of snow_dungeon and i have the following problem:

     

    I do a party with shaman and ninja, i enter the dungeon, when we enter, after a few seconds some of us get teleported outside, seems that usually the same characters can stay inside

    i don't know why, i managed to get in 1 and 2 pg's at the same time, it's not a race thing either, i managed to get in warriors shamans and ninja's, but there are only certain people who can get in..

    Not even a level issue, i for one with my gm account i can't stay in.. it teleports me outside. non syserr.

     

    Also sience i noticed that the run starts in a private instance, i tried to /private 352 there, and the same thing happens to that dungeon.. note that when i enter that same map

    on 352 index and not a private one i do not get pulled out. if that would be a quest, it would pull us all out and not just some of us. the rest of the dungeon seem to work.

     

     

    Here's the quest anyways

     

    quest snow_dungeon begin
    state start begin
        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 = 80	                    --Ab wann ist der Dungeon betretbar.
            snow_dungeon_settings.need_level_group = 90                --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 = 5                --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_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.locale.snow_dungeon._001_sayNpc with pc.get_map_index() == 352 or pc.get_map_index() >= 3520000 begin
    		say(locale.snow_dungeon._016_say)
    		wait()
    		pc.warp(432100,166700)
    	end
    
        when 20395.chat.locale.snow_dungeon._002_sayNpc 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)
            if level == 0 then
                say(locale.snow_dungeon._001_say)
                return
            end
            if pc.getqf("out_party_time") < get_global_time() then
                say(locale.snow_dungeon._002_say.." "..math.ceil(set.DurationMaxOnReJoinGroup  /60) .." "..locale.snow_dungeon._003_say)
                return
            end
            if n == 0 then
                setskin(NOWINDOW)
                return
            else
                say(locale.snow_dungeon._004_say)
                if select(locale.snow_dungeon._001_select,locale.snow_dungeon._002_select) == 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.locale.snow_dungeon._003_sayNpc begin
            local set = snow_dungeon.get_settings()
            local need_level = set.need_level
            say(locale.snow_dungeon._005_say)
            if select(locale.snow_dungeon._001_select,locale.snow_dungeon._002_select) == 2 then
                return
            end
            if (pc.is_gm() and pc.getf("snow_dungeon","duration") >= get_global_time()) then
                say(locale.snow_dungeon._006_say)
                if select(locale.snow_dungeon._001_select,locale.snow_dungeon._002_select) == 1 then
                    pc.setf("snow_dungeon","duration",0)
                    return
                end
            end
          
            if not party.is_leader() then
                say(locale.snow_dungeon._007_say)
    		say(locale.snow_dungeon._017_say)
                return
            end
            if pc.get_level() < need_level then
                say(locale.snow_dungeon._008_say.." "..need_level.." "..locale.snow_dungeon._009_say)
                return
            end
            if snow_dungeon._CheckMembersLevel() == false then  
                return
            else
                timer("make_dungeon",2)
            end
        end
    
        when 20397.chat.locale.snow_dungeon._004_sayNpc with d.getf("level") != 9 begin
            say(locale.snow_dungeon._010_say)
            if select(locale.snow_dungeon._001_select,locale.snow_dungeon._002_select) == 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(locale.snow_dungeon._001_notice)
                npc.purge()
                snow_dungeon._GetLastTime()
            end
        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(set.map_index,(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]))
    	d.new_jump_all(352,5120, 1536)
            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_Boss",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[i])
                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()
                if job == 1 -- Ninja weiblich
                or job == 5 --Ninja männlich
                then
                    have_ninja = true
                end
                if job == 3 -- Schamane weiblich
                or job == 7 --Schamane männlich
                then
                    have_shaman = true
                end
                q.end_other_pc_block()
            end
            
            if have_ninja == false then
                say(locale.snow_dungeon._011_say)
                return false
            end
            if have_shaman == false then
                say(locale.snow_dungeon._012_say)
                return false
            end
            if table.getn(user_fail_level) >= 1 then
                say(locale.snow_dungeon._013_say.." "..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
                    return
                end
                if pc.get_level() < set.need_level_group then
                    return
                end
            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(locale.snow_dungeon._002_notice.." "..math.ceil(t / 60).." "..locale.snow_dungeon._003_notice) -- rimangono minuti
                else
                    d.notice(locale.snow_dungeon._002_notice.." "..t .." "..locale.snow_dungeon._004_notice) -- secondi
                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
            end
        end
         
        when Jp_OutAllFailNotice.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice(locale.snow_dungeon._005_notice) -- tempo scaduto
                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 level2 = d.getf("level2")
                local mob_count = d.count_monster()
                local next_jump_time = set.NextJumpTime
    			if level2 == 4 and mob_count <= 0 then
    				d.notice(locale.snow_dungeon._006_notice)
                    		server_timer("Jp_5",next_jump_time,d.get_map_index())
                    		d.clear_regen()
                    		d.kill_all()
    			end
                if level == 1 and mob_count <= 0 then
                    d.notice(locale.snow_dungeon._007_notice)
                    server_timer("Jp_2",next_jump_time,d.get_map_index()) -- CAMBIARE QUI PER SALIRE PRIMA
                    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(locale.snow_dungeon._008_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 and level2 != 4 then
                    d.notice(locale.snow_dungeon._009_notice)
                    server_timer("Jp_5",next_jump_time,d.get_map_index())
                    d.clear_regen()
                    d.kill_all()
                elseif level == 6 and mob_count <= 0 then
                    local MobStonelvl6 = set.MobVnum_level_6
                    d.notice(locale.snow_dungeon._010_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 then
    		if d.is_unique_dead("real") then
                    d.notice(locale.snow_dungeon._011_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")   
    		else
    		 for i = 1, 6 do
    			if d.getf("fakedead" .. i) == 0 then
    			    if d.unique_get_hp_perc("fake" .. i) < 50 then
    				d.purge_unique("fake" .. i)
    				d.setf("fakedead" .. i, 1)
    			   d.notice(locale.snow_dungeon._012_notice)
                    end -- if d.getf...
    			end -- if d.unique..
    		    end -- for
    			end -- if d.is_unique_dead      
                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(locale.snow_dungeon._013_notice)
    		d.setf("key_2",0)
            end
        end
        when 30331.use with snow_dungeon.is_nemeres_dungeon() == true begin
            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 job == 3 -- Schamane weiblich
                or job == 7 --Schamane männlich
                then
                    if number(1,3) == 1 and d.getf("key_2") == 0 then
                        d.notice(locale.snow_dungeon._014_notice)
                        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")
                        pc.remove_item(30331,pc.count_item(30331))
    			d.setf("key_2",1)
                    else
                        d.notice(locale.snow_dungeon._015_notice)
                        item.remove()
                    end
                else
                    d.notice(locale.snow_dungeon._016_notice)-- solo shamy
                    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(locale.snow_dungeon._017_notice)
            end
        end
         
        when Jp_4.server_timer begin
            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(locale.snow_dungeon._018_notice)
            end
        end
    
    	when Jp_4_2.server_timer begin
            if d.select(get_server_timer_arg()) then
                local set = snow_dungeon.get_settings()
                d.setf("level2",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(locale.snow_dungeon._019_notice)
    		d.set_regen_file("data/dungeon/ice_dungeon/zone_4.txt")
    		d.spawn_mob(6151,412,199,1,1)
            end
        end
    
         
        when Jp_5.server_timer begin
            if d.select(get_server_timer_arg()) then
    		d.setf("level2",0)
                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(locale.snow_dungeon._020_notice)
    		d.set_regen_file("data/dungeon/ice_dungeon/zone_5.txt")
                if set.IsNewGameRevision == true then
                    d.notice(locale.snow_dungeon._021_notice) -- chiave drop
                else
                    d.notice(locale.snow_dungeon._021_notice)
                end
                snow_dungeon._Create_Stones_level5()
            end
        end
         
        function _DropKeyOnLevel5()
            if number(1,1000) >= 666 then
                return
            end
            if set.IsNewGameRevision == true then
                game.drop_item_with_ownership(30332,1)
            else
                pc.give_item2(30332,1)
            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
            local v = set.NpcVnum_level_5
            for i = 1, stone_level5_count_MQ do
                local n = number(1,20)
                --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
                if i == 1 then
                    d.setf("Stone_5_count",0)
                    d.setf("Stone_5_item_fail",0)
                end
            end
        end
         
        when 20398.take begin
            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
                
                if vnum == key_level_5 then
                    local npc_vid = npc.get_vid()
                    local search = math.random(1,3)
                    local search2 = npc_vid - 3 + search
                    if npc_vid == search2 then
                            d.setf("Stone_5_count",d.getf("Stone_5_count")+1)
                            if d.getf("Stone_5_count") >= stone_level5_count then
                                d.notice(locale.snow_dungeon._022_notice)
                                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(locale.snow_dungeon._023_notice.." "..5-d.getf("Stone_5_count"))
                                npc.purge()
                                item.remove()
                            end
    
                    else
                        chat(locale.snow_dungeon._024_notice)
    			item.remove()
    		end
                end
            end --if is dungeon end
        end --when end
         
        when Jp_6.server_timer begin
            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(locale.snow_dungeon._025_notice)
    		d.notice(locale.snow_dungeon._026_notice)
                 
            end
        end
         
        when Jp_7.server_timer begin
            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(locale.snow_dungeon._027_notice)
    		 local positions = snow_dungeon.get_7floor_szel_pos()
    		for i = 1, 6 do
    			d.set_unique("fake" .. i , d.spawn_mob(6151, positions[i][1], positions[i][2]))
    		end
    
    		local vid = d.spawn_mob(6151, positions[7][1], positions[7][2])
    	    	d.set_unique("real", vid)
            end
        end
         
        when Jp_8.server_timer begin
            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(locale.snow_dungeon._028_notice)
                d.notice(locale.snow_dungeon._029_notice)
    		d.setf("key_8",0)
            end
        end
         
        when 30333.use with snow_dungeon.is_nemeres_dungeon() == true begin
            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 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 and d.getf("key_8") == 0 then
                        d.notice(locale.snow_dungeon._030_notice)
                        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()
    			d.setf("key_8",1)
                    else
                        d.notice(locale.snow_dungeon._031_notice)
                        item.remove()
                    end
                else
                    d.notice(locale.snow_dungeon._032_notice)
                    return
                end
            end
        end
         
        when Jp_9.server_timer begin
            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(locale.snow_dungeon._033_notice)
                d.notice(locale.snow_dungeon._034_notice)
                d.spawn_mob(v,849,655)
            end
        end
         
        when Jp_Boss.server_timer begin
            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(locale.snow_dungeon._035_notice)
            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()
                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
                    snow_dungeon._DropKeyOnLevel5()
                elseif level == 6 and mobvnum == stone_level_6 then
                    d.notice(locale.snow_dungeon._036_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
                elseif level == 8 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10) then
                    local v = set.Key_on_level_8
                    game.drop_item(v,1)
                elseif level == 9 and mobvnum == stone_level_9 then
                    d.notice(locale.snow_dungeon._037_notice)
                    --server_timer("Jp_Boss",next_jump_time,d.get_map_index())
                    d.clear_regen()
                    d.kill_all()
    		d.spawn_mob(20397,847,661,1,1)
                   -- 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.clear_regen()
                    d.kill_all()
                    d.notice(locale.snow_dungeon._038_notice)
    		notice_all(pc.get_name().." "..locale.snow_dungeon._001_notice_all)
                    server_timer("Jp_OutAll",wait_time,d.get_map_index())
                end
            end
        end
    
    	when 20397.chat.locale.snow_dungeon._005_sayNpc with party.is_leader() and d.getf("level") == 9 begin
    		if not party.is_leader() then
    		say(locale.snow_dungeon._014_say)
    		return
    		end
    
    		 local set = snow_dungeon.get_settings()
                local next_jump_time = set.NextJumpTime
    
    		d.notice(locale.snow_dungeon._039_notice)
    		say(locale.snow_dungeon._015_say)
    		server_timer("Jp_Boss",next_jump_time,d.get_map_index())
    		d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt")
    	end
    
        when Jp_OutAll.server_timer begin
            if d.select(get_server_timer_arg()) then
                snow_dungeon._ExitAll()
            end
        end
        function _ExitAll()
            d.exit_all()
        end
    
    	function get_7floor_szel_pos()
    	    local positions = 
    			{
    				{763, 484}, {765, 456}, {749, 442}, {727, 450},
    				{719, 469}, {733, 485}, {751, 489},
    	    }
    	    for i = 1, 6 do
    			local j = number(i, 7)
    			if i != j then
    				local t = positions[i];
    				positions[i] = positions[j];
    				positions[j] = t;
    			end
    	    end
    	    return positions
    	end
    
    end
    end

     

  3. im trying to add this weapons zePDUVB.png

    I added the weapons just like the tutorial, i changed index of effect to 800-807 in payersettingsmodule.py and instancebase.h , comiled launcher with no error.

    In playersettingsmodule i have:
    chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+800, "PART_WEAPON", "D:/ymir work/khan/arme3d/razboinic/sabie_razboinic.mse")
    Im using them as a weapon skin, i added them like that, i see icons and values in game but when i put them on i can't see them. Maybe i need to change
     "PART_WEAPON" ?  with something else?

  4. Hi everyone, i was doing some tests sience someone raported that the exp ring may not work.

    I think i have some kind of issues with the exp on the server.. so this what happens:

    i had my gm account set to lv1 , 0 exp points. 0 items on me (except for the 50%exp buff that comes at account creation for 500 day's or so.)

    i call a 101(wilddog) i kill him, i get 10% exp in my bar, that means 30 exp points for 1 kill

    Now i put exp ring, and i do the same, i get the same 30 points or 10% experience for 1 kill

    If i try with Wisdom Potion +100%exp , same happens

    If i raise exp rate from command , same happens

  5. No, i try opening it on map1,

     

    quest changelang begin
    	state start begin
    		when login with pc.level >= 1 begin
    			set_state(information)
    		end
    	end
    
    	state information begin
    		when letter begin
    			send_letter_green("Language")
    		end
    
    		when info or button begin
    			say_title("INFORMATION")
    			say("You can change the language of the game")
    			say("by opening the settings menu.")
    			say("We currently have aviable:")
    			say("English")
    			say("Italian")
    			say("Romanian")
    		end
    	end
    end

    I put this, after the restart it worked, now when i click it it does not open..

  6. ui.pyHi, i have a problem, i have swich channel in-game menu, by default my client came with locale italy, now i added multi language to it, with 3 languages, and the change channel works just on it's default, italy.. on other locale i click the button an nothing happens, this is what the syserr says:

    0909 22:51:34287 :: AttributeError
    0909 22:51:34287 :: : 
    0909 22:51:34287 :: 'module' object has no attribute 'REGION_DICT'
    0909 22:51:34287 :: 

    0909 22:55:48568 :: Traceback (most recent call last):

    0909 22:55:48568 ::   File "ui.py", line 1369, in CallEvent

    0909 22:55:48568 ::   File "ui.py", line 88, in __call__

     

    PS on line 1369 and 88 there is not a path to a certain locale i searched. this is the ui.py and changechannel.py

    uichangechannel.py

    ui.py

  7. Hi, i have a problem with a quest.

    The quest is made by me, and i tryed everything to fix it but it wont work.. the quest should be simple, send a letter with some info about the option to change language..

     

    quest changelang begin
    		state start begin
    			when letter begin
    			send_letter_blue_text ( "Language" )
    		end
    			when button or info begin
    			if pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
    			say_title("INFORMATION")
    			say("You can change the language of the game")
    			say("by opening the settings menu.")
    			say("We currently have aviable:")
    			say("English")
    			say("Italian")
    			say("Romanian")
    else
    			say_title("INFORMATION")
    			say("You can change the language of the game")
    			say("by opening the settings menu.")
    			say("We currently have aviable:")
    			say("English")
    			say("Italian")
    			say("Romanian")
    		end
    		send_letter_blue_text ( "Language" )
    		end       
    	end 
    end 

    I get the letter but it won't open for me to read it when i click it. no errors on compilation, no syserr in client, functions for send_letter_blue_text is ok.. i tryed with normal send_letter, same problem.

     

    Please help.

  8. Salutare.. am si eu o problema cu butonul [PM] care apare in chant, pana acum mergea si acum numai merge.

     

            if net.GetEmpireID() == 1:
                self.__SendChatPacket(constInfo.pm_button+'|cFF47DA00|Hpm_button:'+str(player.GetName())+'|h[PM]|h|r'+" "+text[1:], chat.CHAT_TYPE_SHOUT)
            elif net.GetEmpireID() == 2:
                self.__SendChatPacket(constInfo.pm_button+'|cFF47DA00|Hpm_button:'+str(player.GetName())+'|h[PM]|h|r'+" "+text[1:], chat.CHAT_TYPE_SHOUT)
            elif net.GetEmpireID() == 3:
                self.__SendChatPacket(constInfo.pm_button+'|cFF47DA00|Hpm_button:'+str(player.GetName())+'|h[PM]|h|r'+" "+text[1:], chat.CHAT_TYPE_SHOUT)
     

    Asta e bucata de cod, am si in cosnstinfo pm_button = ''

    Dupa cum spuneam , mergea inainte, deci a fost implementata corect, am inceput sa am problema asta de cand am implementat lucrurile astea 2:

     

    CTRL+V in game: https://metin2dev.org/board/index.php?/topic/9742-can-somebody-know-how-to-ctrlc-and-ctrlv-in-game/

    Link in game: 

    This is the hidden content, please

    Am compilat sursa game fara nici un fel de eroare, si syserr la client nu are nici el erori inauntru.

    As aprecia ajutorul vostru :D

     

     

    ------------------------------------

    Rezolvat, cand am bagat link am sters functia hyperlink.

        def MakeHyperlinkTooltip(self, hyperlink):
            tokens = hyperlink.split(":")
            if tokens and len(tokens):
                type = tokens[0]
                if "item" == type:
                    self.hyperlinkItemTooltip.SetHyperlinkItem(tokens)
                elif "pm_button" == type and str(tokens[1]) != player.GetMainCharacterName():
                    self.OpenWhisperDialog(str(tokens[1]))        

    Puteti da tc.

     

    • Metin2 Dev 1
  9. Salutare.. am si eu o problema cu butonul [PM] care apare in chant, pana acum mergea si acum numai merge.

     

            if net.GetEmpireID() == 1:
                self.__SendChatPacket(constInfo.pm_button+'|cFF47DA00|Hpm_button:'+str(player.GetName())+'|h[PM]|h|r'+" "+text[1:], chat.CHAT_TYPE_SHOUT)
            elif net.GetEmpireID() == 2:
                self.__SendChatPacket(constInfo.pm_button+'|cFF47DA00|Hpm_button:'+str(player.GetName())+'|h[PM]|h|r'+" "+text[1:], chat.CHAT_TYPE_SHOUT)
            elif net.GetEmpireID() == 3:
                self.__SendChatPacket(constInfo.pm_button+'|cFF47DA00|Hpm_button:'+str(player.GetName())+'|h[PM]|h|r'+" "+text[1:], chat.CHAT_TYPE_SHOUT)
     

    Asta e bucata de cod, am si in cosnstinfo pm_button = ''

    Dupa cum spuneam , mergea inainte, deci a fost implementata corect, am inceput sa am problema asta de cand am implementat lucrurile astea 2:

     

    CTRL+V in game: https://metin2dev.org/board/index.php?/topic/9742-can-somebody-know-how-to-ctrlc-and-ctrlv-in-game/

    Link in game: 

    This is the hidden content, please

    Am compilat sursa game fara nici un fel de eroare, si syserr la client nu are nici el erori inauntru.

    As aprecia ajutorul vostru :D

     

  10. quest daily_quest_over100 begin
    	state start begin 
    		when login or levelup with pc.get_level() >=100 begin
    			if get_global_time()> pc.getqf(tempo)
    				set_state(info)
    			end
    		end
    	end
    	
    	state info begin -- info about the mission
    		when letter begin
    			send_letter("Daily quest")
    		end -- letter sent
    
    		when button or info begin
    			say_title("Daily quest")
    			say("Hi, " .. pc.get_name() .. ".")
    			say("You can choose the easy way,")
    			say("with a poor reward or")
    			say("the hard way, for a better reward")
    			say("")
    			local risp = select("Easy","Hard", "Cancel")
    			if risp==3 then -- Cancel
    				return
    			elseif risp == 1 -- Easy
    				pc.setqf("dif",0) -- difficulty FLAG (0=easy, 1=hard)
    				set_state(running)
    			else -- Hard
    				pc.setqf("dif",1)
    				set_state(running)
    			end
    		end -- when closed
    	end -- INFO closed
    
    	state running begin
    		
    		pc.setqf("done",0) -- quest completed FLAG (0=not completed, 1=completed)
    		
    		if pc.getqf(dif)==0 then
    			pc.setqf("mob_to_kill",math.random(2411, 2414))
    			-- how many kills
    			local qta = {
    							100, 125, 150, 175, 200,
    							225, 250, 275, 300
    						}
    			pc.setqf("qta_to_kill",qta[math.random(1, 9)])
    			-- 50k yang for each kill, max=15M yang
    			pc.setqf("reward",50000 * (pc.getqf(qta_to_kill)))
    		else
    			local vmob = {
    							1093, 1191, 1901, 2092, 2191, 2491, 2492, 2493
    						 }
    			pc.setqf("mob_to_kill",(vmob[math.random(1, 8)])
    			pc.setqf("qta_to_kill",(math.random(1, 10)))
    			-- 3M exp for each kill, max=30M exp
    			pc.setqf("reward",3000000 * (pc.getqf(qta_to_kill)))
    		end
    
    		when letter begin
    			if pc.getqf(dif) == 0
    				send_letter("Daily mission, Easy")
    			else
    				send_letter("Daily mission, Hard")
    			end
    		end
    
    		when button or info begin -- info about the quest
    			if pc.getqf(done) == 0 then -- if he didn't complete the quest
    				if pc.getqf(dif) == 0 then
    					say_title("Daily quest, Hasy")
    				else
    					say_title("Daily quest, Hard")
    				end
    				say("So, you have chosen the easy way..")
    				say("Here is your objective.")
    				say("")
    				say_reward("You have to kill: " .. qta_to_kill .. mob_name(pc.getqf(mob_to_kill)))
    				if pc.getqf(dif) == 0 then
    					say_reward("That's what you'll got: " .. pc.getqf(reward) .. " yang.")
    				else
    					say_reward("That's what you'll got: " .. pc.getqf(reward) .. " experience.")
    				end
    			else
    				say_title("Daily mission reward")
    				say("Congratulations " ..pc.get_name() .. " !!")
    				say("You've earned a nice reward..")
    				wait()
    				if pc.getqf(dif)==0 then
    					say_reward("You have earned: " .. pc.getqf(reward) .. " yang.")
    					pc.changegold(pc.getqf(reward))
    				else
    					say_reward("You have earned: " .. pc.getqf(reward) .. " experience.")
    					pc.give_exp2(pc.getqf(reward))
    				end
    				-- timer FLAG, this quest is repeatable once per day (24h)
    				pc.setqf("tempo", get_global_time()+86400) -- 60*60*24
    				-- deleting FLAGS
    				pc.delqf(mob_to_kill)
    				pc.delqf(reward)
    				pc.delqf(qta_to_kill)
    				pc.delqf(dif)
    				pc.delqf(done)
    				set_state(__COMPLETE__)
    			end
    		end
    
    		when pc.getqf(mob_to_kill).kill begin
    			pc.setqf("qta_to_kill",(pc.getqf(qta_to_kill))-1)
    			if pc.getqf(qta_to_kill) == 0 then
    				pc.setqf("done",1)
    				send_letter("Daily mission, Reward")
    			end
    		end
    	end -- closed RUNNING
    
    	state __COMPLETE__ begin
    		when enter begin
    			q.done()
    		end
    	end -- closed __COMPLETE__
    end -- closed QUEST

    This is the error

     


    root@OSL-91741:/usr/game/share/locale/italy/quest # ./qc daily_hunt.lua
    QUEST : daily_quest_over100
    STATE : start
    WHEN  : login or
    WHEN  : levelup
            with pc . get_level ( ) >= 100
    if get_global_time ( ) > pc . getqf ( tempo )
    set_state ( "info" )
    end

    daily_hunt.lua:7:syntax error : [string "startpc . get_level ( ) >= 100"]:2: `then' expected near `set_state'
    Abort (core dumped)
     

     

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