Четверг, 30 Сентября 2010 16:37

Введение в RGSS и Ruby - Глава 1

Автор  Dubealex
Оцените материал
(4 голосов)

Автор - Dubealex

Перевод - Preston

Введение в RGSS и Ruby - Глава 1


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

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

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

Также советую заглянуть в справочник по RGSS , там я собрал весь исходный синтаксис который даёт возможность RGSS манипулировать всем и вся, (в скором будущем тоже переведу, так что ждите).

1- Что такое Ruby?

*Цитата из RubyCentral:

Ruby - это совершенно новый, поистине объектно-ориентированный язык программирования. На западе этот язык стал известен относительно недавно, хотя в Японии он приобрёл толпы поклонников и почти превзошел Python по популярности.

 

Что делает Ruby таким популярным? Ruby вобрал в себя все лучшие качества передовых языков программирования в единое целое.

Ruby это:

Мощь -- Ruby сочетает в себе все лучшие черты классического OO языка Smalltalk с выразительными возможностями и удобством такого скриптового языка как Perl. Программы, написанные на языке Ruby очень компактны, не теряя при этом в качестве.

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

Понятность -- Ruby освободит вас от муторной борьбы с компилятором. Ruby не стоит у вас на пути при решении конкретных проблем.

Доступность -- У языка Ruby открытый код и он свободно доступен как для разработки, так и для внедрения. В отличие от других новых языков Ruby не ограничивает вас в рамках определённой платформы или производителя. Вы можете использовать Ruby под Unix или Linux, Microsoft Windows, или же специализированные платформы как BeOS и прочие.

Ruby доставит вам массу удовольствий в программировании. Когда последний раз вы получали удовольствие от написания программы; от программы, которая запускалась в первые; от программы, которую вы сможете прочитать через неделю, месяц или даже через год и будете в точности помнить как она работает? Мы считаем, что Ruby как глоток свежего воздуха в мире программирования. Все программисты, опробовавшие Ruby остались довольны.

[...]

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

[...]

Как и Perl, Ruby хорош в обработке текста. Как и Smalltalk, всё в Ruby является объектом, также Ruby имеет блоки, итераторы, мета-классы и прочие вкусности.

Вы можете использовать Ruby для написания серверов, экспериментировать с прототипами, или использовать его в повседневных задачах программирования. Как полностью-интегрированный ОО язык, Ruby обхватывает всё.


Возможности Ruby:

Простой синтаксис,

Базовые возможности OO (классы, методы, объекты и т.п.),

Специализированные возможности OO (Mix-ins, одноэлементные методы, переименование, ...),

Перегрузка операторов,

Обработка ошибок,

Итераторы и замыкания,

Сбор мусора,

Динамическая загрузка (в зависимости от архитектуры),

Высокая мобильность (идёт на разных Unices, Windows, DOS, OSX, OS/2, Amiga, и т. п.)

Как видите Ruby - это объектно-ориентированный язык программирования; далее мы рассмотрим, что же всё-таки такое объектно-ориентированный язык программирования. Тот факт, что Ruby имеет открытый код, позволит вам свободно скачать все необходимые инструменты для написания на нём программ. Здесь вы сможете найти все доступные для скачивания инструменты с официального сайта Ruby.

2- История Ruby


*Цитата из RubyCentral:


Ruby создал Юкиширо Мацумото (Yukihiro Matsumoto (who goes by the handle matz )) Находящийся под впечатлением от Perl, Мацумото решил дать своему новому языку название драгоценного камня и в итоге назвал его Ruby в честь камня соответствующего знаку зодиака своего коллеги.

Позже он узнал, что Ruby во многом является последователем Perl. В камнях, соответствующих знаку зодиака, жемчуг(pearl) - июнь, рубин(ruby) - июль. Измеряя размеры шрифта, оказалось, что pearl - 5pt, ruby - 5.5pt. Он решил, что Ruby самое подходящее имя для языка новее (и, мы надеемся, лучше) чем Perl.

