XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Как «вернуть» значение ф-ии?
Приветствую.
Вот наткнулся на функции:

Код:
globals
    location LocationZ = Location(0,0)
endglobals

function GetUnitZ takes unit u returns real
    call MoveLocation (LocationZ, GetUnitX(u), GetUnitY(u))
    return GetUnitDefaultFlyHeight(u)+GetLocationZ(LocationZ)
endfunction


Код:
function AngleBetweenPoints takes location locA, location locB returns real
    return bj_RADTODEG * Atan2(GetLocationY(locB) - GetLocationY(locA), GetLocationX(locB) - GetLocationX(locA))
endfunction


Jass изучаю буквально пару дней. Вопрос. 1 .Как записать в переменную «returns real» (возвращенное значение). 2. Для запуска, я так понимаю нужно вписать значения параметров (для первой ф-ии) боевой единицы, (для второй), точки. В статьях ответа не нашел. На самостоятельное «шевеление» мозгами времени, к сожалению не хватает. Прошу обучить.
Старый 01.11.2008, 20:54
S

offline
Опыт: 43,833
Активность:
Цитата:
Как записать в переменную «returns real» (возвращенное значение)

это значит какой тип переменной будет возвращать функция.
Код:
return GetUnitDefaultFlyHeight(u)+GetLocationZ(LocationZ)

и есть этот "returns real", чтобы добавить к нему что-либо пропиши это через "+"
Код:
Ex.: return GetUnitDefaultFlyHeight(u)+GetLocationZ(LocationZ)+N
//N - нужное число\переменная типа "real"\функция возвращающая переменную типа "real" но если эта функция будет принимать опред. параметры их тоже надо задать

Цитата:
Для запуска, я так понимаю нужно вписать значения параметров (для первой ф-ии) боевой единицы, (для второй), точки. В статьях ответа не нашел

угу, но юзать это надо будет примерно так:
Код:
function N takes nothing returns nothing
local real i=GetUnitZ(u)
...
...
endfunction

//давно не кодил, за точность кода не уверен, но смысл понятен - если просто прописать 
//call GetUnitZ(u) в принципе ничего не будет емнип =)

то есть раз функция что-то возвращает желательно записать это в локалку\переменную (хотя это не обязательно в опред. случаях)
Старый 01.11.2008, 21:02
Toadcop

offline
Опыт: 53,013
Активность:
  1. set MyReal=GetUnitZ(MyUnit) MyReal, MyUnit - variables
  2. типо да. ну нужны переменые такого типа вот и всё =)
как объяснить я незнаю пытайся сам понять имхо... материалов по даной теме много и т.п. ...
Старый 01.11.2008, 21:16
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Благодарю.
Старый 02.11.2008, 06:44
adic3x

offline
Опыт: 107,539
Активность:
ну я добавлю что оно понимается на каком то "интуитивном уровне", вобщем надо брать и пробывать)
Старый 02.11.2008, 11:44
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Еще раз благодарю за поддержку. Для меня настали неплохие времена. Поясню. На работе отпуск дали, в армию без «высшего» не берут. Стало быть времени для «шевеления» мозгами у меня прибавилось. Возможно, на днях покажу миру свой проект. Уже на треть готов, думаю пора. Да и помощь мне не помешает. А пока что позвольте задать еще вопрос.
  1. Стоит ли в кампании прописывать строку call DoNotSaveReplay()?
  2. Что я сделал не так с камерой? Это грубый набросок кода. Пытался всячески изменять, но либо камера не «держала» мосты, либо возвышенности/уклоны. Может использовать GetUnitLoc(u)? Снова прошу помочь. Мне главное основу уловить, а там я сам разберусь.
Заранее благодарен.
Прикрепленные файлы
Тип файла: w3m camera1.w3m (18.0 Кбайт, 8 просмотров )
Старый 02.11.2008, 19:19
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
  1. Нет не стоит, если кто то хочет потом посмотреть твои действия? Это оправдано в синематиках.
Старый 03.11.2008, 10:15
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Я хотел уточнить суть команды (call DoNotSaveReplay()). По идеи она «говорит» игре не записывать ролик, результат – экономия ресурсов. Но в кампаниях ролики вообще не сохраняются (Во всяком случае у меня). В таком случае игра подгружает эту строку автоматически, следовательно, прописывать её необязательно? Хотя я могу и ошибаться.
Старый 03.11.2008, 21:23
J
expert
offline
Опыт: 48,747
Активность:
Линкольн 6 Эхо эта функция всеволиш запрещяет сохранить реплей, т.е. делает кнопку сохранения неактивной
Старый 03.11.2008, 21:52
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Все понятно. Спасибо. Тема больше не нужна.
Старый 04.11.2008, 07:41
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 03:35.