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

Project1

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

[已经解决] 再新增两个状态(已经解决)

[复制链接]

Lv3.寻梦者

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

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

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

x
本帖最后由 fjm 于 2017-4-15 13:45 编辑

我依样画葫芦,自己尝试新增两个状态,弄了半个多小时,结果老是报错,只能又来请教了

想再增加两个后缀,一个是(将军) 出现率10% ,HP2倍,其他属性1.4倍,掉落4倍,经验4倍,金钱4倍
一个是(战神) 出现率10% ,HP2倍,其他属性1.5倍,掉落5倍,经验5倍,金钱5倍

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 = 2
  19.   Tan_enemy_by_num = 1.1
  20.   Tan_enemy_by_egold = 2
  21.   Tan_enemy_by_eexp = 2
  22.   Tan_enemy_by_edrop = 2
  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
  102.  
  103. module Tan_by_enemy_set
  104.   Boss_by = 15 #Boss出现几率
  105.   Boss_hp = 2
  106.   Boss_num = 1.2
  107.   Boss_gold = 2.5
  108.   Boss_exp = 2.5
  109.   Boss_drop = 2.5
  110.   NO_BOSS = [2,3]#不会成为BOSS的敌人
  111.   BB_by = 10 #Boss+精英出现几率
  112.   BB_hp = 2
  113.   BB_num = 1.3
  114.   BB_gold = 3
  115.   BB_exp = 3
  116.   BB_drop = 3
  117. end
  118. class Game_Enemy < Game_Battler
  119.   attr_reader   :is_by_boss  # 是否boss
  120.   attr_reader   :is_bb  # 是否boss+精英
  121.   def init_by_enemy
  122.         @is_by = false
  123.         @is_by_boss = false
  124.         @is_bb = false
  125.         @is_by = true if rand(100) <= Tan_by_enemy_set::Tan_enemy_by && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
  126.         @is_by_boss = true if rand(100)+100 <= Tan_by_enemy_set::Boss_by+100 && !Tan_by_enemy_set::NO_BOSS.include?(enemy_id)
  127.         @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)
  128.         @is_by = false if @is_by_boss == true || @is_bb == true
  129.         @is_by_boss = false if @is_by == true || @is_bb == true
  130.         @is_bb = false if @is_by == true || @is_by_boss == true
  131.         @original_name = @original_name + "(精英)" if @is_by == true
  132.         @original_name = @original_name + "(boss)" if @is_by_boss == true
  133.         @original_name = @original_name + "(boss+精英)" if @is_bb == true
  134.         @hp = mhp
  135.         @mp = mmp
  136.   end
  137.   def is_by_boss?
  138.         return true if @is_by_boss
  139.         return false
  140.   end
  141.   def is_bb?
  142.         return true if @is_bb
  143.         return false
  144.   end
  145.       alias boss_param_base param_base
  146.       def param_base(param_id)
  147.         v = boss_param_base(param_id)
  148.         v *= Tan_by_enemy_set::Boss_num if is_by_boss?
  149.         v *= Tan_by_enemy_set::BB_num if is_bb?
  150.         return v.to_i
  151.       end
  152.       alias boss_exp exp
  153.       def exp
  154.         v = boss_exp
  155.         v *= Tan_by_enemy_set::Boss_exp if is_by_boss?
  156.         v *= Tan_by_enemy_set::BB_exp if is_bb?
  157.         return v.to_i
  158.       end
  159.       alias boss_mhp mhp
  160.       def mhp
  161.         v = boss_mhp
  162.         v *= Tan_by_enemy_set::Boss_hp if is_by_boss?
  163.         v *= Tan_by_enemy_set::BB_hp if is_bb?
  164.         return v.to_i
  165.       end
  166.       alias boss_gold gold
  167.       def gold
  168.         v = boss_gold
  169.         v *= Tan_by_enemy_set::Boss_gold if is_by_boss?
  170.         v *= Tan_by_enemy_set::BB_gold if is_bb?
  171.         return v.to_i
  172.       end
  173.       alias boss_drop_item_rate drop_item_rate
  174.       def drop_item_rate
  175.         v = boss_drop_item_rate
  176.         v *= Tan_by_enemy_set::Boss_drop if is_by_boss?
  177.         v *= Tan_by_enemy_set::BB_drop if is_bb?
  178.         return v
  179.       end
  180. end

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
2
发表于 2017-4-15 12:21:21 手机端发表。 | 只看该作者
属性上增加数值没什么意思啊,精英怪应该有类似狂暴的效果,比如横版里的移动加快带有残影效果,技能变化等等,直接设定成一个新的敌人多方便呀,遇敌率设置下。

点评

fjm
我感觉这样随机更有意思点  发表于 2017-4-15 12:52
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

3
发表于 2017-4-15 13:34:18 | 只看该作者
本帖最后由 魔法丶小肉包 于 2017-4-15 13:36 编辑

