DA
pedido

Teleporte por level

Por damiaotorres, 31 de mar. de 2014 em Scripts

otserv
tibia
script
18
1.7k
31 de março de 2014 às 12:40

-ola povo do xtibia eu queria um script que teleportar player tipo ,player de level 120 ate 140 que depois de 140 não entra-se mais,isso e um tp normal do id 1387 .

lucasromeroL
31 de março de 2014 às 13:11
local positionn = {x = 1027, y = 912, z = 5} -- Posicao que sera levado

function onStepIn(cid, item, pos, fromPosition)
if getPlayerLevel(cid) >= 120 and <= 140 then
doTeleportThing(cid, position)
else
doPlayerSendCancel(cid, "Voce nao pode entrar nesse Tp.")
doTeleportThing(cid, fromPosition, true)
end
return true
end

Movements.xml:

 

<movevent type="StepIn" uniqueid="uniqueiddotp" event="script" value="nomedoscript.lua"/>

--- Depois vá no map editor, no TP coloque o uniqueid escolhido.

Editado Março 31 por lucasromero

31 de março de 2014 às 13:57

Deu erro no script :/

 

 

[31/03/2014 14:09:50] [Error - LuaScriptInterface::loadFile] data/movements/scripts/teleporte.lua:4: unexpected symbol near '<='
[31/03/2014 14:09:50] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/teleporte.lua)
[31/03/2014 14:09:50] data/movements/scripts/teleporte.lua:4: unexpected symbol near '<='

Editado Março 31 por damiaotorres

31 de março de 2014 às 14:13

Ai quando o player tiver la dentro level 140 + ele vai ser teletransportado para fora?

 

não se ele tiver lá dentro , ele ainda fica lá dentro ..

pra isso você tem que criar outro script, só que agora em creaturescripts

 

vá em data / creaturescripts / scripts . e coloca isso ..

function onLogin(cid)

local pos = {x= 160, y= 54, z= 7} -- pos para onde o player será teleportado.

  if getPlayerLevel(cid) >= 120 and getPlayerLevel(cid) <= 140 then
    if getPlayerStorageValue(cid, 123987) ~= 1 then
       setPlayerStorageValue(cid, 123987, 1)
    end 
  elseif getPlayerLevel(cid) > 140 then
         if getPlayerStorageValue(cid, 123987) == 1 then
                      doTeleportThing(cid, pos, true)
                doPlayerSendTextMessage(cid, 22, "Você Passou do Level 140.")
                setPlayerStorageValue(cid, 123987, 0)
         end
  end
  
 return true
end  

tag, creaturescript.xml :

<event type="login" name="NomeDoEvento" event="script" value="NomeDoArquivo.lua"/>

lucas não lembro se funciona da maneira que fez na parte:

if getPlayerLevel(cid) >= 120 and <= 140 then

creio que o correto seria :

if getPlayerLevel(cid) >= 120 and getPlayerLevel(cid) <= 140 then
31 de março de 2014 às 19:14

Lucas deu erro

eu erro no script :/

[31/03/2014 14:09:50] [Error - LuaScriptInterface::loadFile] data/movements/scripts/teleporte.lua:4: unexpected symbol near '<='
[31/03/2014 14:09:50] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/teleporte.lua)
[31/03/2014 14:09:50] data/movements/scripts/teleporte.lua:4: unexpected symbol near '<='
31 de março de 2014 às 19:18

cara eu falei o erro na minha resposta ;s


 

lucas não lembro se funciona da maneira que fez na parte:

if getPlayerLevel(cid) >= 120 and <= 140 then

creio que o correto seria :

if getPlayerLevel(cid) >= 120 and getPlayerLevel(cid) <= 140 then
31 de março de 2014 às 19:30

Quando eu vou entra no teleporte apareçe esse erro

 

 

[31/03/2014 19:29:52] [Error - MoveEvents Interface]
[31/03/2014 19:29:52] data/movements/scripts/teleporte.lua:onStepIn
[31/03/2014 19:29:52] Description:
[31/03/2014 19:29:52] attempt to index a nil value
[31/03/2014 19:29:52] stack traceback:
[31/03/2014 19:29:52] [C]: in function 'doTeleportThing'
[31/03/2014 19:29:52] data/movements/scripts/teleporte.lua:5: in function <data/movements/scripts/teleporte.lua:3>
[31/03/2014 19:29:54] [Error - MoveEvents Interface]
[31/03/2014 19:29:54] data/movements/scripts/teleporte.lua:onStepIn
[31/03/2014 19:29:54] Description:
[31/03/2014 19:29:54] attempt to index a nil value
[31/03/2014 19:29:54] stack traceback:
[31/03/2014 19:29:54] [C]: in function 'doTeleportThing'
[31/03/2014 19:29:54] data/movements/scripts/teleporte.lua:5: in function <data/movements/scripts/teleporte.lua:3>
[31/03/2014 19:29:54] [Error - MoveEvents Interface]
[31/03/2014 19:29:54] data/movements/scripts/teleporte.lua:onStepIn
[31/03/2014 19:29:55] Description:
[31/03/2014 19:29:55] attempt to index a nil value
[31/03/2014 19:29:55] stack traceback:
[31/03/2014 19:29:55] [C]: in function 'doTeleportThing'
[31/03/2014 19:29:55] data/movements/scripts/teleporte.lua:5: in function <data/movements/scripts/teleporte.lua:3>
31 de março de 2014 às 19:36


