设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 12154|回复: 15
打印 上一主题 下一主题

[原创发布] 【解谜游戏必备】简易使用物品事件。

[复制链接]

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39607
在线时间
7482 小时
注册时间
2009-7-6
帖子
13482

开拓者贵宾

跳转到指定楼层
1
发表于 2011-7-4 09:06:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 fux2 于 2012-4-6 12:13 编辑

以往我们制作特定物品在特定地点使用的时候,都会很麻烦,一般都是靠公共事件判断坐标或者在目标附近进行开关操作
例如使用物品“钥匙”,打开面前的门,如何设置最方便?
如果下面的图看不懂请翻到下面下载范例.



设置如图
使用详细
当任何一件道具命中率为0的时候,该道具就会被归为任务类道具.
事件设置方法,任何一个事件页行走图为空并且勾选了允许穿透选项,该事件页则
无论如何都不会被执行,被归类为任务事件.
使用方法,在任务事件页第一行必须是条件分歧,物品持有时(需要使用的道具物品)
详细见本范例.
当物品不满足使用条件,并且公共事件不为空的时候,执行公共事件.
使用道具时需要面对或者站在事件上.

以下范例
使用物品.rar (189.38 KB, 下载次数: 836)

以下代码
  1. =begin
  2. 脚本来自rpg.blue
  3. 当任何一件道具命中率为0的时候,该道具就会被归为任务类道具.
  4. 事件设置方法,任何一个事件页行走图为空并且勾选了允许穿透选项,该事件页则
  5. 无论如何都不会被执行,被归类为任务事件.
  6. 使用方法,在任务事件页第一行必须是条件分歧,物品持有时(需要使用的道具物品)
  7. 详细见本范例.
  8. 当物品不满足使用条件,并且公共事件不为空的时候,执行公共事件.
  9. 使用道具时需要面对或者站在事件上.
  10. =end

  11. module Fux2
  12.   D = {2=>[0,1],4=>[-1,0],6=>[1,0],8=>[0,-1]}
  13. end

  14. class Scene_Item
  15.   
  16.   include Fux2
  17.   alias uu update_item
  18.   def update_item
  19.     if Input.trigger?(Input::C)
  20.       xa = Fux2::D[$game_player.direction][0]
  21.       ya = Fux2::D[$game_player.direction][1]
  22.       @item = @item_window.item
  23.       if @item && @item.hit == 0
  24.         $game_map.events.values.each do |event|
  25.           if $game_player.x == event.x && $game_player.y == event.y
  26.             event.event.pages.each do |page|
  27.               if page.graphic.character_name == "" && page.through == true && page.list[0].code == 111 && page.list[0].parameters[1] == @item.id
  28.                 $game_system.map_interpreter.setup(page.list,event.id)
  29.                 $scene = Scene_Map.new
  30.                 return
  31.               end
  32.             end
  33.           elsif $game_player.x+xa == event.x && $game_player.y+ya == event.y
  34.             event.event.pages.each do |page|
  35.               if page.graphic.character_name == "" && page.through == true && page.list[0].code == 111 && page.list[0].parameters[1] == @item.id
  36.                 $game_system.map_interpreter.setup(page.list,event.id)
  37.                 $scene = Scene_Map.new
  38.                 return
  39.               end
  40.             end
  41.           end
  42.         end
  43.         if @item.common_event_id > 0
  44.           $game_temp.common_event_id = @item.common_event_id
  45.           $scene = Scene_Map.new
  46.           return
  47.         end
  48.         return
  49.       end
  50.     end
  51.     uu
  52.   end
  53.   
  54. end

  55. class Game_System

  56.   attr_accessor:map_interpreter
  57.   
  58. end

  59. class Game_Event < Game_Character
  60.   
  61.   def parameters
  62.     return @parameters
  63.   end
  64.   def event
  65.     return @event
  66.   end
  67.   def code
  68.     return @code
  69.   end
  70.   def trigger
  71.     return @trigger
  72.   end
  73.   
  74. end

  75. class Game_Event < Game_Character
  76.   
  77.   def refresh
  78.     new_page = nil
  79.     unless @erased
  80.       for page in @event.pages.reverse
  81.         c = page.condition
  82.         if page.graphic.character_name == "" && page.through == true
  83.           next
  84.         end
  85.         if c.switch1_valid
  86.           if $game_switches[c.switch1_id] == false
  87.             next
  88.           end
  89.         end
  90.         if c.switch2_valid
  91.           if $game_switches[c.switch2_id] == false
  92.             next
  93.           end
  94.         end
  95.         if c.variable_valid
  96.           if $game_variables[c.variable_id] < c.variable_value
  97.             next
  98.           end
  99.         end
  100.         if c.self_switch_valid
  101.           key = [@map_id, @event.id, c.self_switch_ch]
  102.           if $game_self_switches[key] != true
  103.             next
  104.           end
  105.         end
  106.         new_page = page
  107.         break
  108.       end
  109.     end
  110.     if new_page == @page
  111.       return
  112.     end
  113.     @page = new_page
  114.     clear_starting
  115.     if @page == nil
  116.       @tile_id = 0
  117.       @character_name = ""
  118.       @character_hue = 0
  119.       @move_type = 0
  120.       @through = true
  121.       @trigger = nil
  122.       @list = nil
  123.       @interpreter = nil
  124.       return
  125.     end
  126.     @tile_id = @page.graphic.tile_id
  127.     @character_name = @page.graphic.character_name
  128.     @character_hue = @page.graphic.character_hue
  129.     if @original_direction != @page.graphic.direction
  130.       @direction = @page.graphic.direction
  131.       @original_direction = @direction
  132.       @prelock_direction = 0
  133.     end
  134.     if @original_pattern != @page.graphic.pattern
  135.       @pattern = @page.graphic.pattern
  136.       @original_pattern = @pattern
  137.     end
  138.     @opacity = @page.graphic.opacity
  139.     @blend_type = @page.graphic.blend_type
  140.     @move_type = @page.move_type
  141.     @move_speed = @page.move_speed
  142.     @move_frequency = @page.move_frequency
  143.     @move_route = @page.move_route
  144.     @move_route_index = 0
  145.     @move_route_forcing = false
  146.     @walk_anime = @page.walk_anime
  147.     @step_anime = @page.step_anime
  148.     @direction_fix = @page.direction_fix
  149.     @through = @page.through
  150.     @always_on_top = @page.always_on_top
  151.     @trigger = @page.trigger
  152.     @list = @page.list
  153.     @interpreter = nil
  154.     if @trigger == 4
  155.       @interpreter = Interpreter.new
  156.     end
  157.     check_event_trigger_auto
  158.   end
  159.   
  160. end
  161. #rpg.blue
