Ir para conteúdo
Entre para seguir isso  
coranderson

Talkaction de Teleport !goto

Recommended Posts

coranderson    0
coranderson

  • Nome: Teleport Talk
  • Nome do autor: D3rs00n
  • Versão testada: Real Server 3.0(TIBIA 8.60)
  • Detalhes adicionais: Serve para se teleportar para alguma cidade ou lugar que você especificar.

Agora mãos à obra...

 

1º: Abra o arquivo data/talkactions/talkactions.xml e adicione esta tag:

<talkaction words="!goto" case-sensitive="no" event="script" value="talk teleport.lua"/>

 

2º: Abra a pasta data/talkactions/scripts/ e copie um arquivo qualquer com a extenção .lua, em seguida renomeie-o para "talk teleport.lua", depois abra-o, apague todo seu conteúdo e cole o seguinte script:

local pos = {
Carlin = {x = 2489, y = 2505, z = 7}, -- Não esqueça das virgulas...
Thais = {x = 2488, y = 2510, z = 7},
Ankrahmun = {x = 300, y = 350, z = 7},
}

local config = {
pz = false, -- É necessario estár na protection zone?
pa = false  -- Tem que ter Premium?
}

function onSay(cid, words, param)
param = param:lower()
if param:sub(1, 4) == 'info' then
  param = 'Lista de destinos disponiveis:\n'
  local c = 0
  for i, _ in pairs(pos) do
      c = c + 1
      if c > 1 then
         param = param .. ', '
      end
      param = param .. i
  end
  param = param .. '.'
  doPlayerPopupFYI(cid, param)
  return true
end
for i, v in pairs(pos) do
   pos.i = nil
   pos[i:lower()] = v
end
if getTilePzInfo(getThingPos(cid)) == false and config.pz then
  doPlayerSendCancel(cid, 'You need to be in the protection zone.')
  return true
end
if getPlayerPremiumDays(cid) < 1 and config.pa then
  doPlayerSendCancel(cid, 'You must be a premium account.')
  return true
end
if getCreatureCondition(cid, CONDITION_INFIGHT) or getCreatureCondition(cid, CONDITION_HUNTING) then
  doPlayerSendCancel(cid, 'You need to be out of a battle.')
  return true
end
if pos[param] == nil then
  doPlayerSendCancel(cid, 'Destination not found.')
else
   doTeleportThing(cid, pos[param])
   doPlayerSendTextMessage(cid, MESSAGE_TYPES.orange, 'You going to ' .. param .. '.')
   doSendMagicEffect(getThingPos(cid), 10)
end
return true
end

 

Agora vamos as configurações...

 

Ainda no arquivo "talk teleport.lua" vamos configurar os destinos, que ficam nas primeiras linhas...

local pos = {
Carlin = {x = 2489, y = 2505, z = 7}, -- Não esqueça das virgulas...
Thais = {x = 2488, y = 2510, z = 7},
Ankrahmun = {x = 300, y = 350, z = 7},
}

Para adicionar um novo destino, use o seguinte modelo:

Nomedodestino = {x = posx, y = posy, z = posz},

Importante: Não esqueçam das virgulas, são extremamente importantes(inclusive aquela no final da linha)...

 

Agora as configurações mais simples:

local config = {
pz = true, -- É necessario estár na protection zone?
pa = false  -- Tem que ter Premium?
}

"pz = true," significa que o player é obrigado a estar na protection zone para usar o !goto

"pa = true" significa que o player é obrigado a ter premium para usar o !goto

 

Como usar?

!goto Carlin <<- Teleporta para carlin

!goto info <<- Mostra as destinações

Editado por coranderson
Identação do script

Compartilhar este post


Link para o post
Lwkass    1
Lwkass

Script bem feito, ótima indentação, existe parecidos mas nenhum igual a esse,

 

Obrigado pela contribuição !

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×