void OnBuild(int playerid, int x, int y, int z)
        {
            int permissionblock = m.GetBlockId("BuildPermission0");

            //can't build any block in column
            for (int zz = 0; zz < m.GetMapSizeZ(); zz++)
            {
                if (zz == z)
                {
                    continue;
                }
                for (int i = 0; i < PermissionLevelsCount; i++)
                {
                    if (m.GetBlock(x, y, zz) == permissionblock + i)
                    {
                        m.SetBlock(x, y, z, 0);
                        m.SendMessage(playerid, "You can't build in a column that contains permission block.");
                        return;
                    }
                }
            }

            //add area
            for (int i = 0; i < PermissionLevelsCount; i++)
            {
                if (m.GetBlock(x, y, z) == permissionblock + i)
                {
                    if (m.GetPlayerPermissionLevel(playerid) <= i)
                    {
                        m.SendMessage(playerid, "No permission");
                        m.SetBlock(x, y, z, 0);
                        return;
                    }
                    m.AddPermissionArea(x - AreaSize, y - AreaSize, 0, x + AreaSize, y + AreaSize, m.GetMapSizeZ(), i);
                }
            }
        }