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

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

Ответ
 
FoK_KruGer
<3 Vocal Trance
offline
Опыт: 19,940
Активность:
Здесь просто опыта больше дают)))))*дьявоьский смех***
Завтра придумаю нового героя.
Главное его специализацию придумать а дальше легко.
Старый 03.05.2006, 17:38
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
FoK_KruGer а я предумал, но нереализовал. Щя время нет.
Старый 03.05.2006, 17:42
FoK_KruGer
<3 Vocal Trance
offline
Опыт: 19,940
Активность:
Ну и какая???
Старый 03.05.2006, 17:43
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
FoK_KruGer я раньше тож с флешем работал, статьи чатал, мульты делал, игру одну замутил.
Герой у меня будет Некромант:
Вот одна из способностей: подходит к трупу кастует спелл, на трупе появляется могила, и эта могила чё-нибудь будет делать, либо ауру давать некроману, либо мёртвых воскрешать, я ещё нерешил!
Старый 03.05.2006, 17:46
FoK_KruGer
<3 Vocal Trance
offline
Опыт: 19,940
Активность:
Ну я статей не одну не читал. Он у меня только пол месяца. А чтоб игры делать там програмировать надо. Да??
Я такой спелл врятли сделаю. Но идейка - Некромант - неплохо.
Я кстати не понял как твой фурион дерево КИДАЕТ. Как ты там скорость ему задул, как оно полетело, появилось. Москиты???
Лан, я в оффлаин. На часок. Надо физику сделать.
(Гррр...Ненавижу....)))
Старый 03.05.2006, 17:50
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
FoK_KruGer чтобы игры делать надо програмить!
Делается просто: вырывается дерево, создаётся спецэффект дерева над головой Фуриона, затем меняются абилки, и просто Кидает дерево(на основе Молот Бурь(анимация дистанционной атаки - дерево)) и всё, никаких москитов, ну ты сам посмотри получше!
Старый 03.05.2006, 17:55
FoK_KruGer
<3 Vocal Trance
offline
Опыт: 19,940
Активность:
я прост не понял что на молоте бурь делается. А так все понятно.
Старый 03.05.2006, 19:21
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
молот бурь просто уидает дерево во врага, всё вроде просто!
Старый 03.05.2006, 19:24
FoK_KruGer
<3 Vocal Trance
offline
Опыт: 19,940
Активность:
ну ладно. Проверь личку.
Старый 03.05.2006, 19:29
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
FoK_KruGer теперь ты!
Старый 03.05.2006, 19:32
FoK_KruGer
<3 Vocal Trance
offline
Опыт: 19,940
Активность:
Ща....
Кстати, некроманта я буду придумывать.
Как думаешь за кого его сделать: за наг? или ну ты понял.

FoK_KruGer добавил:
Ща я в офф. Посмотрю твой ролик. Люблю ролики с юмором. Ну это так, для справки.
Старый 03.05.2006, 19:39
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
FoK_KruGer некроманда, да хз, главное сделать, а за кого будет потом решат!

MapMan добавил:
Кстате хочется РПГ сделать офегенную, вобще очень хочется, уже столько идей в голову лезет, так что если кто захочет замутить классную РПГ обращяйтесь!
Старый 03.05.2006, 19:53
FoK_KruGer
<3 Vocal Trance
offline
Опыт: 19,940
Активность:
MapMan - не надо.
Твой ролик - руль. Мне понравилось:
"А что это было?"
"Метеорит на дом упал"
"А-а...ну тогда ладно."
Сорри за оффтоп.
Кстати, заменил я спелл у рокки. Но он как обычно неработает. Проверь!!!
Я вроде всё правильно сделал.
Прикрепленные файлы
Тип файла: w3x Rocky5.w3x (44.5 Кбайт, 20 просмотров )
Старый 03.05.2006, 21:26
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
FoK_KruGer ща посмотрим (хотя это и не мне писали ^_^)
MapMan да, леди интегру и я люблю. мог и вики на авик поставить

Van Damm добавил:
FoK_KruGer да, кстати, а какую абилку ты менял?
Старый 04.05.2006, 01:12
dk

