Сейчас 06:44:08 Пятница, 29 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] Функция на проверку предметов
FatalBladeДата: Суббота, 14 Января 2012, 16:53:12 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Если у меня есть вот такой код:
Code
    local real x
      local real y
      local rect c
      local integer i = 1

      loop
        exitwhen i > 10
          set x = GetWidgetX(udg_HeroesPlaying[i])
          set y = GetWidgetY(udg_HeroesPlaying[i])
          set c = Rect( x - 12.5, y - 12.5, x + 12.5, y + 12.5 )
          call EnumItemsInRect( c, null, function FilterItems(i) )
          call RemoveRect(c)
          set i = i + 1
        endloop
      set c = null


И вот функция FilterItems которая должна принимать integer
Code

function FilterItems takes integer i returns nothing
      local integer it = GetItemTypeId(GetFilterItem())
      if it == 'I04M' or it == 'I04N' or it == 'I04O' or it == 'I04Q' or it == 'I04R' or it == 'I04S' then
          call UnitAddItem( udg_HeroesPlaying[i], GetFilterItem() )
      endif
endfunction


Можно так писать? И почему она выдаёт ошибку там где я пишу call EnumItemsInRect( c, null, function FilterItems(i) ) ? Как правильно сделать так что бы функция принимала интежер и ничего не возвращала?




Сообщение отредактировал FatalBlade - Суббота, 14 Января 2012, 16:54:54
 

Ty3uKДата: Суббота, 14 Января 2012, 17:01:13 | Сообщение # 2
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Code
call EnumItemsInRect( c, null,
Filter(function FilterItems(i)))

Добавлено (14 Январь 2012, 17:01:13)
---------------------------------------------
И фильтр должен возвращать бульку


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

FatalBladeДата: Суббота, 14 Января 2012, 17:03:50 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Так мне не фильтр нужен. Мне нужно что бы все прдеметы которые находятся в радиусе 25 от героя, при условии что это нужные предметы, шли к герою в инвентарь. Тут обычная группа

 

lawsonДата: Суббота, 14 Января 2012, 17:29:54 | Сообщение # 4
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
FatalBlade, Я где-то в разделе Картостроителя писал статейку на сборку предметов вокруг юнита.

Добавлено (14 Январь 2012, 17:29:54)
---------------------------------------------

Quote (FatalBlade)
unction FilterItems takes integer i returns boolean

Quote (Ty3uK)
И фильтр должен возвращать бульку

Ошибочка:


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

SirNikolasДата: Суббота, 14 Января 2012, 19:13:35 | Сообщение # 5
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (FatalBlade)
function FilterItems takes integer i returns nothing
takes nothing returns nothing

Делай глобальную целочисленную и меняй ее в цикле первой функции. Во второй используй ее вместо аргумента.
Quote (FatalBlade)
GetFilterItem()
GetEnumItem()


 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz