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

Project1

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

[已经解决] 随机出现两种状态的敌人

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2180
在线时间
1011 小时
注册时间
2015-10-17
帖子
1285
跳转到指定楼层
1
发表于 2017-4-9 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 fjm 于 2017-4-9 16:24 编辑

这是我的想法,也不知道是不是可行,35%几率出现(精英)后缀的敌人,20%的几率出现(BOSS)后缀的敌人,10%出现(BOSS精英)后缀的敌人
(精英)敌人掉落物品几率3倍,金钱5倍,经验3倍,最大HP,2倍,其他属性攻击,敏捷,防御1.1倍
(BOSS)敌人掉落物品几率5倍,金钱10倍,经验5倍,最大HP,3倍,其他属性攻击,敏捷,防御1.2倍
(BOSS精英)敌人掉落物品几率8倍,金钱15倍,经验8倍,最大HP,5倍,其他属性攻击,敏捷,防御1.3倍

RUBY 代码复制
  1. =begin
  2. # 精英敌人,作者:66RPG的tan12345
  3. # 功能:遇敌时,敌人有一定几率(可设定)变成精英,精英怪比普通怪属性有加成(可修改),
  4. #       当然了,精英怪的经验、金钱、掉落率也同样有加成。
  5. #       也可以设定指定的敌人不会变成精英(比如BOSS)
  6. #
  7. # 使用方法:将脚本插入到main上
  8. #
  9. =end
  10.  
  11. module Tan_by_enemy_set
  12.   #精英怪出现几率,30代表30%
  13.   Tan_enemy_by = 35
  14.   #Tan_enemy_by_num = 2 2倍属性
  15. #~   Tan_enemy_by_egold = 3 3倍金钱
  16. #~   Tan_enemy_by_eexp = 3 3倍经验
  17. #~   Tan_enemy_by_edrop = 3 3倍掉落率
  18.   Tan_enemy_by_emhp = 2
  19.   Tan_enemy_by_num = 1.1
  20.   Tan_enemy_by_egold = 5
  21.   Tan_enemy_by_eexp = 3
  22.   Tan_enemy_by_edrop = 3
  23.   #不会成为精英的敌人
  24.   NO_BY_ENEMY = [2,3]#表示2号和3号敌人不会变成精英,适合设定BOSS
  25. end
  26. class Game_Enemy < Game_Battler
  27.  
  28.   attr_reader   :is_by  # 是否精英
  29.  
  30.   #--------------------------------------------------------------------------
  31.   # ● 精英初始化
  32.   #--------------------------------------------------------------------------
  33.   def init_by_enemy
  34.     @is_by = false
  35.     @is_by = true if rand(100) <= Tan_by_enemy_set::Tan_enemy_by && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
  36.     @original_name = @original_name + "(精英)" if @is_by == true
  37.     @hp = mhp
  38.     @mp = mmp
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 是否精英
  42.   #--------------------------------------------------------------------------
  43.   def is_by?
  44.     return true if @is_by
  45.     return false
  46.   end
  47.  
  48.   #--------------------------------------------------------------------------
  49.   # ● 初始化对象
  50.   #--------------------------------------------------------------------------
  51.   alias tan_by_enemy_initialize initialize
  52.   def initialize(index, enemy_id)
  53.     tan_by_enemy_initialize(index, enemy_id)
  54.     init_by_enemy
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 获取普通能力的基础值
  58.   #--------------------------------------------------------------------------
  59.   alias tan_by_enemy_param_base param_base
  60.   def param_base(param_id)
  61.     v = tan_by_enemy_param_base(param_id)
  62.     v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
  63.     return v.to_i
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 获取经验值
  67.   #--------------------------------------------------------------------------
  68.   alias tan_by_enemy_exp exp
  69.   def exp
  70.     v = tan_by_enemy_exp
  71.     v *= Tan_by_enemy_set::Tan_enemy_by_eexp if is_by?
  72.     return v.to_i
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 获取hp
  76.   #--------------------------------------------------------------------------
  77.   alias tan_by_enemy_mhp mhp
  78.   def mhp
  79.     v = tan_by_enemy_mhp
  80.     v *= Tan_by_enemy_set::Tan_enemy_by_emhp if is_by?
  81.     return v.to_i
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 获取金钱
  85.   #--------------------------------------------------------------------------
  86.   alias tan_by_enemy_gold gold
  87.   def gold
  88.     v = tan_by_enemy_gold
  89.     v *= Tan_by_enemy_set::Tan_enemy_by_egold if is_by?
  90.     return v.to_i
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 获取物品掉率的倍率
  94.   #--------------------------------------------------------------------------
  95.   alias tan_by_enemy_drop_item_rate drop_item_rate
  96.   def drop_item_rate
  97.     v = tan_by_enemy_drop_item_rate
  98.     v *= Tan_by_enemy_set::Tan_enemy_by_edrop if is_by?
  99.     return v
  100.   end
  101. end


