赞 | 1 |
VIP | 0 |
好人卡 | 0 |
积分 | 8 |
经验 | 730 |
最后登录 | 2021-6-16 |
在线时间 | 21 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 804
- 在线时间
- 21 小时
- 注册时间
- 2017-6-5
- 帖子
- 7
|
- /*:
- * @plugindesc 随机选择不重复.
- * @author devilbaby
- * @help
- * 影响选择的属性是“受到攻击几率”(tgr)
- * 总是这个属性高的敌人优先几率被攻击
- * 计算步骤:
- * 1、取敌群总tgr * 0~1 的随机值(简称‘rtgr’)
- * 2、依次循环所有敌人,并用rtgr - 敌人tgr,如果结果rtgr为0,则选中该敌人。
- * 3、循环所有敌人后rtgr依旧大于0时,选中敌群中tgr最高的一个敌人。
- * 注意:
- * 1、随机选择最多不会超过当前敌群总数量
- * 即只有3个怪物的敌群,‘随机选中四人’的道具或技能最多只能选中3个敌人。
- */
- (function(){
-
- Array.prototype.indexOf = function (val) {
- for (var i = 0; i < this.length; i++)
- if(this[i] == val)return i;
- return -1;
- };
- Array.prototype.removevalue = function (val) {
- var index = this.indexOf(val);
- if(index > -1) this.splice(index, 1);
- };
- Game_Unit.prototype.randomTargets = function(num) {
- var raw = this.aliveMembers()
- num = Math.min(num,raw.length);
- var target = [];
- for (var i = 0; i < num; i++){
- var tgrRand = Math.random() * this.tgrSum();
- var tmpTarget = null;
- var loser = null;
- raw.forEach(function(member) {
- loser = loser ? (loser.tgr < member.tgr ? member : loser): member
- tgrRand -= member.tgr;
- if (tgrRand <= 0 && !tmpTarget) tmpTarget = member;
- });
- tmpTarget = tmpTarget ? tmpTarget : loser
- raw.removevalue(tmpTarget);
- target.push(tmpTarget);
- }
- return target;
- };
- var _Game_Action_targetsForOpponents = Game_Action.prototype.targetsForOpponents;
- Game_Action.prototype.targetsForOpponents = function() {
- return this.isForRandom()
- ? this.opponentsUnit().randomTargets(this.numTargets())
- : _Game_Action_targetsForOpponents.call(this)
- };
- })();
复制代码
未经测试,有问题反馈。 |
评分
-
查看全部评分
|