Добавлен
Мне нужна альтернатива использования групп, для проверки противника в радиусе, хотя бы функция, я дальше разберусь

А зачем, мб альтернатива гуи? Ну она есть, jass.
Если использовать группы нормально, а не как нам предлагает гуи, не будет ни утечек, ни проблем.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
23
Похожие вопросы:

ответ
Какой ужас
Делай вот так.
бронепоезд
создать.
направить на 128 точек наверх(90)
сделать неперманентным
текст удалится через 3 секунды
текст затухнет до 100% прозрачности через 3 секунды
Вот чёрт. не успел приплюснуть к посту.
ответ
еще раз - лучше скачать handle counter и посмотреть его показания, сколько объектов создается при касте
стремление сделать все безутечно похвально, но все хорошо в меру
ответ
Steal nerves:
Да. При чем две.( Position of Dying unit ).
скрин скинул выше, но там ошибка. И если раскрыть, то обнаруживается еще одна утечка: на гуи Point(0,0), а на jass эта команда называется по-другому Location(0,0), эта функция создает точку
раскрыть
попробуй раскрутить, и использовать эту
native CreateItem takes integer itemid, real x, real y returns item
через CS: call CreateItem( id, GetUnitX(u), GetUnitY(u))
где id - ид-номер типа предмета, u - юнит. Ввести тип предмета, и юнита нужно.
можно еще запомнить как-то, чтобы к предмету как-то обращаться
через CS: set it = CreateItem( id, GetUnitX(u), GetUnitY(u))
где it - переменная предмета. Объявить переменную и обращаться
ответ
Нет, 100 раз писали Player не вызывает утечек, их не нужно обнулять.
Бот выдал ссылку на статьи, прошу прочитать...

32
А зачем, мб альтернатива гуи? Ну она есть, jass.
Если использовать группы нормально, а не как нам предлагает гуи, не будет ни утечек, ни проблем.
Принятый ответ
7
quq_CCCP:
А зачем, мб альтернатива гуи? Ну она есть, jass.
Если использовать группы нормально, а не как нам предлагает гуи, не будет ни утечек, ни проблем.
Ты предлагаешь мне переписать это на jass? Я почти нечего не понимаю на jass(вру). Хорошо, как предлагает jass использовать группы? Gui использует полярные координаты, что при точках, что при диапазонах, и использует он их очень коряво! Как написать группу на jass правильно?
20
При использовании JNGP: Конвертируешь в код -> избавляешься от функций, подсвеченных красным, заменяя их на нативные эквиваленты -> по возможности избегаешь создания объектов вроде точек, даммиков -> чистишь локалки, которые не очищаются сами по себе
7
Diaboliko:
При использовании JNGP: Конвертируешь в код -> избавляешься от функций, подсвеченных красным, заменяя их на нативные эквиваленты -> по возможности избегаешь создания объектов вроде точек, даммиков -> чистишь локалки, которые не очищаются сами по себе
Хммм,
Как я найду нативную?
Загруженные файлы
32
Ну, в гуях каждый раз создается группа при действии с поиском юнитов в радиусе или ректе, что самое по себе убого.
Создадим одну группу и запишем её в глобальную переменную, на гуях просто создай глобалку TempGroup (название неважно, в гуях в перменную сразу же записывается группа), потом нам потребуется фильтр, ибо нужно отсеять всех ненужных юнитов для этого нужно создать новую функцию, которая не берет аргументов и возвращает boolean,
function EnemyFilter takes nothing returns boolean
    set bj_lastFilterUnit = GetFilterUnit( )
    return GetUnitState( bj_lastFilterUnit, UNIT_STATE_LIFE ) > 0.405 and IsUnitEnemy( bj_lastFilterUnit, bj_groupEnumOwningPlayer ) and not( IsUnitType( bj_lastFilterUnit, UNIT_TYPE_MAGIC_IMMUNE ) or IsUnitType( bj_lastFilterUnit, UNIT_TYPE_MECHANICAL ) or IsUnitInvulnerable( bj_lastFilterUnit ) or IsUnitType( bj_lastFilterUnit, UNIT_TYPE_TAUREN ) )
endfunction

Вот пример фильра, функция GetFilterUnit() -возвращает юнита которого сейчас проверяет фильтр, ну а все остальное функции проверки, обрати внимаение на то что аргументы в фильтр мы передает глобальными переменными, в данном случаи игрок bj_groupEnumOwningPlayer
Весь код можно посмотреть тут
WoLLFeR, кстати вот держи
function IsUnitDead takes unit u returns boolean
    return IsUnitType( u, UNIT_TYPE_DEAD ) or GetUnitTypeId( u ) < 1
endfunction
Это заменитель IsUnitAliveBJ, только она вернет true если юнит мертв (несуществует), так же проверять наличие жизны можно проверяя хп юнита:
((код jass
GetUnitState( юнит, UNIT_STATE_LIFE ) > 0.405
))
Если здоровье больше 0.405 то юнит жив, иначе мертв.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.