Project1

标题: 怎么判断角色所穿戴的防具所在位置 [打印本页]

作者: 小灵魂    时间: 2016-1-30 18:48
标题: 怎么判断角色所穿戴的防具所在位置
好吧.....这次又是一个标题意义不明的问题,貌似每次都是这样,语死早= =救不过来了。。

用了  沉影不器  大大的一个读取备注的脚本。http://rpg.blue/thread-99474-1-1.html

然后想问一下怎么读取队长的某个防具位置上防具的备注?额……好像又说的不是很清楚

就是类似:$game_party.members[0].weapons[0].read_note('abc')   即:首位角色的武器的备注 abc 的值

也试过把 weapons 改成 armors,但是貌似是判断防具个数的?只要满足有一个防具就会返回首个防具abc的值。

把 0 换成 1 就变成了 满足有两个防具就会返回第二个防具abc的值。以此类推。。。。

| ω・´)当然。。。没有满足的话就会报错了。。。

我只是根据F1摸索着学了一些。这种问题有点研究不懂啊。。判断某个位置上穿没穿防具倒是容易写。

但是假设防具都有穿,想问一下怎么法判断角色 护甲/盾牌/首饰······上 abc 备注的值。


|д゚ )好的吧...依旧是啰嗦了这么多还不一定把问题表达的很清楚,

有没有各种隐居的路过的大神帮忙解答一下_(:3」∠)_跪谢啊!
作者: Vortur    时间: 2016-1-31 12:58
在下也不知道。不过可能有个思路,具体还要楼主选择是否去试:
armors==护甲,包括盾、衣服(铠甲和饰品)
weapons ==武器
items==物品,在脚本中,有时也包括armors和weapons。
因此,楼主只需在脚本中全局查找armor,想必能够发现在哪判断“装备位置”。
作者: 小灵魂    时间: 2016-1-31 13:17
Vortur 发表于 2016-1-31 12:58
在下也不知道。不过可能有个思路,具体还要楼主选择是否去试:
armors==护甲,包括盾、衣服(铠甲和饰品)
...

多谢解答。之前也有试过搜索 armor 但是找到的都是判断防具 ID 之类的,没有找到防具位置怎么判断。| ω・´)毕竟会的不多,很多也都看不懂所以没办法了才发帖问的。
作者: Vortur    时间: 2016-1-31 13:25
既然如此,在下就献丑了!
$game_party.items.include?($data_items[1])
这个代码用来判断队伍是否持有某物品,weapons/armo...同理,楼主可用穷举法来解决这个问题!
@小灵魂   
作者: 小灵魂    时间: 2016-1-31 14:04
Vortur 发表于 2016-1-31 13:25
既然如此,在下就献丑了!
$game_party.items.include?($data_items[1])
这个代码用来判断队伍是否持有某物 ...

再次感谢耐心解答!

$game_party.armors.include?($data_armors[1])
这段代码是判断背包内是否含有 1 号防具。但是穿在身上会返回false,只有在背包内才会返回true
如果单单判断是否穿 1 号防具倒是可以写成
$game_party.members[0].armors.include?( $data_armors[1])
即:首位队员是否穿戴 1 号防具

但是可能我比较贪心吧(o_ _)ノ我想要的效果是读取他穿戴在盾牌(或铠甲首饰)位置上那个防具的备注。
就像之前说的类似:
$game_party.members[0].weapons[0].read_note('abc')
即:首位角色的武器的备注上 abc 的值(weapons换成armros并不能达到效果)

不过现在想来可能太强人所难了吧╥﹏╥反正我是办不到了。在等等看有没有办法解决,实在不行就结贴了。
还是多谢耐心回复!

残念啊。。是不是真的很强人所难。。。。还是我表达并不能让人听懂
作者: Vortur    时间: 2016-1-31 14:08
小灵魂 发表于 2016-1-31 14:04
再次感谢耐心解答!

$game_party.armors.include?($data_armors[1])

原来如此,在下受教了。
{:2_272:}去看会电影
作者: cinderelmini    时间: 2016-1-31 14:44
本帖最后由 cinderelmini 于 2016-1-31 15:46 编辑

看了脚本后大概明白了LZ想要的是什么了……
稍微写了个便捷脚本,思路虽然很蠢,不过,想要已经能get到了……
使用方法是:
  1. leader = $game_party.members[0]
  2. p leader.read_equip_note(0, "abc")
  3. p leader.read_equip_note(1, "abc")
  4. p leader.read_equip_note(2, "abc")
  5. p leader.read_equip_note(3, "abc")
  6. p leader.read_equip_note(4, "abc")
复制代码
关于加在【Game_Actor】里面的【read_equip_note】这个方法,
index是装备位置,参考数据库里面人物设定页的【初始装备】列表确认下标位置,
(不过其实主要看你在【Game_Actor】里面的【equip_slots】怎么设定角色的装备类型列表吧……)
然后后面的section就是要匹配的备注字符串,也就是1楼里说的“abc”了……
唔……就这样吧~有问题随时修改……
一个Game_Actor的扩展小东西

作者: 小灵魂    时间: 2016-1-31 15:56
cinderelmini 发表于 2016-1-31 14:44

get错重点惹~以上大雾………… ...

多谢解答!
我当时也是这么想的,所以实验了一下
角色.armors[0].note  的效果貌似是角色穿在身上的第一件防具的备注armors[1]是第二件,以此类推······
没有第一件(第二件等·····)防具就会报错

如果用这种方法达到效果就要加上哪个位置有穿防具,一共穿了几件防具的判定,然后根据返回再执行
armors[0] 或 armors[1] 或 armors[2]
这样就要写很长一段判定(对于我目前的水平来说

但是我学的并不多,对VA整体的脚本了解的也很少 所以想看看有没有什么简单的办法或者思路,感觉如果像我那样写要很麻烦。不过如果VA并没有提供相关代码也没有其他办法的话我还是就这么复杂的写着吧

以上,多谢!(o゚ω゚o)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1