main()
{
/* Координаты зоны */
new Float:area_min_x = 10.0;
new Float:area_max_x = 20.0;
new Float:area_min_y = 10.0;
new Float:area_max_y = 20.0;
/* Размер грядки по двум плоскостям */
const Float:garden_x = 2.0;
const Float:garden_y = 3.0;
/* Узнаём радиус грядки по обеим координатам */
const Float:rad_garden_x = garden_x/2.0;
const Float:rad_garden_y = garden_y/2.0;
/* Узнаём размер зоны по каждой из плоскостей */
new Float:area_x = area_max_x-area_min_x;
new Float:area_y = area_max_y-area_min_y;
/* Узнаём сколько грядок вместится в каждую плоскость */
new count_x
= floatround(area_x
/garden_x
, floatround_floor); new count_y
= floatround(area_y
/garden_y
, floatround_floor);
/* Узнаём какой отступ должен быть между грядками */
new Float:indent_x
= (area_x
-garden_x
*float(count_x
))/float(count_x
); new Float:indent_y
= (area_y
-garden_y
*float(count_y
))/float(count_y
);
/* Узнаём координаты по умолчанию для каждой плоскости */
new Float:default_x = area_min_x;
new Float:default_y = area_min_y+rad_garden_y+indent_y;
for(new i, m = count_x*count_y, Float:x = default_x, Float:y = default_y; i < m; i++)
{
x += indent_x; // Делаем первый отступ от края области по оси x (для оси y этот отступ сделан выше)
x += rad_garden_x; // Делаем отступ на радиус грядки
/*CreateDynamicObject(model, x, y, z ...);*/ // Создаём объект на полученных координатах
x += rad_garden_x; // делаем ещё один отступ, дабы получить координаты края созданной грядки
/* Проверяем, заполнилась ли текущая колонка и если заполнилась - делаем смещение */
if(x >= area_max_x)
{
x = default_x
y += rad_garden_y+indent_y;
}
}
}