0
29
11 часов назад
0

» WarCraft 3 / Стаки предметов

Art35372, логично. Прими этот ответ как лучший.
0
29
12 часов назад
Отредактирован nazarpunk
0

» WarCraft 3 / Стаки предметов

EugeAl, танки и берсерки заменяются апгрейдом "Тёмный". А в остальном вполне возможно, что есть функция наподобие EnableItemStacks.
0
29
13 часов назад
0

» IntelliJASS / Типы данных

Vlod, в каком месте он нормальный?
0
29
15 часов назад
0

» WarCraft 3 / Способность Оживление мертвых

Nefrite, есть. Перейти на jass и не клепать голову себе и людям.
0
29
17 часов назад
0

» WarCraft 3 / Оседлать

Готовишь три модели
  • Кресоносец
  • Лошадка
  • Крестоносец на лошадке
Потом просто ставишь UjAPI и заменяешь модель с помощью нативки.
native SetUnitModel takes unit whichUnit, string modelName returns nothing
0
29
17 часов назад
Отредактирован nazarpunk
0

» WarCraft 3 / Способность Оживление мертвых

Ставишь UjAPI и просто воскрешаешь нужного юнита с помощью нативки.
native ReviveUnit takes unit whichUnit, real x, real y returns boolean
0
29
19 часов назад
0

» WarCraft 3 / возможно ли сохронить framehandle в глобальную переменую ?? jass

konvan5, я читаю заголовок написанный абы как
возможно ли сохронить framehandle в глобальную переменую ?? jass
Читаю описание, написаное тоже через одно место
как передать аргумент в функцию в TimerStart()
Помогите Даше сосчситать вопросы.
0
29
20 часов назад
0

» WarCraft 3 / возможно ли сохронить framehandle в глобальную переменую ?? jass

замечание: 10.1 Размещение нескольких вопросов в одном ресурсе.
0
29
20 часов назад
0

» WarCraft 3 / возможно ли сохронить framehandle в глобальную переменую ?? jass

возможно ли сохронить framehandle в глобальную переменую ??
Возможно.
ну или как передать аргумент в функцию в TimerStart()
Через глобальную переменную.
0
29
20 часов назад
0

» WarCraft 3 / Интересная идея карты но... Яжнепрограммист

Как реализовать рандом выбор фракции но равное кол-во игроков в них... хз вообще
Математику в школе косил с ярым усердием?

Подсчёт игроков

Ну давай включим голову (это то место, которым обычное едят) и подумаем, какие у нас есть варианты двух команда для 10 игроков:
1 0x1
2 1x1
3 1x2
4 2x2
5 2x3
6 3x3
7 3x4
8 4x4
9 4x5
10 5x5
Как видно из таблицы, наблюдается проблема с нечётным количеством игроков. Её можно будет решить балансом, но это уже предмет другого вопросв.
Итак, первым делом пересчитаем всех играющих игроков и положим это значение в переменную:
integer PlayerCount;
Далее заведём переменные для количества игроков в командах:
integer FirstTeamCount;
integer SecondTeamCount;
Чтоб не лезть в дебри функций возпользуемся замечательным свойством типа integer - отбрасывание остатка при делении:
set FirstTeamCount = PlayerCount / 2
Посчитаем оставшихся игроков
set SecondTeamCount = PlayerCount - FirstTeamCount
Отобразим результаты в таблице:
PlayerCount FirstTeamCount SecondTeamCount Комманды
1 1 / 2 = 0 1 - 0 = 1 0x1
2 2 / 2 = 1 2 - 1 = 1 1x1
3 3 / 2 = 1 3 - 1 = 2 1x2
4 4 / 2 = 2 4 - 2 = 2 2x2
5 5 / 2 = 2 5 - 2 = 3 2x3
6 6 / 2 = 3 6 - 3 = 3 3x3
7 7 / 2 = 3 7 - 3 = 4 3x4
8 8 / 2 = 4 8 - 4 = 4 4x4
9 9 / 2 = 4 9 - 4 = 5 4x5
10 10 / 2 = 5 10 - 5 = 5 5x5

Перемешивание массива

