Postado Fevereiro 12, 2015 10 anos 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 . 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 Fevereiro 13, 2015 10 anos 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Fevereiro 13, 2015 10 anos 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.