Jump to content

Olá Tibiano! Notamos que você está com um adblocker ligado... 

Nós promovemos servidores dentro da comunidade, para que eles tenham visibilidade.

Por favor, nos ajude a continuar promovendo esses servidores. Adicione nosso domínio na whitelist de seu adblocker, ok? :)

  • 0
NdboHakai

[Resolvido] [Pedido] Após morte voltar em local aleatório

Question

Boa Tarde, Galera do Xtibia

 

Utilizo a distro

Tfs 0.4

 

Gostaria de saber se tem alguma forma de fazer os players que morrer ir para um hospital.

Só que teria varias salas[cabines] e os jogadores iriam logar após a morte em uma das salas[cabines]

Seria aleatório

 

Espero que vocês possam me ajudar

 

Rep ++ 

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 1
4 minutos atrás, NdboHakai disse:

certo , acabei de testar e ainda assim dá o mesmo error 

local hospitalpos = {
[1] = {x = 1021, y = 981, z = 7}, -- posições pra onde o player será teleportado ao morrer
[2] = {x = 1026, y = 981, z = 7},
[3] = {x = 1030, y = 981, z = 7}, 
}

local str = 66666

function onDeath(cid, position)
registerCreatureEvent(cid, "DeathPlayerHospital_L")
if isPlayer(cid) then
setPlayerStorageValue(cid, str, 1)
end
return true
end

function onLogin(cid)
registerCreatureEvent(cid, "DeathPlayerHospital")
if isPlayer(cid) then
	if getPlayerStorageValue(cid, str) == 1 then
	setPlayerStorageValue(cid, str, -1)
	doTeleportThing(cid, hospitalpos[math.random(#hospitalpos)], true)
	end
end
return true
end

 

Share this post


Link to post
Share on other sites
  • 0

Tenta ai. Só criar um arquivo .lua no creaturescripts e por isso:

local hospitalpos = {
[1] = {x = 1006, y = 1010, z = 7}, -- posições pra onde o player será teleportado ao morrer
[2] = {x = 1006, y = 1015, z = 7},
[3] = {x = 1006, y = 1020, z = 7},
}

local str = "MT" --storage para controlar se o player foi morto ou nao

function onDeath(cid, position)
registerCreatureEvent(cid, "DeathPlayerHospital_L")
if isPlayer(cid) then
setPlayerStorageValue(cid, str, 1)
end
return true
end

function onLogin(cid)
registerCreatureEvent(cid, "DeathPlayerHospital")
if isPlayer(cid) then
	if getPlayerStorageValue(cid, str) == 1 then
	setPlayerStorageValue(cid, str, -1)
	doTeleportThing(cid, hospitalpos[math.random(#hospitalpos)], true)
	end
end
return true
end

TAG:

<event type="login" name="DeathPlayerHospital_L" event="script" value="arquivo.lua"/>
<event type="death" name="DeathPlayerHospital" event="script" value="arquivo.lua"/>

Se quiser por mais posições só adicionar conforme o script. Daria pra fazer também um fromPosition e toPosition , assim o jogador se teleportaria pra qualquer lugar dentro das área configurada. Mas recomendo usar dessa maneira que te mandei.

 

Share this post


Link to post
Share on other sites
  • 0
21 minutos atrás, Yan Liima disse:

Tenta ai. Só criar um arquivo .lua no creaturescripts e por isso:

local hospitalpos = {
[1] = {x = 1006, y = 1010, z = 7}, -- posições pra onde o player será teleportado ao morrer
[2] = {x = 1006, y = 1015, z = 7},
[3] = {x = 1006, y = 1020, z = 7},
}

local str = "MT" --storage para controlar se o player foi morto ou nao

function onDeath(cid, position)
if isPlayer(cid) then
setPlayerStorageValue(cid, str, 1)
end
return true
end

function onLogin(cid)
registerCreatureEvent(cid, "DeathPlayerHospital")
if isPlayer(cid) then
	if getPlayerStorageValue(cid, str) == 1 then
	setPlayerStorageValue(cid, str, -1)
	doTeleportThing(cid, hospitalpos[math.random(#hospitalpos)], true)
	end
end
return true
end

TAG:

<event type="login" name="DeathPlayerHospital_L" event="script" value="arquivo.lua"/>
<event type="death" name="DeathPlayerHospital" event="script" value="arquivo.lua"/>

Se quiser por mais posições só adicionar conforme o script. Daria pra fazer também um fromPosition e toPosition , assim o jogador se teleportaria pra qualquer lugar dentro das área configurada. Mas recomendo usar dessa maneira que te mandei.

 

Irei testar

 

Deixei dessa maneira e quando os players morrem vão pro templo igual antes, tem alguma coisa a mais pra fazer?

Obs: não da error na distro nem nada

Please login or register to see this spoiler.

 

Edited by NdboHakai

Share this post


Link to post
Share on other sites
  • 0
37 minutos atrás, Thalles Vitor disse:

Dscp se intrometer ae, mas... esse

doTeleportThing(cid, hospitalpos[math.random(#hospitalpos)], true)

Não devia ficar na function onDeath? ou pode ficar ai mesmo?

Não, é na função de login mesmo. Pois ao logar ele estará no local configurado. o onDeath só serve para controlar

 

52 minutos atrás, NdboHakai disse:

Irei testar

 

Deixei dessa maneira e quando os players morrem vão pro templo igual antes, tem alguma coisa a mais pra fazer?

Obs: não da error na distro nem nada

Please login or register to see this spoiler.

Erro meu, editei. Copia de novo e tente. Creio que o problema era no Register, qualquer coisa é só tirar do script e por o register no login.lua.

 

 

Share this post


Link to post
Share on other sites
  • 0
45 minutos atrás, Yan Liima disse:

Não, é na função de login mesmo. Pois ao logar ele estará no local configurado. o onDeath só serve para controlar

 

Erro meu, editei. Copia de novo e tente. Creio que o problema era no Register, qualquer coisa é só tirar do script e por o register no login.lua.

 

 

Deu um error

1990265910_Semttulo.png.1baaecc996fd7a48abe46d6de85017e4.png

 

Script : 

Please login or register to see this spoiler.

 

Share this post


Link to post
Share on other sites
  • 0
1 minuto atrás, NdboHakai disse:

Deu um error

Please login or register to see this link.

 

Script : 

Please login or register to see this spoiler.

Tira as aspas do 66666... Coloquei aspas pois coloquei uma storage por letras, inves de números, comecei utilizar pra evitar storage igual kkk. Muitos usam números por achar que não da para utilizar storage por letras...

Share this post


Link to post
Share on other sites
  • 0
5 minutos atrás, Yan Liima disse:

Tira as aspas do 66666... Coloquei aspas pois coloquei uma storage por letras, inves de números, comecei utilizar pra evitar storage igual kkk. Muitos usam números por achar que não da para utilizar storage por letras...

Eu deixei as msm letras que você colocou com as "" e deu error, tirei as "" e coloquei os numeros 66666 e deu o mesmo error

Share this post


Link to post
Share on other sites
  • 0
1 minuto atrás, NdboHakai disse:

Eu deixei as msm letras que você colocou com as "" e deu error, tirei as "" e coloquei os numeros 66666 e deu o mesmo error

Então deve ter dado bug de caractere ao copiar. Reescreve essa linha, apaga local e escreve novamente.

Share this post


Link to post
Share on other sites
  • 0
8 minutos atrás, Yan Liima disse:

Então deve ter dado bug de caractere ao copiar. Reescreve essa linha, apaga local e escreve novamente.

Apaguei e refiz continua o mesmo error '-'

 

local hospitalpos = {
[1] = {x = 1021, y = 981, z = 7}, -- posições pra onde o player será teleportado ao morrer
[2] = {x = 1026, y = 981, z = 7},
[3] = {x = 1030, y = 981, z = 7},

local str 66666

function onDeath(cid, position)
registerCreatureEvent(cid, "DeathPlayerHospital_L")
if isPlayer(cid) then
setPlayerStorageValue(cid, str, 1)
end
return true
end

function onLogin(cid)
registerCreatureEvent(cid, "DeathPlayerHospital")
if isPlayer(cid) then
	if getPlayerStorageValue(cid, str) == 1 then
	setPlayerStorageValue(cid, str, -1)
	doTeleportThing(cid, hospitalpos[math.random(#hospitalpos)], true)
	end
end
return true
end

 

Share this post


Link to post
Share on other sites
  • 0
8 minutos atrás, Yan Liima disse:
local hospitalpos = {
[1] = {x = 1021, y = 981, z = 7}, -- posições pra onde o player será teleportado ao morrer
[2] = {x = 1026, y = 981, z = 7},
[3] = {x = 1030, y = 981, z = 7}, 
}

local str = 66666

function onDeath(cid, position)
registerCreatureEvent(cid, "DeathPlayerHospital_L")
if isPlayer(cid) then
setPlayerStorageValue(cid, str, 1)
end
return true
end

function onLogin(cid)
registerCreatureEvent(cid, "DeathPlayerHospital")
if isPlayer(cid) then
	if getPlayerStorageValue(cid, str) == 1 then
	setPlayerStorageValue(cid, str, -1)
	doTeleportThing(cid, hospitalpos[math.random(#hospitalpos)], true)
	end
end
return true
end

 

você pode me ajudar no outro topico ?

 

 

Share this post


Link to post
Share on other sites
  • 0
1 minuto atrás, NdboHakai disse:

você pode me ajudar no outro topico ?

 

 

Odeio mexer com spells, não manjo tanto ksksks isso dai deixo pro @Night Wolf. A questão do tópico em si foi resolvida? Se foi, marque a melhor resposta e estarei movendo/fechando o tópico.

Share this post


Link to post
Share on other sites
  • 0
1 minuto atrás, Yan Liima disse:

Odeio mexer com spells, não manjo tanto ksksks isso dai deixo pro @Night Wolf. A questão do tópico em si foi resolvida? Se foi, marque a melhor resposta e estarei movendo/fechando o tópico.

Posso entrar em contato com você pelo discord pra ter um suporte? eu explico lá 

 

Sim foi resolvido e já marquei melhor resposta

Share this post


Link to post
Share on other sites
  • 0
O pedido neste tópico de foi atendido e/ou o autor do tópico resolveu sua duvida. Este tópico está fechado e foi movido para

Please login or register to see this link.

. Se você tiver outros pedidos, crie um novo tópico.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...