Ir para conteúdo
  • 0

Script De Not Lose Loot


exorcist

Pergunta

Cara se não for pedir muito, eu queria que voces fizesse para min um script que:

 

 

 

Quando o player estivesse SEM aol e morrese para algum monstro, ele não iria perder o loot dele

 

 

porem se ele estivesse sem aol e moresse para um PLAYER ele continuaria perdendo o seu loot

 

 

Mas se ele estivesse com aol e moresse para um player, não perderia

 

 

 

|-------------------|

por favor só vocês pode salvar minha vida!.

att : neero102

|rep quem conseguir |

Editado por neero102
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0
function onKill(cid, target, lastHitKiller)
if isPlayer(target) == TRUE and isCreature(lastHitKiller) then
doSetCreatureDropLoot(cid, false)
return TRUE
end
end

Editado por mulizeu
Link para o comentário
Compartilhar em outros sites

  • 0

creaturescripts.xml:

 

<event type="preparedeath" name="MonsterKill" event="script" value="monsterkill.lua"/>

 

monsterkill.lua:

 

 

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)

if isPlayer(cid) and isMonster(mostDamageKiller) then

doCreatureSetDropLoot(cid, false)

end

return true

end

 

 

Adicione isso no final do login.lua:

 

registerCreatureEvent(cid, "MonsterKill")

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

amigo vc poderia adptar esse script e por ele por comando para que o player nao perca apenas loot para players e monstros isso sem usar as blessings?

 

se sim Agradeço desde já!

Editado por PiabetaMan01
Link para o comentário
Compartilhar em outros sites

  • 0

@neero102

 

Pode não estar funcionando pelos seguinte motivo: Você colocou o registerCreatureEvent no lugar errado do login.lua

 

Ou então, você testou errado. O player não vai perder o loot apenas se foi o mostro que deu mais damage nele.

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade, LuckOake, depende muito da versão do servidor usada. Nos servidores mais atuais, a função onPrepareDeath e a função onDeath retornam uma tabela com todas as criaturas que estavam atacando na hora da execução do evento:

 


onDeath(cid, corpse, deathList)
onPrepareDeath(cid, deathList)

 

Antigamente elas retornavam dois parâmetros, um que retornava a criatura que causou maior dano e o outro que retornava a criatura que deu o último ataque, como usado em seus scripts.

 

O erro então pode estar vindo daí.

 

Um grande abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

Por exemplo,

 


function onPrepareDeath(cid, deathList)
for _, killer in ipairs(deathList) do
	if isMonster(killer) then
		doCreatureSetDropLoot(cid, false)
		break
	end
end
return true
end

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0

@neero102

 

Tenta assim:

function onPrepareDeath(cid, deathList)

for _, killer in ipairs(deathList) do

if isPlayer(cid) and isMonster(killer) then

doCreatureSetDropLoot(cid, false)

break

end

end

return true

end

 

@Oneshot

 

Me explica aquele break alí?

Link para o comentário
Compartilhar em outros sites

  • 0

O break é uma palavra-chave que para um loop, no caso, o loop causado pelo for ali no script.

 

Eu usei o for junto com ipairs para percorrer a tabela deathlist retornada pelo creaturescript e quando ele achar um jogador na tabela, eu comando a interrupção da procura por jogadores através do break. Simples assim.

 

Abraço.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0

luck, eu vou testa aqui e se der eu te reputo kk

 

@Edit

 

Desculpe mais não funciono kk, esperando uma resposta

 

 

putz mano 1000 desculpas, eu esqueci de dizer que não é para perder o aol para monster

Editado por neero102
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...