Project1

标题: 如何使用脚本制作装备等级 [打印本页]

作者: huxiao999    时间: 2010-7-28 23:59
标题: 如何使用脚本制作装备等级
如题,就是人物到一定等级传一定等级的装备
作者: 额    时间: 2010-7-29 06:44
本帖最后由 额 于 2010-7-29 06:45 编辑
  1. module RPG
  2. class Weapon
  3.   def level
  4.    return 1 if @description.split(/★/)[1] == nil
  5.    return @description.split(/★/)[1]
  6. end
  7.   def description      
  8.     return @description.split(/★/)[0]
  9.   end
  10. end
  11. class Armor
  12.   def level
  13.    return 1 if @description.split(/★/)[1] == nil
  14.    return @description.split(/★/)[1]
  15.   end
  16.   def description      
  17.     return @description.split(/★/)[0]
  18.   end
  19. end
  20. end



  21. class Game_Actor < Game_Battler
  22. #--------------------------------------------------------------------------
  23. # ● 可以装备判定
  24. #     item : 物品
  25. #--------------------------------------------------------------------------
  26. def equipable?(item)
  27.   
  28. # 武器的情况
  29. if item.is_a?(RPG::Weapon)
  30.    # 包含当前的职业可以装备武器的场合
  31.    if $data_classes[@class_id].weapon_set.include?(item.id) and item.level.to_i<=@level
  32.      return true
  33.    end
  34. end
  35. # 防具的情况
  36. if item.is_a?(RPG::Armor)
  37.    # 不包含当前的职业可以装备武器的场合
  38.    if $data_classes[@class_id].armor_set.include?(item.id)  and item.level.to_i<=@level
  39.      return true
  40.    end
  41. end
  42. return false
  43. end
  44. end
  45. #==============================================================================
  46. # ■ Window_EquipItem
  47. #------------------------------------------------------------------------------
  48. #  装备画面、显示浏览变更装备的候补物品的窗口。
  49. #==============================================================================

  50. class Window_EquipItem < Window_Selectable
  51. #--------------------------------------------------------------------------
  52. # ● 刷新
  53. #--------------------------------------------------------------------------
  54. def refresh
  55.   if self.contents != nil
  56.     self.contents.dispose
  57.     self.contents = nil
  58.   end
  59.   @data = []
  60.   # 添加可以装备的武器
  61.   if @equip_type == 0
  62.     weapon_set = $data_classes[@actor.class_id].weapon_set
  63.     for i in 1...$data_weapons.size
  64.       if $game_party.weapon_number(i) > 0 and weapon_set.include?(i) and @actor.equipable?($data_weapons[i])
  65.         @data.push($data_weapons[i])
  66.       end
  67.     end
  68.   end
  69.   # 添加可以装备的防具
  70.   if @equip_type != 0
  71.     armor_set = $data_classes[@actor.class_id].armor_set
  72.     for i in 1...$data_armors.size
  73.       if $game_party.armor_number(i) > 0 and armor_set.include?(i) and @actor.equipable?($data_armors[i])
  74.         if $data_armors[i].kind == @equip_type-1
  75.           @data.push($data_armors[i])
  76.         end
  77.       end
  78.     end
  79.   end
  80.   # 添加空白
  81.   @data.push(nil)
  82.   # 生成位图、描绘全部项目
  83.   @item_max = @data.size
  84.   self.contents = Bitmap.new(width - 32, row_max * 32)
  85.   for i in 0...@item_max-1
  86.     draw_item(i)
  87.   end
  88. end
  89. end  
复制代码
用法:复制脚本插入到Main前。在装备的描述最后添加比如★1就是1级才能装备
作者: huxiao999    时间: 2010-7-29 12:18
好像和我的脚本有冲突,我用了装备栏扩展脚本和trab还有装备分类脚本,怎么解决,问题提示WINDOWS_HELP第29行错误
作者: 逸豫    时间: 2010-7-29 12:21
把你的工程上传……
实在不行上传Scripts.rxdata
作者: huxiao999    时间: 2010-7-29 12:24
Project1.rar (249.55 KB, 下载次数: 74) 这个就是工程了
作者: 逸豫    时间: 2010-7-29 12:57
  1. module RPG
  2. class Weapon
  3.   def level
  4.    return 1 if @description.split(/★/)[1] == nil
  5.    return @description.split(/★/)[1]
  6. end
  7.   def description      
  8.     return @description.split(/★/)[0] == nil ? "" : @description.split(/★/)[0]
  9.   end
  10. end
  11. class Armor
  12.   def level
  13.    return 1 if @description.split(/★/)[1] == nil
  14.    return @description.split(/★/)[1]
  15.   end
  16.   def description      
  17.     return @description.split(/★/)[0] == nil ? "" : @description.split(/★/)[0]
  18.   end
  19. end
  20. end



  21. class Game_Actor < Game_Battler
  22. #--------------------------------------------------------------------------
  23. # ● 可以装备判定
  24. #     item : 物品
  25. #--------------------------------------------------------------------------
  26. def equipable?(item)
  27.   
  28. # 武器的情况
  29. if item.is_a?(RPG::Weapon)
  30.    # 包含当前的职业可以装备武器的场合
  31.    if $data_classes[@class_id].weapon_set.include?(item.id) and item.level.to_i<=@level
  32.      return true
  33.    end
  34. end
  35. # 防具的情况
  36. if item.is_a?(RPG::Armor)
  37.    # 不包含当前的职业可以装备武器的场合
  38.    if $data_classes[@class_id].armor_set.include?(item.id)  and item.level.to_i<=@level
  39.      return true
  40.    end
  41. end
  42. return false
  43. end
  44. end
  45. #==============================================================================
  46. # ■ Window_EquipItem
  47. #------------------------------------------------------------------------------
  48. #  装备画面、显示浏览变更装备的候补物品的窗口。
  49. #==============================================================================

  50. class Window_EquipItem < Window_Selectable
  51. #--------------------------------------------------------------------------
  52. # ● 刷新
  53. #--------------------------------------------------------------------------
  54. def refresh
  55.   if self.contents != nil
  56.     self.contents.dispose
  57.     self.contents = nil
  58.   end
  59.   @data = []
  60.   # 添加可以装备的武器
  61.   if @equip_type == 0
  62.     weapon_set = $data_classes[@actor.class_id].weapon_set
  63.     for i in 1...$data_weapons.size
  64.       if $game_party.weapon_number(i) > 0 and weapon_set.include?(i) and @actor.equipable?($data_weapons[i])
  65.         @data.push($data_weapons[i])
  66.       end
  67.     end
  68.   end
  69.   # 添加可以装备的防具
  70.   if @equip_type != 0
  71.     armor_set = $data_classes[@actor.class_id].armor_set
  72.     for i in 1...$data_armors.size
  73.       if $game_party.armor_number(i) > 0 and armor_set.include?(i) and @actor.equipable?($data_armors[i])
  74.         if $data_armors[i].kind == @equip_type-1
  75.           @data.push($data_armors[i])
  76.         end
  77.       end
  78.     end
  79.   end
  80.   # 添加空白
  81.   @data.push(nil)
  82.   # 生成位图、描绘全部项目
  83.   @item_max = @data.size
  84.   self.contents = Bitmap.new(width - 32, row_max * 32)
  85.   for i in 0...@item_max-1
  86.     draw_item(i)
  87.   end
  88. end
  89. end  
复制代码

作者: huxiao999    时间: 2010-7-29 12:58
可以不用★吗 我想用LV代替可以吗?
作者: 额    时间: 2010-7-29 16:38
回复 huxiao999 的帖子

:L
    这个你就发扬一下创新精神咯




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