Ir para conteúdo
Entre para seguir isso  
Fereu

Mortes no Broadcast;

Recommended Posts

Fereu    0
Fereu

Nome: Mortes no Broadcast

Versão: 8.4x

Tipo do script: creaturescript

Servidor Testado: TFS 0.2 (>.<')

Autor: Alguém da equipe criadora do TFS e eu por editar.

Comentario: Script editado; Original é o que vem com o tfs.

----------------------------------------------------------------------

 

Falae;

 

Preview: broad.png

 

Como não vi nenhum tópico sobre o assunto por aqui, resolvi criar o script, ou melhor, editar o playerdeath.lua '-'

 

Primeiramente, abra a pasta data/creaturescripts/scripts e abra o arquivo playerdeath.lua, substitua o que tiver lá por isto:

dofile("./config.lua")

function onDeath(cid, corpse, killer)

vitima = getCreatureName(cid)
assassino = getCreatureName(killer)

doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You are dead.")
if deathListEnabled == "yes" then
	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()
	broadcastMessage("" .. assassino .. " Matou " .. vitima .."!", MESSAGE_STATUS_CONSOLE_ORANGE)
end
end

 

Depois salve e pronto, está implantado o sistema de anúncio de mortes no broadcast; é simples, porém algumas pessoas não sabem como fazer.

 

Já que insistem, aí está a TAG:

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

 

OU ENTÃO FAÇA O QUE O MOCK DISSE, COLOQUE SOMENTE ISSO NO SEU playerdeath.lua:

 

function onDeath(cid, corpse, killer)

broadcastMessage("" .. getCreatureName(killer) .. " Matou " .. getCreatureName(cid) .."!", MESSAGE_STATUS_CONSOLE_ORANGE)

return TRUE

end

 

Att,

Fereu.

Editado por Fereu
tag

Compartilhar este post


Link para o post
Gpwjhlkdcf    21
Gpwjhlkdcf

  • Reprovado e Fechado.

 

Poste a tag XML junto.

 

Editado:

No caso de criar outro arquivo, a tag XML é necessária, mas não vi que era no PlayersDeath.

 

Apesar disso, adicione a tag XML para caso algum OT não possua o PlayersDeath.

 

  • Aprovado e Movido para Download de Ações.

Editado por Skyen Hasus

Compartilhar este post


Link para o post
vione    0
vione

Muito bom, cara!

Realmente é muito simples, e obrigado por postar aqui na OTNet!

 

-- Edit:

Faltou a tag

Editado por vione

Compartilhar este post


Link para o post
Fereu    0
Fereu

Não necessita da tag, a tag é a que vem com o TFS, portanto não é necessário mexer no arquivo creaturescripts.xml;

Compartilhar este post


Link para o post
Oddie    0
Oddie

Não acha que é meio inutil essa sua ideia nao?

Sem ofensa

Só acho que seria um spam enorme sem contar que a pessoa ia perder tudo que dropou, por exemplo

Oddie morreu para uma rotworm

Dai ia lotar de gente pra catar o loot (:

Compartilhar este post


Link para o post
Fereu    0
Fereu

lol, o que tem a ver o cara perder o loot? ele que use aol :D

 

pode parecer inútil, mas sei lá, eu gosto D:

Compartilhar este post


Link para o post
vione    0
vione
Não acha que é meio inutil essa sua ideia nao?

Sem ofensa

Só acho que seria um spam enorme sem contar que a pessoa ia perder tudo que dropou, por exemplo

Oddie morreu para uma rotworm

Dai ia lotar de gente pra catar o loot (:

 

 

uahuahuhaua

Mas se o cara deitou pra Rotworm, eu acredito que ninguém se preocuparia com loot de um 'noob'... rs

 

É, eu também não curto muito este script, mas pode ser muito útil para alguém! :D

Compartilhar este post


Link para o post
KwiiBy~    0
KwiiBy~

Como é isso é mysql? como é

Compartilhar este post


Link para o post
Fereu    0
Fereu

creaturescripts;

 

esse é o script 'playerdeath.lua', porém editado. Leia o tópico pois está tudo esplicado. :whistle:

Compartilhar este post


Link para o post
Nighandy    0
Nighandy

Eu ja vi isso em Otservs,achei legalzinho

Vlw por posta

Compartilhar este post


Link para o post
Fereu    0
Fereu

Exemplo ~ Falumir OT :x

 

Té;

Compartilhar este post


Link para o post
Eroz    0
Eroz

Muito bom, mas seria bem legal se vc desse um jeito de só aparecer mortes de players de um certo level +, pq c naum tem evento e morre trocentos noobs, flooda td u.u

Compartilhar este post


Link para o post
Sparken    0
Sparken

no meu da u seguinte BUG:

 

[16/07/2009 14:41:57] Lua Script Error: [CreatureScript Interface]

[16/07/2009 14:41:57] data/creaturescripts/scripts/playerdeath.lua:onDeath

 

[16/07/2009 14:41:57] data/creaturescripts/scripts/playerdeath.lua:14: attempt to index global 'luasql' (a nil value)

[16/07/2009 14:41:57] stack traceback:

[16/07/2009 14:41:57] data/creaturescripts/scripts/playerdeath.lua:14: in function <data/creaturescripts/scripts/playerdeath.lua:3>

 

Tem Como Resolve?

Compartilhar este post


Link para o post
Mock    32
Mock

não seria simplesmente mais facil fazer isso:

 

function onDeath(cid, corpse, killer)

broadcastMessage("" .. getCreatureName(killer) .. " Matou " .. getCreatureName(cid) .."!", MESSAGE_STATUS_CONSOLE_ORANGE)

return TRUE

end

Compartilhar este post


Link para o post
Sparken    0
Sparken

Vlw Mock Resolveu!

 

Meu OT Intero Te Agradece! ahsuhsa

Compartilhar este post


Link para o post
Fereu    0
Fereu

Mock, isso seria o mesmo que criar um outro script certo?

 

no meu eu só editei o que já existia '-'

Compartilhar este post


Link para o post
Mock    32
Mock

@fereu

aqui é seção para postar scripts seus e nao scripts editados.

Compartilhar este post


Link para o post
Fereu    0
Fereu

o original é o que vem com o tfs -.-, após a edição ele pode ser considerado meu.

Compartilhar este post


Link para o post
$ilent Hunter    0
$ilent Hunter

ja vi um server com isso não vai ser muito legal quando um mata outro todos vão no pk ou no red skull

Compartilhar este post


Link para o post
Fereu    0
Fereu

fazer o que, eu gosto, se não gosta a opnião é sua (:

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×