Ir para conteúdo
  • Cadastre-se

(Resolvido)[SCRIPT] Item para Last Hit


Ir para solução Resolvido por Vodkart,

Posts Recomendados

Alguém com um script que ao matar determinado monstro, quem der o último hit ganha automaticamente certo item? 

 

Porém , só quem deu o último hit. Já tentei  uns 4 scripts e em todos eles todos os players q atacam o monstro ganharam o item, e quero só quem der o último hit.

 

Desde já agradeço.

Link para o post
Compartilhar em outros sites
  • Solução
function onDeath(cid, corpse, deathList)
	if isPlayer(deathList[1]) then
		doPlayerAddItem(deathList[1], 2173, 1)  -- itemid, amount
		doSendMagicEffect(getPlayerPosition(deathList[1]), 12)
	end
	return true
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
Em 17/06/2016 at 19:43, Vodkart disse:

function onDeath(cid, corpse, deathList)
	if isPlayer(deathList[1]) then
		doPlayerAddItem(deathList[1], 2173, 1)  -- itemid, amount
		doSendMagicEffect(getPlayerPosition(deathList[1]), 12)
	end
	return true
end

 

 

Só uma duvida, onde declaro qual bixo esse script vai rodar? Porque é apenas para um especifico e tô com dificuldade...

Link para o post
Compartilhar em outros sites
2 horas atrás, Kemmlly disse:

 

Só uma duvida, onde declaro qual bixo esse script vai rodar? Porque é apenas para um especifico e tô com dificuldade...

No xml do monstro (data/monsters/script.xml)

depois de </flags>

Adicionar:

<scripts>
<event name="lastHit"/>
</script>

creaturescripts/scripts/login.lua

Registrar:

registerCreatureEvent(cid, "lastHit")

Sendo lastHit o nome que botou no creaturescripts.xml.

asdukeeh.jpg

Link para o post
Compartilhar em outros sites
24 minutos atrás, DukeeH disse:

No xml do monstro (data/monsters/script.xml)

depois de </flags>

Adicionar:


<scripts>
<event name="lastHit"/>
</script>

creaturescripts/scripts/login.lua

Registrar:


registerCreatureEvent(cid, "lastHit")

Sendo lastHit o nome que botou no creaturescripts.xml.

 

Esclareceu muita coisa, obrigado.

 

Porém, creio que a função onDeath não funcione no meu tfs 0.4, não da resultado nenhum quando mato o monstro. Na função onKill os scripts rodam tranquilamente.

 

Teria algum scrip de lastHit na função onKill?

Link para o post
Compartilhar em outros sites
Agora, Kemmlly disse:

 

Esclareceu muita coisa, obrigado.

 

Porém, creio que a função onDeath não funcione no meu tfs 0.4, não da resultado nenhum quando mato o monstro. Na função onKill os scripts rodam tranquilamente.

 

Teria algum scrip de lastHit na função onKill?

O script foi registrado no xml do monstro, no login.lua e no creaturescripts.xml? onDeath tem por padrão no tfs 0.4.

asdukeeh.jpg

Link para o post
Compartilhar em outros sites
3 minutos atrás, DukeeH disse:

O script foi registrado no xml do monstro, no login.lua e no creaturescripts.xml? onDeath tem por padrão no tfs 0.4.

 

	<event type="death" name="lastHit" event="script" value="homemdegelo.lua"/>

 

	registerCreatureEvent(cid, "lastHit")

 

	<script>
	<event name="homemdegelo"/>
	</script>

 

Confere pra mim se está tudo certo.

Link para o post
Compartilhar em outros sites
20 minutos atrás, Kemmlly disse:

 


	<event type="death" name="lastHit" event="script" value="homemdegelo.lua"/>

 


	registerCreatureEvent(cid, "lastHit")

 


	<script>
	<event name="homemdegelo"/>
	</script>

 

Confere pra mim se está tudo certo.

event name no xml do monstro tem que ser lastHit, que é o nome dado no creaturescripts.

asdukeeh.jpg

Link para o post
Compartilhar em outros sites
11 minutos atrás, DukeeH disse:

