查看: 46109|回复: 90

[原创发布] 随机精英怪物

[复制链接]
梦石
0
星屑
4058
在线时间
836 小时
注册时间
2013-7-29
回帖
145

开拓者

发表于 2015-12-2 16:24:13 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 dongdongdjh 于 2017-10-12 15:20 编辑

遇敌有20%几率出现精英怪物,
怪物名前会带有【精英】字样。
精英的能力值、经验、掉落金币、掉落物品概率是普通怪物的1.2倍。

[fold=图片一] QQ图片20151202155350.png [/fold]

[fold=图片二] QQ图片20151203103513.png [/fold]

[fold=图片三] QQ图片20151203103546.png [/fold]

[fold]
[pre lang="JavaScript"]
//=============================================================================
// EliteEnemy.js
//=============================================================================

/*:
* @plugindesc Elite Enemy Ver 1.06
* @author Morpho(dongdongDJH)
*
*
* @param EliteEnemySwitch
* @desc 控制是否会出现精英的开关(默认关闭)。
* @default
*
* @param EliteEnemyTitle
* @desc 精英前缀
* @default 【精英】
*
* @param EliteEnemyChances
* @desc 生成精英的几率
* @default 20
*
* @param EliteEnemyAdditionParamBase
* @desc 精英能力加成值
* @default 1.2
*
* @param EliteEnemyAdditionExp
* @desc 精英经验加成值
* @default 1.2
*
* @param EliteEnemyAdditionGold
* @desc 精英金币加成值
* @default 1.2
*
* @param EliteEnemyAdditionDropItemRate
* @desc 精英物品掉率加成值
* @default 1.2
*
* @help
*  备注含有NoElite的不会生成精英
*  现在可以在enemies的备注栏单独设置精英的各项数值了。
*        格式:<elite:生成精英几率,精英能力加成值,精英经验加成值,精英金币加成值,物品掉落率加成值>
*  例:<elite:30,1.2,1.3,1.1,2>
*
*/


(function() {
        var Morpho_EliteEnemy_parameters = PluginManager.parameters('EliteEnemy');
        var Morpho_EliteEnemy_Switch = Number(Morpho_EliteEnemy_parameters['EliteEnemySwitch']);
        var Morpho_EliteEnemy_Title = String(Morpho_EliteEnemy_parameters['EliteEnemyTitle']);
        var Morpho_EliteEnemy_Chances = Number(Morpho_EliteEnemy_parameters['EliteEnemyChances'] || 20);
        var Morpho_EliteEnemy_AdditionParamBase = Number(Morpho_EliteEnemy_parameters['EliteEnemyAdditionParamBase'] || 1.2);
        var Morpho_EliteEnemy_AdditionExp = Number(Morpho_EliteEnemy_parameters['EliteEnemyAdditionExp'] || 1.2);
        var Morpho_EliteEnemy_AdditionGold = Number(Morpho_EliteEnemy_parameters['EliteEnemyAdditionGold'] || 1.2);
        var Morpho_EliteEnemy_AdditionDropItemRate = Number(Morpho_EliteEnemy_parameters['EliteEnemyAdditionDropItemRate'] || 1.2);


        Game_Enemy.prototype.initMembers = function() {
            Game_Battler.prototype.initMembers.call(this);
            this._enemyId = 0;
            this._letter = '';
            this._plural = false;
            this._screenX = 0;
            this._screenY = 0;
            this._elite = false;
        };

        Game_Enemy.prototype.initialize = function(enemyId, x, y) {
            Game_Battler.prototype.initialize.call(this);
            if (Math.random() * 100 < this.eliteEnemyChances(enemyId) && this.onElite()) {
                    this._elite = true;
            };
            this.setup(enemyId, x, y);
        };

        Game_Enemy.prototype.onElite = function() {
                var sw = Morpho_EliteEnemy_Switch;
                if (sw) {
                        return  $gameSwitches.value(sw);
                } else {
                        return true;
                };
        };

        Game_Enemy.prototype.isElite = function() {
                if (this.enemy().note.match('NoElite') != null) {
                        return false;
                } else {
                        if (this._elite == true) {
                                return true;
                        } else {
                                return false;
                        };
                };
        };

        Game_Enemy.prototype.originalName = function() {
            return (this.isElite() ? Morpho_EliteEnemy_Title : '') + this.enemy().name;
        };

        Game_Enemy.prototype.eliteEnemyChances = function(enemyId) {
                if ($dataEnemies[enemyId].meta.elite) {
                        return Number($dataEnemies[enemyId].meta.elite.split(",")[0] || Morpho_EliteEnemy_Chances);
                } else {
                        return Morpho_EliteEnemy_Chances;
                };
        };

        Game_Enemy.prototype.eliteEnemyAPB = function() {
                if (this.enemy().meta.elite) {
                        return Number(this.enemy().meta.elite.split(",")[1] || Morpho_EliteEnemy_AdditionParamBase);
                } else {
                        return Morpho_EliteEnemy_AdditionParamBase;
                };
        };

        Game_Enemy.prototype.eliteEnemyAE = function() {
                if (this.enemy().meta.elite) {
                        return Number(this.enemy().meta.elite.split(",")[2] || Morpho_EliteEnemy_AdditionExp);
                } else {
                        return Morpho_EliteEnemy_AdditionExp;
                };
        };

        Game_Enemy.prototype.eliteEnemyAG = function() {
                if (this.enemy().meta.elite) {
                        return Number(this.enemy().meta.elite.split(",")[3] || Morpho_EliteEnemy_AdditionGold);
                } else {
                        return Morpho_EliteEnemy_AdditionGold;
                };
        };

        Game_Enemy.prototype.eliteEnemyADIR = function() {
                if (this.enemy().meta.elite) {
                        return Number(this.enemy().meta.elite.split(",")[4] || Morpho_EliteEnemy_AdditionDropItemRate);
                } else {
                        return Morpho_EliteEnemy_AdditionDropItemRate;
                };
        };

        Game_Enemy.prototype.paramBase = function(paramId) {
            return parseInt(this.enemy().params[paramId] * (this.isElite() ? this.eliteEnemyAPB() : 1));
        };

        Game_Enemy.prototype.exp = function() {
            return parseInt(this.enemy().exp * (this.isElite() ? this.eliteEnemyAE() : 1));
        };

        Game_Enemy.prototype.gold = function() {
            return parseInt(this.enemy().gold * (this.isElite() ? this.eliteEnemyAG() : 1));
        };

        Game_Enemy.prototype.dropItemRate = function() {
            return (($gameParty.hasDropItemDouble() ? 2 : 1) * (this.isElite() ? this.eliteEnemyADIR() : 1));
        };
        
}());
[/pre]
[/fold]

