Wiki

Clone wiki

Everlasting-Summer-RpyPlayer / Language Reference



Текст

Оформление

  • {html} <текст> - включает поддержку HTML-тегов в тексте,
  • {big} <текст> {/big}, {small} <текст> {/small} - размер текста,
  • {center} <текст> - центрирование текста

Многострочный текст

Строки в RpyPlayer поддерживают экранирование символов (\' \" \n \r), а также, в отличие от оригинального RenPy, поддерживается многострочный текст. Пример:

#!python

sl "Добро пожаловать в лагерь \"Совёнок\""
sl 'Добро пожаловать в лагерь "Совёнок"'
me "Я к вам пишу – чего же боле?
Что я могу еще сказать?
Теперь, я знаю, в вашей воле
Меня презреньем наказать."
# то же самое, в одну строку
me "Я к вам пишу – чего же боле?\nЧто я могу еще сказать?\nТеперь, я знаю, в вашей воле\nМеня презреньем наказать."

Реплика без ожидания подтверждения

$ renpy.say(автор реплики, "Текст", interact=True|False)

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

#!python

$ renpy.say(mi, "Нет, честно-честно!", interact=False)
$ renpy.pause(0.1, hard=True)
$ renpy.say(mi, "Никто не верит, а меня правда так зовут.", interact=False)
$ renpy.pause(0.1, hard=True)

Имена персонажей

Функции для работы с именами персонажей:

  • $ make_names_unknown() - делает имена всех персонажей неизвестными. Ольга Дмитриевна будет называться вожатой, Виола - медсестрой, остальные - пионерами и пионерками.
  • $ make_names_known() - делает известными имена всех персонажей.
  • $ meet("короткое имя", "полное имя") или $ set_name("короткое имя", "полное имя") - назначает имя персонажу.
#!python

$ make_names_unknown()
$ meet('dv', 'ДваЧе')
$ meet("ht", "Helltar")
ht "Теперь ты знаешь больше!"

Пример в файле test.names.rpy


Изображения

Псевдонимы для спрайтов

Псевдонимы для спрайтов задаются с помощью оператора AS. Пример:

#!python

scene bg int_house_of_mt_day

show mt angry pioneer far at fleft as mtangry
show mt rage panama pioneer far at fright as mtrage
show mt surprise panama pioneer far at right as mtsurprise
show mt normal panama pioneer far at left as mtnormal
show mt smile pioneer at cleft as mtsmile
show mt grin pioneer at cright as mtgrin
show mt laugh pioneer close as babe

mt "Семён, ну чего ты стоишь? Принеси мешок сахара!!!"

hide mtangry
hide mtrage
hide mtsurprise
hide mtnormal
hide mtsmile
hide mtgrin
hide babe

Музыка и звуки

Музыка

Музыка может задаваться любым из трёх вариантов:

  1. play music music_list["название"]
  2. play music "название"
  3. play music название"

При этом будет проигрываться файл /music/название.ogg

#!python
play music music_list["meet_me_there"]
play music "no_tresspassing"
play music awakening_power

Звуки

Звук может быть повторяющимся и неповторяющимся. Первые задаются при помощи play sound название, вторые - play sound_loop название

При этом будет проигрываться файл /music/название.ogg

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

#!python
play sound sfx_dinner_jingle_speaker
play sound_loop head_heartbeat
play sound "sfx_open_water_sink"
Звуки берутся из папки /sfx/

Очередь воспроизведения

Можно формировать очередь воспроизведения из звуков или музыки. Если в этой очереди есть треки, то они будут проигрываться сразу после окончания текущего музыки/звука. Команда выглядит так:
queue music "название"

#!python
queue sound "bullet"
queue sound "bullet"
queue sound "bullet"
"Тишину нарушили три выстрела."
#!python
queue music music_list["meet_me_there"]
queue music "no_tresspassing"


Ветвление и переменные

Переменные

Переменные задаются после оператора команд $: $ имя_переменной = выражение
По умолчанию переменная имеет значение 0 оно же False.

#!python

$ new_d1_hanging_out_with_ussr = True
$ lenochka += 1
$ perimetr = a+b+c+d

Безусловные переходы (jump / label)

Переход на указанную метку. Метка задаётся так: label имя_метки:

#!python

play music music_list["everlasting_summer"]
label loop:
    pi "Семён, ты попал..."
    uv "...в бесконечное лето!"
    jump loop

Условный оператор

Как и в случае с меню, оператор IF следует завершать неренпаевским ENDIF. Синтаксис таков (ветка else необязательна):

#!python

if выражение:
     команды
else:
     команды
endif
#!python
if day2_dv_bet == 1:
    th "Значит, не зря я всё же с ней поспорил!"
endif

if persistent.hentai:
    scene cg d2_mt_undressed
else:
    scene black
endif

Меню

Меню задаётся так (заголовок необязателен):

#!python

menu: "заголовок"
  "вариант 1": команды
  "вариант 2": команды
endmenu

#!python
menu:
  "Сквиртл": me "Сквиртл, вперёд!"
  "Пикачу":
       me "Пикачу, я выбираю тебя!"
       show pchu at cleft
       pchu "Пика-пика"
  "Чаризард": me "Чаризард, задай им жару!!"
endmenu

Можно указывать заголовок для выбора

#!python

menu: "Куда направиться?"
"Медпункт": me "Да что я там забыл?!" jump day2_main4
"Пляж": jump day2_beach_eve
"Спортплощадка": jump day2_football_eve
endmenu

Поддерживается меню любой вложенности.

Карта

Функции для работы с картой:

  • $ disable_all_zones() - сбрасывает активные зоны. Функцию следует вызывать всякий раз перед установкой новых активных локаций.
  • $ set_zone("название локации", "метка") - активирует локацию для последующего выбора.
    Список локаций (спасибо BPS).
  • $ reset_zone("название локации") - убирает локацию из списка активных.
  • $ disable_current_zone() - убирает текущую локацию, к которой был выполнен переход.
  • $ show_map() - показывает диалог выбора локации.

Управляющие команды

Пауза

Паузы бывают двух типов:

  1. C возможностью пропуска $ renpy.pause(длительность в секундах)
  2. Без возможности пропуска $ renpy.pause(длительность в секундах, hard=True)

Updated