27

» WarCraft 3 / bj ?

скорее всего ты хочешь посмотреть bj-функции и их заменить так? вроде в архиве игры лежит bj файлик, там все bj-функции, глобалки и прочее. Есть еще библиотека функции в jngp, или посмотри в интернете
просто перепиши функцию с утечками и там где лишнее используется, и все. а те что и так норм используются можно оставить, не все bj-обертки плохи
27

» WarCraft 3 / Пересечение двух отрезков

эта функция работает?
например здесь вернет false, ибо i == 0.00:
отрезок x1= 0; y1=0; x2=0; y2=100
отрезок x3=50; y3=50; x4=-50; y4=50
большая часть вычислении возвращает false, наверн просто в координатах нули


алгоритм: проверка на пересечение отрезков
function CrossLines takes real x1, real y1, real x2, real y2, real x3, real y3, real x4, real y4 returns boolean
return (((x3-x1)*(y2-y1) - (y3-y1)*(x2-x1)) * ((x4-x1)*(y2-y1) - (y4-y1)*(x2-x1)) <= 0) and (((x1-x3)*(y4-y3) - (y1-y3)*(x4-x3)) * ((x2-x3)*(y4-y3) - (y2-y3)*(x4-x3)) <= 0)
endfunction
алгоритм: точка пересечения
function LineIntersect  takes real x1, real y1, real x2, real y2, real x3, real y3, real x4, real y4 returns nothing

local real LDetLineA = x1*y2 - y1*x2
local real LDetLineB = x3*y4 - y3*x4
local real LDiffLAx = x1 - x2
local real LDiffLAy = y1 - y2
local real LDiffLBx = x3 - x4
local real LDiffLBy = y3 - y4
local real LDetDivInv = 1 / ((LDiffLAx*LDiffLBy) - (LDiffLAy*LDiffLBx))
local real x = ((LDetLineA*LDiffLBx) - (LDiffLAx*LDetLineB)) * LDetDivInv
local real y = ((LDetLineA*LDiffLBy) - (LDiffLAy*LDetLineB)) * LDetDivInv

call DisplayTextToForce( GetPlayersAll(), "точка пересечения: " + R2S(x) + " , " + R2S(y) )
endfunction
кому надо сам на глобалки x,y перепишет, тк вар не может возвращать два значения
ссылка

27

» Мир безумного / Государство даст денег на разработку игр

ну тут проблема в том, что у мелких кампании наверн нет шанса заявить о своем продукте. Он остается незамеченным (как большинство моб приложении), и, следовательно, неизвестным, если ли шанс узнать об том? Большинство известных новинок обычно из ютуба стриммеры рекламируют.

по приколу: собираем группу единомышленников в гараже, планируем выпустить игру, идем за 15 миллионами в минкулькут. Но есть шанс, что могут не успеть и денег не хватить на всех (как обычно бывает). Питаемся макарошками. Урааа.
27

» Администрация XGM / Нельзя ли отображать вопросы пользователя?

ScorpioT1000, на сайте если зайти к пользователю, и если он у вас в друзьях, то почему то весит кнопка "добавить в друзьях" над "отношения"
27

» WarCraft 3 / Таймер на муй гуй

nvc123, это как 1 таймер с небольшим периодом
а нафига 2?
основной таймер - запускаем при старте игры на 999999 сек. от него можно узнать тек время (есть спец функции)
функции
истекшее время - сколько прошло времени с момента запуска
native TimerGetElapsed (timer whichTimer) returns real
оставшее время - сколько время осталось до истечения
native TimerGetRemaining (timer whichTimer) returns real
основное время - время, которое вводили при запуске таймера. можете узнать
native TimerGetTimeout (timer whichTimer) returns real
запускаемый таймер - работает по массивам времени. вот например: запустить через 20 сек,
set time[a]= тек время + 20 сек. 
берем пробегаем по массивам ищем ближайшее время. если массивы пусты, то запускаемый таймер отдыхает
27

» WarCraft 3 / Таймер на муй гуй

8gabriel8, я думаю он имел в виду, что вряд ли когда-нибудь картодел наделает 8192 таймера и упрется в лимит массива. Такое вряд ли осуществимо. По мере возможности.

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

» WarCraft 3 / Таймер на муй гуй

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

» WarCraft 3 / Таймер на муй гуй

Ельнур, тебе ссылку скинул с примером
+в графических редакторах нет действия "создать таймер", только в JNGP. вызвать можно через действие CS: set t =CreateTimer(). и прежде всего таймер вызывает функцию. Вам придется все равно писать функцию вызова. Иначе, просто крепите событие запуска таймера на триггер, очень неудобная штука.
там на гуи легко (пишу по памяти, в редактор лень лезть):
Триггер инициализации: создаете счетчик Count = 0, объявляете массив timer[] и другие массивы для хранения
Триггер А: создать таймер timer[Count], храните все данные в массивах типа unit[Count], interger[Count] и пр, прикрепляется событие вызова этого таймера на триггер Б, запустить таймер, прибавляете счетчик set Count=Count+1.
Триггер Б:
Цикл А до Count
if timer[A]==GetExpiredTimer() then
достаете номер А, делаете что-то с данными, например убить unit[A] или нанести урон. Или отнять бонусы integer[A]. Удаляете таймер timer[A], если он вам не нужен.
set timer[A] = timer[Count]
не забудьте перенести данные unit[] integer[] и др с того массива на массив A
set unit[A] = unit[Count]
set integer[A] = integer[Count]
set Count=Count-1
endif
конец цикла
27

» WarCraft 3 / Таймер на муй гуй

