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

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

Закрытая тема
 
DioD

offline
Опыт: 45,134
Активность:
Общая информация по Jass, также своеобразное FAQ по нему

Введение в предмет



Тем, кто уже знаком с JASS вся эта информация может показаться бессмысленной, поэтому сразу к главному:

Изобретать велосипед не стоит, да и не нужно, всё уже было сделано до вас и для вас.
Так же вам будет интересно сравнить джаз с триггерами.

JASS это текстовое представление знакомым вам триггеров из редактора, ничего больше.

Но если в редакторе вы выбираете функции только из тех, что доступны изначально, в JASS вы можете творить их самостоятельно.
Но самое главное, что вам даже не придётся отказываться от привычных для вас триггеров, таким образом, переход на JASS не лишает вас каких либо возможностей вовсе.

Аббревиатура JASS на самом деле ничто иное, как "просто еще одна система сценарирования" но это еще проще, тут всего одно слово несёт смысл,

сценарирование.

Да-да, вы на самом деле - сценарист, пишете историю своего собственного мира, так как желаете этого сами и JASS расширяет ваши возможности, ограничивая их лишь рамками возможностей игры.

То, что вы уже сделали, не будет потеряно, а только станет лучше, если применить JASS в дополнение к триггерам.

Основной фигурой всегда был и будет герой, вы, конечно, делали для своих героев уникальные способности и характеристики, скорее всего, использовали триггеры, при помощи JASS вы откроете возможности, что ранее были недоступны.
Как пример того, что можно сделать своими руками.

FAQ



FAQ, полезная информация о Jass и приёмах картостроительства в целом.
В этой теме будут расписаны ответы на различные вопросы, касающиеся Jass прямо или косвенно, а также по другим областям картостроительства.


Общая информация

  1. Q - Что такое Jass?
    A - Интерперируемый язык программирования созданный программистами Blizzard для использования внутри карт Warcraft и Starcraft, в Warcraft используется Jass2. Интерпиратор для него был написан на "C++",по этой причине часть правил из C++ перекочевала в него.
    Само слово переводиться как Just Another Scripting System.
    Для ознакомления со структурой языка на примерах и в теории рекомендованы следующие материалы:

    1. -Общая теория
    2. -Применение на практике
    3. -Программа, что поможет вам в редактировании Jass



  2. Q - Чем отличается джаз от GUI?
    A - GUI или "триггеры" является графической оболочкой для языка джаз, из преимуществ имеет только комментарии в описании некоторых функций, хотя они иногда разняться с описанием внутри CJ и BJ(об этом ниже).
    Не используя псевдопреимущества GUI, пользователь получает новые возможности такие как:

    • -Возможность использования локальных переменных.
    • -Возможность построения своих функций.
    • -Возможность вызова любых функций.
    • -Возможность оптимизировать и самое главное анализировать код, делая его более совершенным.


  3. Q - Что такое BJ и CJ?
    A - BJ и CJ это файлы ,что находяться в папке scripts в них указаны имена всех доступных функций, а так-же входные параметры для этих функций.
    BJ(Blizzard.J)Отвечает за функции что необходимы для работы GUI редактора, а CJ(Common.J) отвечает за функции вшитые в движок варкравта.



  4. Q - Существуют ли учебники по Jass?
    A - Увы, нет, таки учебников не существует.


  5. Q - Основные отличия Jass от C++
    A - У Jass и C++ нет ничего общего кроме синтаксиса, который впрочем, у всех языков высшего уровня представляет собой слова или предложения.
    Невозможность оперировать из-под Jass памятью напрямую полностью исключает C++ из сравнения.



  6. Q - Долго ли изучать Jass
    A - Изучение языка Jass занимает 6-12 часов, как бы это не звучало удивительно, существует всего пара основных правил, зная которые, вы не будете испытывать каких либо сложностей.
    • -Правило направления, можно вызвать только ту функцию, что выше того места, из которого её вызывают.
    • -Правило регистра, регистр имеет значение А!=а.
    • -Правило параметров, если функция требует входные параметры, вы должны их предоставить.
    • -Самое главное правило, не учите имена функций наизусть, эта пагубная привычка может вам сильно помешать.


  7. Q - Трудно ли изучать Jass, если я уже знаю другие языки программирования?
    A - Знание любого языка программирования поможет вам, но гораздо ценнее знание Английского языка.


  8. Q - Можно ли добавить свои функции в GUI?
    A - Можно добавить не только функции, но и типы переменных.
    Делается это через расширения UI редактора.
    Как пример такой модификации вы можете посмотреть фаил прикреплённый к этому сообщению.(добавление новых переменных в редактор)
    Инструкция по установке крайне проста; Создать папку UI в директории варкравта и поместить в неё отредактированные файлы из аналогичной директории архива War3Patch.mpq или War3x.mpq.



  9. Q - Где находиться секция custom script карты?
    A - Для того чтобы попасть в это загадочное места необходимо открыть редактор триггеров, обратить внимание на самый верх древовидной структуры триггеров и кликнуть на имя карты, которое располагается выше всех остальных категорий, в открывшемся свободном месте вы можете писать функции или комментарии.


  10. Q - Как запретить редактору выключать триггеры в результате ошибок?
    A - К сожалению, система защиты от глюков так просто не сдается, можно добавить некоторую строку, например "//" в секцию custom script карты или воспользоваться специальной утилитой, которая лечит это.
    Сама утилита прикреплена в это сообщение под именем "vwe".



  11. Q - Можно ли захватить мир с помощью джаза?
    A1 - Да (только никому не говорите, а то всё, кирдык).
    А2 - Джазом можно сделать всё (особенно, если это огромные человекоподобные роботы)
    Мир не ждёт - учите джаз (быстрыми темпами, а то кирдык)



  12. Q - Как это можно сделать??
    A - К сожалению, система защиты от хаков так просто не сдается, можно добавить некоторую строку, например "//" в секцию custom script планеты или воспользоваться специальной утилитой, которая лечит это.
    Сама утилита прикреплена в это сообщение под именем "vwe".



  13. Q - Можно ли сделать лёд джазом???
    A - Так как джаз это огромные человекоподобные роботы, то лёд сделают из вас посредством ядерной зимы, менее вредными способами лёд джазом создать нельзя!


  14. Q - Джаз - это ведь ниггерская ретро музыка... пчму она ещё пользуется популярностью??
    A - Ну просто потому что ктулху тоже нигер.

