как проверить есть ли у юнита например 5 зелей жизни?

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

циклом (данного юнита от 1-6 слотов, на jass от нумерация слотов начинается так 0-5) пробегаешься по каждому слоту и проверяешь тип, кол-во зарядов. я на гуи что-то не нашел эту команду UnitItemInSlot
native UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
кол-во итемов
ищем в каждом слоте один и тот же тип предмета. Этот код считывает кол-во итемов занимаемые в слотах
local integer id = ''//id-предмета, забудь указать в кавычках ид
local integer i=0 //для цикла
local integer c=0 //кол-во предметов
local unit u = //нужно не забыть указать юнита
//внизу начинается цикл, его блок 
loop //начало цикла
    exitwhen i > 5 //условие выхода из цикла
    if GetItemTypeId(UnitItemInSlot(u,i)) == '' then //если тип в слоте равен ....
        set c = c + 1
    endif
    set i = i + 1
endloop //конец цикла
кол-во предметов данного типа с N зарядами
local integer id = '' //id-предмета, забудь указать в кавычках ид
local integer i=0 //для цикла
local integer c=0 //кол-во предметов
local unit u = //нужно не забыть указать юнита
loop
    exitwhen i > 5

    if GetItemTypeId(UnitItemInSlot(u,i)) == id or GetItemCharges(UnitItemInSlot(u,i)) == 5 then //если тип в слоте такой, и и у этого итема зарядов равно 5
        set c = c + 1
    endif
    set i = i + 1
endloop
set u = null
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
0
16
7 лет назад
Отредактирован avuremybe
0
проверяешь есть ли предмет "зелье жизни". если есть => проверяешь кол-во стаков
0
27
7 лет назад
Отредактирован MpW
0
циклом (данного юнита от 1-6 слотов, на jass от нумерация слотов начинается так 0-5) пробегаешься по каждому слоту и проверяешь тип, кол-во зарядов. я на гуи что-то не нашел эту команду UnitItemInSlot
native UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
кол-во итемов
ищем в каждом слоте один и тот же тип предмета. Этот код считывает кол-во итемов занимаемые в слотах
local integer id = ''//id-предмета, забудь указать в кавычках ид
local integer i=0 //для цикла
local integer c=0 //кол-во предметов
local unit u = //нужно не забыть указать юнита
//внизу начинается цикл, его блок 
loop //начало цикла
    exitwhen i > 5 //условие выхода из цикла
    if GetItemTypeId(UnitItemInSlot(u,i)) == '' then //если тип в слоте равен ....
        set c = c + 1
    endif
    set i = i + 1
endloop //конец цикла
кол-во предметов данного типа с N зарядами
local integer id = '' //id-предмета, забудь указать в кавычках ид
local integer i=0 //для цикла
local integer c=0 //кол-во предметов
local unit u = //нужно не забыть указать юнита
loop
    exitwhen i > 5

    if GetItemTypeId(UnitItemInSlot(u,i)) == id or GetItemCharges(UnitItemInSlot(u,i)) == 5 then //если тип в слоте такой, и и у этого итема зарядов равно 5
        set c = c + 1
    endif
    set i = i + 1
endloop
set u = null
Принятый ответ
1
15
7 лет назад
1
avuremybe:
проверяешь есть ли предмет "зелье жизни". если есть => проверяешь кол-во стаков
а если нужно проверить три типа предмета на их кол-во?
и я же просил в виде карты :( неужели вы такие ленивые...
5 пунктов от nvc123: 10.3 (ответ на вопрос есть в статьях) +10.2
4
6
7 лет назад
Отредактирован Pandemic
4
Лови наработку, на твоё счастье мне самому она будет не лишней.
И да, таки ленивый тут ты, ибо вместо чтения статей и других вопросов, дергаешь форумчан, чтоб они всю работу делали за тебя.
Steal nerves, на гуи это можно реализовать через pick item - drop item
Загруженные файлы
1
15
7 лет назад
1
Pandemic:
Лови наработку, на твоё счастье мне самому она будет не лишней.
И да, таки ленивый тут ты, ибо вместо чтения статей и других вопросов, дергаешь форумчан, чтоб они всю работу делали за тебя.
Steal nerves, на гуи это можно реализовать через pick item - drop item
это не ЛЕНЬ а обучение на практике!
теорию читать неинтересно
5
6
7 лет назад
5
Artyom18, ну с такой позицией скоро объем твоей минусовой кармы перестанет помещаться под аватаром.
0
27
7 лет назад
Отредактирован MpW
0
просто не хочу помогать наглым и ленивым привередам. То это тебе не нравится, то другое и прочее. Кучу карт с наработками накидаешь
раскрыть
там где с зарядами, подправь еще or в наработке, а то криво работает
if GetItemTypeId(UnitItemInSlot(u,i)) == id or GetItemCharges(UnitItemInSlot(u,i)) == 5 then
на and
if GetItemTypeId(UnitItemInSlot(u,i)) == id and GetItemCharges(UnitItemInSlot(u,i)) == 5 then
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.