Lua RPG Maker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ao escolher "Save (salvar)" no menu usa um item

3 participantes

Ir para baixo

Ao escolher "Save (salvar)" no menu usa um item Empty Ao escolher "Save (salvar)" no menu usa um item

Mensagem por michaelh Sex Jul 23, 2010 10:56 pm

olá pessoal,preciso de uma ajudinha Ao escolher "Save (salvar)" no menu usa um item Icon_biggrin

eu gostaria que quando eu escolher salvar o jogo ele use um item,o item se chama Tenda

o script scene_save é esse:
Código:
#==============================================================================
# Scene_Save
#------------------------------------------------------------------------------
# Tradução dos Comentários dos Scripts em Andamento
# Informações/Suporte: cryptodeath@yahoo.com.br - www.castelorpg.net
#==============================================================================

class Scene_Save < Scene_File
# ------------------------------------
 def initialize
    super("Selecione um arquivo para salvar seu jogo")
  end
# ------------------------------------ 
  def on_decision(filename)
    $game_system.se_play($data_system.save_se)
    file = File.open(filename, "wb")
    write_save_data(file)
    file.close
    if $game_temp.save_calling
      $game_temp.save_calling = false
      $scene = Scene_Map.new
      return
    end
    $scene = Scene_Menu.new(4)
  end
# ------------------------------------
  def on_cancel
    $game_system.se_play($data_system.cancel_se)
    if $game_temp.save_calling
      $game_temp.save_calling = false
      $scene = Scene_Map.new
      return
    end
    $scene = Scene_Menu.new(4)
  end
# ------------------------------------ 
  def write_save_data(file)
    characters = []
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      characters.push([actor.character_name, actor.character_hue])
    end
    Marshal.dump(characters, file)
    Marshal.dump(Graphics.frame_count, file)
    $game_system.save_count += 1
    $game_system.magic_number = $data_system.magic_number
    Marshal.dump($game_system, file)
    Marshal.dump($game_switches, file)
    Marshal.dump($game_variables, file)
    Marshal.dump($game_self_switches, file)
    Marshal.dump($game_screen, file)
    Marshal.dump($game_actors, file)
    Marshal.dump($game_party, file)
    Marshal.dump($game_troop, file)
    Marshal.dump($game_map, file)
    Marshal.dump($game_player, file)
  end
end
michaelh
michaelh

Mensagens : 5
Data de inscrição : 22/07/2010
Idade : 35
Localização : Lua RPG Maker

Ir para o topo Ir para baixo

Ao escolher "Save (salvar)" no menu usa um item Empty Re: Ao escolher "Save (salvar)" no menu usa um item

Mensagem por Kyle Sex Jul 23, 2010 11:06 pm

Não precisa fazer isso por scripts, dá para fazer por eventos:
Vá no Database e selecione o item que você quer que salve(no caso Tenda), então escolha um evento, comum(exemplo: 1)
Agora vá na aba eventos comuns, e coloque o comando, chamar menu de save.
Pronto, espero ter ajudado, se não entendeu, não exite, pergunte de novo que eu tento te ajudar.
Falou.

Kyle

Mensagens : 17
Data de inscrição : 14/07/2010

Ir para o topo Ir para baixo

Ao escolher "Save (salvar)" no menu usa um item Empty Re: Ao escolher "Save (salvar)" no menu usa um item

Mensagem por michaelh Seg Jul 26, 2010 10:54 am

eu tenho o iten tenda e ela já salva,sempre que eu uso esse item ele me leva a um mapa que tem uma barraca e lá eu salvo,e quando saiso desse mapa com a barraca o char volta na posição que parou,que eu configurei por variavel,já está todo certinho o iten Ao escolher "Save (salvar)" no menu usa um item Icon_biggrin

o que eu quero fazer,é que,ao escolher a opção salvar no menu também me leve para esse mapa,e quando eu sair dele retorne a posição em que eu estava,comoposso fazer isso??
michaelh
michaelh

Mensagens : 5
Data de inscrição : 22/07/2010
Idade : 35
Localização : Lua RPG Maker

Ir para o topo Ir para baixo

Ao escolher "Save (salvar)" no menu usa um item Empty Re: Ao escolher "Save (salvar)" no menu usa um item

Mensagem por Anderson Porto Seg Jul 26, 2010 12:19 pm

então vc quer é mudar a opção salvar do menu e não o script de save certo?
vc quer que ao clicar em salvar, ele chame o evento comum que o item chama
se não me engano, o comando é $game_temp.common_event_id = X
coloca o id do evento comum no lugar do X

pra fazer funcionar, olha o scene menu, no método update, procura na parte em que tem o Scene_Save.new, apaga essa linha e coloca
$game_temp.common_event_id = X
$scene = Scene_Map.new

se o comando naum funcionar, usa a busca dos scripts e tenta procurar pelo common_event pra ver o comando certo XD

Anderson Porto

Mensagens : 92
Data de inscrição : 14/07/2010

Ir para o topo Ir para baixo

Ao escolher "Save (salvar)" no menu usa um item Empty Re: Ao escolher "Save (salvar)" no menu usa um item

Mensagem por michaelh Seg Jul 26, 2010 7:07 pm

Anderson Porto

eu substitui essa linha no scene_menu e continua abrindo a tela de save
do mesmo jeito,a id do common event é 001,eu tentei como 1 e também
entre parenteses mais deu na mesma

meu scene_menu é modificado:
Código:
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
#  メニュー画面の処理を行うクラスです。
#==============================================================================

