Project1

标题: 新人有一个代码问题 [打印本页]

作者: ww199735    时间: 2015-6-12 21:34
标题: 新人有一个代码问题
昨天制作主负责发论坛求了个整合。。然后看都没看就直接丢给我了=-=
我主要负责脚本修改,但问题是其实我根本不会ruby的语言orz
完全是拿pascal和vb的知识在看2333
卖个萌,原谅我吧~

其实现在的问题是这个整合一打开整队系统就会报错,说'<='未定义
好吧我知道这问题好像挺小白的。。但我还是向问一下解决方案
  1.   def on_formation_ok
  2.     if @status_window.pending_index > nil
  3.     then $game_party.swap_order(@status_window.index,
  4.                              @status_window.pending_index)
  5.       @status_window.pending_index = -1
  6.       @status_window.redraw_item(@status_window.index)
  7.     else
  8.       @status_window.pending_index = @status_window.index
  9.     end
  10.     @status_window.activate
  11.   end
复制代码
就是这行,求大神帮忙!
作者: taroxd    时间: 2015-6-12 21:42
但我在你的脚本中根本没有看到 <=

这个问题通常是因为试图将 nil 与其他东西比较大小导致的... 检查一下是不是有变量没有初始化吧
作者: ww199735    时间: 2015-6-12 22:08
然而再次实验,就算把nil的变量改为定量依然有这个问题。
而且把所有关于整队的脚本删去就会反馈出一个迷一样的'-@'未定义。。
看来是整个Scene_menu的问题了。。
orz负责坑我啊。。。。。。
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Scene_Menu
  4. #------------------------------------------------------------------------------
  5. #  菜单画面
  6. #==============================================================================

  7. class Scene_Menu < Scene_MenuBase
  8.   #--------------------------------------------------------------------------
  9.   # ● 开始处理
  10.   #--------------------------------------------------------------------------
  11.   def start
  12.     super
  13.     create_command_window
  14.     create_gold_window
  15.     create_status_window
  16.     @PlayTime__window=Window_PlayTime.new(160,Graphics.height-48,Graphics.width-160)
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 生成指令窗口
  20.   #--------------------------------------------------------------------------
  21.   def create_command_window
  22.     @command_window = Window_MenuCommand.new
  23.     @command_window.set_handler(:item,      method(:command_item))
  24.     @command_window.set_handler(:skill,     method(:command_personal))
  25.     @command_window.set_handler(:equip,     method(:command_personal))
  26.     @command_window.set_handler(:status,    method(:command_personal))
  27.     @command_window.set_handler(:formation, method(:command_formation))
  28.     @command_window.set_handler(:save,      method(:command_save))
  29.     @command_window.set_handler(:game_end,  method(:command_game_end))
  30.     @command_window.set_handler(:cancel,    method(:return_scene))
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 生成金钱窗口
  34.   #--------------------------------------------------------------------------
  35.   def create_gold_window
  36.     @gold_window = Window_Gold.new
  37.     @gold_window.x = 0
  38.     @gold_window.y = Graphics.height - @gold_window.height
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 生成状态窗口
  42.   #--------------------------------------------------------------------------
  43.   def create_status_window
  44.     @status_window = Window_MenuStatus.new(0,48)
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 指令“物品”
  48.   #--------------------------------------------------------------------------
  49.   def command_item
  50.     SceneManager.call(Scene_Item)
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 指令“技能”“装备”“状态”
  54.   #--------------------------------------------------------------------------
  55.   def command_personal
  56.     @status_window.select_last
  57.     @status_window.activate
  58.     @status_window.set_handler(:ok,     method(:on_personal_ok))
  59.     @status_window.set_handler(:cancel, method(:on_personal_cancel))
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 指令“整队”
  63.   #--------------------------------------------------------------------------
  64.   def command_formation
  65.     @status_window.select_last
  66.     @status_window.activate
  67.     @status_window.set_handler(:ok,     method(:on_formation_ok))
  68.     @status_window.set_handler(:cancel, method(:on_formation_cancel))
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 指令“存档”
  72.   #--------------------------------------------------------------------------
  73.   def command_save
  74.     SceneManager.call(Scene_Save)
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● 指令“结束游戏”
  78.   #--------------------------------------------------------------------------
  79.   def command_game_end
  80.     SceneManager.call(Scene_End)
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 个人指令“确定”
  84.   #--------------------------------------------------------------------------
  85.   def on_personal_ok
  86.     case @command_window.current_symbol
  87.     when :skill
  88.       SceneManager.call(Scene_Skill)
  89.     when :equip
  90.       SceneManager.call(Scene_Equip)
  91.     when :status
  92.       SceneManager.call(Scene_Status)
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 个人指令“取消”
  97.   #--------------------------------------------------------------------------
  98.   def on_personal_cancel
  99.     @status_window.unselect
  100.     @command_window.activate
  101.   end
  102.   #--------------------------------------------------------------------------
  103.   # ● 整队“确定”
  104.   #--------------------------------------------------------------------------
  105.   def on_formation_ok
  106.     if @status_window.pending_index >= nil
  107.       $game_party.swap_order(@status_window.index,
  108.                              @status_window.pending_index)
  109.       @status_window.pending_index = -1
  110.       @status_window.redraw_item(@status_window.index)
  111.     else
  112.       @status_window.pending_index = @status_window.index
  113.     end
  114.     @status_window.activate
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● 整队“取消”
  118.   #--------------------------------------------------------------------------
  119.   def on_formation_cancel
  120.     if @status_window.pending_index >= 0
  121.       @status_window.pending_index = -1
  122.       @status_window.activate
  123.     else
  124.       @status_window.unselect
  125.       @command_window.activate
  126.     end
  127.   end
  128.     #--------------------------------------------------------------------------

  129.   # ● 生成背景

  130.   #--------------------------------------------------------------------------

  131.   def create_background

  132.     @background_sprite = Sprite.new

  133.     @background_sprite.bitmap =Cache.load_bitmap("Graphics/System/","Menuback")

  134.     @background_sprite.color.set(0,0, 0,0)

  135.   end

  136. end
复制代码
求帮忙QAQ
作者: howhow1314    时间: 2015-6-12 22:46
為什麼不把報錯內容截圖發一下呢
作者: ww199735    时间: 2015-6-13 17:22
然而改成0以后依然是这样报错。。

%NH)F1_F0_AEA$XGX2W]P(3.png (6.95 KB, 下载次数: 19)

%NH)F1_F0_AEA$XGX2W]P(3.png

作者: 企鹅达达    时间: 2015-6-13 17:43
本帖最后由 企鹅达达 于 2015-6-13 17:44 编辑

查查看你的class Window_MenuStatus下面这段改了没?
  1.   #--------------------------------------------------------------------------
  2.   # ● 初始化对象
  3.   #--------------------------------------------------------------------------
  4.   def initialize(x, y)
  5.     super(x, y, window_width, window_height)
  6.     @pending_index = -1
  7.     refresh
  8.   end
复制代码
另外,把107行是一定要改成0的,别用nil




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