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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: ccArtermices
打印 上一主题 下一主题

[有事请教] 请问如何设置不同职业对不同武器的熟练度

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3733
在线时间
434 小时
注册时间
2019-3-3
帖子
88
11
发表于 2019-7-31 19:55:09 | 只看该作者
本帖最后由 多卡多卡 于 2019-7-31 19:59 编辑
ccArtermices 发表于 2019-7-31 19:44
多卡大神,我用了你的脚本,发现只要我一装备武器就报错:cannot read property 'params' of null
为此我 ...


16行和30行case的数字后面没有加冒号
defult的冒号后面也要加上分号代表空语句
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2386
在线时间
912 小时
注册时间
2014-10-14
帖子
1331

开拓者

12
发表于 2019-7-31 20:03:37 | 只看该作者
多卡多卡 发表于 2019-7-31 18:18
这个应该够详细了,自己对着看吧
对于一个角色能够使用哪些武器,这个不需要插件,直接角色那里 ...

JAVASCRIPT 代码复制
  1. //==================================================================================================================
  2. /*:
  3.  * @plugindesc 不同职业对不同武器的熟练度 。
  4.  *
  5.  * @author 多卡多卡
  6.  *
  7.  * @help
  8.  * ◆ 不同职业对不同武器的熟练度
  9.  *
  10.  
  11.  *如果要实现多个加成效果,就把第二个if里的复制一下改下参数就行了。
  12. */
  13. //==================================================================================================================
  14. var _Game_Action_executeDamage = Game_Action.prototype.executeDamage;
  15. Game_Action.prototype.executeDamage = function (target, value) {
  16.         var list1 = [21,22];//职业Id
  17.         var list2 = [1,2];               
  18.         if(value > 0) {  
  19.                if(this.subject().isActor() &&  this.subject().actorId() == 1 && list1.contains(this.subject()._classId)){//角色的Id
  20.              this.subject().equips().forEach(function (equip){
  21.                 if (equip != null  && equip.wtypeId != undefined && equip.wtypeId == 2/*假设镰刀的类型为5*/)
  22.                   value *= 2.2;/*伤害倍率*/                          
  23.          });               
  24.       }
  25.                if(this.subject().isActor() &&  this.subject().actorId() == 2 && list2.contains(this.subject()._classId)){//角色的Id
  26.              this.subject().equips().forEach(function (equip){
  27.                 if (equip != null  && equip.wtypeId != undefined && equip.wtypeId == 3/*假设镰刀的类型为5*/)
  28.                   value *= 2.2;/*伤害倍率*/                                                       
  29.                           {
  30.                     switch (equip.wtypeld){
  31.                         case 2: value =Math.ceil(value * 1.2 ); break;
  32.                         case 3: value =Math.ceil(value * 2 ); break;
  33.                      }       
  34.                    }                
  35.         });                                     
  36.       }          
  37.     }
  38. _Game_Action_executeDamage.call(this, target, value);
  39. }

点评

首先检查下职业Id有没有漏,另外27行第三个条件可以去掉,不然就要把所有有效的武器Id写全。 估计你就是2号角色用了类型为2的武器,结果就没效果  发表于 2019-7-31 20:17
炸街了永远第一个角色有效果 其他角色无论怎么改都没效果  发表于 2019-7-31 20:05
------落尽红樱君不见,轻绘梨花泪沾衣。~~~
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
268
在线时间
160 小时
注册时间
2014-9-17
帖子
67
13
 楼主| 发表于 2019-7-31 20:04:50 | 只看该作者
多卡多卡 发表于 2019-7-31 19:55
16行和30行case的数字后面没有加冒号
defult的冒号后面也要加上分号代表空语句 ...

改正了之后还是报错,大神这个报错代表什么意思啊?

点评

还有一种可能是插件冲突,其他插件也重写了Game_Action.prototype.executeDamage然后被覆盖了,那样就把这个放在靠后的位置就行了  发表于 2019-7-31 20:27
这个是遍历的时候遇到空装备时报的错。但已经有了equip != null的判断,这样还会报错就不太清楚了,检查下语法是不是有问题吧。  发表于 2019-7-31 20:23
你报错知道问题在哪里 我根本连原因在哪里都不知 QAQ  发表于 2019-7-31 20:20
c
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-5-8 22:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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