Project1

标题: 敌人属性脚本问题 [打印本页]

作者: Front    时间: 2015-5-17 18:56
标题: 敌人属性脚本问题
这个问题算是1年多才发现,原脚本是:http://rpg.blue/forum.php?mod=viewthread&tid=173585

作用是在数据库怪物名后加“_角色ID_等级”用角色属性替代,但犹豫原脚本怪物名不加“_”战斗的时候就会直接出错。
之前就发了请教,蕾米莉亚·斯卡雷特fux2 非常热心的帮我解决了问题,但当时没发现等级失效了。

如原脚本:史莱姆_角色ID_等级,这样角色ID和等级都起着作用,但所有敌人都必须设置不然出错。
改后脚本:史莱姆_角色ID_等级←这里失效了 , 无论设置多少级都是脚本里设置的默认等级。

真心希望能帮我解决下这问题,主要就是希望上面那脚本,可以不用每个敌人都需在名字后添加“_id_level”只想要部分敌人的属性用角色代替,隔了1年多了再碰VX不希望有遗憾。

下面是改后脚本:
RUBY 代码复制
  1. #______________________________________________________________________________
  2. # * 此脚本归66RPG - Idiot Script Association(ISA)所有,谢绝任何形式转载。
  3. #______________________________________________________________________________
  4.  
  5. #==============================================================================
  6. # ■ 接入包 - Access Package
  7. #------------------------------------------------------------------------------
  8. #   遵守协议:66RPG - Idiot Script Association(ISA)
  9. #   当前版本:1.0.0.0
  10. #------------------------------------------------------------------------------
  11. #   更新日记:忧雪の伤(2011.3.11)
  12. #             - 初始化
  13. #==============================================================================
  14.  
  15. #--------------------------------------------------------------------------
  16. # ● Start
  17. #--------------------------------------------------------------------------
  18.  
  19. module ISA
  20.    Use = {}
  21.    System = {}
  22.    Switch = {}
  23.    Actor = load_data("Data/Actors.rvdata")
  24. end
  25.  
  26. #--------------------------------------------------------------------------
  27. # ● 资料记录
  28. #--------------------------------------------------------------------------
  29.  
  30. module ISA
  31.    Use["接入包"] = [true, "1.0.0.0"]
  32. end
  33.  
  34. #_____________________________________________________________________________
  35. # * 此脚本归66RPG - Idiot Script Association(ISA)及坏人协会所有,谢绝任何形式转载。
  36. #-----------------------------------------------------------------------------
  37.  
  38. #==============================================================================
  39. # ■ 主角当怪物属性战斗 - Actor Change Enemy
  40. #------------------------------------------------------------------------------
  41. #   遵守协议:66RPG - Idiot Script Association(ISA)
  42. #             66RPG - 坏人协会
  43. #   初始脚本:退屈无聊
  44. #   更新优化:无
  45. #   当前版本:1.0.0.1
  46. #------------------------------------------------------------------------------
  47. #   更新日记:退屈无聊(2011.3.26)
  48. #             - 初始化
  49. #             退屈无聊(2011.3.26)
  50. #             - 修正level2计算时的BUG
  51. #             退屈无聊(2011.3.27)
  52. #             - 修正获取actor等级的BUG
  53. #==============================================================================
  54.  
  55. #--------------------------------------------------------------------------
  56. # ● 资料记录
  57. #--------------------------------------------------------------------------
  58.  
  59. module ISA
  60.    Use["主角当怪物战斗"] = [true, "1.0.0.1"]
  61.    System["主角当怪物战斗"] = {}
  62. end
  63.  
  64. #--------------------------------------------------------------------------
  65. # ● 设定部分
  66. #--------------------------------------------------------------------------
  67.  
  68. module ISA
  69.   System["主角当怪物战斗"]["难度"] = 10
  70.   System["主角当怪物战斗"]["怪物名改为角色名"] = false
  71.   System["主角当怪物战斗"]["显示怪物等级"] = true
  72. end
  73.  
  74. class Game_Enemy < Game_Battler
  75.   attr_accessor :level                         # 怪物等级
  76.   include ISA
  77.   def initialize(index, enemy_id)
  78.     super()
  79.     @index = index
  80.     @enemy_id = enemy_id
  81.     enemy = $data_enemies[@enemy_id]
  82.     @original_name = enemy.name
  83.     @letter = ''
  84.     @plural = false
  85.     @screen_x = 0
  86.     @screen_y = 0
  87.     @battler_name = enemy.battler_name
  88.     @battler_hue = enemy.battler_hue
  89.     @original_name, @enemy_actor_id, set_level = *enemy.name.split("_")
  90.     if set_level
  91.       level1 = 0
  92.       level2 = 10000
  93.       for i in 1..$game_party.members.size
  94.         actor = $game_party.members[i-1]
  95.         level1 = actor.level if level1 < actor.level
  96.         level2 = actor.level if level2 > actor.level
  97.       end
  98.     @level = level2.to_i + rand(level2 - level1) + System["主角当怪物战斗"]["难度"]
  99.     @level = [@level.to_i, 99].min
  100.     else
  101.       @level = set_level.to_i
  102.     end
  103.     @cp = 65535
  104. #~    # @exp_list = Array.new(101) #
  105. #~    # make_exp_list #
  106.     @hp = maxhp
  107.     @mp = maxmp
  108.   end
  109.  
  110.   def name
  111.     return @original_name unless @enemy_actor_id
  112.     if System["主角当怪物战斗"]["怪物名改为角色名"]
  113.       if System["主角当怪物战斗"]["显示怪物等级"]
  114.         return $data_actors[@enemy_actor_id.to_i].name + @level.to_s + "级"
  115.       else
  116.         return $data_actors[@enemy_actor_id.to_i].name
  117.       end
  118.     else
  119.       if System["主角当怪物战斗"]["显示怪物等级"]
  120.         return @original_name + @level.to_s + "级"
  121.       else
  122.         return @original_name
  123.       end
  124.     end
  125.   end
  126.  
  127.   def base_maxhp
  128.     return enemy.maxhp unless @enemy_actor_id
  129.     return $data_actors[@enemy_actor_id.to_i].parameters[0, @level].to_i * 1.5
  130.   end
  131.   def base_maxmp
  132.     return enemy.maxmp unless @enemy_actor_id
  133.     return $data_actors[@enemy_actor_id.to_i].parameters[1, @level].to_i * 1
  134.   end
  135.   def base_atk # 获取基本攻击力
  136.     return enemy.atk unless @enemy_actor_id
  137.     return $data_actors[@enemy_actor_id.to_i].parameters[2, @level].to_i * 1
  138.   end
  139.   def base_def # 获取基本防御力
  140.     return enemy.def unless @enemy_actor_id
  141.     return $data_actors[@enemy_actor_id.to_i].parameters[3, @level].to_i * 3
  142.   end
  143.   def base_spi # 获取基本魔力
  144.     return enemy.spi unless @enemy_actor_id
  145.     return $data_actors[@enemy_actor_id.to_i].parameters[4, @level].to_i * 1
  146.   end
  147.   def base_agi # 获取基本敏捷
  148.     return enemy.agi unless @enemy_actor_id
  149.     return $data_actors[@enemy_actor_id.to_i].parameters[5, @level].to_i * 2
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # 命中率、会心一击率、闪躲率、受伤率、属性修正、状态有效需要自己在怪物界面写
  153.   #--------------------------------------------------------------------------
  154.   #--------------------------------------------------------------------------
  155.   # ● 计算经验值
  156.   #--------------------------------------------------------------------------
  157. #~  # def make_exp_list
  158. #~    # return unless @enemy_actor_id
  159. #~    # @exp_list[1] = @exp_list[100] = 0
  160. #~    # m = $data_actors[@enemy_actor_id.to_i].exp_basis
  161. #~    # n = 0.75 + $data_actors[@enemy_actor_id.to_i].exp_inflation / 200.0;
  162. #~    # for i in 2..99
  163. #~    #   @exp_list[i] = @exp_list[i-1] + Integer(m)
  164. #~     #  m *= 1 + n;
  165. #~    #   n *= 0.9;
  166. #~   #  end
  167. #~ #  end
  168.   #--------------------------------------------------------------------------
  169.   # ● 获取经验值
  170.   #--------------------------------------------------------------------------
  171. #~   #def exp
  172. #~   #  return enemy.exp unless @enemy_actor_id
  173. #~   #  return (@exp_list[@level+1] / 7).to_i
  174. #~  # end
  175.   #--------------------------------------------------------------------------
  176.   # ● 获取金钱
  177.   #--------------------------------------------------------------------------
  178. #~   #def gold
  179. #~   #  return enemy.gold unless @enemy_actor_id
  180. #~    # return rand(@level + 1) + rand(10) + 10
  181. #~  # end
  182.   #--------------------------------------------------------------------------
  183.   # 掉落物品也在怪物界面设置
  184.   #--------------------------------------------------------------------------
  185. end



