Миничат

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 для такого есть параллельные события. Как бы, почти все базовые необходимые функции решаются ивентами и фантазией.) Все же, в первую очередь, Мейкер - это конструктор. И так как мне больше нравятся ивенты, чем скрипты, я и предложил такой вариант.

Как из скрипта назначить глобальную переменную?

Больше
11 года 9 мес. назад - 11 года 9 мес. назад #71555 от greyf24
Сабж. Я пытался писать

$yres = 576 (где yres - имя переменной)

- не прокатывает. Глобальная переменная, которая назначается из эвента (или сама является ключом для эвента) - не меняется.
Последнее редактирование: 11 года 9 мес. назад пользователем greyf24.

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

Разработчик
Больше
11 года 9 мес. назад #71556 от Alexeyus
$yres = 576
$game_variables[1] = $yres

так как в руби = не просто оператор присваивания, но и оператор связывания.
при изменении $yres будет изменяться и $game_variables[1] (элемент класса глобального массива переменных).

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

+ теперь можно присваивать и не только числа (как это было в самом мейкере)!
$yres = 576
$game_variables[1] = $yres
$yres = "something"
$yres = Array.new(1,2,3)

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

Больше
11 года 9 мес. назад #71557 от greyf24
[1] - номер переменной?

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

Больше
11 года 9 мес. назад - 11 года 9 мес. назад #71558 от greyf24

Alexeyus пишет: $yres = 576
$game_variables[1] = $yres

так как в руби = не просто оператор присваивания, но и оператор связывания.
при изменении $yres будет изменяться и $game_variables[1] (элемент класса глобального массива переменных).

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

+ теперь можно присваивать и не только числа (как это было в самом мейкере)!
$yres = 576
$game_variables[1] = $yres
$yres = "something"
$yres = Array.new(1,2,3)


Что-то тут не пашет.
Я сделал ивент, который выводит текстом значения переменных - они равны нулю, то есть скрипт не смог назначить переменную.


Разобрался.

Оказывается, у меня в скрипте был порядок "назначить переменную и начать игру" - переменная обнулялась )
Правильный порядок - начать игру и назначить переменную.
Последнее редактирование: 11 года 9 мес. назад пользователем greyf24.

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

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
11 года 9 мес. назад #71559 от DeadElf79
выведено однажды опытным путем.

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

да и вообще, зачем оно надо?

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

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
11 года 9 мес. назад - 11 года 9 мес. назад #71560 от DeadElf79
переменная $yres это не $game_variables[4981] (который используется на скриншоте). это вообще отдельная переменная, взятая с потолка, буквально. :blink:
Последнее редактирование: 11 года 9 мес. назад пользователем DeadElf79.

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

Больше
11 года 9 мес. назад - 11 года 9 мес. назад #71561 от greyf24

DeadElf79 пишет: выведено однажды опытным путем.

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

да и вообще, зачем оно надо?


Объясню. переменная yres это не что иное как разрешение экрана по у.
У меня есть разрешения 576 по у и 768. И если мне надо отобразить в углу экрана рисунок (бюст героя), то привязка координаты по у зависит от разрешения в игре.

Данная проблема решена.
Последнее редактирование: 11 года 9 мес. назад пользователем greyf24.

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

Больше
11 года 9 мес. назад #71564 от greyf24
Не решена.

Вот мой скрипт. В нем есть красный и зеленый блоки. Если yres равен 768 - должен выполняться красный.
Если равен 576 или 0 - должен выполняться зеленый блок.

Однако на деле ВСЕГДА выполняется красный, в игре всегда 0 и 1, а не 1 и 0. То есть структура блоков тут не как в паскале.

Где моя ошибка?

def command_new_game
if $yres = 768 then DataManager.setup_new_game
$game_variables[4981] = 0
$game_variables[4982] = 1
end


if $yres != 768 then DataManager.setup_new_game
$game_variables[4982] = 0
$game_variables[4981] = 1
end


close_command_window
fadeout_all
$game_map.autoplay
SceneManager.goto(Scene_Map)
end

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

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
11 года 9 мес. назад - 11 года 9 мес. назад #71565 от DeadElf79
Последнее редактирование: 11 года 9 мес. назад пользователем DeadElf79.

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

Больше
11 года 9 мес. назад - 11 года 9 мес. назад #71568 от greyf24

DeadElf79 пишет: if $yres==768


Не канает. Причина совсем не в этом. Я же написал выше - дело в блоках. Руби не считает

if $yres = 768 then DataManager.setup_new_game
$game_variables[4982] = 1
$game_variables[4981] = 0

end

блоком. В приведенной ниже конструкции всегда срабатывает нижнее условие. Если поменять местами - начнет срабатывать все равно нижнее.

Вопрос был, как заставить синие команды НЕ ВЫПОЛНЯТЬСЯ, если условие не выполнено. С точки зрения Руби, синие строчки не имеют отношения к красной.

def command_new_game

if $yres == 768 then DataManager.setup_new_game
$game_variables[4982] = 0
$game_variables[4981] = 1
end
if $yres = 768 then DataManager.setup_new_game
$game_variables[4982] = 1
$game_variables[4981] = 0
end
close_command_window
fadeout_all
$game_map.autoplay
SceneManager.goto(Scene_Map)
end

Вот тут всегда выполняется нижнее действие.
Последнее редактирование: 11 года 9 мес. назад пользователем greyf24.

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

Проект года 3 место Проект года 2 место Разработчик Проект месяца 1 место
Больше
11 года 9 мес. назад - 11 года 9 мес. назад #71569 от JackCL

greyf24 пишет: Не канает.

Без разницы какой порядок - всегда выполняется условие переменная=768.


