27

» WarCraft 3 / Рассеивания заклинаний и дебафы!

Принятый ответ
в варике вроде нельзя нацепить бафф (иконку) и задавать время действия, тип баффа (магический, физический и пр характеристики), действие баффа (позитивное или негативное). приходится костыльными методами. только через дамми касты вешать buffs-пустышки, и таймер. ну да придется руками бд баффов забивать
некоторые buffs не снимаются, их удаление приведет к фаталу
27

» WarCraft 3 / Проверка условия на вход в область

вот есть
код
native IsLocationInRegion takes region whichRegion, location whichLocation returns boolean
native IsPointInRegion takes region whichRegion, real x, real y returns boolean

function RectContainsCoords takes rect r, real x, real y returns boolean
    return (GetRectMinX(r) <= x) and (x <= GetRectMaxX(r)) and (GetRectMinY(r) <= y) and (y <= GetRectMaxY(r))
endfunction
function RectContainsUnit takes rect r, unit whichUnit returns boolean
    return RectContainsCoords(r, GetUnitX(whichUnit), GetUnitY(whichUnit))
endfunction
так понимаю мы говорим про разные варкрафты или что?)) для гуишников не проблема, если в шапку засунуть код. есть check и на нахождение юнита в ректе (на гуи есть), и на нахождение точки в ректе (правда на гуи не вижу че-то, но не проблема. а вот нашел сорри см. 3 скрин)
Загруженные файлы
27

» WarCraft 3 / Как увеличить высоту декорации?

