em data/actions/scripts/water_action.lua:
local waterOutfit = {lookType = 134} -- ID da outfit para o navio
local originalVoc = 1 -- Vocação original que o player retorna ao sair da água
function onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
if not player then
return true
end
-- Verifica se o jogador já está na outfit de navio
if player:getOutfit().lookType ~= waterOutfit.lookType then
player:setStorageValue(12345, player:getVocation():getId()) -- Salva a vocação original do jogador
player:setOutfit(waterOutfit) -- Altera para a outfit de navio
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você entrou na água e agora está em modo de navegação!")
end
return true
end
function onStepOut(creature, item, position, fromPosition)
local player = creature:getPlayer()
if not player then
return true
end
local originalVocationId = player:getStorageValue(12345)
if originalVocationId > 0 then
player:setVocation(Vocation(originalVocationId)) -- Retorna à vocação original
player:setOutfit({lookType = player:getSex() == PLAYERSEX_FEMALE and 136 or 128}) -- Outfit padrão baseado no sexo do jogador
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você saiu da água e voltou ao modo normal.")
end
return true
end
Adicione o seguinte ao seu arquivo actions.xml que fica em data/actions/actions.xml:
<action actionid="1001" script="water_action.lua"/>
No seu editor de mapas, configure os tiles da área de água que o jogador vai entrar para a ActionID 1001.
Observações
A waterOutfit pode ser alterada para qualquer ID de outfit que você deseja usar para o "modo navio".
Lembre-se de ajustar os IDs de acordo com as vocações e outfits que você quer utilizar.
Ao pisar na água, a outfit do jogador mudará, e ao sair, ele retornará à sua vocação e outfit originais.
Isso deve lhe dar uma base para começar a implementar a funcionalidade de navegação que você deseja!