• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Close door with mwall infront.

Ghazer

Member
Joined
Mar 13, 2009
Messages
350
Reaction score
6
Hello...

I cant close door if have mwall infront, whats problem? any idea?

SwX8G.png


I want fix this please
 

Attachments

C:\Users\XXXXXXXXX\Desktop\OTX WAR\data\movements\scripts


Code:
function onStepOut(cid, item, position, lastPosition)
	if(getTileInfo(position).creatures > 0) then
		return true
	end

	local newPosition = {x = position.x + 1, y = position.y, z = position.z}
	local query = doTileQueryAdd(cid, newPosition)
	if(query == RETURNVALUE_NOTENOUGHROOM) then
		newPosition.x = newPosition.x - 1
		newPosition.y = newPosition.y + 1
		query = doTileQueryAdd(cid, newPosition) -- repeat until found
	end

	if(query == RETURNVALUE_NOERROR and query == RETURNVALUE_NOTENOUGHROOM) then
		doRelocate(position, newPosition)
	end

	position.stackpos = -1
	local i, tileItem, tileCount = 1, {uid = 1}, getTileThingByPos(position)
	while(tileItem.uid ~= 0 and i < tileCount) do
		position.stackpos = i
		tileItem = getTileThingByPos(position)
		if(tileItem.uid ~= 0 and tileItem.uid ~= item.uid and isMovable(tileItem.uid)) then
			doRemoveItem(tileItem.uid)
		else
			i = i + 1
		end
	end

	local itemInfo = getItemInfo(item.itemid)
	doTransformItem(item.uid, itemInfo.transformUseTo)
	return true
end

function onStepOut(cid, item, position, lastPosition)
	local itemInfo = getItemInfo(item.itemid)
	doTransformItem(item.uid, itemInfo.transformUseTo)
	return true
end
 
Try this one.

LUA:
function onStepOut(cid, item, position, fromPosition)
    if(getTileInfo(position).creatures > 0) then
        return true
    end


    local newPosition = {x = position.x, y = position.y, z = position.z}
    if(isInArray(verticalOpenDoors, item.itemid)) then
        newPosition.x = newPosition.x + 1
    else
        newPosition.y = newPosition.y + 1
    end


    doRelocate(position, newPosition)
    local tmpPos = position
    tmpPos.stackpos = -1


    local i, tmpItem, tileCount = 1, {uid = 1}, getTileThingByPos(tmpPos)
    while(tmpItem.uid ~= 0 and i < tileCount) do
        tmpPos.stackpos = i
        tmpItem = getTileThingByPos(tmpPos)
        if(tmpItem.uid ~= item.uid and tmpItem.uid ~= 0 and isMoveable(tmpItem.uid)) then
            doRemoveItem(tmpItem.uid)
        else
            i = i + 1
        end
    end


    doTransformItem(item.uid, item.itemid - 1)
    return true
end
 
It's working for me
LUA:
function onStepOut(cid, item, position, fromPosition)
	if(getTileInfo(position).creatures > 0) then
		return true
	end

	local newPosition = {x = position.x, y = position.y, z = position.z}
	if(isInArray(verticalOpenDoors, item.itemid)) then
		newPosition.x = newPosition.x + 1
	else
		newPosition.y = newPosition.y + 1
	end

	doRelocate(position, newPosition)
	local tmpPos = position
	tmpPos.stackpos = -1

	local i, tmpItem, tileCount = 1, {uid = 1}, getTileThingByPos(tmpPos)
	while(tmpItem.uid ~= 0 and i < tileCount) do
		tmpPos.stackpos = i
		tmpItem = getTileThingByPos(tmpPos)
		if(tmpItem.uid ~= item.uid and tmpItem.uid ~= 0 and isMoveable(tmpItem.uid)) then
			doRemoveItem(tmpItem.uid)
		else
			i = i + 1
		end
	end

	doTransformItem(item.uid, item.itemid - 1)
	return true
end
 
what I need check?

XML:
	<!-- (Level & quest) doors -->
	<movevent type="StepOut" itemid="1228" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1230" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1246" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1248" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1260" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1262" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="3541" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="3550" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5104" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5113" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5122" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5131" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5293" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5295" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1224" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1226" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1242" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1244" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1256" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="1258" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="3543" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="3552" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5106" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5115" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5124" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5133" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5289" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5291" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5746" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="5749" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6203" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6205" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6207" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6209" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6260" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6262" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6264" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6266" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6897" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6899" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6906" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="6908" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="7039" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="7041" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="7048" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="7050" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="8552" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="8554" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="8556" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="8558" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="9176" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="9178" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="9180" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="9182" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="9278" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="9280" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="9282" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="9284" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10279" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10281" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10283" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10285" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10474" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10476" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10483" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10485" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10777" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10781" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10783" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10786" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10790" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="10792" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="12096" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="12098" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="12103" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="12105" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="12194" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="12196" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="12203" event="script" value="closingdoor.lua"/>
	<movevent type="StepOut" itemid="12205" event="script" value="closingdoor.lua"/>
	<movevent type="StepIn" itemid="1228" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1230" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1246" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1248" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1260" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1262" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="3541" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="3550" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5104" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5113" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5122" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5131" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5293" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5295" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1224" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1226" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1242" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1244" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1256" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="1258" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="3543" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="3552" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5106" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5115" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5124" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5133" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5289" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5291" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5746" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="5749" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6203" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6205" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6207" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6209" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6260" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6262" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6264" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6266" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6897" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6899" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6906" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="6908" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="7039" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="7041" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="7048" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="7050" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="8552" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="8554" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="8556" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="8558" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="9176" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="9178" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="9180" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="9182" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="9278" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="9280" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="9282" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="9284" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10279" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10281" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10283" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10285" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10474" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10476" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10483" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10485" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10777" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10781" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10783" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10786" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10790" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="10792" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="12096" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="12098" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="12103" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="12105" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="12194" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="12196" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="12203" event="script" value="walkback.lua"/>
	<movevent type="StepIn" itemid="12205" event="script" value="walkback.lua"/>
 
