Добрый день всем, столкнулся вот с такой задачкой.
Хотел поменять через триггеры - текстуры земли в определенной области.
Есть ландшафт (Зона 1)
Хотел поменять через триггеры - текстуры земли в определенной области.
Есть ландшафт (Зона 1)
нужно при нужном действии заменить выбранные текстуры земли на другие.
(В тригеерах нашел только опцию создать тип земли в области)
Есть ли другой способ сделать то что я хочу?
Есть ли другой способ сделать то что я хочу?
Принятый ответ
Mechanicus, ты прав. можно массив точек сделать и все.
вот код изменения ланда в прямоугольных областях Rect (не квадратных)
//добавить ландшафт
function SetTerrainRect takes rect re, integer terrainType returns nothing
local real r = 128.00 //size of pathing blocks
local real x = GetRectMinX(re)
local real y
local real maxx = GetRectMaxX(re)
local real maxy = GetRectMaxY(re)
loop
exitwhen x > maxx
set y = GetRectMinY(re)
//координаты установлены, теперь ищем координаты смещения
//RealCoord128 может не пригодиться, тк варкрафт сам ищет, зачем еще доп работа
//set x =RealCoord128(x)
//set y =RealCoord128(y)
loop
exitwhen y > maxy
call SetTerrainType( x, y, terrainType, -1, 1, 1 )
set y = y + r
endloop
set x = x + r
endloop
set re = null
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
а мне надо поменять
Отредактирован MpW
function RealCoord128 takes real a returns real
local integer b
local real e
local real coord = 0
set b = R2I(c) отсекает дробь, например 1.7 равно 1
set e = c-b запись дроби, например 1.7 запишем 0.7
set b = b + 1
elseif a<0 and e < -0.5 then если координата отрицательна, и дробь меньше 1/2
set b = b - 1
endif
set coord = 128.0*b
endif
return coord
endfunction
set x =RealCoord128(x)
set y =RealCoord128(y)
variation - вариация тайла (-1 = рандом)
area - размер (размер принимается в виде числа текстур (клеток), 1 - клетка, 2 - радиус круга или сторона квадрата имеет 1+2 клетки). текстура распространяется на клетку 128x128
shape - форма (квадратная круглая)
Отредактирован MpW