Институт модмейкера
|
|
|
_Призрак_
Среда, 27.06.2012, 21:16 | Сообщение # 1
Статус: |
|
Неопытный: |
|
Сообщений: |
544 |
Награды: |
6 |
Регистрация: |
12.02.2011 |
|
Лекции На сайте gamedev.ru уже давно существует раздел, в которых выкладываются логи переписки с лекциями. Не смотря на то, что там собрано все в кучу, практически каждая такая переписка имеет толк. Например из них можно узнать множество вещей, которые невозможно узнать из сухой документации. В связи с тем, что на сайте много новичков, я хотел бы провести ряд таких экспериментальных лекций. Они будет представлять собой голосовой чат в котором будет подниматься какая-либо тема (например логика в игре) и лектор будет о ней рассказывать. Участники могут спрашивать любые вопросы, на которые лектор постарается ответить. По окончанию логи беседы будут выложены в аудио и текстовом формате. На каждую лекцию необходима будет записываться - это нужно для того, чтобы можно было искоренить флудеров и предотвратить переполнение. Формат записи (пример - я):
Quote (me) Skype: rus_phantom Есть микрофон Буду на лекции.
Если вы записались, но не пришли - никаких проблем.
Правила: 1. Не флудить 2. Уважать участников 3. Уважать русский язык
Если будет адекватная аудитория то я обязательно постараюсь увеличить количество направлений в лекциях, и приглашу знаменитых людей, таких как AlexRos, macron, malandrinus. Не уверен что они все согласятся, но многие не против поделиться опытом.
Так же буду рад если кто нибудь из сильных скриптеров тоже присоединится к нам. Чтобы дополнить или поправить материал.
Наличие микрофона не обязательно, но желательно. Он нужен будет только для того чтобы задавать вопросы. Те у кого нет микрофона, могут задавать вопросы в чате. Голосовая запись будет опубликована в тот же день, в текстовом формате - через несколько дней.
Те, кто записался, приглашу за полчаса до начала к скайп конференцию.
Расписание: 29.06.12 21:00 - Основы скриптов (переменные, условия, циклы, функции, области видимости). Лектор: _Призрак_ 07.07.12 20:00 - Основы скриптов (Повторение). Лектор: _Призрак_ 08.07.12 20:00 - Логику игровых объектов (спавн НПС, установка логики). Лектор: ColR_iT 13.07.12 21:15 - Основы скриптов Лекция 3. Лектор: _Призрак_ 14.07.12 20:00 - Логика игровых объектов (схемы поведения НПС). Лектор: ColR_iT
Объявление Происходит запись на лекцию по скриптам, а так же на лекцию про логику
Сообщение отредактировал _Призрак_ - Пятница, 13.07.2012, 00:20
|
|
Среда, 27.06.2012, 21:16
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
12.02.2011 |
|
|
|
|
|
Michman
Суббота, 30.06.2012, 11:40 | Сообщение # 76
Статус: |
|
Новичок: |
|
Сообщений: |
303 |
Награды: |
2 |
Регистрация: |
16.06.2011 |
|
1.5 - 2 часа достаточно. Тут я согласен с Colr_iT, если уделить время только заданной теме, то вполне достаточно получается.
|
|
Суббота, 30.06.2012, 11:40
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
16.06.2011 |
|
|
|
|
|
Скаут
Суббота, 30.06.2012, 12:43 | Сообщение # 77
Статус: |
|
Опытный: |
|
Сообщений: |
2371 |
Награды: |
4 |
Регистрация: |
16.03.2011 |
|
Лекция мне понравилась. Буду ждать следующей. Только есть одно "но". Где-то в середине лекции пошли примеры из S.T.A.L.K.E.R.'а. Это, конечно, интересно, но я этого ничего не понимал. Может быть что-то прояснялось, но я себя чувствовал "ежиком в тумане". Начало лекции было самое то! Да и ещё, хотелось бы, чтобы лектора не перебивали и не писали тупые посты в чат.
|
|
Суббота, 30.06.2012, 12:43
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
16.03.2011 |
|
|
|
|
|
BozKurt
Суббота, 30.06.2012, 13:09 | Сообщение # 78
Статус: |
|
Опытный: |
|
Сообщений: |
1753 |
Награды: |
3 |
Регистрация: |
25.05.2012 |
|
Скаут, если остались не понятные моменты в лекции - задавай вопросы, пока идёт подготовка ко второй, попытаемся закрыть пробелы первой.
|
|
Суббота, 30.06.2012, 13:09
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
25.05.2012 |
|
|
|
|
|
5 лет в Зоне
Статус: |
|
Опытный: |
|
Сообщений: |
2342 |
Награды: |
9 |
Регистрация: |
26.02.2012 |
|
Где брать названия переменных? Ну то есть вот функция: if i==1 then local b= "100" end То откуда брать переменную i , откуда скрипт будет знать что i это именно то нам нужно Я вот например хочу, что если здоровье равно половине, то оно автоматически восстанавливается, как это провернуть? Ведь если я напишу i, скрипт вообще в душе не знает что за i и что она значит, как сделать так чтобы он знал(в принципе тут много лишнего текста, по другому не смог )
|
|
Суббота, 30.06.2012, 13:14
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
26.02.2012 |
|
|
|
|
|
Статус: |
|
Бывалый: |
|
Сообщений: |
1116 |
Награды: |
12 |
Регистрация: |
29.11.2010 |
|
antonnkz76, i - это некая внутренняя переменная, которая автоматически создается при создании цикла.
Если ты хочешь, чтобы здоровье восстановилось сразу же, то тут цикл не нужен. Можно просто проверить так: Code local zdorovie = db.actor.health if zdorovie <= 0.5 then db.actor.health = 1 end Здоровье у игрока и неписей высчитывается в процентах, поэтому 100% = 1. Почему я написал не db.actor:health(), а db.actor.health? Потому что у живых объектов в сталкере есть несколько параметров, и задавать и получать. (Объяснил по-легче)
Сообщение отредактировал SkyLoader - Суббота, 30.06.2012, 13:36
|
|
Суббота, 30.06.2012, 13:32
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
29.11.2010 |
|
|
|
|
|
5 лет в Зоне
Статус: |
|
Опытный: |
|
Сообщений: |
2342 |
Награды: |
9 |
Регистрация: |
26.02.2012 |
|
SkyLoader, аа, понял, то есть надо указывать то, чему равна переменная, ну спасибо)
|
|
Суббота, 30.06.2012, 13:33
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
26.02.2012 |
|
|
|
|
|
Michman
Суббота, 30.06.2012, 13:58 | Сообщение # 82
Статус: |
|
Новичок: |
|
Сообщений: |
303 |
Награды: |
2 |
Регистрация: |
16.06.2011 |
|
Кстати чем-то некоторые простейшие функции в Lua похожи на паскалевские) Вот вопрос по пунктуации, чем "==" отличается от "="? Что из этого где юзается?
|
|
Суббота, 30.06.2012, 13:58
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
16.06.2011 |
|
|
|
|
|
BozKurt
Суббота, 30.06.2012, 14:05 | Сообщение # 83
Статус: |
|
Опытный: |
|
Сообщений: |
1753 |
Награды: |
3 |
Регистрация: |
25.05.2012 |
|
Немного о цикле for.
В общем виде цикл for выглядит так:Code for i=1, 10, 2 do get_console():execute("i_равно_"..i) end Если осуществить некий перевод на русский язык, то это будет так: Производить цикл для счётчика с именем i, равному 1, до тех пор пока i не станет равным 10, с шагом 2. Т.е. если выводить, в примере вывод идёт в лог, значение счётчика, то в консоле мы увидим вот такое:Code i_равно_1 i_равно_3 i_равно_5 i_равно_7 i_равно_9 Некоторые параметры можно не указывать. Например последнее значение, которое обозначает на сколько будет увеличиваться i на следующем цикле, по умолчанию равно еденицы, т.е. вот такой код:Code for i=1, 10 do get_console():execute("i_равно_"..i) end Выведет в консоль все значения i от 1 до 10.
Можно осуществить цикл но в обратном порядке. Вот такой код:Code for k=5, 1, -1 do get_console():execute("k_равно_"..k) end Выведет в консоль вот такие строки:Code k_равно_5 k_равно_4 k_равно_3 k_равно_2 k_равно_1 Кстати, замете, что имя счётчика можно задавать любое.
Сообщение отредактировал ColR_iT - Суббота, 30.06.2012, 14:19
|
|
Суббота, 30.06.2012, 14:05
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
25.05.2012 |
|
|
|
|
|
KDit
Суббота, 30.06.2012, 14:06 | Сообщение # 84
Статус: |
|
Зевака: |
|
Сообщений: |
13 |
Награды: |
0 |
Регистрация: |
14.04.2012 |
|
"=" - операция присваивания, "==" - операция сравнения. В Паскале "=" ето оператор сравнения ...
|
|
Суббота, 30.06.2012, 14:06
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
14.04.2012 |
|
|
|
|
|
BozKurt
Суббота, 30.06.2012, 14:18 | Сообщение # 85
Статус: |
|
Опытный: |
|
Сообщений: |
1753 |
Награды: |
3 |
Регистрация: |
25.05.2012 |
|
Michman, разница между ними колоссальна. "==" - это оператор сравнения "равно". "=" - это оператор присваивания.
Оператор сравнения используется только в случае проверки двух значений на равенство. Например:Code local a = 1 local b = 1 local c = 2 if a == b then --# если "a" равно "b", то выполняется только эта часть кода. else --# если "a" не равно "b", то выполняется уже только эта часть кода. end if a == c then --# если "a" равно "с", то выполняется только эта часть кода. end Как видно в примере, что в первом условии выполнится первая часть, потому как "а" равна "b". Второе же условие не сработает поскольку "a" меньше "с".
Оператор присваивания делает же совершенно другое. На том же примере выше.Code local a = 1 local c = 2 Здесь переменной "а" присваивается значение 1, а переменной "с" значение 2. Оператор присваивания выполняет свои действия справа налево, т.е. в словесной форме вот такая запись:Читается так: Присвоить значение "единица" переменной "а".
Сообщение отредактировал ColR_iT - Суббота, 30.06.2012, 14:24
|
|
Суббота, 30.06.2012, 14:18
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
25.05.2012 |
|
|
|
|
Суббота, 30.06.2012, 14:19
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
01.01.2012 |
|
|
|
|
|
BozKurt
Суббота, 30.06.2012, 14:27 | Сообщение # 87
Статус: |
|
Опытный: |
|
Сообщений: |
1753 |
Награды: |
3 |
Регистрация: |
25.05.2012 |
|
Earthworm-Jim, так ты пиши, что конкретно не понятно.
Сообщение отредактировал ColR_iT - Суббота, 30.06.2012, 14:27
|
|
Суббота, 30.06.2012, 14:27
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
25.05.2012 |
|
|
|
|
|
Michman
Суббота, 30.06.2012, 14:30 | Сообщение # 88
Статус: |
|
Новичок: |
|
Сообщений: |
303 |
Награды: |
2 |
Регистрация: |
16.06.2011 |
|
ColR_iT, спасибо. И еще один вопрос по выражениям. Просматривая справочное руководство по Lua я не нашел массивов. Они есть не присутствуют или заменяются таблицей?
Сообщение отредактировал Michman - Суббота, 30.06.2012, 14:40
|
|
Суббота, 30.06.2012, 14:30
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
16.06.2011 |
|
|
|
|
|
Статус: |
|
Опытный: |
|
Сообщений: |
2561 |
Награды: |
3 |
Регистрация: |
01.01.2012 |
|
ColR_iT, а что я могу спросить, если я не скрптер? То что мне надо знать я прочитаю на сайтах о LUA.
|
|
Суббота, 30.06.2012, 14:40
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
01.01.2012 |
|
|
|
|
|
BozKurt
Суббота, 30.06.2012, 14:57 | Сообщение # 90
Статус: |
|
Опытный: |
|
Сообщений: |
1753 |
Награды: |
3 |
Регистрация: |
25.05.2012 |
|
Michman, как таковых массивов в Lua нет, их роль выполняют таблицы, причём смею заметить очень успешно. Таблицам думаю стоит уделить значимую часть одной из лекций, потому как в двух словах не объяснить. В качестве массива также может выступать строка, но об этом быстро тоже не получится.
|
|
Суббота, 30.06.2012, 14:57
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
25.05.2012 |
|
|
|
|