История модификаций

  • 09.10.2006 18:12:51
    Обновлена орфография и некоторые компоненты содержания

  • 09.10.2006 20:56:48
    Добавлено 4 вопроса
  • 09.10.2006 20:56:48
    Обновлено содержание и орфография
Время момента завершения обновления может не совпадать со временем отправки, так как я не машина. Убедительная просьба не писать об этом.

Отредактировано Jon, 12.08.2007 в 04:18.
Старый 07.10.2006, 16:42
FoK_KruGer
<3 Vocal Trance
offline
Опыт: 19,940
Активность:
что такой джаз?
Старый 07.10.2006, 20:42
Greenn
Where is cookieh?
offline
Опыт: 12,007
Активность:
В чем плюсы JASS перед триггерами =)
Старый 07.10.2006, 20:58
DampirTBs

offline
Опыт: 28,311
Активность:
Кагдила, крос* упс. сори. эээ конец офтоп
Вопрос:
Есть какиенить учебники по джассу, и сильно ли он отличается от си++ ?
Старый 07.10.2006, 21:01
Krol

offline
Опыт: 17,884
Активность:
Долго ли изучать Джазз?
Старый 07.10.2006, 21:01
Кет

offline
Опыт: 111,109
Активность:
можно ли добавлять свои гуи-триггеры, использующие не задействованные в ГУИ джасс-функции?
Старый 07.10.2006, 21:07
Krol

offline
Опыт: 17,884
Активность:
Ответят ли на все эти вопросы?
Старый 07.10.2006, 21:09
NETRAT

offline
Опыт: 83,712
Активность:
Ket ага, можно, так и сделано в WEU в секции Advanced Triggers
это достаточно просто делается через текстовые файлы архива ресурсов игры
Старый 07.10.2006, 21:11
Mefist
Is it cocktail hour yet?
offline
Опыт: 98,190
Активность:
посмотри фак, в академии, может какие-то вопросы про джасс от туда сюда перенести
Старый 07.10.2006, 21:35
DioD

