Project1

标题: 不靠近NPC.鼠标点击触发对话. [打印本页]

作者: 夺爱    时间: 2007-8-13 07:33
标题: 不靠近NPC.鼠标点击触发对话.
不靠近NPC.鼠标点击触发对话.
这类脚本论坛有吗?
如果没有?实现起来麻烦吗?
希望高手出来解答.. [LINE]1,#dddddd[/LINE]版务信息:版主帮忙结贴~
作者: 夺爱    时间: 2007-8-13 07:33
标题: 不靠近NPC.鼠标点击触发对话.
不靠近NPC.鼠标点击触发对话.
这类脚本论坛有吗?
如果没有?实现起来麻烦吗?
希望高手出来解答.. [LINE]1,#dddddd[/LINE]版务信息:版主帮忙结贴~
作者: 幻の飞鱼    时间: 2007-8-13 08:13
好象这里有一个

http://rpg.blue/web/htm/news528.htm

我自己写的那些就删了好了,。和这个差不多
作者: 夺爱    时间: 2007-8-13 13:54
效果不是很好。并不能走路了。
作者: 夺爱    时间: 2007-8-13 14:00
自己已经修改解决.不过总觉得效果不大灵。。。
作者: 白云    时间: 2007-8-13 23:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: 柳柳    时间: 2007-8-14 08:25
怎么会不能走路了?这个和走路完全是两回事。
如果觉得手感不好(最大可能是因为本脚本只能点击人物腿步才行),那么就得在点击的时候:

1、循环所有事件的图形,找到当前点击处存在的图形
2、找到存在图形z最高的一个,启动事件

就可以了。不是很难改吧?
作者: 幻の飞鱼    时间: 2007-8-16 07:46
啊,原来柳这个没有设置图形的- -|

把 if event.screen_x/32 == mouse_x/32 and event.screen_y/32-1 == mouse_y/32

改成
     
  1. event_width = RPG::Cache.character(event.character_name,event.character_hue).width / 4
  2.       event_height = RPG::Cache.character(event.character_name,event.character_hue).height / 4
  3.       if mouse_x > event.screen_x - event_width / 2 and mouse_x < event.screen_x + event_width / 2 and mouse_y + 32 > event.screen_y + 32 - event_height and mouse_y + 32 < event.screen_y + 32
复制代码


就可以识别整个事件图形了

至于Z的问题- -!没什么关系吧,只要两个事件不会经常穿透在一起- -

PS:这完全没有涉及到走路的问题嘛- -||哪里来的走路的问题 [LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者: rubygomax    时间: 2007-8-16 20:19
嗯,如果LZ是用"完整鼠标系统(4方向与8方向均支持) "這個腳本的話,
不妨把該腳本第66行注釋掉,然後....算了,總之變成下面這樣:

  1. #if ([1, -1].include?($game_player.x-event.x) and $game_player.y-event.y == 0) or ([1, -1].include?($game_player.y-event.y) and $game_player.x-event.x == 0)
  2.           for i in 0...event.list.size
  3.             if ["Item","Npc"].include?(event.list[i].parameters[0]) #当事件属于自定义事件
  4.               #判断主角朝向
  5.               if way_x == -1
  6.                 p_direction = 6 if way_y == 0
  7.               elsif way_x == 0
  8.                 p_direction = 2 if way_y == -1
  9.                 p_direction = 8 if way_y == 1
  10.               else
  11.                 p_direction = 4 if way_y == 0
  12.               end
  13.               event.start #开启事件
  14.               return 1, 2#p_direction #返回即将开启事件以及角色朝向
  15.             end
  16.           end
  17.         #end
  18.       end
  19.     end
  20.     return 0, 5 #返回不会开启事件以及角色朝向不变
  21.   end
复制代码

這是以四方為例,八方也可以這麼做,這樣應該可以實現隔空取物,例軒三的河流寶箱
人物一樣可以走動...
作者: 06dm    时间: 2007-8-16 21:31
学习了。。。




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