Ir para conteúdo

Featured Replies

  • Respostas 14
  • Visualizações 3.4k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • 1-  creaturescripts.xml <event type="statschange" name="defensive1" event="script" value="defensive1.lua"/> login.lua ---------- Defensive 1 ---------------- registerCreatureEvent(cid, "

  • oque eu perguntei é oque vc quis dizer com essa %... é tipo 30% de chance de esquivar (não tomar dano) e remover 1 carga da spell ou seria algo como esquivar apenas 30% do dano?

  • vou fazer e colocar um máximo que o player pode stackar pra evitar que o cara deixe no bot stackando infinitos dodges hahaha.. vou colocar 20 por padrão

Postado

vou fazer e colocar um máximo que o player pode stackar pra evitar que o cara deixe no bot stackando infinitos dodges hahaha.. vou colocar 20 por padrão

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
  • Solução

1- 


creaturescripts.xml

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

login.lua

---------- Defensive 1 ----------------
registerCreatureEvent(cid, "defensive1")
if getPlayerStorageValue(cid, 3482101) < 0 then
        setPlayerStorageValue(cid, 3482101, 0) 
end

creaturescripts\scripts\defensive1.lua

local config = { 
storage = 3482101,
effect1 = 2, --- efeito ao ser atacado estando invulnerável
percent = 30 -- porcentagem de esquivar
} 


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) > 0 and isCreature(attacker) and math.random(1,100) <= config.percent then
doSendMagicEffect(getCreaturePosition(cid), config.effect1)
doSendAnimatedText(getCreaturePosition(cid), "-kawarimi-", 215)
setPlayerStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage) - 1)
doPlayerSendTextMessage(cid, 20, "You have now ".. getPlayerStorageValue(cid, config.storage) .." charge(s).")
return false
end
end
return true
end


2-

 

creaturescripts\scripts\defensive2.lua
 

local config = { 
storage = 3482101,
effect1 = 2, --- efeito ao ser atacado e teleportar
percent = 30 -- porcentagem de esquivar
} 


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) > 0 and isCreature(attacker) and math.random(1,100) <= config.percent then
doSendMagicEffect(getCreaturePosition(cid), config.effect1)
doTeleportThing(cid, getCreaturePosition(attacker), false)
doTargetCombatHealth(cid, attacker, 1, -50, -100, 255)
setPlayerStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage) - 1)
doPlayerSendTextMessage(cid, 20, "You have now ".. getPlayerStorageValue(cid, config.storage) .." charge(s).")
return true
end
end
return true
end

(o resto é a mesma coisa, só muda os storages e os nomes né)

Agora pra ambos vc vai fazer essa mesma spell:

spells.xml

<instant name="kawarimi no jutsu defensive" words="kawarimi no jutsu defensive" lvl="16" mana="500" prem="1" aggressive="0" exhaustion="1000" needlearn="0" event="script" value="especiais/kawarimi.lua">
<vocation id="5"/>
<vocation id="6"/>
<vocation id="7"/>
<vocation id="8"/>
</instant>

data\spells\scripts\especiais\kawarimi.lua

local config = { 
storage = 3482101,
cooldown = 3,  --- tempo entre um uso e outro
maxcharge = 20, --- máximo de cargas que dá pra acumular
effect1 = 29 -- efeito que sai ao falar a spell
} 




function onCastSpell(cid, var)
  
    if getPlayerStorageValue(cid, config.storage) >= 20 then
doPlayerSendCancel(cid, "You already reached the max of charges for this skill.")
return false
end
  
  if os.time() - getPlayerStorageValue(cid, 55697) >= config.cooldown then
setPlayerStorageValue(cid, 55697, os.time())
doSendMagicEffect(getCreaturePosition(cid), config.effect1)
setPlayerStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage) + 1)
doPlayerSendTextMessage(cid, 27, "You have now ".. getPlayerStorageValue(cid, config.storage) .." charge(s).")
else
doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55697))).." seconds.")
return false
end  
    return true
end


Lembrando que se vc quiser ter ambas as spells vc precisa duplicar os scripts e mudar os storages/nomes

 

 

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

muda isCreature(attacker) pra isPlayer(attacker)

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)

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.6k

Informação Importante

Confirmação de Termo