offline
Опыт: 45,134
Активность:
к сожалению тут информация представлена с другой точки зрения и несовместима с факом из академии.
Старый 07.10.2006, 21:42
NETRAT

offline
Опыт: 83,712
Активность:
Пчму?
Старый 07.10.2006, 21:47
DioD

offline
Опыт: 45,134
Активность:
Что такое JASS ?
Рекомендую прочитать следущие статьи:
Против
Q =Что такое Jass?
A =Интерперируемый язык програмирования основаный на C++.
Само слово переводиться как Just Another Scripting System.
Почуяли разницу в точке зрения и вообще предствлении о том что есть что?
Старый 07.10.2006, 21:49
NETRAT

offline
Опыт: 83,712
Активность:
а что если:
Цитата:
Q =Что такое Jass?
A =Интерперируемый язык програмирования основаный на C++.
Само слово переводиться как Just Another Scripting System
Чтобы познакомиться поближе, рекомендую прочитать следущие статьи:


что ж, суть понятна, однако, я считаю, имеет смысл добавить ссылку (оттуда - сюда)

NETRAT добавил:
Ну вот софтово посты совсем не обязательно удалять
Старый 07.10.2006, 21:54
DioD

offline
Опыт: 45,134
Активность:
Вот в этом я с тобой полностью согласен.
При ответах на следующие вопросы я буду сверяться с факом академии и обновлю текущие ответы той информацией что имеет смысл там присутствовать.
Эдэд
Посты удаляю только для того что-бы видеть суть, как только закончу организационные моменты всё верну на места

Отредактировано DioD, 07.10.2006 в 22:15.
Старый 07.10.2006, 21:55
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
-Самое главное правило, не учите имена функций наизусть, эта пагубная привычка может вам сильно помешать.

почму:) а я только начал:)

хм.. у меня есть один вопрос и ответ.. ща скажу



Jon добавил:
Q - Я хочу создать некоторые функции вне главного кода карты, в одном из триггеров (для удобства - чтобы не хранить все функции в одном месте и чтобы не было каши), но у меня почему-то компилятор жалуется, что там, где я вызываю эти функции, он не может их найти, хотя триггер с функциями находится выше того триггера, который их вызывает.
A - Все дело в том, что WE расставляя порядок загружений триггеров (а соответственно и функций в нем) не руководствуется тем - какой триггер выше, а какой ниже, а тем какой из триггеров был создан последним, т.е. каждый созданный триггер перемещается в конец цепочки инициализации этих триггеров, и потому чтобы все работало - тебе нужно пересоздать триггер (который с вызовом функций) и переместить в него все из прошлого


Надеюсь прально;)
Старый 07.10.2006, 23:12
DioD

offline
Опыт: 45,134
Активность:
Вполне правильно но действие жутко безполезное, тригер не надо пересоздавать, достаточно выключить а потом включить...
Так как при выключении тригера в гуи он удаляется из кода карты вообще.
Старый 07.10.2006, 23:18
J
expert
offline
Опыт: 48,447
Активность:
DioD, хы.. недумал.. пасиб:)
Старый 07.10.2006, 23:19
DioD

offline
Опыт: 45,134
Активность:
вот для этого и существуют подобные темы, я сам с этим сталкивался неоднократно когда создавал модули FX SFX MOVE отдельно друг от друга и при появлении новой функции приходилось делать пазл, а так выключил все триги и включай по очереди.
Старый 07.10.2006, 23:22
zibada

offline
Опыт: отключен
есть еще такая раздражающая бяка, что при ошибке редактор очень любит отключать триггеры скопом, а не только ошибочный, а потом не давать их включить...
лечится так - в секцию custom script карты (кстати, неплохо бы в фак или еще куда вписать, что это за секция такая и как туда попасть - это не совсем очевидно) пишется что угодно валидное, хотя бы "//", походу это отключает проверку отдельных триггеров редактором - ругаться теперь он будет только при сохранении на скрипт в целом.
Старый 08.10.2006, 02:39
DioD

offline
Опыт: 45,134
Активность:
я думаю следует добавить наработку вексориана что лечит это
http://www.wc3campaigns.net/showthread.php?t=80354
причём полностью
Старый 08.10.2006, 02:47
Закрытая тема

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

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

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

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



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