Jump to content

Recommended Posts

É um comando normal que mostra uma lista de lugares disponíveis e teleporta para o local escolhido



n68jo7.png



Crie teleportvip.lua em data/talkactions/scripts e coloque:



 





-- Script feito por Killua, XTibia.com

local positions = {
{lugar = "Midgard", pos = {x=123, y=123, z=7}, price = 1000}, -- Nome do lugar, posicao do lugar
{lugar = "Sao Paulo", pos = {x=123, y=123, z=7}, price = 13000},
{lugar = "Carlin", pos = {x=123, y=123, z=7}, price = 1000},
{lugar = "Venore", pos = {x=123, y=123, z=7}, price = 1000}
}



local needPz = false -- Precisa de pz? [true/false]
local cooldown = 5 -- Tempo em segundos para poder se teleportar novamente.
local needPrem = false -- Precisa ser premiu? [true/false]

function onSay(cid, words, param, channel)

local str = ""

for i = 1, (#positions) do
local cidades = positions[i].lugar
local custo = positions[i].price
str = str .. cidades .. ' - ' .. custo .. ' gps\n '
end

if param == "" then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Para se teleportar diga !teleport LUGAR.\nLugares disponiveis:\n " .. str .. " \n Escolha seu destino e boa viagem!")
end

for _, abc in pairs(positions) do

if param:lower() == abc.lugar:lower() then

if needPz == true and getTilePzInfo(getCreaturePosition(cid)) == false then
return doPlayerSendCancel(cid, "Voce precisa estar em PZ para teleportar.")
elseif getPlayerStorageValue(cid, 23121) > os.time() then
return doPlayerSendCancel(cid, "Voce deve esperar mais " .. getPlayerStorageValue(cid, 23121) - os.time() .. " segundos para se teleportar novamente.")
elseif needPrem == true and not isPremium(cid) then
return doPlayerSendCancel(cid, "Somente jogadores premium podem teleportar.")
elseif getPlayerMoney(cid) < abc.price then
return doPlayerSendCancel(cid, "Voce nao tem dinheiro.")
end

doPlayerSetStorageValue(cid, 23121, os.time() + cooldown)
doPlayerRemoveMoney(cid, abc.price)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
doTeleportThing(cid, abc.pos)
doPlayerSendTextMessage(cid, 25, "Bem vindo a " .. abc.lugar.. "!")
doSendMagicEffect(abc.pos, CONST_ME_TELEPORT)
end
end
return true
end



Agora em data/talkactions/talkactions.xml coloque essa tag:


<talkaction words="!teleport" script="teleportvip.lua"/>

Edited by Killua
Link to comment
Share on other sites

show Killua, eu acho que ficaria legal se o player ao falar por exemplo: !teleport midgard, o char enviasse animatedtext "doPlayerSay" não lembro como é e você deve saber qual é,

o char contasse até 100 para teleportar. Ao chegar no 100 ele teleportaria o player para midgard.

Exemplo: Thors Mage diz "!teleport venore", digamos que o tempo que eu quero que ele conte para viajar até venore é 1 minuto, o player vai contar de 0 até 60 segundos (1 minuto lógicamente), ao acabar esse tempo "Chegar a 60" o player é teletransportado para tal lugar.

No meu ponto de vista, isso iria dar uma ilusão que o player está criando o teleport e almentando o RPG.

(Utilizando o TELEPORT somente se estiver sem "Battle")

É apenas uma idéia que tive =D

fora isso ta show!

Link to comment
Share on other sites

Deu esse erro aqui ._.

 

>>> Loading talkactions... [Error - LuaInterface::loadFile] data/talkactions/scripts/teleportvip.lua:8: '}' expected (to close '{' at line 3) near '{'
[27/2/2014 18:25:40] [Error - Event::checkScript] Cannot load script (data/talkactions/scripts/teleportvip.lua)
[27/2/2014 18:25:40] data/talkactions/scripts/teleportvip.lua:8: '}' expected (to close '{' at line 3) near '{'

 

 

local positions = {

{lugar = "thais", pos = {x=32369, y=32241, z=7}, price = 1000}, -- Nome do lugar, posicao do lugar
{lugar = "yalahar", pos = {x=32786, y=31247, z=6}, price = 13000},
{lugar = "Svargrond", pos = {x=32213, y=31133, z=7}, price = 1000},
{lugar = "Venore", pos = {x=32957, y=32076, z=7}, price = 1000}
{lugar = "Kazordoon", pos = {x=32649, y=31925, z=11}, price = 1000}
{lugar = "Edron", pos = {x=33168, y=31813, z=7}, price = 1000}
}

Edited by Stormkz
Link to comment
Share on other sites

 

Deu esse erro aqui ._.

 

>>> Loading talkactions... [Error - LuaInterface::loadFile] data/talkactions/scripts/teleportvip.lua:8: '}' expected (to close '{' at line 3) near '{'
[27/2/2014 18:25:40] [Error - Event::checkScript] Cannot load script (data/talkactions/scripts/teleportvip.lua)
[27/2/2014 18:25:40] data/talkactions/scripts/teleportvip.lua:8: '}' expected (to close '{' at line 3) near '{'

 

 

local positions = {

{lugar = "thais", pos = {x=32369, y=32241, z=7}, price = 1000}, -- Nome do lugar, posicao do lugar
{lugar = "yalahar", pos = {x=32786, y=31247, z=6}, price = 13000},
{lugar = "Svargrond", pos = {x=32213, y=31133, z=7}, price = 1000},
{lugar = "Venore", pos = {x=32957, y=32076, z=7}, price = 1000}
{lugar = "Kazordoon", pos = {x=32649, y=31925, z=11}, price = 1000}
{lugar = "Edron", pos = {x=33168, y=31813, z=7}, price = 1000}
}

 

 

Tenta assim :

local positions = {
 
    {lugar = "thais", pos = {x=32369, y=32241, z=7}, price = 1000}, -- Nome do lugar, posicao do lugar
    {lugar = "yalahar", pos = {x=32786, y=31247, z=6}, price = 13000},
    {lugar = "Svargrond", pos = {x=32213, y=31133, z=7}, price = 1000},
    {lugar = "Venore", pos = {x=32957, y=32076, z=7}, price = 1000},
    {lugar = "Kazordoon", pos = {x=32649, y=31925, z=11}, price = 1000},
    {lugar = "Edron", pos = {x=33168, y=31813, z=7}, price = 1000}
}
Edited by Bennyyw
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

Ai gente, tem como colocar pra quando o player se teleportar acontecer um efeito da onde ele sai e na onde ele cai?

 

 

Ele já está mandando o efeito de teleport nas duas posições. Você quer por outro efeito?

Se for, basta mudar essas duas linhas:


doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) 
doSendMagicEffect(abc.pos, CONST_ME_TELEPORT)

Altere os CONST_ME_TELEPORT para o nome ou número do efeito que quiser.

Edited by Killua
Link to comment
Share on other sites

×
×
  • Create New...