Ir para conteúdo
  • Cadastre-se

CreatureScript%2FGlobalEvent%2FMoveMent Amuleto do Caçador (reduz dano proveniente de monstros)


Posts Recomendados

tHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.png

AMULETO WHOHOOO

 

 

 

É um amuleto que, quando está equipado, nega x% do dano provido de monstros.

 

(data/creaturescripts/scripts/amulet.lua

http://pastebin.com/w5wzaXyL(revisão - recomendado)

http://pastebin.com/LW3Z34v9 (versão inicial)

 

(data/creaturescripts/scripts/login.lua)

Adicione esta linha:
registerCreatureEvent(cid, "Amulet")
 

(data/creaturescripts/creaturescripts.xml)

Adicione esta linha:
<event type="statschange" name="Amulet" event="script" value="amulet.lua"/>
 
E pronto!
No script a variável "porcentagem" possui o valor 40 como padrão, que é a porcentagem do dano que será BLOQUEADA. Ou seja, receberá ainda 60% do dano
Na variável pt_br = false, troque false por true para que a mensagem seja exibida em português
 

 

obs. o ID do amuleto é o 2218

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

koe

Link para o post
Compartilhar em outros sites

só tem um problema, o parametro 'value' desse callback (statschange) é o valor do dano bruto que será recebido (já com as defesas descontadas) e quando vc faz outro combat, ele irá novamente descontar as defesas e o dano já ficará menor por conta disso. 

Suponha que eu tome 300 de dano mas esteja com uma ótima defesa, irei tomar apenas 100 de dano. O value terá 100 como valor, ao fazer outro combat com 100 de dano eu irei tomar apenas 34 por conta das defesas. NOTE que eu nem utilizei a porcentagem, se não o dano ficaria extremamente inferior.

Agora com a porcentagem:
digamos que minha defesa me faz tomar apenas 1/3 do dano (não sei quanto é ao certo, precisaria fazer testes pois isso varia de cada TFS), se eu tomo 300, o value será 100. Agora eu multiplico por 0.4 e irei tomar só 40 de dano mas daí vc faz outro combat pra esse 40 e com os descontos de defesa eu tomo só 14 de dano ao invés de 60. Pra arrumar isso você tem que ver o quão mais fraco está o dano através de prints e verificando quanto ele diz no print e quanto ele realmente remove na vida, e aí achar uma constante pra multiplicar esse valor e tornar ele correto.

Outra coisa, sugiro trocar essas linhas:

doPlayerSendTextMessage(cid,MESSAGE_STATUS_DEFAULT,"Protegeu ".. (100 - porcentagem).."% de "..value.." ("..blocked..")")
doPlayerSendCancel(cid,"Protegeu "..(100 - porcentagem).."% de "..value.." ("..blocked..")")

Porque você mesmo disse que se tiver 40 ele protege 60 ;]

Alias, faça o teste, veja se o blocked que aparece na mensagem é o quanto você perde de life!

Por ultimo, essa linha está errada:
 

doAreaCombatHealth(attacker, combat, getCreaturePosition(cid), 0, -blocked, -blocked, -1)

 

o correto seria:

doAreaCombatHealth(attacker, combat, getCreaturePosition(cid), {1}, -blocked, -blocked, 255)

pois o parametro area necessita de uma área (um array). E o efeito -1 não existe, se você quer instruir que o combat não deve ter efeitos você tem que usar o CONST_ME_NONE que é representado pelo último dígito de informação do byte (255)

Mas eu sugiro que você use target combat e não area combat, 

doTargetCombatHealth(cid, target, type, min, max, effect)

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)

Link para o post
Compartilhar em outros sites

@xWhiteWolf, olá, obrigado pela resposta ^^

Sobre essa parada de defesa, ela só funciona contra o ataque físico dos bichos (o dano "elemental" não é descontado na armadura, só no absorbPercentElement). Pensando nisso, criei um monstro com dano físico fixo de 100. Com o amuleto protegendo 40%, o dano era fixo de 60 (sem defesa alguma). Adicionei um demon helmet. Dano médio: 55. Adicionei um demon shield. Dano médio: 48. Adicionei uma demon armor. Dano médio: 40. Adicionei uma demon legs. Dano médio: 30. Dá pra concluir que sua primeira teoria não é aplicada realmente, pois o dano não ficou extremamente baixo (considerando que era apenas 100 de dano e era um demon set)

