赞 | 451 |
VIP | 56 |
好人卡 | 75 |
积分 | 425 |
经验 | 124650 |
最后登录 | 2024-12-3 |
在线时间 | 7608 小时 |
Lv5.捕梦者 (管理员) 老黄鸡
- 梦石
- 0
- 星屑
- 42513
- 在线时间
- 7608 小时
- 注册时间
- 2009-7-6
- 帖子
- 13506
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 fux2 于 2012-4-6 12:13 编辑
以往我们制作特定物品在特定地点使用的时候,都会很麻烦,一般都是靠公共事件判断坐标或者在目标附近进行开关操作
例如使用物品“钥匙”,打开面前的门,如何设置最方便?
如果下面的图看不懂请翻到下面下载范例.
设置如图
使用详细
当任何一件道具命中率为0的时候,该道具就会被归为任务类道具.
事件设置方法,任何一个事件页行走图为空并且勾选了允许穿透选项,该事件页则
无论如何都不会被执行,被归类为任务事件.
使用方法,在任务事件页第一行必须是条件分歧,物品持有时(需要使用的道具物品)
详细见本范例.
当物品不满足使用条件,并且公共事件不为空的时候,执行公共事件.
使用道具时需要面对或者站在事件上.
以下范例
使用物品.rar
(189.38 KB, 下载次数: 838)
以下代码- =begin
- 脚本来自rpg.blue
- 当任何一件道具命中率为0的时候,该道具就会被归为任务类道具.
- 事件设置方法,任何一个事件页行走图为空并且勾选了允许穿透选项,该事件页则
- 无论如何都不会被执行,被归类为任务事件.
- 使用方法,在任务事件页第一行必须是条件分歧,物品持有时(需要使用的道具物品)
- 详细见本范例.
- 当物品不满足使用条件,并且公共事件不为空的时候,执行公共事件.
- 使用道具时需要面对或者站在事件上.
- =end
- module Fux2
- D = {2=>[0,1],4=>[-1,0],6=>[1,0],8=>[0,-1]}
- end
- class Scene_Item
-
- include Fux2
- alias uu update_item
- def update_item
- if Input.trigger?(Input::C)
- xa = Fux2::D[$game_player.direction][0]
- ya = Fux2::D[$game_player.direction][1]
- @item = @item_window.item
- if @item && @item.hit == 0
- $game_map.events.values.each do |event|
- if $game_player.x == event.x && $game_player.y == event.y
- event.event.pages.each do |page|
- if page.graphic.character_name == "" && page.through == true && page.list[0].code == 111 && page.list[0].parameters[1] == @item.id
- $game_system.map_interpreter.setup(page.list,event.id)
- $scene = Scene_Map.new
- return
- end
- end
- elsif $game_player.x+xa == event.x && $game_player.y+ya == event.y
- event.event.pages.each do |page|
- if page.graphic.character_name == "" && page.through == true && page.list[0].code == 111 && page.list[0].parameters[1] == @item.id
- $game_system.map_interpreter.setup(page.list,event.id)
- $scene = Scene_Map.new
- return
- end
- end
- end
- end
- if @item.common_event_id > 0
- $game_temp.common_event_id = @item.common_event_id
- $scene = Scene_Map.new
- return
- end
- return
- end
- end
- uu
- end
-
- end
- class Game_System
- attr_accessor:map_interpreter
-
- end
- class Game_Event < Game_Character
-
- def parameters
- return @parameters
- end
- def event
- return @event
- end
- def code
- return @code
- end
- def trigger
- return @trigger
- end
-
- end
- class Game_Event < Game_Character
-
- def refresh
- new_page = nil
- unless @erased
- for page in @event.pages.reverse
- c = page.condition
- if page.graphic.character_name == "" && page.through == true
- next
- end
- if c.switch1_valid
- if $game_switches[c.switch1_id] == false
- next
- end
- end
- if c.switch2_valid
- if $game_switches[c.switch2_id] == false
- next
- end
- end
- if c.variable_valid
- if $game_variables[c.variable_id] < c.variable_value
- next
- end
- end
- if c.self_switch_valid
- key = [@map_id, @event.id, c.self_switch_ch]
- if $game_self_switches[key] != true
- next
- end
- end
- new_page = page
- break
- end
- end
- if new_page == @page
- return
- end
- @page = new_page
- clear_starting
- if @page == nil
- @tile_id = 0
- @character_name = ""
- @character_hue = 0
- @move_type = 0
- @through = true
- @trigger = nil
- @list = nil
- @interpreter = nil
- return
- end
- @tile_id = @page.graphic.tile_id
- @character_name = @page.graphic.character_name
- @character_hue = @page.graphic.character_hue
- if @original_direction != @page.graphic.direction
- @direction = @page.graphic.direction
- @original_direction = @direction
- @prelock_direction = 0
- end
- if @original_pattern != @page.graphic.pattern
- @pattern = @page.graphic.pattern
- @original_pattern = @pattern
- end
- @opacity = @page.graphic.opacity
- @blend_type = @page.graphic.blend_type
- @move_type = @page.move_type
- @move_speed = @page.move_speed
- @move_frequency = @page.move_frequency
- @move_route = @page.move_route
- @move_route_index = 0
- @move_route_forcing = false
- @walk_anime = @page.walk_anime
- @step_anime = @page.step_anime
- @direction_fix = @page.direction_fix
- @through = @page.through
- @always_on_top = @page.always_on_top
- @trigger = @page.trigger
- @list = @page.list
- @interpreter = nil
- if @trigger == 4
- @interpreter = Interpreter.new
- end
- check_event_trigger_auto
- end
-
- end
- #rpg.blue
复制代码 |
评分
-
查看全部评分
|