• 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])

How do i change this to onKill function ? :S]

nvm, solved :D
 
Last edited:
[03/09/2009 10:20:48] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/deathBroadcast.lua)
[03/09/2009 10:20:48] data/creaturescripts/scripts/deathBroadcast.lua:90: 'end' expected (to close 'function' at line 41) near '<eof>'


Please help...
 
anyone knows how to fix this for 0.3.5

I just get " player was killed by |killername| at leve 90.

sucks=(
 
So in creaturescripts.xml it should be a

event type="kill"

Right?

for 0.3.5 PL1
 
Not sure :p Haven't checked the parameters, but I have no clue! I'm using onDeath... Will check later when I'm home.
 
I'm having the same problem that the others: the console doesn't throw any errors, but it doesn't broadcast nor it gives the item. Alredy tried with changing the function to "onKill", also with the min lvl thing. Didn't worked.

I'm using TFS 0.3.5 Crying Damson, or at least that's what it says on the doc files xD
 
I can't get it to work. No broadcast, no nothing.

Would be cool to add when they die by a monster.
 
Use mine, not tested :$
Lua:
function onKill(cid, target)
local kills = getCreatureStorageValue(cid, 1992)
	if(isInArray({25, 50, 75, 100, 125, 150, 200, 250, 300}, kills)) then
		doBroadcastMessage(getCreatureName(cid).." just reached "..kills.." kills! Get him!!", MESSAGE_STATUS_CONSOLE_ORANGE)
		end
	return true
end
You should know how to do in login.lua etc, I'm using storages for my kills, cuz the other system sucks.
 
Yup, same to me, no errors in console, not working for 0.3.6..
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
 
Last edited:
Back
Top