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

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

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

offline
Опыт: 373
Активность:
Mr_KLOP, Я наверно утомил тебя=))) Извини если надоедаю просто токачто проверил
эту систему да он не берет но зато вокруг меня кучу предметов клонов понаделывалось=)))) это еще хуже можно клонировать предметов скоко угодно и продавать+)))))))) Может все-таки сделать так как я добавил выше?
Старый 20.11.2010, 15:31
Klop
Папа римский
offline
Опыт: 13,006
Активность:
Slider, теперь точно работает)))
function ItemsType_Actions takes nothing returns nothing
    local item it = GetManipulatedItem()
    local unit u = GetTriggerUnit()
    local real r = GetWidgetLife(it)
    local integer i = 0
    local item it2
    local real life = 0
    local integer id
    loop
    exitwhen i == 6
    set it2 = UnitItemInSlot(u,i)
    if it2 != null and it2 != it then
    set life = GetWidgetLife(it2)
    else
    set life = 0
    endif
    if life == r then
    set id = GetItemTypeId(it)
    call UnitRemoveItem(u,it)
    endif
    set i = i + 1
    endloop
    set it2 = null
    set u = null
    set it = null
endfunction

//===========================================================================
function InitTrig_ItemsType takes nothing returns nothing
    local integer i = 0
    local trigger t = CreateTrigger()
    loop
    exitwhen i == 16
    call TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_PICKUP_ITEM,null)
    set i = i + 1
    endloop
    call TriggerAddAction(t, function ItemsType_Actions)
    set t = null
endfunction
Старый 20.11.2010, 16:15
Slider

offline
Опыт: 373
Активность:
Mr_KLOP, ВАУ+))) работает спасибо=)) А как сделал? По какому принципу?
Вот берите пример человек если зашел в тему о помощи то реально довел дело до-конца не забил. А некоторые умники только что и могут так это срать в чужом монастыре, но не помочь.
Mr_KLOP Уважуха тебе=))

Отредактировано Slider, 20.11.2010 в 16:52.
Старый 20.11.2010, 16:40
Klop
Папа римский
offline
Опыт: 13,006
Активность:
Slider, вписываем в переменную жизни предмета затем циклом проверяем предмет в каждом слоте на то что он есть и не является предметом тем который подобрали и сравниваем здоровье с подобраным если не совпадает тогда оставляем его если совпадает то удаляется из инвентаря ну падает рядом вообщем не приказом выбросить
Старый 20.11.2010, 17:15
Slider

offline
Опыт: 373
Активность:
Mr_KLOP, Добавь плиз сюда одно условия чтобы система все делала как делает кроме предметов у которых уровень предмета к примеру 10. На них эта система не касалась.
У меня просто твоя система все вещи проверяет на жизни абсолютно все, но мне нужно чтобы некоторые предметы можно было и по два носить и для них хочу создать иссключения дать тем предметам уровень предмета 10 и в условиях твоей системы поставить чтобы на всех действовало кроме них добавь эту строчку думаю это не так долго и муторно просто я джасс не шарю так бы добавил на гуи
Старый 20.11.2010, 18:47
Slider

offline
Опыт: 373
Активность:
Мне нужно правельно в его систему инскрустировать условие что на предметы уровня 10 она действовать не будет их можно будет брать скоко угодно вне зависимости скоко у них Хп, ато получается все предметы с одинаковыми жизнями нельзя взять более одной просто добавь условие туда кроме тех у кого 10 уровень и все вроде не долго если б я знал как
Тогда я просто те предметы которые захочу чтоб их можно было брать скоко угодно то поставлю им уровень предмета 10 да и все
Старый 20.11.2010, 19:05
FKoFF
Venomancer 89lvl. Europe
offline
Опыт: 5,975
Активность:
function ItemsType_Actions takes nothing returns nothing
    local item it = GetManipulatedItem()
    local unit u = GetTriggerUnit()
    local real r = GetWidgetLife(it)
    local integer i = 0
    local item it2
    local real life = 0
    local integer id
       
    if (GetItemLevel(it) < 10 ) then
loop
    exitwhen i == 6
    set it2 = UnitItemInSlot(u,i)
    if it2 != null and it2 != it then
    set life = GetWidgetLife(it2)
    else
    set life = 0
    endif
    if life == r then
    set id = GetItemTypeId(it)
    call UnitRemoveItem(u,it)
    endif
    set i = i + 1
    endloop
else
endif

    set it2 = null
    set u = null
    set it = null
endfunction

//===========================================================================
function InitTrig_ItemsType takes nothing returns nothing
    local integer i = 0
    local trigger t = CreateTrigger()
    loop
    exitwhen i == 16
    call TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_PICKUP_ITEM,null)
    set i = i + 1
    endloop
    call TriggerAddAction(t, function ItemsType_Actions)
    set t = null
endfunction
Добавил условие на уровень предмета меньше 10-го.
если хочешь, замени знак < на != в строке
  if (GetItemLevel(it) < 10 ) then
тогда только предметы десятого уровня не будут проверятся.
Старый 20.11.2010, 21:06
Slider

offline
Опыт: 373
Активность:
FKoFF, Спасибо оказалось что всего 8 уровней можно ставить на предметы ну впринципе мне хватает сделал < 8 и теперь назначил нужным предметам 8, вот еще мини просьба в карте есть ящик для итемов так вот надо сделать чтобы эта система проверяла только у героев предметы на жизнь а у остальных боевых единиц не проверяла добавь эту функцию плиз=)) и вроде все наконецто система готова будет=)))
Просто добавить условие что проверка только у героев
Блин=((( ТОлько заметил прошу прощения наверно замучал уже пол форума=))
В общем надо условие не на уровень предмета а если у предмета 25 жизней то ее не проверяет а не уровень 8 потомучто у меня другой триггер не будет сопоставляться.
Можно то условие с уровнем предмета заменить на определнную жизнь предмета? я тогда установлю рецептам жизнь 25 и рецепты можно будет брать сколько угодно а не только 1.
Разобрался просто заменил на if (GetWidgetLife(it) < 25 ) then и теперь те вещи у которых 25 прочность не проверяются осталось добавить чтобы только героев проверяло

Отредактировано Slider, 20.11.2010 в 22:03.
Старый 20.11.2010, 21:51
Klop
Папа римский
offline
Опыт: 13,006
Активность:
if GetWidgetLife(it) < 25  and  IsUnitType(u,UNIT_TYPE_HERO) == true then
Mr_KLOP добавил:
GetWidgetLife(it) < 25
Этим ты ограничил кол-во типов предметов на 24 типа
Старый 20.11.2010, 22:16
Slider

offline
Опыт: 373
Активность:
Mr_KLOP, Ну так у меня даже нету столько=))) у меня даже 10 еле наберется ито если=))) Все работает щас на ура единственное осталось добавить чтобы на героев только проверяло добавь эту строчку плиз=)
Старый 20.11.2010, 22:17
Klop
Папа римский
offline
Опыт: 13,006
Активность:
if GetWidgetLife(it) < 25  and  IsUnitType(u,UNIT_TYPE_HERO) == true then
Я ж вроде написал)
Старый 20.11.2010, 22:19
Slider

offline
Опыт: 373
Активность:
Спасибо огромное ты мне очень помог ну вроде все готово =))Эх стока париловки =)) Даж не знаю чем тебя благодарить =) в принципе, я по музыкальной части и по сайтам могу помочь=)В личку можно обсудить ты реально видно старался=))
Старый 20.11.2010, 22:32
Закрытая тема

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

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

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

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



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