CO
talkaction

Teleport Por Talkaction

Por colex, 29 de dez. de 2006 em Actions e Talkactions

script
15
4.9k
colexC
29 de dezembro de 2006 às 00:29

Olá

 

Este script é possivelmente inutil, porque existe um comando com uma função semelhante implementado nas sources, mas de qualquer jeito, este script poderá ajudar algumas pessoas nem que seja para "estudo".

 

Esta talkaction é acionada quando o player diz tp "coordenadas

por exemplo:

tp "150 500 7

 

na pasta data/talkactions/scripts crie um arquivo cujo nome é tp.lua e insira dentro do mesmo o seguinte:

--------Teleport Command by Colex-------------
function onSay(cid, words, param)



access = 3 ---só altere isso conforme deseja



acc = getPlayerAccess(cid)

pos = {}
h = {}
a = 1

if acc >= access then
 if string.len(param) >= 5 then 
   s = 1
   h[s] = 0
   i = 0
   repeat
     pos[s] = ""
     i = i + 1
     ver = string.byte(param, i)
     length = string.len(param) + 1
     if ver ~= 32 and length >= i then
         h[s] = i	
     else
pos[s] = string.sub(param, 1, h[s]+1)
param = string.gsub(param, pos[s], "")
pos[s+3] = getNumber(pos[s])
if pos[s+3] == 0 then
  s = 4
  doPlayerSendCancel(cid,'Wrong position!')
  a = 0
end
       s = s + 1
       h[s] = 0
i = 0
     end
   until s >= 4
   if a == 1 then
     doTeleportThing(cid,{x=pos[4], y=pos[5], z=pos[6]})
   end
 else
   doPlayerSendCancel(cid,'Wrong position!')
 end
else
 doPlayerSendCancel(cid,'You cannot use this command!')
end

return 1
end


function getNumber(txt)
x = string.gsub(txt,"%a","")
x = tonumber(x)
if x ~= nill and x > 0 then
return x
else
return 0
end
end

 

no arquivo talkactions.xml localizado no diretório data/talkactions adicione a seguinte linha:

<talkaction words="tp" script="tp.lua" />

 

 

Espero que ajude alguem e aproveitem bem

 

NÃO POSTAR EM QUALQUER OUTRO SITE SEM PEDIDO AO AUTOR PROCEDIDO POR UMA AUTORIZAÇÃO DO PRÓPRIO

 

Atenciosamente,

Colex

Editado Dezembro 29 por colex

RikezenhoR
29 de dezembro de 2006 às 00:36

Muito bom!

xD

Engenhoso, criativo e ######, ######.

Flwww!

tibiaa4eT
29 de dezembro de 2006 às 01:25

@ colex

se vc fala do /goto

ele num funfa + com coordenadas :D

vlws pela função ai mto util

por iso sou seu fã de carteira e bolsa :D

 

flws :hi:

freretyF
29 de dezembro de 2006 às 01:48

HiHo!

 

wow... mt bom hein =)

Só uma coisinha... na função function getNumber(txt)

if x ~= nill and x > 0 then
aqui teria que ser nil, não? eu não me lembro direito mais eh qse ctz q sim, dê uma olhadinha

btw a talkaction está muito boua =) parabéens =)

 

FlW

CyA!

Editado Dezembro 29 por frerety

tibiaa4eT
29 de dezembro de 2006 às 01:52

@up

msm coisa ele fez no npc de bank

+ funfo do msm jeito :p

 

flws :hi:

colexC
29 de dezembro de 2006 às 02:17

Obrigado pelos comentários

 

se uma pessoa estudar LUA provavelmente ira aprender "nil", mas eu fiz um teste e verifiquei que nill é igual a nil

 

caso alguem queira fazer o teste, eu usei estas linhas de codigo:

t = nill
if t == nil then
doPlayerSay(cid,'funciona!',2)
end

 

 

Abraços,

Colex

1 mês depois...
leoziksL
10 de janeiro de 2007 às 10:13

tentei com

tp "1000 1000 7

q eh o templo e nao funfo :S

colexC
12 de janeiro de 2007 às 17:28
tentei com

tp "1000 1000 7

q eh o templo e nao funfo :S

 

 

se o seu ot tem a função onSay tem que funcionar

verifique a versão que voce esta usando

freretyF
12 de janeiro de 2007 às 18:52

HiHo!

 

@leoziks

lembre-se de que apenas players de acesso

--------Teleport Command by Colex-------------

function onSay(cid, words, param)

 

access = 3 ---só altere isso conforme deseja

=) veja se o player que você usou tinha esse access =p

 

FlW

CyA!

Editado Janeiro 12 por frerety

1 mês depois...
14 de fevereiro de 2007 às 09:11

Não funciona aqui... Se o script é ativado pela palavra "tp", só vai funcionar com a palavra "tp".

Qdo eu digito isso dá "Wrong position!" e qdo coloco com as coordenadas junto não dá nada...

duda123D
14 de fevereiro de 2007 às 20:47

Colex, será que seria possível você postar as funções desses codes*?

 

*string.gsub(txt,"%a","")

tonumber(x)

string.byte(param, i)

 

Obrigado,

 

Ghost_Rider

colexC
14 de fevereiro de 2007 às 21:08

as funções que voce citou são do LUA, para saber mais sobre elas é só voce pesquisar no google que voce encontra definições.

 

o tonumber() fui eu que fiz e ela esta no script

duda123D
14 de fevereiro de 2007 às 21:41

Ah... Blzzz =PP Nem vi o tonumber no script xD

 

--Edit--

 

Procurei no google e nem achei nada :/// Num tem como você me passar um link não?

 

--Edit2--

 

Acheiii!!! Valeu mesmo!!!

Editado Fevereiro 14 por duda123

JovialJ
19 de fevereiro de 2007 às 18:05

@Colex

nao sabia q se era BR xD

@script

muito bom eu o uso...

 

Observaçoes:

para q ele funcione no The Forgotten Server troque

     doTeleportThing(cid,{x=pos[4], y=pos[5], z=pos[6]})

por

     doTeleportThing(cid, {x=pos[4], y=pos[5], z=pos[6]}, 0)

TemplarrT
20 de fevereiro de 2007 às 22:22

Olá,

muito bom mesmo, bom q anda + de pressa qndo tu ta com pressa, com o teleport , ficou sem sentido pq to sem saber o q dizer, =D, mesmo assim , vlw ^^

 

Abraços,

Templarr.