Jump to content

Kill on purgatory, azrael and devil tower


Go to solution Solved by yagokurt,

Recommended Posts

Hi guys i'm having a big problem with the "kill" in quests.

Alrdy try this exemple and dont work in both quest. Nothing happen. 

I'm having this problem on this 3 dungeon. Azrael. Purgatory and Devil Tower.

 

 

Game: Vanilla

 

 

Quest when

        when kill with flame_dungeon.is_flamed(pc.get_map_index()) and npc.get_race() == 6051 and d.getf("level") == 14 begin
            notice_multiline(gameforge.flame_dungeon._460_notice,d.notice)
            notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
            flame_dungeon.level_clear()
        end

and this one

        when 6051.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
            notice_multiline(gameforge.flame_dungeon._460_notice,d.notice)
            notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
            flame_dungeon.level_clear()
        end

But this other code work normal.

when kill with npc.get_race() == 101 begin
    notice("Matou 101")
end

ps: other things with "notice_multiline" work normal, and my translate.lua have this gameforge text.

Link to comment
Share on other sites

  • Replies 8
  • Created
  • Last Reply

Top Posters In This Topic

  • Bot

Are you playing on a TEST_SERVER? I mean the TEST_SERVER = 1 flag in the CONFIG

Maybe the value is different than 6051.

Try with only 1 condition at time.
For example:

when 6051.kill begin
    d.notice("6051 kill WORK!")
end

when kill with flame_dungeon.is_flamed(pc.get_map_index()) begin
    d.notice("Dungeon is_flamed WORK!")
end

when kill with d.getf("level") == 14 begin
    d.notice("d.getf WORK!")
end


english_banner.gif

Link to comment
Share on other sites

 

Are you playing on a TEST_SERVER? I mean the TEST_SERVER = 1 flag in the CONFIG

Maybe the value is different than 6051.

Try with only 1 condition at time.

For example:

when 6051.kill begin
    d.notice("6051 kill WORK!")
end

when kill with flame_dungeon.is_flamed(pc.get_map_index()) begin
    d.notice("Dungeon is_flamed WORK!")
end

when kill with d.getf("level") == 14 begin
    d.notice("d.getf WORK!")
end


 

 

None work O.O idk why bcuz this when is working perfect.

 

        when kill with flame_dungeon.is_flamed(pc.get_map_index()) begin
            if d.getf("level") == 12 then
                local i = number(1, 100)
                if i == 1 then
                    game.drop_item (30329, 1)
                end
            end
        end

 

 

Try this:

        when kill with npc.get_race() == 6051 begin
			if flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 then
				notice_multiline(gameforge.flame_dungeon._460_notice,d.notice)
				notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
				flame_dungeon.level_clear()
			end
        end

 

 

Dont work too :(

Link to comment
Share on other sites

6051 exp = 116266

 

Alrdy made a item with this 

when 67520.use begin
syschat(d.getf('level'))
syschat(pc.get_map_index())
end

and get this 

 

AWBJm19.png

 

And if i kill a randon mob to test the when from stefano nothing happen.

 

 

 

 

edit

 

and the same happen with this when from deviltower

        when kill with npc.get_race() == devil_stone1 begin
            timer("devil_stone1_1", 8)
        end
 

edit 2

 

I creat a new quest with only this

quest teste_kill begin
state start begin
when kill with npc.get_race() == 6051 begin
d.notice("kill 6051 work")
end
end
end

and it worked... Any1 have any sugestion about it?

 

c0DMqph.png

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

on devil tower i can go to the 3. plain  but not higher -.-

 

        when login begin

            if pc.get_map_index() == 66 then            

                if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then

                    pc.warp((5376+532)*100, (512+596+4)*100, 65)

                end

                pc.set_warp_location(65, 5376+532, 512+596+4)

            elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then

                pc.set_warp_location(65, 5376+532, 512+596+4)

            end

        end

        when deviltower_man.chat.locale.deviltower_man_chat begin

            say_title("Wächter des Dämonturmes")

            if pc . get_level ( ) < 40 then

                say("Du hast noch nicht genügend Erfahrung gesammelt.")

                say("Komme wieder, wenn du Level 40 bist!")

                return

            end

            say("Möchtest du den Dämonenturm betreten?")

            local s = select ("Betreten", "Abbrechen")

            if s == 1 then

                pc.warp (216500, 727000)                 

            end

        end

        when kill with npc.get_race() == 8015 begin

            timer("devil_stone1_1", 6)

        end

    when devil_stone1_1.timer begin

        local mapto7= pc.count_item(30302)  -- Die Karte der Zin Grotte wurde aus deinem Inventar entfernt

        pc.remove_item(30302,mapto7)

        local boxto7= pc.count_item(30300)  -- Die Unbekannte Alte Kiste wurde aus deinem Inventar entfernt

        pc.remove_item(30300,boxto7)

        d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])

        d.regen_file("data/dungeon/deviltower2_regen.txt")

        d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")

    end

    --when kill with npc.get_race() == devil_stone2 begin

    --d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])

    --end

    when kill with npc.get_race() == devil_stone3 begin

        --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])

        --d.set_exit_all_at_eliminate(6)

        --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)

        --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)

        d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")

        d.check_eliminated()

        --d.exit_all()

    end

    function get_4floor_stone_pos()

Link to comment
Share on other sites

  • Solution

Solved but dont understand why this happen. I remove all kill from flame_dungeon and i create a new quest only for then, and it work perfect. Any1 have any idea why this happen?

 

quest kill_flame begin
    state start begin
    function level_clear()
        d.setf("level",0)
        d.clear_regen()
        d.purge_area(750000,620000,817400,689400)
    end
    function is_flamed(idx)
        return idx >= 351 * 10000 and idx < (351 + 1) *10000
    end
        when kill with kill_flame.is_flamed(pc.get_map_index()) and npc.get_race() == 8057 and d.getf("level") ==16 begin
            notice_multiline(gameforge.flame_dungeon._540_notice,d.notice)
            notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
            kill_flame.level_clear()
        end
        when kill with kill_flame.is_flamed(d.get_map_index()) and npc.get_race() == 6091 and d.getf("level") ==17 begin
            notice_multiline(gameforge.flame_dungeon._550_notice,d.notice)
            notice_multiline(gameforge.flame_dungeon._560_notice,d.notice)
            server_timer("dungeon_end_timer", 60, d.get_map_index())    
            kill_flame.level_clear()
            
            if party.is_party() then
                party.setf("flame_dungeon_boss_kill_count", 1)
            end
            
        end
        when kill with kill_flame.is_flamed(pc.get_map_index()) and npc.get_race() == 6051 and d.getf("level") == 14 begin
            notice_multiline(gameforge.flame_dungeon._460_notice,d.notice)
            notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
            kill_flame.level_clear()
        end
        when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin
            local i = number(1, 30)
            if i == 1 then
                game.drop_item (30330, 1)
            end
        end
        when kill with flame_dungeon.is_flamed(pc.get_map_index()) begin
            if d.getf("level") == 12 then
                local i = number(1, 100)
                if i == 1 then
                    game.drop_item (30329, 1)
                end
            end
        end
    end
end
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



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