function onStepIn(cid, item, position, fromPosition)

 

 

local pos1 = {x = 1027, y = 912, z = 5} -- Posicao que sera levado

 

 

if getPlayerLevel(cid) >= 120 and getPlayerLevel(cid) <= 140 then

doTeleportThing(cid, pos1)

else

doPlayerSendCancel(cid, "Voce nao pode entrar nesse Tp.")

doTeleportThing(cid, fromPosition, true)

end

 

 

return true

end

lucasromeroL
31 de março de 2014 às 20:19

Eu estava desatento demais..
Obrigado por corrigir duuh.

01 de abril de 2014 às 13:13

Esse script que vc mandou Duuh não presto eu tava level 145 e ainda continuei dentro da are ,o script de tp que eu tenho é esse eu gostaria de saber se tem como vc ajeita ele pq ele caso vc tenha level 140+ vc não entraria vc ia pra essa position de volta

 

 

local posi = {x=1329, y=1158, z=7} -- Posicao pra onde vai o player
local volta = {x=1095, y=1063, z=7} -- Posicao pra onde o player vai se teleportado caso nao tenha lvl ou seja maior
function onStepIn(cid, item, position, lastPosition, fromPosition)
if getPlayerLevel(cid) < -141 then
doTeleportThing(cid, posi)
doSendMagicEffect(getThingPos(cid), 10)
else
doPlayerSendTextMessage(cid, 19, "Desculpe apenas níveis (120~140) podem acessar essa área.")
doTeleportThing(cid, volta)
doSendMagicEffect(getThingPos(cid), 10)
end
end

Editado Abril 1 por damiaotorres

lucasromeroL
01 de abril de 2014 às 13:21

Movements/scripts

local posi = {x=1329, y=1158, z=7}
local volta = {x=1095, y=1063, z=7}

function onStepIn(cid, item, position, lastPosition, fromPosition)
 
         if getPlayerLevel(cid) >= 120 and getPlayerLevel(cid) <= 140 then
 
            doTeleportThing(cid, posi)
 
            doSendMagicEffect(getThingPos(cid), 10)
         else
 
             doPlayerSendTextMessage(cid, 19, "Desculpe apenas níveis (120~140) podem acessar essa área.")
             doTeleportThing(cid, volta, true)
             doSendMagicEffect(getThingPos(cid), 10)
 
end
return true
end

A creaturescript que o duuh mandou é so para quando logar.

01 de abril de 2014 às 13:25

Eu sei lucas mais tipo o povo que tiver la dentro acima de 140 não deslogar ai eles vão fica upando la ate um dia eles sair. e vc editou o script foi?

 

Eu quero um que assim que vc atingir o level 140 ser kikado da area tem como?

Editado Abril 1 por damiaotorres

01 de abril de 2014 às 13:31

Amigo ler o tópico , aqui está a solução.

você sabe ler ?

 

 

Ai quando o player tiver la dentro level 140 + ele vai ser teletransportado para fora?

 

não se ele tiver lá dentro , ele ainda fica lá dentro ..
pra isso você tem que criar outro script, só que agora em creaturescripts

 

vá em data / creaturescripts / scripts . e coloca isso ..

function onLogin(cid)

local pos = {x= 160, y= 54, z= 7} -- pos para onde o player será teleportado.

  if getPlayerLevel(cid) >= 120 and getPlayerLevel(cid) <= 140 then
    if getPlayerStorageValue(cid, 123987) ~= 1 then
       setPlayerStorageValue(cid, 123987, 1)
    end 
  elseif getPlayerLevel(cid) > 140 then
         if getPlayerStorageValue(cid, 123987) == 1 then
                      doTeleportThing(cid, pos, true)
                doPlayerSendTextMessage(cid, 22, "Você Passou do Level 140.")
                setPlayerStorageValue(cid, 123987, 0)
         end
  end
  
 return true
end  

tag, creaturescript.xml :

<event type="login" name="NomeDoEvento" event="script" value="NomeDoArquivo.lua"/>

lucas não lembro se funciona da maneira que fez na parte:

if getPlayerLevel(cid) >= 120 and <= 140 then

creio que o correto seria :

if getPlayerLevel(cid) >= 120 and getPlayerLevel(cid) <= 140 then

 

01 de abril de 2014 às 13:37

Amiga eu sei ler sim,só que não deu certo '-'

01 de abril de 2014 às 13:41

Amiga eu sei ler sim,só que não deu certo '-'

 

então responde , ocorreu algum erro ?

 

obs: O player só vai sair da área quando ele deslogar .