Qualquer player que morrer cai um coração certo ?
se for isso acho que posso ajudar
creatures xml add isso
<event type="death" name="DeathBroadcast" event="script" value="deathBroadcast.lua"/>
dentro da script cria um arquivo LUA chamada deathBroadcast
dentro coloca isso
local config = {
affected = 10, -- how many players (deathAssits) from table deathList should this script be executed for?
killStorageValue = 3943,
deathStorageValue = 3944,
-- commands for the texts (those inside of ||, example: |KILLS| to show skills): KILLS, KILLERNAME, TARGETNAME
rewardItem = {
use = true,
itemid = ID DO CORAÇÃO AQUI,
minLevel = false, -- false if you don't want any level req
minLevelDiff = false, -- false if you don't want any level diff req (negative numbers allowed).
},
killMessage = {
use = true,
text = "You owned |TARGETNAME|! You have now |KILLERKILLS| kills!",
messageClass = MESSAGE_STATUS_CONSOLE_RED
},
broadcastMessage = {
use = true,
minLevel = false, -- false if you don't want any level req
minLevelDiff = false, -- false if you don't want any level diff req (negative numbers allowed).
text = "|KILLERNAME| [|KILLERLEVEL|] just killed |TARGETNAME| [|TARGETLEVEL|]!",
messageClass = MESSAGE_STATUS_WARNING
},
killerAnimation = {
use = true,
text = "KILL+!", -- Only 9 letters! No "commands" here.
color = 144
},
targetAnimation = {
use = true,
text = "Owned!", -- Only 9 letters! No "commands" here.
color = 180
}
}
function onDeath(cid, corpse, deathList)
for i = 1, math.min(config.affected, getConfigInfo('deathAssistCount')) do
local killer = deathList[i]
if(isPlayer(killer) == TRUE) then
local targetKills = math.max(0, getPlayerStorageValue(cid, config.killStorageValue)) + 1
local targetDeaths = math.max(0, getPlayerStorageValue(cid, config.deathStorageValue)) + 1
local killerKills = math.max(0, getPlayerStorageValue(killer, config.killStorageValue)) + 1
local killerDeaths = math.max(0, getPlayerStorageValue(killer, config.deathStorageValue)) + 1
setPlayerStorageValue(killer, config.killStorageValue, targetKills)
setPlayerStorageValue(cid, config.deathStorageValue, targetDeaths)
local killerLevel = getPlayerLevel(killer)
local targetLevel = getPlayerLevel(cid)
local levelDiff = targetLevel - killerLevel
local values = {
["KILLERKILLS"] = killerKills,
["KILLERDEATHS"] = killerDeaths,
["KILLERNAME"] = getCreatureName(killer),
["KILLERLEVEL"] = killerLevel,
["TARGETKILLS"] = targetKills,
["TARGETDEATHS"] = targetDeaths,
["TARGETNAME"] = getCreatureName(cid),
["TARGETLEVEL"] = targetLevel
}
function formateString(str)
return(str:gsub("|([A-Z]+)|", (function(a) return values[a] end)))
end
if(config.rewardItem.use and (not config.rewardItem.minLevel or targetLevel >= config.rewardItem.minLevel) and (not config.rewardItem.minLevelDiff or levelDiff >= config.rewardItem.minLevelDiff)) then
local uid = doPlayerAddItem(killer, config.rewardItem.itemid, 1)
end
if(config.killMessage.use) then
doPlayerSendTextMessage(killer, config.killMessage.messageClass, formateString(config.killMessage.text))
end
if(config.broadcastMessage.use and (not config.broadcastMessage.minLevel or getPlayerLevel(cid) >= config.broadcastMessage.minLevel) and (not config.broadcastMessage.minLevelDiff or levelDiff >= config.broadcastMessage.minLevelDiff)) then
broadcastMessage(formateString(config.broadcastMessage.text), config.broadcastMessage.messageClass)
end
if(config.killerAnimation.use) then
doSendAnimatedText(getCreaturePosition(killer), config.killerAnimation.text, config.killerAnimation.color)
end
if(config.targetAnimation.use) then
doSendAnimatedText(getCreaturePosition(cid), config.targetAnimation.text, config.targetAnimation.color)
end
end
end
return true
end
Versão 8.62 nao sei se funfa nas outras versoes
Caso Não funcione a ultima opção e essa
em creaturescript add essa tag
<event type="death" name="Reward" event="script" value="hearts.lua"/>
depois em scripts cria Hearts.lua
e coloca isso dentro
function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
local cidpos = getPlayerPosition(lastHitKiller)
loot = 5943 --[[ID DO ITEM]]--
item = doPlayerAddItem(lastHitKiller,loot,1)
if(isPlayer(lastHitKiller) == TRUE) then
hitKillerName = getPlayerName(lastHitKiller)
doSetItemSpecialDescription(item,"This is the heart of "..getPlayerName(cid).." killed at Level "..getPlayerLevel(cid).." by "..hitKillerName..".")
doPlayerSendTextMessage(lastHitKiller, MESSAGE_STATUS_CONSOLE_ORANGE, "You Killed " .. getCreatureName(cid) .. ".")
doSendMagicEffect(cidpos,12)
else
hitKillerName = getCreatureName(lastHitKiller)
doSetItemSpecialDescription(item,"This is the heart of "..getPlayerName(cid).." killed at Level "..getPlayerLevel(cid).." by a "..hitKillerName..".")
end
setItemName(item, ""..getPlayerName(cid).."\'s Heart")
return TRUE
end