event name no xml do monstro tem que ser lastHit, que é o nome dado no creaturescripts.

 

Funcionando perfeitamente agora, muito obrigado.

 

Em 17/06/2016 at 19:43, Vodkart disse:

function onDeath(cid, corpse, deathList)
	if isPlayer(deathList[1]) then
		doPlayerAddItem(deathList[1], 2173, 1)  -- itemid, amount
		doSendMagicEffect(getPlayerPosition(deathList[1]), 12)
	end
	return true
end

 

 

Obrigado pelo script.

Uma ultima duvida antes de fechar o tópico:

 

Como faço para aparecer o nome do player que deu o ultimo HIT?

 

doBroadcastMessage("O jogador "..(deathList[1]).." deu o ultimo HIT no Homem De Gelo e ganhou um Vale Level e uma XP Potion!")

No lugar do nome do jogador está aparecendo um numero, provavelmente o ID dele.

Link para o post
Compartilhar em outros sites
doBroadcastMessage("O jogador "..getCreatureName(deathList[1]).." deu o ultimo HIT no Homem De Gelo e ganhou um Vale Level e uma XP Potion!")

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
15 horas atrás, Vodkart disse:

doBroadcastMessage("O jogador "..getCreatureName(deathList[1]).." deu o ultimo HIT no Homem De Gelo e ganhou um Vale Level e uma XP Potion!")

<3

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Desculpe por reviver o tópico, mas apenas hoje que voltei a mexer no ot percebi que quando mato um player também aparece a mensagem no broadcast e ganha os itens como se tivesse matado o monstro que declarei o script.

 

Adicionei essa condição:

if isPlayer(deathList[1]) and not isPlayer(cid, target) then

Fica a dica para quem passar pelo mesmo problema.

 

 

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

é porque vc está registrando o event no player tbm... o certo seria só adc no monstro.

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
1 hora atrás, di12345d disse:

Vodkart

tem como modificar pra quem tirar mais % do monstro ?

onde eu diciono o script

 


doBroadcastMessage("O jogador "..getCreatureName(deathList[1]).." deu o ultimo HIT no Homem De Gelo e ganhou um Vale Level e uma XP Potion!")

Para dar o prêmio a quem mais deu dano, use este:


function onDeath(cid, corpse, deathList)

    if isPlayer(deathList[2]) then
        doPlayerAddItem(deathList[2], 2173, 1)  -- itemid, amount
        doSendMagicEffect(getPlayerPosition(deathList[2]), 12)
    end
    
    return true
end

Retirado.

 

Skype: joaoxtibia85.

Link para o post
Compartilhar em outros sites
function onDeath(cid, corpse, deathList)

    if isPlayer(deathList[2]) then
        doPlayerAddItem(deathList[2], 2173, 1)  -- itemid, amount
        doSendMagicEffect(getPlayerPosition(deathList[2]), 12)
    end
    
    return true
end

 

não fucionou não deu erro na distro nem nada, só não recebeu o item.

oque eu to querendo dizer é que o player que tirar mais hp do boss, ganhe o item tendeu?

 

 

Skyforever

Editado por di12345d (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 11/07/2016 at 21:47, di12345d disse:

function onDeath(cid, corpse, deathList)

    if isPlayer(deathList[2]) then
        doPlayerAddItem(deathList[2], 2173, 1)  -- itemid, amount
        doSendMagicEffect(getPlayerPosition(deathList[2]), 12)
    end
    
    return true
end

 

não fucionou não deu erro na distro nem nada, só não recebeu o item.

oque eu to querendo dizer é que o player que tirar mais hp do boss, ganhe o item tendeu?

 

 

Skyforever

Registrou em login.lua e adicionou a tag no script do monstro?

Link para o post
Compartilhar em outros sites

sim sim, eu entendo o basico de scripts sei fazer a chamada certin mais não deu certo a unica coisa que o cara alterou foi o 

[2]

não entendi desse 2 para ser o player que remover mais dano do monstro ficar com o premio não entendi.

Kemmlly

Editado por di12345d (veja o histórico de edições)
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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo