Ir para conteúdo
  • Cadastre-se

(Resolvido)Spell de revidar ataque


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Olá, alguém consegue fazer uma spells pra mim? ela seria assim:

 

O player utiliza a spell, uchihagaeshi (exemplo) então, algum player ou monstros ataca ele, então ele não receberá o dano, o dano voltaram para quem o atacou, poderá ser ativada a cada 20 segundos, e durará apenas por 1 dano.

 

 

Link para o post
Compartilhar em outros sites

vo passa uma talk e tipo ele falo !reflect ai o dano voltara ..

 

function onSay(cid, words, param)
local cargas = 10 -- quantas vezes ira refletir
if getPlayerStorageValue(cid, 19273) <= 0 and getPlayerStorageValue(cid, 19274) - os.time() < 0 then
setPlayerStorageValue(cid, 19273, cargas)
setPlayerStorageValue(cid, 19274, os.time() + 300*1000)
else
doPlayerSendTextMessage(cid, 28, "Você só podera usar denovo daqui [".. getPlayerStorageValue(cid, 19274) - os.time() .. "] Segundos.")
end
return true
end
 
 
se quiser tira o tempo pra usa so avisa ai se qusie uma spells avisa +rep se ajudei 
Link para o post
Compartilhar em outros sites

Nossa a

 

 

vo passa uma talk e tipo ele falo !reflect ai o dano voltara ..

 

function onSay(cid, words, param)
local cargas = 10 -- quantas vezes ira refletir
if getPlayerStorageValue(cid, 19273) <= 0 and getPlayerStorageValue(cid, 19274) - os.time() < 0 then
setPlayerStorageValue(cid, 19273, cargas)
setPlayerStorageValue(cid, 19274, os.time() + 300*1000)
else
doPlayerSendTextMessage(cid, 28, "Você só podera usar denovo daqui [".. getPlayerStorageValue(cid, 19274) - os.time() .. "] Segundos.")
end
return true
end
 
 
se quiser tira o tempo pra usa so avisa ai se qusie uma spells avisa +rep se ajudei 

 

Se tem certeza que isso vai funfa, axo que falta algo pra completar isso.

Link para o post
Compartilhar em outros sites

olá, o personagem ativa a spell mas ele não está refletindo o ataque nem de monstros nem de players.

 

Obs. Mudei as storages de 3482101 para 3482104

obs2. Não aparece erro na distro.

Editado por matheuspeixoto12 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

qual a versão do seu server.. isso aí só funciona em 8.54+

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)

Link para o post
Compartilhar em outros sites

o meu é 8.54 e eu testei antes de te enviar

os storages pra se mudar são nessas linhas aqui, tanto no creaturescripts como na spells e no login.lua (3482101)

local config = { 
storage = 3482101,

local config = {
storage = 3482101,

if getPlayerStorageValue(cid, 3482101) ~= 0 then
        setPlayerStorageValue(cid, 3482101, 0) 

E AQUI VOCÊ PODE ALTERAR O STORAGE DO COOLDOWN (55964)

if os.time() - getPlayerStorageValue(cid, 55694) >= config.cooldown then
setPlayerStorageValue(cid, 55694, os.time())

doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55694))).." seconds.")

Todos tem que estar iguais pra dar certo e note que nenhum outro script que eu te passei pode usar o mesmo storage tanto pro cooldown como pra verificar a magia ;]

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)

Link para o post
Compartilhar em outros sites

tá refletindo qualquer dano

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)

Link para o post
Compartilhar em outros sites
  • 5 weeks later...

8.6 tfs 1.0 n funciona

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/
 

Link para o post
Compartilhar em outros sites
  • 3 months later...
  • 8 months later...
  • 11 months later...
Em 03/08/2014 ás 18:28, xWhiteWolf disse:

spells/scripts/especiais/uchihagaeshi.lua
 


local config = { 
storage = 3482101,
cooldown = 20,
effect1 = 29 --- efeito que sai qnd usa a spell
} 


function onCastSpell(cid, var)
  
if getPlayerStorageValue(cid, config.storage) == 1 then
doPlayerSendCancel(cid, "Your skill is already active.")
return false
end
  
  if os.time() - getPlayerStorageValue(cid, 55694) >= config.cooldown then
setPlayerStorageValue(cid, 55694, os.time())
doSendMagicEffect(getCreaturePosition(cid), config.effect1)
setPlayerStorageValue(cid, config.storage, 1)
doPlayerSendTextMessage(cid, 27, "You activated your skill, the next damage will be reflected.")
else
doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55694))).." seconds.")
return false
end
  
    return true
end

spells.xml