PT153, у меня вот ноутбук lenovo ideapad 110, но кнопки PgUp я не вижу =(
изменил настройки Ctrl+Z, решил попробовать. и кстати у меня почему то тоже декор не поднимается
наверн надо клавиатуру отдельную беспроводную покупать
27

» WarCraft 3 / Как увеличить высоту декорации?

Artyom18, посмотри в настройках редактора

Файл - Настройка управления - Редактор рельефа
27

» WarCraft 3 / Проверка условия на вход в область

по-моему, там "событие на вход в регион", а не в область. в событии триггера на гуи указывают обычно область. если на jass раскрыть это событие: там берется область, добавляется в регион, и потом на регион вешают событие захода.
по идее можно создать хоть 50 областей, и добавить их в один регион. и не нужно тогда плодить регионы. и 50 областей тоже не нужно плодить. это я к тому что не нужно плодить одинаковые триггеры для каждой области
если нужно проверить в какой области, есть в boolean проверки:
  • находится ли точка или юнит в области, область это прямоугольник (rectangle, рект).
  • находится ли точка или юнит в регионе. в регионе могут несколько областей
27

» WarCraft 3 / Изменение размера клетки строительства.

Принятый ответ
По опыту скажу что размер фермы - 4x4 клетки (размер одной клетки 32, значит 128x128). Если в редакторе нажать Ctrl + D, там можно увидеть реальное название текстур, на конце которых пишут цифры, размер клеток.

Я как-то пробовал в фотошопе делать клетку меньше, 2x2. Там каждая клетка это пиксели. Импортировал. Однако, работало очень криво, не помню что там уже. Поэтому брал текстуру 4x4, и переделывал, в центре 2x2 квадратик, а вокруг рамка

проблема в том, что когда ты выбираешь место строительства. У вас зеленая область (квадратик) смещается за курсором мыши, смещение здания происходит 2 клетки. Меньше он не может. это мин шаг
27

» XGM Team / Закрытие XGM (нет)

Proshel_Doty, ну карты могут быть сомнительными и неинтересными, чтобы их покупать. на 1 разок. необычных карт и что то такое большое мало. поэтому в старкрафте 2 я никаких карт и не покупал, тк не знаю что там

если честно я согласен с Lp666, покупать карты в варкрафте - полный дебилизм. Если бы это стоило бы. Большая часть карт сырые, не способные удивлять. Сколько уже 10-20 лет видишь графон. Видишь одни и те же модельки, ландшафт и все. Есть интересные идеи в карте, интересные наработки, интересные алгоритмы и способы решения и все. Для меня варкрафт в последнее время это сделать что то необычно, наверное, играли затерянный мир или похожие стратегии. Хотел что то такое но на свой лад сделать

кстати кампании старкрафта 2 очень неплохо сделано
27

» WarCraft 3 / Не выпадающие предметы.

попробуй удалить, если не нужны. иначе наверняка все равно исчезнут, и где-нибудь в памяти висеть будет.
27

» WarCraft 3 / Спаун рандомных юнитов

N7 Molot, фильм и коммиксы такие есть, посмотри.
spawn - появление, рождение, создание
27

» WarCraft 3 / Релиз Reforged, оценки метакритиков, блогеры не могут ошибаться

То есть я так понимаю вам игра не понравилась? че-то смотрю то пользователям не нрав, то нрав
А правда, что по интернету не во все кастомки могу поиграть ? даже те, которые сделаю сам?
27

» WarCraft 3 / Выделить Триггерно юнита со способностю - москиты.

Roy Mustang, в смысле ты не можешь выделить мышкой и пр. так и должно быть, к сожалению, частично решает проблему.
xgm.guru/forum/showthread.php?t=21369 раздел 1.2. по этому методу способность то удаляется, но вот баг что полоска пропадает, и не можешь мышкой выделить, идр он остается. этот метод не помог устранить побочные эффекты, мб когда то и работал, но не сегодня. я иногда пересоздавал юнитов, для устранения побочных эффектов
27

» WarCraft 3 / Выделить Триггерно юнита со способностю - москиты.

Roy Mustang, ну триггерно им потом добавь в группу и абилку Amoc
есть функция выделения юнитов принадлежащих игроку. вот она например работает. не все функции работают, но она вот работает.
27

» WarCraft 3 / Выделить Триггерно юнита со способностю - москиты.

Принятый ответ
Extremator,
для того что бы пикать юнитов с москитами нужно провернуть один несложный фокус
при создании такого типа даммиков заносишь их в группу
в нужный момент обращаешься в группе и отнимаешь у даммиков москиты
пикаешь как обычных юнитов
обращаешься к группе и возвращаешь им москитов
27

» WarCraft 3 / Выделить Триггерно юнита со способностю - москиты.

наверн выделяете вокруг цели? или в области (ректе)? эти функции по каким-то причинам не выделяются, но есть другие функции выделения, правда не то что нужно вам. можно в фильтре нативок указать тех, кто в радиусе от точки (круг) или ректе (прямоугольные области). есть примеры в инете, наберите в гугле "лежит ли точка в круге" или "лежит ли точка в прямоугольнике (ректе)"
можно еще заранее в группу group юнитов запихивать ДО ПОЛУЧЕНИЯ МОСКИТОВ. и затем всех москитных юнитов можно проверять, перебирая юнитов в группе.
27

» WarCraft 3 / Атака по деревьям

8gabriel8, я когда то пытался сделать 3 ресурс из дерева. как вот различать добычу настоящего дерева от фальшивого дерева (камня), было бы проблемой.
поэтому камень делают из юнитов
27

» WarCraft 3 / Атака по деревьям

а как удар то отследить по дереву ?

вообще то способность "добывать дерево" влияет на приказ атаки ПКМ. там еще у нее в целях стоят "деревья". Было бы прикольно сделать добычу камня например
27

» WarCraft 3 / Экран статистики

а нельзя ли передать героя другому игроку?

ладно кто то предложил такое. эхх
27

» WarCraft 3 / Поменять тип текстуры релиефа в области.

Принятый ответ
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
27

» WarCraft 3 / Поменять тип текстуры релиефа в области.

Roy Mustang, по-другому ты и не сделаешь, увы
если использовать этот способ то надо создавать больше 30 областей и это только в одной такой зоне
можно только кодом упростить (не создавать лишние 30), но все равно это только сократит число областей до 11 в вашем случае.
код
x,y - координаты центра текстуры (центр картинки смещают каждые 128 координаты, если задать координату 90, он автоматом находит ближайшую координату = 128. то есть центр не всегда там где хочешь). помогает такая функция
функция нахождения координаты
находит ближайшую координату
function RealCoord128 takes real a returns real
local real c
local integer b
local real e
local real coord = 0
if a != 0 then
set c = a/128.0
set b = R2I(c) отсекает дробь, например 1.7 равно 1
set e = c-b запись дроби, например 1.7 запишем 0.7
if a>0 and e > 0.5 then если координата положительна, и дробь больше 1/2
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)
terrainType - тип ланда
variation - вариация тайла (-1 = рандом)
area - размер (размер принимается в виде числа текстур (клеток), 1 - клетка, 2 - радиус круга или сторона квадрата имеет 1+2 клетки). текстура распространяется на клетку 128x128
shape - форма (квадратная круглая)
native SetTerrainType takes real x, real y, integer terrainType, integer variation, integer area, integer shape returns nothing
зная это можно написать код для больших прямоугольных (не квадратных) областей, где смещается центр
Загруженные файлы