offline
Опыт: 60,293
Активность:
MapMan я тоже хотел бы сделать рпг, давай зарулем после оканчания этого еще один проект!
Старый 04.05.2006, 02:39
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
Dead_knight согласен, наберём ещё людей, и тогда замутим!
Старый 04.05.2006, 05:59
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
MapMan я тоже хотел бы сделать рпг, давай зарулем после оканчания этого еще один проект!

И не думай... Проект не закончеся, мы дойдем до версии 1.00, потом 1.01, 1.02, ...,4.69 и т.д.

На счет скрещивания предмантов - я согласен! Представте сколько можно будет сделать секретных рецептов - прям как в деабло, да и камни драгоценные можно поставить, которые также можно скрещивать










Цитата:
MapMan я тоже хотел бы сделать рпг, давай зарулем после оканчания этого еще один проект!

И не думай... Проект не закончеся, мы дойдем до версии 1.00, потом 1.01, 1.02, ...,4.69 и т.д.

На счет скрещивания предмантов - я согласен! Представте сколько можно будет сделать секретных рецептов - прям как в деабло, да и камни драгоценные можно поставить, которые также можно скрещивать











"Jass, как язык программирования" или "Введение в среду Jass-а"


Цель этой темы - это взгляд на Jass как на язык программирования, это что-то типа как “Введение в среду Jass-а”

И так, вы решили написать работоспособный код на Jass, но не знаете как это сделать, как осуществить ваше желание. С помощью этого руководства вы сможете это сделать. Вместе с автором вы пройдете путь от простого – к сложному, от небольших фрагментов кода к созданию собственной карты полностью на джаз. Цель этого руководства познакомить вас с удивительным миров Jass.

Jass – это интерпретируемый язык (скрипт) который использует вар для создания сценариев, с помощью Jass-а можно управлять только игровыми процессами
На нем могу писать люди с различным уровнем подготовки, начинающий Jass-ер может писать некоторые коды вставляя их в уже понятные ему триггеры, более опытные могут сразу с нуля писать на джаз.

Язык Jass, невероятно богат своими возможностями по сравнению с GUI триггерами.

Элементы языка:
  • Литералы и константы
  • Переменные и массивы
  • Процедуры и функции
  • Операторы и выражения
  • Управляющие конструкции
  • Циклы
  • Классы и объекты


Литералы и константы


это самые простые составляющие любого кода. Обычно они используются в виде “как есть”.

Литерал


Литералом называют значение в явном представлении, например, число, строковое значение, логическое значение.
Строковое значение берется в двойные кавычки.

Константа


Константа – это именной литерал. Если литералу присвоить имя, то все ссылки на это имя будут возвращается его значением. Это значение не может манятся в процессе выполнение скрипта.

Переменные и Массивы


Переменная


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

значение переменной присваивается с помощью оператора set, или в момент объявления переменной
Код:
local integer Var = 123
set Var = 234


Статус переменной - это понятие об "области действия" переменной.
Могут быть 2 статуса
Local
Global

Для именования переменных имеет значение регистр, т.е. A!=a.

Массив


Массив - это группа однотипных переменных памяти, с которыми обращаются как с единым целым. Массив, как и переменная, используется для хранения данных. Каждый массив имеет имя. В квадратных скобках после имени массива указывают индекс, т.е. написание массива выглядит следующим образом VarArray[1], Индексация массива начинается с 0, Массивы в варе могут быть только одномерные что весьма ограничивает его возможности.
Объявление локального массива производится с помощью следующего синтаксиса
Код:
local <тип массива> array <Имя Массива>

при объявлении массиву нельзя присвоить значение как обычной переменной.
При заполнении массива необязательно соблюдать последовательное заполнение его элементов, т.е. порядок неважен.

Процедуры и Функции


Ваш код может содержать Процедуры и Функции
(Однако процедуры в Jass-е всегда называют тоже функциями)
Строение Функции и Процедуры
Код:
function F takes <параметры> returns <возвращаемое значение>
    //Действия
    return <значение>
endfunction

function P takes <параметры> returns nothing
    //Действия
    return // наличие "return" - необязательно