版本更新至1.02 ,
修复了可能出现显示名字与实际情况不符的Bug;
添加了可以在插件管理器内修改精英出现几率和加成值的功能
该插件目前基本完成。( ^ω^)


版本更新至Ver 1.03
1.添加功能:能力值,经验,掉落金币,物品掉落率的加成率分别设定。
2.添加功能:可用开关设定是否出现精英。

PS:我的锅,插件里面敲错一个大小写导致物品掉落时报错,已紧急修复,感谢反馈BUG。

版本更新至Ver 1.04
添加功能:出默认精英出现率及加成值外,可自定义不同怪物的相关数值,具体设置方法见插件帮助。
如有bug,谢谢反馈。

PS:修复更改写法后一段语句的次序导致怪物HP异常的Bug。感谢反馈BUG。

Ver 1.05
优化功能:开关参数不填写,则默认开启精英插件。


Ver 1.06
优化功能:有人反映前缀【精英】太Low,所以加入了前缀自定义。


EliteEnemyVer1.06.7z (1.29 KB, 下载次数: 814, 售价: 1 星屑)


EleteEnemy的扩展插件 EliteEnemyPlugins.js,
该插件需EleteEnemy.js支持,加载在EleteEnemy.js之后。
如图所示:
QQ图片20151215135341.png
精英会显示不同的色调。


标准版,如图所示:
[fold] QQ图片20151206134853.png [/fold]
标准版链接:
EliteEnemyPlugins(标准版).7z (569 Bytes, 下载次数: 185, 售价: 1 星屑)

兼容AnimatedSVEnemies版,如图所示:
[fold] QQ图片20151215135119.png [/fold]
兼容AnimatedSVEnemies版链接:
EliteEnemyPlugins(兼容AnimatedSVEnemies版).7z (732 Bytes, 下载次数: 80, 售价: 1 星屑)

新增:精英体型略有增大。

标准附加体型差异版,如图所示:
[fold] QQ图片20151229142414.png [/fold]
标准版链接:
EliteEnemyPlugins(标准,Size版).7z (722 Bytes, 下载次数: 80, 售价: 1 星屑)

兼容AnimatedSVEnemies附加体型差异版,如图所示:
[fold] QQ图片20151229133120.png [/fold]
兼容AnimatedSVEnemies附加体型差异版链接:
EliteEnemyPlugins(兼容ASVE,Size版).7z (931 Bytes, 下载次数: 69, 售价: 1 星屑)


新增:兼容YEP_X_AnimatedSVEnemies版。

兼容YEP_X_AnimatedSVEnemies版,链接:
EliteEnemyPlugins(兼容YEP版).7z (854 Bytes, 下载次数: 90, 售价: 1 星屑)

兼容YEP_X_AnimatedSVEnemies附加体型差异版,链接:
EliteEnemyPlugins(兼容YEP,Size版).7z (1.03 KB, 下载次数: 394, 售价: 1 星屑)


该插件不再更新,目前优化套装脚本中!!!

点评

弱弱的问下,这么改变精英怪的颜色,默认的绿色有点慌  发表于 2020-2-5 17:37

评分