[...]

Далее следует цитата из поста Мацумото на Ruby Talk:

Итак, Ruby появился на свет 24 Февраля 1993 года. Я разговаривал с моими коллегами о возможностях объектно-ориентированных скриптовых языков. Я знал Perl (Perl4, а не Perl5), но в целом он мне не нравился, так как вызывал ощущение игрушечного языка (и до сих пор вызывает). Идея объектно-ориентированного скриптового языка казалась мне очень многообещающей .

Я также знал Python. Но он тоже мне не понравился, так как, по моему мнению, он не являлся истинным объектно-ориентированным языком; возможности OO фигурировали как дополнение к языку. Мне безумно нравилась идея OOП, и я был её фанатом в течение 15 лет, я действительно мечтал о настоящем объектно-ориентированном, лёгком в использовании скриптовом языке программирования. Я искал, но так и не нашел .

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

Затем я реорганизовал функции языка Perl в библиотеку классов и реализовал их в Ruby. Я выложил Ruby 0.95 на отечественных форумах в декабре 1995 года .

3- Что такое Объектно-Ориентированный или OO?

Объектно-Ориентированный язык - это язык, в котором всё с чем вы манипулируете - это Объект . 

(Примечание: язык является набором синтаксиса, терм, правил и структуры, который используется чтобы создать программу. C++, Java и Ruby это всё языки .)

Всех ОО языкы объединяет базовая структура, в которой они оперируют. OO язык включает в себя следующие основные компоненты/функции:

-Классы
-Методы
-Сообщения
-Аргументы
-Переменные/Константы

 

Пояснение к диаграмме:
- Класс содержит описание переменных и методов.
- Метод содержит описание переменных и код .
- Сообщение может содержать аргументы.
- Объект является экземпляром класса.
- Объект сообщается по средствам Сообщений или Аргументов.

Пример Экземпляров Объекта:
Предположим, что класс - это автомобильный завод, а объект - это машины, которые он выпускает. Автомобильный завод содержит в себе все необходимые функции для производства машин, а каждая машина рассматривается как отдельный экземпляр одной и той же вещи. Экземпляры машин являются разными объектами и могут быть изменены в отдельности друг от друга. Когда авто компании требуется поставить на конвейер новую машину они просто заказывают фабрике новую машину; так как завод(класс) уже существует, это экономит время и вам не нужно каждый раз вручную переделывать каждую машину (объект).

Пример Сообщения и Свойств Объекта:

Когда вам необходимо получить доступ к свойствам объекта, вам нужно отправить сообщение к нему, чтобы он в свою очередь отправил вам свой ответ -- Также, если вы хотите изменить свойства объекта вы, опять же, отправляете ему сообщение, чтобы изменить его. Например, в RPG Maker XP у героя есть множество свойств, таких как Имя , Жизни и Уровень . Когда вы открываете главное меню во время игры вы видите все эти свойства(Уровень, Имя и Жизни) на экране. Перед тем как отобразить эту информацию RPG Maker XP посылает сообщение к объекту Герой с запросом о его свойствах.

Метод фактически определяет, какие сообщения объект будет в состоянии получить, и что делать, когда он их получит. Таким образом, объект связан со своим создателем (классом) и всякий раз, когда сообщение отправляется к объекту или принимается от него, приводится в действие метод в классе, отвечающий за этот объект.

Вернёмся к примеру с героем: Таким образом, класс, определяющий Героя в RPG Maker XP, имеет метод для каждого сообщения, которое Вы можете послать его экземплярам объектов. К примеру, метод с названием name будет отвечать за имя нашего героя и всякий раз, когда нужно будет вывести или изменить имя героя, то все сообщения будут проходить через этот метод.

4- Что такое RGSS?


RGSS сокращение от Ruby Game Scripting System что означает Игровая Система Скриптов Ruby . RGSS использует язык Ruby, так что если вы знаете Ruby - вы знаете RGSS. Разница между Ruby и RGSS состоит в том, что RGSS является Скриптовым языком который использует уже созданные компоненты. В чистом Ruby, если вам, к примеру, нужно вывести на экран картинку вы не сможете пользоваться тем же синтаксисом что и в RPG Maker XP RGSS, вам придётся прописать все функции с нуля.

Пример кода RGSS для отображения картинки (Позже мы подробно рассмотрим этот пример):

image = Sprite.new
image.bitmap = RPG::Cache.picture(имя картинки)

Таким образом вам необходимо всего 2 строчки кода чтобы вывести картинку на экран, так как вы используете класс под названием Sprite который уже запрограммирован в RPG Maker XP (Не доступен в Редакторе Скриптов (Script Editor).) Так же вы используете модуль RPG, который тоже недоступен в Редакторе Скриптов (Script Editor). Всё это упрощает вам работу и позволяет быстрее программировать свои игры.

Но так как RGSS использует Ruby, и RPG Maker XP использует Ruby (Версия 1.8.1), вы можете написать полностью новый класс Sprite и использовать его или даже добавить в него новые функции.

Итак, всё это значит что RGSS гораздо проще чем Ruby, так как все операции низкого уровня обрабатываются посредствам RPG Maker XP и вам не нужно их прописывать самим.

(Примечание: операция низкого уровня означает весь код который вы должны были бы написать, чтобы показать картинку, обратиться к машине (к Windows), чтобы прочитать файл, показать файл, и т.д.)

5- Редактор Скриптов RPG Maker XP (RPG Maker XP Script Editor)

В RPG Maker XP есть встроенный Редактор Скриптов (Script Editor) который позволяет вам редактировать/добавлять так называемые Скрипты . Все скрипты - это код RGSS (Использующий синтаксис и возможности Ruby) который позволяет вам добавлять или изменять возможности в RPG Maker XP. Когда вы открываете Редактор Скриптов (Script Editor), вы видите что в нём уже содержится множество Скриптов ; всё это стандартные скрипты, которые дают жизнь стандартным играм. В Enterbrain все скрипты классифицировали по Классам . Для каждого класса выделена отдельная страница (хотя вы можете смешать сразу несколько классов на одной странице.)

Для того чтобы открыть редактор скриптов нужно нажать F11 или выбрать в меню секцию Tools и там выбрать Script Editor или же просто нажать на иконку Script Editor в панели инструментов.

Название класса не имеет ничего общего с названием страницы. И оно не обязательно должно быть таким же как и название класса. Как я говорил ранее на одной странице может находиться сразу несколько классов.

Цвет кода:

Далее приведён список цветов, которые используются для удобства работы в редакторе.

Синий:
Синим цветом обозначаются зарезервированные слова как def, class, end, when, if, case, и т.п.

Красный:
Красным цветом обозначаются числа.

Голубой:
Голубым цветом в коде выделяются операторы и операнды. К ним относятся =, ||, + и *.

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

Фиолетовый:
Фиолетовым цветом окрашиваются все текстовые (строковые) элементы кода.

Функции Редактора Скриптов:

Редактор скриптов RPG Maker XP наделён базовыми функциями, как Поиск, Замена и Перемещение к строке. Далее идёт список всех опций. 

Функции Просмотра:
(Правый клик в окне Просмотра Кода чтобы увидеть все функции)
- Базовые функции Вырезать/Копировать/Вставить/Отмена последнего действия.
- Поиск (Ctrl+F)
- Замена (Ctrl + H) 
- Перейти к строке (Ctrl + G)
- Приближение/Отдаление при помощи Ctrl+Колёсико Мыши 

Функции Списка Страниц:
(Правый клик в окне Списка страниц чтобы увидеть все функции)

- Базовые функции Вырезать/Копировать/Вставить
- Добавить страницу (Insert)
- Удалить страницу(Delete)
- Поиск (Ctrl + Shift + F)