endfunction
В параметры могут быть вписано любое количество параметров через запятую, при этом сначала указывается тип параметра а потом его имя.
например
Код:
function P takes integer int, unit U, location loc returns nothing
    //Действия
    //return
endfunction

function F takes integer integer int, real r returns integer
    return R2I(int * r)
endfunction

после данная функция должна вызывается так
Код:
call P(4, udg_Unit, GetUnitLoc(udg_Unit))

вызов Функции может вызыватся также как и процедура, а может быть сразу записано в переменную того же типа что и возвращаемое значение.
Код:
call F(4, 5.8)
set udg_Int = F(4, 5.8)


число параметров фиксировано, и при вызове функции в нее передается столько параметров сколько указано и в ее заголовке.

Объявление самих функций производится в таком порядке
common.j -> Blizzard.j -> war3map.j
структура war3map.j рассмотрим позже, однако следует значить сейчас что объявление функций происходит сначала в нестандартном коде карты, а потом в триггерах, однако это не зависим от местоположения триггеров в их списке, а зависит от порядка их создания. Если какой-то триггер был создан после второго, то во втором триггере использовать функции первого не получится.

Выражения и операторы


Выражение


Выражениям называют какой-либо из элементов языка или их совокупность, которая в результате обработки приводит к одному определенному значению. Выражения могут содержать однотипные переменные, функции и константы, обьеденяемые знаками операций.
Выражения бывают
  • числовые
  • символьные
  • логические
В числовых выражениях используются следующие знаки операции:
+, -, *, / - Основные арифметические действия;
В символьных выражениях используются конкатенация, т.е. сложние строк, например "Строка1"+"Строка2" == "Строка1Строка2"

Операторы


операторы бывают
  • арифметические
  • логические
  • сравнения
Арифметические операторы представляют собой знаки врифметических действий и позволяют выполнять действия над числами или переменными.
Для использования знака "+" для числовых переменных результатом будет сумма чисел. Если сложить символьные переменные, результатом будет сцепление строк.

Арифметические операторы
"()" - Повышение приоритета операции: действие в скобках выполняются первыми
"*" - умножение
"/" - деление
"+" - сложение
"-" - Вычитание

Операторы сравнения:
"==" - равно
"!=" - неравно
"<" - меньше
">" - больше
"<=" - меньше или равно
">=" - больше или равно

Логические операторы:
"()" - Повышение приоритета операции: действие в скобках выполняются первыми
"not" - Логические отрицание (не)
"and" - Логическое умножение (и)
"or" - Логические исключение (или)

Если несколько выражений объединены оператором and, то результат будет true в случае выполнение всех составляющих такого условия. Если хотя бы одно условие не выполняется, результат будет false.

Если использовать оператор not, это означает, что результат будет истинным в случае невыполнения условия. Например not X == Y, будет истинным в том случае если X != Y.

Оператор or возвратит true, если хотя бы одно из условий, входящих в состав объеденного выражения, будет верным. Например, x==15 or y==3, выражение будет верно в случае, если либо x==15, либо y==3.

Управляющие конструкции


Команды в скрипте выполняются в порядке их написания. А как же быть в случаях, если порядок выполнения нужно изменить? Для этого в Jass-е предусмотрено несколько управляющих конструкций. К таким управляющим конструкциям языка относят:
  • команды
    if ... endif
  • циклы
    loop ... endloop
  • команды выхода
    exitwhen
    return

Условные конструкции


Условный переход if ... endif используется для выбора одного из двух вариантов и имеет следующий синтаксис:
Код:
if <Условие1> then
    //Действия если <Условие1> выполнено
elseif <Условие2> then
    //Действия если <Условие1> не выполнено, а <Условие2> выполнено
elseif <Условие3> then
   //Действия если <Условие1> и <Условие2> не выполнено, а <Условие3> выполнено
else
    //Действия если ни одно из условий не выполнено
endif

Присутствие elseif необязательно, оно обязательно располагается между if и else, а else тоже необязательный компонент, но он может быть только один стоять перед endif.

Комментарии - это выше пояснение в коду, комментарий начинается с символов "//". Они не будут восприняты компилятором в качестве команд, если вы сделаете пометку в начале строки комментарии в виде какого-нибудь слова.

