Jump to content
Graf

skilleffect.lua бонус процентов

Recommended Posts

К примеру есть эффект скилла
       

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_***, чтобы прибавляло в процентах?

Share this post


Link to post
Share on other sites
  1. Получаем необходимый параметр персонажа  (функцией GetChaAttr())
  2. Запишем получившейся результат, далее рассчитаем (Примерно по такой формуле: Параметр*Нужный процент/100)
  3. Получившейся результат необходимо добавить персонажу.
  • Like 1

Share this post


Link to post
Share on other sites
8 часов назад, e1mer сказал:
  1. Получаем необходимый параобметр персонажа  (функцией GetChaAttr())
  2. Запишем получившейся результат, далее рассчитаем (Примерно по такой формуле: Параметр*Нужный процент/100)
  3. Получившейся результат необходимо добавить персонажу.

В принципе мне нужно было "Параметр*Нужный процент/100". Как бы смешно не звучало) Спасибо

Share this post


Link to post
Share on other sites

@Graf попробуй ATTR_STATEC_X

 

ATTR_STATEC - Coefficient, коэффициент %

ATTR_STATE- Value, значение 

 

Или

local value = ПолучитьНужнуюХарактеристику(role)
local value_add = value + value * %/100
УстановитьНужнуюХарактеристику(role, value_add)

 

  • Like 1

Share this post


Link to post
Share on other sites

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

 

  • Like 2

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.


×
×
  • Create New...