Ir para conteúdo

Featured Replies

Postado

Bom dia Tibiakings!

 

      Hoje trago uma dúvida. Tenho o sistema de !fly funcionante em meu OT Server, mas gostaria que os players não pudessem usar o comando "!fly" em determinados pisos, como exemplo os pisos (4820, 4822, 4823 e 4825). Para explicar melhor, estes pisos são da água e os players ficam com o addon de nadar e ao usarem a talkaction !fly, são teleportados para o templo com o outfit de nadar e não quero que isto aconteça.

Segue minha talkaction do sistema !fly:

 

local towns = {
["edron"] = {x= 33217, y= 31814, z= 8},
["ankrahmun"] = {x= 33194, y= 32853, z= 8},
["thais"] = {x= 32369, y= 32241, z= 7},
["carlin"] = {x= 32360, y= 31782, z= 7},
["venore"] = {x= 32957, y= 32076, z= 7},
["ab'dendriel"] = {x= 32732, y= 31634, z= 7},
["kazordoon"] = {x= 32649, y= 31925, z= 11},
["darashia"] = {x= 33213, y= 32454, z= 1},
["liberty bay"] = {x= 32317, y= 32826, z= 7},
["port hope"] = {x= 32595, y= 32744, z= 6},
["svargrond"] = {x= 32209, y= 31134, z= 7},
["yalahar"] = {x= 32787, y= 31276, z= 7},
["farmine"] = {x= 33005, y= 31491, z= 11},
["gray island"] = {x= 33447, y= 31320, z= 9},
["gengia"] = {x = 32886, y = 30729, z = 5},
["ghala"] = {x = 31899, y = 32204, z = 6},
["ghenov"] = {x = 31680, y = 32788, z = 6},
["vikia"] = {x = 32234, y = 30703, z = 7},
["pyre"] = {x = 33637, y = 31826, z = 6},
}
 
function onSay(cid, words, param, channel)
 
if not isPremium(cid) then
doPlayerSendCancel(cid, "Only premium members are allowed to fly or ride.") return false end
 
if getTilePzInfo(getPlayerPosition(cid)) then
if towns[param:lower()] ~= nil then
doTeleportThing(cid, towns[param:lower()])
doSendMagicEffect(towns[param:lower()], 10)
else
local l = ""
for x,i in pairs(towns) do
l = l .. "\n • "..string.sub(x,0,1):upper()..string.sub(x,2):lower()
end
doPlayerSendTextMessage(cid,4,"Destino inválido. Possíveis destinos:"..l)
end
else
doPlayerSendTextMessage(cid,4,"Comando para premium e so pode ser usado em area PZ.")
end
return true
end
 
 
Obs: Não me lembro que quem era este sistema de !fly, se alguém souber, coloco os devidos créditos (mesmo não sendo a intenção de divulgar este script, mas funciona perfeitamente).

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

Te Ajudei? Rep+  (y)

Resolvido por MaXwEllDeN

Ir para solução
Postado

Bem, eu fiz aqui, porém não testei...

local towns = {
["edron"] = {x= 33217, y= 31814, z= 8},
["ankrahmun"] = {x= 33194, y= 32853, z= 8},
["thais"] = {x= 32369, y= 32241, z= 7},
["carlin"] = {x= 32360, y= 31782, z= 7},
["venore"] = {x= 32957, y= 32076, z= 7},
["ab'dendriel"] = {x= 32732, y= 31634, z= 7},
["kazordoon"] = {x= 32649, y= 31925, z= 11},
["darashia"] = {x= 33213, y= 32454, z= 1},
["liberty bay"] = {x= 32317, y= 32826, z= 7},
["port hope"] = {x= 32595, y= 32744, z= 6},
["svargrond"] = {x= 32209, y= 31134, z= 7},
["yalahar"] = {x= 32787, y= 31276, z= 7},
["farmine"] = {x= 33005, y= 31491, z= 11},
["gray island"] = {x= 33447, y= 31320, z= 9},
["gengia"] = {x = 32886, y = 30729, z = 5},
["ghala"] = {x = 31899, y = 32204, z = 6},
["ghenov"] = {x = 31680, y = 32788, z = 6},
["vikia"] = {x = 32234, y = 30703, z = 7},
["pyre"] = {x = 33637, y = 31826, z = 6},
}
 
 local floor = {4820, 4822, 4823, 4825}

function onSay(cid, words, param, channel)
 
	if not isPremium(cid) then
		doPlayerSendCancel(cid, "Only premium members are allowed to fly or ride.") return false end
 
	if getTilePzInfo(getPlayerPosition(cid)) then
		if not isInArray(floor, getThingFromPos(getPlayerPosition(cid)).itemid) then 
			if towns[param:lower()] ~= nil then
				doTeleportThing(cid, towns[param:lower()])
				doSendMagicEffect(towns[param:lower()], 10)
			else
			local l = ""
				for x,i in pairs(towns) do
					l = l .. "\n • "..string.sub(x,0,1):upper()..string.sub(x,2):lower()
				end
				doPlayerSendTextMessage(cid,4,"Destino inválido. Possíveis destinos:"..l)
			end
		else
			doPlayerSendTextMessage(cid,4,"Voce nao pode usar o comando sob a água.")
		end
	else
		doPlayerSendTextMessage(cid,4,"Comando para premium e so pode ser usado em area PZ.")
	end
	return true
end

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

Postado
  • Autor

Puxa vida, fiquei muito empolgado, mas infelizmente não funcionou.

No lugar de local floor = {4820, 4822, 4823, 4825} não deveria ser algo como doPlayerSendCancel ?

Te Ajudei? Rep+  (y)

Postado
  • Autor

Agora foi 100%! REP + aos dois pela excelente ajuda.

Podem fechar o tópico e mover para dúvida sanada.

Te Ajudei? Rep+  (y)

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