Ir para conteúdo

[Help] Gate Of Expertise


darkeyren

Posts Recomendados

Ae galera , queria 1 ajuda de vocês aqe no meu PokeTibia , a gate of expertise não esta dando certo , tem umas que aparece 1 stone quando abre ela , tem outras que nem abre alguem tem como resolver isso ae ?

 

Print :

 

wowng.jpg

 

 

Meu Doors.lua olha ae

 

 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)

return (item.uid == thing.uid or thing.itemid < 100 or field.itemid == 0)
end

local function doorEnter(cid, item, toPosition)
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition)
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

if(getItemLevelDoor(item.itemid) > 0) then
	if(item.actionid == 189) then
		if(not isPremium(cid)) then
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
			return true
		end

		doorEnter(cid, item, toPosition)
		return true
	end

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

		doorEnter(cid, item, toPosition)
		return true
	end

	local skull = item.actionid - 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

		doorEnter(cid, item, toPosition)
		return true
	end

	local group = item.actionid - 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

		doorEnter(cid, item, toPosition)
		return true
	end

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

		doorEnter(cid, item, toPosition)
		return true
	end

	if(item.actionid == 190 or (item.actionid ~= 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid)))) then
		doorEnter(cid, item, toPosition)
	else
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
	end

	return true
end

if(isInArray(specialDoors, item.itemid)) then
	if(item.actionid == 100 or (item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) > 0)) then
		doorEnter(cid, item, toPosition)
	else
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.")
	end

	return true
end

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

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

	return false
end

if(isInArray(horizontalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) 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
		local pzDoorPosition = getTileInfo(doorPosition).protection
		local pzNewPosition = getTileInfo(newPosition).protection
		if((pzDoorPosition and not pzNewPosition and doorCreature.uid ~= cid) or
			(not pzDoorPosition and pzNewPosition and doorCreature.uid == cid and isPlayerPzLocked(cid))) then
			doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
		else
			doTeleportThing(doorCreature.uid, newPosition)
			if(not isInArray(closingDoors, item.itemid)) 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) and checkStackpos(item, fromPosition)) 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(getTileInfo(doorPosition).protection and not getTileInfo(newPosition).protection and doorCreature.uid ~= cid) then
			doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
		else
			doTeleportThing(doorCreature.uid, newPosition)
			if(not isInArray(closingDoors, item.itemid)) 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)) 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

Link para o comentário
Compartilhar em outros sites

Antes de tudo, se for editar reinicie o servidor, esse negoço de reload não funciona direito.

 

Pra colocar level na porta eu simplesmente clico com o botão direito e coloco em actionid: 1100 ( 1 100 ) 100=level da porta.

Link para o comentário
Compartilhar em outros sites

Eu sei eu tambem fasso isso , só qe não esta dando ' eu tentei troca meu doors.lua por outro de outro servidor , a Gate Of Expertise funciona, de booa só qe as outras gates não abre , nem de house nem de nada ! '

Link para o comentário
Compartilhar em outros sites

o problema deve ter algo a ver com ids.

 

os ids de portas sao x, a porta aberta é x+1, se vc mudar o item do x+1, em vez de trasformar p ela aberta, vai tranformar no item q ocupou o id x+1.

 

tenta checar isso

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...