XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
Мод Allrandom
Как сделать так, чтобы на моде AR не было одинаковых героев?
(Вариант "создай пяццоттыщ милионов героев, тогда у тебя будет шанс чуть менее 0,00416%, что попадутся комуто одинаковые герои" - отпадает сразу =] )
Старый 24.03.2008, 18:25
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
Создай всех героев за нейтралов где-нить в углу карты и после прописи -allrandom меняй хозяина героя на нужного.
Старый 24.03.2008, 18:32
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
Ууу... это, конечно, идея. Но в моей карте и так места нету, а если я еще героев впихну, то будет о-йо-йой!
Старый 24.03.2008, 18:37
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
юзаем поиск, обсуждалось уже стопицот раз(вообщем надо записать всех юнитов в массив и при выборе героя из масива его выписывать)
Старый 24.03.2008, 18:38
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
Кстати, кто знает, как в Доте сделано?

Flareon добавил:
Я искал, ниче толкового не нашол!
Старый 24.03.2008, 18:40
Mind_Freak
отступник дроу
offline
Опыт: 2,274
Активность:
создай целочисленную переменную присваивай ей рандомное значение от 1 до числа героев, потом ставь условие если число равно такомуто и герой еще не выбран(через массив булеан) то выбрать этого героя присвоить переменной типа булеан с таким индексом значение тру, иначе запустить этот триггер снова. Вобщем идея такая, там разберешься
Старый 24.03.2008, 18:43
DeaDoK

offline
Опыт: 5,783
Активность:
Открой опендоту и посмотри.
Прям как Мэнсон сказал.
Старый 24.03.2008, 18:52
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
Писать многовато! ппц...

Flareon добавил:
Ха ха ха! Опен Дота - это джасс, а я в джассе не шарю совсем!
Старый 24.03.2008, 18:55
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
Можно создать группу и добавить туда всех героев. После чего создавать по очереди для игроков рандомного юнита из группы и исключать его оттуда. Ну и потом не забываем группу уничтожить)
Старый 24.03.2008, 18:57
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
Насколько я знаю, в отряд входят только те юниты, которые уже расположены на карте ^_^
Старый 24.03.2008, 19:48
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Flareon
В чём главная проблема? Если в том, что при людом рандоме не выпадало число, которое уже до этого было использовано, то у я где-то недавно делал пример на эту тему. Щас поищу...

DFlyer добавил:
Нашёл
http://xgm.guru/forum/showthread.php?p=361452#post361452
Старый 24.03.2008, 19:58
Mind_Freak
отступник дроу
offline
Опыт: 2,274
Активность:
создай 2 массива булеан и юнит тайп. делай так же рандом интеджер, условие если бул с таким индексом равно фальс, то создать героя из массива с таким индексом, если нет то запустить заново этот триггер. перед этим в массив типа юнита загибаешь все героев, всего 2 триггера.
Старый 24.03.2008, 20:32
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
Щас подзырю...
Старый 24.03.2008, 20:32
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
нафиг использовать бул, просто set udg_heroes[i]=null и if udg_heroes[i]==null then call RunTrigger(blabla)
Старый 24.03.2008, 20:46
Mind_Freak
отступник дроу
offline
Опыт: 2,274
Активность:
Ну, можно и так разницы большой нет, на проданейсельности обращение к переменной не скажется т.к. триггер будет выполняться не много раз, а так на одно действие меньше...

Mind_Freak добавил:
*производительности. опечатка, бесит мобила...
Старый 24.03.2008, 21:05
adic3x

offline
Опыт: 108,439
Активность:
делается не так
есть массив типов юнита, к примеру в нем 16 героев
присваиваем простой целочисленной переменной рандо нумер между 0 и 16
создаем героя по юнит типу из массива
последний елемент массива перемещаем в элемент массива по нашей переменной
в след раз рандом от 0 до 15
Старый 24.03.2008, 21:44
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
Как переместить тип юнита в конец массива?
Старый 24.03.2008, 21:53
Mind_Freak
отступник дроу
offline
Опыт: 2,274
Активность:
запутанно как то, сразу и не понять... так вроде сложнее даже...
Старый 24.03.2008, 21:57
adic3x

offline
Опыт: 108,439
Активность:
пишу на жасс кто то переведите в гуи
Код:
globals
 integer array i_UnitType
 integer max=n
endglobals

func Init...
 set i_UnitType[0]='Hpal'
 set i_UnitType[1]='Hblm'
 ...
 set i_UnitType[n]='nnnn'
endfunc

при выборе

 local int i=GetRandomInt(0, max)
 call CreateUnit(... i_UnitType[i] ...
 set i_UnitType[i]=i_UnitType[max]
 set max=max-1
Старый 24.03.2008, 22:05
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
Переведите плз это в триги!
Старый 25.03.2008, 17:33
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 09:43.