Vlws vou testar e ver se acho mais bugs.
Brilhante script obrigado!
Amanhã ti dou REP+!
Por Newtonnotwen, 04 de ago. de 2012 em Scripts
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Vlws vou testar e ver se acho mais bugs.
Brilhante script obrigado!
Amanhã ti dou REP+!
Editado Agosto 4 por Newtonnotwen
info
Grupo: Marquês
Registrado: 22/07/12
Posts: 1.1k
Reputação: +400
Gênero: Masculino
Char no Tibia: Luck Oake

Valeus ![]()
É sempre bom ajudar os outros. Mas quaisquer outros bugs, só postar aqui.
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Achei alguns bugs como por exemplo:
-Quando o player usa na borda
-Quando outro player entra no teleporte
-Quando se desloga ao entrar no teleporte
Porem de fácil correção, você poderia modificar o seguinte pra mim por favor?
-Teleporte nascer embaixo do player
-Sumir automaticamente o teleporte
Isso ira corrigir quais quer bugs possiveis exceto o battle, porem isso eu corrijo, irei adicionar um monstro invisivel e imortal que ataque o player.
@LockOake
Editado Agosto 4 por Newtonnotwen
info
Grupo: Marquês
Registrado: 22/07/12
Posts: 1.1k
Reputação: +400
Gênero: Masculino
Char no Tibia: Luck Oake

Sobre deslogar dentro da area do TP: é só colocar No Logout Zone no Map Editor
Sobre outro player entrar também: qual o problema quanto à isso?
Sobre o TP aparecer em baixo do player:
Substitua seu tp.lua por isso:
-- Script by Luck Oake
function onSay(cid, words, param)
local waittime = 10 -- Tempo de exhaustion
local storage = 5560
local tpId = 1387 -- ID do seu Teleport
local pos = getCreaturePosition(cid)
from = {x=pos.x, y=pos.y, z=7}
to = {x = 1000, y = 1000, z = 7} -- Para onde o teleport levará
area1 = {x = 998, y = 998, z = 7} -- Ponta de cima na esquerda na area que o tp leva
area2 = {x = 1002, y = 1002, z = 7} -- Ponta de baixo na direita na area que o tp leva
function back(cid)
if isInArea(getCreaturePosition(cid), area1, area2) then
doTeleportThing(cid, from)
end
end
function removeTp(tp)
local tp = getTileItemById(from, tpId)
if tp then
doRemoveItem(tp.uid, 1)
doSendMagicEffect(from, CONST_ME_POFF)
end
end
if exhaustion.check(cid, storage) == false then
for _, pid in ipairs(getPlayersOnline()) do
addEvent(back, 20000, pid)
end
exhaustion.set(cid, storage, waittime)
doCreateTeleport(tpId, to, from)
addEvent(removeTp, 5000, tp)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
end
return true
end
E o teleport já some automaticamente.
Editado Agosto 4 por LuckOake
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Boa ideia sobre o no logout zone não havia pensado nela.
@LuckOake vlws cara amanhã ti dou seu REP+
Primeira spell (talkaction) Resolvido por: LuckOake
info
Grupo: Marquês
Registrado: 22/07/12
Posts: 1.1k
Reputação: +400
Gênero: Masculino
Char no Tibia: Luck Oake

Seu segundo pedido:
Talkactions.xml:
<talkaction words="!orc;!dragon" event="script" value="monsters.lua"/>
monsters.lua:
-- Script by Luck Oake
function onSay(cid, words, param)
local p = getCreaturePosition(cid)
if words == "!orc" then
local x = {
[0] = 57,
[1] = 58,
[2] = 57,
[3] = 58
}
ef = x[getCreatureLookDirection(cid)]
doSummonMonster(cid, "Orc")
doSendMagicEffect(p, ef)
end
if words == "!dragon" then
doSummonMonster(cid, "Dragon")
doSendMagicEffect(p, 33)
end
return true
end
Comandos: !orc e !dragon.
Editado Agosto 4 por LuckOake
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Tem como fazer em spell?
info
Grupo: Marquês
Registrado: 22/07/12
Posts: 1.1k
Reputação: +400
Gênero: Masculino
Char no Tibia: Luck Oake

Realmente é necessário? Se quiser posso alterar a talk pra ficar igual uma spell.
Você precisa de alguma config? Tipo Vocations, mana gasta, etc.
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Pode ser pra todos mesmos.
Acho que vou ficar ti devendo 2 REP+ hehe!
Me ajudou muito
@LuckOake
Pedido atendido.
Podem mover o tópico.
Primeira spell: Resolvida por LuckOake (No tópico)
Segunda spell: Resolvida por LuckOake (Private)
Editado Agosto 4 por Newtonnotwen
info
Grupo: Marquês
Registrado: 22/07/12
Posts: 1.1k
Reputação: +400
Gênero: Masculino
Char no Tibia: Luck Oake
Pronto, arrumei a exhaust, porém está com um bug que sua correção vai além das minhas habilidades de scripter.
Substitua seu tp.lua por esse:
-- Script by Luck Oake
function onSay(cid, words, param)
local waittime = 10 -- Tempo de exhaustion
local storage = 5560
local tpId = 1387 -- ID do seu Teleport
local p = getCreaturePosition(cid)
local x = {
[0] = {x=p.x, y=p.y-1, z=p.z},
[1] = {x=p.x+1, y=p.y, z=p.z},
[2] = {x=p.x, y=p.y+1, z=p.z},
[3] = {x=p.x-1, y=p.y, z=p.z}
}
pos = x[getCreatureLookDirection(cid)]
from = {x=pos.x, y=pos.y, z=7}
to = {x = 1000, y = 1000, z = 7} -- Para onde o teleport levará
area1 = {x = 998, y = 998, z = 7} -- Ponta de cima na esquerda na area que o tp leva
area2 = {x = 1002, y = 1002, z = 7} -- Ponta de baixo na direita na area que o tp leva
function back(cid)
if isInArea(getCreaturePosition(cid), area1, area2) then
doTeleportThing(cid, from)
end
end
function removeTp(tp)
local tp = getTileItemById(from, tpId)
if tp then
doRemoveItem(tp.uid, 1)
doSendMagicEffect(from, CONST_ME_POFF)
end
end
if exhaustion.check(cid, storage) == false then
for _, pid in ipairs(getPlayersOnline()) do
addEvent(back, 20000, pid)
end
exhaustion.set(cid, storage, waittime)
doCreateTeleport(tpId, to, from)
addEvent(removeTp, 5000, tp)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
end
return true
end
Agora não é criado outros teleports, porém se o player usar o comando /tp por uma segunda vez enquanto outro teleport estiver aberto, o aberto atualmente não fecha mais.
Editado Agosto 4 por LuckOake