• 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!

Lua Broadcast deaths

frankfarmer

who'r ninja now
Premium User
Joined
Aug 5, 2008
Messages
1,581
Reaction score
79
Code:
	<event type="kill" name="DeathBroadcast" script="deathBroadcast.lua"/>

Code:
registerCreatureEvent(cid, "DeathBroadcast")

Code:
local config = {
        killStorageValue = 39434,
        deathStorageValue = 39444,

        -- commands for the texts (those inside of ||, example: |KILLS| to show skills): KILLS, KILLERNAME, TARGETNAME
        rewardItem = {
                use = false,
                itemid = 8698,
                minLevel = 8, -- false if you don't want any level req
                minLevelDiff = 2, -- 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 = false,
                minLevel = 8, -- 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 onKill(cid, corpse, killer)
        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
       
        return TRUE
end

Nothing broadcasts, nothing happends..

WHY?
 
Wish I could help right now although I am kind of busy...
If no one helps you, send me a private message. :thumbup:
 
Try to test if the script works by typing
Code:
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "SCRIPT WORK")
Add this under onKill function. If it dont work, then the script doesn't executes. I dont see anything wrong with it.
 
Try to test if the script works by typing
Code:
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "SCRIPT WORK")
Add this under onKill function. If it dont work, then the script doesn't executes. I dont see anything wrong with it.
im go helping him on msn xd
 
Back
Top