Zmovir 41 Postado Maio 1, 2012 Share Postado Maio 1, 2012 (editado) Créditos Skyforever(eu) e Vodkart Como funciona? É um script que manda uma mensagem animada dependendo do hit do player Script Primeiramente vá em /data/creaturescripts/scripts login.lua adicione essa linha la registerCreatureEvent(cid, "Hitmsg") em creaturescripts.xml adicione essas 2 linhas: <event type="statschange" name="HitMessage" event="script" value="hitmsg.lua"/> <event type="combat" name="Hitmsg" event="script" value="hitmsg.lua"/> depois na mesma pasta crie um arquivo chamado hitmsg e adicione isso dentro: function onStatsChange(cid, attacker, type, combat, value)local tabble = { [1] = {max = 15,msg = "Lower"}, [16] = {max= 50,msg = "Good"}, [51] = {max= 100,msg = "Mega"}, [101] = {max= 250,msg = "Epic"}, [251] = {max= 300,msg = "Perfect"}, [301] = {max= 600,msg = "Supreme"}, [601] = {max= 2000,msg = "Divine"}, [2001] = {max= 100000,msg = "Hs"} } if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) then if value == 0 then doSendAnimatedText(getCreaturePosition(attacker), "MISS", math.random(1,255)) else for min, hit in pairs(tabble) do if value >= min and value <= hit.max then local color = math.random(1,255) doSendAnimatedText(getCreaturePosition(attacker), hit.msg, color) local pos2 = {x=getCreaturePosition(attacker).x+1,y=getCreaturePosition(attacker).y,z=getCreaturePosition(attacker).z} doSendAnimatedText(pos2, "HIT", color) end end end elseif type == STATSCHANGE_HEALTHGAIN then return false end return true end function onCombat(cid, target) registerCreatureEvent(target, "HitMessage") return true end Versão com chance: function onStatsChange(cid, attacker, type, combat, value)local chance = 25 -- aqui e chance esta em 25% de funcionar local tabble = { [1] = {max = 15,msg = "Lower"}, [16] = {max= 50,msg = "Good"}, [51] = {max= 100,msg = "Mega"}, [101] = {max= 250,msg = "Epic"}, [251] = {max= 300,msg = "Perfect"}, [301] = {max= 600,msg = "Supreme"}, [601] = {max= 2000,msg = "Divine"}, [2001] = {max= 100000,msg = "Hs"} } if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) then if (chance > math.random(1, 100)) then if value == 0 then doSendAnimatedText(getCreaturePosition(attacker), "MISS", math.random(1,255)) else for min, hit in pairs(tabble) do if value >= min and value <= hit.max then local color = math.random(1,255) doSendAnimatedText(getCreaturePosition(attacker), hit.msg, color) local pos2 = {x=getCreaturePosition(attacker).x+1,y=getCreaturePosition(attacker).y,z=getCreaturePosition(attacker).z} doSendAnimatedText(pos2, "HIT", color) end end end end elseif type == STATSCHANGE_HEALTHGAIN then return false end return true end function onCombat(cid, target) registerCreatureEvent(target, "HitMessage") return true end Explicando local tabble = {[1] = {max = 15,msg = "Lower"}, [16] = {max= 50,msg = "Good"}, [51] = {max= 100,msg = "Mega"}, [101] = {max= 250,msg = "Epic"}, [251] = {max= 300,msg = "Perfect"}, [301] = {max= 600,msg = "Supreme"}, [601] = {max= 2000,msg = "Divine"}, [2001] = {max= 100000,msg = "Hs"} } Em colchetes e o dano minimo em max o dano máximo em msg a mensagem que ira mandar coloque só a primeira mensagem exemplo se você quiser colocar "waka hit" coloque só waka o hit ira sozinho Versão com recompensa function onStatsChange(cid, attacker, type, combat, value)local chance = 25 -- aqui e chance esta em 25% de funcionar local tabble = { --- min hit,maxhit,mensagem,recompensa,quantidade,storage nao mecha,quantos hits desses ele tera que acertar para ganhar o premio [1] = {max = 15,msg = "Lower", itemid = 2159 , quantidade = 5, storage = 187260, storqua = 1000}, [16] = {max= 50,msg = "Good", itemid = 2159 , quantidade = 10, storage = 187262, storqua = 750}, [51] = {max= 100,msg = "Mega", itemid = 2159 , quantidade = 15, storage = 187263, storqua = 500}, [101] = {max= 250,msg = "Epic", itemid = 2159 , quantidade = 50, storage = 187264, storqua = 250}, [251] = {max= 300,msg = "Perfect", itemid = 2159 , quantidade = 75, storage = 187265, storqua = 150}, [301] = {max= 600,msg = "Supreme", itemid = 2160 , quantidade = 1, storage = 187266, storqua = 100}, [601] = {max= 2000,msg = "Divine", itemid = 2160 , quantidade = 5, storage = 187267, storqua = 50}, [2001] = {max= 100000,msg = "Hs", itemid = 2160 , quantidade = 100, storage = 187268, storqua = 5} } if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) then if (chance > math.random(1, 100)) then if value == 0 then doSendAnimatedText(getCreaturePosition(attacker), "MISS", math.random(1,255)) else for min, hit in pairs(tabble) do if value >= min and value <= hit.max then local contagem = getPlayerStorageValue(attacker, hit.storage) if contagem == -1 then setPlayerStorageValue(attacker, hit.storage, 0) end local color = math.random(1,255) doSendAnimatedText(getCreaturePosition(attacker), hit.msg, color) local pos2 = {x=getCreaturePosition(attacker).x+1,y=getCreaturePosition(attacker).y,z=getCreaturePosition(attacker).z} doSendAnimatedText(pos2, "HIT", color) setPlayerStorageValue(attacker, hit.storage, contagem+1) if contagem == hit.storqua then doPlayerAddItem(attacker, hit.itemid, hit.quantidade) setPlayerStorageValue(attacker, hit.storage, 0) end end end end end elseif type == STATSCHANGE_HEALTHGAIN then return false end return true end function onCombat(cid, target) registerCreatureEvent(target, "HitMessage") return true end Explicando versão com recompensa em item id e o id do item que ele vai receber ,em quantidade e a quantidade de item,em storage não mecha,em storqua e quantos hits ele precisara dar para ganhar a recompensa Imagen: Editado Maio 1, 2012 por Zmovir Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/ Compartilhar em outros sites More sharing options...
alldakie 160 Postado Maio 1, 2012 Share Postado Maio 1, 2012 Bacana, já vi isso em um servidor e realmente e muito bacana, +REP Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1252031 Compartilhar em outros sites More sharing options...
Beeki 284 Postado Maio 1, 2012 Share Postado Maio 1, 2012 this is cool man, Adorei, reputado! Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1252058 Compartilhar em outros sites More sharing options...
Zmovir 41 Postado Maio 1, 2012 Autor Share Postado Maio 1, 2012 Obrigado por comentaram Atualizado adicionada versão com recompensa se você da tantos hits daquele tipo você ganha um item editavel no script Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1252139 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Maio 3, 2012 Share Postado Maio 3, 2012 gostei da versão com recompensa, criativo o script! parabéns Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1253338 Compartilhar em outros sites More sharing options...
Lolksky 17 Postado Maio 3, 2012 Share Postado Maio 3, 2012 Gostaria de saber: - como deixa TODAS mensagens apenas na cor vermelha; - e como tiro a mensagem "HIT". valeu Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1253540 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Maio 3, 2012 Share Postado Maio 3, 2012 Gostaria de saber: - como deixa TODAS mensagens apenas na cor vermelha; - e como tiro a mensagem "HIT". valeu 1° deixe assim: local color = TEXT_COLOR_RED 2° apague: local pos2 = {x=getCreaturePosition(attacker).x+1,y=getCreaturePosition(attacker).y,z=getCreaturePosition(attacker).z} doSendAnimatedText(pos2, "HIT", color) Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1253545 Compartilhar em outros sites More sharing options...
Lolksky 17 Postado Maio 4, 2012 Share Postado Maio 4, 2012 (editado) Se não for incômodo, gostaria de pedir se teria como por uma mensagem par ao player quando ele recebese a recompensa '-' @Vodkart eu troquei lá por local color = TEXT_COLOR_RED agora as mensagens só aparecem em cor preta '-' Editado Maio 4, 2012 por Lolksky Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1254065 Compartilhar em outros sites More sharing options...
Zmovir 41 Postado Maio 4, 2012 Autor Share Postado Maio 4, 2012 doPlayerSendTextMessage(cid,28,"Você ganhou ".. hit.quantidade .. " ".. getItemNameById(hit.itemid) .. " por dar "..hit.storqua.." "..hit.msg.." hits, parabéns!") Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1254069 Compartilhar em outros sites More sharing options...
BrunooMaciell 85 Postado Maio 4, 2012 Share Postado Maio 4, 2012 Mt lgl cara gostei ^^ nao do rep+ agr pq nao posso da mais amanha cedo concerteza ;D Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1254073 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Maio 4, 2012 Share Postado Maio 4, 2012 Se não for incômodo, gostaria de pedir se teria como por uma mensagem par ao player quando ele recebese a recompensa '-' @Vodkart eu troquei lá por local color = TEXT_COLOR_RED agora as mensagens só aparecem em cor preta '-' kk deixa assim: local color = 145 Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1254077 Compartilhar em outros sites More sharing options...
Lolksky 17 Postado Maio 6, 2012 Share Postado Maio 6, 2012 Se não for incômodo, gostaria de pedir se teria como por uma mensagem par ao player quando ele recebese a recompensa '-' @Vodkart eu troquei lá por local color = TEXT_COLOR_RED agora as mensagens só aparecem em cor preta '-' kk deixa assim: local color = 145 funfo \o/ REP Teria como colocar pra tipo ir somando nas menssagens: good x1, good x2, good x3 e assim vai até mudar o tipo de "classificação" ou até ganhar a recompensa... e outra coisa, fazer com que não ganhe recompensa em determinados bichos (ex.: trainer), se não o player fica rico só treinando '-' Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1254165 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Maio 6, 2012 Share Postado Maio 6, 2012 Se não for incômodo, gostaria de pedir se teria como por uma mensagem par ao player quando ele recebese a recompensa '-' @Vodkart eu troquei lá por local color = TEXT_COLOR_RED agora as mensagens só aparecem em cor preta '-' kk deixa assim: local color = 145 funfo \o/ REP Teria como colocar pra tipo ir somando nas menssagens: good x1, good x2, good x3 e assim vai até mudar o tipo de "classificação" ou até ganhar a recompensa... e outra coisa, fazer com que não ganhe recompensa em determinados bichos (ex.: trainer), se não o player fica rico só treinando '-' dá sim, esse negócio de ir somando é só colocar para retornar a storage, o ruim é que a função é limitada, acho que só pode 10 letras por aí, ai o texto ia sair pela metade =s e o outro tbm dá para fazer, só colocar em uma tabela os nomes de monstro que não somam hit ex: block = {"Monk","Rat","Training Monk"} vou falar com o zmolvir para ele atualizar o script =d Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1255307 Compartilhar em outros sites More sharing options...
Zmovir 41 Postado Maio 6, 2012 Autor Share Postado Maio 6, 2012 (editado) Block coloque essa linha encima de local chance: local block = {"Monk","Rat","Training Monk"} troque essa linha: ]if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) then por essa: if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) and not isInArray(block, getCreatureName(cid)) then Editado Maio 6, 2012 por Zmovir Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1255313 Compartilhar em outros sites More sharing options...
Elexonic 15 Postado Maio 20, 2012 Share Postado Maio 20, 2012 usar esse script, mas quando um jogador ataca o outro e este não pode ser curada e não recuperar a sua vida. como eu posso corrigi-lo? function onStatsChange(cid, attacker, type, combat, value)local tabble = { [281] = {max= 300,msg = "Epic"}, [300] = {max= 350,msg = "Perfect"}, [350] = {max= 450,msg = "Divine"}, [450] = {max= 900,msg = "Destroyer"} } if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) then if value == 0 then doSendAnimatedText(getCreaturePosition(attacker), "MISS", math.random(1,255)) else for min, hit in pairs(tabble) do if value >= min and value <= hit.max then local color = math.random(1,255) doSendAnimatedText(getCreaturePosition(attacker), hit.msg, color) local pos2 = {x=getCreaturePosition(attacker).x+1,y=getCreaturePosition(attacker).y,z=getCreaturePosition(attacker).z} doSendAnimatedText(pos2, "HIT", color) end end end elseif type == STATSCHANGE_HEALTHGAIN then return false end return true end function onCombat(cid, target) registerCreatureEvent(target, "HitMessage") return true end Link para o comentário https://xtibia.com/forum/topic/185397-creaturescripts-hit-message/#findComment-1262458 Compartilhar em outros sites More sharing options...
Posts Recomendados