DangThao 81 Report post Posted October 5, 2020 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 Quote Share this post Link to post Share on other sites
Yuno 0 Report post Posted October 5, 2020 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 Quote Share this post Link to post Share on other sites
Yudha 8 Report post Posted October 9, 2020 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 1 Quote Share this post Link to post Share on other sites
Yuno 0 Report post Posted October 10, 2020 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 Quote Share this post Link to post Share on other sites