Project1

标题: 关于VX对NPC使用物品达成任务的问题 [打印本页]

作者: soraliang    时间: 2014-6-14 10:49
标题: 关于VX对NPC使用物品达成任务的问题
本帖最后由 soraliang 于 2014-6-14 10:54 编辑

大家好~我又来问问题了,这次想咨询的是这种效果:


和NPC对话时是一般内容


打开物品栏,在NPC旁边使用特定物品(如果NPC不在旁边,则物品无法使用 <----不明白的地方NO.1)


出现选项,交出物品,物品消失,完成任务 <----不明白的地方NO.2


主要是想知道主动使用物品达成任务的方法,被动的方式我是知道的(身上持有XX物品时产生分歧,但不想用这种方式呢)
希望高手能告诉我详细的步骤吧,各方面功能还在研究中~!!

作者: moy    时间: 2014-6-14 11:06
判断事件坐标,判断主角是否在事件周围,开启开关
物品设置为不消耗,然后在公共事件中判断开关状态,打开则显示选项,然后交就扣物品
开关关闭则播放报错音
如果想让物品显示不可用,就只能修改脚本了
作者: soraliang    时间: 2014-6-14 11:18
moy 发表于 2014-6-14 11:06
判断事件坐标,判断主角是否在事件周围,开启开关
物品设置为不消耗,然后在公共事件中判断开关状态,打开 ...


比如我现在设置了一个能够使用,不消耗数量的土豆。


使用后会提示:是否使用


选择后会毒死


这就是我现在设置的物品公共事件了。
那我要怎么做才能既有的使用效果上,变成贴近NPC时交出物品,达成任务的效果呢?
作者: moy    时间: 2014-6-14 12:12
本帖最后由 moy 于 2014-6-14 12:23 编辑

插入这段脚本(其实只是为了使用上简洁一些,不插入也可以直接用pos?

  1. class Game_Character
  2.   #--------------------------------------------------------------------------
  3.   # ● 判断是否在坐标周围
  4.   #--------------------------------------------------------------------------
  5.   def near?(x, y)
  6.     return pos?(x-1,y) || pos?(x+1,y) || pos?(x,y-1) || pos?(x,y+1)
  7.   end
  8. end
复制代码
然后在事件脚本中调用这个来给某个开关置值
  1. $game_switches[30] = $game_player.near?(x,y)
复制代码
其中xy替换成目标位置的坐标(有没有事件都行)。
公共事件中就只需要判断开关的条件分歧就可以了。
另外如果提交时无动画,只有对自己使用有动画的话,不要在物品处设置动画,改成在公共事件的分歧里放就好。
另外这个我没测试


作者: 天使喝可乐    时间: 2014-6-14 12:29
本帖最后由 天使喝可乐 于 2014-6-14 12:30 编辑

纯事件。
如果地图多,就在开始加个地图判断。
如果希望面对才有效,再加个面向判定就行了。

实测没问题。






这是范例:
Project1.rar (1.43 MB, 下载次数: 50)
作者: soraliang    时间: 2014-6-15 21:20
本帖最后由 soraliang 于 2014-6-15 21:24 编辑
天使喝可乐 发表于 2014-6-14 12:29
纯事件。
如果地图多,就在开始加个地图判断。
如果希望面对才有效,再加个面向判定就行了。


感谢耐心的回复~


PS:你上传的范例文件,角色事件是空白的,是不是上传错了?^^
如果可以能重新上传一次吗?




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