Массивы у нас маленькие, так что проигнорируем оптимизацию памяти.
Так же проигнорируем нормальный нейминг, ибо при объяснении он нам будет мешать.
Заведём массивы содержашие номера игроков. Всегда старайтесь работать с примитивами.
integer array ALL // массив для всех игроков
integer array A // массив для первой комманды
integer array B // массив для второй комманды комманды
Заведём курсор для каждого массива. Для удобства используем их имя в нижнем регистре:
integer all = -1
integer a = -1
integer b = -1	
Почему не используется ноль вы поймёте позже.
Итак, для примера заполним массив ALL игроками
set all = all + 1 // 0
set ALL[all] = 3 // возьмём произвольные номера игроков
set all = all + 1 // 1
set ALL[all] = 5 
set all = all + 1 // 2
set ALL[all] = 7
set all = all + 1 // 3
set ALL[all] = 9
Итак, как видите у нас в массиве четыре игрока, тобишь курсор + 1 = количество элементов массива.
Теперь необходимо заполнить массивы комманд случайными игроками. Для этого существует простой алгоритм:
local integer r // заведём временную переменную для хранения случайного числа

loop
	set random = GetRandomInt(0, all) // Получаем случайный индекс массива ALL

	if a + 1 < FirstTeamCount then // если в первой комманде недостаточно игроков добавляем их туда
		set a = a + 1
		set A[a] = ALL[random]
	else // если первая комманда полная пихаем всех во вторую
		set b = b + 1
		set B[b] = ALL[random] 
	endif

	set ALL[random] = ALL[all] // Помещаем последний элемент массива на место случайного элемента
	set all = all - 1 // Двигаем курсор влево	
	exitwhen all < 0 // Выходим из цикла, если мы вышли за пределы массива
endloop
Теперь у вас есть два массива A и B заполненные индексами случайных игроков. На этом мои полномочия всё.
0
29
21 час назад
0

» WarCraft 3 / Интересная идея карты но... Яжнепрограммист

PUVer, если по научному, то вектор это направленный отрезок. А массив это выделенная область памяти. Я даже расписал как память выделяется.
1
29
22 часа назад
1

» IntelliJASS / Функции

ScorpioT1000, ладно, уговорил. Добавил абзац с пояснениями.
0
29
1 день назад
0

» WarCraft 3 / Интересная идея карты но... Яжнепрограммист

УВЫ я слишком туп для массивов
Что мешает исправить эту ситуацию?
0
29
1 день назад
0

» Блог им. Immortal_Zodd / НЕДОСТАТОК ЖЕСТОКОСТИ В ИГРАХ

Рассказывает про недостаток жестокости а у самого в видео нифига нет жестокости. Как будто он боится, что его видео лишний раз не посмотрят.
0
29
1 день назад
0

» WarCraft 3 / Интересная идея карты но... Яжнепрограммист

Предупреждение автору публикации

замечание: 10.4 Создание ресурса, название которого не отражает суть вопроса.
0
29
2 дня назад
0

» IntelliJASS / Функции

ScorpioT1000, можешь привести случай, где нужно явно различать эти два определения?
0
29
2 дня назад
0

» Game Dev / Создание второстепенных персонажей и их влияние на игровой мир

Делайте хорошо и будет хорошо. Логично.
0
29
2 дня назад
0

» IntelliJASS / Типы данных

ScorpioT1000, в нативках точно такие же строки.
0
29
2 дня назад
0

» IntelliJASS / Типы данных

ScorpioT1000, просто массив байт. Так что UTF-8 буду потом руками писать.
0
29
2 дня назад
0

» IntelliJASS / Типы данных

soshroom, не говори мне что делать и я не скажу тебе куда идти.
0
29
3 дня назад
0

» WarCraft 3 / Можно ли отследить конец разложения юнита?

MpW, чтот я не понял. Юнит умер и его трупик начинает валяться и разлагаться. На полпути разложения прибегает паладин и воскрешает его. Как это всё отследить?
0
29
3 дня назад
0

» WarCraft 3 / Список в JASS

В JASS нет, но зато есть в AngelScript.
1
29
3 дня назад
1

» WarCraft 3 / Список в JASS

Borodach, хэштаблица это Map<int, Map<int, any>>.
0
29
3 дня назад
0

» Game Dev / Интерактивное повествование и нелинейный геймплей в играх

Cancel, наличие в игровом меню опций:
  • Играть
  • Выйти
Это уже нелинейность. Так что считаем все игры нелинейными.
1
29
3 дня назад
1

» WarCraft 3 / Можно ли отследить конец разложения юнита?

В UjAPI есть специально обученное событие:
EVENT_PLAYER_UNIT_DECAY_FINISHED