fotostocker 33 Report post Posted September 7, 2022 (edited) Дорогие друзья помогите решить данную проблему. Установил Вип на сервер и при использования пассехи статы начали падать до этого все работало отлично. Потом прописал в function cha_timer VIPSystem.ApplyEffect(role). я грешу на данную функцию но как только я ее отключаю все работает отлично. не могу понять как решить данную проблему. Помогите советом. Данную функцию кидаю с авто питанием фей. function cha_timer( role, freq, time ) local resume_freq = 5 local now_tick = GetChaParam( role, 1 ) local is_role_living = -1 SetChaParam( role, 1, now_tick + freq * time ) VIPSystem.ApplyEffect(role) --------------------- --Авто питание фей-- --------------------- local Item_bg1 = GetChaItem ( role , 2 , 1 ) local Get_Item_Type1 = GetItemType ( Item_bg1 ) local ItemUse_siliao1 = GetChaItem ( role , 2 , 3 ) local ItemUse_siliao_ID1 = GetItemID ( ItemUse_siliao1 ) --------------------------------------------------------------------- if Get_Item_Type1 == 59 then local Elf_MEXP = GetItemAttr( Item_bg1 ,ITEMATTR_MAXENERGY ) local Elf_EXP = GetItemAttr( Item_bg1 ,ITEMATTR_ENERGY ) local Num_JLone = GetItemForgeParam ( Item_bg1 , 1 ) local Part1_JLone = GetNum_Part1 ( Num_JLone ) if Elf_EXP>=Elf_MEXP and ItemUse_siliao_ID1==276 then --ID Fruit STR local j = TakeItem( role,0,276,1) if j==0 then SystemNotice ( role , "Deleting of Fruit failed!" ) else SystemNotice ( role , "Automatic Pet Lv Up successful." ) Lvup_Str_1 ( role , Item_Num , Item_bg1 ) --Great STR end elseif Elf_EXP>=Elf_MEXP and ItemUse_siliao_ID1==277 then --ID Fruit AGI local j = TakeItem( role,0,277,1) if j==0 then SystemNotice ( role , "Deleting of Fruit failed!" ) else SystemNotice ( role , "Automatic Pet Lv Up successful." ) Lvup_Agi_1 ( role , Item_Num , Item_bg1 ) --Great AGI end elseif Elf_EXP>=Elf_MEXP and ItemUse_siliao_ID1==278 then --ID Fruit DEX local j = TakeItem( role,0,278,1) if j==0 then SystemNotice ( role , "Deleting of Fruit failed!" ) else SystemNotice ( role , "Automatic Pet Lv Up successful." ) Lvup_Dex_1 ( role , Item_Num , Item_bg1 ) --Great DEX(Auto Great Zephyr Fish Floss) end elseif Elf_EXP>=Elf_MEXP and ItemUse_siliao_ID1==279 then --ID Fruit CON local j = TakeItem( role,0,279,1) if j==0 then SystemNotice ( role , "Deleting of Fruit failed!" ) else SystemNotice ( role , "Automatic Pet Lv Up successful." ) Lvup_Con_1 ( role , Item_Num , Item_bg1 ) --Great CON end elseif Elf_EXP>=Elf_MEXP and ItemUse_siliao_ID1==280 then --ID Fruit STA local j = TakeItem( role,0,280,1) if j==0 then SystemNotice ( role , "Deleting of Fruit failed!" ) else SystemNotice ( role , "Automatic Pet Lv Up successful." ) Lvup_Sta_1 ( role , Item_Num , Item_bg1 ) --Great STA end elseif Elf_EXP>=Elf_MEXP and ItemUse_siliao_ID1==222 then --ID Fruit STA local j = TakeItem( role,0,222,1) if j==0 then SystemNotice ( role , "Deleting of Fruit failed!" ) else SystemNotice ( role , "Automatic Pet Lv Up successful." ) Lvup_Str ( role , Item_Num , Item_bg1 ) --Great STA end elseif Elf_EXP>=Elf_MEXP and ItemUse_siliao_ID1==223 then --ID Fruit STA local j = TakeItem( role,0,223,1) if j==0 then SystemNotice ( role , "Deleting of Fruit failed!" ) else SystemNotice ( role , "Automatic Pet Lv Up successful." ) Lvup_Agi ( role , Item_Num , Item_bg1 ) --Great STA end elseif Elf_EXP>=Elf_MEXP and ItemUse_siliao_ID1==224 then --ID Fruit STA local j = TakeItem( role,0,224,1) if j==0 then SystemNotice ( role , "Deleting of Fruit failed!" ) else SystemNotice ( role , "Automatic Pet Lv Up successful." ) Lvup_Dex ( role , Item_Num , Item_bg1 ) --Great STA end elseif Elf_EXP>=Elf_MEXP and ItemUse_siliao_ID1==225 then --ID Fruit STA local j = TakeItem( role,0,225,1) if j==0 then SystemNotice ( role , "Deleting of Fruit failed!" ) else SystemNotice ( role , "Automatic Pet Lv Up successful." ) Lvup_Con ( role , Item_Num , Item_bg1 ) --Great STA end elseif Elf_EXP>=Elf_MEXP and ItemUse_siliao_ID1==226 then --ID Fruit STA local j = TakeItem( role,0,226,1) if j==0 then SystemNotice ( role , "Deleting of Fruit failed!" ) else SystemNotice ( role , "Automatic Pet Lv Up successful." ) Lvup_Sta ( role , Item_Num , Item_bg1 ) --Great STA end end end Edited September 7, 2022 by fotostocker Quote Share this post Link to post Share on other sites
Graf 209 Report post Posted September 7, 2022 @fotostocker Ссылка ниже поможет. https://www.mediafire.com/file/9t7eyypzuomo5z5/ModuleStatev.rar/file 1 Quote Share this post Link to post Share on other sites
fotostocker 33 Report post Posted September 7, 2022 12 минут назад, Graf сказал: @fotostocker Ссылка ниже поможет. https://www.mediafire.com/file/9t7eyypzuomo5z5/ModuleStatev.rar/file Я так понял папку данную кидать в аддон прописывать данную фунцию в скилефект? Quote Share this post Link to post Share on other sites
Graf 209 Report post Posted September 7, 2022 17 минут назад, fotostocker сказал: Я так понял папку данную кидать в аддон прописывать данную фунцию в скилефект? В skilleffect.lua или в папку addon, если у Вас присутствует. Работает таким образом: //Добавляем эффект SetCharaStatev(strVal, player, ATTR_STATEV_STR, "STATE_AC") //Где STATE_AC - придуманное название //Снимаем эффект RemCharaStatev(0 , player , ATTR_STATEV_STR , "STATE_AC") 1 Quote Share this post Link to post Share on other sites
fotostocker 33 Report post Posted September 7, 2022 43 минуты назад, Graf сказал: В skilleffect.lua или в папку addon, если у Вас присутствует. Работает таким образом: //Добавляем эффект SetCharaStatev(strVal, player, ATTR_STATEV_STR, "STATE_AC") //Где STATE_AC - придуманное название //Снимаем эффект RemCharaStatev(0 , player , ATTR_STATEV_STR , "STATE_AC") не могу понять какую фунцкию делать и где чтобы вставить данную информацию. Пожалуйста можно поподробней.Прошу помоги Graf Quote Share this post Link to post Share on other sites
Graf 209 Report post Posted September 7, 2022 @fotostocker Открываешь аддон с Vip системой. Ищешь: State_VIP_Add Приводишь к виду: State_VIP_Add = function(Player, StateLv) local Table = DataFile:Init(VIPSystem.Conf.Path, Table):Load() local PID = GetCharID(Player) if (Table[PID] ~= nil) then local VIPLv = Table[PID].VIPLv if (VIPLv ~= nil) and (VIPLv > 0) then local STR = VIPSystem.Conf.Bonus[VIPLv].STR local AGI = VIPSystem.Conf.Bonus[VIPLv].AGI local ACC = VIPSystem.Conf.Bonus[VIPLv].ACC local CON = VIPSystem.Conf.Bonus[VIPLv].CON local SPR = VIPSystem.Conf.Bonus[VIPLv].SPR local DEF = VIPSystem.Conf.Bonus[VIPLv].DEF local PR = VIPSystem.Conf.Bonus[VIPLv].PR local MSPD = VIPSystem.Conf.Bonus[VIPLv].MSPD SetCharaStatev(STR, Player, ATTR_STATEV_STR, "STATE_VIP") SetCharaStatev(SPR, Player, ATTR_STATEV_STA, "STATE_VIP") SetCharaStatev(AGI, Player, ATTR_STATEV_AGI, "STATE_VIP") SetCharaStatev(CON, Player, ATTR_STATEV_CON, "STATE_VIP") SetCharaStatev(ACC, Player, ATTR_STATEV_DEX, "STATE_VIP") SetCharaStatev(DEF, Player, ATTR_STATEV_DEF, "STATE_VIP") SetCharaStatev(PR, Player, ATTR_STATEV_PDEF, "STATE_VIP") SetCharaStatev(MSPD, Player, ATTR_STATEV_MSPD, "STATE_VIP") ALLExAttrSet(Player) end end end Далее ищешь: State_VIP_Rem Приводишь к виду: State_VIP_Rem = function(Player, Statelv) RemCharaStatev(0, Player, ATTR_STATEV_STR, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_STA, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_AGI, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_CON, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_DEX, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_DEF, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_PDEF, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_MSPD, "STATE_VIP") ALLExAttrSet(Player) end Затем ищем функцию в skilleffect.lua, которая отвечают на "поссейшн". Называется она: State_JLFT_Add Все бонусы заменяем на подобные (это пример с моего тестового сервера, у Вас может что-то отличаться): if Item_ID ==232 then --local star = GetChaAttr( role , ATTR_BSTR )*statelv local star = lv_JL SetCharaStatev(star, role, ATTR_STATEV_STR, "STATE_JLFT") end Затем ищем функцию: State_JLFT_Rem Приводим к виду: function State_JLFT_Rem ( role , sklv ) RemCharaStatev(0, role, ATTR_STATEV_STR, "STATE_JLFT") RemCharaStatev(0, role, ATTR_STATEV_AGI, "STATE_JLFT") RemCharaStatev(0, role, ATTR_STATEV_DEX, "STATE_JLFT") RemCharaStatev(0, role, ATTR_STATEV_CON, "STATE_JLFT") RemCharaStatev(0, role, ATTR_STATEV_STA, "STATE_JLFT") RemCharaStatev(0, role, ATTR_STATEV_PDEF, "STATE_JLFT") ALLExAttrSet(role) RefreshCha(role) end 1 1 Quote Share this post Link to post Share on other sites
fotostocker 33 Report post Posted September 7, 2022 59 минут назад, Graf сказал: @fotostocker Открываешь аддон с Vip системой. Ищешь: State_VIP_Add Приводишь к виду: State_VIP_Add = function(Player, StateLv) local Table = DataFile:Init(VIPSystem.Conf.Path, Table):Load() local PID = GetCharID(Player) if (Table[PID] ~= nil) then local VIPLv = Table[PID].VIPLv if (VIPLv ~= nil) and (VIPLv > 0) then local STR = VIPSystem.Conf.Bonus[VIPLv].STR local AGI = VIPSystem.Conf.Bonus[VIPLv].AGI local ACC = VIPSystem.Conf.Bonus[VIPLv].ACC local CON = VIPSystem.Conf.Bonus[VIPLv].CON local SPR = VIPSystem.Conf.Bonus[VIPLv].SPR local DEF = VIPSystem.Conf.Bonus[VIPLv].DEF local PR = VIPSystem.Conf.Bonus[VIPLv].PR local MSPD = VIPSystem.Conf.Bonus[VIPLv].MSPD SetCharaStatev(STR, Player, ATTR_STATEV_STR, "STATE_VIP") SetCharaStatev(SPR, Player, ATTR_STATEV_STA, "STATE_VIP") SetCharaStatev(AGI, Player, ATTR_STATEV_AGI, "STATE_VIP") SetCharaStatev(CON, Player, ATTR_STATEV_CON, "STATE_VIP") SetCharaStatev(ACC, Player, ATTR_STATEV_DEX, "STATE_VIP") SetCharaStatev(DEF, Player, ATTR_STATEV_DEF, "STATE_VIP") SetCharaStatev(PR, Player, ATTR_STATEV_PDEF, "STATE_VIP") SetCharaStatev(MSPD, Player, ATTR_STATEV_MSPD, "STATE_VIP") ALLExAttrSet(Player) end end end Далее ищешь: State_VIP_Rem Приводишь к виду: State_VIP_Rem = function(Player, Statelv) RemCharaStatev(0, Player, ATTR_STATEV_STR, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_STA, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_AGI, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_CON, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_DEX, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_DEF, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_PDEF, "STATE_VIP") RemCharaStatev(0, Player, ATTR_STATEV_MSPD, "STATE_VIP") ALLExAttrSet(Player) end Затем ищем функцию в skilleffect.lua, которая отвечают на "поссейшн". Называется она: State_JLFT_Add Все бонусы заменяем на подобные (это пример с моего тестового сервера, у Вас может что-то отличаться): if Item_ID ==232 then --local star = GetChaAttr( role , ATTR_BSTR )*statelv local star = lv_JL SetCharaStatev(star, role, ATTR_STATEV_STR, "STATE_JLFT") end Затем ищем функцию: State_JLFT_Rem Приводим к виду: function State_JLFT_Rem ( role , sklv ) RemCharaStatev(0, role, ATTR_STATEV_STR, "STATE_JLFT") RemCharaStatev(0, role, ATTR_STATEV_AGI, "STATE_JLFT") RemCharaStatev(0, role, ATTR_STATEV_DEX, "STATE_JLFT") RemCharaStatev(0, role, ATTR_STATEV_CON, "STATE_JLFT") RemCharaStatev(0, role, ATTR_STATEV_STA, "STATE_JLFT") RemCharaStatev(0, role, ATTR_STATEV_PDEF, "STATE_JLFT") ALLExAttrSet(role) RefreshCha(role) end Graf огромное спасибо все поправил как ты и сказал но блин оказывается проблема была не в самом модуле на вип систему а проблема в феи. фея просила дополнительный код ( if str~=nil and str~=0 then)---- я так понял он отвечает за проверку при пассе. и данного кода не было у Морды. спасибо тебе ты можно заставил меня найти эту ошибку. А я грешил на вип систему. Огромное тебе спасибо еще раз. 1 Quote Share this post Link to post Share on other sites