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

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

Ответ
 
kolotor6679

offline
Опыт: 37
Активность:
Количество предметов типа...
Я сделал апающиеся предметы и если у героя 1 предмет данного типа, то всё идёт нормально. Но если их 2 или более, то апаются все предметы данного типа. я подумал: надо сделать условие: если у героя имеется Х предметов данного типа, то и требования для апа умножатся на Х. но в условиях(integer comparison) нету такого: количества предметов у юнита типа... . Я нашёл количество предметов вообще и тип предмета. А как их сделать вместе? and - all (conditions) are true не прокатывает. Так что делать? можно ли вообще в ГУИ это сделать?
Старый 10.04.2013, 19:40
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
создаешь целочисленную,циклом от 1 до 6 проходишься по слотам и проверяешь,если тип подходит - апаешь целочисленную на 1,после отработки цикла она будет показывать количество предметов этого типа
используешь как угодно
это все в действиях делается,если что
Старый 10.04.2013, 20:11
kolotor6679

offline
Опыт: 37
Активность:
Пишу:
For each (Integer A) from 1 to 6, do (Actions)
Цикл - Действия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
если - условия
(Item-type of (Item carried by (Killing unit) in slot (Integer A))) равно Кольцо защиты (+1)
To - действия
Set ITdef = (ITdef + 1)
Иначе - действия
предмет апается за убийство героем крипов
не работает. что не так?

Отредактировано kolotor6679, 10.04.2013 в 20:48.
Старый 10.04.2013, 20:35
ScorpioT1000
Работаем
offline
Опыт: отключен
вот есть функция, проверяет, есть ли у юнита столько предметов этого типа, сколько требуется
// cJass
bool MCI_UnitHasItemOfTypeN(unit u, int typeOf, int charges) { //if hasn't or below return false
    item it = null
    int i=0
    whilenot(i>5) {
        it = UnitItemInSlot(u,i)
        if((it != null) && (GetItemTypeId(it)==typeOf)) {
            if(charges <= 0) { return true }
            return (GetItemCharges(it) >= charges)
        }
        i++
    }
    it = null
    return false
}
хотя что-то она не проверяет для двух и более, наверное, лучше написать заного
Старый 10.04.2013, 21:22
kolotor6679

offline
Опыт: 37
Активность:
как это понять и поставить?я никакой джассер.
Старый 10.04.2013, 21:26
ScorpioT1000
Работаем
offline
Опыт: отключен
вот тут все верно, только перед циклом задай переменную в ноль, а то при втором подходе будет продолжать считать
Старый 10.04.2013, 21:27
Ответ

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

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

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

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



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