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

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

Ответ
 
T Mon

offline
Опыт: 3,825
Активность:
Random integer number
Вот я написал такой код:
События:
Время - Every 20.00 seconds of game time
Условия:
нет
Действия:
Set Unit = (Random integer number between 1 and 5)
If (Unit равно 1) then do (Боевая единица - Create 1 Пехотинец for Игрок 1 (красный) at (Center of Unit <gen>) facing 90.00 degrees) else do (Do nothing)
If (Unit равно 2) then do (Боевая единица - Create 1 Рыцарь for Игрок 1 (красный) at (Center of Unit <gen>) facing 90.00 degrees) else do (Do nothing)
If (Unit равно 3) then do (Боевая единица - Create 1 Стрелок for Игрок 1 (красный) at (Center of Unit <gen>) facing 90.00 degrees) else do (Do nothing)
If (Unit равно 4) then do (Боевая единица - Create 1 Грифон for Игрок 1 (красный) at (Center of Unit <gen>) facing 90.00 degrees) else do (Do nothing)
If (Unit равно 5) then do (Боевая единица - Create 1 Целитель for Игрок 1 (красный) at (Center of Unit <gen>) facing 90.00 degrees) else do (Do nothing)

А вопрос, который меня мучает, формулируется так: почему обязательно первые два раза это так называемый "случайный выбор" изберает именно число "4". Сколько не тестировал, всегда первым и вторым юнитом, что появляется будет грифон, только потом юниты уже начинают выбираться случайно.

Так же есть второй вопрос, который не относится к первому. Как сделать так, чтоб, не вводя новую переменную и не переписывая код шесть раз, одновременно появилось 6 юнитов, каждый из которых выбран случайным образом.

T Mon добавил:
А вот и сама карта.
Прикрепленные файлы
Тип файла: w3m 11111.w3m (43.1 Кбайт, 9 просмотров )
Старый 03.08.2006, 23:11
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
Сообщение от T Mon
к же есть второй вопрос, который не относится к первому. Как сделать так, чтоб, не вводя новую переменную и не переписывая код шесть раз, одновременно появилось 6 юнитов, каждый из которых выбран случайным образом.

НИКАК... нужна 1 переменая масив (боевая еденица)... и тога все можно будет сделать через цыкл.

Цитата:
Сообщение от T Mon
А вопрос, который меня мучает, формулируется так: почему ........

я не проверял... но попробуй так:
В верхнем меню WE "Файл" -> Пораметры -> закладка "Проверка карты" -> поставь шалочку на "фиксировать случайный разброс"
если не помогло:
создай отдельный тригер.. в котором поставь СОВЕРШЕНО любые события... например юнит в ходит в регион, юнит умирает у и т.д. (но только так чтобы они совершались часто) и поставь в действиях:
Set Unit = (Random integer number between 1 and 5)
Старый 03.08.2006, 23:19
T Mon

offline
Опыт: 3,825
Активность:
Спасибо, попробую.
Только, можешь, пожалуйста, объяснить поподробней способ с циклом, то бишь, что и где добавить.

T Mon добавил:
Кстати, там галочка "фиксировать случайный разброс" стояла изначально.

T Mon добавил:
Только что провел тест- изменил числа с (1-5) на (10-14). Эффект остался прежний.
Старый 03.08.2006, 23:28
J
expert
offline
Опыт: 48,447
Активность:
например тебе нужно создать 30-ть юнитов из 50-сяти различных типов... для первого игрока на регионе REGION
UNIT[] - переменая "тип обьекта" - массив
Код:
For each (Integer A) from 1 to 30, do (Actions)
    Цыкл - Действия
        Боевая еденица - Create 1 UNIT[(Random integer number between 1 and 50)] for Игрок 1 (красный) at (Center of REGION) facing Стандартная ориентация зданий
Старый 03.08.2006, 23:33
T Mon

offline
Опыт: 3,825
Активность:
Только я не догнал, как тут задается список типов войск, из которых будет производится выбор...
Старый 03.08.2006, 23:39
J
expert
offline
Опыт: 48,447
Активность:
:D никак.. я подумал ты догадаешся что все переменые обьявлять при инициализации карты........
т.е. например:
set UNIT[1] = тип№1
set UNIT[2] = тип№2
set UNIT[3] = тип№3
и т.д.
а иначе никак
но это экономит услилия для написания действий большего размера если создавать эти войска напрямую... т.к. без цыкла этот триг был бы ОЧЕНЬ большой
Старый 03.08.2006, 23:58
T Mon

offline
Опыт: 3,825
Активность:
Теперь все стало ясно, спасибо!

T Mon добавил:
Только все равно осталась лажа в работе рандома- в первой упряжке всегда появляются 2 грифона и по 1 рыцарю/пехотинцу/стрелку/целителю. Не понимаю этого... но потом вроде все ок.
Старый 04.08.2006, 01:46
Korneliy
DMF
offline
Опыт: 23,443
Активность:
2 Jon А локальные переменные? Крайне полезная и простая вещь и жизнь конкретно облегчает.
Старый 04.08.2006, 01:59
J
expert
offline
Опыт: 48,447
Активность:
Korneliy и зачем сдесь локалки? понимаю - можно и юзать кеш, но лакалки зачем? при создании рандомных войск...
Старый 04.08.2006, 02:29
Korneliy
DMF
offline
Опыт: 23,443
Активность:
Все, ступил, думал респавн, а евента незаметил... Сорри за оффтоп.
Старый 04.08.2006, 03:10
Ответ

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

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

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

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



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