Ir para conteúdo
  • Cadastre-se

Piso que seta condição de POX ao jogador.


Posts Recomendados

Galera, alguém pode fazer um piso pra mim assim:

 

Ao player pisar nele, ele deixará ele com POX por 30min(configurável) impossibilitando ele de deslogar... e após esses 30min ele morre... é como um veneno.

 

 

TFS 1.1 10.76

 

 

Agradeço a quem puder ajudar!

 

See~

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

Galera, alguém pode fazer um piso pra mim assim:

 

Ao player pisar nele, ele deixará ele com POX por 30min(configurável) impossibilitando ele de deslogar... e após esses 30min ele morre... é como um veneno.

 

 

TFS 1.1 10.76

 

 

Agradeço a quem puder ajudar!

 

See~

 

Em movements/scripts crie um arquivo chamado tilepox.lua e coloque isso dentro:

 

local config = {
    time = 30,            --Tempo em minutos.
    minHit = -10,         --Dano mínimo.
    maxHit = -120,        --Dano máximo.
    startValue = -5,      --Valor do primeiro dano.
    hitInterval = 3000,   --Intervalo entre os danos.
    storage = 6545        --Storage usada pelo jogador.
}

local condition = Condition(CONDITION_POISON)
condition:setParameter(CONDITION_PARAM_TICKS, config.time*1000*60)
condition:setParameter(CONDITION_PARAM_DELAYED, true)
condition:setParameter(CONDITION_PARAM_MINVALUE, config.minHit)
condition:setParameter(CONDITION_PARAM_MAXVALUE, config.maxHit)
condition:setParameter(CONDITION_PARAM_STARTVALUE, config.startValue)
condition:setParameter(CONDITION_PARAM_TICKINTERVAL, config.hitInterval)
condition:setParameter(CONDITION_PARAM_FORCEUPDATE, true)



function onStepIn(player, item, position, lastPosition, fromPosition, toPosition, actor)
    if not player:isPlayer() then
        return true
    end
    
    player:addCondition(condition)
    player:setStorageValue(config.storage, 1) 
    
    addEvent(function()
        if player:isPlayer() then
            player:addHealth(-player:getHealth()) 
        end
    end, config.time*1000*60)
    
    return true
end

Tag do movements.xml se quiser com Actionid:

<movevent event="StepIn" actionid="ID DA ACTIONID AQUI" script="tilepox.lua"/>

Tag do movements.xml se quiser com Uniqueid:

 

<movevent event="StepIn" uniqueid="ID DO UNIQUEID AQUI" script="tilepox.lua"/>

Em creaturescripts/scripts crie um arquivo chamado tilepox.lua e coloque isso dentro:

local storage = 6545        --Storage usada pelo jogador, a storage deve ser a mesma que usada no tile de POX.

function onLogin(player)
    if player:getStorageValue(storage) >= 1 then
        player:setStorageValue(storage, 0)
    end
    return true
end


function onLogout(player)
    if player:getStorageValue(storage) >= 1 then
        player:sendCancelMessage("You cannot logout, while is poisoned.")
        return false
    end
    return true
end

Tag creaturescripts:

	<event type="login" name="PoxLogin" script="tilepox.lua"/>
	<event type="logout" name="PoxLogout" script="tilepox.lua"/>

Obs: não testei.

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Cara funciona perfeitamente, no lugar da pox teria como colocar para mandar o efeito de ID 6 enquanto ele estiver com o pox?

BUG:

Depois de um tempo com o player com a pox o OT buga e fecha.

Editado por Lumus (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 2 weeks later...
 

Em movements/scripts crie um arquivo chamado tilepox.lua e coloque isso dentro:
 

local config = {
time = 30, --Tempo em minutos.
minHit = -10, --Dano mínimo.
maxHit = -120, --Dano máximo.
startValue = -5, --Valor do primeiro dano.
hitInterval = 3000, --Intervalo entre os danos.
storage = 6545 --Storage usada pelo jogador.
}

local condition = Condition(CONDITION_POISON)
condition:setParameter(CONDITION_PARAM_TICKS, config.time*1000*60)
condition:setParameter(CONDITION_PARAM_DELAYED, true)
condition:setParameter(CONDITION_PARAM_MINVALUE, config.minHit)
condition:setParameter(CONDITION_PARAM_MAXVALUE, config.maxHit)
condition:setParameter(CONDITION_PARAM_STARTVALUE, config.startValue)
condition:setParameter(CONDITION_PARAM_TICKINTERVAL, config.hitInterval)
condition:setParameter(CONDITION_PARAM_FORCEUPDATE, true)



function onStepIn(player, item, position, lastPosition, fromPosition, toPosition, actor)
if not player:isPlayer() then
return true
end

player:addCondition(condition)
player:setStorageValue(config.storage, 1)

addEvent(function()
if player:isPlayer() then
player:addHealth(-player:getHealth())
end
end, config.time*1000*60)

return true
end

Tag do movements.xml se quiser com Actionid:

<movevent event="StepIn" actionid="ID DA ACTIONID AQUI" script="tilepox.lua"/>

Tag do movements.xml se quiser com Uniqueid:
 

<movevent event="StepIn" uniqueid="ID DO UNIQUEID AQUI" script="tilepox.lua"/>

Em creaturescripts/scripts crie um arquivo chamado tilepox.lua e coloque isso dentro:

local storage = 6545 --Storage usada pelo jogador, a storage deve ser a mesma que usada no tile de POX.

function onLogin(player)
if player:getStorageValue(storage) >= 1 then
player:setStorageValue(storage, 0)
end
return true
end


function onLogout(player)
if player:getStorageValue(storage) >= 1 then
player:sendCancelMessage("You cannot logout, while is poisoned.")
return false
end
return true
end

Tag creaturescripts:

    <event type="login" name="PoxLogin" script="tilepox.lua"/>
    <event type="logout" name="PoxLogout" script="tilepox.lua"/>

Obs: não testei.

 

Snowsz?

Editado por Lumus (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 4 weeks later...

Poderia postar prints do bug que aparece na distro?

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

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