AN altar script

Talk about creating Grimrock 1 levels and mods here. Warning: forum contains spoilers!
Post Reply
User avatar
Karinas23
Posts: 58
Joined: Thu Jul 24, 2014 8:57 pm

AN altar script

Post by Karinas23 »

Hi ive mostly been cannibalising other scripts up till now since i know jack shit about scripting and ive been having small issue with trying to make a script to do something

Basically i have 4 altars 2 with yellow gems and 2 with green gems and i need it to activate a teleporter when the gems are swapped ( the yellow gems are placed on the green gem altars and the green gems are placed on the yellow gem altars ) anyone who can make a script for this and if i need to add any connectors would be appreciated.

An added bonus would be for all the gems to teleport off the altars and be replaced with other items ( like loot ) when theyre all in the right place
Darsithis
Posts: 51
Joined: Wed Jul 24, 2013 6:31 pm

Re: AN altar script

Post by Darsithis »

Karinas23 wrote:Hi ive mostly been cannibalising other scripts up till now since i know jack shit about scripting and ive been having small issue with trying to make a script to do something

Basically i have 4 altars 2 with yellow gems and 2 with green gems and i need it to activate a teleporter when the gems are swapped ( the yellow gems are placed on the green gem altars and the green gems are placed on the yellow gem altars ) anyone who can make a script for this and if i need to add any connectors would be appreciated.

An added bonus would be for all the gems to teleport off the altars and be replaced with other items ( like loot ) when theyre all in the right place
Hey Karinas. I did something just like that in one of my mods, inspired by an Eye of the Beholder puzzle of the same type. I make it exclude rocks & torches because they're too easy to find but you can reverse it to limit it to specific items.

Code: Select all

function Sacrifice()

	
	for alcoveItem in sacrificeAltar:containedItems() do
		local itemName = alcoveItem.name
		
		if (itemName ~= "rock" and itemName ~= "torch") then
			alcoveItem:destroy()
			rewardAltar1:addItem(spawn(itemName))
			break;
		else
			return;
		end
	end
	

	for alcoveItem in rewardAltar1:containedItems() do
		local itemName = alcoveItem.name
			
		if (itemName ~= "rock" and itemName ~= "torch") then
			alcoveItem:destroy()
			rewardAltar2:addItem(spawn(itemName))
			break;
		else
			return;
		end
	end	
	
	sacrificeAltar:destroy()
	spawn("deep_temple_altar", party.level, 3, 23, 1, "sacrificeAltar");
	
	for alcoveItem in rewardAltar2:containedItems() do
		local itemName = alcoveItem.name
		
		if (itemName ~= "rock" and itemName ~= "torch") then
			alcoveItem:destroy()
			sacrificeAltar:addItem(spawn(itemName))
			break;
		else
			return;
		end
	end	
	
	sacrificeAltar:addConnector("activate", "sacrificeAltarScript", "Sacrifice")
end
Post Reply