Циклические конструкции


Циклические конструкции позволяют повторять некоторую часть кода названую телом цикла, некоторое необходимое число раз.
Код:
loop
    //Действия1            |
    exitwhen <Условие>     |- Тело цыкла
    //Действия2            |
endloop

Тело цикла выполняется пока <Условие> является ложным. Если <Условие> получило значение true, все действия после exitwhen (//Действия2) не выполняются, и выполнение кода переносится на следующий оператор после endloop.

Классы и объекты


» обьективно-ориентированое приграммирование
Мы живет в мире объектов. Все, что мы видим - стол, дом, автомобиль, яблоко - все это объекты. Каждый объект имеет свои характеристики (свойства): стол, например, количество ножек, дом - количество дверей, автомобиль - Мощность, цвет.
Кроме характеристик каждый объект имеет свои возможности (методы). автомобиль может ездить, яблоко можно съесть. Это даже не понятие программирования, а такое, общефилософское, понятие.

Итак, объект - это некоторая совокупность данных и функций, или как говорилось выше, свойств и методов. Кроме того, существует еще события внешнего мира, на которые объект реагирует: например, вы завели автомобиль - он двигается. Вам, возможно, совсем неинтересно, что там происходит внутри двигателя, вас интересует только ваше взаимодействие и его результат - движение. Событие - это действие, направленное на изменение состояния объекта.

Теперь взглянем с точки зрения обьективно-ориентированого программирования на само программирование. Есть, к примеру, обьект - Unit, У Unit-а есть свойства, характеризующие объект - размер, название, цвет, и т.д.
Кроме того Unit Обладает набором собственных методов, т.е. действий которые объект способен выполнять. Например, мы знаем, что можно выбрать его, т.е. существует метод Select, а что произойдет при нажатии кнопки решает уже программист.


Типы объектов


Классы и объекты тесно связаны друг с другом, хотя отождествлять их было бы неверным. Класс содержит информацию о том, как выгладит объект и какие он имеет свойства. Объект является экземплярам класса и наследует его характеристики. Объект который может содержать в себе другие объекты, называется контейнером. Примером контейнера является Unit, который содержит в себе Абилки.

Свойства Объектов


Свойства - это данные об объекте, они определяют его внешний вид и поведение. Они привязаны к объекту и не существуют без него. Для каждого объекта вы можете определить необходимый вам набор свойств, для юнита можно указать Размер, Цвет, Урон, Броню, Для Абилок - Текстура иконки, положение на панели приказов, и т.п.

Объект - это экземпляр некоторого класса объектов, Так автомобиль является экземпляром класса автомобилей, а лошадь - представителем класса животных. Класс - это абстрактное понятие, он содержит информацию о том как должен выглядеть объект, и определяет выполняемые им действия. С точки зрения программирования, объектами являются почти все представители класса handle.


Несколько советов


Самый главный совет: Даже если у вас что-то не получается сразу, никогда не отворачивайтесь! Всегда помните что в Jass, хоть иногда но и возможно обходные пути решения какой либо проблемы. Поэтому просто попытайтесь посмотреть на проблему с другой стороны.

Также заметим, что закрывать карту – идея не из лучших. Где-то слышал фразу, что если ваш проект представляет интерес для хакеров, его все равно взломают, разберут побайтно и побитно).
Декомпилируется все
Но конечно все же в некоторых случаях подобные идеи имеют право на жизнь.
Дабы избежать от попадания карты в не некомпетентные руки…

Отредактировано Jon, 26.06.2007 в 07:13.
Старый 04.05.2006, 10:12
dk

offline
Опыт: 60,293
Активность:
1.05-4.69 не нужно будет особой активности так что замутим, но только после оканчания этого!
Старый 04.05.2006, 10:32
J
expert
offline
Опыт: 48,447
Активность:
Так у нас будет инвентарь нетрата или нет? Я за "да".
Старый 04.05.2006, 15:07
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
Jon я тож за!

MapMan добавил:
Так как насчёт идеи про кузню??
Старый 04.05.2006, 17:31
Ответ

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

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

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

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



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