class Scene_Menu
  MA_MENU_TRANSITION = "Transição - 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 = "Acampar"
    s6 = "Sair do Jogo"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    @command_window.y = -300
    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
    # プレイ時間ウィンドウを作成
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = -170
    @playtime_window.y = 224
    # 歩数ウィンドウを作成
    @steps_window = Window_Steps.new
    @steps_window.x = -170
    @steps_window.y = 320
    # ゴールドウィンドウを作成
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 500
    # ステータスウィンドウを作成
    @status_window = Window_MenuStatus.new
    @status_window.x = 700
    @status_window.y = 0
    # トランジション実行
    Graphics.transition(30, "Graphics/Transitions/" + MA_MENU_TRANSITION)
    # メインループ
    loop do
      # ゲーム画面を更新
      Graphics.update
#######Mogslayer edit###############
      if @status_window.x > 160
        @status_window.x -= 17
      end 
      if @command_window.y < 0
        @command_window.y += 10
      end
      if @steps_window.x < 0
        @steps_window.x += 5
      end 
      if @playtime_window.x < 0
        @playtime_window.x += 5
      end
      if @gold_window.y > 416
        @gold_window.y -= 3
      end
####################################     
      Input.update
      # フレーム更新
      update
      # 画面が切り替わったらループを中断
      if $scene != self
        break
      end
    end
##############Mogslayer Edit#########   
    for i in 0..20
      @command_window.y -= 20
      @status_window.x += 34
      @steps_window.x -= 10
      @playtime_window.x -= 10
      @gold_window.y += 6
      Graphics.update
    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  # セーブ
        # セーブ禁止の場合
        if $game_system.save_disabled
          # ブザー SE を演奏
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 決定 SE を演奏
        $game_system.se_play($data_system.decision_se)
        # セーブ画面に切り替え
        $scene = Scene_Save.new
      when 5  # ゲーム終了
        # 決定 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

EDIT: criei um novo projeto com os scripts intactos,reciei o evento comum e o item e também não funcionou,então acredito que não é pelo fato de meu script ser alterado. Ao escolher "Save (salvar)" no menu usa um item Icon_eek
michaelh
michaelh

Mensagens : 5
Data de inscrição : 22/07/2010
Idade : 35
Localização : Lua RPG Maker

Ir para o topo Ir para baixo

Ao escolher "Save (salvar)" no menu usa um item Empty Re: Ao escolher "Save (salvar)" no menu usa um item

Mensagem por Anderson Porto Ter Jul 27, 2010 8:05 am

when 4 # セーブ
# セーブ禁止の場合
if $game_system.save_disabled
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# セーブ画面に切り替え
>>>>>>$scene = Scene_Save.new<<<<<<
esse é aonde vc tem q editar, nada mais

Anderson Porto

Mensagens : 92
Data de inscrição : 14/07/2010

Ir para o topo Ir para baixo

Ao escolher "Save (salvar)" no menu usa um item Empty Re: Ao escolher "Save (salvar)" no menu usa um item

Mensagem por michaelh Ter Jul 27, 2010 11:08 am

consegui,na verdade o problema estava em outro script mais graças a vc achei e vc me passou o código
eu estou usando akele script de menu personalizado,do mogslayer se não me engano,e nele na linha 519 tem isso também,,eu modifiquei lá e deu certo
eu tinha esquecido q usave akele scrip e ele substituia o scene menu

brigadão,abraks Ao escolher "Save (salvar)" no menu usa um item Icon_biggrin


EDIT: não querendo ser chato mais já sendo,só me de uma opnião,vocÊ acha que fica mais legal,sempre que eu escolher "Acampar" no menu ele ir ao mapa de acampamento para dormir e salvar,ou só poderei usar a opção do "Acampar" caso eu possua o item "tenda"(que eu acho com mais sentio,pois como eu montaria uma tenda(barraca) sem ter ela)??
michaelh
michaelh

Mensagens : 5
Data de inscrição : 22/07/2010
Idade : 35
Localização : Lua RPG Maker

Ir para o topo Ir para baixo

Ao escolher "Save (salvar)" no menu usa um item Empty Re: Ao escolher "Save (salvar)" no menu usa um item

Mensagem por Anderson Porto Ter Jul 27, 2010 12:02 pm

acho q tem q tem o item sim
use isso
if $game_party.item_number(id do item tenda) == 0
return
end

antes do comando do evento comum, assim vc impede o jogador de salvar se ele naum tiver o item ^^

Anderson Porto

Mensagens : 92
Data de inscrição : 14/07/2010

Ir para o topo Ir para baixo

Ao escolher "Save (salvar)" no menu usa um item Empty Re: Ao escolher "Save (salvar)" no menu usa um item

Mensagem por michaelh Ter Jul 27, 2010 7:15 pm

então,é que no meu projeto só é permitido salvar no mapa mundi,em estadias (inn) ou onde terá um local definido para permitir o save

no script eu fiz assim:
Código:
$game_system.se_play($data_system.decision_se)
if $game_party.item_number (030) == 1
$game_temp.common_event_id = 004
$scene = Scene_Map.new
return
end
if $game_party.item_number (030) == 0
  $game_system.se_play($data_system.buzzer_se)
return
end

para quando não puder salvar ele faz aquele som de "negação",porém mesmo sem essa adição que fiz no seu código,sem possuir o item ele não vai para o mapa e possuindo o item também não

e mais uma dúvida,quando for para o mapa vai diminuir 1 do item??
michaelh
michaelh

Mensagens : 5
Data de inscrição : 22/07/2010
Idade : 35
Localização : Lua RPG Maker

Ir para o topo Ir para baixo

Ao escolher "Save (salvar)" no menu usa um item Empty Re: Ao escolher "Save (salvar)" no menu usa um item

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos