Project1

标题: 请问怎么索引物品的使用者? [打印本页]

作者: 15217320790    时间: 2023-5-10 01:45
标题: 请问怎么索引物品的使用者?
本帖最后由 15217320790 于 2023-5-11 22:38 编辑


如图,使用物品连接公共事件转职,因为我有50个角色,用事件的话要列50个角色的判断,请问怎么改为写脚本索引物品的使用者转职?

3Q各位~

作者: 金芒芒    时间: 2023-5-10 08:32
本帖最后由 金芒芒 于 2023-5-10 08:33 编辑

使用物品,物品选页有个公共事件

物品使用.png (134.7 KB, 下载次数: 6)

物品使用.png

物品2.png (99.24 KB, 下载次数: 10)

物品2.png

物品3.png (33.43 KB, 下载次数: 7)

物品3.png

作者: 纯属小虫    时间: 2023-5-10 10:23
本帖最后由 纯属小虫 于 2023-5-10 14:54 编辑

给个思路,无论是在菜单中使用物品,还是在战斗中使用物品
指定的目标其实都是队伍中的某个角色(这个角色一定是在队伍中的)
所以不一定要用角色判定,可以用队伍index来判定,然后index反推选中的角色:

设置一个全局变量,用于记录使用物品后最后选中的目标index
$game_variable[自己定一个] 【使用物品后最后选中的目标index】

菜单中:
Scene_Item

找到:
def main
$game_variable[自己定一个] = 0 # 初始化一下(不填应该也没问题,但有极小概率出BUG)
......

然后找到
def update_target
......
if used
$game_variable[自己定一个] = @target_window.index #在这里添加一个全局变量,把指定目标角色数据代入这个变量中
......

========================================================================

公共事件中:
条件分支: 脚本: $game_variable[自己定一个] != 0
        事件脚本:
        a = $game_variable[自己定一个]
        @parameters[0] $game_party.actors[a].id
        @parameters[1] = *********(写上要更改的职业的id号)
        command_321
除此之外的场合
显示文章:变量 $game_variable[自己定一个] 存在错误
结束分支

最后初始化变量:
$game_variable[自己定一个] = 0


注意:这种方法不支持在战斗中的场景里判定!


作者: 765111039    时间: 2023-5-11 11:33
楼主的意思应该是给角色使用转职书的时候,给不同的人转职是吧
我也来说一个
首先打开脚本,搜索 def item_effect(item) ,如果是默认脚本的话是在 Game_Battler 3 里面
然后在下面命中的情况下,加一行脚本 $game_variables[1] = self.id  这样1号变量就等于使用者的ID
之后在公共事件分歧1号变量就可以了
如果你的物品是指定某人转职为某个职业
不用加上面的脚本,改为 加这样一行,self.class_id = item.recover_hp if item.element_set.include?(18)  ,
这样子的话就是 物品有18号属性时,将该角色转职为物品回复量ID的角色,
你设定18号属性为 转职书,那么拥有转职书的物品会有转职效果,转的职业是你给物品设定的是物品回复量的ID
最后,再关联一个事件跳到地图,提示转职成功。





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