как узнать сколько предметов определённого типа носит юнит?
например : у юнита два Черепа Гул-Дана в двух слотах по одному,
как это узнать? (на GUI) (плиз скиньте карту)

Делать проверку циклом от 1 до 6 (по количеству слотов).
А = 1...6
Если предмет в слоте [А] = Череп Гул-Дана,
то установить переменную (целочисленную) Х = Х + количество зарядов предмета в слоте [А].
Ну а в итоге, к примеру, вывести на экран сообщение: Череп Гул-Дана = Х.
И переменную лучше обнулить потом, чтобы не было глюков.
Попробуй сделать самостоятельно по такому примеру. Когда сам учишься, потом проще будет)
`
ОЖИДАНИЕ РЕКЛАМЫ...
18
Принятый ответ
Делать проверку циклом от 1 до 6 (по количеству слотов).
А = 1...6
Если предмет в слоте [А] = Череп Гул-Дана,
то установить переменную (целочисленную) Х = Х + количество зарядов предмета в слоте [А].
Ну а в итоге, к примеру, вывести на экран сообщение: Череп Гул-Дана = Х.
И переменную лучше обнулить потом, чтобы не было глюков.
Попробуй сделать самостоятельно по такому примеру. Когда сам учишься, потом проще будет)
2
Друзья можете подробнее описать как это сделать?
Gui всю кровь выпил тем что у него нет проверки на кол-во предметов по типу.
26
Stray_Lucifer, выше описана логика действий для подсчёта предметов. Не важно на GUI ты это делаешь или на Jass'е.
Суть в том что тебе нужно поочерёдно проверить все 6 слотов инвентаря у юнита, что именно там лежит. При каждом совпадении добавлять в переменную +1 к текущему значению (очевидно, что в начале нужно эту переменную обнулить, т.е. set N = 0). После проверки инвентаря нужно сравнить получившееся значение N с нужным значением. Вот и всё.
Для удобства, можно написать себе функцию, в которую будет просто посылаться юнит и тип предмета, а возвращать она будет число. С этим числом (т.е. с результатом функции) и будет проводиться сравнение, но это уровень GUI+.
7
Stray_Lucifer
function GetUnitItemTypeCount takes unit u, integer itemTypeId returns integer
local integer i = 0
local integer count = 0
local item it
loop
exitwhen i >= 6
set it = UnitItemInSlot(u, i)
if it != null and GetItemTypeId(it) == itemTypeId then
set count = count + 1
endif
set i = i + 1
endloop
set it = null
return count
endfunction
Custom Script ----- set udg_твояпеременная = GetUnitItemTypeCount( твой юнит, 'типпредмета' )
22
TriggeringUnit и Книга Опыта меняешь на свои
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.