Postado Junho 17, 2014 10 anos 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: 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Junho 18, 2014 10 anos 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 Junho 18, 2014 10 anos por CreatServer (veja o histórico de edições)
Postado Junho 22, 2014 10 anos 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... ~~ [show Off] Lolksky ~~
Postado Junho 22, 2014 10 anos 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
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.