Project1

标题: 制作提升等级物品遇到问题,求助!!! [打印本页]

作者: miantouchi    时间: 2021-12-15 19:22
标题: 制作提升等级物品遇到问题,求助!!!
我想制作一个提升等级的物品,吃一颗对应的角色等级提升一级。
因为物品界面没有这项提升的内容,所以想到公共事件。
下面是我想的代码
$game_party.actors[@target_window.index].level+=1
但是@target_window.index会报错,还能通过什么方式获取我选择的角色id呢?

1.png (9.65 KB, 下载次数: 10)

1.png

2.png (2.48 KB, 下载次数: 11)

2.png

3.png (6.02 KB, 下载次数: 14)

3.png

作者: 任小雪    时间: 2021-12-15 19:44
物品的适用对象,大概在   使用物品  的相关脚本找?(scene)
作者: flashfox    时间: 2021-12-15 21:23
本帖最后由 flashfox 于 2021-12-15 21:34 编辑

@target_window 这个类实例对象没被定义。类不存在,自然没办法在类中找到index方法。

查看下,是否定义了@target_window。一般是这么一句:@target_window = Window_XXXXXX.new
作者: enghao_lim    时间: 2021-12-15 21:52
本帖最后由 enghao_lim 于 2021-12-15 21:53 编辑

公共事件只会在 scene_map 发生,既然已经在 scene_map 了,那注定 scene_item 已经被关闭,window_target 早释放到天南地北去了。

你可以在 scene_item 找到一下脚本并添加一句在转跳到地图前将 window_target 的index赋值到任意变量就可以在公共事件获取。


  1.         # 公共事件 ID 有效的情况下
  2.         if @item.common_event_id > 0
  3.           $game_variables[xx] = @target_window.index # 这行是在转跳前添加
  4.           # 预约调用公共事件
  5.           $game_temp.common_event_id = @item.common_event_id
  6.           # 切换到地图画面
  7.           $scene = Scene_Map.new
  8.           return
  9.         end
复制代码


温馨提示,如果你想要有更直接的效果,建议可以对以下函数进行修改,这样可以不用跳回地图。
PS:这函数是敌我通用,如果物品可以被敌人使用不惜自行判断,不然敌人没有等级必定报错。

  1.   #--------------------------------------------------------------------------
  2.   # ● 应用物品效果
  3.   #     item : 物品
  4.   #--------------------------------------------------------------------------
  5.   def item_effect(item)
复制代码





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