|
|
|
|
[JASS] Урок 1. Знакомство с JASS
|
|
Duosora | Дата: Воскресенье, 24 Марта 2013, 22:24:46 | Сообщение # 1 |
The cats never sleep...
Группа: Ветераны
Сообщений: 6734
Награды: 10
Репутация: 2161
Блокировки:
| Когда кто-то говорит: «Я хочу язык программирования, который может делать все, что ему скажу», то я даю этому человеку леденец. — Алан Джей Перлис Приветствую всех на первом уроке, посвящённом языку JASS! По хорошей традиции, для начала представлюсь тем, кого я буду обучать. Меня зовут Руслан и в этой школе я буду обучать всех записавшихся имеющему простую структуру, но множество подводных камней языку скриптописания, который сокращённо называется JASS (Just Another Scripting Syntax - ещё один язык скриптописания). Написан этот язык компанией Blizzard, которая разработала его для использования в своих играх (серии StarCraft и WarCraft). В этом и последующих уроках я буду разбирать исключительно тот JASS, который сделан для WarCraft III.
Рад видеть, что здесь собралось довольно много людей, которые желают познать этот язык. Значит, WarCraft будет жить ещё долго, пока в нём работают модмейкеры. Итак, начнём потихонечку?
Вы хотите изучать JASS. Некоторые, наверное, впервые открывают World Editor (для тех, кто об этом впервые слышит - так называется редактор карт для WarCraft 3. Далее я буду называть его просто WE или Редактор) с такой стороны. Для начала стоит сразу осветить несколько моментов. Конечно, новичкам это будет не совсем понятно, поэтому я буду пояснять все незнакомые понятия. Во-первых, JASS - язык событийно-ориентированный. То есть любое действие выполняется после того, как совершается какое-либо событие. Об этом у нас ещё будет время поговорить, пока что ограничимся таким определением. Во-вторых (сказано специально для тех, кто обожает GUI и считает его верхом творения), JASS - такой язык, который, конечно, ФАКТИЧЕСКИ ничего общего по созданию действий с GUI не имеет (в этом интерфейсе, нажав Ctrl-R, вы не получите списочка с действиями: всё надо будет писать, используя только руки и клавиатуру). Да и GUI в сущности - графическая надстройка для языка JASS. Всё то, что вы делали в GUI, при сохранении карты переводится именно в JASS. Поэтому при изучении JASS вы будете иметь дело не с производной, а с исходной частью триггеров.
На первом уроке стоит разобрать и такую важную часть, как где пишется код JASS. Думаю, многие из вас мне на этот вопрос однозначно не ответят. Однозначно не отвечу и я сам. Понимаете, какое тут дело... Есть несколько редакторов кода JASS, поэтому тут на вкус и цвет, как говорится. Я вам перечислю такие редакторы, какие у нас есть на нашем уютном сайтике, а вы выберете из них тот, который придётся вам по душе. Прежде, чем перечислять, что у нас есть, стоит заметить, что приведённый мной JASS New Gen Pack является IDE. Эта аббревиатура в том смысле, в котором я имею её в виду, обозначает Integrated Development Environment, то есть интегрированную среду разработки. В буквальном смысле, IDE - это то, где мы пишем код и с ним работаем. Так будет проще и понятнее. Итак, выбирайте себе по душе!- Jass New Gen Pack 5d - расширение оригинального WE с подсветкой синтаксиса и кучей удобных вещей для любого мапмейкера. Спасибо за билд говорите нашему комодератору под ником Ty3uK, который и вдохновил меня на изучение cJASS.
- JASSCraft - отличный редактор кода на языке JASS, с которым я сам работаю. Отличительной чертой является очень приятный для глаза дизайн и возможность редакции кода mdl-моделей.
- JASS++ - ещё один редактор кода всех диалектов с подсветкой синтаксиса и грамотным парсером. Автор - Ty3uK.
- Jass Highlighter - правила подсветки языка JASS для популярного редактора Notepad++, сами правила подсветки сделали пользователи нашего сайта - Ty3uK и SirNikolas, за что им огромное спасибо.
Где писать код, разобрались. Как писать код (согласно всем правилам), мы будем разбирать в течение всего нашего курса. Хотя, одну немаловажную мелочь можно упомянуть уже сейчас. Когда вы создаёте триггер, вы не видите никакого способа написания кода: только три слова "События", "Условия" и "Действия". Оставим их назначение и перейдём к нашему делу. Чтобы увидеть код любого триггера, нужно в Редакторе триггеров (он вызывается через клавишу F4) проследовать в меню Правка -> Конвертировать в текст и всё. Код предстанет перед вами во всём своём "великолепии". Конечно же, по умолчанию этот код очень груб и громоздок, но вы ещё научитесь делать из него нормальный.
Одна из важных частей любого языка программирования - парсер. Для несведущих в этом деле поясню: парсер - синтаксический анализатор кода, проверяющий его правильность и изменяющий его структуру. Другие важные части - компилятор и линковщик. Именно эти части и собирают код воедино в целостный файлик. Не стоит путать эти два понятия.
Для первого урока вполне достаточно. Вопросы и задания я дам на следующем уроке, а пока задавайте вопросы по материалу, мы с радостью на них ответим! Duosora, Ty3uK.
Не зли других и сам не злись. Мы - гости в этом мире. И если что не так - смирись, Будь поумнее - улыбнись, Ведь в мире всё закономерно. Зло, излучённое тобой, К тебе вернётся непременно.
Сообщение отредактировал Duosora - Понедельник, 25 Марта 2013, 17:52:44 |
|
|
|
Bru | Дата: Воскресенье, 24 Марта 2013, 23:20:57 | Сообщение # 2 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
| Официально записываю себя
Цитата (Duosora) Меня зовут Руслан и Покатился со смеху на этом моменте. Сам знаешь почему.) Цитата (Duosora) Jass New Gen Pack 5d - расширение оригинального WE с подсветкой синтаксиса и кучей удобных вещей для любого мапмейкера. Спасибо за билд говорите нашему комодератору под ником Ty3uK, который и вдохновил меня на изучение cJASS. JASSCraft - отличный редактор кода на языке JASS, с которым я сам работаю. Отличительной чертой является очень приятный для глаза дизайн и возможность редакции кода mdl-моделей. JASS++ - ещё один редактор кода всех диалектов с подсветкой синтаксиса и грамотным парсером. Автор - Ty3uK. Jass Highlighter - правила подсветки языка JASS для популярного редактора Notepad++, сами правила подсветки сделали пользователи нашего сайта - Ty3uK и SirNikolas, за что им огромное спасибо. Поскачивал. Правда не знаю, зачем мне нужны будут первые ~20 уроков. И сам вроде неплохо разбираюсь... Больше хочу познать сJass/vJass
|
|
|
|
Ty3uK | Дата: Понедельник, 25 Марта 2013, 09:20:57 | Сообщение # 3 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Bru, vJASS cJASS
|
|
|
|
Imba_pvL | Дата: Понедельник, 25 Марта 2013, 09:32:21 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 3151
Награды: 1
Репутация: 1260
Блокировки:
| Цитата (Duosora) Меня зовут Руслан меня Рустам Вопрос, ну вот я выбралЦитата (Duosora) JASSCraft а другие ДЖНПЖ, и что у них будут разные задания??? для каждого индивидуально по уровню, или же всем на общак?
|
|
|
|
Duosora | Дата: Понедельник, 25 Марта 2013, 11:07:59 | Сообщение # 5 |
The cats never sleep...
Группа: Ветераны
Сообщений: 6734
Награды: 10
Репутация: 2161
Блокировки:
| Цитата (Imba_pvL) для каждого индивидуально по уровню, или же всем на общак? Всем одно и то же, просто вы выбираете, где будете писать код Добавлено (25 Марта 2013, 11:07:59) ---------------------------------------------
Цитата (Bru) И сам вроде неплохо разбираюсь... Повторение - мать учения.
Не зли других и сам не злись. Мы - гости в этом мире. И если что не так - смирись, Будь поумнее - улыбнись, Ведь в мире всё закономерно. Зло, излучённое тобой, К тебе вернётся непременно.
|
|
|
|
Fredbob | Дата: Понедельник, 25 Марта 2013, 13:15:10 | Сообщение # 6 |
1 уровень
Группа: Пользователи
Сообщений: 14
Награды: 0
Репутация: 0
Блокировки:
| что такое линковщик?
|
|
|
|
Ty3uK | Дата: Понедельник, 25 Марта 2013, 13:17:13 | Сообщение # 7 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| ru.m.wikipedia.org/wiki/Компоновщик
|
|
|
|
pein | Дата: Понедельник, 25 Марта 2013, 13:41:26 | Сообщение # 8 |
9 уровень
Группа: Проверенные
Сообщений: 1114
Награды: 1
Репутация: 272
Блокировки:
| JASSCraft +1
|
|
|
|
Duosora | Дата: Понедельник, 25 Марта 2013, 13:59:31 | Сообщение # 9 |
The cats never sleep...
Группа: Ветераны
Сообщений: 6734
Награды: 10
Репутация: 2161
Блокировки:
| Цитата (pein) JASSCraft +1 Подсвечивал бы vJass и cJass - цены не было бы ему.
Не зли других и сам не злись. Мы - гости в этом мире. И если что не так - смирись, Будь поумнее - улыбнись, Ведь в мире всё закономерно. Зло, излучённое тобой, К тебе вернётся непременно.
|
|
|
|
pein | Дата: Понедельник, 25 Марта 2013, 14:13:48 | Сообщение # 10 |
9 уровень
Группа: Проверенные
Сообщений: 1114
Награды: 1
Репутация: 272
Блокировки:
| Цитата (Duosora) Подсвечивал бы vJass и cJass - цены не было бы ему. а плагин под него нелзя нписать?
|
|
|
|
Daro | Дата: Понедельник, 25 Марта 2013, 14:52:41 | Сообщение # 11 |
6 уровень
Группа: Проверенные
Сообщений: 217
Награды: 0
Репутация: 105
Блокировки:
| как сделать массив и как с ним работать?local array ,а что дальше
|
|
|
|
Duosora | Дата: Понедельник, 25 Марта 2013, 16:20:18 | Сообщение # 12 |
The cats never sleep...
Группа: Ветераны
Сообщений: 6734
Награды: 10
Репутация: 2161
Блокировки:
| Цитата (Daro) как сделать массив и как с ним работать?local array ,а что дальше Эти вещи раскроются на других уроках. Вообще, local (тип) array (имя), например, local integer array i
Не зли других и сам не злись. Мы - гости в этом мире. И если что не так - смирись, Будь поумнее - улыбнись, Ведь в мире всё закономерно. Зло, излучённое тобой, К тебе вернётся непременно.
|
|
|
|
SirNikolas | Дата: Понедельник, 25 Марта 2013, 17:24:29 | Сообщение # 13 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Цитата (Duosora) Подсвечивал бы vJass и cJass - цены не было бы ему. Можно переписать подсветчик N++ для другой цветовой гаммы. Вообще говоря, "переписать" - громко сказано. Там надо всего несколько hex-кодов в файле заменить.Цитата (Duosora) Одна из важных частей любого языка программирования - парсер. Для несведущих в этом деле поясню: парсер - синтаксический анализатор кода, проверяющий его правильность и изменяющий его структуру. Другие важные части - компилятор и линковщик. Именно эти части и собирают код воедино в целостный файлик. Не стоит путать эти два понятия. Ну, парсер является частью компилятора, а компоновщик JASS'еру недоступен, так что можно было и не упоминать. Только запутаешь народ.Цитата (Fredbob) что такое линковщик? Вот видишь.
|
|
|
|
Duosora | Дата: Понедельник, 25 Марта 2013, 17:42:55 | Сообщение # 14 |
The cats never sleep...
Группа: Ветераны
Сообщений: 6734
Награды: 10
Репутация: 2161
Блокировки:
| Цитата (SirNikolas) Ну, парсер является частью компилятора, а компоновщик JASS'еру недоступен, так что можно было и не упоминать. Только запутаешь народ. Тузик предлагал - я добавил.
Не зли других и сам не злись. Мы - гости в этом мире. И если что не так - смирись, Будь поумнее - улыбнись, Ведь в мире всё закономерно. Зло, излучённое тобой, К тебе вернётся непременно.
|
|
|
|
Ty3uK | Дата: Понедельник, 25 Марта 2013, 17:52:13 | Сообщение # 15 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Я предложил потом это выкинуть, причем я писал это чисто тебе, потому что ты сказал, что в WE есть компилятор.
|
|
|
|
Duosora | Дата: Понедельник, 25 Марта 2013, 17:53:15 | Сообщение # 16 |
The cats never sleep...
Группа: Ветераны
Сообщений: 6734
Награды: 10
Репутация: 2161
Блокировки:
| DragoN, Сделал. Ty3uK, my bad :| FFFAAAAIL Ну да ладно.
Не зли других и сам не злись. Мы - гости в этом мире. И если что не так - смирись, Будь поумнее - улыбнись, Ведь в мире всё закономерно. Зло, излучённое тобой, К тебе вернётся непременно.
|
|
|
|
goldplay99 | Дата: Вторник, 26 Марта 2013, 01:37:21 | Сообщение # 17 |
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
| Я так понял, сджасс изучать не будем?
Я знаю *ВСЕ*, но *ВСЕ* - ничегошеньки незнает обо мне.
|
|
|
|
Ty3uK | Дата: Вторник, 26 Марта 2013, 10:33:48 | Сообщение # 18 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Пока нет. А что его изучать? Читайте мануал, он неплохо задокументирован.
|
|
|
|
H_A_PK | Дата: Вторник, 26 Марта 2013, 10:54:55 | Сообщение # 19 |
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
| ещё помню такую утилиту как Jass Editor ссыль
проклятье ляжет на любого кто дочитает до конца нет не дочитывай не надо остановись ну всё капец
|
|
|
|
Duosora | Дата: Вторник, 26 Марта 2013, 11:30:55 | Сообщение # 20 |
The cats never sleep...
Группа: Ветераны
Сообщений: 6734
Награды: 10
Репутация: 2161
Блокировки:
| Цитата (goldplay99) Я так понял, сджасс изучать не будем? Будем. Всё от начала и до конца, детально))
Не зли других и сам не злись. Мы - гости в этом мире. И если что не так - смирись, Будь поумнее - улыбнись, Ведь в мире всё закономерно. Зло, излучённое тобой, К тебе вернётся непременно.
|
|
|
|
Fredbob | Дата: Вторник, 26 Марта 2013, 13:06:43 | Сообщение # 21 |
1 уровень
Группа: Пользователи
Сообщений: 14
Награды: 0
Репутация: 0
Блокировки:
| когда следующий урок?
|
|
|
|
goldplay99 | Дата: Вторник, 26 Марта 2013, 13:30:03 | Сообщение # 22 |
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
| Просто написанно 'именно про варовский джасс от близзов' - та да, мануал на уровне, но структуры чот не идут:3
Я знаю *ВСЕ*, но *ВСЕ* - ничегошеньки незнает обо мне.
|
|
|
|
Ty3uK | Дата: Вторник, 26 Марта 2013, 13:59:45 | Сообщение # 23 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Структуры - это vJASS. Тоже хорошо описаны в мануале.
|
|
|
|
lawson | Дата: Вторник, 26 Марта 2013, 17:14:04 | Сообщение # 24 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Цитата (Fredbob) когда следующий урок? лучше задать вопрос так "где сам шмуос?"
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
PUVer | Дата: Вторник, 26 Марта 2013, 18:42:39 | Сообщение # 25 |
Сухопутные крысы!
Группа: Модераторы
Сообщений: 4462
Награды: 8
Репутация: 1845
Блокировки:
| Очень интересно-_-
|
|
|
|
|
|
|
|
|
|
|