Updating block metadata
#5
(01-21-2016, 06:44 AM)NiLSPACE Wrote: Could you show us our code?

The mcBlockRespawn function gets called by a HOOK_PLAYER_BREAKING_BLOCK (so i can prevent block breaking in creative), otherwise the mcLeft function is called by HOOK_PLAYER_LEFT_CLICK. This is because HOOK_PLAYER_LEFT_CLICK is not registered in creative.

Here are the files if you want to try it yourself: http://a.pomf.cat/xvwliy.7z

mcMetaTool = 280
mcBiomeTool = 369

function mcLeft(Player, BlockX, BlockY, BlockZ, BlockFace, Action)
	if (Player:GetEquippedItem().m_ItemType == mcMetaTool) then
		mcMetaLeft(Player, BlockX, BlockY, BlockZ, BlockFace, Action)
	elseif (Player:GetEquippedItem().m_ItemType == mcBiomeTool) then
		mcBiomeLeft(Player, BlockX, BlockY, BlockZ, BlockFace, Action)
	end
end

function mcRight(Player, BlockX, BlockY, BlockZ)
	if (Player:GetEquippedItem().m_ItemType == mcMetaTool) then
		mcMetaRight(Player, BlockX, BlockY, BlockZ)
	elseif (Player:GetEquippedItem().m_ItemType == mcBiomeTool) then
		mcBiomeRight(Player, BlockX, BlockY, BlockZ)
	end
end

--

function mcMetaLeft(Player, BlockX, BlockY, BlockZ, BlockFace, Action)
	if (Action == 1) then
		local meta = Player:GetWorld():GetBlockMeta(BlockX, BlockY, BlockZ)
		if (meta == 0) then
			meta = 16
		else
			meta = meta - 1
		end
		Player:SendMessage(meta)
		Player:GetWorld():SetBlockMeta(BlockX, BlockY, BlockZ, meta)
	end
end

function mcMetaRight(Player, BlockX, BlockY, BlockZ)
	local meta = Player:GetWorld():GetBlockMeta(BlockX, BlockY, BlockZ)
	if (meta == 16) then
		meta = 0
	else
		meta = meta + 1
	end
	Player:SendMessage(meta)
	Player:GetWorld():SetBlockMeta(BlockX, BlockY, BlockZ, meta)
end

function mcBiomeLeft(Player, BlockX, BlockY, BlockZ, BlockFace, Action)
	if (Action == 1) then
		local biome = Player:GetWorld():GetBiomeAt(BlockX, BlockZ)
		biome = biome - 1
		Player:SendMessage(biome)
		Player:GetWorld():SetAreaBiome(BlockX, BlockX, BlockZ, BlockZ, biome)
	end
end

function mcBiomeRight(Player, BlockX, BlockY, BlockZ)
	local biome = Player:GetWorld():GetBiomeAt(BlockX, BlockZ)
	biome = biome + 1
	Player:SendMessage(biome)
	Player:GetWorld():SetAreaBiome(BlockX, BlockX, BlockZ, BlockZ, biome)
end

--

function mcBlockRespawn(Player, BlockX, BlockY, BlockZ, BlockFace, Action)
	if (Player:GetEquippedItem().m_ItemType == mcMetaTool) or (Player:GetEquippedItem().m_ItemType == mcBiomeTool) then
		if (Player:GetGameMode() == 1) then
			mcLeft(Player, BlockX, BlockY, BlockZ, BlockFace, 1)
		end
		return true
	end
end
Reply
Thanks given by:


Messages In This Thread
Updating block metadata - by nixi - 01-21-2016, 03:55 AM
RE: Updating block metadata - by NiLSPACE - 01-21-2016, 04:11 AM
RE: Updating block metadata - by nixi - 01-21-2016, 06:30 AM
RE: Updating block metadata - by NiLSPACE - 01-21-2016, 06:44 AM
RE: Updating block metadata - by nixi - 01-21-2016, 06:49 AM
RE: Updating block metadata - by NiLSPACE - 01-21-2016, 05:37 PM
RE: Updating block metadata - by nixi - 01-21-2016, 08:19 PM
RE: Updating block metadata - by NiLSPACE - 01-21-2016, 08:51 PM
RE: Updating block metadata - by nixi - 01-21-2016, 09:06 PM
RE: Updating block metadata - by NiLSPACE - 01-21-2016, 09:11 PM
RE: Updating block metadata - by nixi - 01-21-2016, 09:59 PM
RE: Updating block metadata - by NiLSPACE - 01-21-2016, 10:02 PM
RE: Updating block metadata - by nixi - 01-21-2016, 10:22 PM
RE: Updating block metadata - by NiLSPACE - 01-21-2016, 10:32 PM
RE: Updating block metadata - by nixi - 01-21-2016, 10:38 PM
RE: Updating block metadata - by NiLSPACE - 01-21-2016, 10:44 PM
RE: Updating block metadata - by nixi - 01-22-2016, 01:53 AM
RE: Updating block metadata - by NiLSPACE - 01-22-2016, 02:04 AM



Users browsing this thread: 1 Guest(s)