Ir para conteúdo
  • 0
NdboHakai

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

Pergunta

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 ++ 

Compartilhar este post


Link para o post
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 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

 

Compartilhar este post


Link para o post
Compartilhar em outros 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.

 

Compartilhar este post


Link para o post
Compartilhar em outros 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.

 

Editado por NdboHakai

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
26 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.

 

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?

Compartilhar este post


Link para o post
Compartilhar em outros 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.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros 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.

 

Compartilhar este post


Link para o post
Compartilhar em outros 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...

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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

 

Compartilhar este post


Link para o post
Compartilhar em outros 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 ?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

×
×
  • Criar Novo...