Eu fiz este sistema há um ano para um amigo que está usando um servidor de Naruto. Então, basta adicionar ao seu OT em data/scripts/nome.lua. Este sistema utiliza RevScript.
Não é necessário editar na source. Caso apareçam erros no console, como a falta de alguma função, por exemplo, me reporte aqui que vou ajudar no que for preciso, ok?
local config = {
maxClones = 3, -- Número máximo de clones que podem ser criados
healthPercent = 0.10, -- Porcentagem da vida do jogador que o clone terá (10%)
spellName = "Clone das Sombras", -- Nome fixo da magia (não altere esta linha)
words = "utamo clone", -- Nome da magia, pode ser alterado para o nome preferido (ex.: diga no jogo "utamo clone")
cooldown = 30, -- Tempo de espera em segundos para usar novamente
manaCost = 500, -- Quantidade de mana necessária para usar
minLevel = 20, -- Nível mínimo necessário para usar a magia
monsterName = "clone", -- Nome do monstro base que será usado como clone
exhaustGroup = "support", -- Grupo de exaustão da magia
-- Lista de vocações que podem usar a magia
vocations = {
"druid", "elder druid",
"sorcerer", "master sorcerer",
"paladin", "royal paladin",
"knight", "elite knight"
},
needPremium = false -- Define se precisa ser conta premium para usar
}
local spell = Spell("instant")
function spell.onCastSpell(creature, variant)
local player = creature:getPlayer()
if not player then
return false
end
local summons = player:getSummons()
if #summons >= config.maxClones then
player:sendCancelMessage("Você já atingiu o número máximo de clones permitidos!")
return false
end
local remainingClones = config.maxClones - #summons
local playerHealth = player:getHealth()
local playerOutfit = player:getOutfit()
local playerSpeed = player:getSpeed()
for i = 1, remainingClones do
local clone = Game.createMonster(config.monsterName, player:getPosition())
if clone then
clone:setMaster(player)
clone:rename(player:getName())
player:addSummon(clone)
local cloneHealth = math.ceil(playerHealth * config.healthPercent)
clone:setMaxHealth(cloneHealth)
clone:addHealth(cloneHealth)
clone:setOutfit(playerOutfit)
clone:changeSpeed(playerSpeed)
end
end
return true
end
spell:name(config.spellName)
spell:words(config.words)
spell:group(config.exhaustGroup)
spell:vocation(unpack(config.vocations))
spell:id(24)
spell:cooldown(config.cooldown * 1000)
spell:groupCooldown(2 * 1000)
spell:level(config.minLevel)
spell:mana(config.manaCost)
spell:isSelfTarget(true)
spell:isAggressive(false)
spell:needLearn(false)
spell:isPremium(config.needPremium)
spell:register()