Войти на сайт

Авторизация, ждите ...
×

ТЕМА: (XP)простой скрипт ДЛЯ меню

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #20999

  • RaZoR
  • RaZoR аватар
  • Вне сайта
  • Познающий
  • Сообщений: 13
Я еще тока начинающий в RGSS Скриптах ...я сделал примерно такое
(кому нужно берите) Просто исправил в Scene_Title VVVV Найдите в скрипте # Make command window и Сразу после него вставляете этот скрипт ( до # * Command: New Game)

# Make command window
s1 = Новая игра
s2 = Загрузить
s4 = Создатели
s3 = Выход
@command_window = Window_Command.new(192, [s1, s2, s4, s3])
@command_window.back_opacity = 160
@command_window.x = 300 - @command_window.width / 2
@command_window.y = 300
# Continue enabled determinant
# Check if at least one save file exists
# If enabled, make @continue_enabled true; if disabled, make it false
@continue_enabled = false
for i in 0..3
if FileTest.exist?( Сохранение#{i+1}.rxdata )
@continue_enabled = true
end
end
# If continue is enabled, move cursor to Continue
# If disabled, display Continue text in gray
if @continue_enabled
@command_window.index = 1
else
@command_window.disable_item(1)
end
# Play title BGM
$game_system.bgm_play($data_system.title_bgm)
# Stop playing ME and BGS
Audio.me_stop
Audio.bgs_stop
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of command window
@command_window.dispose
# Dispose of title graphic
@sprite.bitmap.dispose
@sprite.dispose
end
#
# * Frame Update
#
def update
# Update command window
@command_window.update
# If C button was pressed
if Input.trigger?(Input::C)
# Branch by command window cursor position
case @command_window.index
when 0 # New game
command_new_game
when 1 # Continue
command_continue
when 3 # Shutdown
command_shutdown
when 2 #Создатели
command_autors
end
end
end
end

#И вставьте это в любое место после скрипта в Scene_Title

def command_autors
p ТуТ Вписывайте СвоЁ
end
#end
Я думаю понятно объяснил....Просто добавлена новый отдел в Главном Меню...
Если что, пишите в ЛС ...отвечу всем :)
Администратор запретил публиковать записи гостям.

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21001

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
А почему не сделал чтобы в окне проекта открывалось, или хотя бы в сообщении. Народ шугаться будет мессаги, думать, что сообщение об ошибке.
Так а теперь перейдем к ошибкам: Возможно я немного перебарщиваю, не обижайся. Если вставлять после Scene_Title, то я так понимаю, что перед последним end. Придется дать название первому определению метода (main), и дописать все, что идет до строчки #Make command window, правда это мене важно если ставить скрипт по твоим рекомендациям.

Вот тебе бесплатный совет: Скопируй скрипты которые собираешся редактировать, вставляй перед скриптом main, и редактируй их уже там. Удаляй не измененные определения методов, и наслаждайтся.

Успехов в начинании!!!  ;)
Чем сложнее задача - тем проще ее не решать.

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

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21013

  • RaZoR
  • RaZoR аватар
  • Вне сайта
  • Познающий
  • Сообщений: 13
ясн...

Успехов в начинании!!! спс :)
Администратор запретил публиковать записи гостям.

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21015

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Если будут вопросы по скриптингу, обращайся!!! ;)
Чем сложнее задача - тем проще ее не решать.

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

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21039

  • RaZoR
  • RaZoR аватар
  • Вне сайта
  • Познающий
  • Сообщений: 13
ну да ...вот целый день мучаюсь ничего путного не получается
почему не сделал чтобы в окне проекта открывалось, или хотя бы в сообщении - подскажи что писать то надо в скриптах? хочу сообщение вызвать - не получается.
Администратор запретил публиковать записи гостям.

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21045

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Ну чет типо такого...

$game_temp.message_window_showing = true
$game_temp.message_text = ( Первая строчка \n вторая строчка )

\n перенос строки )))
Чем сложнее задача - тем проще ее не решать.

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

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21047

  • RaZoR
  • RaZoR аватар
  • Вне сайта
  • Познающий
  • Сообщений: 13
