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

Project1

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

[已经解决] 如何使角色在更换装备的同时变更变量

[复制链接]

Lv2.观梦者

梦石
0
星屑
482
在线时间
67 小时
注册时间
2016-7-21
帖子
12
跳转到指定楼层
1
发表于 2017-5-21 21:25:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
要求是例如
主角穿上铜剑,变量1增加100点,脱下铜剑之后变量1减少100点。
要可以重复判断的。
之前试过用公共事件并行处理,但是只能处理一次,但是我可能会更换多次装备。
而且我可能有很多件装备,所以求教有没有什么方法可以达到。

点评

没理解错的话这是要做装备负重系统?  发表于 2017-5-22 13:48

Lv2.观梦者

梦石
0
星屑
482
在线时间
67 小时
注册时间
2016-7-21
帖子
12
2
 楼主| 发表于 2017-5-22 18:10:23 | 只看该作者
不知道怎么回复希望不会被认为灌水,差不多是负重系统之类的,可是我可能改变的是一些自己设置的变量,例如魅力,良知之类什么的。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

3
发表于 2017-5-22 18:45:53 | 只看该作者
本帖最后由 guoxiaomi 于 2017-5-22 21:11 编辑

修改interpreter里面对应的command


Game_Actor 里的第 390 - 432 行是关于更换装备的方法,其中 equip_type = 0~3 是武器防具的种类, id 是武器防具的编号。
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 变更装备
  3.   #     equip_type : 装备类型
  4.   #     id    : 武器 or 防具 ID  (0 为解除装备)
  5.   #--------------------------------------------------------------------------
  6.   def equip(equip_type, id)
  7.     case equip_type
  8.     when 0  # 武器
  9.       if id == 0 or $game_party.weapon_number(id) > 0
  10.         $game_party.gain_weapon(@weapon_id, 1)
  11.         @weapon_id = id
  12.         $game_party.lose_weapon(id, 1)
  13.       end
  14.     when 1  # 盾
  15.       if id == 0 or $game_party.armor_number(id) > 0
  16.         update_auto_state($data_armors[@armor1_id], $data_armors[id])
  17.         $game_party.gain_armor(@armor1_id, 1)
  18.         @armor1_id = id
  19.         $game_party.lose_armor(id, 1)
  20.       end
  21.     when 2  # 头
  22.       if id == 0 or $game_party.armor_number(id) > 0
  23.         update_auto_state($data_armors[@armor2_id], $data_armors[id])
  24.         $game_party.gain_armor(@armor2_id, 1)
  25.         @armor2_id = id
  26.         $game_party.lose_armor(id, 1)
  27.       end
  28.     when 3  # 身体
  29.       if id == 0 or $game_party.armor_number(id) > 0
  30.         update_auto_state($data_armors[@armor3_id], $data_armors[id])
  31.         $game_party.gain_armor(@armor3_id, 1)
  32.         @armor3_id = id
  33.         $game_party.lose_armor(id, 1)
  34.       end
  35.     when 4  # 装饰品
  36.       if id == 0 or $game_party.armor_number(id) > 0
  37.         update_auto_state($data_armors[@armor4_id], $data_armors[id])
  38.         $game_party.gain_armor(@armor4_id, 1)
  39.         @armor4_id = id
  40.         $game_party.lose_armor(id, 1)
  41.       end
  42.     end
  43.   end

接着后面写或者这样做:
RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.   alias _change_variables_equip equip
  3.   def equip(equip_type, id)
  4.     # 装备 10 号武器时
  5.     if (equip_type == 0 && id == 10)
  6.       $game_variables[1] += 100
  7.     end
  8.     # 脱下 10 号装备时
  9.     if @weapon_id == 10
  10.       if (equip_type == 0 && id != 10)
  11.         $game_variables[1] -= 100
  12.       end
  13.     end
  14.     # 执行原来更换装备的方法
  15.     _change_variables_equip(equip_type, id)
  16.   end
  17. end

评分

参与人数 1星屑 +50 梦石 +1 收起 理由
RyanBern + 50 + 1 6

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36432
在线时间
10798 小时
注册时间
2009-3-15
帖子
4814
4
发表于 2017-5-22 19:03:58 | 只看该作者
用负重脚本然后把载重改成1号变量不就好了?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

5
发表于 2017-5-22 19:42:00 | 只看该作者
XP做这种多方面的自定义属性的扩展大概只能把装备的名字或者说明搞了来做扩展,
但是非常麻烦而且容易和别的相关扩展系统冲突,
如果刚入坑而且这种想法还有其他方面的话建议用VA来填坑,起码有个万能的备注栏可以做各种扩展……
(说了半天等于没说……←_←
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36432
在线时间
10798 小时
注册时间
2009-3-15
帖子
4814
6
发表于 2017-5-22 20:01:22 | 只看该作者
就算给你装脱装能增减变量但是不能控制符合要求才能装备上的话还是白搭啊..所以乖乖用负重脚本才是上策..
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
482
在线时间
67 小时
注册时间
2016-7-21
帖子
12
7
 楼主| 发表于 2017-5-25 13:20:23 | 只看该作者
soulsaga 发表于 2017-5-22 20:01
就算给你装脱装能增减变量但是不能控制符合要求才能装备上的话还是白搭啊..所以乖乖用负重脚本才是上策.. ...

然而_(:з」∠)_并没有找到XP的负重脚本,我只找到了VA和VX的。

点评

听人说VX的跟XP通用?不知是不是真的..  发表于 2017-5-25 13:21
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36432
在线时间
10798 小时
注册时间
2009-3-15
帖子
4814
8
发表于 2017-5-25 14:15:24 | 只看该作者
本帖最后由 soulsaga 于 2017-5-25 14:25 编辑
coco1068 发表于 2017-5-25 13:20
然而_(:з」∠)_并没有找到XP的负重脚本,我只找到了VA和VX的。


http://ytomy.sakura.ne.jp/tkool/ ... p/equip_ext_xp.html
用这个脚本..把EP名改成魅力就行了吧..

自己研究..
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
482
在线时间
67 小时
注册时间
2016-7-21
帖子
12
9
 楼主| 发表于 2017-5-25 23:30:56 | 只看该作者
guoxiaomi 发表于 2017-5-22 18:45
修改interpreter里面对应的command


Game_Actor 里的第 390 - 432 行是关于更换装备的方法,其 ...

Q A Q用的时候报错了,是直接把第二段脚本插在第一段的后面么??

点评

把第二段脚本插在main前。如果还有报错,把报错截图发上来吧  发表于 2017-5-25 23:41
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

10
发表于 2017-5-25 23:43:23 | 只看该作者
coco1068 发表于 2017-5-25 23:30
Q A Q用的时候报错了,是直接把第二段脚本插在第一段的后面么??

可能是我说的比较隐晦?第一段脚本就是原来游戏里的脚本,发出来只是告诉你这个功能要在哪里去改动,所以不用管。

点评

{:2_276:}其实是我自己理解错了,我以为是直接插入在原代码里面,原来是插在main前面。(这几天看代码看傻了),问题已经解决了,谢谢!  发表于 2017-5-26 00:22
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 19:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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