Страница 13 из 143 ПерваяПервая ... 311121314152363113 ... ПоследняяПоследняя
Показано с 121 по 130 из 1427

Тема: Помощь с скриптами (RGSS)

  1. #121
    Бывалый Аватар для А.С.
    Информация о пользователе
    Регистрация
    23.04.2010
    Адрес
    Лисаковск, Казахстан.
    Сообщений
    778
    Репутация: 9 Добавить или отнять репутацию

    По умолчанию

    Из обычного? Просто.

    #================================================= =============================
    # ■ Scene_Menu
    #------------------------------------------------------------------------------
    #  メニュー画面の処理を行うクラスです。
    #================================================= =============================

    class Scene_Menu
    #--------------------------------------------------------------------------
    # ● オブジェクト初期化
    # menu_index : コマンドのカーソル初期位置
    #--------------------------------------------------------------------------
    def initialize(menu_index = 0)
    @menu_index = menu_index
    end
    #--------------------------------------------------------------------------
    # ● メイン処理
    #--------------------------------------------------------------------------
    def main
    # コマンドウィンドウを作成
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "End Game"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5])
    @command_window.index = @menu_index
    # パーティ人数が 0 人の場合
    if $game_party.actors.size == 0
    # アイテム、スキル、装備、ステータスを無効化
    @command_window.disable_item(0)
    @command_window.disable_item(1)
    @command_window.disable_item(2)
    @command_window.disable_item(3)
    end
    # プレイ時間ウィンドウを作成
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224
    # 歩数ウィンドウを作成
    @steps_window = Window_Steps.new
    @steps_window.x = 0
    @steps_window.y = 320
    # ゴールドウィンドウを作成
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    # ステータスウィンドウを作成
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    # トランジション実行
    Graphics.transition
    # メインループ
    loop do
    # ゲーム画面を更新
    Graphics.update
    # 入力情報を更新
    Input.update
    # フレーム更新
    update
    # 画面が切り替わったらループを中断
    if $scene != self
    break
    end
    end
    # トランジション準備
    Graphics.freeze
    # ウィンドウを解放
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
    end
    #--------------------------------------------------------------------------
    # ● フレーム更新
    #--------------------------------------------------------------------------
    def update
    # ウィンドウを更新
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @status_window.update
    # コマンドウィンドウがアクティブの場合: update_command を呼ぶ
    if @command_window.active
    update_command
    return
    end
    # ステータスウィンドウがアクティブの場合: update_status を呼ぶ
    if @status_window.active
    update_status
    return
    end
    end
    #--------------------------------------------------------------------------
    # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
    #--------------------------------------------------------------------------
    def update_command
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
    # キャンセル SE を演奏
    $game_system.se_play($data_system.cancel_se)
    # マップ画面に切り替え
    $scene = Scene_Map.new
    return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
    # パーティ人数が 0 人で、セーブ、ゲーム終了以外のコマンドの場合
    if $game_party.actors.size == 0 and @command_window.index < 4
    # ブザー SE を演奏
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # コマンドウィンドウのカーソル位置で分岐
    case @command_window.index
    when 0 # アイテム
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # アイテム画面に切り替え
    $scene = Scene_Item.new
    when 1 # スキル
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # ステータスウィンドウをアクティブにする
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 2 # 装備
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # ステータスウィンドウをアクティブにする
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 3 # ステータス
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # ステータスウィンドウをアクティブにする
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 4 # ゲーム終了
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # ゲーム終了画面に切り替え
    $scene = Scene_End.new
    end
    return
    end
    end
    #--------------------------------------------------------------------------
    # ● フレーム更新 (ステータスウィンドウがアクティブの場合)
    #--------------------------------------------------------------------------
    def update_status
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
    # キャンセル SE を演奏
    $game_system.se_play($data_system.cancel_se)
    # コマンドウィンドウをアクティブにする
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
    return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
    # コマンドウィンドウのカーソル位置で分岐
    case @command_window.index
    when 1 # スキル
    # このアクターの行動制限が 2 以上の場合
    if $game_party.actors[@status_window.index].restriction >= 2
    # ブザー SE を演奏
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # スキル画面に切り替え
    $scene = Scene_Skill.new(@status_window.index)
    when 2 # 装備
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # 装備画面に切り替え
    $scene = Scene_Equip.new(@status_window.index)
    when 3 # ステータス
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # ステータス画面に切り替え
    $scene = Scene_Status.new(@status_window.index)
    end
    return
    end
    end
    end
    Спойлер ФЛИ:
    Саката "Адский Сосед" Гинтоки
    HP: 19 MP: 7 Статус: Чувствует привязанность к Эа
    Уровень: 4 Опыт: 30\50

    Сила: 4 Выносл: 4 Ум: 4 Мутац: 0 Реакц: 5 Удача: 5 Джед: 1

    Вооружение:
    Спойлер Оружие Гинтоки:
    Никкоу (Меч Святого) - Меч, урон 1d8, защита врага - -50%
    Хаос (Меч Демона) - Меч, урон 1d8, ярость Гинтоки в битвах - +25%.
    Чёрный коготь - метательный нож (бесконечное кол-во использований), урон 1d4, можно использовать для притяжения объекта или врага, радиус - 4 м.
    Бокутоу Гинтоки - Меч, урон 1d4.


    Защита:
    Спойлер Доспех Гинтоки:

    Доспех Белого Хранителя - неразрушим, защита 1d6, полный комплект (без шлема). Класс - лёгкий доспех.


    Способности
    Спойлер Мастер на все руки:
    Гинтоки может использовать любое оружие или вещь, находящуюся у него под рукой, против врага.

    Мутация: Метание предмета до 1кг на расстояние 10м с площади 5м.
    Мутация: метнуть мелкий мусор в лицо врага - до 5м, собравшийся с радиуса 5м.- расход 2МР.
    Мутация: Притяжение - Может поднять и притянуть к себя предмет массой до 99г расположенный в радиусе 10м, предмет будет медленно двигаться на высоте 0,3-0,5м.


    Владение оружием:
    Спойлер Навык:

    Мечи: +1
    Метательное оружие: +1


    Эа Суекииттай
    HP: 12 MP: 11 Статус: Здорова
    Уровень: 3 Опыт: 20\30

    Сила: 3 Выносл: 3 Ум: 4 Мутац: 0 Реакц: 4 Удача: 3 Джед: 2

    Вооружение:
    Спойлер Оружие Эа:
    Зубы Змей - когти, урон 1d6, контактный бой, защита в ближнем бою +25%
    Алая Змея - меч, урон 1d8, кровотечение противника - +50%
    Посох Чаровниц - боевой посох, урон 1d4, бой на средней дистанции, защита в дальнем бое - +25%
    Ритуальный кинжал алхимика - Кинжал, урон 1d4, серебряный.


    Защита:
    Спойлер Доспех Эа:

    Доспехи Хранительниц - женские доспехи, неразрушимы, защита 1d6, класс: лёгкие доспехи


    Способности
    Спойлер Молящаяся за жизни:
    Эа может манипулировать неизвестными силами, вызвающими регенерацию пораженных тканей организма, способна вылечивать даже самую тяжёлую травму или болезнь, правда ей для этого требуется достаточное время на подготовку.

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


    Инвентарь
    Деньги: 8000
    Спойлер Открыть:

    Кольцо Ведьмы
    Особые зелья:
    ********************
    "Святая граната Антиоха"
    "Золотой феникс"
    "Исцеляющее дыхание"
    "Кровавая роза"
    "Порог Смерти"
    ********************


    И если ты не сможешь нас побить, присоединяйся! Вступай в лентяйскую команду!


    Заповеди профессионального автора.
    Спойлер Заповеди Профессионального мэйкера:

  2. #122
    Авторитет Аватар для Doctor Cid
    Информация о пользователе
    Регистрация
    21.06.2010
    Адрес
    Molvania
    Сообщений
    1,502
    Записей в дневнике
    49
    Репутация: 36 Добавить или отнять репутацию

    По умолчанию

    А из этого можно?

    #*************************************************
    #Final Fantasy 7 menu
    #*************************************************
    #Используеться для изменения понели управление меню.
    #Добавляет изображение чара, и строку уровня HP, SP, EXP.
    #Меняет положение меню, с левой стороны, на правую.
    #Добавляет анимацию при переходе, со строк меню.
    #Указывает локацию уровня.
    #Полностью обновляет строку "Статуса".
    #
    #Для создания изображения чара, потребуеться следующее:
    #Создайте изображение в формате .png
    #Назовите изображение именем чара, и вложите его в категорию
    #адреса: Characters/Faces/
    #Изображение не должно привышать размера 80x80.
    #========================================
    #■ Window_Base
    #--------------------------------------------------------------------------------
    # Setting functions for the "Base"
    #========================================


    class Window_Base < Window

    def draw_actor_face(actor, x, y)
    face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)
    fw = face.width
    fh = face.height
    src_rect = Rect.new(0, 0, fw, fh)
    self.contents.blt(x - fw / 23, y - fh, face, src_rect)
    end
    end
    def draw_actor_battler_graphic(actor, x, y)
    bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
    end

    #========================================
    #■ Game_Map
    #--------------------------------------------------------------------------------
    # Setting functions for the Map
    #========================================
    class Game_Map

    def name
    $map_infos[@map_id]
    end
    end

    #========================================
    #■ Window_Title
    #--------------------------------------------------------------------------------
    # Setting functions for the Title
    #========================================
    class Scene_Title
    $map_infos = load_data("Data/MapInfos.rxdata")
    for key in $map_infos.keys
    $map_infos[key] = $map_infos[key].name
    end
    end




    #================================================= =============================
    # ■ Window_MenuStatus
    #------------------------------------------------------------------------------
    # Sets up the Choosing.
    #================================================= =============================

    class Window_MenuStatus < Window_Selectable
    #--------------------------------------------------------------------------
    # Set up
    #--------------------------------------------------------------------------
    def initialize
    super(0, 0, 560, 454)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype = "Palatino Linotype"
    self.contents.font.size = $defaultfontsize = 18
    refresh
    self.active = false
    self.index = -1
    end
    #--------------------------------------------------------------------------
    # Drawing Info on Screen
    #--------------------------------------------------------------------------
    def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
    x = 94
    y = i * 110
    actor = $game_party.actors[i]
    draw_actor_face(actor, 6, y + 90) #To get rid of the Face, put a "#" before the draw_ of this line
    #draw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this line
    draw_actor_name(actor, x, y)
    draw_actor_class(actor, x + 144, y)
    draw_actor_level(actor, x, y + 18)
    draw_actor_state(actor, x + 144, y)
    draw_actor_exp(actor, x+ 144, y + 38)
    draw_actor_hp(actor, x, y + 38)
    draw_actor_sp(actor, x, y + 58)
    end
    end
    #--------------------------------------------------------------------------
    # Update of Cursor
    #--------------------------------------------------------------------------
    def update_cursor_rect
    if @index < 0
    self.cursor_rect.empty
    else
    self.cursor_rect.set(0, @index * 110, self.width - 32, 96)
    end
    end
    end

    #=======================================#
    # ■Window_GameStats #
    # written by AcedentProne #
    #------------------------------------------------------------------------------#

    class Window_GameStats < Window_Base
    def initialize
    super(0, 0, 160, 60)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype = "Palatino Linotype"
    self.contents.font.size = $defaultfontsize = 18
    refresh
    end

    def refresh
    self.contents.clear
    #Drawing gold into separate commas by Dubealex
    case $game_party.gold
    when 0..9999
    gold = $game_party.gold
    when 10000..99999
    gold = $game_party.gold.to_s
    array = gold.split(//)
    gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
    when 100000..999999
    gold = $game_party.gold.to_s
    array = gold.split(//)
    gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
    when 1000000..9999999
    gold = $game_party.gold.to_s
    array = gold.split(//)
    gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
    end
    #Draw Gold
    self.contents.font.color = system_color
    gold_word = $data_system.words.gold.to_s
    cx = contents.text_size(gold_word).width
    cx2=contents.text_size(gold.to_s).width
    self.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)
    self.contents.font.color = normal_color
    self.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)
    self.contents.font.color = system_color
    # Draw "Time"
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, -10, 120, 32, text, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, -10, 120, 32, "Время")
    end
    #--------------------------------------------------------------------------
    # Update of The count
    #--------------------------------------------------------------------------
    def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
    refresh
    end
    end
    end

    #================================================= =============================
    # ■ Window_Mapname
    #------------------------------------------------------------------------------
    #  Draws the Map name
    #================================================= =============================

    class Window_Mapname < Window_Base
    #--------------------------------------------------------------------------
    # Set up
    #--------------------------------------------------------------------------
    def initialize
    super(0, 0, 320, 44)
    self.contents = Bitmap.new(width - 52, height - 32)
    self.contents.font.name = $defaultfonttype = "Palatino Linotype"
    self.contents.font.size = $defaultfontsize = 19
    refresh
    end
    #--------------------------------------------------------------------------
    # Draws info on screen
    #--------------------------------------------------------------------------
    def refresh
    self.contents.clear

    # Map Name
    #map = $game_map.name
    self.contents.font.color = system_color
    self.contents.draw_text(4, -10, 220, 32, "Локация")
    self.contents.font.color = normal_color
    self.contents.draw_text(175, -10, 80, 32, $game_map.name)
    end
    end

    #================================================= =============================
    # ■ Scene_Menu
    #------------------------------------------------------------------------------
    # FF7 menu layout as requested by AcedentProne.
    #================================================= =============================

    class Scene_Menu
    #--------------------------- edit-------------------------------
    attr_reader :status_window
    #/--------------------------- edit-------------------------------

    def initialize(menu_index = 0)
    @menu_index = menu_index
    end
    def main

    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Статус"
    s5 = "Сохранение"
    s6 = "Выход"

    #--------------------------- edit-------------------------------
    # Command menu
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.x = 640 - @command_window.width
    @command_window.y = 480
    @command_window.z = 110
    @command_window.index = @menu_index
    #If certain options are avaliable
    if $game_party.actors.size == 0
    @command_window.disable_item(0)
    @command_window.disable_item(1)
    @command_window.disable_item(2)
    @command_window.disable_item(3)
    end
    if $game_system.save_disabled
    @command_window.disable_item(4)
    end
    #Showing location window
    @map = Window_Mapname.new
    @map.x = 640 - @map.width
    @map.y = 0 - @map.height - 1
    @map.z = 110
    #Showing the game stats
    @game_stats_window = Window_GameStats.new
    @game_stats_window.x = 0 - @game_stats_window.width
    @game_stats_window.y = 480 - @map.height - @game_stats_window.height
    @game_stats_window.z =110

    #Showing the Menu Status window
    @status_window = Window_MenuStatus.new
    @status_window.x = 640
    @status_window.y = 8
    @status_window.z = 100


    Graphics.transition
    loop do
    Graphics.update
    Input.update
    update
    if $scene != self
    break
    end
    end
    Graphics.freeze
    @command_window.dispose
    @game_stats_window.dispose
    @status_window.dispose
    @map.dispose
    end
    #--------------------------------------------------------------------------
    #Defining the delay
    #--------------------------------------------------------------------------
    def delay(seconds)
    for i in 0...(seconds * 1)
    sleep 0.01
    Graphics.update
    end
    end
    #--------------------------------------------------------------------------
    # Updating
    #--------------------------------------------------------------------------
    def update
    @command_window.update
    @game_stats_window.update
    @status_window.update
    @map.update
    #Moving Windows inplace
    gamepos = 640 - @game_stats_window.width
    mappos = 480 - @map.height - 1
    if @command_window.y > 0
    @command_window.y -= 60
    end
    if @game_stats_window.x < gamepos
    @game_stats_window.x += 80
    end
    if @map.y < mappos
    @map.y += 80
    end
    if @status_window.x > 0
    @status_window.x -= 80
    end
    #Saying if options are active
    if @command_window.active
    update_command
    return
    end
    if @status_window.active
    update_status
    return
    end
    end
    #--------------------------------------------------------------------------
    # Updating the Command Selection
    #--------------------------------------------------------------------------
    def update_command
    # If B button is pushed
    if Input.trigger?(Input::B)
    # Plays assigned SE
    $game_system.se_play($data_system.cancel_se)
    #Looping for moving windows out
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    # Go to Map
    $scene = Scene_Map.new
    return
    end
    # If C button is pused
    if Input.trigger?(Input::C)
    # Checks actor size
    if $game_party.actors.size == 0 and @command_window.index < 4
    # plays SE
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    case @command_window.index
    when 0
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_Item.new
    when 1
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 2
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 3
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 4
    if $game_system.save_disabled
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_Save.new
    when 5
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_End.new
    end
    return
    end
    end
    #--------------------------------------------------------------------------
    # Updating Status Screen
    #--------------------------------------------------------------------------
    def update_status
    if Input.trigger?(Input::B)
    $game_system.se_play($data_system.cancel_se)
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
    return
    end
    if Input.trigger?(Input::C)
    case @command_window.index
    when 1
    if $game_party.actors[@status_window.index].restriction >= 2
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_Skill.new(@status_window.index)
    when 2
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_Equip.new(@status_window.index)
    when 3
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_Status.new(@status_window.index)
    end
    return
    end
    end
    end
    «Оптимизм — это недостаток информации»

  3. #123
    Бывалый Аватар для А.С.
    Информация о пользователе
    Регистрация
    23.04.2010
    Адрес
    Лисаковск, Казахстан.
    Сообщений
    778
    Репутация: 9 Добавить или отнять репутацию

    По умолчанию

    И из этого можно...

    #*************************************************
    #Final Fantasy 7 menu
    #*************************************************
    #Используеться для изменения понели управление меню.
    #Добавляет изображение чара, и строку уровня HP, SP, EXP.
    #Меняет положение меню, с левой стороны, на правую.
    #Добавляет анимацию при переходе, со строк меню.
    #Указывает локацию уровня.
    #Полностью обновляет строку "Статуса".
    #
    #Для создания изображения чара, потребуеться следующее:
    #Создайте изображение в формате .png
    #Назовите изображение именем чара, и вложите его в категорию
    #адреса: Characters/Faces/
    #Изображение не должно привышать размера 80x80.
    #========================================
    #■ Window_Base
    #--------------------------------------------------------------------------------
    # Setting functions for the "Base"
    #========================================


    class Window_Base < Window

    def draw_actor_face(actor, x, y)
    face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)
    fw = face.width
    fh = face.height
    src_rect = Rect.new(0, 0, fw, fh)
    self.contents.blt(x - fw / 23, y - fh, face, src_rect)
    end
    end
    def draw_actor_battler_graphic(actor, x, y)
    bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
    end

    #========================================
    #■ Game_Map
    #--------------------------------------------------------------------------------
    # Setting functions for the Map
    #========================================
    class Game_Map

    def name
    $map_infos[@map_id]
    end
    end

    #========================================
    #■ Window_Title
    #--------------------------------------------------------------------------------
    # Setting functions for the Title
    #========================================
    class Scene_Title
    $map_infos = load_data("Data/MapInfos.rxdata")
    for key in $map_infos.keys
    $map_infos[key] = $map_infos[key].name
    end
    end




    #================================================= =============================
    # ■ Window_MenuStatus
    #------------------------------------------------------------------------------
    # Sets up the Choosing.
    #================================================= =============================

    class Window_MenuStatus < Window_Selectable
    #--------------------------------------------------------------------------
    # Set up
    #--------------------------------------------------------------------------
    def initialize
    super(0, 0, 560, 454)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype = "Palatino Linotype"
    self.contents.font.size = $defaultfontsize = 18
    refresh
    self.active = false
    self.index = -1
    end
    #--------------------------------------------------------------------------
    # Drawing Info on Screen
    #--------------------------------------------------------------------------
    def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
    x = 94
    y = i * 110
    actor = $game_party.actors[i]
    draw_actor_face(actor, 6, y + 90) #To get rid of the Face, put a "#" before the draw_ of this line
    #draw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this line
    draw_actor_name(actor, x, y)
    draw_actor_class(actor, x + 144, y)
    draw_actor_level(actor, x, y + 18)
    draw_actor_state(actor, x + 144, y)
    draw_actor_exp(actor, x+ 144, y + 38)
    draw_actor_hp(actor, x, y + 38)
    draw_actor_sp(actor, x, y + 58)
    end
    end
    #--------------------------------------------------------------------------
    # Update of Cursor
    #--------------------------------------------------------------------------
    def update_cursor_rect
    if @index < 0
    self.cursor_rect.empty
    else
    self.cursor_rect.set(0, @index * 110, self.width - 32, 96)
    end
    end
    end

    #=======================================#
    # ■Window_GameStats #
    # written by AcedentProne #
    #------------------------------------------------------------------------------#

    class Window_GameStats < Window_Base
    def initialize
    super(0, 0, 160, 60)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype = "Palatino Linotype"
    self.contents.font.size = $defaultfontsize = 18
    refresh
    end

    def refresh
    self.contents.clear
    #Drawing gold into separate commas by Dubealex
    case $game_party.gold
    when 0..9999
    gold = $game_party.gold
    when 10000..99999
    gold = $game_party.gold.to_s
    array = gold.split(//)
    gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
    when 100000..999999
    gold = $game_party.gold.to_s
    array = gold.split(//)
    gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
    when 1000000..9999999
    gold = $game_party.gold.to_s
    array = gold.split(//)
    gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
    end
    #Draw Gold
    self.contents.font.color = system_color
    gold_word = $data_system.words.gold.to_s
    cx = contents.text_size(gold_word).width
    cx2=contents.text_size(gold.to_s).width
    self.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)
    self.contents.font.color = normal_color
    self.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)
    self.contents.font.color = system_color
    # Draw "Time"
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, -10, 120, 32, text, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, -10, 120, 32, "Время")
    end
    #--------------------------------------------------------------------------
    # Update of The count
    #--------------------------------------------------------------------------
    def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
    refresh
    end
    end
    end

    #================================================= =============================
    # ■ Window_Mapname
    #------------------------------------------------------------------------------
    #  Draws the Map name
    #================================================= =============================

    class Window_Mapname < Window_Base
    #--------------------------------------------------------------------------
    # Set up
    #--------------------------------------------------------------------------
    def initialize
    super(0, 0, 320, 44)
    self.contents = Bitmap.new(width - 52, height - 32)
    self.contents.font.name = $defaultfonttype = "Palatino Linotype"
    self.contents.font.size = $defaultfontsize = 19
    refresh
    end
    #--------------------------------------------------------------------------
    # Draws info on screen
    #--------------------------------------------------------------------------
    def refresh
    self.contents.clear

    # Map Name
    #map = $game_map.name
    self.contents.font.color = system_color
    self.contents.draw_text(4, -10, 220, 32, "Локация")
    self.contents.font.color = normal_color
    self.contents.draw_text(175, -10, 80, 32, $game_map.name)
    end
    end

    #================================================= =============================
    # ■ Scene_Menu
    #------------------------------------------------------------------------------
    # FF7 menu layout as requested by AcedentProne.
    #================================================= =============================

    class Scene_Menu
    #--------------------------- edit-------------------------------
    attr_reader :status_window
    #/--------------------------- edit-------------------------------

    def initialize(menu_index = 0)
    @menu_index = menu_index
    end
    def main

    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Статус"
    s5 = "Выход"

    #--------------------------- edit-------------------------------
    # Command menu
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5])
    @command_window.x = 640 - @command_window.width
    @command_window.y = 480
    @command_window.z = 110
    @command_window.index = @menu_index
    #If certain options are avaliable
    if $game_party.actors.size == 0
    @command_window.disable_item(0)
    @command_window.disable_item(1)
    @command_window.disable_item(2)
    @command_window.disable_item(3)
    end
    if $game_system.save_disabled
    @command_window.disable_item(4)
    end
    #Showing location window
    @map = Window_Mapname.new
    @map.x = 640 - @map.width
    @map.y = 0 - @map.height - 1
    @map.z = 110
    #Showing the game stats
    @game_stats_window = Window_GameStats.new
    @game_stats_window.x = 0 - @game_stats_window.width
    @game_stats_window.y = 480 - @map.height - @game_stats_window.height
    @game_stats_window.z =110

    #Showing the Menu Status window
    @status_window = Window_MenuStatus.new
    @status_window.x = 640
    @status_window.y = 8
    @status_window.z = 100


    Graphics.transition
    loop do
    Graphics.update
    Input.update
    update
    if $scene != self
    break
    end
    end
    Graphics.freeze
    @command_window.dispose
    @game_stats_window.dispose
    @status_window.dispose
    @map.dispose
    end
    #--------------------------------------------------------------------------
    #Defining the delay
    #--------------------------------------------------------------------------
    def delay(seconds)
    for i in 0...(seconds * 1)
    sleep 0.01
    Graphics.update
    end
    end
    #--------------------------------------------------------------------------
    # Updating
    #--------------------------------------------------------------------------
    def update
    @command_window.update
    @game_stats_window.update
    @status_window.update
    @map.update
    #Moving Windows inplace
    gamepos = 640 - @game_stats_window.width
    mappos = 480 - @map.height - 1
    if @command_window.y > 0
    @command_window.y -= 60
    end
    if @game_stats_window.x < gamepos
    @game_stats_window.x += 80
    end
    if @map.y < mappos
    @map.y += 80
    end
    if @status_window.x > 0
    @status_window.x -= 80
    end
    #Saying if options are active
    if @command_window.active
    update_command
    return
    end
    if @status_window.active
    update_status
    return
    end
    end
    #--------------------------------------------------------------------------
    # Updating the Command Selection
    #--------------------------------------------------------------------------
    def update_command
    # If B button is pushed
    if Input.trigger?(Input::B)
    # Plays assigned SE
    $game_system.se_play($data_system.cancel_se)
    #Looping for moving windows out
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    # Go to Map
    $scene = Scene_Map.new
    return
    end
    # If C button is pused
    if Input.trigger?(Input::C)
    # Checks actor size
    if $game_party.actors.size == 0 and @command_window.index < 4
    # plays SE
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    case @command_window.index
    when 0
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_Item.new
    when 1
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 2
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 3
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 4
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_End.new
    end
    return
    end
    end
    #--------------------------------------------------------------------------
    # Updating Status Screen
    #--------------------------------------------------------------------------
    def update_status
    if Input.trigger?(Input::B)
    $game_system.se_play($data_system.cancel_se)
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
    return
    end
    if Input.trigger?(Input::C)
    case @command_window.index
    when 1
    if $game_party.actors[@status_window.index].restriction >= 2
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_Skill.new(@status_window.index)
    when 2
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_Equip.new(@status_window.index)
    when 3
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
    @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
    @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
    @map.y -= 40
    end
    if @status_window.x < 640
    @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
    break
    end
    end
    $scene = Scene_Status.new(@status_window.index)
    end
    return
    end
    end
    end
    Спойлер ФЛИ:
    Саката "Адский Сосед" Гинтоки
    HP: 19 MP: 7 Статус: Чувствует привязанность к Эа
    Уровень: 4 Опыт: 30\50

    Сила: 4 Выносл: 4 Ум: 4 Мутац: 0 Реакц: 5 Удача: 5 Джед: 1

    Вооружение:
    Спойлер Оружие Гинтоки:
    Никкоу (Меч Святого) - Меч, урон 1d8, защита врага - -50%
    Хаос (Меч Демона) - Меч, урон 1d8, ярость Гинтоки в битвах - +25%.
    Чёрный коготь - метательный нож (бесконечное кол-во использований), урон 1d4, можно использовать для притяжения объекта или врага, радиус - 4 м.
    Бокутоу Гинтоки - Меч, урон 1d4.


    Защита:
    Спойлер Доспех Гинтоки:

    Доспех Белого Хранителя - неразрушим, защита 1d6, полный комплект (без шлема). Класс - лёгкий доспех.


    Способности
    Спойлер Мастер на все руки:
    Гинтоки может использовать любое оружие или вещь, находящуюся у него под рукой, против врага.

    Мутация: Метание предмета до 1кг на расстояние 10м с площади 5м.
    Мутация: метнуть мелкий мусор в лицо врага - до 5м, собравшийся с радиуса 5м.- расход 2МР.
    Мутация: Притяжение - Может поднять и притянуть к себя предмет массой до 99г расположенный в радиусе 10м, предмет будет медленно двигаться на высоте 0,3-0,5м.


    Владение оружием:
    Спойлер Навык:

    Мечи: +1
    Метательное оружие: +1


    Эа Суекииттай
    HP: 12 MP: 11 Статус: Здорова
    Уровень: 3 Опыт: 20\30

    Сила: 3 Выносл: 3 Ум: 4 Мутац: 0 Реакц: 4 Удача: 3 Джед: 2

    Вооружение:
    Спойлер Оружие Эа:
    Зубы Змей - когти, урон 1d6, контактный бой, защита в ближнем бою +25%
    Алая Змея - меч, урон 1d8, кровотечение противника - +50%
    Посох Чаровниц - боевой посох, урон 1d4, бой на средней дистанции, защита в дальнем бое - +25%
    Ритуальный кинжал алхимика - Кинжал, урон 1d4, серебряный.


    Защита:
    Спойлер Доспех Эа:

    Доспехи Хранительниц - женские доспехи, неразрушимы, защита 1d6, класс: лёгкие доспехи


    Способности
    Спойлер Молящаяся за жизни:
    Эа может манипулировать неизвестными силами, вызвающими регенерацию пораженных тканей организма, способна вылечивать даже самую тяжёлую травму или болезнь, правда ей для этого требуется достаточное время на подготовку.

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


    Инвентарь
    Деньги: 8000
    Спойлер Открыть:

    Кольцо Ведьмы
    Особые зелья:
    ********************
    "Святая граната Антиоха"
    "Золотой феникс"
    "Исцеляющее дыхание"
    "Кровавая роза"
    "Порог Смерти"
    ********************


    И если ты не сможешь нас побить, присоединяйся! Вступай в лентяйскую команду!


    Заповеди профессионального автора.
    Спойлер Заповеди Профессионального мэйкера:

  4. #124
    Авторитет Аватар для Doctor Cid
    Информация о пользователе
    Регистрация
    21.06.2010
    Адрес
    Molvania
    Сообщений
    1,502
    Записей в дневнике
    49
    Репутация: 36 Добавить или отнять репутацию

    По умолчанию

    Вопрос. Как сделать так, чтобы баттлеры героев не исчезали во время боя, а заменялись на баттлеры этих же героев, но мёртвых?
    «Оптимизм — это недостаток информации»

  5. #125

    По умолчанию

    Нашел тут старенький скрипт на VX, чтоб иконки читались как в XP, но забыл что писать в блокноте, может быть кто знает?
    Код:
    class Window_Base
      def draw_icon2(icon_file, x, y, enabled = true)
        bitmap = Cache.load_bitmap("Graphics/Icons/", icon_file)
        rect = Rect.new(0, 0, 24, 24)
        self.contents.blt(x, y, bitmap, rect, enabled ? 255 : 128)
      end
      
      def draw_item_name(item, x, y, enabled = true)
        if item != nil
          if item.get_icon
            draw_icon2(item.get_icon.to_s, x, y, enabled)
          else
            draw_icon(item.icon_index, x, y, enabled)
          end
          self.contents.font.color = normal_color
          self.contents.font.color.alpha = enabled ? 255 : 128
          self.contents.draw_text(x + 24, y, 172, WLH, item.name)
        end
      end
    end
    
    module Item
      ICON = /<ICON*(.*)>/i
    end
    
    class RPG::BaseItem
      def get_icon
        self.note.split(/[\r\n]+/).each { |line|
          if line =~ Item::ICON
            a = line.split(/ /)[1]
            d = ""
            while ((c = a.slice!(/./m)) != nil)
              d += c if c != ">"
            end
            return d
          end
        }
        return nil
      end
    end

  6. #126

    По умолчанию

    <ICON filename>

  7. #127

    По умолчанию

    lucky*strike, спасибо.

  8. #128

    По умолчанию

    Прошу помощи
    В Общем мне нужно кое что добавить в скрипт (Mr Mo ABS)...
    Мне нужно чтобы если игрок поменял по ходу игры скин ГГ то чтобы открывалось текущее изображение с приставкой _hit
    а не скин ГГ _хит с базы данных ...
    Вот сам кусок скрипта:
    Код:
      def hit_enemy(e,a,animation=nil)
        return if animation == 0
        # Animate player
        animate(e,e.character_name + "_hit") if e.is_a?(Game_Player) and @player_ani
        # Animate Enemy
        animate(e.event, e.event.character_name+"_hit") if e.is_a?(ABS_Enemy) and @enemy_ani
        if animation == nil
          e.event.animation_id = a.animation2_id
        else
          e.event.animation_id = animation
        end
      end

  9. #129
    Познающий Аватар для Space
    Информация о пользователе
    Регистрация
    26.08.2010
    Адрес
    Воскресенск
    Сообщений
    382
    Репутация: 18 Добавить или отнять репутацию

    По умолчанию

    Подскажите люди добрые, такие вопросы:

    Game_Map

    attr_accessor :panorama_name # panorama file name - здесь мы просто объявляем, что в программе есть такое понятие, как имя файла панорамы?

    @panorama_name = tileset.panorama_name - присваеваем глобальной переменной имя файла панорамы, которая береться из БД??? Да или нет?

    @panorama2_name = "Graphics/Panoramas/Pic.png" - можно ли так записать напрямую???
    Спойлер Творения моих рук:

    Angel Beats - первая проба на Мейкере - 4.20 МБ
    Space Scene - ролик на конкурс ФМР'2010 (Нейтральная полоса) - 15.6 МБ
    Naomi-chan - ролик на конкурс "Предпраздничный конкурс музыкальных проектов" (Светлая зона) - 4.63 МБ

  10. #130
    Бывалый Аватар для Dark32
    Информация о пользователе
    Регистрация
    30.12.2008
    Адрес
    Арзамас
    Сообщений
    640
    Записей в дневнике
    2
    Репутация: 20 Добавить или отнять репутацию

    По умолчанию

    attr_accessor :panorama_name # panorama file - даёт доступ к переменной из вне класса.
    т.е. есть некий класс
    class SomeClass
    attr_accessor :panorama_name
    <...код класса...>
    end

    и переменная класса
    $mapa=SomeClass.new
    $mapa.panorama_name = some

    @panorama_name = tileset.panorama_name
    похоже присваиваем панораму из текущего тайлсета. Ищи выше где tileset задаётся

    @panorama2_name = "Graphics/Panoramas/Pic.png"
    можно, но это не чего не даст с вероятностью 88%

    Спойлер Справка по attr_accessor:

    PHP код:
    class Song
      attr_accessor 
    :title, :length
    end 
    равнозначно
    PHP код:
    class Song
      def title
        
    @title
      end
      def title
    =(v)
        @
    title v
      end
      def length
        
    @length
      end
      def length
    =(v)
        @
    length v
      end
    end 
    так же есть attr_writer и attr_reader, их отличие понятно из название

    attr_accessor - метод
    PHP код:
    class Module
      def attr_accessor
    (*methods)
        
    methods.each do |method|
          
    raise TypeError.new("method name  is not symbol"unless method.is_a?(Symbol)
          
    define_method(method) do
            
    instance_variable_get("@#{method}")
          
    end
          define_method
    ("#{method}=") do |v|
            
    instance_variable_set("@#{method}"v)
          
    end
        end
      end
    end 
    Взято с http://habrahabr.ru/blogs/ruby/49951/
    Последний раз редактировалось Dark32; 15.09.2010 в 16:13.
    Нужна помощь в скриптах? Запутался? Голова не варит?
    Читал это и это тоже? Не помогло? Тогда тебе сюда!
    Спойлер •••:
    Цитата Сообщение от Реймон
    В мире нет вещей которые нельзя решить с помощью сладостей
    Цитата Сообщение от Ундер
    Ночью можно обойтись и без сладостей...

Страница 13 из 143 ПерваяПервая ... 311121314152363113 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •