Ir para conteúdo
  • Cadastre-se

(Resolvido)Pedido de 2 Movements


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

1 script básico que heala mana em 300 e life em 500 a cada 5 segundos com X item equipado no slot de ring, e sai um text no char +500 e +300, igual ou parecido dos print.

 

1 script basico  movements que ao passar por ele, heala a cada 3 segundos 100 de life, e 50 de mana por 10 min (600 segundos)

1.png

2.png

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

Ring

Em movements/scripts, crie um arquivo.lua:

 

Spoiler

local t = {
healtime = 10, -- intervalo para healar
hp = 500,
mp = 300
}

function onEquip(cid, item, slot)
   doPlayerHeal(cid, t.hp, t.mp, t.healtime, item.itemid)
    return true
end
 
function doPlayerHeal(cid, hp, mp, time, item)
if isPlayer(cid) and getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == item then
    doCreatureAddHealth(cid, hp)
    doCreatureAddMana(cid, mp)
    doSendAnimatedText(getPlayerPosition(cid), "+"..hp, COLOR_LIGHTGREEN)
    addEvent(doSendAnimatedText,600,getPlayerPosition(cid), "+"..mp, COLOR_DARKPURPLE)
    addEvent(doPlayerHeal, time*1000, cid, hp, mp, time, item) 
end
return true
end 

 

 

 

Adicione a tag no movements.xml: <movevent type="Equip" itemid="ID_DO_RING slot="ring" event="script" value="NOME_DO_ARQUIVO.lua"/>

 

Piso

Em movements/scripts, crie um arquivo.lua:

 

Spoiler

local t = {
hp = 100,
mp = 50, 
interval = 3, -- intervalo para healar
duration = 10 -- duração do efeito em minutos
}

function onStepIn(cid, item, fromPosition, itemEx, toPosition)
    if isPlayer(cid) then
        doCreatureSay(cid, "Regeneration Activated.", TALKTYPE_ORANGE_1)
        doSendMagicEffect(toPosition, CONST_ME_HOLYAREA)
        setConditionTime(cid, {t.hp, t.mp}, t.interval, t.duration)
    end
return true
end

function setConditionTime(cid, rise, interval, duration)
    local condition = createConditionObject(CONDITION_REGENERATION)
    setConditionParam(condition, CONDITION_PARAM_BUFF, true)
    setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, rise[1])
    setConditionParam(condition, CONDITION_PARAM_MANAGAIN, rise[2])
    setConditionParam(condition, CONDITION_PARAM_MANATICKS, interval*1000)
    setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, interval*1000)
    setConditionParam(condition, CONDITION_PARAM_TICKS, duration*60*1000)
    doAddCondition(cid, condition)
return true  
end

 

 

 

Adicione a tag no movements.xml: <movevent type="StepIn" actionid="ACTION_ID_DO_PISO" event="script" value="NOME_DO_ARQUIVO.lua"/>

Contato:

 

Link para o post
Compartilhar em outros sites
6 horas atrás, Dwarfer disse:

Ring

Em movements/scripts, crie um arquivo.lua:

 

  Ocultar conteúdo


local t = {
healtime = 10, -- intervalo para healar
hp = 500,
mp = 300
}

function onEquip(cid, item, slot)
   doPlayerHeal(cid, t.hp, t.mp, t.healtime, item.itemid)
    return true
end
 
function doPlayerHeal(cid, hp, mp, time, item)
if isPlayer(cid) and getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == item then
    doCreatureAddHealth(cid, hp)
    doCreatureAddMana(cid, mp)
    doSendAnimatedText(getPlayerPosition(cid), "+"..hp, COLOR_LIGHTGREEN)
    addEvent(doSendAnimatedText,600,getPlayerPosition(cid), "+"..mp, COLOR_DARKPURPLE)
    addEvent(doPlayerHeal, time*1000, cid, hp, mp, time, item) 
end
return true
end 

 

 

 

Adicione a tag no movements.xml: <movevent type="Equip" itemid="ID_DO_RING slot="ring" event="script" value="NOME_DO_ARQUIVO.lua"/>

 