参与人数 3星屑 +66 梦石 +2 赞 +2 收起 理由
pj5207414 + 1 我很赞同
微笑的迪妮莎 + 1 很棒的功能
余烬之中 + 66 + 2 图书馆

查看全部评分

现在论坛上的少,有事联系
QQ:2287688663
梦石
0
星屑
4058
在线时间
836 小时
注册时间
2013-7-29
回帖
145

开拓者

 楼主| 发表于 2015-12-2 16:26:06 | 显示全部楼层
哦,对了。忘记说了。怪物备注栏内含有 NoElite的字样 不会生成精英怪。
现在论坛上的少,有事联系
QQ:2287688663
回复

使用道具 举报

梦石
0
星屑
50
在线时间
40 小时
注册时间
2014-12-22
回帖
11
发表于 2015-12-2 16:32:34 | 显示全部楼层
有想法。支持一下233
回复

使用道具 举报

梦石
0
星屑
50
在线时间
248 小时
注册时间
2010-8-22
回帖
105
发表于 2015-12-2 19:23:09 | 显示全部楼层
我用事件也实现了类似的功能,不过明显楼主这个会方便一些,我把自己的设计思路贴出来供楼主参考一下吧。
首先是配合 YEP BassTroopEvents 让指定 ID 的敌群设置的事件能被所有敌群应用,这样就不用逐个为敌群设置判断。
QQ截图20151202191521.jpg
然后是五个等级的精英状态(我仿照 MM 系列的说法称之为闪光,将来打算结合 SV 扩展动画弄几个bilingbiling的视觉效果)
QQ截图20151202191545.jpg
公共事件的话做几个判断,主要是:
防止剧情怪物闪光,万一遇到 Lv5 的闪光主角没法过去就冏了。
随着多周目(用一个变量来记录周目数)让敌群增强。
然后闪光几率用骰子的方式连续骰两次,得到 6x6 = 36 种可能,然后在纸上画表,点出闪光等级对应的数字。不过 36 底数但还是小了一些,又乘了个修正的倍率(例如这里是 1/5)进行修正。
QQ截图20151202191423.jpg
QQ截图20151202191507.jpg

用状态来做有不足点是在于怪物的 EXP 以及 G 不会按倍率变化。
回复 1 0

使用道具 举报

梦石
0
星屑
75
在线时间
75 小时
注册时间
2011-3-17
回帖
120
发表于 2015-12-2 21:03:18 | 显示全部楼层
有想法,鼓掌

点评

http://m.shabixiaoshuo.com/info-1229/ 花千骨  发表于 2015-12-15 21:09
回复

使用道具 举报

梦石
0
星屑
3167
在线时间
1078 小时
注册时间
2015-1-13
回帖
316

开拓者

发表于 2015-12-2 21:56:41 | 显示全部楼层
看过VA有类似的脚本,挺实用的,话说能否让精英的色调稍微与普通怪有点不同?

点评

嗯,不用改变太多可能导致看起来怪异,只需要改变一点点就行……做到类似制作敌人使用图片素材时候色调稍偏差一点就行吧,视觉上能区分就好  发表于 2015-12-6 03:27
绘制颜色,史莱姆这种还好,其他多色彩的怪物就不是太好了。加上一些闪烁的星光效果可能更好些。但是我是菜鸟啊,现在还没想好怎么弄。  发表于 2015-12-3 10:57
回复

使用道具 举报

梦石
0
星屑
388
在线时间
245 小时
注册时间
2011-11-20
回帖
295
发表于 2015-12-3 11:38:23 | 显示全部楼层
本帖最后由 墟源 于 2015-12-3 11:43 编辑

{:2_275:}不错俺试试能不能和怪物等级插件兼容

==============================================
好,可以兼容。

2123123123231.png
这里是个新人。
回复

使用道具 举报

梦石
0
星屑
177
在线时间
170 小时
注册时间
2012-3-4
回帖
47
发表于 2015-12-3 12:41:03 | 显示全部楼层
var Morpho_EliteEnemy_Addition = Number(Morpho_EliteEnemy_parameters['EliteEnemyAddition'] || 1.2)

点评

?????  发表于 2015-12-3 12:42
回复

使用道具 举报

梦石
0
星屑
60
在线时间
81 小时
注册时间
2015-4-19
回帖
57
发表于 2015-12-5 22:48:41 | 显示全部楼层
楼主我有一个提议,做一张发光的图,让精英怪物身上发光,就像重装机兵3那样,你感觉如何,嘿嘿
回复

使用道具 举报

梦石
0
星屑
4058
在线时间
836 小时
注册时间
2013-7-29
回帖
145

开拓者

 楼主| 发表于 2015-12-5 23:07:18 来自手机 | 显示全部楼层
索里 发表于 2015-12-5 22:48
楼主我有一个提议,做一张发光的图,让精英怪物身上发光,就像重装机兵3那样,你感觉如何,嘿嘿 ...

你有闪光的图吗
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部