Portanto, acho que não há problema nessa parte.

 

Sobre as linhas de texto: removi a doPlayerSendTextMessage e pus a linha do doPlayerSendCancel abaixo da linha do doTargetCombatHealth para que a mensagem seja exibida ao invés da mensagem padrão do tfs

 

Sobre o doAreaCombatHealth: ("o correto seria"?!?! Mas a minha linha já funciona o_O). O parâmetro não precisa de uma área em array, dá pra usar 0 para que fique somente em um SQM, ou 1 para que fique um círculo de 9, e assim por diante

Além disso, o -1 significa que efeito nenhum será mostrado, deixando apenas o efeito do melee ou das magias que já seriam mostrados normalmente, pra ficar algo natural e não um efeito aparecendo toda hora que você perde 1 de hp. (E funciona)

 

(/\ tudo baseado no tfs 0.4)

--- // ---

 

De qualquer forma, modifiquei um pouco o script, acho que ficou melhor

(aceito que ponham do pastebin pra cá com identação, pois não sei como hehe)

koe

Link para o post
Compartilhar em outros sites

agora ficou bem melhor, nice script bwt. 
Só lembrando que aqui

doTargetCombatHealth(attacker, cid, combat, -new_dmg, -new_dmg, -1)

 

tinha que ser

doTargetCombatHealth(attacker, cid, combat, -new_dmg, -new_dmg, 255)

-1 não existe então você tá simplesmente causando um erro na sua função, por isso some o efeito. No seu tfs pode não dar nada mas em outros tem grande chance de dar erros. 255 é o efeito invisivel padrão, melhor prevenir doque remediar haha

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)

Link para o post
Compartilhar em outros sites

 

tHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.pngtHmgbaG.png

AMULETO WHOHOOO

 

 

 

É um amuleto que, quando está equipado, nega x% do dano provido de monstros.

 

(data/creaturescripts/scripts/amulet.lua

http://pastebin.com/w5wzaXyL(revisão - recomendado)

http://pastebin.com/LW3Z34v9 (versão inicial)

 

(data/creaturescripts/scripts/login.lua)

Adicione esta linha:
registerCreatureEvent(cid, "Amulet")
 

(data/creaturescripts/creaturescripts.xml)

Adicione esta linha:
<event type="statschange" name="Amulet" event="script" value="amulet.lua"/>
 
E pronto!
No script a variável "porcentagem" possui o valor 40 como padrão, que é a porcentagem do dano que será BLOQUEADA. Ou seja, receberá ainda 60% do dano
Na variável pt_br = false, troque false por true para que a mensagem seja exibida em português
 

 

obs. o ID do amuleto é o 2218

 

Amigo, achei muito foda essa ideia, testei aqui e funcionou apenas com players, funcionou perfeitamente com players, apesar de que as vezes aparece que a porcentagem protegida foi de: 1b~e. Acho que o valor é muito grande e os números bugam, porém além desse bugzinho, com monstros o amuleto não funcionou, teria como arrumar isso? Ficaria muito grato.

Link para o post
Compartilhar em outros sites

Ai vei n sou da staff nen nada mas eu axo que ja vi um topico bastante paresido so axo

 
 
se te ajudei mi ajude com um like
 
post-154810-0-74779100-1428114524_thumb.        post-154810-0-22067300-1428114531_thumb.          post-154810-0-83198200-1427326965.gif
post-154810-0-48855100-1429834735.gif
 
 
 
 
0 comentários:

 

Link para o post
Compartilhar em outros sites
  • 1 month later...

Não tem como fazer um que funcione também para as magias dos monstros e não somente para o dano físico? Por favor!

Mas funciona também para as magias... 

koe

Link para o post
Compartilhar em outros sites

Mas funciona também para as magias... 

Obrigado!

 

 

Obs.: Eu testei o amuleto contra um monstro com ataque fixo de 100, só que ele só diminuia o dano quando eu colocava a armadura... Não acho que esteja  funcionando comigo..

Cara, eu coloquei a tag

 

 

<attribute key="preventDrop" value="1" />

E a tag

 

 

<attribute key="slotType" value="necklace" />

Para se tornar um item amuleto, e ter a propriedade do AOL, só que eu não quero que quando o player morra, ele perca o amuleto também... Tem como deixar ele infinito? Nenhum tutorial aqui no TK conseguiu me ajudar..

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