Ir para conteúdo

Featured Replies

Postado
  • Autor

O piso arrumei apenas removi a linha doCreateItem(460, 1, newPos) ai não cria o sqm

 

tag no movements

<movevent type="StepOut" itemid="460" event="script" value="catapulta.lua"/>

 

A modificação é tipo assim tem varias catapultas

 

exemplo

    1\/

2>     <3

    4/\

 

@Edit

isso mesmo uma direção para cada

Editado por Komic (veja o histórico de edições)

  • Respostas 18
  • Visualizações 651
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • data/actions/scripts: local config = {     lookDirection = "sul",          --Direção que a catapulta está olhando.     distance = 6,                   --Quantas posições o jogador vai "pular" (só fu

  • local config = {     lookDirection = "sul",          --Direção que a catapulta está olhando.     distance = 6,                   --Quantas posições o jogador vai "pular" (só funciona com números pares

  • Você instalou corretamente o movement? Se o void não é removido, provavelmente o sistema foi instalado erroneamente. Além de mim, outras pessoas testaram os códigos e disseram funcionar perfeitamente.

Postado

Você quer uma direção para cada catapulta? É isso?

Sobre o erro, já vi o que é. Logo edito meu comentário com a correção.

Mude o movement para este:

local area = createCombatArea{
    {1, 1, 1}, 
    {1, 2, 1}, 
    {1, 1, 1}, 
}
function onStepIn(cid, item, position, fromPosition)
    doAreaCombatHealth(cid, 3080, getThingPos(cid), area, 0, 0, 255)
    return true
end
function onStepOut(cid, item, position, fromPosition)
    local oldtpos = fromPosition
    oldtpos.stackpos = STACKPOS_GROUND
    if getTileThingByPos(oldtpos).itemid >= 1 then
        doRemoveItem(getTileThingByPos(oldtpos).uid, 1)
    end
    return true
end
Tags:
<movevent type="StepOut" itemid="460" event="script" value="nome_do_arquivo.lua"/>
<movevent type="StepIn" itemid="460" event="script" value="nome_do_arquivo.lua"/>

Action com múltiplas catapultas:

local config = {
    catapults = {
        --[actionid] = "direção",
        [6801] = "sul",
        [6802] = "norte",
    },
    distance = 6,                   --Quantas posições o jogador vai "pular" (só funciona com números pares). Distância máxima: 14.
    directions = {
        ["norte"] = 0,
        ["leste"] = 1,
        ["sul"] = 2,
        ["oeste"] = 3,
    },
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
    if config.distance % 2 ~= 0 then
        return doPlayerSendCancel(cid, "Sorry, the catapult isn't available right now.") and print("Trade catapult distance for a odd number.")
    elseif not config.catapults[item.actionid] then
        return doPlayerSendCancel(cid, "Sorry, this catapult isn't available right now.") and print("Catapult without actionid or it isn't configured in table.")
    end
    local direction = config.directions[config.catapults[item.actionid]]
    for i = 1, config.distance do
        addEvent(function()
            if getPlayerLookDir(cid) ~= direction then
                doCreatureSetLookDirection(cid, direction)
            end
            local newPos = getPosByDir(i ~= 1 and getThingPos(cid) or toPosition, direction)
            newPos.z = i <= config.distance / 2 and newPos.z - 1 or newPos.z + 1
            if i < config.distance then
                doAreaCombatHealth(0, 0, newPos, 0, 0, 0, 255)
                doCreateItem(460, 1, newPos)
            end
            doTeleportThing(cid, newPos)
        end, i * 120)
    end
    return true
end
PS: Não se esqueça de registrar os action IDs na tag.
Ex.:
<action actionid="6801;6802" event="script" value="nome_do_arquivo.lua"/>

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Postado
  • Solução

Falta de atenção minha...

Agora sim eu testei. Se não funcionar, bem, você configurou algo errado.

local config = {
    catapults = {
        --[actionid] = "direção",
        [6801] = "sul",
        [6802] = "norte",
    },
    distance = 6,                   --Quantas posições o jogador vai "pular" (só funciona com números pares). Distância máxima: 14.
    directions = {
        ["norte"] = 0,
        ["leste"] = 1,
        ["sul"] = 2,
        ["oeste"] = 3,
    },
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
    if config.distance % 2 ~= 0 then
        return doPlayerSendCancel(cid, "Sorry, the catapult isn't available right now.") and print("Trade catapult distance for a odd number.")
    elseif not config.catapults[item.actionid] then
        return doPlayerSendCancel(cid, "Sorry, this catapult isn't available right now.") and print("Catapult without actionid or it isn't configured in table.")
    end
    local direction = config.directions[config.catapults[item.actionid]]
    for i = 1, config.distance do
        addEvent(function()
            if getPlayerLookDir(cid) ~= direction then
                doCreatureSetLookDirection(cid, direction)
            end
            local newPos = getPosByDir(i ~= 1 and getThingPos(cid) or toPosition, direction)
            newPos.z = i <= config.distance / 2 and newPos.z - 1 or newPos.z + 1
            if i < config.distance then
                doAreaCombatHealth(0, 0, newPos, 0, 0, 0, 255)
                doCreateItem(460, 1, newPos)
            end
            doTeleportThing(cid, newPos)
        end, i * 120)
    end
    return true
end

EDIT: Vi acima que você comentou ter removido a linha que cria o void. NÃO remova-a, por favor.

doCreateItem(460, 1, newPos)

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo