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

Project1

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

[已经解决] 需要一个可以这么用的脚本.

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
155 小时
注册时间
2013-7-8
帖子
179
跳转到指定楼层
1
发表于 2013-11-23 13:41:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
就是   武器
         防具
         ....
        技能
         技能
        技能                (装备界面
       技能
       技能
对,就是这样,...我的语文没学多好,解释不鸟,感谢各位神了....

点评

完全看不懂= =…………  发表于 2013-11-23 14:08
http://rpg.blue/forum.php?mod=viewthread&tid=327114看见大家那么做了...我也这么做了.

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6643
在线时间
1275 小时
注册时间
2013-8-21
帖子
3657

开拓者

9
发表于 2013-11-24 11:17:30 | 只看该作者
蛙仔 发表于 2013-11-24 11:02
找到了谁能给翻一下?
http://www.lemon-slice.net/3_Skill_Slot.txt

只翻译了使用方法 具体还需要自己实验一下
RUBY 代码复制
  1. #==============================================================================
  2. # ▲スロット式装備システム(RGSS3)
  3. # 武器に「スロット数」というパラメータを設定し、
  4. # その数だけ装飾品を装備できるようにします。
  5. # 武器を変えれば、スロット数も変動します。
  6. ###################################################
  7. #  设定槽数方法:在武器的备注栏写   ###############
  8. #  <技能槽 x>  (x是任意数字)       ############### 如果你懂脚本
  9. #  即可。                         ############### 那么可以在120行
  10. ################################################# 改有关的正则式
  11. # 制作元:Lemon slice [url]http://www.lemon-slice.net/[/url]
  12. #==============================================================================
  13. #==============================================================================
  14. # ■ Game_Actor
  15. #------------------------------------------------------------------------------
  16. #  アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors)
  17. # の内部で使用され、Game_Party クラス($game_party)からも参照されます。
  18. #==============================================================================
  19.  
  20. class Game_Actor < Game_Battler
  21.   #--------------------------------------------------------------------------
  22.   # ● 装備品の初期化
  23.   #     equips : 初期装備の配列
  24.   #--------------------------------------------------------------------------
  25.   def init_equips(equips)
  26.     @equips = Array.new(equip_slots.size) { Game_BaseItem.new }
  27.     equips.each_with_index do |item_id, i|
  28.       etype_id = index_to_etype_id(i)
  29.       slot_id = empty_slot(etype_id)
  30.       @equips[slot_id].set_equip(etype_id == 0, item_id) if slot_id
  31.     end
  32.     if equip_slots.size > @equips.size
  33.       size = equip_slots.size - @equips.size
  34.       size.times { @equips.push(Game_BaseItem.new) }
  35.     end
  36.     refresh
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 装備の変更
  40.   #     slot_id : 装備スロット ID
  41.   #     item    : 武器/防具(nil なら装備解除)
  42.   #--------------------------------------------------------------------------
  43.   def change_equip(slot_id, item, dev_flag = false)
  44.     return unless trade_item_with_party(item, equips[slot_id])
  45.     return if item && equip_slots[slot_id] != item.etype_id
  46.     if equip_slots.size > @equips.size
  47.       size = equip_slots.size - @equips.size
  48.       size.times { @equips.push(Game_BaseItem.new) }
  49.     end
  50.     @equips[slot_id].object = item
  51.     return if dev_flag
  52.     skill_slot_reset
  53.     release_unequippable_items
  54.     refresh
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● スキルスロット数の更新
  58.   #--------------------------------------------------------------------------
  59.   def skill_slot_reset
  60.     if equip_slots.size > @equips.size
  61.       size = equip_slots.size - @equips.size
  62.       size.times { @equips.push(Game_BaseItem.new) }
  63.     elsif equip_slots.size < @equips.size
  64.       size = @equips.size - equip_slots.size
  65.       size.times do
  66.         change_equip(-1, nil, true)
  67.         @equips.pop
  68.       end
  69.     end
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 装備を全て外す
  73.   #--------------------------------------------------------------------------
  74.   def clear_equipments
  75.     5.times do |i|
  76.       change_equip(i, nil) if equip_change_ok?(i)
  77.     end
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 最強装備
  81.   #--------------------------------------------------------------------------
  82.   def optimize_equipments
  83.     clear_equipments
  84.     4.times do |i|
  85.       next if !equip_change_ok?(i)
  86.       items = $game_party.equip_items.select do |item|
  87.         item.etype_id == equip_slots[i] &&
  88.         equippable?(item) && item.performance >= 0
  89.       end
  90.       change_equip(i, items.max_by {|item| item.performance })
  91.     end
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # ● 装備スロットの配列を取得
  95.   #--------------------------------------------------------------------------
  96.   def equip_slots
  97.     slot = [0,1,2,3]                       # 通常
  98.     slot = [0,0,2,3] if dual_wield?        # 二刀流
  99.     skill_slots.times { slot.push(4) }
  100.     return slot
  101.   end
  102.   #--------------------------------------------------------------------------
  103.   # ● スキルスロットの最大数を取得
  104.   #--------------------------------------------------------------------------
  105.   def skill_slots
  106.     if dual_wield?
  107.       slot1 = set_skill_slots(weapons[0])
  108.       slot2 = set_skill_slots(weapons[1])
  109.       slot = slot1 + slot2
  110.     else
  111.       slot = set_skill_slots(weapons[0])
  112.     end
  113.     return [[slot, slot].min, 1].max
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● スキルスロットの最大数を設定
  117.   #--------------------------------------------------------------------------
  118.   def set_skill_slots(weapon)
  119.     return 0 if weapon == nil
  120.     n = /<技能槽\s+(\d+)>/ =~ weapon.note ? $1.to_i : 1 #被修改
  121.     return n
  122.   end
  123. end
  124. #==============================================================================
  125. # ■ Window_EquipSlot
  126. #------------------------------------------------------------------------------
  127. #  装備画面で、アクターが現在装備しているアイテムを表示するウィンドウです。
  128. #==============================================================================
  129.  
  130. class Window_EquipSlot < Window_Selectable
  131.   #--------------------------------------------------------------------------
  132.   # ● 項目の描画
  133.   #--------------------------------------------------------------------------
  134.   def draw_item(index)
  135.     return unless @actor
  136.     rect = item_rect_for_text(index)
  137.     change_color(system_color, enable?(index))
  138.     draw_text(rect.x, rect.y, 92, line_height, slot_name(index)) if index <= 4
  139.     draw_item_name(@actor.equips[index], rect.x + 92, rect.y, enable?(index))
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● リフレッシュ
  143.   #--------------------------------------------------------------------------
  144.   def refresh
  145.     create_contents
  146.     draw_all_items
  147.   end
  148. end
  149. #==============================================================================
  150. # ■ Window_Status
  151. #------------------------------------------------------------------------------
  152. #  ステータス画面で表示する、フル仕様のステータスウィンドウです。
  153. #==============================================================================
  154.  
  155. class Window_Status < Window_Selectable
  156.   #--------------------------------------------------------------------------
  157.   # ● ブロック 3 の描画
  158.   #--------------------------------------------------------------------------
  159.   def draw_block3(y)
  160.     draw_parameters(32, y)
  161.   end
  162. end
  163. #==============================================================================
  164. # ■ Window_StatusEquip
  165. #------------------------------------------------------------------------------
  166. #  ステータス画面で、アクターが現在装備しているアイテムを表示するウィンドウです。
  167. #==============================================================================
  168.  
  169. class Window_StatusEquip < Window_Selectable
  170.   #--------------------------------------------------------------------------
  171.   # ● オブジェクト初期化
  172.   #--------------------------------------------------------------------------
  173.   def initialize
  174.     x = 272
  175.     y = line_height * 7
  176.     width = 224
  177.     super(x, y, width, window_height)
  178.     self.back_opacity = 0
  179.     self.opacity = 0
  180.     self.active = true
  181.     self.index = 0
  182.     [url=home.php?mod=space&uid=95897]@actor[/url] = nil
  183.     refresh
  184.   end
  185.   #--------------------------------------------------------------------------
  186.   # ● ウィンドウ高さの取得
  187.   #--------------------------------------------------------------------------
  188.   def window_height
  189.     fitting_height(visible_line_number)
  190.   end
  191.   #--------------------------------------------------------------------------
  192.   # ● 表示行数の取得
  193.   #--------------------------------------------------------------------------
  194.   def visible_line_number
  195.     return 6
  196.   end
  197.   #--------------------------------------------------------------------------
  198.   # ● アクターの設定
  199.   #--------------------------------------------------------------------------
  200.   def actor=(actor)
  201.     return if @actor == actor
  202.     @actor = actor
  203.     refresh
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ● フレーム更新
  207.   #--------------------------------------------------------------------------
  208.   def update
  209.     super
  210.     if @item_window
  211.       @item_window.slot_id = index < 4 ? index : 4
  212.     end
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ● 項目数の取得
  216.   #--------------------------------------------------------------------------
  217.   def item_max
  218.     @actor ? @actor.equip_slots.size : 0
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ● アイテムの取得
  222.   #--------------------------------------------------------------------------
  223.   def item
  224.     @actor ? @actor.equips[index] : nil
  225.   end
  226.   #--------------------------------------------------------------------------
  227.   # ● 項目の描画
  228.   #--------------------------------------------------------------------------
  229.   def draw_item(index)
  230.     return unless @actor
  231.     rect = item_rect_for_text(index)
  232.     change_color(system_color, true)
  233.     draw_item_name(@actor.equips[index], rect.x, rect.y, true)
  234.   end
  235.   #--------------------------------------------------------------------------
  236.   # ● リフレッシュ
  237.   #--------------------------------------------------------------------------
  238.   def refresh
  239.     create_contents
  240.     draw_all_items
  241.   end
  242. end
  243. #==============================================================================
  244. # ■ Scene_Status
  245. #------------------------------------------------------------------------------
  246. #  ステータス画面の処理を行うクラスです。
  247. #==============================================================================
  248.  
  249. class Scene_Status < Scene_MenuBase
  250.   #--------------------------------------------------------------------------
  251.   # ● 開始処理
  252.   #--------------------------------------------------------------------------
  253.   def start
  254.     super
  255.     @status_window = Window_Status.new(@actor)
  256.     @status_window.set_handler(:cancel,   method(:return_scene))
  257.     @status_window.set_handler(:pagedown, method(:next_actor))
  258.     @status_window.set_handler(:pageup,   method(:prev_actor))
  259.     create_slot_window
  260.   end
  261.   #--------------------------------------------------------------------------
  262.   # ● スロットウィンドウの作成
  263.   #--------------------------------------------------------------------------
  264.   def create_slot_window
  265.     @slot_window = Window_StatusEquip.new
  266.     @slot_window.actor = @actor
  267.   end
  268.   #--------------------------------------------------------------------------
  269.   # ● アクターの切り替え
  270.   #--------------------------------------------------------------------------
  271.   def on_actor_change
  272.     @status_window.actor = @actor
  273.     @status_window.activate
  274.     @slot_window.actor = @actor
  275.   end
  276. end

点评

十分感谢!我已经会用了!  发表于 2013-11-24 13:27
大神还是解释错了..我解释对了?  发表于 2013-11-24 12:01
哦...这样啊?  发表于 2013-11-24 11:59
明白了点,技能槽的备注是给武器的..但是怎么装备技能还不请粗  发表于 2013-11-24 11:55
嗯.  发表于 2013-11-24 11:50

评分

参与人数 1星屑 +66 收起 理由
熊喵酱 + 66 认可答案

查看全部评分

萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
155 小时
注册时间
2013-7-8
帖子
179
8
 楼主| 发表于 2013-11-24 11:02:05 | 只看该作者
找到了谁能给翻一下?
http://www.lemon-slice.net/3_Skill_Slot.txt

点评

错了 这个脚本的功能是 装备特定武器后 拓展装备栏 拓展的栏中 只能放饰品  发表于 2013-11-24 12:02
比如你填写<技能槽 8>那么这个武器就可以装备在8号位……没有那么多装备槽?放心 脚本会自动添加  发表于 2013-11-24 11:58
论坛自动给脚本加了点料 第182行是@actor = nil 现在再试试  发表于 2013-11-24 11:50
你想给悬赏还早了点  发表于 2013-11-24 11:48
http://rpg.blue/forum.php?mod=viewthread&tid=327114看见大家那么做了...我也这么做了.
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
758
在线时间
2064 小时
注册时间
2011-10-3
帖子
1686
7
发表于 2013-11-23 17:52:38 | 只看该作者
余烬之中 发表于 2013-11-23 17:22
可不可以理解为:
  戴上某装备后 可以释放特定技能 脱下就不可以 [如果时间长甚至能够领悟此技能 不需要装 ...

虽然这脚本我没用过,不过也许弄N个都是“技能”的装备栏,就可以让“技能类装备”随便换位置了吧

点评

每个装备仍然只能对应一个装备栏……  发表于 2013-11-23 18:26
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6643
在线时间
1275 小时
注册时间
2013-8-21
帖子
3657

开拓者

6
发表于 2013-11-23 17:22:30 | 只看该作者
可不可以理解为:
  戴上某装备后 可以释放特定技能 脱下就不可以 [如果时间长甚至能够领悟此技能 不需要装备]
  并且这个装备可以装备在任意的位置

点评

不是啦,...是一个装备可以装备在多个装备位置.  发表于 2013-11-24 10:05
萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
758
在线时间
2064 小时
注册时间
2011-10-3
帖子
1686
5
发表于 2013-11-23 17:18:09 | 只看该作者

点评

谢谢啦,虽然不是...  发表于 2013-11-24 10:05
楼主的目的好像是 同一个装备可以装备在不同的地方 而不是 更多的装备栏  发表于 2013-11-23 17:21
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
4
发表于 2013-11-23 16:37:13 | 只看该作者
那啥,可以用画图的方式表达出来吗……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
119
在线时间
148 小时
注册时间
2013-9-14
帖子
207
3
发表于 2013-11-23 16:13:48 | 只看该作者
本帖最后由 moeno_ 于 2013-11-23 17:20 编辑

楼主是要能把技能当做武器防具一样装备起来吗…

点评

Oh,YES  发表于 2013-11-24 10:05
剧本真烦。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
155 小时
注册时间
2013-7-8
帖子
179
2
 楼主| 发表于 2013-11-23 14:37:15 | 只看该作者
就是.....让装备有添加技能的特性并且这一个装备可以放到五个不同的位置.
http://rpg.blue/forum.php?mod=viewthread&tid=327114看见大家那么做了...我也这么做了.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 06:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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