Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] Magia que retira skill por tempo


Ir para solução Resolvido por ernaix69,

Posts Recomendados

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 13)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 5)

 

local combatX = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(combatX, CONDITION_PARAM_TICKS, 6000)
setConditionParam(combatX, CONDITION_PARAM_SKILL_SHIELDPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_SKILL_MELEEPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_STAT_MAGICLEVELPERCENT, 80)
setCombatCondition(combat, combatX)

function onCastSpell(cid, var)
local waittime = 2.0 -- Tempo de exhaustion
local storage = 45673 -- não mecha

if exhaustion.check(cid, storage) then
    doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, storage)).." segundos(s) para usar novamente.")
    return false
end
exhaustion.set(cid, storage, waittime)
    return doCombat(cid, combat, var)
end
 

Spoiler

<instant name="nomedamagia" words="palavra dita pra usar a magia" lvl="50" mana="250" prem="0" selftarget="1" aggressive="1" exhaustion="400" groups="1,400" blockwalls="1" needlearn="0" script="localdoscript.lua">
        <vocation id="3"/>
        <vocation id="4"/>
    </instant>

Testa ai rapidao, pra q eu possa arrumar se der alguma error

coloquei ja com a funçao pra vc alterar o tempo de exhaust q vc quiser determinar a essa spell

Editado por ernaix69 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
10 minutos atrás, ernaix69 disse:
  Ocultar conteúdo

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 13)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 5)

local xCombat = createCombatObject()
setCombatParam(xCombat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)


local combatX = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(combatX, CONDITION_PARAM_TICKS, 6000)
setConditionParam(combatX, CONDITION_PARAM_SKILL_SHIELDPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_SKILL_MELEEPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_STAT_MAGICLEVELPERCENT, 80)
setCombatCondition(xCombat, combatX)

function onCastSpell(cid, var)
local waittime = 2.0 -- Tempo de exhaustion
local storage = 45673 -- não mecha

if exhaustion.check(cid, storage) then
    doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, storage)).." segundos(s) para usar novamente.")
    return false
end
exhaustion.set(cid, storage, waittime)
    return doCombat(cid, combat, var)
end

Testa ai rapidao, pra q eu possa arrumar se der alguma error

coloquei ja com a funçao pra vc alterar o tempo de exhaust q vc quiser determinar a essa spell

 

não acontece nada

Link para o post
Compartilhar em outros sites
Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 13)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 5)

local combatX = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(combatX, CONDITION_PARAM_TICKS, 6000)
setConditionParam(combatX, CONDITION_PARAM_SKILL_SHIELDPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_SKILL_MELEEPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_STAT_MAGICLEVELPERCENT, 80)
setCombatCondition(combat, combatX)

function onCastSpell(cid, var)
local waittime = 2.0 -- Tempo de exhaustion
local storage = 45673 -- não mecha

if exhaustion.check(cid, storage) then
    doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, storage)).." segundos(s) para usar novamente.")
    return false
end
exhaustion.set(cid, storage, waittime)
    return doCombat(cid, combat, var)
end
 

 

Editado por ernaix69 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
6 minutos atrás, ernaix69 disse:
  Ocultar conteúdo

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 13)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 5)

local combatX = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(combatX, CONDITION_PARAM_TICKS, 6000)
setConditionParam(combatX, CONDITION_PARAM_SKILL_SHIELDPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_SKILL_MELEEPERCENT, 80)
setConditionParam(combatX, CONDITION_PARAM_STAT_MAGICLEVELPERCENT, 80)
setCombatCondition(combat, combatX)

function onCastSpell(cid, var)
local waittime = 2.0 -- Tempo de exhaustion
local storage = 45673 -- não mecha

if exhaustion.check(cid, storage) then
    doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, storage)).." segundos(s) para usar novamente.")
    return false
end
exhaustion.set(cid, storage, waittime)
    return doCombat(cid, combat, var)
end
 

 

 

Agora funcionou mas tem alguma maneira de por 10 Segundos para parar o effeito da magia?
E também será que dá pra por por 10 segundos 1 effect saindo do personagem ? [Effect : 10]
E também tem como me explicar uma coisa : ali fala que é pra remover 80 mas só remove 15 de ml , gloves remove só 2 etc..
eu queria que só removesse 20 de skill all, se o jogador não tiver vai ficar 0 de skill saca?

Link para o post
Compartilhar em outros sites

ta em % ele ai ta tirando 20% da skill atual, exemplo: se o jogador tiver 10 de glove ele ira tirar 2.
questao da duraçao vc pode aumentar em ticks, onde tem 6000 vc poe 10000.
quanto ao efeito eu teria q fazer um addevent e eu ainda to aprendendo entao nao arriscaria agora.

@OinomedRellik é mais vantajoso vc deixar em % pq vai influenciar em quem tem mais treino e talz, mas se quiser eu faço a alteraçao pra diminuir os 20.
tem outra coisa tbm, quando vc zera a skill do char, ele nao vai conseguir usar magia.

Link para o post
Compartilhar em outros sites
3 minutos atrás, ernaix69 disse:

ta em % ele ai ta tirando 20% da skill atual, exemplo: se o jogador tiver 10 de glove ele ira tirar 2.
questao da duraçao vc pode aumentar em ticks, onde tem 6000 vc poe 10000.
quanto ao efeito eu teria q fazer um addevent e eu ainda to aprendendo entao nao arriscaria agora.

@OinomedRellik é mais vantajoso vc deixar em % pq vai influenciar em quem tem mais treino e talz, mas se quiser eu faço a alteraçao pra diminuir os 20.
tem outra coisa tbm, quando vc zera a skill do char, ele nao vai conseguir usar magia.

 