Это
Code:
if $yres = 768
всегда операция приравнивания, а не сравнения. Руби он такой.
При сравнении пользуйтесь ==
Последнее редактирование: 11 года 9 мес. назад пользователем JackCL.
Спасибо сказали: greyf24

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

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 9 мес. назад #71571 от Cerberus
Объясняю популярно. Строка if $yres = 768 делает следующее:
1) Присваивает переменной $yres значение 768.
2) Проверяет, не равен ли нулю результат (а он заведомо не равен).
3) Если не равен - исполняет команды, стоящие после if. Если равен - пропускает их.
Поэтому - всё-таки причина в этом.

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

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

Больше
11 года 9 мес. назад #71574 от greyf24
Вот теперь до меня дошло и все заработало :)
Спасибо :)

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

Оратор 1 место в Готв 3 место Готв 2 место Учитель Композитор Победитель конкурса Организатор конкурсов
Больше
11 года 8 мес. назад - 11 года 8 мес. назад #73268 от yuryol
Решил спросить в этой теме, дабы не создавать новую.
Многие наверное знаю скрипт FA Interactive System 2.0.
Там есть оружие Hookshot, длину которого можно задавать в 241-ой строчке скрипта, т.е. HookLong = 11.
Как сделать, чтобы это значение было не фиксированное число, а задавалось переменной?
Вот сам скрипт yadi.sk/d/DLufmr4Xajah6
А вот - демка автора этого скрипта yadi.sk/d/7s7k7YQnajXxn
Последнее редактирование: 11 года 8 мес. назад пользователем yuryol.

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

Программист Ruby Коммерсант Проект года 1 место Учитель Проект месяца 1 место
Больше
11 года 8 мес. назад - 11 года 8 мес. назад #73278 от Iren_Rin
Code:
FalInt::HookLong = 'new value' #Вставь это после скрипта.
Просто переопределит константу, получишь ворнинг в консоли на который можно забить.
Или вопрос с подвохом?
Последнее редактирование: 11 года 8 мес. назад пользователем Iren_Rin.

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

Оратор 1 место в Готв 3 место Готв 2 место Учитель Композитор Победитель конкурса Организатор конкурсов
Больше
11 года 8 мес. назад #73281 от yuryol
Вставил, демка не запускается, вылетает :unsure:
Мне надо, чтобы в игре было что-то вроде прокачки этого Hookshotа. То есть например сначала берешь его и его длина действия составляет 3 клетки. Затем че-нить подобрал и его длина стала 4 клетки и тд.
Подумал, что неплохо было бы, чтоб длина задавалась переменной, а не числом. Тогда можно будет в игре создавать события, активирую которые переменная увеличивалась на одну единицу.
Знаю, что переменная в скриптах задается как $game_variables[n], где n - номер переменной. В скриптах полный ноль, поэтому действовал методом тыка.

Попытался тупо приравнять HookLong = $game_variables[1], но вылетает ошибка.
Тогда изменил эту строчку на $HookLong = $game_variables[1],
1130-ую строчку изменил на for i in 1..$HookLong
1202-ую строчку изменил на if !hook_moving? and @showing_hook and hook.index == $HookLong and
Ошибка не выдавалась, но HookShot вообще перестал работать:(

Тогда попробовал другой способ -
1130-ую строчку изменил на for i in 1..$game_variables[HookLong]
1202-ую строку - на if !hook_moving? and @showing_hook and hook.index == $game_variables[HookLong] and
Ну и 241-ую строку изменил на HookLong = 1
Ошибки тоже нету, но снова не работает :unsure:

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

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
11 года 8 мес. назад - 11 года 8 мес. назад #73282 от DeadElf79
Code:
for i in 1..$game_variables[100]#HookLong @hookshot.push(Game_Hook.new(i)) end

строка 1130. управление теперь передано целиком на переменную 100, hooklong игнорится, ибо не нужен. не забудь назначить что-нибудь этой переменной в авторане!
Последнее редактирование: 11 года 8 мес. назад пользователем DeadElf79.
Спасибо сказали: yuryol

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

Программист Ruby Организатор конкурсов 2 место
Больше
11 года 8 мес. назад #73283 от Lipton
Если 241 строке поставить HookLong = $game_variables[100], то скорее всего будет ошибка так,как к моменту обработки данного модуля переменные game_variables еще не определены.

Изменение в 1130 строке цикла (for) то же мало что даст, так как этот участок кода инициализация переменных. То есть даже если это часть кода сработает после полной инициализации game_variables и даже будет дано значение той самой game_variables[100], то этот клок кода срабатывает один раз.
То есть при каждом новом вызове (при изменении game_variables[100]) нужно будет (скорее всего =) ) заново вызывать initialize_int_tools.

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

Оратор 1 место в Готв 3 место Готв 2 место Учитель Композитор Победитель конкурса Организатор конкурсов
Больше
11 года 8 мес. назад #73284 от yuryol
Так тоже делал, щас проверил еще раз, не работает:(
Или я просто не понимаю значение этой фразы "не забудь назначить что-нибудь этой переменной в авторане!".
Надо как-то это в скрипте сделать? А то я просто через событие приравнял переменную к трем. :unsure:

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

Оратор 1 место в Готв 3 место Готв 2 место Учитель Композитор Победитель конкурса Организатор конкурсов
Больше
11 года 8 мес. назад - 11 года 8 мес. назад #73285 от yuryol
При изменении 1130 строчки срабатывает звук, но ни анимации,ни действия нету. Видимо да, переменная не определена, поэтому ниче и не работает :cry:
То есть всё намного сложнее и проще бросить эту затею? :unsure:
P.S. сорри за два сообщения подряд, голова совсем уже не варит :blink:
Последнее редактирование: 11 года 8 мес. назад пользователем yuryol.

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

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