• 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!
  • New resources must be posted under Resources tab. A discussion thread will be created automatically, you can't open threads manually anymore.

Action 8.5 New Doors

Andrespro

New Member
Joined
Mar 18, 2009
Messages
125
Reaction score
4
Location
Santa Cruz - Bolivia
People said that the new 8.50 doors don't work, so , I modified a little the doors.lua script adding a simple code xD.

Let's see:

Delete all other/doors.lua content and paste:

Lua:
local function checkStackpos(item, position)
position.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local thing = getThingfromPos(position)
position.stackpos = STACKPOS_TOP_FIELD
local field = getThingfromPos(position)
if(item.uid ~= thing.uid and thing.itemid >= 100 or field.itemid ~= 0) then
return FALSE
end

return TRUE
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
local nuevas = {
{closed=10269, open=10270},
{closed=10272, open=10273},
{closed=10274, open=10275},
{closed=10276, open=10277},
{closed=10278, open=10279},
{closed=10280, open=10281},
{closed=10282, open=10283},
{closed=10284, open=10285},
{closed=10469, open=10470},
{closed=10471, open=10472},
{closed=10473, open=10474},
{closed=10475, open=10476},
{closed=10478, open=10479},
{closed=10480, open=10481},
{closed=10482, open=10483},
{closed=10484, open=10485},
}
for ia = 1,#nuevas do
if (item.itemid == nuevas[ia].closed) then
doTransformItem(item.uid, nuevas[ia].open)
elseif (item.itemid == nuevas[ia].open) then
doTransformItem(item.uid, nuevas[ia].closed)
end
end

if(getItemLevelDoor(item.itemid) > 0) then
if(item.actionid > 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid))) then
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition, TRUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
end

return TRUE
end

if(isInArray(specialDoors, item.itemid) == TRUE) then
if(item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) ~= -1) then
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition, TRUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.")
end

return TRUE
end

if(isInArray(keys, item.itemid) == TRUE) then
if(itemEx.actionid > 0) then
if(item.actionid == itemEx.actionid) then
if doors[itemEx.itemid] ~= nil then
doTransformItem(itemEx.uid, doors[itemEx.itemid])
return TRUE
end
end

doPlayerSendCancel(cid, "The key does not match.")
return TRUE
end

return FALSE
end

if(isInArray(horizontalOpenDoors, item.itemid) == TRUE and checkStackpos(item, fromPosition) == TRUE) then
local newPosition = toPosition
newPosition.y = newPosition.y + 1
local doorPosition = fromPosition
doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local doorCreature = getThingfromPos(doorPosition)
if(doorCreature.itemid ~= 0) then
if(getTilePzInfo(doorPosition) == TRUE and getTilePzInfo(newPosition) == FALSE and doorCreature.uid ~= cid) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
else
doTeleportThing(doorCreature.uid, newPosition, TRUE)
if(isInArray(closingDoors, item.itemid) ~= TRUE) then
doTransformItem(item.uid, item.itemid - 1)
end
end

return TRUE
end

doTransformItem(item.uid, item.itemid - 1)
return TRUE
end

if(isInArray(verticalOpenDoors, item.itemid) == TRUE and checkStackpos(item, fromPosition) == TRUE) then
local newPosition = toPosition
newPosition.x = newPosition.x + 1
local doorPosition = fromPosition
doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local doorCreature = getThingfromPos(doorPosition)
if(doorCreature.itemid ~= 0) then
if(getTilePzInfo(doorPosition) == TRUE and getTilePzInfo(newPosition) == FALSE and doorCreature.uid ~= cid) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
else
doTeleportThing(doorCreature.uid, newPosition, TRUE)
if(isInArray(closingDoors, item.itemid) ~= TRUE) then
doTransformItem(item.uid, item.itemid - 1)
end
end

return TRUE
end

doTransformItem(item.uid, item.itemid - 1)
return TRUE
end

if(doors[item.itemid] ~= nil and checkStackpos(item, fromPosition) == TRUE) then
if(item.actionid == 0) then
doTransformItem(item.uid, doors[item.itemid])
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.")
end

