See if you like this one:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
local unwanted_tilestates = { TILESTATE_PROTECTIONZONE, TILESTATE_HOUSE, TILESTATE_FLOORCHANGE, TILESTATE_TELEPORT, TILESTATE_BLOCKSOLID, TILESTATE_BLOCKPATH }
function onCastSpell(creature...