RUBY 代码复制
  1. =begin
  2. # 精英敌人,作者:66RPG的tan12345
  3. # 功能:遇敌时,敌人有一定几率(可设定)变成精英,精英怪比普通怪属性有加成(可修改),
  4. #       当然了,精英怪的经验、金钱、掉落率也同样有加成。
  5. #       也可以设定指定的敌人不会变成精英(比如BOSS)
  6. #
  7. # 使用方法:将脚本插入到main上
  8. #
  9. =end
  10.  
  11. module Tan_by_enemy_set
  12.   #精英怪出现几率,30代表30%
  13.   Tan_enemy_by = 20
  14.   #Tan_enemy_by_num = 2 2倍属性
  15. #~   Tan_enemy_by_egold = 3 3倍金钱
  16. #~   Tan_enemy_by_eexp = 3 3倍经验
  17. #~   Tan_enemy_by_edrop = 3 3倍掉落率
  18.   Tan_enemy_by_emhp = 3
  19.   Tan_enemy_by_num = 1.2
  20.   Tan_enemy_by_egold = 10
  21.   Tan_enemy_by_eexp = 5
  22.   Tan_enemy_by_edrop = 5
  23.   #不会成为精英的敌人
  24.   NO_BY_ENEMY = [2,3]#表示2号和3号敌人不会变成精英,适合设定BOSS
  25. end
  26. class Game_Enemy < Game_Battler
  27.  
  28.   attr_reader   :is_by  # 是否精英
  29.  
  30.   #--------------------------------------------------------------------------
  31.   # ● 精英初始化
  32.   #--------------------------------------------------------------------------
  33.   def init_by_enemy
  34.     @is_by = false
  35.     @is_by = true if rand(100) <= Tan_by_enemy_set::Tan_enemy_by && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
  36.     @original_name = @original_name + "(boss)" if @is_by == true
  37.     @hp = mhp
  38.     @mp = mmp
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 是否精英
  42.   #--------------------------------------------------------------------------
  43.   def is_by?
  44.     return true if @is_by
  45.     return false
  46.   end
  47.  
  48.   #--------------------------------------------------------------------------
  49.   # ● 初始化对象
  50.   #--------------------------------------------------------------------------
  51.   alias tan_by_enemy_initialize initialize
  52.   def initialize(index, enemy_id)
  53.     tan_by_enemy_initialize(index, enemy_id)
  54.     init_by_enemy
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 获取普通能力的基础值
  58.   #--------------------------------------------------------------------------
  59.   alias tan_by_enemy_param_base param_base
  60.   def param_base(param_id)
  61.     v = tan_by_enemy_param_base(param_id)
  62.     v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
  63.     return v.to_i
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 获取经验值
  67.   #--------------------------------------------------------------------------
  68.   alias tan_by_enemy_exp exp
  69.   def exp
  70.     v = tan_by_enemy_exp
  71.     v *= Tan_by_enemy_set::Tan_enemy_by_eexp if is_by?
  72.     return v.to_i
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 获取hp
  76.   #--------------------------------------------------------------------------
  77.   alias tan_by_enemy_mhp mhp
  78.   def mhp
  79.     v = tan_by_enemy_mhp
  80.     v *= Tan_by_enemy_set::Tan_enemy_by_emhp if is_by?
  81.     return v.to_i
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 获取金钱
  85.   #--------------------------------------------------------------------------
  86.   alias tan_by_enemy_gold gold
  87.   def gold
  88.     v = tan_by_enemy_gold
  89.     v *= Tan_by_enemy_set::Tan_enemy_by_egold if is_by?
  90.     return v.to_i
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 获取物品掉率的倍率
  94.   #--------------------------------------------------------------------------
  95.   alias tan_by_enemy_drop_item_rate drop_item_rate
  96.   def drop_item_rate
  97.     v = tan_by_enemy_drop_item_rate
  98.     v *= Tan_by_enemy_set::Tan_enemy_by_edrop if is_by?
  99.     return v
  100.   end
  101. end

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 2017-4-9 16:41:49 | 只看该作者
未测试,可能有BUG,在下方新开一栏作为插件脚本使用
RUBY 代码复制
  1. module Tan_by_enemy_set
  2.   Boss_by = 20 #Boss出现几率
  3.   Boss_hp = 3
  4.   Boss_num = 1.2
  5.   Boss_gold = 10
  6.   Boss_exp = 5
  7.   Boss_drop = 5
  8.   NO_BOSS = [2,3]#不会成为BOSS的敌人
  9.   BB_by = 10 #Boss+精英出现几率
  10.   BB_hp = Boss_hp + Tan_enemy_by_emhp
  11.   BB_num = 1.3
  12.   BB_gold = Boss_gold + Tan_enemy_by_egold
  13.   BB_exp = Boss_exp + Tan_enemy_by_eexp
  14.   BB_drop = Boss_drop + Tan_enemy_by_edrop
  15. end
  16. class Game_Enemy < Game_Battler
  17.   attr_reader   :is_by_boss  # 是否boss
  18.   attr_reader   :is_bb  # 是否boss+精英
  19.   def init_by_enemy
  20.         @is_by = false
  21.         @is_by_boss = false
  22.         @is_bb = false
  23.         @is_by = true if rand(100) <= Tan_by_enemy_set::Tan_enemy_by && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
  24.         @is_by_boss = true if rand(100)+100 <= Tan_by_enemy_set::Boss_by+100 && !Tan_by_enemy_set::NO_BOSS.include?(enemy_id)
  25.         @is_bb = true if rand(100)+200 <= Tan_by_enemy_set::BB_by+200 && !Tan_by_enemy_set::NO_BOSS.include?(enemy_id) && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
  26.         @is_by = false if @is_by_boss == true || @is_bb == true
  27.         @is_by_boss = false if @is_by == true || @is_bb == true
  28.         @is_bb = false if @is_by == true || @is_by_boss == true
  29.         @original_name = @original_name + "(精英)" if @is_by == true
  30.         @original_name = @original_name + "(boss)" if @is_by_boss == true
  31.         @original_name = @original_name + "(boss+精英)" if @is_bb == true
  32.         @hp = mhp
  33.         @mp = mmp
  34.   end
  35.   def is_by_boss?
  36.         return true if @is_by_boss
  37.         return false
  38.   end
  39.   def is_bb?
  40.         return true if @is_bb
  41.         return false
  42.   end
  43.       alias boss_param_base param_base
  44.       def param_base(param_id)
  45.         v = boss_param_base(param_id)
  46.         v *= Tan_by_enemy_set::Boss_num if is_by_boss?
  47.         v *= Tan_by_enemy_set::BB_num if is_bb?
  48.         return v.to_i
  49.       end
  50.       alias boss_exp exp
  51.       def exp
  52.         v = boss_exp
  53.         v *= Tan_by_enemy_set::Boss_exp if is_by_boss?
  54.         v *= Tan_by_enemy_set::BB_exp if is_bb?
  55.         return v.to_i
  56.       end
  57.       alias boss_mhp mhp
  58.       def mhp
  59.         v = boss_mhp
  60.         v *= Tan_by_enemy_set::Boss_hp if is_by_boss?
  61.         v *= Tan_by_enemy_set::BB_hp if is_bb?
  62.         return v.to_i
  63.       end
  64.       alias boss_gold gold
  65.       def gold
  66.         v = boss_gold
  67.         v *= Tan_by_enemy_set::Boss_gold if is_by_boss?
  68.         v *= Tan_by_enemy_set::BB_gold if is_bb?
  69.         return v.to_i
  70.       end
  71.       alias boss_drop_item_rate drop_item_rate
  72.       def drop_item_rate
  73.         v = boss_drop_item_rate
  74.         v *= Tan_by_enemy_set::Boss_drop if is_by_boss?
  75.         v *= Tan_by_enemy_set::BB_drop if is_bb?
  76.         return v
  77.       end
  78. end

点评

fjm
试了下可以用了,真是太感谢了  发表于 2017-4-9 16:49

评分

参与人数 1星屑 +250 收起 理由
RaidenInfinity + 250 认可答案

查看全部评分

笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7570
在线时间
1157 小时
注册时间
2016-9-10
帖子
165

开拓者

3
发表于 2017-4-9 18:20:15 | 只看该作者
请问dalao,能不能弄成敌群?
这样可以只加强BOSS战,降低野战,谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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