mirror of
https://github.com/ErikasKontenis/SabrehavenServer.git
synced 2025-05-04 03:09:20 +02:00
rope for 7.4
This commit is contained in:
parent
9d076f1000
commit
bf80fa8919
@ -8,39 +8,30 @@ local holeSpots = {
|
|||||||
595, 607, 609, 610, 615, 1066, 1067, 1080
|
595, 607, 609, 610, 615, 1066, 1067, 1080
|
||||||
}
|
}
|
||||||
|
|
||||||
function onUse(player, item, fromPosition, target, toPosition)
|
local pools = {2886, 2887, 2888, 2889, 2890, 2891, 2895, 2896, 2897, 2898, 2899, 2900}
|
||||||
local tile = Tile(toPosition)
|
|
||||||
if not tile then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if not tile:getGround() then
|
-- Rope for 7.4 protocol.
|
||||||
return false
|
function onUse(cid, item, frompos, item2, topos)
|
||||||
|
local newPos = {x = topos.x, y = topos.y, z = topos.z, stackpos = 0}
|
||||||
|
local groundItem = getThingfromPos(newPos)
|
||||||
|
local blockingItem = getThingfromPos({x = topos.x, y = topos.y, z = topos.z, stackpos = 255})
|
||||||
|
if table.contains(ropeSpots, groundItem.itemid) then
|
||||||
|
newPos.y = newPos.y + 1
|
||||||
|
newPos.z = newPos.z - 1
|
||||||
|
if((blockingItem.itemid > 0 and not isInArray(pools, blockingItem.itemid)) or isCreature(blockingItem.uid)) then
|
||||||
|
doPlayerSendCancel(cid, "You cannot use this object.")
|
||||||
|
else
|
||||||
|
doTeleportThing(cid, newPos)
|
||||||
end
|
end
|
||||||
|
elseif table.contains(holeSpots, groundItem.itemid) then
|
||||||
if table.contains(ropeSpots, tile:getGround():getId()) and tile:getThingCount() <= 1 then
|
newPos.y = newPos.y + 1
|
||||||
player:teleportTo(target:getPosition():moveRel(0, 1, -1))
|
local downPos = {x = topos.x, y = topos.y, z = topos.z + 1, stackpos = 255}
|
||||||
return true
|
local downItem = getThingfromPos(downPos)
|
||||||
elseif table.contains(holeSpots, tile:getGround():getId()) or target:getId() == 435 then
|
if(downItem.itemid > 0) then
|
||||||
local tile = Tile(target:getPosition():moveRel(0, 0, 1))
|
doTeleportThing(downItem.uid, newPos)
|
||||||
if not tile then
|
else
|
||||||
return false
|
doPlayerSendCancel(cid, "You cannot use this object.")
|
||||||
end
|
end
|
||||||
|
|
||||||
local thing = tile:getTopCreature()
|
|
||||||
if not thing then
|
|
||||||
thing = tile:getTopVisibleThing()
|
|
||||||
end
|
|
||||||
|
|
||||||
if thing:isCreature() then
|
|
||||||
thing:teleportTo(target:getPosition():moveRel(0, 1, 0), false)
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
if thing:isItem() and thing:getType():isMovable() then
|
|
||||||
thing:moveTo(target:getPosition():moveRel(0, 1, 0))
|
|
||||||
return true
|
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user