27

» WarCraft 3 / как должна вьглядеть армия альянса?

Ну тут зависит от того, что противник строит или имеет

Если настроить чисто коней, противник может настроить воздух с атакой воздух-землч ,+ башни
27

» WarCraft 3 / Как отслеживать призыв фабрики и порождения магмы


Завод 'ANfy'/ Мини-завод 'ANsy'/'ANs1'/'ANs2'/'ANs3' - пассивка с иконкой, каждый раз создает новых маленьких заводных гоблинов. Интервал порождения - время, через которое создается новый гоблин. Есть "радиус подчинения" - если гоблин отойдет дальше этого радиуса от завода, то погибнет. Это очень похоже на призыв, там таймер жизни нацепляют, наносится дополнительный урон, как вызванным существам, от магических заклинаний. Но не ловится событием "юнит призвал боевую единицу", зато можно ловить по событию "юнит вошел в область". Неплохо сочетается со способностью "сбор" 'ARal', "Сборный пункт" - указываешь флаг в точку, где будет скапливаться все войско (как только появится рядом, он побежит к точке сбора).

Тварь из Недр 'ANlm' - вызывает лавовых духов огня, обитающих в магме (можно указать кол-во вызванных). Появляется рядом с кастером. Эта абилка отличается от других, поскольку она особенная. Описание: "Нанося урон жертве, она забирает часть жизненной силы. Накопив достаточно жизненной силы, она порождает вторую такую тварь" (при чем это не отслеживается событием "юнит призывает боевую единицу", отслеживает только призыв первой твари, а вот деление нет, деление отслеживается только событием "юнит входит в область"). Короче делится на две твари. Хотя по сути она не похищает жизнь, в абилке настройки ловят на количество ударов, после которого юнит делением вызывает
Характеристики:
"Данные - Деление: количество атак" - кол-во ударов, после которого тварь начнет делиться на себе подобных. Можно сразу проверить, поставив 1.
"Данные - Деление: доп. срок жизни" - таймер жизни. Это значение при делении продлевает время жизни существу, которое вызвало деление, и столько же добавляет вызванному существу.
"Данные - фактор здоровья" - процент здоровья от макс. запаса. Если первый юнит будет покосан (ранен), то при делений второй юнит имеет точно такое же здоровье. Однако, поле "фактор здоровья" пополняем первому и второму юниту часть здоровья. В этом поле стоит 0.5, значит половина от запаса пополняет обоим. (0.00 - ничего не даст, а при отрицательном значений юниты умирают)
"Данные - Задержка деления" - задержка перед тем как поделится на две части. Тварь начинает трясти, а потом делится на две части.
"Данные - количество поколений" - кастер вызвает одну тварь, назовем ее основной. Кастер повторно основных юнитов может безгранично множество вызвать. А основной юнит может вызвать делением других таких же побочных (назову их так, они ни чем не отличаются от основного. Начиная с 4 поколения, у них меняется изображение: с духа на огонька, а в остальном характеристики те же). Число поколение так понял, это сколько раз может расколоться. Например, кол-во поколений = 3, основной юнит - первое поколение, делится на два, теперь эти два юнита - второе поколение, делятся, становится 4 юнита, эти 4 юнита - третье поколение (и больше делиться не могут). Мне неизвестно точно, делится ли юнит на двух новых, или просто вызвает (почкованием размножается), больше похоже, что второе. ставил кол-во поколений 5, и поделило так много юнитов, стало всего 16. Ставил кол-во поколений 6, стало 32.
ФОРМУЛА геометрической прогрессий - макс. кол-во юнитов:
q = 2 (мы знаем, что с каждым шагом их становится в два раза больше)
b1 = 1 (сколько вначале вызываем)
bn = b1 * q ^ n-1 - формула
b5 = b1 * q ^ 5-1 = 1 * 2 ^ 4 = 16
b6 = b1 * q ^ 6-1 = 1 * 2 ^ 6 = 32
Как писал, основных может вызвать много, а значит, и с ними будет также множество побочных при делений (как видим кол-во поколений не влияет на всех, только на определенную группу).
27

» WarCraft 3 / Отследить нажатие мыши

