Ir para conteúdo

[Encerrado] Como adicionar cidades no Tele.lua PDA?


AliceKillen

Posts Recomendados

Bom, eu baixei um PDA esses dias e queria saber como adicionar novas cidades para dar concentrate com os pokes, mas não sei como fazer isso não ^^

 

Tipo assim:

 

Celadon - id = 1
Saffron - id = 2
Lavender - id = 3
Vermilion - id = 4
Fuchsia - id = 5
Cinnabar - id = 6
Viridian - id = 9
Pewter - id = 10
Pallet Town - id = 12
Orre - id = 13
Larosse - id = 14
Canavale - id = 15
Lilycove - id = 16
Golden - id = 17

 

Também tem outra coisa no server, tem aquele sistema que precisa falar 'hi' com a Nurse da city antes de poder dar teleport pra lá, mas, nem um cara que já nasceu na city e fala 'hi' pra Nurse todo dia não tá conseguindo dar teleport, sabe?

 

O servidor é um Skyfall 854 que achei num tópico do GabrielTxu.

 

Script tá intocado, do jeito que veio quando baixei:

local poke = {"Shiny Mr. Mime", 'Mew', 'Mewtwo', 'Abra', 'Kadabra', 'Alakazam', 'Drowzee', 'Hypno', 'Mr. Mime', 'Porygon', 'Shiny Abra', 'Shiny Alakazam', 
'Shiny Hypno', 'Porygon2'}  --alterado v1.9

local etele = 9499
local cdtele = 1800

local config = {
premium = false, -- se precisa ser premium account (true or false)
battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas
}

local places = {
[2] = {name = "Saffron", id = 2, sto = 897530},
[3] = {name = "Cerulean", id = 3, sto = 897531},
[4] = {name = "Lavender", id = 4, sto = 897532},
[6] = {name = "Fuchsia", id = 6, sto = 897533},
[1] = {name = "Celadon", id = 1, sto = 897534},
[9] = {name = "Viridian", id = 9, sto = 897535},  --alterado v1.7
[5] = {name = "Vermilion", id = 5, sto = 897536},
[10] = {name = "Pewter", id = 10, sto = 897537},          
[12] = {name = "Pallet", id = 12},
[10] = {name = "Cinnabar", id = 10, sto = 897538},
[11] = {name = "Snow", id = 11, sto = 897539},
[12] = {name = "Golden", id = 14, sto = 897540},
}


function onSay(cid, words, param)

if #getCreatureSummons(cid) == 0 then
doPlayerSendCancel(cid, "You need a pokemon to use teleport.")
return true
end

if not isInArray(poke, getCreatureName(getCreatureSummons(cid)[1])) then
return 0
end

if getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) < 50 then --alterado v1.9
  doPlayerSendCancel(cid, "You can't do that here!")
    return true
    end   

    if getPlayerStorageValue(cid, 22545) == 1 then      --golden arena
       doPlayerSendCancel(cid, "You can't do that while the golden arena!")
    return true
    end
    
    if getPlayerStorageValue(cid, 212124) >= 1 then         --alterado v1.6
       return doPlayerSendCancel(cid, "You can't do it with a pokemon with mind controlled!")
    end

    if getPlayerStorageValue(cid, 52480) >= 1 then
       return doPlayerSendCancel(cid, "You can't do it while a duel!")  --alterado v1.6
    end
    
    if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then 
  return doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!")   --alterado v1.7
    end
   
if exhaustion.get(cid, etele) and exhaustion.get(cid, etele) > 0 then
local tempo = tonumber(exhaustion.get(cid, etele)) or 0
local min = math.floor(tempo)
doPlayerSendCancel(cid, "Your pokemon is tired, wait "..getStringmytempo(tempo).." to teleport again.")
return true
end

if config.premium and not isPremium(cid) then
doPlayerSendCancel(cid, "Only premium members are allowed to use teleport.")
return true
end

if config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then
doPlayerSendCancel(cid, "Your pokemon can't concentrate during battles.")
return true
end

if (param == '') then
local str = ""
str = str .. "Places to go :\n\nHouse\n"
for a = 1, #places do
str = str..""..places[a].name.."\n"
end
doShowTextDialog(cid, 7416, str)
return true
end

local item = getPlayerSlotItem(cid, 8)
local nome = getPokeballName(item.uid)
local summon = getCreatureSummons(cid)[1]
local lastppos = getThingPos(cid)
local lastspos = getThingPos(summon)
local telepos = {}
local myplace = ""
local townid = 0
local citySto = 0  --alterado v1.7

if string.lower(param) == "house" then

if not getHouseByPlayerGUID(getPlayerGUID(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You don't own a house.")
return true
end

telepos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid)))
myplace = "our home"

