Project1

标题: 模擬養成遊戲腳本? [打印本页]

作者: ji3rul4coco    时间: 2013-9-20 22:25
标题: 模擬養成遊戲腳本?
本帖最后由 ji3rul4coco 于 2013-9-23 23:45 编辑

2013/09/23更新  
因為我覺得自己之前的敘述好像太簡單了
詳細形況就是,我希望能夠用鼠標點選粉紅色↓的選項,讓它像橙光文字游戏制作工具的選項一樣
我想要的是那樣的效果
之前也有人問過相同的問題,不過因為上面的腳本不知為何不能用,所以才重新又問了一次
網址如下↓
http://rpg.blue/forum.php?mod=viewthread&tid=329853

為了,變量顯示的問題算是解決了,不過我想將在菜單中顯示的功能消掉,還有想把數值改成兩排(像圖片藍框中顯示的那樣),請各位幫個忙,謝謝



RUBY 代码复制
  1. #==============================================================================
  2. # ■ Game_Player
  3. #------------------------------------------------------------------------------
  4. #  處理玩家人物的類。擁有事件啟動的判定、地圖的卷動等功能。
  5. #   本類的實例請參考 $game_player 。
  6. #==============================================================================
  7.  
  8. class Game_Player < Game_Character
  9.  
  10.   def getX
  11.     @x
  12.   end
  13.  
  14.   def getY
  15.     @y
  16.   end
  17.  
  18. end
  19.  
  20. #==============================================================================
  21. # ■ Scene_Menu
  22. #------------------------------------------------------------------------------
  23. #  菜單畫面
  24. #==============================================================================
  25.  
  26. class Scene_Menu < Scene_MenuBase
  27.  
  28.   #--------------------------------------------------------------------------
  29.   # ● 生成窗口
  30.   #--------------------------------------------------------------------------
  31.   def create_gold_window
  32.     @gold_window = Window_Gold.new
  33.     @gold_window.x = 0
  34.     @gold_window.y = Graphics.height - @gold_window.height
  35.     # 生成地圖信息窗口
  36.     @mapinfos_window = Window_MapInfo.new
  37.     @mapinfos_window.x = 0
  38.     @mapinfos_window.y = Graphics.height - @mapinfos_window.height - @gold_window.height
  39.  
  40.   end
  41.  
  42. end
  43.  
  44. #==============================================================================
  45. # ■ Window_MapInfo
  46. #------------------------------------------------------------------------------
  47. #  顯示當前信息的窗口。 By SkyZH
  48. #==============================================================================
  49.  
  50. class Window_MapInfo < Window_Base
  51.   #--------------------------------------------------------------------------
  52.   # ● 初始化對像
  53.   #--------------------------------------------------------------------------
  54.   def initialize
  55.     super(0, 0, window_width, 264)
  56.     self.opacity = 255
  57.     refresh
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 獲取窗口的寬度
  61.   #--------------------------------------------------------------------------
  62.   def window_width
  63.     return 160
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 刷新
  67.   #--------------------------------------------------------------------------
  68.   def refresh
  69.     self.contents.clear
  70.     self.contents.font.color = normal_color
  71.     @a=$game_map.width
  72.     @b=$game_map.height
  73.     draw_text(0, 0,             window_width-24, line_height,"智慧 " + $game_variables[1].to_s)
  74.     draw_text(0, line_height, window_width-24, line_height,"魅力 " + $game_variables[2].to_s)
  75.     draw_text(0, line_height*2, window_width-24, line_height,"修養 " + $game_variables[3].to_s)
  76.     draw_text(0, line_height*3, window_width-24, line_height,"體貼 " + $game_variables[4].to_s)
  77.     draw_text(0, line_height*4, window_width-24, line_height,"道德 " + $game_variables[5].to_s)
  78.     draw_text(0, line_height*5, window_width-24, line_height,"自尊 " + $game_variables[6].to_s)
  79.     draw_text(0, line_height*6, window_width-24, line_height,"勇氣 " + $game_variables[7].to_s)
  80.     draw_text(0, line_height*7, window_width-24, line_height,"聲望 " + $game_variables[8].to_s)
  81.   end
  82. end
  83.  
  84. class Spriteset_Map
  85.   #--------------------------------------------------------------------------
  86.   # ● 初始化對象
  87.   #--------------------------------------------------------------------------
  88.   def initialize
  89.     create_viewports
  90.     create_tilemap
  91.     create_parallax
  92.     create_characters
  93.     create_shadow
  94.     create_weather
  95.     create_pictures
  96.     create_timer
  97.     @MapInfoWin=Window_MapInfo.new
  98.     update
  99.   end
  100.  
  101.   def dispose
  102.     dispose_tilemap
  103.     dispose_parallax
  104.     dispose_characters
  105.     dispose_shadow
  106.     dispose_weather
  107.     dispose_pictures
  108.     dispose_timer
  109.     dispose_viewports
  110.     @MapInfoWin.dispose
  111.   end
  112.  
  113.   def update
  114.     update_tileset
  115.     update_tilemap
  116.     update_parallax
  117.     update_characters
  118.     update_shadow
  119.     update_weather
  120.     update_pictures
  121.     update_timer
  122.     update_viewports
  123.     if $game_switches[1]==false then #通過1號開關控制信息窗口是否顯示
  124.       @MapInfoWin.visible=false
  125.     else
  126.       @MapInfoWin.visible=true
  127.     end
  128.     @MapInfoWin.refresh
  129.   end
  130.  
  131. end


