Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Eae galera do TK, vim trazer pra vocês um script do Fox World que já me pediram no suporte um monte de vezes, é a magma boots absorvendo metade do dano e podendo ser usado a cada 2 minutos. 
Pra quem não entendeu tenta acompanhar aqui nas screenshots:


10443156_1447596875491792_64677660730807




10321068_1447596888825124_25644963458160

 

Nesse caso o player iria tomar 1124 de dano, mas ele tomou só 562 e a bota absorveu a outra metade do dano!


Bom, vamos ao script:

em actions.xml adicione:

<action itemid="7891" script="magmaboots.lua"/>

agora em actions\scripts\magmaboots.lua adicione:

local config = {
storagetempo = 19500, -- storage que contará os segundos
storageskill = 19501, -- storage que vai dizer se a skill está ativada ou desativada
itemid = 7891, -- id da boots
itemplace = 8, -- feet
tempo = 2*60 -- tempo em segundo (2 minutos)
}


function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, config.storageskill) <= 0 and (getPlayerSlotItem(cid, config.itemplace).itemid == config.itemid) then
if getPlayerStorageValue(cid, config.storagetempo) - os.time() <= 0 then
timenow = os.time() + config.tempo
setPlayerStorageValue(cid, config.storagetempo, timenow)
setPlayerStorageValue(cid, config.storageskill, 1)
doPlayerSendTextMessage(cid, 23, "You activated your "..getItemNameById(config.itemid)..", it's ready to absorb damages!")  
for j= 0,(config.tempo -1) do
addEvent(function() 
if isPlayer(cid) then
doPlayerSendCancel(cid, "Time until next use: ".. config.tempo - j .." second(s)")
end
 end, (50+(j*1000))) 
end
else
doPlayerSendTextMessage(cid, 23, "You have to wait ".. getPlayerStorageValue(cid, config.storagetempo) - os.time() .." second(s) until you can use it again!")  
end
else
doPlayerSendTextMessage(cid, 23, "Your "..getItemNameById(config.itemid).." is already active or it isn't equiped.")  
end
return true
end

em creaturescripts.xml adicione essa linha:

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

agora crie o script magmaboots.lua em creaturescripts\scripts e adicione o seguinte nele:

local config = {
percent = 0.5, --- porcentagem do dano que irá levar (0.5 = 50%)
storageskill = 19501, -- storage da skill
itemplace = 8, -- lugar q ela deve estar (8 é o feet)
itemid = 7891, -- id do item 
damagemin = 100 --- minimo de dano que deve ser pro player absorver 
}


function onStatsChange(cid, attacker, type, combat, value)
if type == STATSCHANGE_HEALTHLOSS and isCreature(attacker) and value >= config.damagemin then
if getPlayerSlotItem(cid, config.itemplace).itemid == config.itemid then
if getPlayerStorageValue(cid, config.storageskill) >= 1 then
value = math.ceil(value*(config.percent))
setPlayerStorageValue(cid, config.storageskill, getPlayerStorageValue(cid, config.storageskill)-1) 
doTargetCombatHealth(attacker, cid, combat, -value, -value, 255)
doPlayerSendTextMessage(cid, 23, "Your "..getItemNameById(config.itemid).." absorved "..value.." of damage.")  
return false
end
end
end
return true
end
feito isso você só vai ter que ir no login.lua que fica em creaturescripts\scripts e adicionar essas linhas antes do ultimo return true:
----------MAGMA BOOTS DO FOX----------------
registerCreatureEvent(cid, "magmaboots")
if getPlayerStorageValue(cid, 19501) ~= 0 then
        setPlayerStorageValue(cid, 19501, 0) 
end
---------------------------------------

Não tem muito oque configurar, no actions você pode editar isso daqui:

local config = {
storagetempo = 19500, -- storage que contará os segundos
storageskill = 19501, -- storage que vai dizer se a skill está ativada ou desativada
itemid = 7891, -- id da boots
itemplace = 8, -- local em que o item deve estar equipado (8 é o feet)
tempo = 2*60 -- tempo em segundo (2 minutos)
}

 

 

e em creaturescripts vc pode editar isso daqui:

local config = {
percent = 0.5, --- porcentagem do dano que irá levar (0.5 = 50%)
storageskill = 19501, -- storage da skill
itemplace = 8, -- lugar q ela deve estar (8 é o feet)
itemid = 7891, -- id do item 
damagemin = 100 --- minimo de dano que deve levar para o player absorver.
}

 

Se vc ativar ela e deslogar, vc vai precisar ativar de novo quando logar.

Testei em 8.54 então se não funcionar no seu server 12.0 nao é problema meu, procura as funções que mudaram e faça as alterações necessárias.
Não me peça pra adaptar o script pra 7.51, eu não sou programmer e não sei fazer isso. 

Bom é isso, qualquer coisa manda nos comentários que eu tento ajudar ou explicar melhor. Abraço pra vocês  ;)

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)

  • Respostas 20
  • Visualizações 2.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • tem como arruma a boots pra fica ativa sozinha e não precisa ativar ela clikando nela?

  • vcs são um público dificil... se eu faço da forma que acho mais interessante vcs pedem pra eu fazer igualzinho é no foxworld, se eu faço igualzinho vcs querem diferente

Postado

Agr sò falta cria o Gacier robe Funcionar  A cada dano acima de 300 que levar, há uma chance de 15% de dar slow e status de gelo em uma pequena área

Editado por CreatServer (veja o histórico de edições)

Postado

Car,a eu nao tnendi muito bem a aprte do tempo ... a cada 2 minutos, 1 damage q o player  tomar, será absorvido parte do dano, é isso?
 

E, por favor, poderia dizer quais sã os valores dos slots: cabeça, peito, shield etc...

Postado

Muito bom, é sempre bom ver gente nova trazendo conteúdo :3

Bruno Carvalho / Ex-Administrador TibiaKing

[email protected]

 

Em 26/12/2016 em 03:47, Spraypaint disse:

A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une.

-miltinho

 

wMwSJFE.png?1

 

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

Informação Importante

Confirmação de Termo