Project1

标题: 在物品窗口中让某些人无法使用指定的物品 [打印本页]

作者: IamI    时间: 2008-4-14 01:57
标题: 在物品窗口中让某些人无法使用指定的物品
灵感来自提问区某问题
效果:在要给特殊人物使用物品时,他会被跳过
脚本:
  1.   $hash_item_not = {20 => [1,7],21 => [8]}

  2. class Window_Target
  3.   attr_accessor :number
  4.   alias old_initialize initialize
  5.   def initialize
  6.     old_initialize
  7.     @number = -1
  8.   end
  9.   alias old_update_cursor_rect update_cursor_rect
  10.   def update_cursor_rect
  11.     if @number == -1
  12.       old_update_cursor_rect
  13.       return
  14.     end
  15.     not_array = $hash_item_not[@number]
  16.     if not_array == nil
  17.       old_update_cursor_rect
  18.       return
  19.     end
  20.     if not_array.include?($game_party.actors[@index].id)
  21.       # 光标向下移动
  22.       @index = (@index + @column_max) % @item_max
  23.     end
  24.     old_update_cursor_rect
  25.   end
  26. end
  27. class Scene_Item
  28.   alias old_update_item update_item
  29.   def update_item
  30.     if Input.trigger?(Input::C)
  31.       @item = @item_window.item
  32.       if @item.is_a?(RPG::Item)
  33.       if $game_party.item_can_use?(@item.id)
  34.         if @item.scope >= 3
  35.           @target_window.number = @item.id
  36.         end
  37.       end
  38.       end
  39.     end
  40.     old_update_item
  41.   end
  42. end
复制代码

设定:开头的哈希表为设定内容,假设设定的是x => [y1,y2],那么编号为y1和y2的人在使用x号物品时,会被跳过
即使是一个数字也要用中括号括起来!
==========以下吐槽=========
哈希表真是好~不过还是花了我将近1个小时~最后要改refresh,却发现原来这玩意儿居然不是每一帧都刷新~气死我了……
===========================
恩,缺点如下:
有可能死循环(队伍中所有的人都是无法使用)
被禁止的人没有特殊标记{/bz}
作者: 禾西    时间: 2008-4-14 06:30
如果跨越人物多於兩個,按下down會産生連續閃爍效果==
全部人都不能用會陷入死循環
另外一個就是input up 不能
作者: 御灵    时间: 2008-5-24 07:47
发布完毕。
http://rpg.blue/web/htm/news1062.htm
vip+2
作者: Magic    时间: 2008-8-23 00:00
被我用到了……
{/jy} 御灵居然用默认头像了哦!




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