设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1684|回复: 9
打印 上一主题 下一主题

[已经解决] 请问如何在Scene_ItemBase里进行武器、防具判断?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

跳转到指定楼层
1
发表于 2017-8-18 12:12:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 jianyulei 于 2017-8-18 12:34 编辑

我想在确定物品(determine_item)里加入使用武器或防具后触发公共事件的效果,p过 item ,在里面能找到武器的开头 #<RPG::weapon ,请问我该如何读取这段话并判断它?

Lv5.捕梦者

梦石
0
星屑
36402
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
2
发表于 2017-8-18 12:15:09 | 只看该作者
if item.is_a?(RPG::Weapon)
if item.is_a?(RPG::Armor)

点评

你脚本怎么写的?  发表于 2017-8-18 12:40
不对,是weapon和Armor的报错  发表于 2017-8-18 12:30
用过了,一这样写就item NoMethhodError 报错  发表于 2017-8-18 12:29
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

3
 楼主| 发表于 2017-8-18 12:45:46 | 只看该作者
本帖最后由 jianyulei 于 2017-8-18 12:50 编辑
soulsaga 发表于 2017-8-18 12:15
if item.is_a?(RPG::Weapon)
if item.is_a?(RPG::Armor)


RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Scene_Item
  4. #------------------------------------------------------------------------------
  5. #  物品画面
  6. #==============================================================================
  7.  
  8. class Scene_Item < Scene_ItemBase
  9.   #--------------------------------------------------------------------------
  10.   # ● 开始处理
  11.   #--------------------------------------------------------------------------
  12.   alias scene_item_start_lx start
  13.   def start         #更新了
  14.     if $game_switches[1] == true
  15.        super
  16.        create_help_window
  17.        create_category1_window
  18.        create_item1_window
  19.     else   
  20.        scene_item_start_lx
  21.     end  
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 生成分类窗口
  25.   #--------------------------------------------------------------------------
  26.   def create_category1_window  #新的分类
  27.     @category_window = Window_ItemCategory.new
  28.     @category_window.viewport = @viewport
  29.     @category_window.help_window = @help_window
  30.     @category_window.y = @help_window.height
  31.     @category_window.set_handler(:ok,     method(:on_category1_ok))
  32.     @category_window.set_handler(:cancel, method(:return_scene))
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● 生成物品窗口
  36.   #--------------------------------------------------------------------------
  37.   def create_item1_window   #新的物品
  38.     wy = @category_window.y + @category_window.height
  39.     wh = Graphics.height - wy
  40.     @item_window = Window_ItemList.new(0, wy, Graphics.width, wh)
  41.     @item_window.viewport = @viewport
  42.     @item_window.help_window = @help_window
  43.     @item_window.set_handler(:ok,     method(:on_item1_ok))
  44.     @item_window.set_handler(:cancel, method(:on_item1_cancel))
  45.     @category_window.item_window = @item_window
  46.   end
  47.  
  48.   def on_category1_ok #新的分类“确定”
  49.     @item_window.activate
  50.     @item_window.select_last
  51.   end
  52.   def on_item1_ok #新的物品“确定”
  53.     $game_party.last_item.object = item
  54.     determine_item
  55.   end
  56.   def on_item1_cancel  #新的物品“取消”
  57.     @item_window.unselect
  58.     @category_window.activate
  59.   end  
  60.  
  61. end
  62.  
  63. class Window_ItemList < Window_Selectable
  64.   alias enable_hc? enable?
  65.   def enable?(item)     #1号开关打开时所有装备都可以使用
  66.     if $game_switches[1] == true
  67.        return true
  68.     else
  69.        enable_hc?(item)
  70.     end
  71.   end  
  72. end
  73.  
  74. class Scene_ItemBase < Scene_MenuBase
  75.  
  76.   alias determine_item_hc determine_item
  77.   def determine_item   #确定物品
  78.     if $game_switches[1] == true
  79.       if item.note =~ /<合成 (\d+)>/
  80.          $game_variables[3] += $1.to_i  
  81.       end
  82.            p item
  83.        if item.is_a?(RPG::item) #道具判定
  84.         SceneManager.goto(Scene_Map);$game_temp.reserve_common_event(2);end
  85.       if item.is_a?(RPG::weapon)  #武器判定
  86.         SceneManager.goto(Scene_Map);$game_temp.reserve_common_event(3);end
  87.       if item.is_a?(RPG::Armor) #防具判定  
  88.         SceneManager.goto(Scene_Map);$game_temp.reserve_common_event(4);end
  89.     else
  90.        determine_item_hc
  91.     end  
  92.   end  
  93. end



只差判断了,这个脚本我是想做成装备使用特效、道具拆解、武器改造等多功能脚本来使用,因为是公共事件里写效果所以很灵活。

点评

原来要打开控制台..  发表于 2017-8-18 13:08
你可以用P么..我用的VA用P无效..何解..  发表于 2017-8-18 13:07
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36402
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
4
发表于 2017-8-18 13:16:49 | 只看该作者
jianyulei 发表于 2017-8-18 12:45
#encoding:utf-8
#==============================================================================
#  ...

RUBY 代码复制
  1. class Scene_ItemBase < Scene_MenuBase
  2.  
  3.   alias determine_item_hc determine_item
  4.   def determine_item   #确定物品
  5.     if $game_switches[1] == true
  6.       if item.note =~ /<合成 (\d+)>/
  7.       end
  8.            #p item.is_a?(RPG::Weapon)
  9.        if item.is_a?(RPG::Item) #道具判定
  10.         SceneManager.goto(Scene_Map);$game_temp.reserve_common_event(2);end
  11.       if item.is_a?(RPG::Weapon)  #武器判定
  12.         SceneManager.goto(Scene_Map);$game_temp.reserve_common_event(3);end
  13.       if item.is_a?(RPG::Armor) #防具判定  
  14.         SceneManager.goto(Scene_Map);$game_temp.reserve_common_event(4);end
  15.     else
  16.        determine_item_hc
  17.     end  
  18.   end  
  19. end


测试通过..复制默认脚本的item.is_a?(RPG::Weapon)那些就可以了..不知你写错了什么..

点评

我知道我写错了什么了……武器防具的第一个字母没有大写……  发表于 2017-8-18 13:19

评分

参与人数 1星屑 +30 收起 理由
jianyulei + 30 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 17:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表