Ir para conteúdo

Featured Replies

Postado

Olá pessoal

Preciso de um script de "clean"

que dê clean somente em uma coordenada específica , ou em várias coordenadas específicas , e que soltasse um efeito "poff" se possível..

Mas ficarei grato de qualquer forma , com , ou sem efeito , e presumo estar trazendo uma idéia que pode funcionar para mais pessoas

 

Minha distro: 0.3.6

Versão: 8.60

Remere's: 2.2

 

Tentei fazer um , não consegui

Spoiler

local config = {
        positions = { x = 150, y = 55, z = 7 },
}

function executeClean()
        doClean(positions)
    doBroadcastMessage("ms2")
    return true
end

function onThink(interval, lastExecution, thinkInterval)
    doBroadcastMessage("ms2")
    addEvent(executeClean, 0)
    return true
end

rs , eu não consegui , mas antes de pedir resolvi tentar :D

 

Enfim , obrigado á quem leu até aqui..

Quem trazer a solução ganha rep+

Sucesso!

Resolvido por Dwarfer

Ir para solução
  • Respostas 8
  • Visualizações 1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

Postado
  • Solução

Em globalevents/scripts crie um arquivo:

 

cleanplaces.lua

 

local areas = {
[1] = {{x = 1, y = 1, z = 1}, 2, 2},
[2] = {{x = 1, y = 1, z = 1}, 1, 1},
[3] = {{x = 1, y = 1, z = 1}, 3, 3},
[4] = {{x = 1, y = 1, z = 1}, 3, 3}
}

function onThink(interval)
for i, v in pairs(areas) do
    for _, pos in ipairs(getArea(unpack(v))) do
        doCleanTile(pos)
        doSendMagicEffect(pos, CONST_ME_POFF)
    end
end
return true
end

 

Em globalevents.xml, adicione a tag: <globalevent name="CleanPlaces" interval="30000" event="script" value="cleanplaces.lua"/>

 

Edite o interval para o tempo que você quer que o clean seja executado. Coloquei como exemplo 30 segundos.

 

Para configurar o script:

 

{{x = 1, y = 1, z = 1}, 2, 2}, --> {{posição do centro da sua área}, variação para a posição X a partir do centro, variação para a posição Y a partir do centro}

 

Neste caso, está cobrindo uma área de 5x5 sqms. Caso fosse 1,1 seria uma área de 3x3 e por aí vai. É só configurar para a sua área.

 

 

Contato:

 

  • 2 weeks later...
Postado
Em 03/09/2017 em 20:45, Dwarfer disse:

Em globalevents/scripts crie um arquivo:

 

cleanplaces.lua

 


local areas = {
[1] = {{x = 1, y = 1, z = 1}, 2, 2},
[2] = {{x = 1, y = 1, z = 1}, 1, 1},
[3] = {{x = 1, y = 1, z = 1}, 3, 3},
[4] = {{x = 1, y = 1, z = 1}, 3, 3}
}

function onThink(interval)
for i, v in pairs(areas) do
    for _, pos in ipairs(getArea(unpack(v))) do
        doCleanTile(pos)
        doSendMagicEffect(pos, CONST_ME_POFF)
    end
end
return true
end

 

Em globalevents.xml, adicione a tag: <globalevent name="CleanPlaces" interval="30000" event="script" value="cleanplaces.lua"/>

 

Edite o interval para o tempo que você quer que o clean seja executado. Coloquei como exemplo 30 segundos.

 

Para configurar o script:

 

{{x = 1, y = 1, z = 1}, 2, 2}, --> {{posição do centro da sua área}, variação para a posição X a partir do centro, variação para a posição Y a partir do centro}

 

Neste caso, está cobrindo uma área de 5x5 sqms. Caso fosse 1,1 seria uma área de 3x3 e por aí vai. É só configurar para a sua área.

 

 

Teria como fazer pra não da clean em certo item? por exemplo não da clean no gold!

Postado
8 horas atrás, FearWar disse:

Teria como fazer pra não da clean em certo item? por exemplo não da clean no gold!

 

Spoiler

local areas = {
[1] = {{x = 1, y = 1, z = 1}, 2, 2},
[2] = {{x = 1, y = 1, z = 1}, 1, 1},
[3] = {{x = 1, y = 1, z = 1}, 3, 3},
[4] = {{x = 1, y = 1, z = 1}, 3, 3}
}

local ignoredList = {2152, 2148, 2160} -- itens ignorados

function onThink(interval)
for k, v in pairs(areas) do
    for _, pos in ipairs(getArea(unpack(v))) do
        for i = 0, 255 do
            pos.stackpos = i
            local tile = getTileThingByPos(pos)
            if tile.uid > 0 and isMovable(tile.uid) then
                if not hasIgnoredItem(pos, ignoredList) then
                    doRemoveItem(getThingFromPos(pos).uid)
                end
            end
        end
        doSendMagicEffect(pos, CONST_ME_POFF)
    end
end
return true
end

function hasIgnoredItem(pos, ignoredList)
    for i = 1, #ignoredList do
        if getThingFromPos(pos).itemid == ignoredList[i] then
            return true
        end
    end
    return false
end

 

 

 

Contato:

 

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