• 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!

[movements] Swim System

thalesvasc

New Member
Joined
Sep 28, 2010
Messages
42
Reaction score
1
Hello, I want some1 help me cuz players are changing the outfit when they walk on the fallen trees, it's very strange lmao...the monsters are walking through the fallen trees normally...So, what do I have to change, ou add to the swim script?

I want that players swim ONLY in Protection Zones...Here is the script swimming.lua:

Code:
local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

local BORDERS = {
	[7943] = {x = 0, y = -2, back = SOUTH},
	[7944] = {x = -2, y = 0, back = EAST},
	[7945] = {x = 0, y = 2, back = NORTH},
	[7946] = {x = 2, y = 0, back = WEST},
	[7947] = {x = 2, y = 1, back = WEST},
	[7948] = {x = -2, y = 1, back = NORTH},
	[7949] = {x = 2, y = -1, back = WEST},
	[7950] = {x = -2, y = -1, back = EAST},
	[7951] = {x = 2, y = 2, back = WEST},
	[7952] = {x = -2, y = 2, back = NORTH},
	[7953] = {x = 2, y = -2, back = WEST},
	[7954] = {x = -2, y = -2, back = SOUTH}
}

BORDERS[4828] = BORDERS[7943]
BORDERS[4829] = BORDERS[7946]
BORDERS[4830] = BORDERS[7945]
BORDERS[4831] = BORDERS[7944]

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
	if(not isPlayer(cid)) then
		return true
	end

	local border = BORDERS[item.itemid]
	if(not border) then
		return false
	end

	local pos, newPos = getCreaturePosition(cid), {}
	newPos = pos
	newPos.x = pos.x + border.x
	newPos.y = pos.y + border.y

	if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then
		doMoveCreature(cid, border.back)
		doRemoveCondition(cid, CONDITION_OUTFIT)
	else
		if(doTileQueryAdd(cid, pos, 4) ~= RETURNVALUE_NOERROR) then
			return false
		end

		local tmp = getCreaturePosition(cid)
		doTeleportThing(cid, newPos)

		if(not isPlayerGhost(cid)) then
			doSendMagicEffect(tmp, CONST_ME_POFF)
			doSendMagicEffect(newPos, CONST_ME_WATERSPLASH)
		end

		doRemoveConditions(cid, true)
		doSetCreatureOutfit(cid, outfit, -1)
	end

	return true
end


Thanks a lot, and I'll REP +
:thumbup:
 
Last edited:
Back
Top