Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Galera, estou com um bug em meu servidor onde a porta das houses abrem mas não fecham...

 

Não sei exatamente o que pode estar ocorrendo, mas aqui vai o meu doors.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)

	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 é assim que está em meu actions.lua:

	<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"/>
	<action fromid="9165" toid="9184" event="script" value="other/doors.lua"/>
	<action fromid="9267" toid="9284" event="script" value="other/doors.lua"/>
	<action itemid="10032" event="script" value="other/doors.lua"/>
	<action itemid="10091" event="script" value="other/doors.lua"/>
	<action fromid="10268" toid="10285" event="script" value="other/doors.lua"/>
	<action fromid="10468" toid="10486" event="script" value="other/doors.lua"/>
	<action fromid="10774" toid="10776" event="script" value="other/doors.lua"/>
	<action fromid="10779" toid="10785" event="script" value="other/doors.lua"/>
	<action fromid="10788" toid="10791" event="script" value="other/doors.lua"/>  

alguém pode ajudar? dou rep+ :x

 

obs: o problema acontece com qualquer porta de casinha!

Editado por Drafenous (veja o histórico de edições)

Draferia Online:

http://draferia.com.br

draferia-468x60.jpg

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por dominus
      Fala trutas! Firmeza total!
       
      Bem, eu ia postar outro sistema, mas a maldita da cachaça não deixou.
      Então vou deixar esse script de key doors que acho bem interessante.  Não sei se já fizerem algum semelhante, mas vou deixar o que eu fiz.
       
      Como funciona? 
       
      É o velho sistema de doors, ou seja, ainda voga os sistemas de leveldoors, specialdoors etc; eu apenas modifiquei o sistema de key doors.
       
      Quando alguém usa a chave certa na porta certa, ela fica destrancada, então você pode usá -la livremente até usar de novo a chave na porta para tranca-la.
       
      Vejam as imagens:
       

       

       

       

       

       
      Então agora vamos por pra funcionar:
       
      Em actions/actions.xml
      Substitua essas tags que fazem referência para doors.lua por essas:
       
       
      Agora em actions/scripts/other/doors.lua
      Abra ele, apague tudo dentro dele e adicikne esse código:
       
      Agora em: data/lib/constante.lua
      Procure pelas tabelas de keys, doors etc; substitua todas por essas:
       
      Lembrando pessoal que esse script foi criado para um servidor 8.54 TFS, caso seu servidor seja outro, deveras ser feito as devidas alterações. 
       
      É isso pessoal, espero que gostem, caso encontrem algum erro, ou esteja faltando algo, posta ae que eu dou assistência. 
       
    • Por daviscript
      Após verificar que vários servidores estão sofrendo com problemas na página Guilds, onde era possível fazer diversas modificações com os players de qualquer guild, até a Cipsoft passou por esse problema recentemente...
      Resolvi compartilhar com vocês a correção de todos os Bugs conhecidos na Página de Guilds.
       
      Foram fixados os seguintes Bugs:
      ● Remover Players que não forem de sua guild.
      ● Aceitar guild com 1 personagem que não seja da sua conta.
      ● Editar o Text/Title de 1 player que não esteja na sua guild.
      ● Editar Ranks que não sejam da sua guild.
      ● Editar Rank de Players que não são da sua guild.
       
      Qualquer outro BUG que você encontrar... Pode listar aqui nesse tópico.
       
      OBS: É meu primeiro post... Então se estiver no local errado ou se algum moderador quiser reformular / formatar o tópico, fique a vontade.
       
       Vou deixar o Spoiler do php abaixo, mas também estou anexando o arquivo.
       
       
      Download: Mediafire
      Scan: Virus Total
       
       
    • Por CaduGTX
      Olá, eu e um amigo fizemos esse script para limpar as casas automaticamente, era um script pessoal mas resolvi postar.
      O Script foi feito em revscript, se for usar da forma antiga, terá que adaptar.

      Basta adicionar um arquivo lua na sua pasta de talkactions:
       
      local function doCheckHouses() local registros = db.storeQuery( "SELECT `houses`.`owner`, `houses`.`id` FROM `houses`,`players` WHERE `houses`.`owner` != 0 AND `houses`.`owner` = `players`.`id`;") if registros ~= false then local count = 0 repeat count = count + 1 local owner = result.getNumber(registros, "owner") local houseId = result.getNumber(registros, "id") local house = House(houseId) if house and (owner > 0) then print(house:getName()) house:setOwnerGuid(0) end until not result.next(registros) result.free(registros) end print('Houses Cleaned') return true end local limparhouse = TalkAction("/limparhouse") function limparhouse.onSay(player, words, param) if not player:getGroup():getAccess() or player:getAccountType() < ACCOUNT_TYPE_GOD then player:sendCancelMessage("Only admins can use this command.") return true end addEvent(doCheckHouses, 10 * 1000) player:sendCancelMessage("Cleaning houses.") return true end limparhouse:separator(" ") limparhouse:register()  
      Para usar é bem simples, basta usar o comando /limparhouse, e dentro de alguns instantes todas as casas serão limpas.

      Creditos:
      -CaduGTX
      -JameesDavid
       
    • Por Bolludo
      Olá, gostaria que as house do meu servidor salvasse os itens e apenas nos donos pudesse mover, alguém poderia me ajudar ?
      Up
    • Por Barca Furada
      Boa noite meus caros colegas!
      Preciso de um Help!
       
       
      Quando eu coloco meu itens editados no meu xml e otb, acontece isso com os teleportes, perde todas as propriedades:
       
      No lado direito é sem meu Itemxml
      No lado Esquerdo é com meu Itemxml
       
      Como vcs pode vem ele perde a propriedade de destino!
       
      O arquivo Check File Signatures está desativados!
       
      Quando eu entro no REM com meu Itemxml, ele da essas mensagem de erro:
       
       
       
      Antes de fazer tudo isso eu No item editor, todos itens estava com essa borda vermelha, eu tinha dado reload em todos itens para o cliente OTCv8 conseguir visualizar, no primeiro momento achei que era isso que tinha acontecido para bugar meus teleportes, então eu dei reload em todos itens um por um e deixei o teleport sem dar reload, para ver se era esses o bug! e deu na mesma , quando edito o mapa para colocar novas hunt e cidade ele buga todos teleportes!
       
       
       
       
      No itemxml o teleport está com mesmo id!
       
      alguma alma bondosa para ajudar um colega?
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo