Миничат

AnnTenna 2 дн. даже не верится что завтра уже 1 мая
poca 3 дн. А вот и среда =)
AnnTenna 4 дн. Ничего скоро уже майские...
MarsKnight 24.04.2026 18:48 Пережили эту рабочую недельку, пора пепечилить)
poca 24.04.2026 03:26 o_O пасиб за ссыль, похождения зелёной какахи доставили :D Ёмаё, куда катится игропром? =_=
Kerotan 24.04.2026 00:43 https://www.youtube.com/watch?v=vdUo12Zb1FU&t=5194s
Kerotan 24.04.2026 00:43 Из наших видел на RPG Maker Showcase 2026 - Exellent Award - "Heroines of Swords & Spells 2" (Best Comment Award) 1:00:03
Jas6666 23.04.2026 20:14 В принципе сами разработчики мейкера каждый год проводят "Фестиваль RPG Maker" вбей в поиск, выдаст страницу в стиме, там игры. сам уж решай стоящие ли игры, просто по отзыва
tim103 23.04.2026 15:05 Слушайте, а есть за последнее время вообще какие-то прорывные игры, которые в какой-то степени выстрелили в стим, и написанные на Rpg Maker? Если не считать старые проекты, по типу to the moon?
AnnTenna 23.04.2026 14:56 у нас жесть а не погодка)
AnnTenna 23.04.2026 14:45 доброго дня) как у вас погодка?)
ajir 20.04.2026 11:44 Phavn: Отлично!
Phavn 20.04.2026 10:54 Спасибо помогло. Вышел - куки данного сайта стёр - зашёл - заработало.
ajir 20.04.2026 10:37 Phavn: Если и это не помогает, не видишь - значит увы сбой с залогиниванием на форуме, попробуй очисть все данные сайта в браузере, залогиниться на первой странице сайта, перейти на форум, перейти в нужный подфорум и создать тему.
ajir 20.04.2026 10:35 Phavn: "Форум Светлая Зона и Академия RPG Maker Свободный Новая тема Темы прочитаны Подписаться" т.е. ищи "Новая тема".
Phavn 20.04.2026 10:10 Привет всем, кажется я уже спрашивал когда-то об этом — но как мне создать тут новую тему на форуме? Я их уже создавал, но теперь кнопки "создать тему" не вижу.
VaNyuHa 18.04.2026 05:33 мда... писал писал, а оказывается длинные смс нельзя, хах! В общем, понимаю, что можно через общие события и переменные было указывать координаты событий и игрока, и если мое нужное условие выполняется - активировать событие, но на этот раз просто решил узнать способ проще, вот и все)
VaNyuHa 18.04.2026 05:30 MarkerIl, согласен, этим мне и нравится rpgmv. Фантазия есть, в своей игре уже много головоломок на разную тему реализовал через общие события и встроенные функции. Но из-за работы и семьи мало времени на это... так что бывает в свободное время на работе сразу на черновике прописываю то, как будет работать задуманная головоломка, например (вращающи
MarkerIl 17.04.2026 16:12 VaNyuHa для такого есть параллельные события. Как бы, почти все базовые необходимые функции решаются ивентами и фантазией.) Все же, в первую очередь, Мейкер - это конструктор. И так как мне больше нравятся ивенты, чем скрипты, я и предложил такой вариант.
MarkerIl 17.04.2026 16:12 VaNyuHa для такого есть параллельные события. Как бы, почти все базовые необходимые функции решаются ивентами и фантазией.) Все же, в первую очередь, Мейкер - это конструктор. И так как мне больше нравятся ивенты, чем скрипты, я и предложил такой вариант.

aliases

Программист Ruby Коммерсант Проект года 1 место Учитель Проект месяца 1 место
Больше
11 года 8 мес. назад - 11 года 8 мес. назад #72754 от Iren_Rin
Iren_Rin создал тему: aliases
Не нашел такой темы, а тема важная, для мейкера. Для скриптеров со стажем это наверное будет не очень интересно.
И так, что такое alias - в руби это просто напросто ссылка на метод, когда вы хотите чтобы ваш метод отзывался и на другое (третье, четвертое...) имя.
Code:
class Fireblast def damage 100 end alias dmg damage end spell = Fireblast.new spell.damage #=> 100 spell.dng #=> 100
Алиасы можно объявить при помощи alias и alias_method. Первый является ключевым словом, и может принимать в себя имена методов как есть (не строки и не символы, а просто имена), второй - приватный метод объектов Class / Module, он принимает строки \ символы, разделенные запятыми (как обычный метод).
В обоих случаях первым следует передовать имя нового метода, вторым - имя оригинала.
Code:
class Fireblast def cast_time 1 end alias_method :delay, :cast_time end
Допустим есть у вас в мейкере класс Fireblast, допустим вы хотите внести в его изменения: хотите чтобы он кроме урона делал еще что нибудь (выводил сообщение на STDOUT для примера.) Как это сделать? Первый способ - и самый плохой по совместительству - это найти этот класс \ метода и все исправить на месте. Если будете так делать в итоге что нибудь сломаете в оригинальных скриптах и будете долго думать, как все починить. Второй - использовать возможность руби переопределять код налету, и написать в новом скрипте (сделать патч) как-нибудь так:
Code:
class Fireblast def damage puts 'Fireblast#damage called' 100 end end
Это будет работать, но вы только что сделали дубликат кода - цифра 100 встречается в двух местах - в оригинальном методе, и в вашем патче. Это особо не страшно если вам нужно только одну строчку дублировать. А если их там с десяток? Тогда лучше использовать такую странную особенностью руби как alias chain. Суть в том, что когда вы делаете алиас при помощи alias (alias_method) руби на саом деле копирует метод, а не просто добавляет ссылку. Это неприятно на первый взгляд, зато позволяет делать так:
Code:
class Fireblast alias original_cast_time cast_time #мы сделали копию cast_time и назвали ее orignal_cast_time def cast_time #переопределяем метод cast_time puts "Fireblast#cast_time called" # добовляем новый функционал original_cast_time # вызываем старый метод end end spell = Fireblast.new spell.cast_time #=> выведет на STDOUT сообщение и вернет 1
Многие скрипты, которые модифицируют методы оригинальных классов, делают это именно так.

Так же объясню как делать алиасы к методам модуля.
Модуль можно использовать двумя способами, первый способ - когда нужно подмешать (Mixin) методы в свой класс:
Code:
module Words def bye puts 'good bye' end end class Test include Words end Test.new.bye #выведет на STDOUT good bye

Допустим вы хотите сделать alias chain для этого модуля. Вы можете сделать это так же как и для классов:
Code:
module Words alias original_bye bye def bye puts "I say you" original_bye end end Test.new.bye #выведет два сообщения на STDOUT

Но гораздо лучше использовать стандартное наследование:
Code:
class Test include Words def bye puts "I say you" super #это работает как для классов, так и для модулей, подключенных через include end end Tew.new.bye #выведет все так же две строки на STDOUT

Так же модуль можно использовать как контейнер для функций (у меня ниразу не было надобности использовать модули так, я всегда находил повод сделать класс)
Code:
module Words def self.greetings puts 'hello' end end Words.greetings #выведет hello на STDOUT
И когда вы хотите сделать alias chain для такой функции начинаются интересные дела. Есть несколько способов это сделать, больше всего мне нравится такой:
Code:
module Words instance_eval do alias original_greetings greetings def greetings puts 'I say you' original_greetings end end end Words.greetings #выведет 2 строки на STDOUT
Что такое instance_eval я обязательно расскажу, когда буду говорить о метапрограммировании.

Тут информация о том как это нужно делать в руби 2.1.2. Алиасы там все еще работают так же, как и в ранних версиях, но появился путь, значительно более прозрачный.

