Jump to content

lua shaman skill quest


Recommended Posts

hello, could someone write a quest to:

1. item that advances skills every 1 level.
2. an item that advances to level P.

pleas

			{ "get_buff_level", pc_get_shaman_skill_level },
			{ "learn_shaman_skill", pc_train_shaman_skill_level },
--------------------------------------------------------------------------------
	int pc_get_shaman_skill_level(lua_State* L)
	{
		LPCHARACTER pChar = CQuestManager::instance().GetCurrentCharacterPtr();
		if (!pChar)
			return 0;

		if (!lua_isnumber(L, 1))
		{
			sys_err("Wrong argument");
			return 0;
		}
		
		BYTE bySkillVnum = static_cast<BYTE>(lua_tonumber(L, 1));
		if (!pChar->GetShamanSystem())
		{
			lua_pushnumber(L, 0);
			return 1;
		}
		
		lua_pushnumber(L, pChar->GetShamanSystem()->GetSkillLevel(bySkillVnum));
		return 1;
	}

	int pc_train_shaman_skill_level(lua_State* L)
	{
		LPCHARACTER pChar = CQuestManager::instance().GetCurrentCharacterPtr();
		if (!pChar)
			return 0;

		if (!lua_isnumber(L, 1))
		{
			sys_err("Wrong argument");
			return 0;
		}
		
		BYTE bySkillVnum = static_cast<BYTE>(lua_tonumber(L, 1));
		if (!pChar->GetShamanSystem())
		{
			lua_pushboolean(L, false);
			return 1;
		}
		
		lua_pushboolean(L, pChar->GetShamanSystem()->TrainByQuest(bySkillVnum));
		return 1;
	}

Thank you in advance for your help

Link to comment
Share on other sites

  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

  • Active Member

Test video: https://metin2.download/video/V8IB9aKVySF877MWJuZADyj09N0iw3O6/.mp4

 

upgrade_skills.quest

quest upgrade_skills begin
	state start begin
		when 50513.use begin
			upgrade_skills.upgradeSkillDialog(1)
		end
		
		when 50512.use begin
			upgrade_skills.upgradeSkillDialog(40)
		end
		
		function upgradeSkillDialog(inc)
			if pc.get_skill_group() != 0 then
				local vnum_list, name_list = {}, {}
				for _, vnum in ipairs(special.active_skill_list[pc.job+1][pc.get_skill_group()]) do
					if pc.get_skill_level(vnum) < 40 then
						table.insert(vnum_list, vnum)
						table.insert(name_list, locale.GM_SKILL_NAME_DICT[vnum] or vnum)
					end
				end
				if table.getn(name_list) != 0 then
					table.insert(name_list, "Close")
					say_title("Upgrade skill")
					say_reward("[ENTER]Item disappear after use")
					local sel = select_table(name_list)
					if sel != table.getn(name_list) then
						pc.set_skill_level(vnum_list[sel], pc.get_skill_level(vnum_list[sel])+inc)
						pc.remove_item(item.vnum)
					end
				end
			end
		end
	end
end

 

Edited by Metin2 Dev International
Core X - External 2 Internal
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.