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