Ir para conteúdo

Ajuda a criar uma nova porta para houses


Developer Berg

Posts Recomendados

só usar map editor coloca chão azul porta pode colocar qual quer uma

e fazer sua casa não sou bom em mapper

veja esse video

acho que vc n entendeu '-' n é editar no mapa, é tipo criar uma porta nova, tipo pegar o id dela no Object builder e colocar em alguma script pra ela poder ficar abrindo e fechando '-' tipo eu tenho as sprites da porta aqui + quando eu adiciono no meu dat e spr e crio um id pra ela no otitemeditor, e coloco a porta no meu mapa ela buga, n abre e n fecha

Link para o comentário
Compartilhar em outros sites

ata então só ir na pasta actions

data\actions\scripts

procurar por

doors.lua

e adicionar os IDS

 

edit

então USE essa script

data\actions\scripts\nome_do_arquivo.lua

portas = {
    [1541] = {1542},
    [1542] = {1541},
    [1219] = {1220},
    [1220] = {1219},
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    numero_do_item = item.itemid
    if portas[numero_do_item] then
        doTransformItem(item.uid,portas[numero_do_item][1])
    end
    return 1
end 

TAG

<action itemid="1219;1220;1541;1542" script="nome_do_arquivo.lua"/>

nessa parte você tem que coloca id da porta aberta e fechada nas duas parte

vou deixa em vermelho e azul a mesma porta repare

portas = {
[1541] = {1542},
[1542] = {1541},
[1219] = {1220},
[1220] = {1219},
}

azul porta aberta vermelho porta fechada

não esqueça de editar id do TAG tbm

Editado por notle2012
Link para o comentário
Compartilhar em outros sites

como eu adiciono no doors.lua ? olha

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

e também achei essas tags aqui

<action fromid="1209" toid="1214" event="script" value="other/doors.lua"/>
	<action fromid="1219" toid="1262" event="script" value="other/doors.lua"/>
	<action fromid="1539" toid="1542" event="script" value="other/doors.lua"/>
	<action fromid="2086" toid="2092" event="script" value="other/doors.lua"/>
	<action fromid="3535" toid="3552" event="script" value="other/doors.lua"/>
	<action fromid="4913" toid="4918" event="script" value="other/doors.lua"/>
	<action fromid="5082" toid="5085" event="script" value="other/doors.lua"/>
	<action fromid="5098" toid="5145" event="script" value="other/doors.lua"/>
	<action fromid="5278" toid="5295" event="script" value="other/doors.lua"/>
	<action fromid="5515" toid="5518" event="script" value="other/doors.lua"/>
	<action fromid="5732" toid="5737" event="script" value="other/doors.lua"/>
	<action fromid="5745" toid="5749" event="script" value="other/doors.lua"/>
	<action fromid="6192" toid="6209" event="script" value="other/doors.lua"/>
	<action fromid="6249" toid="6266" event="script" value="other/doors.lua"/>
	<action fromid="6795" toid="6802" event="script" value="other/doors.lua"/>
	<action fromid="6891" toid="6908" event="script" value="other/doors.lua"/>
	<action fromid="7033" toid="7050" event="script" value="other/doors.lua"/>
	<action fromid="7054" toid="7057" event="script" value="other/doors.lua"/>
	<action fromid="8541" toid="8558" event="script" value="other/doors.lua"/>

mas ainda quando eu adiciono nas tags e mesmo com a script que vc mandou continua bugada '-'

Link para o comentário
Compartilhar em outros sites

quando você cria porta com god a porta aberta e fechada ta normal?

se sim os ID são próximos

exemplo ID 9000 e ID 9001

adicionar

isso na TAG

 

<action fromid="IDQUEVEMPRIMEIRO" toid="IDQUEVEMDEPOIS" event="script" value="other/doors.lua"/>

nesse caso id ia ser

<action fromid="9000" toid="9001" event="script" value="other/doors.lua"/>

 

se você for fazer uma fileira de porta tinha que cria ids proximos

pra fazer assim

<action fromid="ID_mais_baixo" toid="ATE_esse_ID" event="script" value="other/doors.lua"/>

 

 

qual são os ids que você uso?

Editado por notle2012
Link para o comentário
Compartilhar em outros sites

quando você cria porta com god a porta aberta e fechada ta normal?

se sim os ID são próximos

exemplo ID 9000 e ID 9001

adicionar

isso na TAG

 

<action fromid="IDQUEVEMPRIMEIRO" toid="IDQUEVEMDEPOIS" event="script" value="other/doors.lua"/>

nesse caso id ia ser

<action fromid="9000" toid="9001" event="script" value="other/doors.lua"/>

 

se você for fazer uma fileira de porta tinha que cria ids proximos

pra fazer assim

<action fromid="ID_mais_baixo" toid="ATE_esse_ID" event="script" value="other/doors.lua"/>

 

 

qual são os ids que você uso?

eu coloquei as tags assim

<action fromid="3283" toid="3284" event="script" value="other/doors.lua"/>
<action fromid="3285" toid="3286" event="script" value="other/doors.lua"/>
<action fromid="3287" toid="3288" event="script" value="other/doors.lua"/>

e quando eu clico na porta pra ela abrir, ela n abre, e quando eu aperto ctrl+ botão do mouse, nem aparece o nome " Open " ou " Closed " '-'

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

O tópico foi fechado e movido para lixeira por estar inativo a mais de 10 dias. Caso seja preciso reabrir o mesmo, favor entrar em contato com a equipe.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...