Jump to content
Sign in to follow this  
Rumor

PvP Quest with level restrictions

Recommended Posts

This is confirmed working on the 2089 core, but no others. It probably won't work with other cores.

 

The first thing you need to do is hex edit your uncompressed game core (I use HxD or BlackYuko's patcher, found here: http://metin2dev.org/board/files/file/6-blackyukos-dif-patcher/):

0014E762: 89 90
0014E763: C3 90
0014E764: 74 75
0014E765: 07 61
0014E766: 8B 90
0014E767: 50 90
0014E768: 24 90
0014E769: 85 90
0014E76A: D2 90
0014E76B: 74 90
0014E76C: 33 90
0014E7C7: 24 0F
0014E7C8: 04 B6
0014E7C9: E8 80
0014E7CA: 82 0A
0014E7CB: F5 05
0014E7CC: 17 00
00312349: 72 6C
0031234B: 6D 76
0031234C: 61 65
0031234D: 69 6C
0031234E: 6E 00

Next, add a new function to "quest_functions" in the "quest" folder:

npc.get_level

The quest:

quest kill_pvp90 begin
    state start begin
        when login with pc.level >= 90 begin
            set_state(kill_pvp90)
        end
    end

    state kill_pvp90 begin
        when letter begin
            send_letter("Kill Players from Another Kingdom")
        end

        when button or info begin
            say("This is your test of strength!")
            say("You need to kill 1000 players from")
            say("another kingdom...")
			say(locale.ADMIN_COLOR.."The players you kill must be lvl 90-99.")
			wait()
            say("You will be rewarded even better")
			say("than the last PvP quest!")
            say_reward("Kill 1000 players from another kingdom!")
            say("")
            pc.setqf("state", 1000)
            q.set_counter("Kill More Players", 1000)
            set_state (kill)
        end
    end
      
        state kill begin
        when letter begin
            send_letter("Kill Players")
        end
        
        when button or info begin
            say_title("Kills:")
            say_reward( "You have ".." "..pc.getqf("state").." of 1000 kills remaining.")
            say("")
        end

        when kill begin
            if npc.is_pc() and npc.empire != pc.empire and npc.get_level()>= 90 and npc.get_level()<= 99 then
            local count = pc.getqf("state") - 1
            if count <= 1000 then
                pc.setqf("state", count)
                q.set_counter("Kill More Players", -count)
            end
            if count == 0 then
                say_title("You've done it!")
                say("You have killed 1000 players!")
                say("As a reward you receive:")
                say_reward("1,000,000,000 Gold")
                say_reward("15 White Pearls")
				say_reward("15 Blue Pearls")
				say_reward("15 Blood Pearls")
				say_reward("10% Demi-Human")
				say("")
				say("Congratulations!")
                pc.change_money(1000000000)
				pc.give_item2(27992, 15)
				pc.give_item2(27993, 15)
				pc.give_item2(27994, 15)
				affect.add_collect(apply.ATTBONUS_HUMAN,10,60*60*24*365*60)--60years
                notice_all("".. pc.get_name() .." Has completed the lvl 90 PvP Quest!!")
                notice_all("They have killed 1000 players from another kingdom!")
                clear_letter()
                set_state(__COMPLETE__)

            end
        end
    end
    end

    state __COMPLETE__ begin
    end
end

You can specify which levels the enemy player must be for the player to receive credit for the kill. Kills are only counted if the killed player is from another kingdom. The kill count doesn't reset when the player logs out, using this quest.

  • Love 6

Share this post


Link to post

I think core 40k already has this function, correct me if I'm wrong.

Share this post


Link to post

I think core 40k already has this function, correct me if I'm wrong.

No its not build in. I wrote the function for epvp a time ago. You have to add her manually

Share this post


Link to post

I think core 40k already has this function, correct me if I'm wrong.

40k has npc.get_vid()

Share this post


Link to post

Yeah that's it, with npc.get_vid() you can retrieve any information about the killed player such as the level. Anyhow nice release for users of older cores which are still many.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
  • Recently Browsing   0 members

    No registered users viewing this page.

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