查看: 6419|回复: 23

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

[复制链接]
梦石
0
星屑
268
在线时间
160 小时
注册时间
2014-9-17
回帖
44
发表于 2019-7-30 22:31:25 | 显示全部楼层 |阅读模式

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

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

×
请问如何设置不同职业对不同武器的熟练度,如A和B职业都可以装备镰刀,但是A装备之后伤害比B高
c
梦石
0
星屑
3938
在线时间
444 小时
注册时间
2019-3-3
回帖
80
发表于 2019-7-30 22:37:40 | 显示全部楼层
本帖最后由 多卡多卡 于 2019-7-30 22:51 编辑

[pre lang="javascript"]
var _Game_Action_executeDamage = Game_Action.prototype.executeDamage;
Game_Action.prototype.executeDamage = function (target, value) {
if(value>0)/*大于0时为伤害量,小于0时为治疗量*/{
    if(this.subject().isActor() &&  this.subject().actorId() == 1/*A的Id*/  && this.subject()._classId == 1/*职业Id*/){
        this.subject().equips().forEach(function (equip){
             if (equip != null  && equip.wtypeId != undefined && equip.wtypeId == 5/*假设镰刀的类型为5*/)
              value *= 1.2;/*伤害倍率*/
    });
}}
_Game_Action_executeDamage.call(this, target, value);
}[/pre]
如果要实现多个加成效果,就把第二个if里的复制一下改下参数就行了。

如果说是武器熟练度插件,这里有个日站的(需要科学上网)
http://dourakusoftweb.blog.fc2.com/blog-entry-4.html
回复

使用道具 举报

梦石
0
星屑
2457
在线时间
912 小时
注册时间
2014-10-14
回帖
1155

开拓者

发表于 2019-7-31 00:41:08 | 显示全部楼层
本帖最后由 j296196585 于 2019-7-31 00:46 编辑
多卡多卡 发表于 2019-7-30 22:37
var _Game_Action_executeDamage = Game_Action.prototype.executeDamage;
Game_Action.prototype.execute ...
  1. javascript:;
复制代码
  1.     if(this.subject().isActor() &&  this.subject().actorId() == 1/*A的Id*/  && this.subject()._classId == 20, 21/*职业Id*/){
复制代码



== 1/*A的Id*/这是什么意思 、
[classId == 20, 21/*职业Id*/ 如何添加多个职业 多卡大兄弟/ size]


[/  还发现一个问题  == 20, 21/*职业Id*/  超过30 就无效了 代码如下 color]


[pre lang="javascript"]var _Game_Action_executeDamage = Game_Action.prototype.executeDamage;
Game_Action.prototype.executeDamage = function (target, value) {
if(value>0)/*大于0时为伤害量,小于0时为治疗量*/{
    if(this.subject().isActor() &&  this.subject().actorId() == 1/*A的Id*/  && this.subject()._classId == 30/*职业Id*/){
        this.subject().equips().forEach(function (equip){
             if (equip != null  && equip.wtypeId != undefined && equip.wtypeId == 2 /*假设镰刀的类型为5*/)
                         
              value *= 2.5;/*伤害倍率*/
    });
}}
_Game_Action_executeDamage.call(this, target, value);
}
[/pre]

------落尽红樱君不见,轻绘梨花泪沾衣。~~~
回复

使用道具 举报

梦石
0
星屑
3938
在线时间
444 小时
注册时间
2019-3-3
回帖
80
发表于 2019-7-31 07:35:30 | 显示全部楼层
j296196585 发表于 2019-7-31 00:41
== 1/*A的Id*/这是什么意思 、
[classId == 20, 21/*职业Id*/ 如何添加多个职业 多卡大兄弟/ size]


第一个是角色的Id
如果要添加多个职业,可以这样:
  1. var list = [1,2,3];//职业Id
  2. list.contains(this.subject()._classId);
复制代码

至于大于30之后,我测试时没发现有问题,是不是和你用的某些插件冲突了?

点评

放在第2行和第3行之间  发表于 2019-7-31 15:15
不是 是这个 var list = [1,2,3];//职业Id list.contains(this.subject()._classId); 怎么添加  发表于 2019-7-31 14:19
自己做一个空白插件,把代码加进去就行了  发表于 2019-7-31 12:01
关键这个代码 我还是不会添加 QAQ  发表于 2019-7-31 11:30

评分

参与人数 1赞 +1 收起 理由
j296196585 + 1 可能吧

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2457
在线时间
912 小时
注册时间
2014-10-14
回帖
1155

开拓者

发表于 2019-7-31 16:03:10 | 显示全部楼层
本帖最后由 j296196585 于 2019-7-31 16:05 编辑
多卡多卡 发表于 2019-7-31 07:35
第一个是角色的Id
如果要添加多个职业,可以这样:


多卡大兄弟 你看是这样吗

怎样添加 角色   我自己鼓捣半天好像没效果
]OZZ$RJY4R0U]ONQF9X65}Y.png
------落尽红樱君不见,轻绘梨花泪沾衣。~~~
回复

