Jump to content
DangThao

Prevent Pet Feed BUG

Recommended Posts

This will show you how to prevent player from feeding pet on any slot, why? because without this they can be very overpower with the stats they fed the pet. So pet must be in second slot to feed.

1_Find your iteminfo line for the pet fruit you want to prevent from happening

0222    Snow Dragon Fruit    n1346    10130005    0    0    0    0    0    00    58    0    0    0    0    0    1    1    1    1    99    0    10000    -1    0    -1    0    0    -1    -1    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0    0    0,0    0    0    0    0    0    0    0    0    0    ItemUse_LS_longguo    0    0    0    0    0    0    Snow Dragon Fruit can increases the Strength of pet    

2_ItemUse_LS_longguo is the function you must find inside your itemeffect.lua; ctrl + f and search for ItemUse_LS_longguo

3_Add this to your code
 


				elseif Item_Traget ~= GetChaItem(role, 2, 1) then
					SystemNotice(role, "Can only feed fairies on second slot.")
					UseItemFailed(role) 
					return 

4_Result:

function ItemUse_LS_longguo ( role , Item , Item_Traget ) 

	local Cha_Boat = 0
	Cha_Boat = GetCtrlBoat ( role )
--	SystemNotice( role , Cha_Boat )
	if Cha_Boat ~= nil then 
		SystemNotice( role , "Cannot use while sailing" ) 
		UseItemFailed ( role ) 
		return 
	end 
		local Item_type = GetItemType ( Item )
		local Item_Traget_Type = GetItemType ( Item_Traget )
		local Item_Num = GetItemID ( Item )
		local Check_Exp = 0
		local Elf_MaxEXP = GetItemAttr(Item_Traget,ITEMATTR_MAXENERGY) 
		--SystemNotice(role ,Elf_MaxEXP )

		if Item_type == 58 and Item_Traget_Type == 59 then
				Check_Exp = CheckElf_EXP ( role , Item_Traget ) --¾«ÁéexpÊÇ·ñÂú×ãÉý¼¶Ìõ¼þ
				if Check_Exp == 0 then
					SystemNotice(role , "Growth rate is not full. Unable to feed pet with Snow Dragon Fruit" ) 
					UseItemFailed ( role )
				elseif Item_Traget ~= GetChaItem(role, 2, 1) then
					SystemNotice(role, "Fairy must be on second slot to feed. Failed!")
					UseItemFailed(role) 
					return 
				else
				   Lvup_Str ( role , Item_Num , Item_Traget ) --¸ù¾Ý¾ßÌåµÀ¾ßÑ¡Ôñ²»Í¬ÊôÐԵijɳ¤º¯Êý ( ÀýÖÐΪstr )
				end 
		end 
end

 

Share this post


Link to post
Share on other sites

Thanks for sharing but it could be better if you make 1 function to handle all fruits at once instead of editing each fruit function and you'll have to keep doing this for any new fruits too

Share this post


Link to post
Share on other sites
On 10/5/2020 at 9:24 PM, Yuno said:

Thanks for sharing but it could be better if you make 1 function to handle all fruits at once instead of editing each fruit function and you'll have to keep doing this for any new fruits too


Here you go
 