[line]3[/line]
想找一個模擬養成的腳本
其效果如下
我有用滑鼠操作的腳本(來自90個超級腳本)

作者: ︶ㄣ牛排ぶ    时间: 2013-9-20 23:38
繁体字……
还叫鼠标“滑鼠”……
香港人吗?
作者: Sion    时间: 2013-9-21 10:04
完全可以用事件做。设置一些NPC来执行这些指令,各种数据用变量记录就就可以了。
作者: Sion    时间: 2013-9-21 16:13
设置一个NPC,里面可以选打工什么的,选了之后等待 X 帧,然后对应的变量增加就可以了。
如果你要做成菜单的话,就搜索一下事件菜单好了。
作者: 火烧兔子    时间: 2013-9-21 20:10
目测LZ接触RM不久

纯事件可行。

或者,

使用扩展选项的脚本吧,LZ需要的功能完全可以通过选项的方法来实现。
作者: ji3rul4coco    时间: 2013-9-21 22:09
本帖最后由 ji3rul4coco 于 2013-9-21 22:11 编辑
Sion 发表于 2013-9-21 16:13
设置一个NPC,里面可以选打工什么的,选了之后等待 X 帧,然后对应的变量增加就可以了。
如果你要做成菜单 ...



類似像這樣↓



作者: a774741359    时间: 2013-9-21 22:16
脚本有爱,不过最近忙成球了。
作者: 一瞬间的幻觉    时间: 2013-9-22 01:41
我感觉这个问题你要是继续缠着SION,他应该能帮你解决
作者: ji3rul4coco    时间: 2013-9-22 21:35
ji3rul4coco 发表于 2013-9-21 22:09
類似像這樣↓

就是在菜單裡新增一個選項,選進去後會有數值:xxx