作为插件在下方新开一栏使用
RUBY 代码复制
  1. module Tan_by_enemy_set
  2.   Bossj_by = 10 #将军出现几率
  3.   Bossj_hp = 2
  4.   Bossj_num = 1.4
  5.   Bossj_gold = 4
  6.   Bossj_exp = 4
  7.   Bossj_drop = 4
  8.   NO_BOSSj = [2,3]#不会成为将军的敌人
  9.   Bossz_by = 10 #战神出现几率
  10.   Bossz_hp = 2
  11.   Bossz_num = 1.5
  12.   Bossz_gold = 5
  13.   Bossz_exp = 5
  14.   Bossz_drop = 5
  15.   NO_BOSSz = [2,3]#不会成为战神的敌人
  16. end
  17. class Game_Enemy < Game_Battler
  18.       attr_reader   :is_by_boss_j  # 是否将军
  19.       attr_reader   :is_by_boss_z  # 是否战神
  20.      def init_by_enemy
  21.             @is_by = false
  22.             @is_by_boss = false
  23.             @is_bb = false
  24.             @is_by_boss_j = false
  25.             @is_by_boss_z = false
  26.             @is_by = true if rand(100) <= Tan_by_enemy_set::Tan_enemy_by && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
  27.             @is_by_boss = true if rand(100)+100 <= Tan_by_enemy_set::Boss_by+100 && !Tan_by_enemy_set::NO_BOSS.include?(enemy_id)
  28.             @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)
  29.             @is_by_boss_j = true if rand(100)+300 <= Tan_by_enemy_set::Bossj_by+300 && !Tan_by_enemy_set::NO_BOSSj.include?(enemy_id)
  30.             @is_by_boss_z = true if rand(100)+400 <= Tan_by_enemy_set::Bossz_by+400 && !Tan_by_enemy_set::NO_BOSSz.include?(enemy_id)
  31.             @is_by = false if @is_by_boss == true || @is_bb == true || @is_by_boss_j == true || @is_by_boss_z == true
  32.             @is_by_boss = false if @is_by == true || @is_bb == true || @is_by_boss_j == true || @is_by_boss_z == true
  33.             @is_bb = false if @is_by == true || @is_by_boss == true || @is_by_boss_j == true || @is_by_boss_z == true
  34.             @is_by_boss_j = false if @is_by == true || @is_by_boss == true || @is_bb == true || @is_by_boss_z == true
  35.             @is_by_boss_z = false if @is_by == true || @is_by_boss == true || @is_bb == true || @is_by_boss_j == true
  36.             @original_name = @original_name + "(精英)" if @is_by == true
  37.             @original_name = @original_name + "(boss)" if @is_by_boss == true
  38.             @original_name = @original_name + "(boss+精英)" if @is_bb == true
  39.             @original_name = @original_name + "(将军)" if @is_by_boss_j == true
  40.             @original_name = @original_name + "(战神)" if @is_by_boss_z == true
  41.             @hp = mhp
  42.             @mp = mmp
  43.       end
  44.       def is_by_boss_j?
  45.             return true if @is_by_boss_j
  46.             return false
  47.           end
  48.       def is_by_boss_z?
  49.             return true if @is_by_boss_z
  50.             return false
  51.       end
  52.           alias bossj_param_base param_base
  53.           def param_base(param_id)
  54.             v = bossj_param_base(param_id)
  55.             v *= Tan_by_enemy_set::Bossj_num if is_by_boss_j?
  56.             v *= Tan_by_enemy_set::Bossz_num if is_by_boss_z?
  57.             return v.to_i
  58.           end
  59.           alias bossj_exp exp
  60.           def exp
  61.             v = bossj_exp
  62.             v *= Tan_by_enemy_set::Bossj_exp if is_by_boss_j?
  63.             v *= Tan_by_enemy_set::Bossz_exp if is_by_boss_z?
  64.             return v.to_i
  65.           end
  66.           alias bossj_mhp mhp
  67.           def mhp
  68.             v = bossj_mhp
  69.             v *= Tan_by_enemy_set::Bossj_hp if is_by_boss_j?
  70.             v *= Tan_by_enemy_set::Bossz_hp if is_by_boss_z?
  71.             return v.to_i
  72.           end
  73.           alias bossj_gold gold
  74.           def gold
  75.             v = bossj_gold
  76.             v *= Tan_by_enemy_set::Bossj_gold if is_by_boss_j?
  77.             v *= Tan_by_enemy_set::Bossz_gold if is_by_boss_z?
  78.             return v.to_i
  79.           end
  80.           alias bossj_drop_item_rate drop_item_rate
  81.           def drop_item_rate
  82.             v = bossj_drop_item_rate
  83.             v *= Tan_by_enemy_set::Bossj_drop if is_by_boss_j?
  84.             v *= Tan_by_enemy_set::Bossz_drop if is_by_boss_z?
  85.             return v
  86.           end
  87.     end

点评

叫我肉包就行了=w=  发表于 2017-4-15 13:46
fjm
太感谢魔法丶小肉包了,非常感谢  发表于 2017-4-15 13:44

评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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