function Eclipse_FairyFood(role, Item, Item_Target)
	if (IsChaStall(role) == LUA_TRUE) then
		SystemNotice(role, "Cannot use while your stall is opened!" )
		UseItemFailed(role)
		return
	end
	local Cha_Boat = 0
	Cha_Boat = GetCtrlBoat(role)
	if Cha_Boat ~= nil then 
		SystemNotice(role, "Cannot use while sailing!") 
		UseItemFailed(role) 
		return 
	end
	local FairyFood = {}
	FairyFood[0222] =	{AttrType = ITEMATTR_VAL_STR, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 1}	--Snow Dragon Fruit
	FairyFood[0223] =	{AttrType = ITEMATTR_VAL_AGI, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 1}	--Icespire Plum
	FairyFood[0224] =	{AttrType = ITEMATTR_VAL_DEX, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 1}	--Zephyr Fish Floss
	FairyFood[0225] =	{AttrType = ITEMATTR_VAL_CON, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 1}	--Argent Mango
	FairyFood[0226] =	{AttrType = ITEMATTR_VAL_STA, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 1}	--Shaitan Biscuit
	FairyFood[0276] =	{AttrType = ITEMATTR_VAL_STR, AttrAdd = 2, MinLv = 0, MaxLv = 41, Energy = 1}	--Great Snow Dragon Fruit
	FairyFood[0277] =	{AttrType = ITEMATTR_VAL_AGI, AttrAdd = 2, MinLv = 0, MaxLv = 41, Energy = 1}	--Great Icespire Plum
	FairyFood[0278] =	{AttrType = ITEMATTR_VAL_DEX, AttrAdd = 2, MinLv = 0, MaxLv = 41, Energy = 1}	--Great Zephyr Fish Floss
	FairyFood[0279] =	{AttrType = ITEMATTR_VAL_CON, AttrAdd = 2, MinLv = 0, MaxLv = 41, Energy = 1}	--Great Argent Mango
	FairyFood[0280] =	{AttrType = ITEMATTR_VAL_STA, AttrAdd = 2, MinLv = 0, MaxLv = 41, Energy = 1}	--Great Shaitan Biscuit
	FairyFood[6842] =	{AttrType = ITEMATTR_VAL_STR, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 0.5}	--Super Snow Dragon Fruit
	FairyFood[6843] =	{AttrType = ITEMATTR_VAL_AGI, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 0.5}	--Super Icespire Plum
	FairyFood[6844] =	{AttrType = ITEMATTR_VAL_CON, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 0.5}	--Super Argent Mango
	FairyFood[6845] =	{AttrType = ITEMATTR_VAL_DEX, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 0.5}	--Super Zephyr Fish Floss
	FairyFood[6846] =	{AttrType = ITEMATTR_VAL_STA, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 0.5}	--Super Shaitan Biscuit
	FairyFood[7003] =	{AttrType = ITEMATTR_VAL_STR, AttrAdd = 1, MinLv = 41, MaxLv = 60, Energy = 1}	--Improved Strength Fruit
	FairyFood[7004] =	{AttrType = ITEMATTR_VAL_AGI, AttrAdd = 1, MinLv = 41, MaxLv = 60, Energy = 1}	--Improved Agility Fruit
	FairyFood[7005] =	{AttrType = ITEMATTR_VAL_DEX, AttrAdd = 1, MinLv = 41, MaxLv = 60, Energy = 1}	--Improved Accuracy Fruit
	FairyFood[7006] =	{AttrType = ITEMATTR_VAL_CON, AttrAdd = 1, MinLv = 41, MaxLv = 60, Energy = 1}	--Improved Constitution Fruit
	FairyFood[7007] =	{AttrType = ITEMATTR_VAL_STA, AttrAdd = 1, MinLv = 41, MaxLv = 60, Energy = 1}	--Improved Spirit Fruit
	local ItemID = GetItemID(Item)
	if FairyFood[ItemID] ~= nil then
		local Item_type			= GetItemType(Item)
		local Item_Target_Type	= GetItemType(Item_Target)
		local str 				= GetItemAttr(Item_Target, ITEMATTR_VAL_STR)
		local con 				= GetItemAttr(Item_Target, ITEMATTR_VAL_CON)
		local agi 				= GetItemAttr(Item_Target, ITEMATTR_VAL_AGI)
		local dex 				= GetItemAttr(Item_Target, ITEMATTR_VAL_DEX)
		local sta 				= GetItemAttr(Item_Target, ITEMATTR_VAL_STA)
		local FairyLv 			= str + agi + dex + con + sta
		local Attr_Type_Num 	= GetItemAttr(Item_Target, FairyFood[ItemID].AttrType)
		if Item_type == 58 and Item_Target_Type == 59 then
			local FairySlot = GetChaItem(role, 2, 1)
			if Item_Target ~= FairySlot then
				SystemNotice(role, "Please put your fairy into 2nd slot of your inventory!")
				UseItemFailed(role)
				return
			end
			if FairyLv < FairyFood[ItemID].MinLv then
				SystemNotice(role, "Minimum level of fairy is Lv"..FairyFood[ItemID].MinLv.." to feeds with "..GetItemName(ItemID).."!")
				UseItemFailed(role)
				return
			end
			if FairyLv >= FairyFood[ItemID].MaxLv then
				SystemNotice(role, "Fairy has reached it's maximum level to feeds with "..GetItemName(ItemID).."!")
				UseItemFailed(role)
				return
			end
			local Elf_EXP		= GetItemAttr(Item_Target, ITEMATTR_ENERGY)
			local Elf_MaxEXP 	= GetItemAttr(Item_Target, ITEMATTR_MAXENERGY)
			local Elf_MaxURE 	= GetItemAttr(Item_Target, ITEMATTR_MAXURE)
			local Elf_ExpNeed	= FairyFood[ItemID].Energy * Elf_MaxEXP
			if Elf_EXP < Elf_ExpNeed then
				SystemNotice(role, "Minimum fairy growth is "..Elf_ExpNeed.." to feeds with "..GetItemName(ItemID).."!")
				UseItemFailed(role)
				return		
			end
			local Lv_Add	= FairyFood[ItemID].AttrAdd
			local Final_Lv	= FairyLv + Lv_Add
			if Final_Lv > FairyFood[ItemID].MaxLv then
				Lv_Add = Lv_Add - (Final_Lv - FairyFood[ItemID].MaxLv)
			end
			
			local Success = (100-(FairyLv*0.50))/100	--(100-(FairyLv*1.75))/100
			local SuccessRate = Percentage_Random(Success)
			if SuccessRate == 1 then
				AddItemEffect(role, Item_Target , 0  )
				Attr_Type_Num = Attr_Type_Num + Lv_Add
				SetItemAttr(Item_Target, FairyFood[ItemID].AttrType, Attr_Type_Num)
				local Item_MAXENERGY = 240 * (FairyLv + Lv_Add)
				if Item_MAXENERGY > 6480 then
					Item_MAXENERGY = 6480
				end
				local Item_MAXURE_NUM = Elf_MaxURE + (1000 * Lv_Add)	--Stamina/Hp max 640
				if Item_MAXURE_NUM > 32000 then
					Item_MAXURE_NUM = 32000
				end
				Elf_EXP = 0
				SetItemAttr(Item_Target, ITEMATTR_ENERGY, Elf_EXP)
				SetItemAttr(Item_Target, ITEMATTR_MAXENERGY, Item_MAXENERGY)
				SetItemAttr(Item_Target, ITEMATTR_MAXURE, Item_MAXURE_NUM)
				ResetItemFinalAttr(Item_Target)
				AddItemEffect(role , Item_Target , 1  )
				SystemNotice (role , "Pet level up successfully! Growth rate is depleted")
			else
				Elf_EXP = Elf_EXP * 0.5
				SetItemAttr(Item_Target, ITEMATTR_ENERGY, Elf_EXP)
				SystemNotice(role, "Pet level up failed! Growth rate reduced by half")
			end
		else
			SystemNotice(role, "Fairy or Fruit is invalid!")
			UseItemFailed(role) 
			return
		end
	else
		SystemNotice(role , "Internal error!") 
		UseItemFailed(role) 
		return
	end