def command_autors
$game_temp.message_window_showing = true а ты уверен что тут всё правильно? пишет ошибку(
$game_temp.message_text = ( ### )
end
Администратор запретил публиковать записи гостям.

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21049

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Так уж получилось, для того чтобы эти строки заработали в титульнике придется определить объект @message_window. Ниже приведен код, где жирным шрифтом выделены необходимые строки.


[cut=Scene_Title]

#==============================================================================
# : Scene_Title
#

#  This class performs title screen processing.
#==============================================================================

class Scene_Title
  #
  # : Main Processing
  #

  def main
    if $BTEST
      battle_test
      return
    end
   
    $data_actors        = load_data( Data/Actors.rxdata )
    $data_classes       = load_data( Data/Classes.rxdata )
    $data_skills        = load_data( Data/Skills.rxdata )
    $data_items         = load_data( Data/Items.rxdata )
    $data_weapons       = load_data( Data/Weapons.rxdata )
    $data_armors        = load_data( Data/Armors.rxdata )
    $data_enemies       = load_data( Data/Enemies.rxdata )
    $data_troops        = load_data( Data/Troops.rxdata )
    $data_states        = load_data( Data/States.rxdata )
    $data_animations    = load_data( Data/Animations.rxdata )
    $data_tilesets      = load_data( Data/Tilesets.rxdata )
    $data_common_events = load_data( Data/CommonEvents.rxdata )
    $data_system        = load_data( Data/System.rxdata )
    $game_system = Game_System.new
    $game_temp = Game_Temp.new
    @sprite = Sprite.new
    @message_window = Window_Message.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    s1 = New game
    s2 = Continue
    s4 = Autors
    s3 = Shutdown
    @command_window = Window_Command.new(192, [s1, s2, s4, s3])
    @command_window.back_opacity = 160
    @command_window.x = 300 - @command_window.width / 2
    @command_window.y = 300
    @continue_enabled = false
    for
i in 0..3
      if FileTest.exist?( Save#{i+1}.rxdata )
        @continue_enabled = true
      end
    end
    if
@continue_enabled
      @command_window.index = 1
    else
      @command_window.disable_item(1)
    end
    $game_system.bgm_play($data_system.title_bgm)
    Audio.me_stop
    Audio.bgs_stop
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end

    Graphics.freeze
    @message_window.dispose
    @command_window.dispose
    @sprite.bitmap.dispose
    @sprite.dispose
  end
  #
  # : Frame Update
  #

  def update
    @command_window.update
    @message_window.update
    if $game_temp.message_window_showing
      @command_window.active = false
      return
    else

      @command_window.active = true
    end

    if Input.trigger?(Input::C)
      case @command_window.index
      when# New game
        command_new_game
      when# Continue
        command_continue
      when# Shutdown
        command_shutdown
      when# Autors
        command_autors

      end
    end
  end

  #
  # : Command: Autors
  #

  def command_autors
    $game_system.message_position = 0 # Позиция сообщения (0-вверху, 1-в центре, 2-внизу)
    $game_temp.message_text = Первая строчка \n вторая строчка
    return
  end

end [/cut]
Чем сложнее задача - тем проще ее не решать.

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

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21059

  • RaZoR
  • RaZoR аватар
  • Вне сайта
  • Познающий
  • Сообщений: 13
У меня опять выдало ошибку. Наверна потому что def command_autors и далее я в другом разделе описал..... Я исправил и вот что получилось
[cut]#==============================================================================
# : Scene_Title
#
# This class performs title screen processing.
#==============================================================================

class Scene_Title
#
# : Main Processing
#
def main
if $BTEST
battle_test
return
end
$data_actors = load_data( Data/Actors.rxdata )
$data_classes = load_data( Data/Classes.rxdata )
$data_skills = load_data( Data/Skills.rxdata )
$data_items = load_data( Data/Items.rxdata )
$data_weapons = load_data( Data/Weapons.rxdata )
$data_armors = load_data( Data/Armors.rxdata )
$data_enemies = load_data( Data/Enemies.rxdata )
$data_troops = load_data( Data/Troops.rxdata )
$data_states = load_data( Data/States.rxdata )
$data_animations = load_data( Data/Animations.rxdata )
$data_tilesets = load_data( Data/Tilesets.rxdata )
$data_common_events = load_data( Data/CommonEvents.rxdata )
$data_system = load_data( Data/System.rxdata )
$game_system = Game_System.new
$game_temp = Game_Temp.new
@sprite = Sprite.new
@message_window = Window_Message.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
s1 = Новая Игра
s2 = Продолжить
s4 = Авторы
s3 = Выйти из игры
@command_window = Window_Command.new(192, [s1, s2, s4, s3])
@command_window.back_opacity = 160
@command_window.x = 300 - @command_window.width / 2
@command_window.y = 300
@continue_enabled = false
for i in 0..3
if FileTest.exist?( Save#{i+1}.rxdata )
@continue_enabled = true
end
end
if @continue_enabled
@command_window.index = 1
else
@command_window.disable_item(1)
end
$game_system.bgm_play($data_system.title_bgm)
Audio.me_stop
Audio.bgs_stop
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@message_window.dispose
@command_window.dispose
@sprite.bitmap.dispose
@sprite.dispose
end
#
# : Frame Update
#
def update
@command_window.update
@message_window.update
if $game_temp.message_window_showing
@command_window.active = false
return
else
@command_window.active = true
end
if Input.trigger?(Input::C)
case @command_window.index
when 0 # New game
command_new_game
when 1 # Continue
command_continue
when 3 # Shutdown
command_shutdown
when 2 # Autors
command_autors
end
end
end
end
[/cut]
создал новый раздел command_autors в скриптах. Выглядит примерно так:

[cut]
#
# : Command: Autors
#
def command_autors
$game_system.message_position = 0 # Позиция сообщения (0-вверху, 1-в центре, 2-внизу)
$game_temp.message_text = Первая строчка \n вторая строчка
return
end
[/cut]
В чем была проблема?
Пришлось в первом скрипте добавить 1 end
а во 2ом убрать!
а Так за скрипт большое спасибо! :)
Администратор запретил публиковать записи гостям.

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21066

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Если я правильно понял, ты хочешь определить метод def command_autors в другом разделе, для этого тебе придется создать для него новый класс.
Вставь метод def command_autors в скрип Scene_Title перед последним end, и все должно работать.
Чем сложнее задача - тем проще ее не решать.

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

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21115

  • RaZoR
  • RaZoR аватар
  • Вне сайта
  • Познающий
  • Сообщений: 13
Всё работоло!я фактически так и сделал.
спс за скрипт!
Администратор запретил публиковать записи гостям.

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21124

  • Fizmatik
  • Fizmatik аватар
  • Вне сайта
  • Администратор
  • Сообщений: 1886
  • Спасибо получено: 100
  • Ветеран
Так и всё-таки.
Давайте последнюю версию в студию :)
Администратор запретил публиковать записи гостям.

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21130

  • Парок
  • Парок аватар
  • Вне сайта
  • Оседлый
  • Сообщений: 48
Йа наверно тут не ф тему, но так и хочецо задать вопрос...
А как создать новый класс? ^__^
Неужели просто тупо писать class comm_autors ? У меня так неполучаецо... Все время пишет почти для каждй команды (команда) неизвестна для класса comm_autors X___x
Администратор запретил публиковать записи гостям.

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21136

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Да-да... именно так, точнее вот так:

class имя_класса
def метод1
определение метода1 (initialize - к примеру)
end
def метод2
определение метода2 (update - к примеру)
end
end

Если хочешь подробней, опиши чего именно ты пытаешся добится, и выложи листинг кода.
Чем сложнее задача - тем проще ее не решать.

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

(XP)простой скрипт ДЛЯ меню 16 года 5 мес. назад #21197

  • RaZoR
  • RaZoR аватар
  • Вне сайта
  • Познающий
  • Сообщений: 13
Так и всё-таки.
Давайте последнюю версию в студию Улыбка
Уже Кинул :) читай чуть раньше
Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.238 секунд