Ir para conteúdo
  • Cadastre-se

(Resolvido)Spells diferentes


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Olá vi em um ot server esses dias 2 spells que achei legal, alguém poderia fazer elas para mim?

 

1- kawarimi no jutsu defensive (o player usa a spell, dai o primeiro dano que ele levar, será anulado e aparecerá uma mensagem em branco em quem usou a spell - kawarimi -. Sendo que pode-se acumular, ex. se o player usar 20 vezes o kawarimi e depois tomar dano ele irá se esquivar ou absorver 20 danos, porém terá uma % para não ficar muito apelativo.)

 

2- Kawarimi no jutsu defensive (igual o de cima porém, envez de esquivar ou absorver o atk ele irá pular em cima de quem o atacou)

Link para o post
Compartilhar em outros sites

não entendi oque vc quis dizer com isso: se o player usar 20 vezes o kawarimi e depois tomar dano ele irá se esquivar ou absorver 20 danos, porém terá uma % para não ficar muito apelativo.

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

ele irá esquivar dos ataques, poderia ter mesmo uma % boa idéia rs.. 

Assim, terá o kawarimi no jutsu defensive e o kawarimi no jutsu attack, ambos esquivaram do ataque do inimigo com %, a diferença é apenas que o defensive irá apenas esquivar do ataque, ja o kawarimi no jutsu attack ao se esquivar, o player (atacado) 'pularia' em cima de quem o ataca-se e causaria um leve dano, funcionaria com monstros também.

Link para o post
Compartilhar em outros sites

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?

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

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)

Link para o post
Compartilhar em outros sites
  • 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)

Link para o post
Compartilhar em outros sites

Eu queria sabe se esse scprit funciona Só com player ou tb com bixo. Se for com bixo tb, tem como tira e coloka só para player.

Link para o post
Compartilhar em outros sites

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)

Link para o post
Compartilhar em outros sites

o kawarimi defensive funcionou certinho, mas o kawarimi attack ele faz a distro parar de funcionar, não aparece nenhum erro ela apenas para de funcionar, porque será?

Link para o post
Compartilhar em outros sites

creaturescripts.xml

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

login.lua

---------- Defensive 2 ----------------
registerCreatureEvent(cid, "defensive2")
if getPlayerStorageValue(cid, 3482102) < 0 then
        setPlayerStorageValue(cid, 3482102, 0) 
end

defensive2.lua:
 

local config = { 
storage = 3482102,
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

spells.xml:

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

kawarimiattack.lua

local config = { 
storage = 3482102,
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, 55700) >= config.cooldown then
setPlayerStorageValue(cid, 55700, 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, 55700))).." seconds.")
return false
end  
    return true
end

Quando eu falei em duplicar tudo e mudar os nomes/storages era isso que eu tava falando..

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

eu fiz isso e só para ter certeza refiz copiando o seu porém ainda da erro, a distro para de funcionar quando ele usa

Link para o post
Compartilhar em outros sites

você deve estar tentando usar vários creaturescripts no mesmo char e isso tá bugando seu server... testa cada um separadamente.

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
  • 1 year later...
Em 04/08/2014 at 00:16, xWhiteWolf disse:

creaturescripts.xml


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

login.lua


---------- Defensive 2 ----------------
registerCreatureEvent(cid, "defensive2")
if getPlayerStorageValue(cid, 3482102) < 0 then
        setPlayerStorageValue(cid, 3482102, 0) 
end

defensive2.lua:
 


local config = { 
storage = 3482102,
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

spells.xml:


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

kawarimiattack.lua


local config = { 
storage = 3482102,
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, 55700) >= config.cooldown then
setPlayerStorageValue(cid, 55700, 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, 55700))).." seconds.")
return false
end  
    return true
end

Quando eu falei em duplicar tudo e mudar os nomes/storages era isso que eu tava falando..

Man voce poderia editar essa script assim, voce ativa a Spell e fica 5 segundos sem receber nenhum dano e fica um effect em cima do player( so funfa em player e não em mobs.)

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo