Ir para conteúdo
  • 0

deathBroadcast


tiuguedor

Pergunta

Posts Recomendados

  • 0

Vá em Pasta do seu OT/data/creaturescripts/scripts/playerdeath.lua, apague o quê está lá dentro e coloque isso:

 

 

dofile("./config.lua")

function onDeath(cid, corpse, killer)

doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Owned.")

if deathListEnabled == "yes" then

doSendAnimatedText(getPlayerPosition(cid),"OwNeD",35)

if sqlType == "mysql" then

env = assert(luasql.mysql())

con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))

else -- sqlite

env = assert(luasql.sqlite3())

con = assert(env:connect(sqliteDatabase))

end

local byPlayer = FALSE

if killer == FALSE then

killerName = "field item"

else

if isPlayer(killer) == TRUE then

byPlayer = TRUE

end

killerName = getCreatureName(killer)

end

assert(con:execute("INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `is_player`) VALUES (" .. getPlayerGUID(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", '" .. escapeString(killerName) .. "', " .. byPlayer .. ");"))

local cursor = assert(con:execute("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";"))

local deathRecords = numRows(cursor)

if sqlType == "mysql" then

while deathRecords > maxDeathRecords do

delete = assert(con:execute("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1;"))

deathRecords = deathRecords - 1

end

else

while deathRecords > maxDeathRecords do

delete = assert(con:execute("DELETE FROM `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);"))

deathRecords = deathRecords - 1

end

end

con:close()

env:close()

end

end

 

 

Vá em Pasta do seu OT/data/creaturescripts/scripts/login.lua e adicione:

registerCreatureEvent(cid, "PlayerDeath")

Agora em Pasta do seu OT/data/creaturescripts/creaturescripts.xml, adicione:

<event type="death" name="PlayerDeath" script="playerdeath.lua"/>

 

Abraços!

Editado por AdilsonHacker
Link para o comentário
Compartilhar em outros sites

  • 0

Aff meu pc ta uma merda , desculpa ai arrumei o topico :

sé não pega acima o script e esse ( é o mesmo de cima )

 

dofile("./config.lua")

function onDeath(cid, corpse, killer)

doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Owned.")

if deathListEnabled == "yes" then

doSendAnimatedText(getPlayerPosition(cid),"OwNeD",35)

if sqlType == "mysql" then

env = assert(luasql.mysql())

con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))

else -- sqlite

env = assert(luasql.sqlite3())

con = assert(env:connect(sqliteDatabase))

end

local byPlayer = FALSE

if killer == FALSE then

killerName = "field item"

else

if isPlayer(killer) == TRUE then

byPlayer = TRUE

end

killerName = getCreatureName(killer)

end

assert(con:execute("INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `is_player`) VALUES (" .. getPlayerGUID(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", '" .. escapeString(killerName) .. "', " .. byPlayer .. ");"))

local cursor = assert(con:execute("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";"))

local deathRecords = numRows(cursor)

if sqlType == "mysql" then

while deathRecords > maxDeathRecords do

delete = assert(con:execute("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1;"))

deathRecords = deathRecords - 1

end

else

while deathRecords > maxDeathRecords do

delete = assert(con:execute("DELETE FROM `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);"))

deathRecords = deathRecords - 1

end

end

con:close()

env:close()

end

end

Editado por AdilsonHacker
Link para o comentário
Compartilhar em outros sites

  • 0

Troca o que te passei por este :

 

 

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)

if isPlayer(cid) then

doSendMagicEffect(getCreaturePosition(cid),"OWNED!",math.random(1,255))

end

return true

end

Link para o comentário
Compartilhar em outros sites

  • 0

ta dano erro ,o eu tenho um que aparece sp que td junto fraga e em deathbrodcast so que eu queria que aparecese daquele jeito de pe fraga vo passa ele pra vcs ver

 

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 = false,

itemid = 2152,

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_BLUE

},

 

broadcastMessage = {

use = false,

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 = false,

text = "Frag", -- Only 9 letters! No "commands" here.

color = 144

},

 

targetAnimation = {

use = true,

text = "O w n e d", -- 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

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, 5)

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

 

 

si pa tenho que faze um script pra cala letra que se me fala?

Editado por tiuguedor
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...