Просто и новичку обьясни =)
вроде так, если правильно понял
local integer a = 0
local timer t
loop
exitwhen i>a
if timer[a]==GetExpiredTimer() then
вы находите нужный индекс a, теперь делаете дела всякие, чистите удаляете и прочее
если вы дальше не собираетесь использовать timer[a] удаляете сначала, чтобы в памяти не висел
потом смещаете структуру с "i" на "a" , в счетчике i-1 становится на 1 меньше и циклом меньше перебегать будешь
set timer[a] = timer[i]
set i=i-1
endif
set a = a - 1
endloop
set t = null
27

» WarCraft 3 / Таймер на муй гуй

в интернете посмотри. Парень ты не обучаем? Переходи на jass, timer+hastable
на муи вроде массивы, обычный перебор индексов 1-8192 в патче 1.26: у тебя должен быть счетчик, с которого будешь знать откуда начинать.
массивы
создаем таймер, запускаем таймер, прибавляем к счетчику +1
set timer[i] = CreateTimer()
call TimerStart(timer[i],false,....)
set i = i+1
далее при запуске триггера, функции проверяем циклом какой таймер GetExpiredTimer() запустил
local integer a = 0
loop
	exitwhen a>i
	if timer[a]==GetExpiredTimer() then
		//вы находите нужный индекс a, теперь делаете дела всякие, чистите удаляете и прочее
	endif
	set a = a + 1
endloop
27

» WarCraft 3 / Выпадение награды за убийство другого игрока крипов

Принятый ответ
есть itempool или можно сделать массив типов итемов, и рандомить шанс выпадения, и рандомить тип итема. вбей в поиск, посмотри еще на хайве про itempool или про дроп итемов
27

» WarCraft 3 / Вопрос касательно прав на карту и модели.

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

» WarCraft 3 / Помогите разобраться в триггерах карты

вот, я набирал 72 комбинации и записывал в текстовик, осталось проверить
4xxxx-комбинации (24 комбинации)
5xxxx-комбинации (24 комбинации)
просто надоело, вроде наверн твоего дракона и не существует, понял как собираются некоторые.
По идее всего вариантов лишь 5х4х3х2х1=120
Да точно устанешь. Просто автор зря ввел фильтры, никак не пропустить было заставку и еще ускорить нельзя было игру.
Загруженные файлы
27

» WarCraft 3 / Помогите разобраться в триггерах карты

че та не очень понятно, и карта не понятная, как в нее играть?
вызвал огонь+человек - раб пошел в огонь и сдох
вызвал овцу+человек - раб пошел ее завалил
каким-то образом смог вызвать футмена - но он не может скелета пройти
а еще Артеса и Келя успел вызвать - после скелета Монороха пройти не могут
27

» WarCraft 3 / Реген

respect_gg, при триггерно регене проще, мб добавлять в группу тех у кого реген не должен работать. и проверять не состоит ли в группе
27

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

Портреты непосредственно к самой модели прикреплены.... Ну выглядит реально деревяно.
согласен. когда кампанию за хуманов посмотрел, там потретики просто ужас. особенно анимация разговора отсутствует, головы киваю да мотают. близзарды забыли наверн
Aws:
Tiodor, в принципе всеми руками за добавление девочек, но не понял, почему у женского дк еще и топор есть. Где равноправие?
тоже за. можно просто скины менять. просто как-то в своей карте хотел сделать разных рабов. а будет ли у нас рассовое равноправие?) в США афроамериканцев в кино используют - политика. В марвел агент Ник Юрий стал негром (как то прижилось, трудно представить светлокожим), в вселенной ДС жена Барри Алена - негр (а это поразило). В what app в смаликах даже волосы и цвет волос выбирают. Думаю и в варкрафте равноправие придет.
27

» WarCraft 3 / Как сделать анимацию перезарядки для кастомных кнопок (фреймов)?

NazarPunk,
ну абила, при продаже итемов юнитов это тоже фрэйм. я знаю есть модель кулдауна
как они еще туда зарядики в уголок запихали
27

» WarCraft 3 / Как добавить курьера в карту.

Принятый ответ
выясните причину, возможна:
  1. в ро итемы настроены так, что нельзя подбирать
  2. возможно, какие то руны нельзя обычным юнитам подбирать. Есть такие абилки, которые действуют на героев. Или какие то другие случаи.
  3. инвентарь. Есть абилка инвентаря, там настройки тоже есть.
  4. нету у вас триггеров на дроп при подборе или еще чего ?
Не знаю что у вас не работает. У нас форум телепатов и экстрасенсов
27

» WarCraft 3 / Перпендикуляр от отрезка к точке

Я так понял это должно быть так
Пикаешь всех, и проверяешь длину. Если длина перпенд < ширины/2 - попало
Загруженные файлы
27

» WarCraft 3 / Урон по линии

NazarPunk, что возвращает Perpendicular? Вроде же длину перпендикуляра. верно? И как это работать должно в данном заклинании. Че-то никак не могу понять. Если я выберу всех юнитов, то какое условие надо задать в фильтре
27

» WarCraft 3 / Приведите примеры работы с SetUnitLookAt

Раньше думал, что эта функция только для поворота головы, но оказалось можно сделать больше - поворачивать dummy-снаряды. К сожалению, не опробовал этот метод по причине недостатка времени. Недостатки: там можно повернуть только две кости (голову head и туловище chest), в принципе достаточно для снаряда (нужно создать модель. что тут сложного? ракета или стрела это простые модели, на них крепим кость); необходимость использовать даймика lookAtTarget для поворота.
по ссылке пользователь Ice скинул ссылку на модель скорпа