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

Project1

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

[已经解决] 关于难度与精英怪设定的class Game_Enemy类冲突问题请教。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
87
在线时间
60 小时
注册时间
2010-8-28
帖子
43
跳转到指定楼层
1
发表于 2021-11-9 04:58:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
=begin
# 精英敌人,作者:66RPG的tan12345
# 功能:遇敌时,敌人有一定几率(可设定)变成精英,精英怪比普通怪属性有加成(可修改),
#       当然了,精英怪的经验、金钱、掉落率也同样有加成。
#       也可以设定指定的敌人不会变成精英(比如BOSS)
#
# 使用方法:将脚本插入到main上
#
# 难度:普通,精英,噩梦,地狱,超神
#
=end

module Jy_enemy_set
  
  #设置精英怪: by=出现率,param=基础属性,drop=掉落,gold=金钱,exp=经验值
  Jy1_by    = 10
  Jy1_param = 2.1
  Jy1_drop  = 8001
  Jy1_gold  = 1.1
  Jy1_exp   = 1.0
  
  Jy2_by    = 10
  Jy2_param = 3.5
  Jy2_drop  = 9001
  Jy2_gold  = 1.3
  Jy2_exp   = 1.1
  
  Jy3_by    = 25
  Jy3_param = 4.9
  Jy3_drop  = 9001
  Jy3_gold  = 1.5
  Jy3_exp   = 1.3
  
  Jy4_by    = 30
  Jy4_param = 6.5
  Jy4_drop  = 7003
  Jy4_gold  = 1.7
  Jy4_exp   = 1.7
  
  Jy5_by    = 30
  Jy5_param = 8.0
  Jy5_drop  = 9005.0
  Jy5_gold  = 2.1
  Jy5_exp   = 2.7
  
  #不会成为精英怪的敌人
  No_jy = [195]

end

#精英初始化
class Game_Enemy < Game_Battler
  attr_reader   :is_jy1
  attr_reader   :is_jy2
  attr_reader   :is_jy3
  attr_reader   :is_jy4
  attr_reader   :is_jy5

  Jy1_name = "普通·"
  Jy2_name = "精英·"
  Jy3_name = "噩梦·"
  Jy4_name = "地狱·"
  Jy5_name = "超神·"
  

  def init_by_enemy
    @is_jy1 = false
    @is_jy2 = false
    @is_jy3 = false
    @is_jy4 = false
    @is_jy5 = false

    @is_jy1 = true if rand(100) <= Jy_enemy_set::Jy1_by && !Jy_enemy_set::No_jy.include?(enemy_id)
    @is_jy2 = true if rand(100) <= Jy_enemy_set::Jy2_by && !Jy_enemy_set::No_jy.include?(enemy_id)
    @is_jy3 = true if rand(100) <= Jy_enemy_set::Jy3_by && !Jy_enemy_set::No_jy.include?(enemy_id)
    @is_jy4 = true if rand(100) <= Jy_enemy_set::Jy4_by && !Jy_enemy_set::No_jy.include?(enemy_id)
    @is_jy5 = true if rand(100) <= Jy_enemy_set::Jy5_by && !Jy_enemy_set::No_jy.include?(enemy_id)


    @is_jy1 = false if @is_jy2 == true || @is_jy3 == true || @is_jy4 == true || @is_jy5 == true
    @is_jy2 = false if @is_jy1 == true || @is_jy3 == true || @is_jy4 == true || @is_jy5 == true
    @is_jy3 = false if @is_jy2 == true || @is_jy1 == true || @is_jy4 == true || @is_jy5 == true
    @is_jy4 = false if @is_jy2 == true || @is_jy3 == true || @is_jy1 == true || @is_jy5 == true
    @is_jy5 = false if @is_jy2 == true || @is_jy3 == true || @is_jy4 == true || @is_jy1 == true

   
    @original_name = Jy2_name + @original_name if @is_jy2 == true
    @original_name = Jy3_name + @original_name if @is_jy3 == true
    @original_name = Jy4_name + @original_name if @is_jy4 == true
    @original_name = Jy5_name + @original_name if @is_jy5 == true
   
    @hp = mhp
    @mp = mmp
  end

  #是否精英
    def is_jy1?
    return true if @is_jy1
    return false
  end
    def is_jy2?
    return true if @is_jy2
    return false
  end
    def is_jy3?
    return true if @is_jy3
    return false
  end
    def is_jy4?
    return true if @is_jy4
    return false
  end
    def is_jy5?
    return true if @is_jy5
    return false
  end
  #初始化
  alias tan_by_enemy_initialize initialize
  def initialize(index, enemy_id)
    tan_by_enemy_initialize(index, enemy_id)
    init_by_enemy
  end
  
  #获取普通能力
  alias tan_by_enemy_param_base param_base
  def param_base(param_id,random = true)
    v = tan_by_enemy_param_base(param_id)
    v *=Jy_enemy_set::Jy1_param if is_jy1? && random
    v *=Jy_enemy_set::Jy2_param if is_jy2? && random
    v *=Jy_enemy_set::Jy3_param if is_jy3? && random
    v *=Jy_enemy_set::Jy4_param if is_jy4? && random
    v *=Jy_enemy_set::Jy5_param if is_jy5? && random
    return v.to_i
  end
  
  #获取经验
  alias tan_by_enemy_exp exp
  def exp
    v = tan_by_enemy_exp
    v *= Jy_enemy_set::Jy1_exp if is_jy1?
    v *= Jy_enemy_set::Jy2_exp if is_jy2?
    v *= Jy_enemy_set::Jy3_exp if is_jy3?
    v *= Jy_enemy_set::Jy4_exp if is_jy4?
    v *= Jy_enemy_set::Jy5_exp if is_jy5?
    return v.to_i
  end
  
  #获取金钱
  alias tan_by_enemy_gold gold
  def gold
    v = tan_by_enemy_gold
    v *= Jy_enemy_set::Jy1_gold if is_jy1?
    v *= Jy_enemy_set::Jy2_gold if is_jy2?
    v *= Jy_enemy_set::Jy3_gold if is_jy3?
    v *= Jy_enemy_set::Jy4_gold if is_jy4?
    v *= Jy_enemy_set::Jy5_gold if is_jy5?      
    return v.to_i
  end
  
  #获取掉落
  alias tan_by_enemy_drop_item_rate drop_item_rate
  def drop_item_rate
    v = tan_by_enemy_drop_item_rate
    v *= Jy_enemy_set::Jy1_drop if is_jy1?
    v *= Jy_enemy_set::Jy2_drop if is_jy2?
    v *= Jy_enemy_set::Jy3_drop if is_jy3?
    v *= Jy_enemy_set::Jy4_drop if is_jy4?
    v *= Jy_enemy_set::Jy5_drop if is_jy5?
    return v
  end
end


因为加了一个难度选择脚本,然后又搞了精英怪的设置,大佬说冲突都在class Game_Enemy类里,要融合,才能都起作用,请问这样算融合了吗?

Lv5.捕梦者

梦石
0
星屑
24287
在线时间
5046 小时
注册时间
2016-3-8
帖子
1618
2
发表于 2021-11-9 07:49:29 | 只看该作者
除非你那难度选择脚本写得不明所以,
不然只需把"精英怪脚本"放到"难度选择脚本"的下方,
就应该不会起冲突的说,,,
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
87
在线时间
60 小时
注册时间
2010-8-28
帖子
43
3
 楼主| 发表于 2021-11-9 11:03:34 | 只看该作者
alexncf125 发表于 2021-11-9 07:49
除非你那难度选择脚本写得不明所以,
不然只需把"精英怪脚本"放到"难度选择脚本"的下方,
就应该不会起冲突 ...

谢谢大神。貌似真是这样。调整了下顺序,OK了。谢谢大佬。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-26 14:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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