ВНИМАНИЕ: Спойлер!
Последнее редактирование: 11 года 8 мес. назад пользователем Iren_Rin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
11 года 8 мес. назад #72756 от DeadElf79
DeadElf79 ответил в теме aliases
собственно, да, наконец-то отдельная тема. а то я свою так и не вытащил из обсуждения, да)
спасибо, кстати, не знал разницы между alias и alias_method и всегда использовал только первый ^_^

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 8 мес. назад #72757 от Amphilohiy
Amphilohiy ответил в теме aliases
Буквально один из первых вопросов, с которым я влетел на этот форум - как алиасить модули? Добавь и эту плюшечку, будет полезно.
ВНИМАНИЕ: Спойлер!

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
11 года 8 мес. назад #72760 от DeadElf79
DeadElf79 ответил в теме aliases
кстати, про заметку амфилохия - что это значит и зачем оно нужно? класс под модулем, хм..?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 8 мес. назад #72761 от Amphilohiy
Amphilohiy ответил в теме aliases

DeadElf79 пишет: кстати, про заметку амфилохия - что это значит и зачем оно нужно? класс под модулем, хм..?

Врыв в объект как в одиночку. Так, например, можно поменять метод уже существующего объекта с существующим классом, не меняя остальные. Если позволите, ссылка на stackoverflow.com .

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Коммерсант Проект года 1 место Учитель Проект месяца 1 место
Больше
11 года 8 мес. назад #72762 от Iren_Rin
Iren_Rin ответил в теме aliases
Я внесу добавление в тему вечером. Если в кратце это способ добавить алиасы к методом модуля (к тем что определены через self). Согласен, оно немного сбивает с толку, лучше все таки использовать instance_eval {}

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Коммерсант Проект года 1 место Учитель Проект месяца 1 место
Больше
11 года 8 мес. назад #72813 от Iren_Rin
Iren_Rin ответил в теме aliases
Добавил про модули в первый пост.
Спасибо сказали: DeadElf79, Amphilohiy

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
10 года 2 мес. назад - 10 года 2 мес. назад #90060 от DesKarD
DesKarD ответил в теме aliases
В общем прочёл статью, вроде понял.
Как начинаю пробовать прочитанное запечатлеть в код ничего не выходит.
Code:
class Game_Event < Game_Character alias new_update_self_movement update_self_movement if @stop_count > stop_count_threshold end end

Ошибка


Куда я не так пихаю?

Золотой сборник цитат Светлой

Помогите Юриолю потушить его попчанский
Последнее редактирование: 10 года 2 мес. назад пользователем DesKarD.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место 3 место в Кодировке 2 место Организатор конкурсов
Больше
10 года 2 мес. назад #90061 от Волчонок
Волчонок ответил в теме aliases

DesKarD пишет: stop_count_threshold


У тебя эта переменная нигде в теле функции не определена. Или я чего-то не помню.

DesKarD пишет: Куда я не так пихаю?


#янепошлый

Ленивый волчонок с большими амбициями

Рассказ "Рождение мага" , периодически обновляется
РПГ История Егеря . Основной текущий проект.

ВНИМАНИЕ: Спойлер!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
10 года 2 мес. назад #90063 от Cerberus
Cerberus ответил в теме aliases
Начнём с того, что этот код ничего не переопределяет. Он только делает копию события и задаёт условие, при котором что-то могло бы быть сделано, но, так как в момент проверки условия (т.е. при создании класса, до начала работы основной программы) переменная @stop_count не инициализирована - условие бессмысленно. Продолжим - да, тем, что забывать про @ нельзя, @stop_count_treshold и stop_count_treshold - это две абсолютно разные вещи.

Жуть болотная, на лапках, в тапках и с пулемётом...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
10 года 2 мес. назад #90068 от DeadElf79
DeadElf79 ответил в теме aliases
Дес, я специально на этот случай расписывал более просто, держи: rpg-maker.info/forum/fakultet-skriptov/6...nie-protivnika#89910 Прочти и сделай по примеру ^_^
Спасибо сказали: DesKarD

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.103 секунд
Работает на Kunena форум