Также следует обратить внимание на возможности редактирования названия страницы, строка которого находится в левом нижнем углу редактора скриптов. Оно воспринимает юникод и позволяет вам устанавливать выравнивание текста; наверное, потому что RPG Maker XP делали японцы.

6- Базовая терминология и синтаксис


Итак, пришло время наконец-то заняться кодом. Начнём с простого, дабы показать вам основной синтаксис и усвоить термины, которыми вы будете пользоваться в написании скриптов. Итак, напишем простенькую программку, которая по завершении будет выдавать нам сообщение I am therefore I m coded. . (Извините, что нарушаю традицию Hello World , но это было необходимо!)

class Say_Something

def initialize
print 'I am therefore I m coded'
end

end


Создайте новую страницу в редакторе скриптов, а затем перенесите в него код. Вы можете назвать страницу как угодно. (В нашем примере он будет называться Say Something ).

Итак, чтобы задействовать наш скрипт нам понадобится событие на карте которое будет выполнять класс. В этом событии вставьте команду Call Script (последний пункт на последней странице), и впишите туда следующее:

Say_Something.new

А теперь можете проверить как работает наш скрипт. Запустите игру и обратитесь к событию, должно выйти окошко с сообщением 'I am therefore I m coded'.

Итак, начнём объяснение всего что мы проделали (строка за строкой):

1 class Say_Something
2
3 def initialize
4 print 'I am therefore I m coded'
5 end
6
7 end


Строка 1: Мы задали новый класс под названием Say_Something .
Строка 3: Мы задали новый метод под названием Initialize .
Строка 4: Мы написали код, который будет выполняться всякий раз при обращении к методу initialize .
Строка 5: Здесь мы закрыли метод initialize зарезервированным словом END .
Строка 7: Здесь мы закрыли наш класс Say_Something зарезервированным словом END .


Метод initialize - это стандартный метод, который выполняется когда вы используете синтаксис .new, что мы и сделали в событии командой Call Script. Итак, вызвав скрипт командой Say_Something.new RPG Maker XP создал экземпляр класса Say_Something с сообщением new , что в свою очередь привело в действие метод initialize .

Как вы уже заметили всё, что объявляется, должно закрываться зарезервированным словом END. Это относится ко многим вещам в Ruby, и чтобы избежать путаницы стоит выделять части кода выступами. (См. пример ниже).

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

Ранее мы сказали, что всё в Ruby является объектом, но вам могло показаться, что никакого объекта из примера Say Something так и не вышло. На самом деле объект был, но он был удалён сразу же после пояления. Чтобы сделать постоянный объект вам нужно будет написать следующий код для вызова скрипта:

my_object = Say_Something.new


Это будет иметь тот же эффект, но на этот раз мы получим объект под названием my_object и принадлежщий классу Say_Something . Конечно, так как наш класс не делает ничего кроме вывода сообщения, нет смысла создавать для него отдельный объект.

Итак, давайте немного дополним наш класс Say_Something чтобы научиться использовать объекты, а также мы познакомимся с Аргументами . Замените код в Say_Something на следующий:

class Say_Something

attr_accessor :greeting
attr_accessor :name

def initialize(greeting, name)
@greeting=greeting
@name=name
end

def say
print @greeting +' '+ @name
end

end


Затем измените код вызова функции (правый клик и выберите Edit или нажмите пробел) в событии на следующий:

(Я пропустил пару строк чтобы было нагляднее.)

message1=Say_Something.new('Привет', 'Лёша')
message2=Say_Something.new('Привет', 'Петя')

print message1.name
print message2.name

message1.say
message2.say


Теперь можете запустить игру, и обратится к событию. Вы увидите 4 окошка с сообщениями, выходящих в заданном порядке. Первое окошко покажет name объекта message1 , второе покажет то же для message2 . Затем, 2 оставшихся окна выведут вам сообщения по методу say .