В рефе можно узнать наведена, ли мышь на юнита через нативку. Там таймером чекаем. Это локально выводит, что игрок выделяет. К сожалению, это не работает на декорации и итемах.
--юнит, на которого навели мышь
function BlzGetMouseFocusUnit() end	-- (native)
Когда кликаешь на итем, отображается информационная панель итема. Или кликаешь на декорацию, отображается информационная панель декорации. Но это не точно, ибо нельзя вынуть информацию безопасно с фрейма, и узнать какой итем выделен. И string не всегда читаются
Можно еще один метод:
Сверять координаты мыши игрока, и проверять клики пкм событием. И потом чекаем попала ли точка в квадрат (декорация это обычна имеет квадратные карты путей. Хотя не факт, модель декора мб 3д, и растянута по высоте, плюс камера наклонена), или итемы (практически кубы все одинаковы)
27

» WarCraft 3 / "SIMPLESTATUSBAR"

--константы
	NeedHeroXP = 200
	NeedHeroXPFormulaA = 1.00
	NeedHeroXPFormulaB = 100
	NeedHeroXPFormulaC = 0	
--макс опыт
function GetHeroMaxXP(hero)
	local level = GetUnitLevel(hero)
	local need = 0
            
	for i=1, level do
		need = need * NeedHeroXPFormulaA + NeedHeroXPFormulaB * (i+1) + NeedHeroXPFormulaC
	end
	return need
end

jasonrus96, опыт вроде текущий GetHeroXP(u) можно узнать. А вот максимум опыта за уровень варьируется. Определяется по некой формуле (см. выше)


Тему переименуйте максимальный опыт

Это была вариковская формула. Ты можешь свою формулу и таблицу опыта сделать
27

» WarCraft 3 / Летняя распродажа у Blizzard

host_pi, да ты же заядлый пират, зачем нам пиратам покупать что либо
27

» WarCraft 3 / Скрыть имена героев в чате.

Ну тогда отслеживаете нажатие на enter. Затем отображаете editbox (копия). Игрока печатает, потом жмет отправить. И выводишь всем остальным текст. Мб надо синх делать, или как. Ну конец.
27

» WarCraft 3 / Скрыть имена героев в чате.

Ну это работа чисто с графическим интерфейсом UI, т.е. с фреймами.
В рефордже есть возможность получить фреймы чата. Однако, я далеко не копался, и не знаю всех возможностей. Можно заменить чат, скрыв нынешний чат-окно (диалоговое окно), но, я не знаю, как сможете заглушить чат (при enter вы вызваете editbox)
Вот здесь парень пытается убить чат ссылка

Второй способ: это импортом сделать невидимый ввод.
Нативкой BlzDisplayChatMessage вводите в чат введенную в строку в фальшивый editbox. Но это все предположения, вам самим надо

Вывод: когда игрок вводит в чат, у него автоматом выводит имя игрока и текст. Это вшито в игру. Предлагается скрыт ввод чата, и заменить на дубликат. А потом выводить всем BlzDisplayChatMessage то, что пишет игрок, если это возможно.
27

» WarCraft 3 / Изменение зеленых показателей защиты и атаки

В рефе есть нативки, правда, бывает, что работает все совсем не так. Нет четкого подразделения на базовые, и бонусные.
Пример нативки armor показывает и изменяет общие характеристики (базовые+бонусные). А вот точно зеленые бонусы защиты не всегда возможна изменить/отобразить.
Пример нативки damage не видит бонусный дамаг полученный от предметов. Это когда я тестироаал, то действительно, это не работало.
Ну и др случаи. Все это надо либо переделывать, считать по своему
27

» В гостях у Эльрата / Настольные похождения

Надо комп настолку с механиками прокачки героев/отряда, пошаговые ходьбы пешек. Сражения с монстрами. Покемоны, ну или ловля покемонов. И где нибудь сюжет романтический увлекательный зайдет
27

» WarCraft 3 / АОЕ Стан абилка для даммиков