else

for x = 1, #places do
if string.find(string.lower(places[x].name), string.lower(param)) then
townid = places[x].id
myplace = places[x].name
citySto = places[x].sto or -1  --alterado v1.7
end
end

if myplace == "" then
doPlayerSendCancel(cid, "That place doesn't exist.")
return true
end

end

if myplace ~= "" and townid > 0 then
telepos = getTownTemplePosition(townid)
end

if string.lower(param) ~= "house" and citySto ~= -1 and getPlayerStorageValue(cid, citySto) <= -1 then    --alterado v1.7
  doPlayerSendCancel(cid, "You have to talk with nurse in this place, before you can teleport for there!")
return true
end   

if getDistanceBetween(getThingPos(cid), telepos) <= 15 then
doPlayerSendCancel(cid, "You are too near to the place you want to go!")
return true
end

doSendMagicEffect(getThingPos(summon), 29)
doSendMagicEffect(getThingPos(cid), 29)

doTeleportThing(cid, telepos, false)

local pos2 = getClosestFreeTile(cid, getPosByDir(getThingPos(cid), SOUTH))

doTeleportThing(summon, pos2, false)

doSendMagicEffect(getThingPos(cid), 29)

doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1)
doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1, false, 0, lastppos)
doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER)
doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER, false, 0, lastspos)

doCreatureSetLookDir(cid, SOUTH)
doCreatureSetLookDir(summon, SOUTH)

doSendMagicEffect(getThingPos(summon), CONST_ME_TELEPORT)
exhaustion.set(cid, etele, cdtele)

return true
end

E, se não for pedir demais, gostaria que alguém complementasse com uma coisinha: eu queria que os subowners das houses pudessem ser teleportados assim como os owners. Se for possível, é claro.

 

Obrigada, desde já. -- Ah, rep+ pra quem ajudar.

 

Link para o comentário
Compartilhar em outros sites

Se eu não me engano, pra ir adicionando mais cidades no tele.lua, só ir seguindo os 'modelos' da tabela places, em sentido crescente. Por exemplo:

[13] = {name = "Orre", id = 15},        --[1 Número maior que o anterior] = {name = "Nome da city pra teleportar", id = ID da cidade no map editor},

Já sobre a parte da Nurse Joy, basta retirar isso:

if string.lower(param) ~= "house" and citySto ~= -1 and getPlayerStorageValue(cid, citySto) <= -1 then    --alterado v1.7
  doPlayerSendCancel(cid, "You have to talk with nurse in this place, before you can teleport for there!")
return true
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

 

Se eu não me engano, pra ir adicionando mais cidades no tele.lua, só ir seguindo os 'modelos' da tabela places, em sentido crescente. Por exemplo:

[13] = {name = "Orre", id = 15},        --[1 Número maior que o anterior] = {name = "Nome da city pra teleportar", id = ID da cidade no map editor},

Já sobre a parte da Nurse Joy, basta retirar isso:

if string.lower(param) ~= "house" and citySto ~= -1 and getPlayerStorageValue(cid, citySto) <= -1 then    --alterado v1.7
  doPlayerSendCancel(cid, "You have to talk with nurse in this place, before you can teleport for there!")
return true
end

 

Man, já tentei assim e não funcionou... Se puder passar um script que funcione para mim eu agradeceria cara, esse daí tá dando muito problema, sabe?

Link para o comentário
Compartilhar em outros sites

Cara, estou no curso agora, a única coisa que eu posso te passar é para você deixar o teu script assim:

local poke = {"Shiny Mr. Mime", 'Mew', 'Mewtwo', 'Abra', 'Kadabra', 'Alakazam', 'Drowzee', 'Hypno', 'Mr. Mime', 'Porygon', 'Shiny Abra', 'Shiny Alakazam', 
'Shiny Hypno', 'Porygon2'} --alterado v1.9

local etele = 9499
local cdtele = 1800

local config = {
premium = false, -- se precisa ser premium account (true or false)
battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas
}

local places = {
[2] = {name = "Saffron", id = 2, sto = 897530},
[3] = {name = "Cerulean", id = 3, sto = 897531},
[4] = {name = "Lavender", id = 4, sto = 897532},
[6] = {name = "Fuchsia", id = 6, sto = 897533},
[1] = {name = "Celadon", id = 1, sto = 897534},
[9] = {name = "Viridian", id = 9, sto = 897535}, --alterado v1.7
[5] = {name = "Vermilion", id = 5, sto = 897536},
[10] = {name = "Pewter", id = 10, sto = 897537}, 
[12] = {name = "Pallet", id = 12},
[10] = {name = "Cinnabar", id = 10, sto = 897538},
[11] = {name = "Snow", id = 11, sto = 897539},
[12] = {name = "Golden", id = 14, sto = 897540},
[13] = {name = "Cidade", id = 15, sto = 897541},
}


function onSay(cid, words, param)

if #getCreatureSummons(cid) == 0 then
doPlayerSendCancel(cid, "You need a pokemon to use teleport.")
return true
end

if not isInArray(poke, getCreatureName(getCreatureSummons(cid)[1])) then
return 0
end

if getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) < 50 then --alterado v1.9
doPlayerSendCancel(cid, "You can't do that here!")
return true
end 

if getPlayerStorageValue(cid, 22545) == 1 then --golden arena
doPlayerSendCancel(cid, "You can't do that while the golden arena!")
return true
end

if getPlayerStorageValue(cid, 212124) >= 1 then --alterado v1.6
return doPlayerSendCancel(cid, "You can't do it with a pokemon with mind controlled!")
end

if getPlayerStorageValue(cid, 52480) >= 1 then
return doPlayerSendCancel(cid, "You can't do it while a duel!") --alterado v1.6
end

if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then 
return doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!") --alterado v1.7
end

if exhaustion.get(cid, etele) and exhaustion.get(cid, etele) > 0 then
local tempo = tonumber(exhaustion.get(cid, etele)) or 0
local min = math.floor(tempo)
doPlayerSendCancel(cid, "Your pokemon is tired, wait "..getStringmytempo(tempo).." to teleport again.")
return true
end

if config.premium and not isPremium(cid) then
doPlayerSendCancel(cid, "Only premium members are allowed to use teleport.")
return true
end

if config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then
doPlayerSendCancel(cid, "Your pokemon can't concentrate during battles.")
return true
end

if (param == '') then
local str = ""
str = str .. "Places to go :\n\nHouse\n"
for a = 1, #places do
str = str..""..places[a].name.."\n"
end
doShowTextDialog(cid, 7416, str)
return true
end

local item = getPlayerSlotItem(cid, 8)
local nome = getPokeballName(item.uid)
local summon = getCreatureSummons(cid)[1]
local lastppos = getThingPos(cid)
local lastspos = getThingPos(summon)
local telepos = {}
local myplace = ""
local townid = 0
local citySto = 0 --alterado v1.7

if string.lower(param) == "house" then

if not getHouseByPlayerGUID(getPlayerGUID(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You don't own a house.")
return true
end

telepos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid)))
myplace = "our home"

else

for x = 1, #places do
if string.find(string.lower(places[x].name), string.lower(param)) then
townid = places[x].id
myplace = places[x].name
citySto = places[x].sto or -1 --alterado v1.7
end
end

if myplace == "" then
doPlayerSendCancel(cid, "That place doesn't exist.")
return true
end

end

if myplace ~= "" and townid > 0 then
telepos = getTownTemplePosition(townid)
end

if string.lower(param) ~= "house" and citySto ~= -1 and getPlayerStorageValue(cid, citySto) <= -1 then --alterado v1.7
doPlayerSendCancel(cid, "You have to talk with nurse in this place, before you can teleport for there!")
return true
end 

if getDistanceBetween(getThingPos(cid), telepos) <= 15 then
doPlayerSendCancel(cid, "You are too near to the place you want to go!")
return true
end

doSendMagicEffect(getThingPos(summon), 29)
doSendMagicEffect(getThingPos(cid), 29)

doTeleportThing(cid, telepos, false)

local pos2 = getClosestFreeTile(cid, getPosByDir(getThingPos(cid), SOUTH))

doTeleportThing(summon, pos2, false)

doSendMagicEffect(getThingPos(cid), 29)

doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1)
doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1, false, 0, lastppos)
doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER)
doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER, false, 0, lastspos)

doCreatureSetLookDir(cid, SOUTH)
doCreatureSetLookDir(summon, SOUTH)

doSendMagicEffect(getThingPos(summon), CONST_ME_TELEPORT)
exhaustion.set(cid, etele, cdtele)

return true
end

Assim que eu chegar na minha casa eu te falo se precisa de mais algo! ^-^

 

Aé, após usar este Script, você tem que abrir seu mapa pelo Remere's, ir no EDIT TOWN, e adicionar a nova cidade.

Ai onde eu deixei escrito "cidade" no script tu muda pelo nome da tua nova city!

 

PS: Aqui neste tópico do link, está ensinando a criar Houses, porém no começo ensina a criar uma nova City no remere's caso você não saiba...

 

http://www.xtibia.com/forum/topic/146579-criar-casas-no-rme/

Link para o comentário
Compartilhar em outros sites

  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...