Таким образом, мы создали 2 объекта - message1 и message2 , которые являются двумя экземплярами Say_Something , которые могут быть изменены вне зависимости друг от друга.

Теперь объяснение что к чему, построчно:

01 class Say_Something
02
03 attr_accessor :greeting
04 attr_accessor :name
05
06 def initialize(greeting, name)
07 @greeting=greeting
08 @name=name
09 end
10
11 def say
12 print @greeting +' '+ @name
13 end
14
15 end


Строка 1: Мы задали класс под названием Say_Something .
Строка 3: Мы задали значение ATTR, то есть Атрибута. В этом плане Ruby очень удобен, так как мы можем просто использовать синтаксис ATTR_ACCESSOR, чтобы определить новый атрибут, который будет удобочитаем, и перезаписываем для каждого экземпляра объектов, созданного Say_Something . Итак, наш первый атрибут называется greeting , т.е. приветствие.
Строка 4: Мы задали ещё один атрибут со значением name , т.е имя .
Строка 6: Мы задали новый метод под названием initialize . Как говорилось ранее метод initialize запускается в первую очередь при создании нового объекта классом к которому он принадлежит. Потому мы поставили на этот метод Приёмник Аргументов чтобы он первым делом задал нужные нам значения аргументов, принимая данные из вне. В нашем случает этими аргументами (или атрибутами) являются приветствие и имя . Мы поместили приёмник аргументов в скобках справа от названия метода. Заметьте, что Приёмник Аргументов только принимает; названия используемое в скобках - это названия переменных, которые в последствии обзаведутся конкретными значениями.
Строка 7: Здесь мы задаём новую Переменную Экземпляра , которая будет принимать значение всех полученных значений greeting . (Переменная экземпляра всегда начинается со знака @ и используется в каждом методе данного класса, задаются в основном в методах.) Таким образом, полученное приёмником значение greeting помещается в переменную @greeting , которую можно будет использовать в другом методе.
Строка 8: То же самое что и в предыдущей, только с атрибутом name .
Строка 9: Закрываем метод initialize зарезервированным словом END.
Строка 11: Мы задали новый метод под названием say .
Строка 12: Тут мы прописали что произойдёт когда объект примет сообщение say . В нашем случае мы выводим содержимое @greeting , плюс пробел, плюс содержимое @name .
Строка 13: Закрываем метод say зарезервированным словом END.
Строка 15: Закрываем наш класс Say_Something зарезервированным словом END.

Теперь разберём что мы делали, вызывая скрипт:

1 message1=Say_Something.new('Привет', 'Лёша')
2 message2=Say_Something.new('Привет', 'Петя')
3
4 print message1.name
5 print message2.name
6
7 message1.say
8 message2.say


Строка 1: Создаём новый объект message1 который будет экземпляром Say_Something . А это значит, что всё что мы можем с ним делать определено в нашем классе Say_Something . Так как мы добавили Приёмник Аргументов в метод initialize класса Say_Something , нам нужно отправить туда эти аргументы или же RPG Maker XP закроется так и не получив их. Чтобы отправить аргумент классу, нужно вписать желаемые значения по порядку через запятую в скобках рядом с названием класса как показано в примере.
Строка 2: Делаем то же самое чтобы создать ещё один объект под названием message2 .
Строка 4: Используем команду Ruby print чтобы вывести название содержащееся в объекте message1 . Как видите, всё довольно просто, вы можете получить доступ к атрибутам (свойствам) объекта используя необходимый атрибут указанный в ATTR класса.
Строка 5: То же самое для message2 .
Строка 7: Теперь отправляем сообщение say нашему объекту message1 . Можете называть это командой , если пожелаете. Итак, вы сообщили объекту message1 чтобы тот выполнил его функцию say ; затем message1 произвёл поиск по своему классу Say_Something чтобы убедиться что такая команда задана... А она задана, и объект произвёл действие указанное в классе, то есть вывел нужный текст на экран.
Строка 8: То же самое для message2 .