return TRUE
end

return FALSE
end

Now, at actions.xml add:


Lua:
<action itemid="10269" script="other/doors.lua"/>
<action itemid="10270" script="other/doors.lua"/>
<action itemid="10272" script="other/doors.lua"/>
<action itemid="10273" script="other/doors.lua"/>
<action itemid="10274" script="other/doors.lua"/>
<action itemid="10275" script="other/doors.lua"/>
<action itemid="10276" script="other/doors.lua"/>
<action itemid="10277" script="other/doors.lua"/>
<action itemid="10278" script="other/doors.lua"/>
<action itemid="10279" script="other/doors.lua"/>
<action itemid="10280" script="other/doors.lua"/>
<action itemid="10281" script="other/doors.lua"/>
<action itemid="10282" script="other/doors.lua"/>
<action itemid="10283" script="other/doors.lua"/>
<action itemid="10284" script="other/doors.lua"/>
<action itemid="10285" script="other/doors.lua"/>

<action itemid="10469" script="other/doors.lua"/>
<action itemid="10470" script="other/doors.lua"/>
<action itemid="10471" script="other/doors.lua"/>
<action itemid="10472" script="other/doors.lua"/>
<action itemid="10473" script="other/doors.lua"/>
<action itemid="10474" script="other/doors.lua"/>
<action itemid="10475" script="other/doors.lua"/>
<action itemid="10476" script="other/doors.lua"/>
<action itemid="10478" script="other/doors.lua"/>
<action itemid="10479" script="other/doors.lua"/>
<action itemid="10480" script="other/doors.lua"/>
<action itemid="10481" script="other/doors.lua"/>
<action itemid="10482" script="other/doors.lua"/>
<action itemid="10483" script="other/doors.lua"/>
<action itemid="10484" script="other/doors.lua"/>
<action itemid="10485" script="other/doors.lua"/>
 
Notified that other distribution's have that new door system.

So, all you have to do is copying this on actions.xml:

Lua:
  <action itemid="10269" script="other/doors.lua"/>
<action itemid="10270" script="other/doors.lua"/>
<action itemid="10272" script="other/doors.lua"/>
<action itemid="10273" script="other/doors.lua"/>
<action itemid="10274" script="other/doors.lua"/>
<action itemid="10275" script="other/doors.lua"/>
<action itemid="10276" script="other/doors.lua"/>
<action itemid="10277" script="other/doors.lua"/>
<action itemid="10278" script="other/doors.lua"/>
<action itemid="10279" script="other/doors.lua"/>
<action itemid="10280" script="other/doors.lua"/>
<action itemid="10281" script="other/doors.lua"/>
<action itemid="10282" script="other/doors.lua"/>
<action itemid="10283" script="other/doors.lua"/>
<action itemid="10284" script="other/doors.lua"/>
<action itemid="10285" script="other/doors.lua"/>

<action itemid="10469" script="other/doors.lua"/>
<action itemid="10470" script="other/doors.lua"/>
<action itemid="10471" script="other/doors.lua"/>
<action itemid="10472" script="other/doors.lua"/>
<action itemid="10473" script="other/doors.lua"/>
<action itemid="10474" script="other/doors.lua"/>
<action itemid="10475" script="other/doors.lua"/>
<action itemid="10476" script="other/doors.lua"/>
<action itemid="10478" script="other/doors.lua"/>
<action itemid="10479" script="other/doors.lua"/>
<action itemid="10480" script="other/doors.lua"/>
<action itemid="10481" script="other/doors.lua"/>
<action itemid="10482" script="other/doors.lua"/>
<action itemid="10483" script="other/doors.lua"/>
<action itemid="10484" script="other/doors.lua"/>
<action itemid="10485" script="other/doors.lua"/>
 
doesnt work :( i can open and close doors ofc but i cant buy house using doors ;.;/
 
it will be work on 0.2 ?


i have another doors.lua
 
Last edited:
Back
Top