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

Project1

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

[交流讨论] 双手武器和双持武器的冲突已解决,附代码,另提问其他...

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
81 小时
注册时间
2016-1-6
帖子
150
跳转到指定楼层
1
发表于 2016-4-2 18:47:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
最近做游戏的时候遇到个问题,就是双手武器和双持武器的一些冲突,查找论坛里以前的老帖子,也没解决。然后自己花了点时间终于解决了,把代码发上来,大家帮我看看还可以怎么改进。
以下代码适用条件为人物已开启双刀流特性,但是可装备的武器里有单手武器和双手武器的情况。
JAVASCRIPT 代码复制
  1. Game_Actor.prototype.changeEquip = function(slotId, item) {
  2.         if (this.tradeItemWithParty(item, this.equips()[slotId]) ){//为了增加代码可读性,我把原始的判定条件分拆了
  3.                 if(item==null){//不装备的情况如下【不单独列出该条件则会发生null的错误】
  4.                         this._equips[slotId].setObject(null);
  5.                 }else{
  6.                         if(this.equipSlots()[slotId] === item.etypeId){
  7.                                 if(item.etypeId==1&&item.wtypeId==[b]6[/b]){//我的双手武器的wtypeId是6,你可以把加粗数字改成你的双手武器编号
  8.                                         if(slotId==0){//如果要装备的武器栏是第一条
  9.                                                 this._equips[0].setObject(item);//则对武器栏1的武器进行调换
  10.                                                 this.tradeItemWithParty(null,this.equips()[1]);//将武器栏2的物品放回背包
  11.                                                 this._equips[1].setObject(null);//将武器栏2的武器强制卸除
  12.                                         }else if(slotId==1){//如果要装备的武器栏是第二条
  13.                                                 this._equips[1].setObject(item);//则对武器栏2的武器进行调换
  14.                                                 this.tradeItemWithParty(null,this.equips()[0]);//将武器栏1的物品放回背包
  15.                                                 this._equips[0].setObject(null);//将武器栏1的武器强制卸除
  16.                                         }
  17.                                 }else{
  18.                                         this._equips[slotId].setObject(item);//如果你要装备的栏位不是武器栏或者要装备的武器不是双手武器的情况,则进行正常装备操作
  19.                                         if(this.equips()[0]!=null&&this.equips()[1]!=null){//对两个武器栏进行判定,是否全都装备着武器【不单独列出该条件则会发生null的错误】
  20.                                                 if(slotId==0&&this.equips()[1].wtypeId==[b]6[/b]){//如果要装备的栏位是1,并且武器栏2已装备的武器是双手武器,此处6为双手武器的编号
  21.                                                         this.tradeItemWithParty(null,this.equips()[1]);//将武器栏2的双手武器放回背包
  22.                                                         this._equips[1].setObject(null);//将武器栏2的双手武器强制卸除
  23.                                                 }else if(slotId==1&&this.equips()[0].wtypeId==[b]6[/b]){//如果要装备的栏位是2,并且武器栏1已装备的武器是双手武器,此处6为双手武器的编号
  24.                                                         this.tradeItemWithParty(null,this.equips()[0]);//将武器栏1的双手武器放回背包
  25.                                                         this._equips[0].setObject(null);//将武器栏1的双手武器强制卸除
  26.                                                 }
  27.                                         }
  28.                                 }
  29.                         }
  30.                 }
  31.                 this.refresh;
  32.         }
  33. };


另外,我想让角色装备双手武器的时候,默认的攻击选项变成全体攻击,我直接修改Game_BattlerBase.prototype.attackSkillId的话能起效,但是我不知道怎么把武器判定跟这个attackSkillId放在一起,望大神赐教。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
81 小时
注册时间
2016-1-6
帖子
150
2
 楼主| 发表于 2016-4-2 19:34:53 | 只看该作者
武器技能变更已解决,原来自带插件weaponskill可以解决
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
497
在线时间
266 小时
注册时间
2015-12-8
帖子
873
3
发表于 2016-4-2 23:47:03 | 只看该作者
用雙手武器還是被能雙武器的腳色拿兩把雙手武器阿

点评

我写的这段代码就是让双手武器装备后,另一个手的武器强制卸载的  发表于 2016-4-4 13:41
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
736
在线时间
158 小时
注册时间
2014-1-4
帖子
27
4
发表于 2016-4-18 10:00:29 | 只看该作者
seedj13 发表于 2016-4-2 19:34
武器技能变更已解决,原来自带插件weaponskill可以解决

那个插件是啥0.0

点评

论坛破解版自带的脚本weaponskill  发表于 2016-4-18 18:10
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5712
在线时间
1556 小时
注册时间
2011-6-14
帖子
520
5
发表于 2016-4-18 12:16:43 手机端发表。 | 只看该作者
多谢分享,另外问下这个直接做成js就可以用了吗

点评

话说怎么设置双手武器呢  发表于 2016-4-18 19:38
是的  发表于 2016-4-18 18:11
回复 支持 反对

使用道具 举报

Lv1.梦旅人

笑问情缘

梦石
0
星屑
68
在线时间
238 小时
注册时间
2006-5-3
帖子
640
6
发表于 2016-4-18 14:00:59 手机端发表。 | 只看该作者
这个代码要怎么用啊?

点评

直接做成js就可以用了  发表于 2016-4-18 18:11
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
13 小时
注册时间
2017-3-29
帖子
5
7
发表于 2017-4-26 21:28:37 | 只看该作者
不管用啊
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
33 小时
注册时间
2017-2-27
帖子
2
8
发表于 2017-7-26 10:58:37 | 只看该作者
本帖最后由 56456464 于 2017-7-26 11:00 编辑

用的時後雙手武器裝備在雙持的第2隻手時武器都會卸除??
稍微改 測試 好像OK ???
  }else if(slotId==1){//如果要裝備的武器欄是第二條
                                                this.tradeItemWithParty(null,this.equips()[0]);//將武器欄1的物品放回背包
                                                this.tradeItemWithParty(null,this.equips()[1]);//將武器欄2的物品放回背包
                                                this._equips[0].setObject(null);//將武器欄1的武器強制卸除
                                                this._equips[1].setObject(null);//將武器欄2的武器強制卸除
                                                this._equips[0].setObject(item);//則對武器欄1的武器進行調換
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
825
在线时间
79 小时
注册时间
2013-12-22
帖子
49
9
发表于 2023-9-26 22:24:43 | 只看该作者
谢谢大大
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 12:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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