Postado Setembro 3, 2017 7 anos 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!
Postado Setembro 3, 2017 7 anos 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: Email: [email protected] Discord: Dwarfer#2715
Postado Setembro 17, 2017 7 anos 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 Setembro 17, 2017 7 anos 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: Email: [email protected] Discord: Dwarfer#2715
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.