EX
pedido

Script De Not Lose Loot

Por exorcist, 09 de ago. de 2012 em Scripts

nao prder loot not neero102
script
17
2.9k
exorcistE
09 de agosto de 2012 às 16:30

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 Agosto 9 por neero102

MulizeuM
10 de agosto de 2012 às 09:12
function onKill(cid, target, lastHitKiller)
if isPlayer(target) == TRUE and isCreature(lastHitKiller) then
doSetCreatureDropLoot(cid, false)
return TRUE
end
end

Editado Agosto 10 por mulizeu

exorcistE
10 de agosto de 2012 às 13:29

Desculpe mais não funciono :/

LuckOakeL
10 de agosto de 2012 às 20:07

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 Agosto 10 por LuckOake

Piabeta KunP
11 de agosto de 2012 às 05:37

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 Agosto 11 por PiabetaMan01

exorcistE
11 de agosto de 2012 às 13:05

obrigado

LuckOake vou testas aqui se der eu te reputo

 

Ainda não funciona kk mais se ajuda o meu server é 8.60

LuckOakeL
11 de agosto de 2012 às 13:07

@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.

OneshotO
11 de agosto de 2012 às 13:12

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.

LuckOakeL
11 de agosto de 2012 às 13:43

@Oneshot

 

Bom, eu parcialmente entendi o que você falou, mas tou meio perdido sobre o que devo fazer pra arrumar o script. Se puder dar uma mão, eu agradeço.

OneshotO
11 de agosto de 2012 às 16:39

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 Agosto 11 por Oneshot

LuckOakeL
11 de agosto de 2012 às 16:44

@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í?

OneshotO
11 de agosto de 2012 às 16:50

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 Agosto 11 por Oneshot

LuckOakeL
11 de agosto de 2012 às 17:17

Hm... Ok, entendi. Obrigado, REP + pela explicação.

exorcistE
12 de agosto de 2012 às 13:33

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 Agosto 12 por neero102

LuckOakeL
12 de agosto de 2012 às 18:43

@neero102

 

Deu algum erro no distro?