Ir para conteúdo
  • 0

Estou com esse problema no meu surf


zPhurks

Pergunta

ja adicionei novos tiles mas nada funciona e fica dando esse efeito..

 

surf.lua 

local condition = Condition(CONDITION_OUTFIT)
condition:setTicks(-1)

function onStepIn(creature, item, position, fromPosition)
    if not creature:isPlayer() then
        return false
    end

    -- Verificar se o jogador tem algum efeito ativo (não pode usar surf, fly ou ride)
    local effectId = getEffectIdForPlayer(creature)
    if effectId then
        creature:sendCancelMessage("Desculpe, nao e possivel enquanto estiver com efeito ativo.", TALKTYPE_MONSTER_SAY)
        creature:teleportTo(fromPosition, false)
        return false
    end

    if creature:getStorageValue(storageBike) > 0 then
        creature:sendCancelMessage("Desculpe, nao e possivel enquanto estiver na bicicleta.", TALKTYPE_MONSTER_SAY)
        creature:teleportTo(fromPosition, false)
        return false
    end

    local outfit = 267

    if hasSummons(creature) then
        local summon = creature:getSummon()
        local summonName = summon:getName()
        local summonSpeed = summon:getTotalSpeed()
        local monsterType = MonsterType(summonName)
        local surfOutfit = monsterType:isSurfable()

        if surfOutfit > 0 then
            if surfOutfit > 1 then outfit = surfOutfit end
            creature:changeSpeed(summonSpeed)
            creature:setStorageValue(storageSurf, outfit)
            condition:setOutfit({lookType = outfit})
            creature:addCondition(condition)
            doRemoveSummon(creature:getId(), false, nil, false)
            creature:say(summonName .. ", vamos surfar!", TALKTYPE_MONSTER_SAY)
        else
            creature:sendCancelMessage("Desculpe, nao e possivel. Seu pokemon nao pode surfar.", TALKTYPE_MONSTER_SAY)
            creature:teleportTo(fromPosition, false)
            return false        
        end
    else
        if creature:getStorageValue(storageSurf) == -1 then
            creature:sendCancelMessage("Desculpe, nao e possivel. Voce precisa de um pokemon que surfar.", TALKTYPE_MONSTER_SAY)
            creature:teleportTo(fromPosition, false)
            return false
        else
            local surfOutfit = creature:getStorageValue(storageSurf)
            condition:setOutfit({lookType = surfOutfit})
            creature:addCondition(condition)            
        end
    end
    return true
end

function onStepOut(creature, item, position, fromPosition)
    if not creature:isPlayer() then
        return false
    end
    local tile = Tile(creature:getPosition())

    if not tile or not tile:getGround() then
        return false
    end

    local tileId = tile:getGround():getId()
    if (not isInArray(waterIds, tileId) and position == fromPosition) or (creature:getStorageValue(storageDive) > 0) then
        creature:changeSpeed(creature:getBaseSpeed()-creature:getSpeed())
        creature:setStorageValue(storageSurf, -1)
        doReleaseSummon(creature:getId(), creature:getPosition(), false, false)

        local summon = creature:getSummon()
        if summon then
            local summonName = summon:getName() 
            creature:say(summonName .. ", Obrigado!", TALKTYPE_MONSTER_SAY)
        else
            creature:say("Obrigado!", TALKTYPE_MONSTER_SAY)
        end
    end

    if not (creature:getStorageValue(storageRide) > 0 or creature:getStorageValue(storageFly) > 0 or creature:getStorageValue(storageBike) > 0 or creature:getStorageValue(storageDive) > 0) then
        creature:removeCondition(CONDITION_OUTFIT)
    end
    return true
end
 

image.thumb.png.47ec28faf873c2221fd78935077ed77a.png

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Quando postar um script, coloque dentro do bloco "código", para facilitar a leitura e deixar o tópico menos poluído.

 

Esse script que você postou é de algum arquivo que fica na pasta Data/Lib, certo?

 

Informe o código presente no arquivo Data/Movements/Scripts/surf.lua

Link para o comentário
Compartilhar em outros sites

  • 0
local waterIds = {493, 4608} -- IDs das tiles de água, adicione aqui os IDs específicos das tiles de água que você está usando.
local storageSurf = 1000 -- ID de armazenamento para a surf
local storageBike = 1001 -- ID de armazenamento para a bicicleta
local storageDive = 1002 -- ID de armazenamento para mergulho
local storageRide = 1003 -- ID de armazenamento para montaria
local storageFly = 1004 -- ID de armazenamento para voar

local condition = Condition(CONDITION_OUTFIT)
condition:setTicks(-1)

function getEffectIdForPlayer(player)
    -- Esta função deve retornar o ID do efeito se o jogador estiver com algum efeito ativo
    -- Exemplo:
    -- if player:getCondition(CONDITION_INFIGHT) then
    --     return CONDITION_INFIGHT
    -- end
    -- Adicione aqui as verificações de condição que desejar
    return nil
end

function hasSummons(player)
    -- Função para verificar se o jogador tem um summon
    return #player:getSummons() > 0
end

function doRemoveSummon(cid, instant, position, forced)
    -- Função para remover o summon do jogador
    local player = Player(cid)
    if player then
        local summons = player:getSummons()
        for _, summon in ipairs(summons) do
            summon:remove()
        end
    end
end

function doReleaseSummon(cid, position, instant, forced)
    -- Função para liberar o summon do jogador
    local player = Player(cid)
    if player then
        local summons = player:getSummons()
        for _, summon in ipairs(summons) do
            summon:teleportTo(position)
        end
    end
end

function onStepIn(creature, item, position, fromPosition)
    if not creature:isPlayer() then
        return false
    end

    -- Verificar se o jogador tem algum efeito ativo (não pode usar surf, fly ou ride)
    local effectId = getEffectIdForPlayer(creature)
    if effectId then
        creature:sendCancelMessage("Desculpe, não é possível enquanto estiver com efeito ativo.")
        creature:teleportTo(fromPosition, false)
        return false
    end

    if creature:getStorageValue(storageBike) > 0 then
        creature:sendCancelMessage("Desculpe, não é possível enquanto estiver na bicicleta.")
        creature:teleportTo(fromPosition, false)
        return false
    end

    local outfit = 267

    if hasSummons(creature) then
        local summon = creature:getSummons()[1]
        local summonName = summon:getName()
        local summonSpeed = summon:getTotalSpeed()
        local monsterType = MonsterType(summonName)
        local surfOutfit = monsterType:isSurfable()

        if surfOutfit > 0 then
            if surfOutfit > 1 then outfit = surfOutfit end
            creature:changeSpeed(summonSpeed)
            creature:setStorageValue(storageSurf, outfit)
            condition:setOutfit({lookType = outfit})
            creature:addCondition(condition)
            doRemoveSummon(creature:getId(), false, nil, false)
            creature:say(summonName .. ", vamos surfar!", TALKTYPE_MONSTER_SAY)
        else
            creature:sendCancelMessage("Desculpe, não é possível. Seu Pokémon não pode surfar.")
            creature:teleportTo(fromPosition, false)
            return false        
        end
    else
        if creature:getStorageValue(storageSurf) == -1 then
            creature:sendCancelMessage("Desculpe, não é possível. Você precisa de um Pokémon que possa surfar.")
            creature:teleportTo(fromPosition, false)
            return false
        else
            local surfOutfit = creature:getStorageValue(storageSurf)
            condition:setOutfit({lookType = surfOutfit})
            creature:addCondition(condition)            
        end
    end
    return true
end

function onStepOut(creature, item, position, fromPosition)
    if not creature:isPlayer() then
        return false
    end
    local tile = Tile(creature:getPosition())

    if not tile or not tile:getGround() then
        return false
    end

    local tileId = tile:getGround():getId()
    if (not isInArray(waterIds, tileId) and position == fromPosition) or (creature:getStorageValue(storageDive) > 0) then
        creature:changeSpeed(creature:getBaseSpeed()-creature:getSpeed())
        creature:setStorageValue(storageSurf, -1)
        doReleaseSummon(creature:getId(), creature:getPosition(), false, false)

        local summon = creature:getSummons()[1]
        if summon then
            local summonName = summon:getName() 
            creature:say(summonName .. ", obrigado!", TALKTYPE_MONSTER_SAY)
        else
            creature:say("Obrigado!", TALKTYPE_MONSTER_SAY)
        end
    end

    if not (creature:getStorageValue(storageRide) > 0 or creature:getStorageValue(storageFly) > 0 or creature:getStorageValue(storageBike) > 0 or creature:getStorageValue(storageDive) > 0) then
        creature:removeCondition(CONDITION_OUTFIT)
    end
    return true
end

 

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...