Copy to Clipboard Test

Vision Rod Code

//Only put this in your script once
import "std.zh"

//Put these variables outside your global script and adjust for your quest
const int I_VISIONSTAFF = 146;	//Set this to the item ID of a custom itemclass equipment item
const int VISION_COMBO = 1000;	//Set this to the combo ID of the combo you want to appear above secrets
const int VISION_CSET = 8;		//CSet for the combo
const int VISION_MPCOST = 10;	//MP cost
const int VISION_LAYER = 7;		//Layer where to put the combo. 7 is over everything
const int VISION_INTERVAL = 60;	//Frames between MP cost. 60 frames = 1 second.
const int VISION_SFX = 32;		//Sound effect to play while the item is working
const int VISION_FAIL = 11;		//Sound effect to play if you don't have enough MP

global script visionstaff
{
	void run()
	{
		bool visionactive = false;
		int visiontimer = 0;
		int visionflags[] = {CF_BOMB, CF_CANDLE1};	//Combo flag IDs to check for. Use CF_ in std_constants

		while(true)
		{
		
			//Vision Staff
			if((GetEquipmentB() == I_VISIONSTAFF && Link->PressB && Link->MP < VISION_MPCOST) ||
			   (GetEquipmentA() == I_VISIONSTAFF && Link->PressA && Link->MP < VISION_MPCOST))
					Game->PlaySound(VISION_FAIL); //Sound if you don't have enough MP
		
			if((GetEquipmentB() == I_VISIONSTAFF && Link->InputB && Link->MP >= VISION_MPCOST) ||
			   (GetEquipmentA() == I_VISIONSTAFF && Link->InputA && Link->MP >= VISION_MPCOST))	
			{
				visionactive = true;
				for(int i = 0; i < 176; i++)
				{
					for(int j = 0; j <= SizeOfArray(visionflags); j++)
					{
						if(Screen->ComboF[i] == visionflags[j] || Screen->ComboI[i] == visionflags[j])	//Check for flags
						{
							Screen->FastCombo(7, ComboX(i), ComboY(i), VISION_COMBO, VISION_CSET, OP_TRANS);	//Draw the combo
						}
					}
				}
			}

			//Timers & Sound
			if((visionactive && Link->InputB) || (visionactive && Link->InputA))
			{
				visiontimer--;
				if(visiontimer <= 0)
				{
					if(Link->MP >= VISION_MPCOST)
					{
						Link->MP -= VISION_MPCOST;
						visiontimer = VISION_INTERVAL;
						Game->PlaySound(VISION_SFX);
					}
					else
					{
						Game->PlaySound(VISION_FAIL);
						visionactive = false;
						visiontimer = 0;
					}
				}
			}
			
			//If you let go of the button the counters reset
			if(visionactive && !UsingItem(I_VISIONSTAFF))
			{
				visionactive = false;
				visiontimer = 0;
			}
		
			//If you switch items the counters reset
			if(visionactive && GetEquipmentB() != I_VISIONSTAFF && GetEquipmentA() != I_VISIONSTAFF)
			{
				visionactive = false;
				visiontimer = 0;
			}
		
		Waitframe();
		}
	}
}