Eu também não sei muito, eu entendo a linguagem, mas não sei como funciona a integração com as versões dos clients e tal. Meu chute é que cada versão do tfs seja para uma versão determinada do tibia, até porque a cada versão são adicionadas novas funcionalidades no jogo, logo as sources tem que ser alteradas. Outra coisa, se você mudar as sources, vários códigos em lua podem apresentar problemas, já que algumas funções mudam de uma versão para outra.
Quanto ao outro problema, você cria uma ladder com o /i e ela funciona mas uma ladder com esse mesmo id que foi colocada pelo map editor não funciona? Se for isso, tem que ver o que o /i ta fazendo para fazer a ladder funcionar.
Olá @Demonbholder,
Entendi. Essa questão da ladder me intrigou MUITO ai comecei a fazer uns teste e percebi: O erro está no script teleport.lua. No script é feito o calculo do local para onde o player vai apos usar uma escada, buraco e etc. E tem uma checagem para descobrir se o local para onde o player vai ser teletransportado é um tile que permita movimentação(chão, piso) e não (parede, cerca, poste, pedra, coisas que não são permitidos o movimento), porem essa checagem faz com que só possa subir escada se for pra um lugar que não pode andar. Então, o script bloqueia subir para lugares que deveria ser possível subir e permite subir para lugares que não deveria ser possível. Fiz vários testes para descobrir isso... Acredito que o problema seja na função: doTileQueryAdd(cid, POSIÇÃO para verificar, INT(não sei o que significa), false[Essa opção só esta disponível para a verão 0.4 do TFS, que é um parâmetro BOOL]), inclusive achei que atualizando essa função e recompilando as sources 0.3.7 que possuo o problema estaria sanado, porem não houve mudança. Vou postar o teleport.lua para você dar uma olhada, se quiser posso postar a função doTileQueryAdd que está nas minhas sources também.
Quanto a questão original do topico, você saberia onde conseguir uma source 9.6 0.4 do TFS?
Obrigado pela atenção, abraços.
Segue o codigo do teleport.lua:
local UP_FLOORS = {1386, 3678, 5543, 8599, 10035}
local FIELDS = {1497, 1499, 11095, 11096}
local DRAW_WELL = 1369
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(item.itemid == DRAW_WELL and item.actionid ~= 100) then
return false
end
local check = false
fromPosition.stackpos = STACKPOS_GROUND
if(isInArray(UP_FLOORS, item.itemid)) then
fromPosition.z = fromPosition.z - 1
fromPosition.y = fromPosition.y + 1
if(doTileQueryAdd(cid, fromPosition, 38, false) ~= RETURNVALUE_NOERROR) then
local field = getTileItemByType(fromPosition, ITEM_TYPE_MAGICFIELD)
if(field.uid == 0 or not isInArray(FIELDS, field.itemid)) then
fromPosition.y = fromPosition.y - 2
else
check = true
end
end
else
fromPosition.z = fromPosition.z + 1
end
if(not check and doTileQueryAdd(cid, fromPosition, 38, false) ~= RETURNVALUE_NOERROR) then
local field = getTileItemByType(fromPosition, ITEM_TYPE_MAGICFIELD)
if(field.uid == 0 or not isInArray(FIELDS, field.itemid)) then
return false
end
end
local pos, dir = getCreaturePosition(cid), SOUTH
if(pos.x < fromPosition.x) then
dir = EAST
elseif(pos.x == fromPosition.x) then
if(pos.y == fromPosition.y) then
dir = getCreatureLookDirection(cid)
elseif(pos.y > fromPosition.y) then
dir = NORTH
end
elseif(pos.x > fromPosition.x) then
dir = WEST
end
doTeleportThing(cid, fromPosition, false)
doCreatureSetLookDirection(cid, dir)
return true
end