30

» WarCraft 3 / Можно ли использовать GetTriggerPlayer() в триггере с EVENT_PLAYER_UNIT_SELECTED?

onDamage(){
	unit u = GetTriggerUnit();
	DamageTarget(/*... some random unit*/);
	
	print( u  == GetTriggerUnit() ); // <--- Очень интересен этот момент
}
30

» WarCraft 3 / Можно ли использовать GetTriggerPlayer() в триггере с EVENT_PLAYER_UNIT_SELECTED?

а остальные - как локалки.
Получается GetEventSomeone запоминают контекст исполнения и каким-то образом достают именно необходимое значение для контекста?
30

» WarCraft 3 / Вопрос про Endloop

SсRealm, ну, создал ты таймер? А вэйт чем достигается? Или ты тупо по таймеру делаешь отложенный ExecuteFunc?
30

» WarCraft 3 / Вопрос про Endloop

SсRealm, тоесть ты банально юзаешь PolledWait и говоришь что не юзаешь вэйт? Да ты прям гейний.
30

» WarCraft 3 / Вопрос про Endloop

Вейты давно не юзаю. Сделал в шапке фунцкию таймера и вызываю ее через wait EX.
А в этой твоей функции вэйт не спрятался? Функцию в студию.
30

» WarCraft 3 / Вопрос про Endloop

И так же при капе в 100.00 он способен выдавать ровно 100.00
Посмотрел в игре. Ты точно гейний.
float __fastcall GetRandomReal(const float* lowBound, const float* highBound) {
        if (low == high) {
            return low;
        }

       // ...
}
30

» WarCraft 3 / Вопрос про Endloop

Jack-of-shadow, и таким образом добавится третье измерение, в котором количество допустимых значений будет 0xFFFFFFFF * 0xFFFFFFFF * 0xFFFFFFFF?
30

» WarCraft 3 / Вопрос про Endloop

Zeix, да особо ни в чём, кроме кривой реализации реалов в самой игре. Ну не люблю я числа с плавающей точкой, так что при первой возможности домножаю на нужную точность и перевожу в integer.
Да и к примеру 5% в тех же integer выглядят более наглядно:
if GetRandomInt(1, 100) < 5 then
30

» WarCraft 3 / Вопрос про Endloop

Jack-of-shadow, всмысле?
Количество значений 0xFFFFFFFF * 0xFFFFFFFF, каким боком StringHash позволяет его увеличить?
30

» WarCraft 3 / Вопрос про Endloop

Extremator, ровно 100.00? а ты как проверяешь, через ==?
Да и я вижу ты гений, раз у тебя lowBound == highBound.
30

» WarCraft 3 / Вопрос про Endloop

SсRealm, проще представить, как координатную плоскость. А primaryKey и childKey это координаты в целых числах.
Ну или представь, что любой массив, это
set Array[primaryKey][0] = 100500
Где просто [0] зафиксирован и его не обязательно писать. А хт позвляет добавить к массиву ещё одно измерение.
Загруженные файлы
30

» WarCraft 3 / Вопрос про Endloop

SсRealm, ну, как массивы работают ты же уже понял? Ну вот представь, что хт это хитрый массив:
set HT[primaryKey][childKey] = 100500
Только вместо синтаксиса с [...] там специальная функция:
call SaveInteger(HT, primaryKey, childKey, 100500)
30

» WarCraft 3 / Вопрос про Endloop

Makeba, я тебе написал, в чём идея использования 0.01 вместо нуля. Я бы вообще отказался от реалов и решал рандом на integer с нужной мне точностью.
30

» WarCraft 3 / Вопрос про Endloop

SсRealm, ты до сих пор с ними не разобрался? Это же на пару часов делов.
30

» WarCraft 3 / Вопрос про Endloop

Makeba, смотри. Идея проста. Домножь на 100 и получишь [1, 10000]. Для простоты избавимся от лишних нулей и переведём в int. Получится [1, 100]. Тобишь ровно сто чисел, каждое из которых ровно один процент.
Только особо одарённые личности привыкли вкидывать и ничего не объяснять.
30

» WarCraft 3 / Вопрос про Endloop

иначе ты немного смазываешь шанс
Чёт я немного не догнал про смазывание шанса. Если разделить первый случай на 100, то получим [0, 1]. А это буквально диапазон стандартного рандомизатора.
Во втором случае получается [0.0001,1]. В чём выгода?