Piso

Em movements/scripts, crie um arquivo.lua:

 

  Ocultar conteúdo


local t = {
hp = 100,
mp = 50, 
interval = 3, -- intervalo para healar
duration = 10 -- duração do efeito em minutos
}

function onStepIn(cid, item, fromPosition, itemEx, toPosition)
    if isPlayer(cid) then
        doCreatureSay(cid, "Regeneration Activated.", TALKTYPE_ORANGE_1)
        doSendMagicEffect(toPosition, CONST_ME_HOLYAREA)
        setConditionTime(cid, {t.hp, t.mp}, t.interval, t.duration)
    end
return true
end

function setConditionTime(cid, rise, interval, duration)
    local condition = createConditionObject(CONDITION_REGENERATION)
    setConditionParam(condition, CONDITION_PARAM_BUFF, true)
    setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, rise[1])
    setConditionParam(condition, CONDITION_PARAM_MANAGAIN, rise[2])
    setConditionParam(condition, CONDITION_PARAM_MANATICKS, interval*1000)
    setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, interval*1000)
    setConditionParam(condition, CONDITION_PARAM_TICKS, duration*60*1000)
    doAddCondition(cid, condition)
return true  
end

 

 

 

Adicione a tag no movements.xml: <movevent type="StepIn" actionid="ACTION_ID_DO_PISO" event="script" value="NOME_DO_ARQUIVO.lua"/>

 

O primeiro script esta perfeito, agora o não sei o que deu, mas o 2 script, ele drenou a vida (não deu erros no distro) adsuiaHHASUihsuiSau,

 

local t = {
hp = 100,
mp = 50, 
interval = 3, -- intervalo para healar
duration = 10 -- duração do efeito em minutos
}

function onStepIn(cid, item, fromPosition, itemEx, toPosition)
    if isPlayer(cid) then
        doCreatureSay(cid, "Regeneration Activated.", TALKTYPE_ORANGE_1)
        doSendMagicEffect(toPosition, CONST_ME_HOLYAREA)
        setConditionTime(cid, {t.hp, t.mp}, t.interval, t.duration)
    end
return true
end

function setConditionTime(cid, rise, interval, duration)
    local condition = createConditionObject(CONDITION_REGENERATION)
    setConditionParam(condition, CONDITION_PARAM_BUFF, true)
    setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, rise[1])
    setConditionParam(condition, CONDITION_PARAM_MANAGAIN, rise[2])
    setConditionParam(condition, CONDITION_PARAM_MANATICKS, interval*1000)
    setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, interval*1000)
    setConditionParam(condition, CONDITION_PARAM_TICKS, duration*60*1000)
    doAddCondition(cid, condition)
return true  
end

 

Posso aproveitar para pedir mais 1? Lamento não ter informado, é o ultimo relacionado.

 

Um script também de ring, que ao estar utilizando, possibilita que o jogador não receba um dano entre 10 hits, por exemplo. 

Está com o ring equipado, ai, existe a possibilidade de tomar 10 hits do oponente, 1 dele você absorve e converte o dano no oponente, tipo efeito de reflexão. (caso seja dificil, a opção de apenas absorver e não sofrer danos esta bom)

Sem título.png

Link para o post
Compartilhar em outros sites
51 minutos atrás, Dwarfer disse:

Veja se você não configurou algo errado, acabei de testar aqui e está funcionando corretamente.

 

Não mudei, agora só copiei e colei o que você fez, apenas não heala, sai o efeito e a mensagem, mas o heal não funciona

Link para o post
Compartilhar em outros sites
3 horas atrás, JcA disse:

 

Não mudei, agora só copiei e colei o que você fez, apenas não heala, sai o efeito e a mensagem, mas o heal não funciona

 

Verifique se o actionid do piso já não está sendo utilizado por outro script.Como disse, está tudo certo aí. Esse último não tem nenhum efeito e mensagem. Você pode estar se confundindo.

Contato:

 

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