• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

CreatureEvent Advanced Broadcast Deaths (including item reward [optional])

Im getting this error in the console:

[13/02/2010 22:58:32] [Error - CreatureScript Interface]
[13/02/2010 22:58:32] data/creaturescripts/scripts/deathBroadcast.lua:eek:nDeath
[13/02/2010 22:58:32] Description:
[13/02/2010 22:58:32] data/creaturescripts/scripts/deathBroadcast.lua:78: attempt to call global 'doSetItemSpecialDescription' (a nil value)
[13/02/2010 22:58:32] stack traceback:
[13/02/2010 22:58:32] data/creaturescripts/scripts/deathBroadcast.lua:78: in function <data/creaturescripts/scripts/deathBroadcast.lua:43>

Nvm i solved it, don't really know what i did xD
 
Last edited:
@Cykotitan
Look, I updated it and when the target die it broadcast every player that attacked him.. ex:

12:42 Player1 [107] just killed Killed [120]
12:42 Player2 [108] just killed Killed [120]
12:42 Player3 [101] just killed Killed [120]
12:42 Player4 [103] just killed Killed [120]
12:42 Player5 [104] just killed Killed [120]
 
Last edited:
can somebody fix it to tfs 0.3.6


[04/04/2010 08:48:32] [Error - CreatureScript Interface]
[04/04/2010 08:48:32] data/creaturescripts/scripts/deathBroadcast.lua:eek:nDeath
[04/04/2010 08:48:32] Description:
[04/04/2010 08:48:32] data/creaturescripts/scripts/deathBroadcast.lua:78: attempt to call global 'doSetItemSpecialDescription' (a nil value)
[04/04/2010 08:48:32] stack traceback:
[04/04/2010 08:48:32] data/creaturescripts/scripts/deathBroadcast.lua:78: in function <data/creaturescripts/scripts/deathBroadcast.lua:43>
 
Last edited:
Please fix it! to tfs 0.3.6

[04/04/2010 08:48:32] [Error - CreatureScript Interface]
[04/04/2010 08:48:32] data/creaturescripts/scripts/deathBroadcast.luanDeath
[04/04/2010 08:48:32] Description:
[04/04/2010 08:48:32] data/creaturescripts/scripts/deathBroadcast.lua:78: attempt to call global 'doSetItemSpecialDescription' (a nil value)
[04/04/2010 08:48:32] stack traceback:
[04/04/2010 08:48:32] data/creaturescripts/scripts/deathBroadcast.lua:78: in function <data/creaturescripts/scripts/deathBroadcast.lua:43>
 
This is how you register it in TFS 0.2 and early 0.3 alpha/beta:
PHP:
<event type="death" name="DeathBroadcast" script="deathBroadcast.lua"/>
And this is how you register it in 0.3 or newer:
PHP:
<event type="death" name="DeathBroadcast" event="script" value="deathBroadcast.lua"/>
I don't see why hasn't anyone thought of that o_O

Oh, and fixed script for 0.3.5 / 0.3.6:
Code:
local config = {
[B][COLOR="Red"]	affected = 10, -- how many players (deathAssits) from table deathList should this script be executed for?[/COLOR][/B]

	killStorageValue = 3943,
	deathStorageValue = 3944,

	-- commands for the texts (those inside of ||, example: |KILLS| to show skills): KILLS, KILLERNAME, TARGETNAME
	rewardItem = {
		use = true,
		itemid = 8698,
		minLevel = 100, -- false if you don't want any level req
		minLevelDiff = 20, -- false if you don't want any level diff req (negative numbers allowed).
		text = "This is a gift to |KILLERNAME| [|KILLERLEVEL|] for killing |TARGETNAME| [|TARGETLEVEL|]"
	},

	killMessage = {
		use = true,
		text = "You owned |TARGETNAME|! You have now |KILLERKILLS| kills!",
		messageClass = MESSAGE_STATUS_CONSOLE_BLUE
	},

	broadcastMessage = {
		use = true,
		minLevel = 100, -- false if you don't want any level req
		minLevelDiff = 0, -- 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 = "Frag!", -- Only 9 letters! No "commands" here.
		color = 215
	},

	targetAnimation = {
		use = true,
		text = "Owned!", -- Only 9 letters! No "commands" here.
		color = 215
	}
}

function onDeath(cid, corpse, [B][COLOR="Red"]deathList[/COLOR][/B])
[B][COLOR="Red"]	for i = 1, math.min(config.affected, getConfigInfo('deathAssistCount')) do
		local killer = deathList[i][/COLOR][/B]
		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)
				doSetItemSpecialDescription(uid, formateString(config.rewardItem.text))
			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
[COLOR="Red"][B]	end[/B][/COLOR]

	return true
end
I change:
PHP:
	setPlayerStorageValue = doPlayerSetStorageValue

The Script works in version 0.4 but do not count the frags.
Anyone know why?
 
I get this error..

[13/07/2010 15:27:11] [Error - CreatureScript Interface]
[13/07/2010 15:27:11] data/creaturescripts/scripts/deathBroadcast.lua:eek:nDeath
[13/07/2010 15:27:11] Description:
[13/07/2010 15:27:11] data/creaturescripts/scripts/deathBroadcast.lua:78: attempt to call global 'doSetItemSpecialDescription' (a nil value)
[13/07/2010 15:27:11] stack traceback:
[13/07/2010 15:27:11] data/creaturescripts/scripts/deathBroadcast.lua:78: in function <data/creaturescripts/scripts/deathBroadcast.lua:43>
 
amg you guys never read recent posts<_<
 
Back
Top