Pode por pra remover 20 de skill all

Link para o post
Compartilhar em outros sites

-20 de skills fixo

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 10)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 5)

local combatX = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(combatX, CONDITION_PARAM_TICKS, 10000)

setConditionParam(combatX, CONDITION_PARAM_SUBID, 13)
setConditionParam(combatX, CONDITION_PARAM_SKILL_SHIELD, -20)
setConditionParam(combatX, CONDITION_PARAM_SKILL_DISTANCE, -20)
setConditionParam(combatX, CONDITION_PARAM_SKILL_MELEE, -20)
setConditionParam(combatX, CONDITION_PARAM_STAT_MAGICLEVEL, -20)
setCombatCondition(combat, combatX)

function onCastSpell(cid, var)
local waittime = 2.0 -- Tempo de exhaustion
local storage = 45673 -- não mecha

if exhaustion.check(cid, storage) then
    doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, storage)).." segundos(s) para usar novamente.")
    return false
end
exhaustion.set(cid, storage, waittime)
    return doCombat(cid, combat, var)
end
 

fiz mais uma ediçao pra ele nao interferir nos valores dos buffs.

Editado por ernaix69 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
8 minutos atrás, ernaix69 disse:

-20 de skills fixo

  Ocultar conteúdo

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 10)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 5)

local combatX = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(combatX, CONDITION_PARAM_TICKS, 10000)
setConditionParam(combatX, CONDITION_PARAM_SKILL_SHIELD, -20)
setConditionParam(combatX, CONDITION_PARAM_SKILL_DISTANCE, -20)
setConditionParam(combatX, CONDITION_PARAM_SKILL_MELEE, -20)
setConditionParam(combatX, CONDITION_PARAM_STAT_MAGICLEVEL, -20)
setCombatCondition(combat, combatX)

function onCastSpell(cid, var)
local waittime = 2.0 -- Tempo de exhaustion
local storage = 45673 -- não mecha

if exhaustion.check(cid, storage) then
    doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, storage)).." segundos(s) para usar novamente.")
    return false
end
exhaustion.set(cid, storage, waittime)
    return doCombat(cid, combat, var)
end
 

 

 

Funcionou, só o effect lá que não foi
Eu queria saber se tem como por um nome encima do target [DEBUFF], será que consegue?

Editado por OinomedRellik (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução
Spoiler

local text = "DEBUFF!" -- msg

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 5)

local combatX = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(combatX, CONDITION_PARAM_TICKS, 10000)
setConditionParam(combatX, CONDITION_PARAM_SUBID, 13)
setConditionParam(combatX, CONDITION_PARAM_SKILL_SHIELd, -20)
setConditionParam(combatX, CONDITION_PARAM_SKILL_DISTANCE, -20)
setConditionParam(combatX, CONDITION_PARAM_SKILL_MELEE, -20)
setConditionParam(combatX, CONDITION_PARAM_STAT_MAGICLEVEL, -20)
setCombatCondition(combat, combatX)

function onCastSpell(cid, var)
local waittime = 2.0 -- Tempo de exhaustion
local storage = 45673 -- não mecha

if exhaustion.check(cid, storage) then
    doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, storage)).." segundos(s) para usar novamente.")
    return false
end
exhaustion.set(cid, storage, waittime)
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
            doSendAnimatedText(position1, text, 190)
    return doCombat(cid, combat, var)
end
 

coloquei pra subir a msg no alvo quando vc usar a magia.

Link para o post
Compartilhar em outros sites
Em 12/09/2019 em 14:01, ernaix69 disse:
  Mostrar conteúdo oculto

local text = "DEBUFF!" -- msg

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 5)

local combatX = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(combatX, CONDITION_PARAM_TICKS, 10000)
setConditionParam(combatX, CONDITION_PARAM_SUBID, 13)
setConditionParam(combatX, CONDITION_PARAM_SKILL_SHIELd, -20)
setConditionParam(combatX, CONDITION_PARAM_SKILL_DISTANCE, -20)
setConditionParam(combatX, CONDITION_PARAM_SKILL_MELEE, -20)
setConditionParam(combatX, CONDITION_PARAM_STAT_MAGICLEVEL, -20)
setCombatCondition(combat, combatX)

function onCastSpell(cid, var)
local waittime = 2.0 -- Tempo de exhaustion
local storage = 45673 -- não mecha

if exhaustion.check(cid, storage) then
    doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, storage)).." segundos(s) para usar novamente.")
    return false
end
exhaustion.set(cid, storage, waittime)
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
            doSendAnimatedText(position1, text, 190)
    return doCombat(cid, combat, var)
end
 

coloquei pra subir a msg no alvo quando vc usar a magia.

 

Apresentei um bug, quando o jogador utiliza essa skill ela faz os jogadores não usar as magias
mas se eu coloco o percent funciona normal.

Link para o post
Compartilhar em outros sites
Agora, ernaix69 disse:

@OinomedRellik foi oq eu te falei ali em cima. se vc zera o valor de alguma skill, o jogador nao vai conseguir usar magia. '-'

 

O mais engraçado é que os persom tinha bastante skill e mesmo assim n usava kk, mas tem problemas n, eu queria que aparecesse aquela mensagem Debuff tipo , se o jogador estivesse sobre o effect do debuff encima dele ficaria saindo o nome debuff e aquele effect que você colocou, mas de resto já tá top mas se você não conseguir não tem problema, mas seria bom kk

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