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

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

Ответ
 
MpW

offline
Опыт: 50,016
Активность:
Blizzru, так лучше не делать.

конечно можно
Код:
native UnitAddItemById takes unit whichUnit, integer itemId returns item


так как нативка (функция) возвращает предмет returns item, если ничего не возвращала ты бы не смог присвоением сделать так
Код:
local item rune = UnitAddItemById(tu, 'I04F')


советую отдельный триггер создать


Код:
function Trig_Item_Conditions takes nothing returns boolean
    return( GetItemTypeId(GetManipulatedItem()) == 'I04F')
endfunction

function Trig_Item_Actions takes nothing returns nothing
    call RemoveItem( GetManipulatedItem() )
endfunction

//===========================================================================
function InitTrig_Item takes nothing returns nothing
    set gg_trg_Item = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(gg_trg_Item, Player(0), EVENT_PLAYER_UNIT_PICKUP_ITEM, null)
    call TriggerAddCondition( gg_trg_Item, Condition( function Trig_Item_Conditions ) )
    call TriggerAddAction( gg_trg_Item, function Trig_Item_Actions )
endfunction


Можно несколько типов засунуть в условие, если несколько типов то делаем в условие так:
Код:
function Trig_Item_Conditions takes nothing returns boolean
    local integer id=GetItemTypeId(GetManipulatedItem())
    return(  id== 'texp' )or( id == 'I04F' )
endfunction


короче говоря можно нескольо условии вставлять or (или) или and (и)

можно все руны сделать единой классификацией == усиливающие

Код:
function Trig_Item_Conditions takes nothing returns boolean
    return( GetItemType(GetManipulatedItem()) == ITEM_TYPE_POWERUP )
endfunction


Steal nerves добавил:
хочу сказать что условие триггера очень хорошая вещь. Допустим ты периодом в действия кучу локалок и объектов создаешь, что очень не удобно. А вот условие является нечто важным, он проверяет запускать ли его или нет. Если не истина, то и не будет объявлять и создавать ничего в действии. Это так к слову.

Steal nerves добавил:
еще в условиях любят писать так (или когда конвентируем из гуи в джаз), там иногда пишут
условие == true (истина) или условие == false (ложь)

Код:
function Trig_XX_Conditions takes nothing returns boolean
    return( IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE) == true ) 
endfunction


вот это сравнение (с добавлением ==true или ==false надо убирать)

Код:
function Trig_XX_Conditions takes nothing returns boolean
    return( IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE)) //вернет истину 
endfunction


Код:
function Trig_XX_Conditions takes nothing returns boolean
    return not( IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE)) //вернет ложь 
endfunction


это возвращает boolean а в других случаях для возрата boolean используют сравнение (больше или равно, меньше и так далее) (чисел, объектов, переменных)

Отредактировано Steal nerves, 06.08.2013 в 20:18.
Старый 06.08.2013, 20:52
Ответ

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

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

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

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



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