Test this magic wall rune.lua

LUA:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end
 
You are looking at completly wrong file xD

data/actions/scripts/other/doors.lua:
LUA:
local function doorEnter(cid, uid, id, position)
	doTransformItem(uid, id)
	doTeleportThing(cid, position)
	return true
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(fromPosition.x ~= CONTAINER_POSITION and isPlayerPzLocked(cid) and getTileInfo(fromPosition).protection) then
		doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
		return true
	end

	local locked = DOORS[item.itemid]
	if(locked) then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.")
		return true
	end

	local door = getItemInfo(item.itemid)
	if(door.levelDoor > 0) then
		if(item.aid == 189) then
			if(not isPremium(cid)) then
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
				return true
			end

			return doorEnter(cid, item.uid, door.transformUseTo, toPosition)
		end

		local gender = item.aid - 186
		if(isInArray({PLAYERSEX_FEMALE,  PLAYERSEX_MALE}, gender)) then
			if(gender ~= getPlayerSex(cid)) then
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
				return true
			end

			return doorEnter(cid, item.uid, door.transformUseTo, toPosition)
		end

		local skull = item.aid - 180
		if(skull >= SKULL_NONE and skull <= SKULL_BLACK) then
			if(skull ~= getCreatureSkullType(cid)) then
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
				return true
			end

			return doorEnter(cid, item.uid, door.transformUseTo, toPosition)
		end

		local group = item.aid - 150
		if(group >= 0 and group < 30) then
			if(group > getPlayerGroupId(cid)) then
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
				return true
			end

			return doorEnter(cid, item.uid, door.transformUseTo, toPosition)
		end

		local vocation = item.aid - 100
		if(vocation >= 0 and vocation < 50) then
			local vocationEx = getVocationInfo(getPlayerVocation(cid))
			if(vocationEx.id ~= vocation and vocationEx.fromVocation ~= vocation) then
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
				return true
			end

			return doorEnter(cid, item.uid, door.transformUseTo, toPosition)
		end

		if(item.aid == 190 or (item.aid ~= 0 and getPlayerLevel(cid) >= (item.aid - door.levelDoor))) then
			return doorEnter(cid, item.uid, door.transformUseTo, toPosition)
		end

		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
		return true
	end

	if(door.specialDoor) then
		if(item.aid == 100 or (item.aid ~= 0 and getCreatureStorage(cid, item.aid) > 0)) then
			return doorEnter(cid, item.uid, door.transformUseTo, toPosition)
		end

		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.")
		return true
	end

	toPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
	local fields, thing = getTileItemsByType(fromPosition, ITEM_TYPE_MAGICFIELD), getThingFromPosition(toPosition)
	if(item.uid ~= thing.uid and thing.itemid >= 100 and table.maxn(fields) ~= 0) then
		return true
	end

	local doorCreature = getThingFromPosition(toPosition)
	if(doorCreature.itemid ~= 0) then
		toPosition.x = toPosition.x + 1
		
		local tileItem = getTileItemById(toPosition, 1497)
		if tileItem.uid > 0 then
			doRemoveItem(tileItem.uid)
			doSendMagicEffect(toPosition, CONST_ME_POFF)
		end
		
		local query = doTileQueryAdd(doorCreature.uid, toPosition, 20)
		if(query == RETURNVALUE_NOTPOSSIBLE) then
			toPosition.x = toPosition.x - 1
			toPosition.y = toPosition.y + 1
			tileItem = getTileItemById(toPosition, 1497)
			
			if tileItem.uid > 0 then
				doRemoveItem(tileItem.uid)
				doSendMagicEffect(toPosition, CONST_ME_POFF)
			end
			
			query = doTileQueryAdd(doorCreature.uid, toPosition, 20)
		end

		if(query ~= RETURNVALUE_NOERROR) then
			doPlayerSendDefaultCancel(cid, query)
			return true
		end

		doTeleportThing(doorCreature.uid, toPosition)
		if(not door.closingDoor) then
			doTransformItem(item.uid, door.transformUseTo)
		end

		return true
	end

	return false
end

Try that or post your file.
 
Back
Top