复制代码

评分

参与人数 2星屑 +214 收起 理由
tjjlb + 14
夕阳武士 + 200

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托

Lv2.观梦者

梦石
0
星屑
790
在线时间
1666 小时
注册时间
2009-7-25
帖子
532

开拓者

2
发表于 2011-7-4 09:46:50 | 只看该作者
沙发~
解密设置方便多了呢~
任务事件的能换成用 首行注释 来设置么,万一需要穿透什么的呢(PIA...)
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6545
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

3
发表于 2011-7-4 09:58:44 | 只看该作者
烁灵 发表于 2011-7-4 09:46
沙发~
解密设置方便多了呢~
任务事件的能换成用 首行注释 来设置么,万一需要穿透什么的呢(PIA...) ...

我就在想 某道具在某地方使用后干某事 和 解密游戏必备 有什么关系.= =
原来是这样= =.

点评

一般是解密类游戏需要这个0v0实际上是我再也想不到更好的标题了T.T  发表于 2011-7-4 12:07











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

雨狸

梦石
0
星屑
48
在线时间
625 小时
注册时间
2011-3-19
帖子
1296
4
发表于 2011-7-4 10:45:24 | 只看该作者
一开始以为是标题党,斑竹怎么会过这个= =后来才发现不是解密工程,而是解密游戏= =

点评

我语文不好0v0已经修正  发表于 2011-7-4 12:08
明夕,何夕
回复 支持 反对

使用道具 举报

Lv1.梦旅人

战国美少年森兰丸

梦石
0
星屑
204
在线时间
852 小时
注册时间
2008-7-20
帖子
3705
5
发表于 2011-7-4 12:29:31 | 只看该作者
一开始截图愣没明白0.0不过看范例这个想法很不错
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2012-11-16
帖子
9
6
发表于 2012-11-19 21:03:00 | 只看该作者
喵...表示代码复制进去结果无效呢OUQ
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
342 小时
注册时间
2013-6-11
帖子
81
7
发表于 2013-7-3 15:18:12 | 只看该作者
为什么设置了可以得到物品,等去用条件分歧之后,设置的可以增加的物品,为什么没有得到呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
52 小时
注册时间
2012-8-29
帖子
94
8
发表于 2013-7-3 15:23:29 | 只看该作者
yingyu25 发表于 2013-7-3 15:18
为什么设置了可以得到物品,等去用条件分歧之后,设置的可以增加的物品,为什么没有得到呢? ...

能详细说一下事件如何设置的吗?最好仔细看看范例里面的示范哦。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
342 小时
注册时间
2013-6-11
帖子
81
9
发表于 2013-7-3 15:53:03 | 只看该作者
柜子:移动时动画,决定建,增加蓝色的书,打开独立开关A.
书架:移动时动画,允许穿透,决定建,条件分歧为持有蓝色的书时,减去蓝色的书,增加回复剂.独立开关A打开.
公共事件,特定条件下使用,(下面什么也没有写).
然后设置,物品,蓝色的书为使用:平时,公共事件为:特定条件下使用.需要得到的回复剂也是这样设置.
但是得到书之后,再去书架拿回复剂时,书没了,也没有得到回复剂.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
342 小时
注册时间
2013-6-11
帖子
81
10
发表于 2013-7-3 15:53:52 | 只看该作者
注释一下:
那些柜子,和书架,都是场景内家用家具,从一开始就没有图片的.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-20 21:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表