7- Заключение

Теперь вы знаете как выглядит основная структура программ Ruby, а также знаете всё что понадобится для изучения Второй Главы этого урока

Прочитано 6008 раз Последнее изменение Среда, 12 Января 2011 12:32
Другие материалы в этой категории: Синтаксис RGSS »

2 комментарии

  • Комментировать James Среда, 12 Января 2011 12:32 написал James

    Исправил

  • Комментировать gromdron Пятница, 03 Декабря 2010 15:16 написал gromdron

    Автор при переводе пропустил ковычки в результате код был написан неверно. Правильный фрагмент кода:

    class Say_Something

    attr_accessor :greeting
    attr_accessor :name

    def initialize(greeting, name)
    @greeting=greeting
    @name=name
    end

    def say
    print @greeting + ' ' + @name
    end

    end

    А вызов функции в свое время должен работать так:

    message1=Say_Something.new('Привет', 'Лёша')
    message2=Say_Something.new('Привет', 'Петя')
    print message1.name
    print message2.name
    message1.say
    message2.say

Авторизуйтесь, чтобы получить возможность оставлять комментарии

Форум Последние темы форума

Нет сообщений для показа

Миничат помощь - на форуме!

Последнее сообщение: 8 часов, 23 минут назад
  • avatar
    Masamune : And yes - you're right about that girl.
  • avatar
    Masamune : *this
  • avatar
    Masamune : I was talking about thus: «link»
  • avatar
    breezae : Masamune-sama, what you mean? I said that it is horrible to meet that girl... so what are you talking about?
  • avatar
    breezae : хосспати... это ж надо, по собственному желанию в калеки записаться... куда катиться молодёж?
  • avatar
    Allerent : А я не купил вие чудо нету денег =( , и да Джеймс это жутко обидно. Вот я долбанную термодинамику здаю , а вот физры нет ибо есть знакомства у предков в МинЗдраве (Городском естественно)
  • avatar
    James : Полтора часа назад начался бета-тест The Secret World и у меня есть ключ. Но, увы, вместо того, чтобы посмотреть на эту игру, мне приходится учить материал к самому абсурдному явлению в школе - теоретическому зачёту по физкультуре. Обидно...
  • avatar
    AnnTenna : блиин ничего не понимаю(
  • avatar
    Masamune : «link»
  • avatar
    Agckuu_Coceg : Screw the rules, I have money.
  • avatar
    Masamune : You know the rules and so do I
  • avatar
    Masamune : We're no strangers to love
  • avatar
    breezae : God bless the one, who will meet this girl face-to-face on a dark small street...
  • avatar
    Masamune : Now THAT's what I call "tsundere": «link»
  • avatar
    sando : «link»
  • avatar
    Allerent : О боги хаоса , ещё одно недоразумение в смертном теле. Кряк скачать нет?
  • avatar
    MJuice : Скажите код активации RPG Maker VX!!!
  • avatar
    AnnTenna : после нескольких зависаний удалось все-таки запостить на главную
  • avatar
    AnnTenna : отбой, голосование закончилось))
  • avatar
    AnnTenna : Нароод, голосуйте, сегодня последний день! Ваш голос может стать решающим! «link»
  • avatar
    breezae : Boring, huh? It is always boring here...
  • avatar
    Masamune : О! Так сегодня, оказывается, "День Фрилансера"... Впервые слышу. Что ж... поздравляю что ли всех фрилансеров. Freelance FTW!
  • avatar
    Masamune : Gee... It sure is boooring around here...
  • avatar
    Allerent : О нихнал тогда оставлю как есть.
  • avatar
    Agckuu_Coceg : Особенно в играх.
  • avatar
    Agckuu_Coceg : Волна вампиромании прошла несколько лет назад, вместе с манией на зомби.
  • avatar
    Allerent : тавить? Сейчас же волна вампиромании , и боюсь меня могут не так понять , он же не вампир, а маг крови.
  • avatar
    Allerent : Блин только сейчас понял что по скиллам , внешнему виду и двум формам Алекс вампир а не асура .... Кровь пьёт , летучих мышей сумонит , имеет хуман и анхуман форму ,а по причине того что он задрот и девственница ещё и солнце не особо переносит. По вашему что то менять или так и ос
  • avatar
    Allerent : TilesetMaker такая удобная прога , а я даже и не знад о существовании оной.
  • avatar
    Allerent : Да ничего страшного , зато я в Питере кроме каналов ещё цирк и штук 7000 - 7500 клоунов увидел (прозел на семинар AmWey).
  • avatar
    AnnTenna : поздно ты, конкурс уже на стадию голосования перешел..
  • avatar
    marenight : С возвращением! И - с праздником!
  • avatar
    Allerent : Всех с прошедшим великим днём , моя вернулся.
  • avatar
    marenight : Сижу и думаю - делать демоверсию мне пока рано, но - нужно что бы кто-то оцекнил удаётся ли в достаточной мере выдерживать стиль текста...
  • avatar
    James : Если кто не заметил - у нас там голосование в конкурсе злодеев идёт. Настоятельно рекомендую ознакомиться и проголосовать, а то как-то совсем глухо...
  • avatar
    BERUDA : sando: большое спасибо за подсказку)
  • avatar
    misha : как я понял это счётчик коментариев которые ты оставляешь к картинекам в галерее файлам в архиве и коментарии к новостям с главной страници
  • avatar
    LarryCS : мм, а что это такое, справа Меню автора. И тама "У вас 2 опубликованных комментариев"?
  • avatar
    AnnTenna : УРААА!
  • avatar
    misha : ВСЕХ С 9 МАЯ
  • avatar
    sando : BERUDA, находим materialbase (верхняя панель, tools) жмем импорт (вставляем нужную графику, в вашем случае баттлер, четвертая строка сверху), закрываем, заходим в database, enemies и меняем у нужного монстра графику (либо change maximum и добавить монстра к уже существующим).
  • avatar
    BERUDA : Очень прошу!Т_Т Подскажите, как поставить импортированных мною врагов в битву((? Ибо ставятся только стандартные((( Maker XP v.1.04
  • avatar
    ryoyuyalex : Выложил кавер на КапКома! Зацените плиз, нароооод! =)
  • avatar
    Agckuu_Coceg : ...си будут применять новый эффект.
  • avatar
    Agckuu_Coceg : Хотя, теоретически можно даже обходиться одним айтемом и коммон ивентом, который при использовании применяет созданный эффект на пользователе, но в этом случае необходимо ограничить ношение созданного айтема до одного - потому что иначе все созданные айтемы при перезапи
  • avatar
    Agckuu_Coceg : Nope. Я эти эффекты использую как что-то вроде зелий, только их нельзя носить и выпивать по дороге - они активируются сразу при создании. Иначе бы мне пришлось создавать несколько тысяч айтемов, а кому это надо...
  • avatar
    Allerent : Agckuu_Coceg зачем тебе столько эффектов? Для брони и оружия что ли?
  • avatar
    Agckuu_Coceg : Про блокираторы и визуальное оформление я молчу ввиду того, что это делается по дефолту.
  • avatar
    Agckuu_Coceg : Общее влияние трёх копмонентов на одну из шести статистических переменных колеблется от +100 до -50, в зависимости от выбранного набора. Каждый из наборов влияет на три-четыре из этих переменных, на каждую своим образом.
  • avatar
    Agckuu_Coceg : Учитывая тот факт, что второй ряд идентичен первому, у меня получается (24*12*2)-1 различных эффектов из (24*12^2)-1 различных наборов чисел.

Только зарегистрированные пользователи могут отправлять сообщения.