之前找過一個,不過我不會用= =
  1. module WhiteSnow
  2.   CONTENTS_SIZE = 6
  3.     # 表示する変数の数
  4.    
  5.   CONTENTS      = [
  6.     [ { "\\i[10]" => 0 } , {"\\v[15]" => 2} ],
  7.     [ { "\\i[11]" => 0 } , {"\\v[16]" => 2} ],
  8.     [ { "\\i[13]" => 0 } , {"\\v[17]" => 2} ],
  9.     [ { "\\i[14]" => 0 } , {"\\v[18]" => 2} ],
  10.     [ { "\\i[12]" => 0 } , {"\\v[19]" => 2} ],
  11.     [ { "\\i[15]" => 0 } , {"\\v[20]" => 2} ],
  12.                   ]
  13.     # 表示テキスト
  14.     # \\i[n]でn番のアイコンを描画、\\v[n]でn番の変数の値を描画します
  15. end
  16.                
  17. #==============================================================================
  18. # ■ Window_VariablesView
  19. #==============================================================================

  20. class Window_VariablesView < Window_Selectable
  21.   #--------------------------------------------------------------------------
  22.   # ● オブジェクト初期化
  23.   #--------------------------------------------------------------------------
  24.   def initialize
  25. #~     super(0,0, window_width, fitting_height(WhiteSnow::CONTENTS_SIZE))
  26.     super(0,0, window_width, fitting_height(item_max))
  27.     refresh
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● ウィンドウ幅の取得
  31.   #--------------------------------------------------------------------------
  32.   def window_width
  33.     return 160
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 項目数の取得
  37.   #--------------------------------------------------------------------------
  38.   def item_max
  39. #~     return WhiteSnow::CONTENTS_SIZE
  40.     WhiteSnow::CONTENTS_SIZE - (WhiteSnow::CONTENTS_SIZE / 2)
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● リフレッシュ
  44.   #--------------------------------------------------------------------------
  45.   def refresh
  46.     contents.clear

  47.     WhiteSnow::CONTENTS_SIZE.times do |i|
  48.       WhiteSnow::CONTENTS[i].each do |content|
  49.         t = content.keys.pop
  50.         text = t.dup
  51.         unless text.scan(/\\v\[(\d+)\]/).empty?
  52.           text_v =  text.gsub(/\\v\[(\d+)\]/) { "#{$game_variables[$1.to_i]}" }
  53.           text.nil?
  54.           text = "" if text.nil?
  55.         end
  56.         flag = true if text.scan(/\\i\[(\d+)\]/)
  57.         icon_index = $1.to_i
  58.         text_p = text.dup
  59.         text.gsub!(/\\i\[\d+\]/) { "" }
  60.         
  61.         # 座標計算追加----------------------
  62.         item_width_x = item_width / 2
  63.         x = (i % 2) * item_width_x
  64.         y = (i / 2) * item_height
  65.         # ------------------------------------
  66.         
  67.         if flag
  68.           case content[text_p]
  69.           when 0
  70. #~             draw_icon(icon_index, 0, i * 24)
  71.             draw_icon(icon_index, x, y)
  72.           when 1
  73. #~             draw_icon(icon_index, item_width / 2 - 12, i * 24)
  74.             draw_icon(icon_index, x + item_width_x / 2 - 12, y)
  75.           when 2
  76. #~             draw_icon(icon_index, item_width, i * 24)
  77.             draw_icon(icon_index, x + item_width_x, y)
  78.           end
  79.         end
  80.         if text_v
  81. #~           draw_text(0, i * 24, item_width, item_height, text_v, content[text])
  82.           draw_text(x, y, item_width_x, item_height, text_v, content[text])
  83.         else
  84. #~           draw_text(0, i * 24, item_width, item_height, text, content[text]) unless text.empty?
  85.           draw_text(x, y, item_width_x, item_height, text, content[text]) unless text.empty?
  86.         end
  87.       end
  88.     end
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● ウィンドウを開く
  92.   #--------------------------------------------------------------------------
  93.   def open
  94.     refresh
  95.     super
  96.   end
  97. end

  98. #==============================================================================
  99. # ■ Scene_Menu
  100. #------------------------------------------------------------------------------
  101. #  メニュー画面の処理を行うクラスです。
  102. #==============================================================================

  103. class Scene_Menu < Scene_MenuBase
  104.   #--------------------------------------------------------------------------
  105.   # ● 開始処理
  106.   #--------------------------------------------------------------------------
  107.   alias variables_view_start start
  108.   def start
  109.     variables_view_start
  110.     create_variables_window
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 変数ウィンドウの作成
  114.   #--------------------------------------------------------------------------
  115.   def create_variables_window
  116.     @variables_window = Window_VariablesView.new
  117.     @variables_window.x = 0
  118.     #@variables_window.y = Graphics.height - @gold_window.height - @variables_window.height
  119.     @variables_window.y = @command_window.height
  120.   end
  121. end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1