- Joined
- Mar 16, 2017
- Messages
- 1,439
- Solutions
- 158
- Reaction score
- 2,028
- Location
- London
- GitHub
- MillhioreBT
- Twitch
- millhiorebt
Only work with oficial TFS 1.3 Revscript
data/scripts/dodgesevusystem.lua
Use item
data/scripts/dodgesevusystem.lua
Lua:
local config = {
dodgeItemId = 8298,
chance = 100, -- default 100%
limit = 100, -- default 100%
storage = 25250, -- default 25250
say = "DODGE!",
effect = CONST_ME_POFF,
defaultChance = 0
}
local dodgeSevu = Action()
function dodgeSevu.onUse(player, item, fromPos, target, toPos, isHotkey)
if not target or not target:isPlayer() then
player:sendCancelMessage("Only work on players.")
player:getPosition():sendMagicEffect(CONST_ME_POFF, player)
return true
end
local current = math.max(target:getStorageValue(config.storage), 0)
if current >= config.limit then
player:sendCancelMessage("You already have the ability to dodge to the maximum.")
target:getPosition():sendMagicEffect(CONST_ME_POFF)
return true
end
if math.random(100) <= config.chance then
target:setStorageValue(config.storage, current +1)
target:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, stirng.format("You have improved your ability to dodge: [%d/%d]!", current +1, config.limit))
target:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
return true
end
player:sendCancelMessage("The dodge upgrade has failed!")
target:getPosition():sendMagicEffect(CONST_ME_POFF)
return true
end
dodgeSevu:id(config.dodgeItemId)
dodgeSevu:register()
local dodgeSevuHC = CreatureEvent("DodgeSevuHC")
function dodgeSevuHC.onHealthChange(player, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
if not attacker or not attacker:isPlayer() then
return primaryDamage, primaryType, secondaryDamage, secondaryType
end
local chance = (config.defaultChance + (player:getStorageValue(config.storage) / 2))
if chance > 0 and math.random(100) <= chance then
player:say(config.say)
player:getPosition():sendMagicEffect(config.effect)
return 0, primaryType, 0, secondaryType
end
return primaryDamage, primaryType, secondaryDamage, secondaryType
end
dodgeSevuHC:register()
local dodgeSevuMC = CreatureEvent("DodgeSevuMC")
function dodgeSevuMC.onManaChange(player, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
if not attacker or not attacker:isPlayer() then
return primaryDamage, primaryType, secondaryDamage, secondaryType
end
local chance = (config.defaultChance + (player:getStorageValue(config.storage) / 2))
if chance > 0 and math.random(100) <= chance then
player:say(config.say)
player:getPosition():sendMagicEffect(config.effect)
return 0, primaryType, 0, secondaryType
end
return primaryDamage, primaryType, secondaryDamage, secondaryType
end
dodgeSevuMC:register()
local dodgeSevuLogin = CreatureEvent("DodgeSevuLogin")
function dodgeSevuLogin.onLogin(player)
player:registerEvent("DodgeSevuHC")
player:registerEvent("DodgeSevuMC")
return true
end
dodgeSevuLogin:register()
Use item
8298
on your player to increase your dodge skill
Last edited: