Вопрос такой: можно ли в своих функциях использовать любые переменные по типу, а не те локалки, указывающиеся в начале функции(как в нативках)? Читал про создание своих нативок, но для меня это не очень понятно...
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:
Значит естественно плохо читал. Где ты увидел здесь копию?
значит я тебя не понял, непонял этот код =_=
0
27
7 лет назад
Отредактирован MpW
0
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
20
7 лет назад
0
ImbaStyle:
а где у тебя объявлена переменная u1?
если это локалка в другой функции, то конечно она не видна
0
10
7 лет назад
0
Steal nerves:
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') //узнаем уровень героя
и честно не понял вопрос темы?
Эта функция берет переменную u, а что если я вызываю функцию, где этот юнит записан не в u, а напримерв в caster, тут конечно все просто, можно перед вызовом функции записать переменную caster в u,, вобщем на этом закрываю свой вопрос,, сам затупил конкретно:)
0
29
7 лет назад
0
ну какбы в вопросе код на сжасс я и ответил на сжасс
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.