Jump to content
Sign in to follow this  
RedMAN

Промахи скиллами

Recommended Posts

На сервере сборка фан, соотвественно статы умножены over9999. С такими статами скиллы,  в частности станы , зачастую промахиваются. Что отвечает за шанс удачи применения скилла и можно ли сделать шанс срабатывания 100%?

Edited by RedMAN

Share this post


Link to post
Share on other sites

Именно станов? 
Посмотри в 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 )

Каждый скилл так надо разбирать.
Вроде как я не ошибаюсь

  • Like 1

Делай добро и бросай его в воду

Share this post


Link to post
Share on other sites
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 ) . Если мы копаем там где нужно, то в теории так шанс на провал убирается совсем. Как с босса так и с игроков. Помогите пожалуйста) Ткните носом, где я ошибся если ошибся и подскажите как сделать то что задумал

Share this post


Link to post
Share on other sites
7 часов назад, RedMAN сказал:

Это ,как я понял ,идёт расчёт шанса по боссам, а точнее по какому-то из боссов Абаддона(ид 971, Барон-Фантом).  Или это общий шанс? Если общий то достаточно вместо a = Percentage_Random написать a = 1, я ошибаюсь? Или же      SetSus( DEFER , 0 )  заменить на         SetSus( DEFER , 1 ) . Если мы копаем там где нужно, то в теории так шанс на провал убирается совсем. Как с босса так и с игроков. Помогите пожалуйста) Ткните носом, где я ошибся если ошибся и подскажите как сделать то что задумал

Это общий шанс, если посмотреть на структуру кода будет понятно все.
можно просто заменить а на 1 и все или вообще убрать данную проверку.

  • Like 1

Делай добро и бросай его в воду

Share this post


Link to post
Share on other sites

a = Percentage_Random ( 0.8 )


Вот это сама функция шанса применения скилла. Ниже уже идет дополнительное условие, что если скилл попал, но при этом ID цели ==, то... И так далее.

Share this post


Link to post
Share on other sites
В 17.08.2016 в 15:19, Syaoran сказал:

a = Percentage_Random ( 0.8 )


Вот это сама функция шанса применения скилла. Ниже уже идет дополнительное условие, что если скилл попал, но при этом ID цели ==, то... И так далее.

Ну мне лень было вырезать доп условия, я показал полную функцию, так как момент if a==1 then ... показывает где работает эта переменная)


Делай добро и бросай его в воду

Share this post


Link to post
Share on other sites

В функции стана есть такой код:

	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 и весь код, в котором она используется.


Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...