Огненный голем 'AUin'/'ANin'/'SNin'/Огненный голем (предмет) 'AIin' - с неба в указанную область падает голем, который при падении наносит урона (указано в поле абилки "урон"), кроме того, в указанной области юниты оглушаются (stun) на неопределенное время. Урон от падения относится к типу атаки "Заклинание", не понижается защитой. Является магическим уроном. Можно сделать из этой абилки stun по области, но вместо голема нужно указать невидимого неуязвимого даймика (иначе stun не захочет работать). Кстати, в указанной области хорошо валит деревья, так сказать очищает место посадки
27

» WarCraft 3 / Резкий поворот юнита

jasonrus96, работает норм? ты всем снарядам задаешь общий вектор?
Просто вектор строится от TempLoc[1] (тек позиции героя), а нет от GetUnirPosition(GetEnumUnit()) (тек положения снаряда). Снаряды должны двигаться к камере, а не копировать угол вектора

Atan2(y2-y1,x2-x1)*bj_RADTODEG - не забудь из радианов в градусы перевести так
27

» WarCraft 3 / Резкий поворот юнита

jasonrus96, так тебе надо угол вектора взять.
Atan2(y2-y1,x2-x1)  - угол вектора
Где x1,y1 - корды юнита, которого двигаешь; или координаты тек положения
x2,y2 - корды мыши или таргет-цели
Надо будет из радианов в градусы перевести. Тк в этой нативке facingAngle выражен в градусах 0-360
Если на событие мыши, то мб с задержками немного обновлять координаьы мыши 0.003 мек, незначительно. События мыши синхронизируются, или что то там делают.. я не знаю. Я короче не отвечаю за эти слова. Но это незначительно, я не делал рогалики или движение снарядов за мышкой, пожтому не сильно то мне это надо было

Atan2(y2-y1,x2-x1)*bj_RADTODEG - не забудь из радианов в градусы перевести так
27

» WarCraft 3 / Резкий поворот юнита

jasonrus96, ну прочекай все функции поворота angle facing. Есть еще функции с скоростью поворота SetUnitTurnSpeed
Но посмотрел, и везде пишут, что нельзя. Мб и есть решения
Если это dummy-снаряд, то попробуй на спецэффект заменить. У спецэффекта есть функции вращения модели, мб что там

Находил вариант где поворачивают (лицо) рутовую кость, пишут, что надо саму модель редачить и спец функции поворачивать
27

» WarCraft 3 / Резкий поворот юнита

jasonrus96,
facingAngle - угол поворота, т.е. куда смотришь лицом. Заставить мгновенно я понял, что нельзя. Он делает с задержками. Но если честно, я не особо парился над этим.
А перемещение SetUnitX, SetUnitY происходит мгновенно. Тут только твймером, вроде вам нужно плавно перемещать? А перемещает рывками. Снизи скорость, но увеличь частоту таймера. У меня где то была наработка со вращением
27

» WarCraft 3 / Резкий поворот юнита

function BlzSetUnitFacingEx(whichUnit, facingAngle) end
Мгновенный повоюорот
27

» WarCraft 3 / Летняя распродажа у Blizzard

подарки же запретили?
Мне подарили давно диабло 3, еще наверн тогда не ввезли санкции. Но и она вроде бесплатной стала
27

» В гостях у Эльрата / Настольные похождения

Прикольно. Давно с 1-5 класса не играл. На 1 сентября кажется подарили настольную игру. Играл с другом и подругой (соседями). Сильно не смог запомнить ниче из игры, тк спать надо и в школу. А потом про эту игру забыли прочувствовать не смог
Сейчас смотрю, и думаю. Что это интересно. Я бы купил, но мне не с кем поиграть. Поэтому настолки бесполезный хлам.😕 Только если это не комп игра с ботом с интересным увлекательным сюжетом
Но даже в детстве я с другом не так много играл в настолку. На один раз. Честно, хотелось бы подлинее
27

» WarCraft 3 / Летняя распродажа у Blizzard

Реф давно куплен, дибло 3 подарили, старкрафт 2 прошел кампании много раз. И старкрафт вроде бесплатный
Wow и Overwatch 2 не интересуют. Из этого есть еще ремейки на старые игры

А разве близзард вводила санкции? По идее разрабы только бывает не озвучивают и переводят на русский язык выпускаемые игры по понятным причинам.

Играть надо с девушкой
27

