Пытаюсь писать такую функцию, но она, кажется, не работает (моя криворукость):
int GetItemCount(unit whichunit,itemtype whichitem) {
local int loopindex = 0
local int count = 0
do  {
loopindex++
if (UnitItemInSlot(whichunit,loopindex)==whichitem) {count++}
} whilenot (loopindex==6)
return count
}

Принятый ответ

Audes, в джасс есть только цикл loop
и вообще я хз как у тебя вар запустился
наверное адик автоматом убирает твою проверку
ты сравниваешь равен ли у тебя итем типу итема
ещё бы сравнил равно ли число юниту
0
28
10 лет назад
0
юзай луп или фо
0
15
10 лет назад
Отредактирован Audes
0
nvc123, пробовал разные циклы, но всегда возвращалось 6, при том, что у героя небыло этого предмета. Как же тогда
(UnitItemInSlot(whichunit,loopindex)==whichitem)
Возвращало true?
P.S. разве в Jass есть цикл for?
0
28
10 лет назад
0
Audes, в джасс есть только цикл loop
и вообще я хз как у тебя вар запустился
наверное адик автоматом убирает твою проверку
ты сравниваешь равен ли у тебя итем типу итема
ещё бы сравнил равно ли число юниту
Принятый ответ
0
15
10 лет назад
Отредактирован Audes
0
nvc123, а если аргументом будет предмет?
( whichitem == UnitItemInSlotBJ(whichunit, loopindex) )
Тоже не работает.

Рабочий вариант.

Вот оно:
int GetItemCount(unit whichunit,itemtype whichitem) {
local int loopindex = 0
local int count = 0
do  {
loopindex++
if ( whichitem == GetItemType(UnitItemInSlotBJ(whichunit, loopindex)) ) {count++}
} whilenot (loopindex==6)
return count
}
Чтобы оставить комментарий, пожалуйста, войдите на сайт.