Вопрос такой: можно ли в своих функциях использовать любые переменные по типу, а не те локалки, указывающиеся в начале функции(как в нативках)? Читал про создание своих нативок, но для меня это не очень понятно...
upd: native UnitDamageTarget takes unit whichUnit - здесь мы можем подставить любую переменную типа юнит, которая нам необходима в этом месте, в своих же изначально есть локальная или глобальная переменная, и при обращении к функции можно использовать именно ее и никакую другую. Как моэно добиться того, чтобы свою функция принимала любые переменные типа юнит как натвка?

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

void - это nothing то есть ничего не возвращает функция, а саму функции называют doTheThing, а unit u - аргументы функции, мануалы про cjass почитай (хотя я тоже соглашусь, что написано очень плохо в мануалах. Нужно попробовать немного самим пописать коды)
можно представить как (если хорошо понимаешь jass)
function doTheThing takes unit u returns nothing
... //что-то делаешь с юнитом u (берем аргумент функции - unit u)
endfunction
GetMyUnit - такой не существует, видимо Док имеет в виду подставить свою переменную
пример
например составил пример функции - определить уровень абилы юнита. Функция называется LV, u - юнит, id - целое число, равкод абилы. Возвращает целое число (уровень абилы).
function LV takes unit u, integer id returns integer
return GetUnitAbilityLevel(u, id)
endfunction 
'A000' - равкод абилы
local integer lv = LV(GetTriggerUnit(), 'A000') //узнаем уровень героя
и честно не понял вопрос темы?

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
29
7 лет назад
0
Можно плиз пример того как ты примерно хочешь это видеть в коде?
0
10
7 лет назад
0
Doc:
Можно плиз пример того как ты примерно хочешь это видеть в коде?
как сделаны нативки, вот простой пример: UnitDamageTarget(u1,u2,dmg,false,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,null)
берет два юнита, при том не важно в каких они переменных
0
29
7 лет назад
0
Что значит не важно?
0
10
7 лет назад
0
Doc:
Что значит не важно?
native UnitDamageTarget takes unit whichUnit, widget target, real amount, boolean attack, boolean ranged, attacktype attackType, damagetype damageType, weapontype weaponType returns boolean
берет юнит, при том не важно, он занесен в переменную u1 или u2 или какую-либо еще
0
29
7 лет назад
0
Все функции так работают, включая твои
0
10
7 лет назад
0
Doc:
Все функции так работают, включая твои
Загруженные файлы
0
20
7 лет назад
0
переменная по сути - адрес к ячейке памяти с той или иной информацией
можно использовать переменные, но если тебе нужно делать действия с юнитом - нужен сам юнит - нужна ссылка на него
вопрос не совсем мне понятен
нужно использовать глобалки?
0
10
7 лет назад
0
ssbbssc:
переменная по сути - адрес к ячейке памяти с той или иной информацией
можно использовать переменные, но если тебе нужно делать действия с юнитом - нужен сам юнит - нужна ссылка на него
вопрос не совсем мне понятен
нужно использовать глобалки?
смотри: native UnitDamageTarget takes unit whichUnit - здесь мы можем подставить любую переменную типа юнит, которая нам необходима в этом месте, в своих же изначально есть локальная или глобальная переменная, и при обращении к функции можно использовать именно ее и никакую другую. Как моэно добиться того, чтобы свою функция принимала любые переменные типа юнит как натвка?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.