end

 

  • Like 1

Share this post


Link to post
Share on other sites
12 hours ago, Yudha said:


Here you go
 


function Eclipse_FairyFood(role, Item, Item_Target)
	if (IsChaStall(role) == LUA_TRUE) then
		SystemNotice(role, "Cannot use while your stall is opened!" )
		UseItemFailed(role)
		return
	end
	local Cha_Boat = 0
	Cha_Boat = GetCtrlBoat(role)
	if Cha_Boat ~= nil then 
		SystemNotice(role, "Cannot use while sailing!") 
		UseItemFailed(role) 
		return 
	end
	local FairyFood = {}
	FairyFood[0222] =	{AttrType = ITEMATTR_VAL_STR, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 1}	--Snow Dragon Fruit
	FairyFood[0223] =	{AttrType = ITEMATTR_VAL_AGI, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 1}	--Icespire Plum
	FairyFood[0224] =	{AttrType = ITEMATTR_VAL_DEX, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 1}	--Zephyr Fish Floss
	FairyFood[0225] =	{AttrType = ITEMATTR_VAL_CON, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 1}	--Argent Mango
	FairyFood[0226] =	{AttrType = ITEMATTR_VAL_STA, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 1}	--Shaitan Biscuit
	FairyFood[0276] =	{AttrType = ITEMATTR_VAL_STR, AttrAdd = 2, MinLv = 0, MaxLv = 41, Energy = 1}	--Great Snow Dragon Fruit
	FairyFood[0277] =	{AttrType = ITEMATTR_VAL_AGI, AttrAdd = 2, MinLv = 0, MaxLv = 41, Energy = 1}	--Great Icespire Plum
	FairyFood[0278] =	{AttrType = ITEMATTR_VAL_DEX, AttrAdd = 2, MinLv = 0, MaxLv = 41, Energy = 1}	--Great Zephyr Fish Floss
	FairyFood[0279] =	{AttrType = ITEMATTR_VAL_CON, AttrAdd = 2, MinLv = 0, MaxLv = 41, Energy = 1}	--Great Argent Mango
	FairyFood[0280] =	{AttrType = ITEMATTR_VAL_STA, AttrAdd = 2, MinLv = 0, MaxLv = 41, Energy = 1}	--Great Shaitan Biscuit
	FairyFood[6842] =	{AttrType = ITEMATTR_VAL_STR, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 0.5}	--Super Snow Dragon Fruit
	FairyFood[6843] =	{AttrType = ITEMATTR_VAL_AGI, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 0.5}	--Super Icespire Plum
	FairyFood[6844] =	{AttrType = ITEMATTR_VAL_CON, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 0.5}	--Super Argent Mango
	FairyFood[6845] =	{AttrType = ITEMATTR_VAL_DEX, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 0.5}	--Super Zephyr Fish Floss
	FairyFood[6846] =	{AttrType = ITEMATTR_VAL_STA, AttrAdd = 1, MinLv = 0, MaxLv = 41, Energy = 0.5}	--Super Shaitan Biscuit
	FairyFood[7003] =	{AttrType = ITEMATTR_VAL_STR, AttrAdd = 1, MinLv = 41, MaxLv = 60, Energy = 1}	--Improved Strength Fruit
	FairyFood[7004] =	{AttrType = ITEMATTR_VAL_AGI, AttrAdd = 1, MinLv = 41, MaxLv = 60, Energy = 1}	--Improved Agility Fruit
	FairyFood[7005] =	{AttrType = ITEMATTR_VAL_DEX, AttrAdd = 1, MinLv = 41, MaxLv = 60, Energy = 1}	--Improved Accuracy Fruit
	FairyFood[7006] =	{AttrType = ITEMATTR_VAL_CON, AttrAdd = 1, MinLv = 41, MaxLv = 60, Energy = 1}	--Improved Constitution Fruit
	FairyFood[7007] =	{AttrType = ITEMATTR_VAL_STA, AttrAdd = 1, MinLv = 41, MaxLv = 60, Energy = 1}	--Improved Spirit Fruit
	local ItemID = GetItemID(Item)
	if FairyFood[ItemID] ~= nil then
		local Item_type			= GetItemType(Item)
		local Item_Target_Type	= GetItemType(Item_Target)
		local str 				= GetItemAttr(Item_Target, ITEMATTR_VAL_STR)
		local con 				= GetItemAttr(Item_Target, ITEMATTR_VAL_CON)
		local agi 				= GetItemAttr(Item_Target, ITEMATTR_VAL_AGI)
		local dex 				= GetItemAttr(Item_Target, ITEMATTR_VAL_DEX)
		local sta 				= GetItemAttr(Item_Target, ITEMATTR_VAL_STA)
		local FairyLv 			= str + agi + dex + con + sta
		local Attr_Type_Num 	= GetItemAttr(Item_Target, FairyFood[ItemID].AttrType)
		if Item_type == 58 and Item_Target_Type == 59 then
			local FairySlot = GetChaItem(role, 2, 1)
			if Item_Target ~= FairySlot then
				SystemNotice(role, "Please put your fairy into 2nd slot of your inventory!")
				UseItemFailed(role)
				return
			end
			if FairyLv < FairyFood[ItemID].MinLv then
				SystemNotice(role, "Minimum level of fairy is Lv"..FairyFood[ItemID].MinLv.." to feeds with "..GetItemName(ItemID).."!")
				UseItemFailed(role)
				return
			end
			if FairyLv >= FairyFood[ItemID].MaxLv then
				SystemNotice(role, "Fairy has reached it's maximum level to feeds with "..GetItemName(ItemID).."!")
				UseItemFailed(role)
				return
			end
			local Elf_EXP		= GetItemAttr(Item_Target, ITEMATTR_ENERGY)
			local Elf_MaxEXP 	= GetItemAttr(Item_Target, ITEMATTR_MAXENERGY)
			local Elf_MaxURE 	= GetItemAttr(Item_Target, ITEMATTR_MAXURE)
			local Elf_ExpNeed	= FairyFood[ItemID].Energy * Elf_MaxEXP
			if Elf_EXP < Elf_ExpNeed then
				SystemNotice(role, "Minimum fairy growth is "..Elf_ExpNeed.." to feeds with "..GetItemName(ItemID).."!")
				UseItemFailed(role)
				return		
			end
			local Lv_Add	= FairyFood[ItemID].AttrAdd
			local Final_Lv	= FairyLv + Lv_Add
			if Final_Lv > FairyFood[ItemID].MaxLv then
				Lv_Add = Lv_Add - (Final_Lv - FairyFood[ItemID].MaxLv)
			end
			
			local Success = (100-(FairyLv*0.50))/100	--(100-(FairyLv*1.75))/100
			local SuccessRate = Percentage_Random(Success)
			if SuccessRate == 1 then
				AddItemEffect(role, Item_Target , 0  )
				Attr_Type_Num = Attr_Type_Num + Lv_Add
				SetItemAttr(Item_Target, FairyFood[ItemID].AttrType, Attr_Type_Num)
				local Item_MAXENERGY = 240 * (FairyLv + Lv_Add)
				if Item_MAXENERGY > 6480 then
					Item_MAXENERGY = 6480
				end
				local Item_MAXURE_NUM = Elf_MaxURE + (1000 * Lv_Add)	--Stamina/Hp max 640
				if Item_MAXURE_NUM > 32000 then
					Item_MAXURE_NUM = 32000
				end
				Elf_EXP = 0
				SetItemAttr(Item_Target, ITEMATTR_ENERGY, Elf_EXP)
				SetItemAttr(Item_Target, ITEMATTR_MAXENERGY, Item_MAXENERGY)
				SetItemAttr(Item_Target, ITEMATTR_MAXURE, Item_MAXURE_NUM)
				ResetItemFinalAttr(Item_Target)
				AddItemEffect(role , Item_Target , 1  )
				SystemNotice (role , "Pet level up successfully! Growth rate is depleted")
			else
				Elf_EXP = Elf_EXP * 0.5
				SetItemAttr(Item_Target, ITEMATTR_ENERGY, Elf_EXP)
				SystemNotice(role, "Pet level up failed! Growth rate reduced by half")
			end
		else
			SystemNotice(role, "Fairy or Fruit is invalid!")
			UseItemFailed(role) 
			return
		end
	else
		SystemNotice(role , "Internal error!") 
		UseItemFailed(role) 
		return
	end
end

 

Well done that was I was talking about

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...