DA
erro

[Encerrado] Bug level 1

Por DavyziinC, 29 de set. de 2013 em Tópicos Sem Resposta

resolvido
otserv
tibia
7
1.9k
DavyziinCD
29 de setembro de 2013 às 11:21

Então pessoal do xtibia eu vim aqui pedi tipo que uma ajuda meu ot quando os player morre eles voltam pro level 1 tem player que volta tem outros que n alguém pode me ajuda nesse erro?

ikaroangeloI
29 de setembro de 2013 às 11:25

amigo vá em data\creaturescripts\scripts, procure o arquivo playerdeath e apague tudo dentro e coloque isto!

local config = {
	deathListEnabled = getBooleanFromString(getConfigInfo('deathListEnabled')),
	sqlType = getConfigInfo('sqlType'),
	maxDeathRecords = getConfigInfo('maxDeathRecords')
}

config.sqlType = config.sqlType == "sqlite" and DATABASE_ENGINE_SQLITE or DATABASE_ENGINE_MYSQL

function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
	if(config.deathListEnabled ~= TRUE) then
		return
	end

	local hitKillerName = "field item"
	local damageKillerName = ""
	if(lastHitKiller ~= FALSE) then
		if(isPlayer(lastHitKiller) == TRUE) then
			hitKillerName = getPlayerGUID(lastHitKiller)
		else
			hitKillerName = getCreatureName(lastHitKiller)
		end

		if(mostDamageKiller ~= FALSE and mostDamageKiller ~= lastHitKiller and getCreatureName(mostDamageKiller) ~= getCreatureName(lastHitKiller)) then
			if(isPlayer(mostDamageKiller) == TRUE) then
				damageKillerName = getPlayerGUID(mostDamageKiller)
			else
				damageKillerName = getCreatureName(mostDamageKiller)
			end
		end
	end

	db.executeQuery("INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `altkilled_by`) VALUES (" .. getPlayerGUID(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", " .. db.escapeString(hitKillerName) .. ", " .. db.escapeString(damageKillerName) .. ");")
	local rows = db.getResult("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";")
	if(rows:getID() ~= -1) then
		local amount = rows:getRows(true) - config.maxDeathRecords
		if(amount > 0) then
			if(config.sqlType == DATABASE_ENGINE_SQLITE) then
				for i = 1, amount do
					db.executeQuery("DELETE FROM `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);")
				end
			else
				db.executeQuery("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT " .. amount .. ";")
			end
		end
	end
end


Depois vá em data\creaturescripts/creaturescripts.xml e adicione está tag

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

Editado Setembro 29 por ikaroangelo

DavyziinCD
29 de setembro de 2013 às 11:26

Tu testo antes de me manda?

ikaroangeloI
29 de setembro de 2013 às 11:29

Caro amigo utilizo ele no meu otserv ^^

Editado Setembro 29 por ikaroangelo

DavyziinCD
29 de setembro de 2013 às 11:31

Ata tendi Okay Obrigado

1 mês depois...
GabrieltxuG
07 de outubro de 2013 às 10:16

Tópico movido para a seção de dúvidas e pedidos resolvidos.

4 anos depois...
StigalS
21 de abril de 2018 às 03:09
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.