Ir para conteúdo
  • Cadastre-se

(Resolvido)[AJUDA] Player não usar !fly.


Ir para solução Resolvido por MaXwEllDeN,

Posts Recomendados

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)

Link para o post
Compartilhar em outros sites

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.)

Link para o post
Compartilhar em outros sites

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)

Link para o post
Compartilhar em outros sites
  • Solução

[paste]kKrFJMwY[/paste]

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

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

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

Te Ajudei? Rep+  (y)

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por xPollo
      Eae galera do TK, tou adicionando fly no meu poketibia, eu fiz tudo certinho eu acho..
      mais quando vou dar fly no pokemon ele fica assim.
       


      Tem como alguém me ajudar? REP++
    • Por thiaguinhuh
      gente nao sei se postei na areá certa se postei na areá errada desculpa quero um fly system que seja assim igual ao do poketibia que vc digita !fly e para subir !up e para descer !down tipo voar por cima das casas e etc obrigado desde Já
    • Por pedroliolo
      Galer Venho Akie Anunciar que está sendo criado um Poketibia muito bom com base Server GabrielTxu 3.2 e preciso de equipe para site e talvez alguem para hospedar meu server quero muito uma equipe compentente e também convido você NarutoTibiano PokeTibiano ou Tibiano a jogar Pokemon Tyrano go? mais novidades em breve pois preciso de alguem ainda para criar Site n sei onde devo colokar esse posts entao se eu colokar errado movam pfv,
       
      Creditos:
      GabrielTxu(dono da base love pxu)
      Equipe PXE(por motivaçao)
      Equipe PokeFast(msm motivo ae Jplayer)
    • Por Lucas Barreto
      Bom Dia Equipe do TK, estou mexendo em um Poketibia e me deparei com um problema persistente. 
      Ao usar Fly/Ride no servidor o player adquire uma nova velocidade, porem, ao descer do Fly/Ride o Player não retorna a sua velocidade original, ele volta para a velocidade Base do servidor, indicada nesta linha do Configuration.lua
       
      PlayerSpeed = 300
       
      Já tentei de tudo para arrumar isso, se puderem me ajudar eu fico muito agradecido. +REP
       
      Arquivos do servidor:
       
      Configuration.lua
       
       
    • Por M4G0
      Boa Noite pessoal, tentei sem sucesso criar dois scripts para o fly um para players não vip's e outro para vips porem não consigo fazer funcionar
      a talckaction
      function onSay(player, words, param) local places, options = {"Vip Mordigan", "Vip Stoneplains Center", "Vip Stoneplains West", "Vip Stoneplains East", "Vip Tirana", "Vip Tanaris", "Vip Tanaris Center", "Vip Hell City", "Vip Goroma"}, -- places {"Travel", "Cancel"} -- options local modalWindow = ModalWindow(4597, "List of places", "Select your destiny:") for w = 1, #places do modalWindow:addChoice(w, places[w]) end -- Select modalWindow:addButton(1, options[1]) modalWindow:setDefaultEnterButton(1) -- Cancel modalWindow:addButton(2, options[2]) modalWindow:setDefaultEscapeButton(2) -- Send window modalWindow:sendToPlayer(player) return false end <talkaction words="!vip" script="viptalk.lua"/> <talkaction words="!go" script="flytalk.lua"/>  
      creaturescript
       
      function onModalWindow(player, modalWindowId, buttonId, choiceId) if(modalWindowId ~= 4597 or buttonId == 2) then return false end if(not getTileInfo(player:getPosition()).protection) then player:sendTextMessage(MESSAGE_STATUS_SMALL, "You can only fly in protection zone.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end local positions = { [33] = {x = 5208, y = 6100, z = 6}, -- Vip Mordigan [34] = {x = 5688, y = 6141, z = 7}, -- Vip Stoneplains Center [35] = {x = 5563, y = 6208, z = 7}, -- Vip Stoneplains West [36] = {x = 5705, y = 6193, z = 7}, -- Vip Stoneplains East [37] = {x = 5653, y = 5796, z = 7}, -- Vip Tirana [38] = {x = 5811, y = 5784, z = 7}, -- Vip Tanaris [39] = {x = 6018, y = 6041, z = 6}, -- Vip Tanaris Center [40] = {x = 5755, y = 5706, z = 6}, -- Vip Hell City [41] = {x = 31848, y = 32691, z = 8} -- Vip Goroma } player:teleportTo(positions[choiceId]) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return true end <event type="modalwindow" name="fly" script="fly.lua"/> <event type="modalwindow" name="flyvip" script="flyvip.lua"/>  os dois scripts são iguais so muda os destinos e 
       
      if(modalWindowId ~= 4596 or buttonId == 2) then e o outro if(modalWindowId ~= 4597 or buttonId == 2) then
       
      Alguem pode ajudar
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo