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

Project1

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

[RMVA发布] 自定义装备栏脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2015-5-1
帖子
11
跳转到指定楼层
1
发表于 2015-5-2 22:27:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
这个功能也许有人已经做出来了。
我搜索的时候,看到https://rpg.blue/thread-223361-1-1.html这个帖子,其中6楼的内容非常接近我想要的效果。
该脚本的原出处据说是http://www.rpgmakervxace.net/topic/385-custom-equipment-slots/

我的脚本是在这个思路上进行修改和拓展而得到的,所以先说这个版本

Lv2.观梦者

梦石
0
星屑
410
在线时间
262 小时
注册时间
2015-2-17
帖子
136
12
发表于 2015-8-6 17:24:05 | 只看该作者
不能直接更改数组么
Game_Actor
154,155行,直接更改装备风格
根据装备数量更改
Window_EquipSlot
32行 显示条数
可以在实际测试中进行使用并且装备有效
然而无法解决新增种类。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

11
发表于 2015-5-3 11:08:33 | 只看该作者
VIPArcher 发表于 2015-5-2 06:08
加油,希望楼主在触手之路上越走越远
另外,据说这个脚本更加通用
https://raw.githubusercontent.com/VIPA ...

你的github把我拦住了
楼主发的是和后知后觉那个装备扩展一样的效果吗···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2015-5-1
帖子
11
10
 楼主| 发表于 2015-5-2 23:37:39 | 只看该作者
另外,还有一些设想中的功能,目前未能实现

1.想实现双手武器在装备栏显示不同名字,比如“主手”“副手”。但id不等于0的装备,系统默认为武器。Slots[1]的装备栏,默认判定为护具。进行该判定的代码不在可见代码中,修改困难。这个功能尝试了多次,没能实现。目前没有新的可尝试思路。
2.想实现根据武器类型来判定是否双手武器,而非根据职业设定。例如,同一角色,在使用手枪时可以装备两个武器,使用狙击枪时只能装备一件。第一感觉的思路是,当角色穿上一件武器且武器类型为xxx(是一种双手武器),就将角色的第二个装备栏封锁。当角色脱下一件武器,且武器类型为xxx,就解锁角色的第二个装备栏。具体要覆盖哪些代码,添加哪些代码,倒是要写写看才知道……

不知这两个功能有人做出来没有。
下一步,我打算尝试做功能2。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2015-5-1
帖子
11
9
 楼主| 发表于 2015-5-2 23:14:00 | 只看该作者
不知有没有人做出过更完善的版本····

总之,我的研究止步于此·····

点评

嗯,我发完帖子才在楼上看到这个  发表于 2015-5-2 23:26
https://raw.githubusercontent.com/VIPArcher/RGSS3/master/scripts/%E8%A3%85%E5%A4%87%E6%A0%8F%E9%A3%8E%E6%A0%BC%E6%89%A9%E5%B1%95.rb 这里就是更完善的版本啊。  发表于 2015-5-2 23:15
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2015-5-1
帖子
11
8
 楼主| 发表于 2015-5-2 23:11:22 | 只看该作者
加入这个脚本后,在数据库设计装备的时候,“备注”中要写且只能写装备类型。
“装备位置”可以管,也可以不管。大多数情况下,不管它也没关系。

需要设定装备位置的情况:
“装备位置”这一项,如果选择的位置跟备注中的类型位置相同(比如,装备位置中选择盾牌,而备注中写上Slots[1]对应的类型),那么该装备可以作为初始装备,在数据库中正常使用。另外,如果要在事件中给角色穿上装备,同样要将该装备的装备位置选到合适的位置。如果这一项没选对的话,以上两个动作依然可以进行,但游戏中进行到这一步的时候,装备会无法穿上,只会躺在包包里。
以上动作,如果换成用脚本来实现,将不会有任何问题。
以上动作,如果装备类型对应的格子是第6条及以下的装备栏,则无论如何都只能用脚本实现。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21422
在线时间
9385 小时
注册时间
2012-6-19
帖子
7114

开拓者短篇九导演组冠军

7
发表于 2015-5-2 23:09:53 | 只看该作者
将rvdata2文件解密,对它进行修改

在脚本中使用 load_data 读取数据并修改,修改完成后再用 save_data 命令保存回去,例如这个:https://rpg.blue/home.php?mod=sp ... o=blog&id=13703

当然,一般情况下还是建议你使用note备注来做这些扩展就是了

点评

用正则表达式来读取就可以了,在层主喵呜的空间里大概有一篇文章就是正则的讲解。技术区也有一篇RB叔写的正则教程,推荐楼主去看看  发表于 2015-5-2 23:26
嗯,用note来做更便于修改。不过我想,如果有多个功能都要用到note的话,说不定就必须用到save_data了。谢谢告知。  发表于 2015-5-2 23:23
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10014
在线时间
5019 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

6
发表于 2015-5-2 23:08:39 | 只看该作者
本帖最后由 VIPArcher 于 2015-5-2 23:14 编辑

加油,希望楼主在触手之路上越走越远
另外,据说这个脚本更加通用
https://raw.githubusercontent.co ... 6%89%A9%E5%B1%95.rb
另外,使用备注最好使用正则,关于正则表达式百度一下即可学习到,否则你这个脚本将可能会导致其他使用到备注栏的脚本无法兼容使用,或者你的脚本无法达到预期效果啥的。

点评

谢谢,我看了一下,的确是很不错的思路  发表于 2015-5-2 23:19
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2015-5-1
帖子
11
5
 楼主| 发表于 2015-5-2 22:56:34 | 只看该作者
以下是第二页
  1.   #--------------------------------------------------------------------------
  2.   # ● Rewrites slot_name
  3.   #--------------------------------------------------------------------------
  4.   # 以下代码
  5.   # 用于绘制装备栏名字
  6. class Window_EquipSlot < Window_Selectable
  7.   def slot_name(index)
  8.       Slots::Slots[@actor.equip_slots[index]]
  9.   end
  10. end

  11.   #--------------------------------------------------------------------------
  12.   # ● Aliases create_slot_window
  13.   #--------------------------------------------------------------------------
  14.   # 以下代码
  15.   # 当装备栏数量超过一页时
  16.   # 用于显示第二页的内容
  17. class Scene_Equip < Scene_MenuBase

  18.   alias custom_slots_create_slot_window create_slot_window
  19.   def create_slot_window
  20.     custom_slots_create_slot_window
  21.     @slot_window.create_contents
  22.     @slot_window.refresh
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● Aliases on_actor_change
  26.   #--------------------------------------------------------------------------
  27.   alias custom_slots_on_actor_change on_actor_change
  28.   def on_actor_change
  29.     custom_slots_on_actor_change
  30.     @slot_window.create_contents
  31.     @slot_window.refresh
  32.   end
  33. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2015-5-1
帖子
11
4
 楼主| 发表于 2015-5-2 22:55:51 | 只看该作者
然后就是实际的代码····
我分了两页来写。
第一页是可以根据情况修改的部分。
第二页是完全不需要修改的部分。
  1. module Slots
  2.   
  3.   Slots = []
  4.   
  5.   Slots[0] = "武器"
  6.   Slots[1] = "头盔"
  7.   Slots[2] = "衣服"
  8.   Slots[3] = "披风"
  9.   Slots[4] = "鞋子"
  10.   Slots[5] = "饰品"
  11. end


  12.   #--------------------------------------------------------------------------
  13.   # ● Rewrites equip_slots
  14.   #--------------------------------------------------------------------------
  15.   # 以下代码
  16.   # 用于返回装备栏的排列数组
  17. class Game_Actor < Game_Battler

  18.   def equip_slots
  19.     return [0,0,1,2,3,4,5,5,5] if dual_wield? #当装备风格为双手武器时
  20.     return [0,1,2,3,4,5,5,5]
  21.   end
  22. end

  23. # 以下代码
  24. # 用于改变装备的装备类型
  25. module RPG
  26.   
  27.   class Armor
  28.    
  29.     def etype_id
  30.       for i in 0..5
  31.         etype_id = i if Slots::Slots[i] == note
  32.       end
  33.       p etype_id
  34.       return etype_id
  35.     end
  36.   end
  37. end
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-20 03:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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