RedMAN 22 Report post Posted August 13, 2016 (edited) На сервере сборка фан, соотвественно статы умножены over9999. С такими статами скиллы, в частности станы , зачастую промахиваются. Что отвечает за шанс удачи применения скилла и можно ли сделать шанс срабатывания 100%? Edited August 13, 2016 by RedMAN Quote Share this post Link to post Share on other sites
WVWMK 121 Report post Posted August 13, 2016 Именно станов? Посмотри в skilleffect , например Теневой удар: ... a = Percentage_Random ( 0.8 ) ... if a == 1 then if GetChaTypeID( ATKER ) == 979 then statetime = 5 end if GetChaAIType( DEFER ) >= 21 then if BOSSXYSJ[GetChaTypeID( DEFER )] == 0 then SystemNotice ("Неужели ты думаешь, что меня можно победить единственным навыком? Попробуй что-нибудь другое") return else BOSSXYSJ[GetChaTypeID( DEFER )] = BOSSXYSJ[GetChaTypeID( DEFER )] -1 end end Hp_Endure_Dmg ( DEFER , hpdmg ) AddState( ATKER , DEFER , STATE_XY, statelv , statetime ) else SetSus( DEFER , 0 ) -- отмена скилла end Check_Ys_Rem ( ATKER ,DEFER ) Каждый скилл так надо разбирать. Вроде как я не ошибаюсь 1 Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
RedMAN 22 Report post Posted August 14, 2016 2 часа назад, NMS3RR сказал: Именно станов? Посмотри в skilleffect , например Теневой удар: ... a = Percentage_Random ( 0.8 ) ... if a == 1 then if GetChaTypeID( ATKER ) == 979 then statetime = 5 end if GetChaAIType( DEFER ) >= 21 then if BOSSXYSJ[GetChaTypeID( DEFER )] == 0 then SystemNotice ("Неужели ты думаешь, что меня можно победить единственным навыком? Попробуй что-нибудь другое") return else BOSSXYSJ[GetChaTypeID( DEFER )] = BOSSXYSJ[GetChaTypeID( DEFER )] -1 end end Hp_Endure_Dmg ( DEFER , hpdmg ) AddState( ATKER , DEFER , STATE_XY, statelv , statetime ) else SetSus( DEFER , 0 ) -- отмена скилла end Check_Ys_Rem ( ATKER ,DEFER ) Каждый скилл так надо разбирать. Вроде как я не ошибаюсь Это ,как я понял ,идёт расчёт шанса по боссам, а точнее по какому-то из боссов Абаддона(ид 971, Барон-Фантом). Или это общий шанс? Если общий то достаточно вместо a = Percentage_Random написать a = 1, я ошибаюсь? Или же SetSus( DEFER , 0 ) заменить на SetSus( DEFER , 1 ) . Если мы копаем там где нужно, то в теории так шанс на провал убирается совсем. Как с босса так и с игроков. Помогите пожалуйста) Ткните носом, где я ошибся если ошибся и подскажите как сделать то что задумал Quote Share this post Link to post Share on other sites
BotPRO 12 Report post Posted August 14, 2016 Тунца ... Quote Share this post Link to post Share on other sites
WVWMK 121 Report post Posted August 14, 2016 7 часов назад, RedMAN сказал: Это ,как я понял ,идёт расчёт шанса по боссам, а точнее по какому-то из боссов Абаддона(ид 971, Барон-Фантом). Или это общий шанс? Если общий то достаточно вместо a = Percentage_Random написать a = 1, я ошибаюсь? Или же SetSus( DEFER , 0 ) заменить на SetSus( DEFER , 1 ) . Если мы копаем там где нужно, то в теории так шанс на провал убирается совсем. Как с босса так и с игроков. Помогите пожалуйста) Ткните носом, где я ошибся если ошибся и подскажите как сделать то что задумал Это общий шанс, если посмотреть на структуру кода будет понятно все. можно просто заменить а на 1 и все или вообще убрать данную проверку. 1 Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
Syaoran 0 Report post Posted August 17, 2016 a = Percentage_Random ( 0.8 ) Вот это сама функция шанса применения скилла. Ниже уже идет дополнительное условие, что если скилл попал, но при этом ID цели ==, то... И так далее. Quote Share this post Link to post Share on other sites
WVWMK 121 Report post Posted August 18, 2016 В 17.08.2016 в 15:19, Syaoran сказал: a = Percentage_Random ( 0.8 ) Вот это сама функция шанса применения скилла. Ниже уже идет дополнительное условие, что если скилл попал, но при этом ID цели ==, то... И так далее. Ну мне лень было вырезать доп условия, я показал полную функцию, так как момент if a==1 then ... показывает где работает эта переменная) Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted August 19, 2016 В функции стана есть такой код: local hp_defer = Mxhp(DEFER) if hp_defer >= 100000 then a = Percentage_Random(0.8) statetime = math.floor(statetime / 2) + 1 end который проверяет, если максимальные жизни цели больше или равны 100000, то ввести шанс промаха или уменьшить время стана в 2 раза. Вероятно, этот код как раз часто и срабатывает, раз "статы умножены over9999". Как было сказано выше, надо удалить переменную a и весь код, в котором она используется. 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