作者: 正太君    时间: 2015-5-17 18:56
RUBY 代码复制
  1. #______________________________________________________________________________
  2. # * 此脚本归66RPG - Idiot Script Association(ISA)所有,谢绝任何形式转载。
  3. #______________________________________________________________________________
  4.  
  5. #==============================================================================
  6. # ■ 接入包 - Access Package
  7. #------------------------------------------------------------------------------
  8. #   遵守协议:66RPG - Idiot Script Association(ISA)
  9. #   当前版本:1.0.0.0
  10. #------------------------------------------------------------------------------
  11. #   更新日记:忧雪の伤(2011.3.11)
  12. #             - 初始化
  13. #==============================================================================
  14.  
  15. #--------------------------------------------------------------------------
  16. # ● Start
  17. #--------------------------------------------------------------------------
  18.  
  19. module ISA
  20.    Use = {}
  21.    System = {}
  22.    Switch = {}
  23.    Actor = load_data("Data/Actors.rvdata")
  24. end
  25.  
  26. #--------------------------------------------------------------------------
  27. # ● 资料记录
  28. #--------------------------------------------------------------------------
  29.  
  30. module ISA
  31.    Use["接入包"] = [true, "1.0.0.0"]
  32. end
  33.  
  34. #_____________________________________________________________________________
  35. # * 此脚本归66RPG - Idiot Script Association(ISA)及坏人协会所有,谢绝任何形式转载。
  36. #-----------------------------------------------------------------------------
  37.  
  38. #==============================================================================
  39. # ■ 主角当怪物属性战斗 - Actor Change Enemy
  40. #------------------------------------------------------------------------------
  41. #   遵守协议:66RPG - Idiot Script Association(ISA)
  42. #             66RPG - 坏人协会
  43. #   初始脚本:退屈无聊
  44. #   更新优化:无
  45. #   当前版本:1.0.0.1
  46. #------------------------------------------------------------------------------
  47. #   更新日记:退屈无聊(2011.3.26)
  48. #             - 初始化
  49. #             退屈无聊(2011.3.26)
  50. #             - 修正level2计算时的BUG
  51. #             退屈无聊(2011.3.27)
  52. #             - 修正获取actor等级的BUG
  53. #==============================================================================
  54.  
  55. #--------------------------------------------------------------------------
  56. # ● 资料记录
  57. #--------------------------------------------------------------------------
  58.  
  59. module ISA
  60.    Use["主角当怪物战斗"] = [true, "1.0.0.1"]
  61.    System["主角当怪物战斗"] = {}
  62. end
  63.  
  64. #--------------------------------------------------------------------------
  65. # ● 设定部分
  66. #--------------------------------------------------------------------------
  67.  
  68. module ISA
  69.   System["主角当怪物战斗"]["难度"] = 10
  70.   System["主角当怪物战斗"]["怪物名改为角色名"] = false
  71.   System["主角当怪物战斗"]["显示怪物等级"] = true
  72. end
  73.  
  74. class Game_Enemy < Game_Battler
  75.   attr_accessor :level                         # 怪物等级
  76.   include ISA
  77.   def initialize(index, enemy_id)
  78.     super()
  79.     @index = index
  80.     @enemy_id = enemy_id
  81.     enemy = $data_enemies[@enemy_id]
  82.     @original_name = enemy.name
  83.     @letter = ''
  84.     @plural = false
  85.     @screen_x = 0
  86.     @screen_y = 0
  87.     @battler_name = enemy.battler_name
  88.     @battler_hue = enemy.battler_hue
  89.     @original_name, @enemy_actor_id, set_level = *enemy.name.split("_")
  90.     if set_level
  91.       @level = set_level.to_i
  92.     else  
  93.       @level = System["主角当怪物战斗"]["难度"]
  94.     end  
  95.     @cp = 65535
  96.     @hp = maxhp
  97.     @mp = maxmp
  98.   end
  99.  
  100.   def name
  101.     return @original_name unless @enemy_actor_id
  102.     if System["主角当怪物战斗"]["怪物名改为角色名"]
  103.       if System["主角当怪物战斗"]["显示怪物等级"]
  104.         return $data_actors[@enemy_actor_id.to_i].name + @level.to_s + "级"
  105.       else
  106.         return $data_actors[@enemy_actor_id.to_i].name
  107.       end
  108.     else
  109.       if System["主角当怪物战斗"]["显示怪物等级"]
  110.         return @original_name + @level.to_s + "级"
  111.       else
  112.         return @original_name
  113.       end
  114.     end
  115.   end
  116.  
  117.   def base_maxhp
  118.     return enemy.maxhp unless @enemy_actor_id
  119.     return $data_actors[@enemy_actor_id.to_i].parameters[0, @level].to_i * 1.5
  120.   end
  121.   def base_maxmp
  122.     return enemy.maxmp unless @enemy_actor_id
  123.     return $data_actors[@enemy_actor_id.to_i].parameters[1, @level].to_i * 1
  124.   end
  125.   def base_atk # 获取基本攻击力
  126.     return enemy.atk unless @enemy_actor_id
  127.     return $data_actors[@enemy_actor_id.to_i].parameters[2, @level].to_i * 1
  128.   end
  129.   def base_def # 获取基本防御力
  130.     return enemy.def unless @enemy_actor_id
  131.     return $data_actors[@enemy_actor_id.to_i].parameters[3, @level].to_i * 3
  132.   end
  133.   def base_spi # 获取基本魔力
  134.     return enemy.spi unless @enemy_actor_id
  135.     return $data_actors[@enemy_actor_id.to_i].parameters[4, @level].to_i * 1
  136.   end
  137.   def base_agi # 获取基本敏捷
  138.     return enemy.agi unless @enemy_actor_id
  139.     return $data_actors[@enemy_actor_id.to_i].parameters[5, @level].to_i * 2
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # 命中率、会心一击率、闪躲率、受伤率、属性修正、状态有效需要自己在怪物界面写
  143.   #--------------------------------------------------------------------------
  144.   #--------------------------------------------------------------------------
  145.   # ● 计算经验值
  146.   #--------------------------------------------------------------------------
  147. #~  # def make_exp_list
  148. #~    # return unless @enemy_actor_id
  149. #~    # @exp_list[1] = @exp_list[100] = 0
  150. #~    # m = $data_actors[@enemy_actor_id.to_i].exp_basis
  151. #~    # n = 0.75 + $data_actors[@enemy_actor_id.to_i].exp_inflation / 200.0;
  152. #~    # for i in 2..99
  153. #~    #   @exp_list[i] = @exp_list[i-1] + Integer(m)
  154. #~     #  m *= 1 + n;
  155. #~    #   n *= 0.9;
  156. #~   #  end
  157. #~ #  end
  158.   #--------------------------------------------------------------------------
  159.   # ● 获取经验值
  160.   #--------------------------------------------------------------------------
  161. #~   #def exp
  162. #~   #  return enemy.exp unless @enemy_actor_id
  163. #~   #  return (@exp_list[@level+1] / 7).to_i
  164. #~  # end
  165.   #--------------------------------------------------------------------------
  166.   # ● 获取金钱
  167.   #--------------------------------------------------------------------------
  168. #~   #def gold
  169. #~   #  return enemy.gold unless @enemy_actor_id
  170. #~    # return rand(@level + 1) + rand(10) + 10
  171. #~  # end
  172.   #--------------------------------------------------------------------------
  173.   # 掉落物品也在怪物界面设置
  174.   #--------------------------------------------------------------------------
  175. end





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