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

Project1

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

求个物品附带技能的脚本!

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2009-4-6
帖子
43
跳转到指定楼层
1
发表于 2009-4-10 21:12:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
想做个几个带技能的装备
  但是不想光加在武器上··
比如说首饰上··

还有最好不要与物品能力限制 分类冲突···

我是新人··没多少积分··所以拜托了!
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
95
在线时间
61 小时
注册时间
2008-1-19
帖子
121
2
发表于 2009-4-10 21:39:55 | 只看该作者
是这个么?{/fd}
  1. #==============================================================================
  2. # ★ LY0_Costants
  3. #------------------------------------------------------------------------------
  4. #  独自的定数的定义
  5. #==============================================================================

  6. #------------------------------------------------------------------------------
  7. # ◆ 基本設定
  8. #------------------------------------------------------------------------------

  9. # 装备技能(识別用文字列 + [技能 ID|技能 ID|...]) ※ 最大数 4
  10. LY0_ARMOR_SKILL_SIGNATURE = "*ARMORSKILL"


  11. #==============================================================================
  12. # ★ LY0_Module
  13. #------------------------------------------------------------------------------
  14. #  独自的机能添加
  15. #==============================================================================

  16. module LY0
  17.   #--------------------------------------------------------------------------
  18.   # ☆ 属性道具取得
  19.   #     id : 属性 ID
  20.   #--------------------------------------------------------------------------
  21.   def self.element_icon(id)
  22.     return LY0_ELEMENT_ICON[id - 1]
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ☆ 防具技能的附加
  26.   #     item : 防具号
  27.   #--------------------------------------------------------------------------
  28.   def self.armor_skill(item)
  29.     result = []
  30.     if item.is_a?(RPG::Armor)
  31.       sig = LY0_ARMOR_SKILL_SIGNATURE      
  32.       reg = /#{Regexp.quote sig}\[((\d+\|?)+)\]/
  33.       if item.note.scan(reg).to_a[0]
  34.         r = $~[0].gsub(/#{Regexp.quote sig}\[/, "").gsub(/\]/, "")
  35.         for s in r.split(/\s*\|\s*/)
  36.           skill = $data_skills[s.to_i]
  37.           result.push(skill) if skill.is_a?(RPG::Skill)
  38.         end
  39.       end
  40.     end
  41.     return result
  42.   end
  43.   
  44. end


  45. class Game_Actor
  46.   alias _ly0sys_skill_can_use? skill_can_use?
  47.   #--------------------------------------------------------------------------
  48.   # ☆ 技能配列取得
  49.   #--------------------------------------------------------------------------
  50.   def armor_skills
  51.     result = []
  52.     for armor in self.armors
  53.       for skill in LY0::armor_skill(armor)
  54.         result.push(skill)
  55.       end
  56.     end
  57.     return result
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ○ 技能使用可能判定 (再定義)
  61.   #     skill : 技能
  62.   #--------------------------------------------------------------------------
  63.   def skill_can_use?(skill)
  64.     # 防具
  65.     for a_skill in armor_skills
  66.       return super if a_skill.id == skill.id
  67.     end
  68.     return _ly0sys_skill_can_use?(skill)
  69.   end
  70. end

  71. #==============================================================================
  72. # ★ LY0_Window
  73. #------------------------------------------------------------------------------
  74. #==============================================================================

  75. class Window_Base
  76.   
  77.   #--------------------------------------------------------------------------
  78.   # ☆ システムメッセージの下地を描画
  79.   #--------------------------------------------------------------------------
  80.   def draw_system_base
  81.     self.opacity = 0
  82.     rect = Rect.new(0, 0, contents.width, self.contents.height)
  83.     self.contents.fill_rect(rect, system_color)
  84.     rect = Rect.new(2, 2, contents.width - 4, self.contents.height - 4)
  85.     color = Color.new(24, 8, 4)
  86.     self.contents.fill_rect(rect, color)
  87.   end
  88.   
  89.   
  90. end

  91. #==============================================================================
  92. # ■ Window_Skill
  93. #------------------------------------------------------------------------------
  94. #  特技画面中、显示可以使用的特技浏览的窗口
  95. #==============================================================================

  96. class Window_Skill
  97.   
  98.   #--------------------------------------------------------------------------
  99.   # ● 刷新
  100.   #--------------------------------------------------------------------------
  101.   def refresh
  102.     temp = []
  103.     for skill in @actor.skills
  104.       next if $game_temp.in_battle and not skill.battle_ok?
  105.       temp.push(skill)
  106.     end
  107.     # 防具加技能
  108.     for skill in @actor.armor_skills
  109.       next if $game_temp.in_battle and not skill.battle_ok?
  110.       temp.push(skill) unless temp.include?(skill)
  111.     end
  112.     temp.sort! {|a, b| a.id <=> b.id}
  113.     @data = []
  114.     for skill in temp
  115.       @data.push(skill)
  116.       if skill.id == @actor.last_skill_id
  117.         self.index = @data.size - 1
  118.       end
  119.     end
  120.     @item_max = @data.size
  121.     create_contents
  122.     for i in 0...@item_max
  123.       draw_item(i)
  124.     end
  125.   end
  126. end


  127. class Scene_Equip
  128.   alias _ly0mequip_start start
  129.   alias _ly0mequip_terminate terminate
  130.   alias _ly0mequip_update update
  131.   alias _ly0mequip_update_equip_selection update_equip_selection
  132.   alias _ly0mequip_update_item_windows update_item_windows
  133.   #--------------------------------------------------------------------------
  134.   # ○ 開始処理 (追加定義)
  135.   #--------------------------------------------------------------------------
  136.   def start
  137.     _ly0mequip_start
  138.     @skill_window = LY0_WindowItemSpec.new(0, 248, 288, [@actor])
  139.     @skill_window.y = 416 - @skill_window.height
  140.     @skill_window.active = true
  141.     @skill_window.visible = false
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ○ 終了処理 (追加定義)
  145.   #--------------------------------------------------------------------------
  146.   def terminate
  147.     _ly0mequip_terminate
  148.     @skill_window.dispose
  149.   end
  150.   #--------------------------------------------------------------------------
  151.   # ○ フレーム更新 (追加定義)
  152.   #--------------------------------------------------------------------------
  153.   def update
  154.     _ly0mequip_update
  155.     @skill_window.update
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ○ 装備部位選択の更新 (追加定義)
  159.   #--------------------------------------------------------------------------
  160.   def update_equip_selection
  161.     _ly0mequip_update_equip_selection
  162.     @skill_window.x = 544 - 288
  163.     @skill_window.item = @equip_window.item
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ○ アイテムウィンドウの更新 (追加定義)
  167.   #--------------------------------------------------------------------------
  168.   def update_item_windows
  169.     _ly0mequip_update_item_windows
  170.     @skill_window.x = @item_window.index % 2 == 0 ? 544 - 288 : 0
  171.     @skill_window.item = @item_window.item
  172.   end
  173. end
  174. #==============================================================================
  175. # ★ LY0_WindowItemSpec
  176. #------------------------------------------------------------------------------
  177. #  装备技能 属性的显示
  178. #==============================================================================

  179. class LY0_WindowItemSpec < Window_Base
  180.   #--------------------------------------------------------------------------
  181.   # ☆ オブジェクト初期化
  182.   #     actors   : アクターの配列
  183.   #--------------------------------------------------------------------------
  184.   def initialize(x, y, width, actors)
  185.     super(x, y, width, WLH * 5 + 48)
  186.     @actors = actors
  187.     @item = nil
  188.     self.opacity = 0
  189.     self.active = false
  190.     refresh
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ☆ リフレッシュ
  194.   #--------------------------------------------------------------------------
  195.   def refresh
  196.     self.contents.clear
  197.     if self.active and @item != nil
  198.       draw_system_base
  199.       if @item.is_a?(RPG::Armor)
  200.         draw_armor_skill
  201.       else
  202.         self.visible = false
  203.       end
  204.     end
  205.   end
  206.   #--------------------------------------------------------------------------
  207.   # ☆防具技能的描画
  208.   #--------------------------------------------------------------------------
  209.   def draw_armor_skill
  210.     cw = contents.width - @actors.size * 24 - 8
  211.     #draw_system_font("ARMOR_SKILL", 8, 8)
  212.     self.contents.draw_text(8, 8, 110, 24, "ARMOR SKILL")
  213.     self.contents.font.color = normal_color
  214.     skills = LY0::armor_skill(@item)
  215.     for i in 0..3
  216.       y = WLH * (i + 1) + 8
  217.       if skills[i] != nil
  218.         for actor in @actors
  219.           x = cw + (@actors.size > 1 ? actor.index * 24 : -8)
  220.           draw_actor_status_character(actor, x + 16, 32)
  221.           if actor.skill_learn?(skills[i])
  222.             #draw_system_icon("CHECK1", x, y, 24)
  223.             self.contents.draw_text(x, y, 24, 2,"RE")
  224.           elsif actor.armor_skills.include?(skills[i])
  225.             #draw_system_icon("CHECK2", x, y, 24)
  226.              self.contents.draw_text(x, y, 24, 24, "ON")
  227.           end
  228.         end
  229.         draw_item_name(skills[i], 8, y)
  230.       else
  231.         self.contents.draw_text(32, y, cw, WLH, "------------")
  232.       end
  233.     end
  234.     self.visible = (not skills.empty?)
  235.   end

  236.   #--------------------------------------------------------------------------
  237.   # ☆ 技能图用步行图の描画
  238.   #     actor           : 角色
  239.   #     x               : 描画先 X 座標
  240.   #     y               : 描画先 Y 座標
  241.   #     opacity         : 不透明度
  242.   #--------------------------------------------------------------------------
  243.   def draw_actor_status_character(actor, x, y)
  244.     bitmap = Cache.character(actor.character_name)
  245.     cw = bitmap.width / 12
  246.     ch = bitmap.height / 8
  247.     n = actor.character_index
  248.     src_rect = Rect.new((n%4*3+1)*cw + 5, (n/4*4)*ch, 22, 22)
  249.     self.contents.blt(x - cw / 2 + 1, y - ch + 9, bitmap, src_rect)
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ☆ 道具的設定
  253.   #     item : 新变更的道具
  254.   #--------------------------------------------------------------------------
  255.   def item=(item)
  256.     if @item != item
  257.       @item = item
  258.       refresh
  259.     end
  260.   end
  261. end
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
在无可预知的世界里漂流的九尾小狐^^
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2009-4-6
帖子
43
3
 楼主| 发表于 2009-4-11 03:26:26 | 只看该作者
诶  我不知道怎么用啊!问题是这个的技能限制最大4个吗?

我想要不限制的,不论队伍中那个角色装备都能使用物品技能,卸载防具的时候技能消失,

还有我用的是某大大的即时战斗1.03B的系统加上物品分类,武器限制系统,加上你给我的这个!

四个系统估计会冲突吧!{/jy}

我电脑出了点问题  ,没办法试验你给的脚本是不是冲突!



还有你这个怎么用啊?我也不会!我是新手,对脚本还不是很熟悉!


不过谢谢你,不管能不能用都先认可了···再次拜谢!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
95
在线时间
61 小时
注册时间
2008-1-19
帖子
121
4
发表于 2009-4-11 03:35:56 | 只看该作者
回LZ:你用的脚本我都用过.除非RP爆发否则不可能冲突.这个脚本就是最简单的防具附加技能的脚本.就是装备该防具后可以使用这个技能.卸除后就无法使用的.
至于用法.非常简单.在防具右下的备注栏里这么写:
*ARMORSKILL[技能ID|技能ID|...].最多里面写四个.装备后就可以使用这些技能了.如果真的RP爆发...再做研究即可.
在无可预知的世界里漂流的九尾小狐^^
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2009-4-6
帖子
43
5
 楼主| 发表于 2009-4-11 04:59:30 | 只看该作者
可以做到无限加技能上去!但是问题在于在菜单中无法看到这些技能  无法使用

在战斗菜单中可以看到!

不知道 妲己大人可否再帮在下修改下  保证每天对苍天大吼!我最崇拜妲己大人了!!!

{/cy}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-27 01:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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