скорее всего ты хочешь посмотреть bj-функции и их заменить так? вроде в архиве игры лежит bj файлик, там все bj-функции, глобалки и прочее. Есть еще библиотека функции в jngp, или посмотри в интернете
просто перепиши функцию с утечками и там где лишнее используется, и все. а те что и так норм используются можно оставить, не все bj-обертки плохи
эта функция работает?
например здесь вернет 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 перепишет, тк вар не может возвращать два значения ссылка
ну тут проблема в том, что у мелких кампании наверн нет шанса заявить о своем продукте. Он остается незамеченным (как большинство моб приложении), и, следовательно, неизвестным, если ли шанс узнать об том? Большинство известных новинок обычно из ютуба стриммеры рекламируют.
по приколу: собираем группу единомышленников в гараже, планируем выпустить игру, идем за 15 миллионами в минкулькут. Но есть шанс, что могут не успеть и денег не хватить на всех (как обычно бывает). Питаемся макарошками. Урааа.
основной таймер - запускаем при старте игры на 999999 сек. от него можно узнать тек время (есть спец функции)
функции
истекшее время - сколько прошло времени с момента запуска
native TimerGetElapsed (timer whichTimer) returns real оставшее время - сколько время осталось до истечения
native TimerGetRemaining (timer whichTimer) returns real основное время - время, которое вводили при запуске таймера. можете узнать
native TimerGetTimeout (timer whichTimer) returns real
запускаемый таймер - работает по массивам времени. вот например: запустить через 20 сек,
set time[a]= тек время + 20 сек.
берем пробегаем по массивам ищем ближайшее время. если массивы пусты, то запускаемый таймер отдыхает
8gabriel8, я думаю он имел в виду, что вряд ли когда-нибудь картодел наделает 8192 таймера и упрется в лимит массива. Такое вряд ли осуществимо. По мере возможности.
Или как я предложил, использовать на всю игру два таймера +массивы времени. Мне вот интересно можно ли сделать чтоб чисто плавно игралось
У меня такой вопрос, если одновременно запустить кучу таймеров нагрузка возрастет или никакой разницы? можно тогда было бы два таймера запускать +массивы времени заводить. один таймер от начала игры чтобы знать тек время, второй выбирать ближайшее время и запускать очереди. как только истекает ближайшее время, то запускать след.
Ельнур, тебе ссылку скинул с примером
+в графических редакторах нет действия "создать таймер", только в 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
конец цикла
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
в интернете посмотри. Парень ты не обучаем? Переходи на 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
есть itempool или можно сделать массив типов итемов, и рандомить шанс выпадения, и рандомить тип итема. вбей в поиск, посмотри еще на хайве про itempool или про дроп итемов
да забей. совсем больные на голову. еще платить за модели. нефиг тогда выкладывать. большинство модели сделано не с нуля, а берут в качестве основы вариковские. Наверн я не видел норм карты где есть качественные модели.
вот, я набирал 72 комбинации и записывал в текстовик, осталось проверить
4xxxx-комбинации (24 комбинации)
5xxxx-комбинации (24 комбинации)
просто надоело, вроде наверн твоего дракона и не существует, понял как собираются некоторые.
По идее всего вариантов лишь 5х4х3х2х1=120
Да точно устанешь. Просто автор зря ввел фильтры, никак не пропустить было заставку и еще ускорить нельзя было игру.
че та не очень понятно, и карта не понятная, как в нее играть?
вызвал огонь+человек - раб пошел в огонь и сдох
вызвал овцу+человек - раб пошел ее завалил
каким-то образом смог вызвать футмена - но он не может скелета пройти
а еще Артеса и Келя успел вызвать - после скелета Монороха пройти не могут
Портреты непосредственно к самой модели прикреплены.... Ну выглядит реально деревяно.
согласен. когда кампанию за хуманов посмотрел, там потретики просто ужас. особенно анимация разговора отсутствует, головы киваю да мотают. близзарды забыли наверн Aws:
Tiodor, в принципе всеми руками за добавление девочек, но не понял, почему у женского дк еще и топор есть. Где равноправие?
тоже за. можно просто скины менять. просто как-то в своей карте хотел сделать разных рабов. а будет ли у нас рассовое равноправие?) в США афроамериканцев в кино используют - политика. В марвел агент Ник Юрий стал негром (как то прижилось, трудно представить светлокожим), в вселенной ДС жена Барри Алена - негр (а это поразило). В what app в смаликах даже волосы и цвет волос выбирают. Думаю и в варкрафте равноправие придет.
NazarPunk, что возвращает Perpendicular? Вроде же длину перпендикуляра. верно? И как это работать должно в данном заклинании. Че-то никак не могу понять. Если я выберу всех юнитов, то какое условие надо задать в фильтре
Раньше думал, что эта функция только для поворота головы, но оказалось можно сделать больше - поворачивать dummy-снаряды. К сожалению, не опробовал этот метод по причине недостатка времени. Недостатки: там можно повернуть только две кости (голову head и туловище chest), в принципе достаточно для снаряда (нужно создать модель. что тут сложного? ракета или стрела это простые модели, на них крепим кость); необходимость использовать даймика lookAtTarget для поворота.
по ссылке пользователь Ice скинул ссылку на модель скорпа
Ред. MpW
» WarCraft 3 / bj ?
просто перепиши функцию с утечками и там где лишнее используется, и все. а те что и так норм используются можно оставить, не все bj-обертки плохи
» WarCraft 3 / bj ?
» WarCraft 3 / Пересечение двух отрезков
например здесь вернет false, ибо i == 0.00:
отрезок x1= 0; y1=0; x2=0; y2=100
отрезок x3=50; y3=50; x4=-50; y4=50
большая часть вычислении возвращает false, наверн просто в координатах нули
ссылка
» Мир безумного / Государство даст денег на разработку игр
» Мир безумного / Государство даст денег на разработку игр
Ред. MpW
» Администрация XGM / Нельзя ли отображать вопросы пользователя?
» WarCraft 3 / Таймер на муй гуй
Ред. MpW
» WarCraft 3 / Таймер на муй гуй
native TimerGetElapsed (timer whichTimer) returns real
оставшее время - сколько время осталось до истечения
native TimerGetRemaining (timer whichTimer) returns real
основное время - время, которое вводили при запуске таймера. можете узнать
native TimerGetTimeout (timer whichTimer) returns real
Ред. MpW
» WarCraft 3 / Таймер на муй гуй
Ред. MpW
» WarCraft 3 / Таймер на муй гуй
Ред. MpW
» WarCraft 3 / Таймер на муй гуй
+в графических редакторах нет действия "создать таймер", только в JNGP. вызвать можно через действие CS: set t =CreateTimer(). и прежде всего таймер вызывает функцию. Вам придется все равно писать функцию вызова. Иначе, просто крепите событие запуска таймера на триггер, очень неудобная штука.
Триггер А: создать таймер 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
конец цикла
Ред. MpW
» WarCraft 3 / Таймер на муй гуй
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
» WarCraft 3 / Таймер на муй гуй
на муи вроде массивы, обычный перебор индексов 1-8192 в патче 1.26: у тебя должен быть счетчик, с которого будешь знать откуда начинать.
» WarCraft 3 / Выпадение награды за убийство другого игрока крипов
Ред. MpW
» WarCraft 3 / Вопрос касательно прав на карту и модели.
» WarCraft 3 / Помогите разобраться в триггерах карты
4xxxx-комбинации (24 комбинации)
5xxxx-комбинации (24 комбинации)
просто надоело, вроде наверн твоего дракона и не существует, понял как собираются некоторые. Да точно устанешь. Просто автор зря ввел фильтры, никак не пропустить было заставку и еще ускорить нельзя было игру.
Ред. MpW
» WarCraft 3 / Помогите разобраться в триггерах карты
вызвал огонь+человек - раб пошел в огонь и сдох
вызвал овцу+человек - раб пошел ее завалил
каким-то образом смог вызвать футмена - но он не может скелета пройти
а еще Артеса и Келя успел вызвать - после скелета Монороха пройти не могут
» WarCraft 3 / Реген
Ред. MpW
» WarCraft 3 / Бета версия Warcraft III Reforged 1.32
Aws: тоже за. можно просто скины менять. просто как-то в своей карте хотел сделать разных рабов. а будет ли у нас рассовое равноправие?) в США афроамериканцев в кино используют - политика. В марвел агент Ник Юрий стал негром (как то прижилось, трудно представить светлокожим), в вселенной ДС жена Барри Алена - негр (а это поразило). В what app в смаликах даже волосы и цвет волос выбирают. Думаю и в варкрафте равноправие придет.
Ред. MpW
» WarCraft 3 / Как сделать анимацию перезарядки для кастомных кнопок (фреймов)?
ну абила, при продаже итемов юнитов это тоже фрэйм. я знаю есть модель кулдауна
как они еще туда зарядики в уголок запихали
Ред. MpW
» WarCraft 3 / Как добавить курьера в карту.
Ред. MpW
» WarCraft 3 / Перпендикуляр от отрезка к точке
Пикаешь всех, и проверяешь длину. Если длина перпенд < ширины/2 - попало
Ред. MpW
» WarCraft 3 / Урон по линии
Ред. MpW
» WarCraft 3 / Приведите примеры работы с SetUnitLookAt
по ссылке пользователь Ice скинул ссылку на модель скорпа