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

Project1

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

[有事请教] 新人请教如何让某一技能只能对某一状态的敌人释放

[复制链接]

Lv2.观梦者

梦石
0
星屑
463
在线时间
72 小时
注册时间
2021-3-23
帖子
32
跳转到指定楼层
1
发表于 2023-1-31 22:30:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50星屑
想实现的效果是,面对复数的敌人时,只有敌人A处于状态001中,这时技能001就只能对这个敌人释放。

有什么插件或者事件能实现嘛?望不吝赐教!


最佳答案

查看完整内容

Yep_选择控制

Lv4.逐梦者

梦石
0
星屑
9278
在线时间
1837 小时
注册时间
2020-1-2
帖子
1082
2
发表于 2023-1-31 22:30:44 | 只看该作者
Yep_选择控制

点评

简书 https://www.jianshu.com/p/3a54549b0bf0 链接看看插件如何使用中文的 至于插件论坛有人发过  发表于 2023-2-1 20:37
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
729
在线时间
55 小时
注册时间
2017-8-8
帖子
34
3
发表于 2023-2-1 09:14:05 | 只看该作者
1.技能公式上做个判断 b.isStateAffected(状态ID)? 公式:0,这样会让这个技能打没有状态的0伤
  1. Game_Action.prototype.apply = function(target) {
  2.     var result = target.result();
  3.     this.subject().clearResult();
  4.     result.clear();
  5.     result.used = this.testApply(target);
  6.     result.missed = (result.used && Math.random() >= this.itemHit(target));
  7.     result.evaded = (!result.missed && Math.random() < this.itemEva(target));
  8.     result.physical = this.isPhysical();
  9.     result.drain = this.isDrain();
  10.     if (result.isHit() && this.isValid_EX(target)) {
  11.         console.log(result)
  12.         if (this.item().damage.type > 0) {
  13.             result.critical = (Math.random() < this.itemCri(target));
  14.             var value = this.makeDamageValue(target, result.critical);
  15.             this.executeDamage(target, value);
  16.         }
  17.         this.item().effects.forEach(function(effect) {
  18.             this.applyItemEffect(target, effect);
  19.         }, this);
  20.         this.applyItemUserEffect(target);
  21.     }
  22. };

  23. //技能/道具标签 <目标有效状态:10>
  24. Game_Action.prototype.isValid_EX = function(target) {
  25.     var item = this.item();
  26.     var validState = item.meta['目标有效状态'] || false;
  27.     if(validState && !target.isStateAffected(Number(validState))){
  28.         console.log(target,validState)
  29.         return false;
  30.     }
  31.     return true;
  32. };
复制代码

技能/道具备注栏加个<目标有效状态:状态ID>这样使用的时候会判断有没有状态,有就生效没有不生效
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
463
在线时间
72 小时
注册时间
2021-3-23
帖子
32
4
 楼主| 发表于 2023-2-1 22:35:17 | 只看该作者
天一教主 发表于 2023-2-1 09:14
1.技能公式上做个判断 b.isStateAffected(状态ID)? 公式:0,这样会让这个技能打没有状态的0伤

技能/道具备 ...

谢谢大佬!可能是我没表达明白,是想让一个技能只能对有特定状态的敌人释放,无法选中其他敌人
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
463
在线时间
72 小时
注册时间
2021-3-23
帖子
32
5
 楼主| 发表于 2023-2-2 00:32:01 | 只看该作者

谢谢大佬!帮大忙了!
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
21952
在线时间
8567 小时
注册时间
2011-12-31
帖子
3362
6
发表于 2023-2-2 08:39:11 | 只看该作者
本帖最后由 tseyik 于 2023-2-2 08:40 编辑

● 計算屬性有效性
x.elementRate(屬性ID)

計算目標屬性有效性。
如果使用這個,你可以偽裝地賦予一個技能兩個或多個屬性。
示例:將傷害乘以敵人屬性 1 和屬性 3 的平均效果
a.atk * ((b.elementRate(1) + b.elementRate(3)) / 2)

例子:敵人屬性1和屬性3效能,取效能最高的那個
Math.max(a.atk * b.elementRate(1),a,atk * b.elementRate(3))

*插入屬性有效性計算公式時,請務必將公式上方的屬性設置為“無”

●計算狀態效能
x.stateRate(狀態ID)

計算目標狀態有效性。
用法與屬性有效性計算幾乎相同。

-突破防守
b.isGuard() ? m * b.grd : n

所謂,你可以做出可以無視防御狀態的技能。
分別為 m 和 n 輸入數值或公式。

示例:對防禦敵人造成雙倍傷害,對其他敵人造成正常傷害。
a.atk * (b.isGuard() ? 4 * b.grd : 1)

順便說一句,你可以用x.grd來計算目標的防禦有效率。

● 查看是否處於特定狀態
x.isStateAffected(狀態 ID) ? m : n

您可以創建在敵人中毒時威力增加的技能,或者在用戶處於特定狀態時威力增加的技能。
示例:如果敵人處於第 3 狀態,則威力將增加一倍。
如果沒有,它將成為正常電源。
a.mat * (b.isStateAffected(3) ? 2 : 1)

● 查看特定能力值是否被強化了一個或多個等級
x.isBuffAffected(參數 ID) ? m : n

使用方法同上。
只有在能力隨著使用效果的能力值強化時才會體現出來。
參數 ID 是 0 到 7 之間的整數。
0:HP 1:MP 2:攻撃力 3:防御力 4:魔法力 5:魔法防御力 6:敏捷性 7:運

檢查特定能力值是否被削弱一級或更多
x.isDebuffAffected(參數 ID) ? m : n

● 查看特定能力值是否被強化到最大
x.isMaxBuffAffected(參數 ID) ? m : n

-檢查特定能力值是否被削弱到最大值
x.isMaxDebuffAffected(參數 ID) ? m : n

造成至少 1 點傷害
數學.max(m,1)

輸入 m 的任何公式。
您可以通過將最大值更改為最小值來執行與最大值相反的操作。

● 從1到3隨機給予傷害:
(Math.random() * 3) + 1

如果要從0開始,去掉“+1”即可。

臨近死亡時變得更強大的技能
a.atk * 4 *(a.hp <= a.mhp / 5 ? 2 : 1) - b.def * 2
上面的公式是剩餘HP在20%以下時威力翻倍的公式。
此外,還可以製作“剩餘HP超過一半時做○○”、“敏捷度達到一定程度以上時做○○”等技能。


順便說一句,調查了計算公式可以輸入多少個字符的結果,Ace限制為100個字符,而MV可以輸入1000多個字符(我不知道具體的限制值)
即使是相當複雜的計算公式,MV 似乎也能輕鬆實現。
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
463
在线时间
72 小时
注册时间
2021-3-23
帖子
32
7
 楼主| 发表于 2023-2-2 19:35:30 | 只看该作者
tseyik 发表于 2023-2-2 08:39
● 計算屬性有效性
x.elementRate(屬性ID)

谢谢大佬
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1407
在线时间
889 小时
注册时间
2011-3-4
帖子
839
8
发表于 2023-2-2 20:08:24 | 只看该作者
本帖最后由 绿坝 于 2023-2-2 20:10 编辑

isStateAffected(状态ID) - 检测⽬标是否被施加了对应的状态:
1 b.isStateAffected(10) ? 10000 : 1;

外网帖子里的一个解决办法,有特定状态造成的效果不一样
全民制作人们,大家好,我是练习时长两年半的黄油制作人绿坝,喜欢唱、跳、rap、篮球,music!欢迎加群:107335249
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 18:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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