<instant name="testeTK" words="naruto3" lvl="16" mana="500" prem="1" aggressive="0" exhaustion="1000" needlearn="0" event="script" value="especiais/uchihagaeshi.lua">
</instant>


creaturescripts.xml:


<event type="statschange" name="uchihagaeshi" event="script" value="uchihagaeshi.lua"/>

creaturescripts\scripts\uchihagaeshi.lua:

 


local config = { 
storage = 3482101,
effect1 = 17, --- efeito que sai ao dar reflect
effect2 = 29 -- efeito que aparece na pessoa que levou reflect
} 

function onStatsChange(cid, attacker, type, combat, value)
if value >= 1 and (type == STATSCHANGE_HEALTHLOSS or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == STATSCHANGE_MANALOSS))  then
if getPlayerStorageValue(cid,config.storage) == 1 and isCreature(attacker) then
doSendAnimatedText(getCreaturePosition(attacker),"-"..value, 215)
doCreatureAddHealth(attacker, -value, true)
doCreatureSay(cid,"Uchihagaeshi!", 19)
doSendMagicEffect(getCreaturePosition(cid), config.effect1)
doSendMagicEffect(getCreaturePosition(attacker), config.effect2)
setPlayerStorageValue(cid,config.storage, 0)
return false
end
end
return true
end

creaturescripts\scripts\login.lua:
 


---------- UCHIHAGAESHI ----------------
registerCreatureEvent(cid, "uchihagaeshi")
if getPlayerStorageValue(cid, 3482101) ~= 0 then
        setPlayerStorageValue(cid, 3482101, 0) 
end


Se for editar storage tem que editar em todos os scripts

Na disto não dá nenhum erro, uso a magia e não repele nada, hit, poder.

Uso tfs 1.1 8.54, preciso muito desse script :/

EDIT--

Funcionando perfeito @xWhiteWolf, mais como aumento a quantidade de hits refletidos?

Editado por diarmaint (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

troca o storage, está 

storage = 3482101,

deixa 34821 (na spell e no creaturescript)

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)

Link para o post
Compartilhar em outros sites
  • 2 years later...
Em 03/08/2014 em 18:28, xWhiteWolf disse:

spells/scripts/especiais/uchihagaeshi.lua
 


local config = { 
storage = 3482101,
cooldown = 20,
effect1 = 29 --- efeito que sai qnd usa a spell
} 


function onCastSpell(cid, var)
  
if getPlayerStorageValue(cid, config.storage) == 1 then
doPlayerSendCancel(cid, "Your skill is already active.")
return false
end
  
  if os.time() - getPlayerStorageValue(cid, 55694) >= config.cooldown then
setPlayerStorageValue(cid, 55694, os.time())
doSendMagicEffect(getCreaturePosition(cid), config.effect1)
setPlayerStorageValue(cid, config.storage, 1)
doPlayerSendTextMessage(cid, 27, "You activated your skill, the next damage will be reflected.")
else
doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55694))).." seconds.")
return false
end
  
    return true
end

spells.xml


<instant name="testeTK" words="naruto3" lvl="16" mana="500" prem="1" aggressive="0" exhaustion="1000" needlearn="0" event="script" value="especiais/uchihagaeshi.lua">
</instant>


creaturescripts.xml:


<event type="statschange" name="uchihagaeshi" event="script" value="uchihagaeshi.lua"/>

creaturescripts\scripts\uchihagaeshi.lua:

 


local config = { 
storage = 3482101,
effect1 = 17, --- efeito que sai ao dar reflect
effect2 = 29 -- efeito que aparece na pessoa que levou reflect
} 

function onStatsChange(cid, attacker, type, combat, value)
if value >= 1 and (type == STATSCHANGE_HEALTHLOSS or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == STATSCHANGE_MANALOSS))  then
if getPlayerStorageValue(cid,config.storage) == 1 and isCreature(attacker) then
doSendAnimatedText(getCreaturePosition(attacker),"-"..value, 215)
doCreatureAddHealth(attacker, -value, true)
doCreatureSay(cid,"Uchihagaeshi!", 19)
doSendMagicEffect(getCreaturePosition(cid), config.effect1)
doSendMagicEffect(getCreaturePosition(attacker), config.effect2)
setPlayerStorageValue(cid,config.storage, 0)
return false
end
end
return true
end

creaturescripts\scripts\login.lua:
 


---------- UCHIHAGAESHI ----------------
registerCreatureEvent(cid, "uchihagaeshi")
if getPlayerStorageValue(cid, 3482101) ~= 0 then
        setPlayerStorageValue(cid, 3482101, 0) 
end


Se for editar storage tem que editar em todos os scripts

Como sempre ótimo script

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo