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

Project1

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

[已经解决] 道具快捷键

[复制链接]

Lv4.逐梦者

梦石
10
星屑
5758
在线时间
1851 小时
注册时间
2013-2-14
帖子
395

开拓者

跳转到指定楼层
1
发表于 2015-4-13 17:30:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
有没有这种脚本。
功能是在道具界面选择某物品后(类似口袋妖怪里的道具登记),之后在地图上按快捷键就能使用。

点评

然而很有可能没有  发表于 2015-4-14 01:01

Lv3.寻梦者 (版主)

梦石
0
星屑
2315
在线时间
5539 小时
注册时间
2011-1-10
帖子
6619

青铜编剧史诗剧作家剧作品鉴家

2
发表于 2015-4-13 19:41:07 | 只看该作者
道具的公共事件设置:使用后打开开关1
新建一个公共事件,条件是开关1为ON时并行处理,加一个按键判断的条件分歧就行了

点评

觉得用公共事件会很繁琐,还是谢谢提供思路了。。  发表于 2015-4-14 09:46
如果你还想在背包里标示出来那肯定需要脚本的,当然你也可以用更多的数据库来做。也就是有“水壶”和“水壶(已登记)。  发表于 2015-4-13 22:53
你可以开一个总开关,再在公共事件内多重判断。  发表于 2015-4-13 21:20
如果这样不是要所有道具都开公共事件?而且一个开关打开它怎么识别我选的是哪个道具?  发表于 2015-4-13 21:15
因为太过自由导致在剧情中也可以使用……  发表于 2015-4-13 20:17
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
135
在线时间
450 小时
注册时间
2015-2-25
帖子
365
3
发表于 2015-4-16 10:13:26 | 只看该作者
本帖最后由 howhow1314 于 2015-4-17 11:54 编辑

RUBY 代码复制
  1. class Window_ItemList < Window_Selectable  
  2.   def process_handling
  3.     return unless open? && active
  4.     return call_handler(:kfc)   if handle?(:kfc) && Input.trigger?(:X)
  5.     super
  6.   end
  7.   alias item_kfc item
  8.   def item
  9.     return @item if @item
  10.     item_kfc
  11.   end
  12.   def item=(i)
  13.    @item = i
  14.   end
  15.   def draw_item_name(item, x, y, enabled = true, width = 172)
  16.     return unless item   
  17.     draw_icon(item.icon_index, x, y, enabled)
  18.     change_color(normal_color, enabled)
  19.     name = item.name
  20.     name = "(A)" + name if $game_party.item_kfc.class == item.class && $game_party.item_kfc.id == item.id
  21.     draw_text(x + 24, y, width, line_height, name)
  22.   end
  23. end
  24.  
  25. class Game_Party
  26.   attr_accessor :item_kfc
  27.   def use_item_kfc
  28.     if SceneManager.scene_is?(Scene_Map) && !$game_map.interpreter.running? && @item_kfc
  29.         if item_number(@item_kfc) > 0
  30.           SceneManager.call(Scene_Item)
  31.           SceneManager.scene.kfc = true
  32.         end
  33.     end
  34.   end
  35. end
  36.  
  37. class Scene_Item < Scene_ItemBase
  38.   attr_reader :item_window
  39.   attr_accessor :kfc
  40.   alias start_kfc start
  41.   def start
  42.     start_kfc
  43.     if @kfc
  44.       @kfc = false
  45.       @item_window.item = $game_party.item_kfc
  46.       on_item_ok
  47.     end
  48.   end
  49.   alias create_item_window_kfc create_item_window
  50.   def create_item_window
  51.     create_item_window_kfc
  52.     @item_window.set_handler(:kfc, method(:on_item_kfc))
  53.   end
  54.   def on_item_kfc
  55.     if item_kfc?
  56.       Sound.play_ok
  57.       if $game_party.item_kfc.class == item.class && $game_party.item_kfc.id == item.id
  58.         $game_party.item_kfc = nil
  59.       else
  60.         $game_party.item_kfc = @item_window.item
  61.       end
  62.       @item_window.refresh
  63.     else
  64.       Sound.play_buzzer
  65.     end
  66.   end
  67.   def use_item
  68.     super
  69.     @item_window.redraw_current_item
  70.     @item_window.item = nil      
  71.   end
  72.   def item_kfc?
  73.     item ? @item_window.enable?(item) && (1..10).include?(item.id) : false               #(1..10).include?(item.id) 可以自己改,或者刪掉
  74.   end
  75. end
  76.  
  77. class Scene_Map
  78.   alias update_scene_kfc update_scene
  79.   def update_scene
  80.     update_scene_kfc
  81.     update_call_kfc unless scene_changing?
  82.   end
  83.   def update_call_kfc
  84.     unless $game_map.interpreter.running?
  85.       $game_party.use_item_kfc if Input.trigger?(:X)
  86.     end
  87.   end
  88. end


A鍵設置/使用

按A前
按A後

点评

非常棒,十分感谢当当酱。。  发表于 2015-4-16 10:49

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 23:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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