Ok, I fixed all the errors. But when I swing the cane, it does absolutely nothing.

Code:
import "std.zh"
item script Somaria{

	int blockY = 0;
	int blockX = 0;
	int blockcombo = 0;
	int blocksecret = 0;
	int blockCset = 0;
	int disapear = 0;

		void run(){

		int blockcheckY = 0;
		int blockcheckX = 0;
		float RmndrX = 0;
		float RmndrY = 0;
		float BlockrmndrX = 0;
		float BlockrmndrY = 0;
		int Blockposition = 0;

			if (dispear == 0){
				
				if (Link->Dir == 0){
				blockcheckY = Link->Y - 32;
				blockcheckX = Link->X;
				RmndrX = blockcheckX % 16;
	
					if (RmndrX <= 8){
                			blockcheckX = blockcheckX - RmndrX;
            				}
            				else
            				{
                			blockcheckX = blockcheckX + 16 - RmndrX;
            				}
            			
					RmndrY = blockcheckY % 16;
            			
					if (RmndrY <= 8){
                			blockcheckY = blockcheckY - RmndrY;
            				}
            				else
            				{
                			blockcheckY = blockcheckY + 16 - RmndrY;
           			 	}

					if (ComboAt(blockcheckX, blockcheckY) == 0){
					BlockrmndrX = blockX % 16;
				
					if (BlockrmndrX <= 8){
                			blockX = blockX - BlockrmndrX;
            				}
            				else
            				{
                			blockX = blockX + 16 - BlockrmndrX;
            				}
            				BlockrmndrY = blockY % 16;

            				if (BlockrmndrY <= 8){
            				
                			blockY = blockY - BlockrmndrY;
            				}
            				else
            				{
                			blockY = blockY + 16 - BlockrmndrY;
           				}			
					Blockposition = (blockY & 240)+(blockX>>4);
					Screen->ComboD [Blockposition] = blockcombo;
                			Screen->ComboC [Blockposition] = blockCset;
                			Screen->ComboF [Blockposition] = blocksecret;
                			disapear = 1;}
				}

				if (Link->Dir == 1){
				blockcheckY = Link->Y + 32;
				blockcheckX = Link->X;
				RmndrX = blockcheckX % 16;
	
					if (RmndrX <= 8){
                			blockcheckX = blockcheckX - RmndrX;
            				}
            				else
            				{
                			blockcheckX = blockcheckX + 16 - RmndrX;
            				}
            			
					RmndrY = blockcheckY % 16;
            			
					if (RmndrY <= 8){
            				
                			blockcheckY = blockcheckY - RmndrY;
            				}
            				else
            				{
                			blockcheckY = blockcheckY + 16 - RmndrY;
           			 	}

					if (ComboAt(blockcheckX, blockcheckY) == 0){
					BlockrmndrX = blockX % 16;
				
					if (BlockrmndrX <= 8){
                			blockX = blockX - BlockrmndrX;
            				}
            				else
            				{
                			blockX = blockX + 16 - BlockrmndrX;
            				}
            				BlockrmndrY = blockY % 16;

            				if (BlockRmndrY <= 8){
            				
                			blockY = blockY - BlockrmndrY;
            				}
            				else
            				{
                			blockY = blockY + 16 - BlockrmndrY;
           				}			
					Blockposition = (blockY & 240)+(blockX>>4);
					Screen->ComboD [Blockposition] = blockcombo;
                			Screen->ComboC [Blockposition] = blockCset;
                			Screen->ComboF [Blockposition] = blocksecret;
                			disapear = 1;}
				}


				if (Link->Dir == 2){
				blockcheckY = Link->Y;
				blockcheckX = Link->X - 32;
				RmndrX = blockcheckX % 16;
	
					if (RmndrX <= 8){
                			blockcheckX = blockcheckX - RmndrX;
            				}
            				else
            				{
                			blockcheckX = blockcheckX + 16 - RmndrX;
            				}
            			
					RmndrY = blockcheckY % 16;
            			
					if (RmndrY <= 8){
            				
                			blockcheckY = blockcheckY - RmndrY;
            				}
            				else
            				{
                			blockcheckY = blockcheckY + 16 - RmndrY;
           			 	}

					if (ComboAt(blockcheckX, blockcheckY) == 0){
					BlockrmndrX = blockX % 16;
				
					if (BlockrmndrX <= 8){
                			blockX = blockX - BlockrmndrX;
            				}
            				else
            				{
                			blockX = blockX + 16 - BlockrmndrX;
            				}
            				BlockrmndrY = blockY % 16;

            				if (BlockrmndrY <= 8){
            				
                			blockY = blockY - BlockrmndrY;
            				}
            				else
            				{
                			blockY = blockY + 16 - BlockrmndrY;
           				}			
					Blockposition = (blockY & 240)+(blockX>>4);
					Screen->ComboD [Blockposition] = blockcombo;
                			Screen->ComboC [Blockposition] = blockCset;
                			Screen->ComboF [Blockposition] = blocksecret;
                			disapear = 1;}
				}

				if (Link->Dir == 3){
				blockcheckY = Link->Y;
				blockcheckX = Link->X + 32;
				RmndrX = blockcheckX % 16;
	
					if (RmndrX <= 8){
                			blockcheckX = blockcheckX - RmndrX;
            				}
            				else
            				{
                			blockcheckX = blockcheckX + 16 - RmndrX;
            				}
            			
					RmndrY = blockcheckY % 16;
            			
					if (RmndrY <= 8){
            				
                			blockcheckY = blockcheckY - RmndrY;
            				}
            				else
            				{
                			blockcheckY = blockcheckY + 16 - RmndrY;
           			 	}

					if (ComboAt(blockcheckX, blockcheckY) == 0){
					BlockrmndrX = blockX % 16;
				
					if (BlockrmndrX <= 8){
                			blockX = blockX - BlockrmndrX;
            				}
            				else
            				{
                			blockX = blockX + 16 - BlockrmndrX;
            				}
            				BlockrmndrY = blockY % 16;

            				if (BlockRmndrY <= 8){
            				
                			blockY = blockY - BlockrmndrY;
            				}
            				else
            				{
                			blockY = blockY + 16 - BlockrmndrY;
           				}			
					Blockposition = (blockY & 240)+(blockX>>4);
					Screen->ComboD [Blockposition] = blockcombo;
                			Screen->ComboC [Blockposition] = blockCset;
                			Screen->ComboF [Blockposition] = blocksecret;
                			disapear = 1;}
				}
			}
			else
			{
			Blockposition = (blockY & 240)+(blockX>>4);
			Screen->ComboD [Blockposition] = 0;
                	Screen->ComboF [Blockposition] = 0;
                	disapear = 0;
			}
		
		} //End of void run

} //End of Script