Jump to content

set_quest_state not working


Recommended Posts

Hi,

I'm implementing a system for choosing skills instantly. 

I've created a quest so that when the player clicks on it, it opens a GUI for the player to choose skills.

Quest:
 

quest select_skill begin

	state start begin
		when login or levelup with pc.level>=5 and pc.skillgroup == 0 begin
			set_state(run)
		end
	end

	state run begin
		when login with pc.get_skill_group()!=0 begin
			restart_quest()
		end

		when login or levelup with pc.get_level() >= 5 and pc.get_skill_group() == 0 begin
			send_letter("Choose your path");
		end
		
		when button or info with pc.get_level() >= 5 and pc.get_skill_group() == 0 begin
			command ("selectskill_open");
		end
	end
end


The quest works perfectly under these conditions, but when I try to set_state_quest in the skill_reset2 quest to call it as soon as the skills are reset, it is not called.

Quest 2:
 

quest skill_reset2 begin
    state start begin
        when 9006.chat.gameforge.skill_reset2._10_npcChat begin
            if pc.level < 5 then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._20_say)
                return
            end
            if pc.level >30 then
                say_title(gameforge.couple_ring._20_sayTitle)
                 say(string.format(gameforge.skill_reset2._30_say, pc.level))
                 return
             end
            if  pc.get_skill_group()==0 then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._40_say)
                return
            end

            local cost = 10000 + pc.level * 2000
            local s = 0

            if not pc.has_master_skill() then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(string.format(gameforge.skill_reset2._50_say, cost))
                s =  select(gameforge.skill_reset2._10_npcChat, gameforge.skill_reset2._60_select)
            else
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._70_say)
                wait()
                say(string.format(gameforge.skill_reset2._80_say, cost))
                s =  select(gameforge.skill_reset2._90_select, gameforge.locale.cancel)
            end
            if 2==s then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._110_say)
                return
            end
            if pc.money < cost then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._120_say)
                return
            end
            pc.changegold(-cost)
            pc.clear_skill()
            pc.set_skill_group(0)
            set_quest_state("select_skill","run")
        end
    end
end


This quest was already created in the severfiles when I started using it, I just changed the set_quest_state to the quest I wanted to call. 

If someone could help me explain why this is happening, I'd be very grateful.
 

Link to comment
Share on other sites

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

  • Active+ Member
Posted (edited)
quest select_skill begin

	state start begin
		when login or levelup with pc.level >= 5 and pc.skillgroup == 0 begin
			set_state(run)
		end
	end

	state run begin
		when login or levelup with pc.get_level() >= 5 and pc.get_skill_group() == 0 begin
			send_letter("Choose your path");
		end
		
		when button or info with pc.get_level() >= 5 and pc.get_skill_group() == 0 begin
			command("selectskill_open");
		end

		when login with pc.get_skill_group() != 0 begin
			restart_quest()
		end
	end
end
quest skill_reset2 begin
    state start begin
        when 9006.chat.gameforge.skill_reset2._10_npcChat begin
            if pc.get_level() < 5 then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._20_say)
                return
            end
            if pc.get_level() > 30 then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(string.format(gameforge.skill_reset2._30_say, pc.get_level()))
                return
            end
            if pc.get_skill_group() == 0 then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._40_say)
                return
            end

            local cost = 10000 + pc.get_level() * 2000
            local s = 0

            if not pc.has_master_skill() then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(string.format(gameforge.skill_reset2._50_say, cost))
                s = select(gameforge.skill_reset2._10_npcChat, gameforge.skill_reset2._60_select)
            else
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._70_say)
                wait()
                say(string.format(gameforge.skill_reset2._80_say, cost))
                s = select(gameforge.skill_reset2._90_select, gameforge.locale.cancel)
            end
            if 2 == s then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._110_say)
                return
            end
            if pc.get_money() < cost then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._120_say)
                return
            end
            pc.change_money(-cost)
            pc.clear_skill()
            pc.set_skill_group(0)
            set_quest_state("select_skill", "run")
        end
    end
end

try these

Edited by Lycawn

spacer.png

Link to comment
Share on other sites

4 hours ago, Lycawn said:
quest select_skill begin

	state start begin
		when login or levelup with pc.level >= 5 and pc.skillgroup == 0 begin
			set_state(run)
		end
	end

	state run begin
		when login or levelup with pc.get_level() >= 5 and pc.get_skill_group() == 0 begin
			send_letter("Choose your path");
		end
		
		when button or info with pc.get_level() >= 5 and pc.get_skill_group() == 0 begin
			command("selectskill_open");
		end

		when login with pc.get_skill_group() != 0 begin
			restart_quest()
		end
	end
end
quest skill_reset2 begin
    state start begin
        when 9006.chat.gameforge.skill_reset2._10_npcChat begin
            if pc.get_level() < 5 then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._20_say)
                return
            end
            if pc.get_level() > 30 then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(string.format(gameforge.skill_reset2._30_say, pc.get_level()))
                return
            end
            if pc.get_skill_group() == 0 then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._40_say)
                return
            end

            local cost = 10000 + pc.get_level() * 2000
            local s = 0

            if not pc.has_master_skill() then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(string.format(gameforge.skill_reset2._50_say, cost))
                s = select(gameforge.skill_reset2._10_npcChat, gameforge.skill_reset2._60_select)
            else
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._70_say)
                wait()
                say(string.format(gameforge.skill_reset2._80_say, cost))
                s = select(gameforge.skill_reset2._90_select, gameforge.locale.cancel)
            end
            if 2 == s then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._110_say)
                return
            end
            if pc.get_money() < cost then
                say_title(gameforge.couple_ring._20_sayTitle)
                say(gameforge.skill_reset2._120_say)
                return
            end
            pc.change_money(-cost)
            pc.clear_skill()
            pc.set_skill_group(0)
            set_quest_state("select_skill", "run")
        end
    end
end

try these

Didn't work 😞 

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.