» WarCraft 3 / Количество Рабов на шахте

В самостоятельной системе добычи вернее точно можна определить. А так в гуи инструментов недостаточно, дабы отследить это точно.
Можно сделать так: отправляем раба в шахту. Когда раб доходит до шахты, то прячем его. И счетчик увеличиваем. Золото увеличивается. Ведем в систему носильщиков, они бегают между шахтой и склвдом. Шахтеры увеличивают кол-во золота в шахте. Носильщики увеличивают золото игрока

Приказы

Вот можно через ивенты приказов отслеживать. Ну это работает только, когда игрок отдает приказ рабу.
Далее автоматические приказы:
Дальше раб срубает древесину или зашёл в шахту, и должен получить другой приказ нести домой в дом. Когда доходит до дома, он снова получает приказ на таргет (дерево, шахта).
Если ты не новичок, то можно всю соответствующую информацию об юните повесить в хэш-таблицу: ресурс и его кол-во (если он несет на плечах золото или древесину, иначе просто бежит без реса), таргет, приказ

Проблемы приказов

Это не сложна сделать. Проблема - отследить все другие случаи: отмена приказа, переопределения на другой приказ (сбивает автоматическую добычу, но у раба мб еще ресурс. Приказ и таргет стираем).
Второй случай - сложно отслеживать, когда раб зашел в шахту. Мб сделать проверку заходом у всех ресурсов? Раб просто заходит в шахту, и исчезает. Интересна поможет ли здесь пустышка "укрыться за щитом".
Третье случай - отследить сколька ресурсов взял либо сколько несет на себе ресурса раб. Мб нужно проверять сколько было денег в шахте до его ухода. С деревом сложнее.
Это будет такая дрочильня с приказами. Нужно все тонкости соблюсти.

Вывод

Сейчас нам нужно определить сколько рабов в шахте, верно? Нам не важны все проблемы, что перечислил выше (точно определить скока, зашел или вышел из шахты, срубил дерева). Нам нужно определить только кол-во рабов на шахте. Тогда здесь ивенты приказов точно должны помочь.
Когда раб получает приказ идти в шахту (будь автоматическая подача или приказ игрока), можно проверять скока рабов в швхте. Если меньше 5, то отправляем раба => в счетчик шахты складываем +1. Иначе отменяем приказ, тк шахта перегружена 5/5, и шахтер должен остановиться, и выдать системную ошибку: "вы не можете отправить работника, шахта переполнена".
Еще нужно отслеживать моменты, когда раб уходит с шахты: получает приказ отмены, получил новый приказ, или получил другой таргет и др. Рабочий уходит, то минус -1 из шахты
ps я не знаю есть ли в игре какие то проблемы с привязками. При автоматическом сборе реса раб привязывается к тому таргет-ресурсу, на который указал игрок. Замечано, что позже после срубки раб ищет ближайшее дерево. А с шахтами неизвестно. Мб он захочет с ближайшей шахты собирать, чем бежать в даль. Здесь уже триггер проверки ухода уберет раба с дальней шахты на ближайшую. А что будет, если дальше ему никак? Атоматическая добыча багуется. Шахта перегружена? Нужно ли самому назначить автосбор. Надо чекать этот момент. Поправимо: если получает приказ на перегруженную шахту, нужно проверить, есть ли у него таргет, значит, что у него автоматическая добыча. Либо ищем ближайшую не перегруженную рабами шахту, или старую таргет-шахту, если она не разрушилась еще.
27

» WarCraft 3 / Подскажите триггер с переносом юнитов

А я прошу чтоб он перенёся персонаж .
SetUnitX, SetUnitY
В гуи вашем найди SetUnitPosition или что такое. Трудно все действия в разделе unit посмотреть. Самое просто действие
27

» WarCraft 3 / Подскажите триггер с переносом юнитов

Можно поточнее, как происходит перемещение. Не ямно. Может тебе надо перевернуть?
Правда, на jass. Но писал давно. Не знаю, какая часть аспекта сложна вам.
Написать событие чата с проверкой подстроки не сложна. Наверное, вы не знаете как провернкть действие. Есть действие SetUnitX, SetUnitY

И название темы дурацкое