Ir para conteúdo

Featured Replies

  • Respostas 6
  • Visualizações 415
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Heart System Para quem não sabe, ele funciona assim: Se (e somente se) um player matar outro ele ganhará um coração (usei como exemplo aquele coração de um Morgaroth que é geralmente usado) e ne

Postado

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

Editado por Valakinhas (veja o histórico de edições)

 

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo