kyleflow 35 Report post Posted November 30, 2023 (edited) Today I will explain about how you may add a new fairy. As an example, you can use the Dragon Fairy Files from this archive. https://mega.nz/folder/OUMUgTYb#jtCsqh7halK_O9uzWyaG0g/folder/KcdVQK6a Add all the included item for client side into client. Add iteminfo.txt and then compiled it for client bin. Add '0' with tab after description depend on your iteminfo files version. Example here already have it. XXXX Dragon Spirit n1921 10130005 0 0 0 0 0 0 59 0 0 0 0 0 1 1 1 1 1 1 0 -1,-2,-2,-2 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 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 10,10 0 240,240 5000,5000 0 0 0 0 0 0 0 0 0 0 0 0 0 YYYY,0 0 0 Dragon Fairy. 0 Place this with sceneffectinfo.txt and compile it for client bin. YYYY xhlgua.par Dragon Class Sea Wave 1 0 0 -1 0 0 0 -1 XXXX = iteminfoID YYYY = SceneffectinfoID -- replace also this inside the iteminfo.txt for dragon spirit. Basically this is already a complete way to add a new model of fairy but you will not get the fairy effect or even possession fairy skill. This guide I made only the portion where the check for pet marriage is ignored. ( Can find in other forum about this check, mine already removed if I'm not mistaken ). Open skilleffect.lua and find this " Skill_JLFT_End ( ATKER , DEFER , sklv ) " Try to make the equation after this code local Item_ID = GetItemID ( item_elf ) With this code if Item_ID==231 then AddState( ATKER , ATKER , STATE_JLFT1, statelv , statetime ) elseif Item_ID==232 then AddState( ATKER , ATKER , STATE_JLFT2, statelv , statetime ) elseif Item_ID==233 then AddState( ATKER , ATKER , STATE_JLFT3, statelv , statetime ) elseif Item_ID==235 then AddState( ATKER , ATKER , STATE_JLFT4, statelv , statetime ) elseif Item_ID==234 then AddState( ATKER , ATKER , STATE_JLFT5, statelv , statetime ) elseif Item_ID==236 then AddState( ATKER , ATKER , STATE_JLFT6, statelv , statetime ) elseif Item_ID==237 then AddState( ATKER , ATKER , STATE_JLFT7, statelv , statetime ) elseif Item_ID==681 then AddState( ATKER , ATKER , STATE_JLFT8, statelv , statetime ) elseif Item_ID==500 or Item_ID == 7362 or Item_ID == 7363 or Item_ID == 7364 or Item_ID == 7365 or Item_ID == 7353 then AddState( ATKER , ATKER , STATE_JLFT8, statelv , statetime ) The default pet in most iteminfo.txt only have 231 until 500, the other ID mentioned here is based on your custom iteminfoID for your fairy. This function declared a state for the respected fairy. Find State_JLFT_Add ( role , sklv ) and below this code local Part7 = GetNum_Part7 ( Num_JL ) add this code or make it similar to this code. if Part1 == 1 then local star = 0 local statelv = lv_JL * 0.025 * (sklv + 1) * 0.05 ----lv*1/40*(skilllv+1)/2*0.1 if Item_ID ==232 then local star = lv_JL SetCharaAttr(star, role, ATTR_STATEV_STR) end if Item_ID ==233 then local star = lv_JL SetCharaAttr(star, role, ATTR_STATEV_CON) end if Item_ID ==234 then local star = lv_JL SetCharaAttr(star, role, ATTR_STATEV_STA) end if Item_ID ==235 then local star = lv_JL SetCharaAttr(star, role, ATTR_STATEV_DEX) end if Item_ID ==236 then local star = lv_JL SetCharaAttr(star ,role , ATTR_STATEV_AGI) end if Item_ID == 681 or Item_ID == 231 or Item_ID == 237 then if str~=nil and str~=0 then SetCharaAttr(str ,role , ATTR_STATEV_STR) end if con~=nil and con~=0 then SetCharaAttr(con ,role , ATTR_STATEV_CON) end if sta~=nil and sta~=0 then SetCharaAttr(sta ,role , ATTR_STATEV_STA) end if dex~=nil and dex~=0 then SetCharaAttr(dex ,role , ATTR_STATEV_DEX) end if agi~=nil and agi~=0 then SetCharaAttr(agi ,role , ATTR_STATEV_AGI) end end if Item_ID == 500 or Item_ID == 7362 or Item_ID == 7363 or Item_ID == 7364 or Item_ID == 7365 or Item_ID == 7353 then -- august pet 1 4 dan dragon pet if str~=nil and str~=0 then local star = str*1.2 SetCharaAttr(star ,role , ATTR_STATEV_STR) end if con~=nil and con~=0 then local star = con*1.2 SetCharaAttr(star ,role , ATTR_STATEV_CON) end if sta~=nil and sta~=0 then local star = sta*1.2 SetCharaAttr(star ,role , ATTR_STATEV_STA) end if dex~=nil and dex~=0 then local star = dex*1.2 SetCharaAttr(star ,role , ATTR_STATEV_DEX) end if agi~=nil and agi~=0 then local star = agi*1.2 SetCharaAttr(star ,role , ATTR_STATEV_AGI) end local star = GetChaAttr( role, ATTR_BMF ) * lv_JL * 0.05 --asal 0.02 local star2 = GetChaAttr( role, ATTR_BMF ) SetCharaAttr(star ,role , ATTR_BMF) local star = GetChaAttr( role, ATTR_STATEV_PDEF ) + 3 SetCharaAttr(star ,role , ATTR_STATEV_PDEF) end end end ALLExAttrSet(role) end As previously mentioned, the additional iteminfoID for new fairy is added in such a way to declared the stats changes by multiplier. In my case the stats is 1.2 more than normal possession for certain pet. local star = GetChaAttr( role, ATTR_BMF ) * lv_JL * 0.05 This part is the declaration part of drop rate during possession multiplier. You can play with the values but advise it to be low if you have higher level pet to ensure the drop rate is not too high if you aim for medium setting server. You can place this also with other fairy ID above since its a local declaration, you can simply called it with the same variables without conflict. Note to take, make sure all your fairyID have the same itemtype 59. Credit to the script owner or any contributor to the script. I simply sort it out for guides. Edited November 30, 2023 by kyleflow add credit 1 Quote Share this post Link to post Share on other sites