Jump to content

[Help] Dragon_soul.quest Original


Recommended Posts

Hellow dear comunity , i have 1 problem with may quest .. i dont know how to change rate drop for item code : 30270 with this quest .. 

 

Quote

define gemstone 30270
define alchemist 20001
define reward_box 50255
define gemstone_need_count 10
define gemstone_trade_max_per_day 250
define dragon_soul_can_use_level 30
define drop_flag "ds_drop"

quest dragon_soul begin
    state start begin
        when levelup or letter with pc.level >= dragon_soul_can_use_level begin
            send_letter(gameforge.dragon_soul._1010_sendLetter)
            local v = find_npc_by_vnum(alchemist)
            
            if 0 != v then
                target.vid("__TARGET__", v, mob_name(alchemist))
            end
        end
        when info or button begin
            say(gameforge.dragon_soul._1020_say)
        end

        when alchemist.chat.gameforge.dragon_soul._1030_npcChat with pc.level >= dragon_soul_can_use_level begin
            target.delete("__TARGET__")

            say_title(mob_name(alchemist))
            say(gameforge.dragon_soul._1040_say)
            set_state(state_learning)
        end
    end
    state state_learning begin
        when letter begin
            send_letter(gameforge.dragon_soul._1050_sendLetter)
        end
        when info or button begin
            say(gameforge.dragon_soul._1060_say)
        end
        when kill begin
            if npc.is_pc() then
                return
            end
            
            if pc.count_item(gemstone) < gemstone_need_count then
                if drop_gamble_with_flag(drop_flag) then
                local rnd = number(1, 10000)
                    if rnd == 1 then
                    pc.give_item2(gemstone, 1)
                else
                return
                end
            end
        end
        end
        when alchemist.chat.gameforge.dragon_soul._1050_sendLetter begin
            say_title(mob_name(alchemist))
            if pc.count_item(gemstone) >= gemstone_need_count then
                say(gameforge.dragon_soul._1070_say)
                pc.remove_item(gemstone, gemstone_need_count)
                ds.give_qualification()
                char_log(pc.get_player_id(), 'DS_QUALIFICATION', 'SUCCESS')
                pc.give_item2(reward_box)
                local today = math.floor(get_global_time() / 86400)
                pc.setf("dragon_soul", "eye_timestamp", today)
                pc.setf("dragon_soul", "eye_left", 250)
                set_state(state_farming)
            else
                say(gameforge.dragon_soul._1080_say)
            end
        end
    end
    state state_farming begin
        when letter begin
            send_letter(gameforge.dragon_soul._1090_sendLetter)
        end
        when info or button begin
            say(string.format(gameforge.dragon_soul._1100_say, pc.getf("dragon_soul", "eye_left")))
        end
        when kill begin
            if npc.is_pc() then
                return
            end
            
            if drop_gamble_with_flag(drop_flag) then
                local eye_left = pc.getf("dragon_soul", "eye_left")
                local haved_gemstone_number = pc.count_item(gemstone)
                
                if eye_left > haved_gemstone_number / gemstone_need_count then
                    local rnd2 = number(1,3333333333333333333)
                    if rnd2 == 1 then
                    pc.give_item2(gemstone, 1)
                    else
                    return
                    end
                end
            end
        end
        when gemstone.pick begin
            local eye_left = pc.getf("dragon_soul", "eye_left")
            if eye_left <= 0 then
                return
            end

            if pc.count_item(gemstone) >= gemstone_need_count then
                pc.setf("dragon_soul", "eye_left", eye_left - 1)
                pc.remove_item(gemstone, gemstone_need_count)
                pc.give_item2(reward_box)
                if 1 == eye_left then
                    notice_multiline(gameforge.dragon_soul._1110_notice, notice)
                    set_state(state_closed_season)
                end
            end
        end
        when alchemist.chat.gameforge.dragon_soul._1120_npcChat begin
            say_title(mob_name(alchemist))
            local today = math.floor(get_global_time() / 10)
            if today == pc.getf("dragon_soul", "eye_timestamp") then
                say(gameforge.dragon_soul._1130_say)
            else
                say(gameforge.dragon_soul._1140_say)
                pc.setf("dragon_soul", "eye_timestamp", today)
                pc.setf("dragon_soul", "eye_left", 250)
            end    
        end
    end
    state state_closed_season begin
        when letter begin
            send_letter(gameforge.dragon_soul._1150_sendLetter)
        end
        when info or button begin
            say(gameforge.dragon_soul._1160_say)
            local today = math.floor(get_global_time() / 10)
            if today == pc.getf("dragon_soul", "eye_timestamp") then
                say(gameforge.dragon_soul._1170_say)
            else
                say(gameforge.dragon_soul._1180_say)
            end
        end
        
        when alchemist.chat.gameforge.dragon_soul._1090_sendLetter begin
            say_title(mob_name(alchemist))
            local today = math.floor(get_global_time() / 10)
            if today == pc.getf("dragon_soul", "eye_timestamp") then
                say(gameforge.dragon_soul._1130_say)
            else
                say(gameforge.dragon_soul._1140_say)
                pc.setf("dragon_soul", "eye_timestamp", today)
                pc.setf("dragon_soul", "eye_left", 250)
                set_state(state_farming)
            end
        end
    end
    -- deprecated states. so, jump to new state.
    state state_1 begin
        when login begin
            set_state(state_learning)
        end
    end
    state state_2 begin
        when login begin
            set_state(state_learning)
        end
    end
    state state_3 begin
        when login begin
            set_state(state_closed_season)
        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.