Graf 211 Report post Posted February 22, 2017 К примеру есть эффект скилла local strsb_dif = 1 local strsb = StrSb( role ) - strsb_dif SetCharaAttr( strsb , role , ATTR_STATEV_STR ) local consb_dif = 1 local consb = ConSb( role ) - consb_dif SetCharaAttr( consb , role , ATTR_STATEV_CON ) local agisb_dif = 1 local agisb = ConSb( role ) + agisb_dif SetCharaAttr( consb , role , ATTR_STATEV_AGI ) local dexsb_dif = 1 local dexsb = ConSb( role ) + dexsb_dif SetCharaAttr( consb , role , ATTR_STATEV_DEX ) local stasb_dif = 1 local stasb = ConSb( role ) + stasb_dif SetCharaAttr( consb , role , ATTR_STATEV_STA ) ALLExAttrSet(role) Добавляет персонажу +1 силы, ловкости, телосложения, духа и точности. Какой должен ATTR_STATEV_***, чтобы прибавляло в процентах? Quote Share this post Link to post Share on other sites
e1mer 102 Report post Posted February 23, 2017 Получаем необходимый параметр персонажа (функцией GetChaAttr()) Запишем получившейся результат, далее рассчитаем (Примерно по такой формуле: Параметр*Нужный процент/100) Получившейся результат необходимо добавить персонажу. 1 Quote Share this post Link to post Share on other sites
Graf 211 Report post Posted February 23, 2017 8 часов назад, e1mer сказал: Получаем необходимый параобметр персонажа (функцией GetChaAttr()) Запишем получившейся результат, далее рассчитаем (Примерно по такой формуле: Параметр*Нужный процент/100) Получившейся результат необходимо добавить персонажу. В принципе мне нужно было "Параметр*Нужный процент/100". Как бы смешно не звучало) Спасибо Quote Share this post Link to post Share on other sites
V3ct0r 2,117 Report post Posted February 23, 2017 @Graf попробуй ATTR_STATEC_X ATTR_STATEC - Coefficient, коэффициент % ATTR_STATEV - Value, значение Или local value = ПолучитьНужнуюХарактеристику(role) local value_add = value + value * %/100 УстановитьНужнуюХарактеристику(role, value_add) 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
Angelix 374 Report post Posted February 26, 2017 Hello! I come from the English part of the forum. I do not know Russian, but looking at scripts, I guess you are trying to do some percentages with attributes. Here is a script I did a while ago from a skill effect that involved reducing stats by percentages. There is a slight note, that some percentages are a bit off in player stats like attack and attack speed if I remember correctly. Hope it helps! Google translate: Spoiler Здравствуйте! Я родом из английской части форума. Я не знаю русского языка, но, глядя на скрипты, я предполагаю, что вы пытаетесь сделать некоторые проценты с атрибутами. Вот скрипт, я сделал некоторое время назад от навыка эффекта, который участвует восстанавливающего статистику по процентным. Существует небольшое примечание, что некоторые проценты являются откусил в статистике игрока, как атаки и скорость атаки, если я правильно помню. Надеюсь, поможет! function State_EmoYuYan2_Add(Player, StateLv) local Defense = 0.05 local Movement = 0.15 local Attack = 0.1 local Speed = 0.25 Defense = Defense * StateLv Movement = Movement * StateLv Attack = Attack * StateLv Speed = Speed * StateLv local DEF = math.floor((DefSa(Player) + (-1 * Defense)) * ATTR_RADIX) local MOV = math.floor((MspdSa(Player) + (-1 * Movement)) * ATTR_RADIX) local MNATK = math.floor((MnatkSa(Player) + (-1 * Attack)) * ATTR_RADIX) local MXATK = math.floor((MxatkSa(Player) + (-1 * Attack)) * ATTR_RADIX) local ASPD = math.floor((AspdSa(Player) + (-1 * Speed)) * ATTR_RADIX) SetCharaAttr(DEF, Player, ATTR_STATEC_DEF) SetCharaAttr(MOV, Player, ATTR_STATEC_MSPD) SetCharaAttr(MNATK, Player, ATTR_STATEC_MNATK) SetCharaAttr(MXATK, Player, ATTR_STATEC_MXATK) SetCharaAttr(ASPD, Player, ATTR_STATEC_ASPD) ALLExAttrSet(Player) end function State_EmoYuYan2_Rem(Player, StateLv) local Defense = 0.05 local Movement = 0.15 local Attack = 0.1 local Speed = 0.25 Defense = Defense * StateLv Movement = Movement * StateLv Attack = Attack * StateLv Speed = Speed * StateLv local DEF = math.floor((DefSa(Player) - (-1 * Defense)) * ATTR_RADIX) local MOV = math.floor((MspdSa(Player) - (-1 * Movement)) * ATTR_RADIX) local MNATK = math.floor((MnatkSa(Player) - (-1 * Attack)) * ATTR_RADIX) local MXATK = math.floor((MxatkSa(Player) - (-1 * Attack)) * ATTR_RADIX) local ASPD = math.floor((AspdSa(Player) - (-1 * Speed)) * ATTR_RADIX) SetCharaAttr(DEF, Player, ATTR_STATEC_DEF) SetCharaAttr(MOV, Player, ATTR_STATEC_MSPD) SetCharaAttr(MNATK, Player, ATTR_STATEC_MNATK) SetCharaAttr(MXATK, Player, ATTR_STATEC_MXATK) SetCharaAttr(ASPD, Player, ATTR_STATEC_ASPD) ALLExAttrSet(Player) end 2 Quote Share this post Link to post Share on other sites