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

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

Закрытая тема
 
Annubis12

offline
Опыт: 137
Активность:
Раздача способностей
Итак, поясняю ситуацию, потом сам вопрос:
На карте находятся 10 юнитов, принадлежащих 10-ти игрокам.
По истечению времени нужно, чтобы [b]случайным[b] образом 9-ти из 10-ти юнитов досталась одна способность, а 10-му другая.
Как это сделать? (jass только начал изучать)
Старый 23.04.2012, 11:40
Hanabishi
COOL STATUS
offline
Опыт: отключен
local integer n = GetRandomInt(0,9)
local integer i = 0
loop
exitwhen i>9
    if i!=n then
        call UnitAddAbility(u[i],'A000') //всем
    else
        call UnitAddAbility(u[i],'A001') //одному
    endif
    set i = i+1
endloop
Старый 23.04.2012, 11:45
prog

offline
Опыт: 32,865
Активность:
создаешь группу
помещаешь туда юнитов
вынимаешь случайного юнита из группы - он будет десятым
остальным девяти выдаешь способность простым перебором группы
Старый 23.04.2012, 11:46
Klop
Папа римский
offline
Опыт: 13,006
Активность:
Annubis12:
По истечению времени нужно, чтобы [b]случайным[b] образом 9-ти из 10-ти юнитов досталась одна способность, а 10-му другая.
не легче сделать рандом для способности одной,а остальным оставшимся дать нужную способность
юниты находятся в переменной или нет? или их группой отловливать то как по игроку или по типу,какому типу?,в радиусе в каком?
Старый 23.04.2012, 11:46
Annubis12

offline
Опыт: 137
Активность:
Hanabishi,
pjass.exe
6 compile errors
Старый 23.04.2012, 11:52
Hanabishi
COOL STATUS
offline
Опыт: отключен
Annubis12, а ты куда это вставлял? Это я только для примера привёл, доработать ты сам должен.
Старый 23.04.2012, 11:56
Annubis12

offline
Опыт: 137
Активность:
Hanabishi, я вообще пока в jass почти ничего не понимаю :( а подробного объяснения нигде нет :(
Старый 23.04.2012, 12:06
Hanabishi
COOL STATUS
offline
Опыт: отключен
globals
    unit array u // нужно заполнить массив юнитами игроков 0-9
    integer ab1 = 'A000' // способность для одного
    integer ab2 = 'A001' // для всех остальных
endglobals

function DGet takes nothing returns nothing
    local integer n = GetRandomInt(0,9)
    local integer i = 0
    loop
    exitwhen i>9
        if i!=n then
            call UnitAddAbility(u[i],ab2)
        else
            call UnitAddAbility(u[i],ab1)
        endif
        set i = i+1
    endloop
endfunction
Заполняешь u нужными юнитами и вызываешь функцию DGet.
Старый 23.04.2012, 12:15
ScorpioT1000
Работаем
offline
Опыт: отключен
globals
unit array u
он ведь так и назовёт ...
Старый 23.04.2012, 18:04
Hanabishi
COOL STATUS
offline
Опыт: отключен
он ведь так и назовёт ...
Что не так?
Старый 23.04.2012, 18:09
prog

offline
Опыт: 32,865
Активность:
Hanabishi, перебор с постоянной проверкой условия это излишество. Можно же выбрать одного юнита (из массива или из группы не важно), а остальных перебрать без проверок.
Старый 23.04.2012, 18:15
ScorpioT1000
Работаем
offline
Опыт: отключен
то, что в 1.24+ назвать глобалку "u" нельзя из-за того, что затенение глобалок локалками запрещено. И, как нам известно, в bj юзаются вещи типа local unit u, кароче это только теоретический пример. Очень плохой пример, никогда нельзя называть глобалки одной буквой.
Старый 23.04.2012, 18:22
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Annubis12:
а подробного объяснения нигде нет
Хотел поорать матом, но лень.
Старый 23.04.2012, 18:25
Hanabishi
COOL STATUS
offline
Опыт: отключен
ScorpioT1000, это надо подстраивать под себя, я дал пример. Когда человек создаёт тему в разделе Jass, подразумевается, что он хоть как-то да знает его. В состоянии сменить имя переменной.
Старый 23.04.2012, 18:36
Закрытая тема

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

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

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

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



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