使用道具 举报

梦石
0
星屑
3938
在线时间
444 小时
注册时间
2019-3-3
回帖
80
发表于 2019-7-31 17:20:43 | 显示全部楼层
本帖最后由 多卡多卡 于 2019-7-31 17:28 编辑
j296196585 发表于 2019-7-31 16:03
多卡大兄弟 你看是这样吗

怎样添加 角色   我自己鼓捣半天好像没效果  ...


搜狗截图20190731171912.png
如果要添加多个角色,就把蓝色的这部分复制一下,放在第一个if的里面就行了
如果不同的人职业不同,就多定义几个list取不同名称就行了
当做成结构体的形式时要多写很多代码,所以角色不是很多时这样会简单些

点评

我之所以 一直问 主要想实现俩点 武修 所有武器可以装备但是使用效果只能正常 剑修只能装备长剑其他武器不可使用 但是使用效果增加一半  发表于 2019-7-31 18:06

评分

参与人数 1赞 +1 收起 理由
j296196585 + 1 多卡大兄弟 这个小插件真是好东西.

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2457
在线时间
912 小时
注册时间
2014-10-14
回帖
1155

开拓者

发表于 2019-7-31 18:00:43 | 显示全部楼层
放在第一个if的里面就行了 【我是猪 】看不明白
如果不同的人职业不同,就多定义几个list取不同名称就行    这个更加糊涂了
3T_Q(OOY%P(0[{9)@}](8~8.png

点评

就是这样的,当然如果内容相同就不用定义两个了,内容不同才需要  发表于 2019-7-31 18:03
------落尽红樱君不见,轻绘梨花泪沾衣。~~~
回复

使用道具 举报

梦石
0
星屑
3938
在线时间
444 小时
注册时间
2019-3-3
回帖
80
发表于 2019-7-31 18:18:24 | 显示全部楼层
j296196585 发表于 2019-7-31 18:00
放在第一个if的里面就行了 【我是猪 】看不明白
如果不同的人职业不同,就多定义几个list取不同 ...

这个应该够详细了,自己对着看吧
对于一个角色能够使用哪些武器,这个不需要插件,直接角色那里调就可以了
搜狗截图20190731180936.png

评分

参与人数 1赞 +1 收起 理由
j296196585 + 1 超级感谢

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2457
在线时间
912 小时
注册时间
2014-10-14
回帖
1155

开拓者

发表于 2019-7-31 19:08:12 | 显示全部楼层
多卡多卡 发表于 2019-7-31 18:18
这个应该够详细了,自己对着看吧
对于一个角色能够使用哪些武器,这个不需要插件,直接角色那里 ...

真心谢谢了没有大佬相助 这个东东真难弄
3R9XN{~U15YW}B7M$1(DG]X.png
------落尽红樱君不见,轻绘梨花泪沾衣。~~~
回复

使用道具 举报

梦石
0
星屑
268
在线时间
160 小时
注册时间
2014-9-17
回帖
44
 楼主| 发表于 2019-7-31 19:44:25 | 显示全部楼层
多卡多卡 发表于 2019-7-30 22:37
var _Game_Action_executeDamage = Game_Action.prototype.executeDamage;
Game_Action.prototype.execute ...

多卡大神,我用了你的脚本,发现只要我一装备武器就报错:cannot read property 'params' of null
为此我改了代码,还是报这个错,请问为什么?[pre lang="javascript"]// Author:Doka
// Modified by cc Artermices
// 如果要实现多个加成效果,就把第二个if里的复制一下改下参数就行了

var _Game_Action_executeDamage = Game_Action.prototype.executeDamage;
Game_Action.prototype.executeDamage = function (target, value) {
if(value>0)/*大于0时为伤害量,小于0时为治疗量*/{
   if(this.subject().isActor() && this.subject().actorId() > 0 ){
       if(this.subject()._classId == 16/*枪手*/){
                       this.subject().equips().forEach(function (equip){
                       if (equip != null  && equip.wtypeId != undefined){
                               switch(equip.wtypeId){
                                       case 9 /*轻枪*/:
                                               value *= 1.2;/*伤害倍率*/
                                               break;
                                       case 20 /*重枪*/
                                               value *= 1.1;
                                               break;
                                       default:
                               }
                       }
       });
       }else if(this.subject()._classId == 17/*潜行者*/){
                       this.subject().equips().forEach(function (equip){
                       if (equip != null  && equip.wtypeId != undefined){
                               switch(equip.wtypeId){
                                       case 1 /*匕首*/:
                                               value *= 1.2;
                                               break;
                                       case 17 /*忍刀*/
                                               value *= 1.1;
                                               break;
                                       default:
                               }
                       }
       });
       }
   }
}
_Game_Action_executeDamage.call(this, target, value);
}
[/pre]
c
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部