Ir para conteúdo

(Resolvido)[pedido] storage que retorna o player morto para um local

Featured Replies

Postado
local storage = 2000
local from,to = {x = 2100, y = 2100, z = 7}, {x = 2200, y = 2200, z = 7}
local death_pos = {x = 1100, y = 1100, z = 7}

function onPrepareDeath(cid, deathList)
	if isPlayer(cid) and getPlayerStorageValue(cid, storage) > 0 and isInRange(getCreaturePosition(cid), from, to) then
		local strings = {""}
		local j, position, corpse = 1, 1, 0
		for _, pid in ipairs(deathList) do
			if isCreature(pid) == true then
				strings[position] = j == 1 and "" or strings[position] .. ", "
				strings[position] = strings[position] .. getCreatureName(pid) .. ""
				j = j + 1
			else
				strings[position] = j == 1 and "" or strings[position] .. ", "
				strings[position] = strings[position] .."a field item"
				j = j + 1
			end
		end
		for i, str in ipairs(strings) do
			if(str:sub(str:len()) ~= ",") then
				str = str .. "."
			end
			desc = "You recognize "
			desc = desc .. "" .. getCreatureName(cid) .. ". He was killed by " .. str
		end
		if(getPlayerSex(cid) == 1) then
			corpse = doCreateItem(3058, getCreaturePosition(cid))
		else
			corpse = doCreateItem(3065, getCreaturePosition(cid))
		end
		doItemSetAttribute(corpse, "description", desc)
		doTeleportThing(cid, death_pos)
		setPlayerStorageValue(cid, storage , 0) -- aqui estou apagando a storage // pode apagar a linha se quiser
		doRemoveConditions(cid, false)
    	return false
	end
	return true
end

 

Editado por Vodkart (veja o histórico de edições)

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

  • Respostas 34
  • Visualizações 2.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • local storage = 2000 local from,to = {x = 2100, y = 2100, z = 7}, {x = 2200, y = 2200, z = 7} local death_pos = {x = 1100, y = 1100, z = 7} function onPrepareDeath(cid, deathList) if isPlayer(cid) a

  • Utiliza isso com o callback onPrepareDeath que devê funcionar.

  • Pra funcionar o callback precisa retornar falso.

Posted Images

Postado
  • Autor
2 horas atrás, Vodkart disse:

local storage = 2000
local from,to = {x = 2100, y = 2100, z = 7}, {x = 2200, y = 2200, z = 7}
local death_pos = {x = 1100, y = 1100, z = 7}

function onPrepareDeath(cid, deathList)
	if isPlayer(cid) and getPlayerStorageValue(cid, storage) > 0 and isInRange(getCreaturePosition(cid), from, to) then
		local strings = {""}
		local j, position, corpse = 1, 1, 0
		for _, pid in ipairs(deathList) do
			if isCreature(pid) == true then
				strings[position] = j == 1 and "" or strings[position] .. ", "
				strings[position] = strings[position] .. getCreatureName(pid) .. ""
				j = j + 1
			else
				strings[position] = j == 1 and "" or strings[position] .. ", "
				strings[position] = strings[position] .."a field item"
				j = j + 1
			end
		end
		for i, str in ipairs(strings) do
			if(str:sub(str:len()) ~= ",") then
				str = str .. "."
			end
			desc = "You recognize "
			desc = desc .. "" .. getCreatureName(cid) .. ". He was killed by " .. str
		end
		if(getPlayerSex(cid) == 1) then
			corpse = doCreateItem(3058, getCreaturePosition(cid))
		else
			corpse = doCreateItem(3065, getCreaturePosition(cid))
		end
		doItemSetAttribute(corpse, "description", desc)
		doTeleportThing(cid, death_pos)
		setPlayerStorageValue(cid, storage , 0) -- aqui estou apagando a storage // pode apagar a linha se quiser
		doRemoveConditions(cid, false)
    	return false
	end
	return true
end

 

@Vodkart o corpo apareceu, mas o cara é teleportado para o sqm escolhido e começa a morrer várias vezes em seguida, sem parar:

image.png.26a23996e0c8c6593156043f66d15f52.png

Aquele script onDeath do @Onepiece havia funcionado, só faltaria aparecer um dead body no sqm da morte... rs

Editado por Mecianosz (veja o histórico de edições)

Postado
  • Autor
22 horas atrás, Vodkart disse:

vc usou a tag certa e registrou no onLogin?

sim.. deve ter algum bug na minha source, porque PrepareDeath não está funcionando e já tentei vários scripts.

Editado por Mecianosz (veja o histórico de edições)

Postado
  • Autor
  • Solução

 @Gabrieldsadaxas @Vodkart @Onepiece

 

EDIT: Gente, agradeço muito pela ajuda de todos , mas resolvi de outra forma, já que os scripts não funcionaram: quando o player entra na arena, eu mudo seu town id, assim ele morre e volta para dentro da arena (temple position fica dentro da arena). Caso ele decida sair, é só pisar no tile que volta seu town id original e o teleporta para o templo:

doPlayerSetTown(player, 2)
doPlayerSetTown(cid, 1)

 

Editado por Mecianosz (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo