Ir para conteúdo

Featured Replies

Postado

Criei uma spell para meu servidor baseada em outros jogos, para criar o script eu utilizei outros dois como base, a partir do script do xWhiteWolf: http://www.tibiaking.com/forum/topic/39391-spell-exori-element/e de um script do Tabz do otland, não possuo o link de onde retirei.
 
A parte do script do Tabz possuia um bug em que o fear fazia com que os playeres atravessassem paredes, que quando eu fui criar meu script removi o bug nao sei como  :blink: .
 
Explicando o que ele faz, quando o jogador ativa a spell, o inimigo alvo fica amaldiçoado, andando aleatoriamente e sofrendo dano de death(configuravel) e ao acabar a spell ele continua levando dano de death por alguns segundos.

 

Para começar crie um arquivo lua em data>spells>scripts>attack com o nome de Doom

 

-- >>Script by Tabz!<< --


--{Credits:}

-- Level 1 - 10 --

--.::.CONFIG.::.--
local feared_time = 3.5
--.::.CONFIG.::.--

setCombatParam(combat0, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat0, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat5, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local deathpowder = createConditionObject(CONDITION_CURSED)
setConditionParam(deathpowder, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(deathpowder, 10, 1000, -100)
setCombatCondition(combat5, deathpowder)

local function onCastSpell0(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end

local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end

local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end

local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end

local function onCastSpell4(parameters)
doCombat(parameters.cid, parameters.combat4, parameters.var)
end

local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat5, parameters.var)
end

local function fear(cid)
local cpos = getCreaturePosition(cid)
local dir = {}
if queryTileAddThing(cid, {x=cpos.x,y=cpos.y-1,z=cpos.z}) == 1 then
table.insert(dir, NORTH)
end
if queryTileAddThing(cid, {x=cpos.x-1,y=cpos.y,z=cpos.z}) == 1 then
table.insert(dir, WEST)
end
if queryTileAddThing(cid, {x=cpos.x,y=cpos.y+1,z=cpos.z}) == 1 then
table.insert(dir, SOUTH)
end
if queryTileAddThing(cid, {x=cpos.x+1,y=cpos.y,z=cpos.z}) == 1 then
table.insert(dir, EAST)
end
if #dir > 0 then
doMoveCreature(cid, dir[math.random(1,#dir)])
end
end

local function allowMove(cid, target)
if isPlayer(cid) then
doCreatureSetNoMove(target, false)
end
end

function onCastSpell(cid, var)
if exhaustion.check(cid, 23003) == false then
exhaustion.set(cid, 23003, 16)

local parameters = {cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5}
addEvent(onCastSpell1, 0000, parameters)
addEvent(onCastSpell2, 500, parameters)
addEvent(onCastSpell3, 1000, parameters)
addEvent(onCastSpell4, 1500, parameters)
addEvent(onCastSpell5, 2000, parameters)
local target = getCreatureTarget(cid)
doCreatureSetNoMove(target, true)
addEvent(fear, 0, target)
addEvent(fear, 500, target)
addEvent(fear, 1000, target)
addEvent(fear, 1500, target)
addEvent(fear, 2000, target)
addEvent(fear, 2500, target)
addEvent(allowMove, (feared_time*1000), cid, target)
else
doPlayerSendCancel(cid, "Cooldown for Doom is " ..exhaustion.get(cid, 23003).." seconds")
return false
end
return true
end

 

Agora entre em data/spells spells.xml na parte de attack adicione:

 

 

<instant name="Cursed" words="pronunciamentodaspell" lvl="45" mana="700" soul="5" prem="1" range="3" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="attack/doom.lua">

<vocation id="2"/>
<vocation id="6"/>
</instant>

 

Testado em um servidor 8.6 tfs 1.0.

Agradeço denovo ao xWhiteWolf e ao Tabz

Toda terça-feira um tópico novo:

Descanso para curar mana (Spell): https://tibiaking.com/forums/topic/94615-spell-descanso-para-curar-mana/

Peça sua spell (Suporte):                https://tibiaking.com/forums/topic/84162-peça-sua-spell/                        

Chuva de flechas (Spell):                https://tibiaking.com/forums/topic/72232-chuva-de-flechas-spell/

Doom (Spell):                                https://tibiaking.com/forums/topic/51622-doom-spell/

Utilização do VS Code (Infra)       https://tibiaking.com/forums/topic/94463-utilizando-o-visual-studio-code-notepad-nunca-mais/

SD com Combo (Spell):                 https://tibiaking.com/forums/topic/94520-sd-modificada/

Alteração attack speed (C++):        https://tibiaking.com/forums/topic/94714-c-attack-speed-spells-itens-e-onde-você-quiser/  

Bônus de Speed (NPC)                  https://tibiaking.com/forums/topic/94809-npc-concede-bônus-aos-players/
 

Postado

Código bonito, testado e funcionando.. ficou bem legal cara :DD 
Estou movendo pra área correta e te dando 1 ponto de reputação por trazer esse conteúdo pro TK! ^^

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado
  • Autor

Muito obrigado, só foi possivel fazer ele usando os outros scripts como base

Toda terça-feira um tópico novo:

Descanso para curar mana (Spell): https://tibiaking.com/forums/topic/94615-spell-descanso-para-curar-mana/

Peça sua spell (Suporte):                https://tibiaking.com/forums/topic/84162-peça-sua-spell/                        

Chuva de flechas (Spell):                https://tibiaking.com/forums/topic/72232-chuva-de-flechas-spell/

Doom (Spell):                                https://tibiaking.com/forums/topic/51622-doom-spell/

Utilização do VS Code (Infra)       https://tibiaking.com/forums/topic/94463-utilizando-o-visual-studio-code-notepad-nunca-mais/

SD com Combo (Spell):                 https://tibiaking.com/forums/topic/94520-sd-modificada/

Alteração attack speed (C++):        https://tibiaking.com/forums/topic/94714-c-attack-speed-spells-itens-e-onde-você-quiser/  

Bônus de Speed (NPC)                  https://tibiaking.com/forums/topic/94809-npc-concede-bônus-aos-players/
 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo