function onKill(cid, target, lastHitKiller) if isPlayer(target) == TRUE and isCreature(lastHitKiller) then doSetCreatureDropLoot(cid, false) return TRUE end end
Script De Not Lose Loot
By exorcist, 09 de ago. de 2012 in Scripts
info
Group: Barão
Joined: 05/08/10
Posts: 218
Reputation: +86
Gender: Masculino

Edited Agosto 10 by mulizeu
info
Group: Cavaleiro
Joined: 13/06/11
Posts: 172
Reputation: +6

Desculpe mais não funciono ![]()
info
Group: Marquês
Joined: 22/07/12
Posts: 1.1k
Reputation: +400
Gender: Masculino
Tibia Character: Luck Oake

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")
Edited Agosto 10 by LuckOake
info
Group: Herói
Joined: 23/12/08
Posts: 2.4k
Reputation: +359
Gender: Masculino
Tibia Character: Gordo Warlike

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á!
Edited Agosto 11 by PiabetaMan01
info
Group: Cavaleiro
Joined: 13/06/11
Posts: 172
Reputation: +6

obrigado
LuckOake vou testas aqui se der eu te reputo
Ainda não funciona kk mais se ajuda o meu server é 8.60
info
Group: Marquês
Joined: 22/07/12
Posts: 1.1k
Reputation: +400
Gender: Masculino
Tibia Character: Luck Oake

@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.
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.
info
Group: Marquês
Joined: 22/07/12
Posts: 1.1k
Reputation: +400
Gender: Masculino
Tibia Character: Luck Oake

@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.
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
Edited Agosto 11 by Oneshot
info
Group: Marquês
Joined: 22/07/12
Posts: 1.1k
Reputation: +400
Gender: Masculino
Tibia Character: Luck Oake

@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í?
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.
Edited Agosto 11 by Oneshot
info
Group: Marquês
Joined: 22/07/12
Posts: 1.1k
Reputation: +400
Gender: Masculino
Tibia Character: Luck Oake

Hm... Ok, entendi. Obrigado, REP + pela explicação.
info
Group: Cavaleiro
Joined: 13/06/11
Posts: 172
Reputation: +6

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
Edited Agosto 12 by neero102





info
Group: Cavaleiro
Joined: 13/06/11
Posts: 172
Reputation: +6
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 |
Edited Agosto 9 by neero102