赞 | 0 |
VIP | 170 |
好人卡 | 5 |
积分 | 1 |
经验 | 15787 |
最后登录 | 2013-8-6 |
在线时间 | 285 小时 |
Lv1.梦旅人 垃圾死人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 285 小时
- 注册时间
- 2009-1-27
- 帖子
- 2420
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
使用了http://rpg.blue/web/htm/news443.htm这里的这个叶子的SLG战棋系统教學(阿尔西斯战记0.5)里的战斗系统。。。也就是战棋模式的脚本
代入后在运行的时候总是出现个错误。。。。
想请教下这几行错误是啥意思呢。。。
在用移动指令的时候提示:
脚本'scene_SLG(指令回合)'的239行发生了NoMethodError.undefined method '[]=' fornil:NilClass
我查看了脚本,是下面这句错误。。。。
@spriteset.tilemap.flash_data[grid.x, grid.y] = MOVE_COLOR
- class Scene_SLG
- #==========================================================================
- # ■ 战斗指令主流程
- #==========================================================================
- #--------------------------------------------------------------------------
- # ◎开始战斗指令回合
- #--------------------------------------------------------------------------
- def start_phase4
- # 转移到回合 4
- @phase = 4
- # 记录初始位置
- @old_grid = Grid.new $game_map.events[@active_battler.event_id].x, $game_map.events[@active_battler.event_id].y
- @old_direction = $game_map.events[@active_battler.event_id].direction
- @now_grid = Grid.new $game_map.events[@active_battler.event_id].x, $game_map.events[@active_battler.event_id].y
- # 光标移动(附带地图滚动)
- $game_map.chaochaoc(@old_grid.x, @old_grid.y, 7)
- # 设置已行动标志
- @active_battler.have_moved = false
- # 设置角色指令窗口
- setup_command_window
- end
- #--------------------------------------------------------------------------
- # ◎刷新
- #--------------------------------------------------------------------------
- def update_phase4
-
- # 记录现在位置
- @now_grid.x = $game_map.events[@active_battler.event_id].x
- @now_grid.y = $game_map.events[@active_battler.event_id].y
- # 移动刷新
- if @phase4_move_select
- update_phase4_move_select
- # 状态窗口刷新
- update_status_window
- # 物品选择刷新
- elsif @phase4_item_select
- update_phase4_item_select
- # 特技选择刷新
- elsif @phase4_skill_select
- update_phase4_skill_select
- # 目标选择刷新
- elsif @phase4_target_select
- update_phase4_target_select
- # 状态窗口刷新
- update_status_window
- # 基本指令刷新
- elsif @phase4_basic_command
- update_phase4_basic_command
- end
- end
- #--------------------------------------------------------------------------
- # ◎刷新状态窗口
- #--------------------------------------------------------------------------
- def update_status_window
- # 检查光标位置(避免重复刷新)
- if $game_cursor.x == @status_x and $game_cursor.y == @status_y
- return
- end
- @status_x = $game_cursor.x
- @status_y = $game_cursor.y
- if @battler_coordinate[@status_x,@status_y] != nil and
- @battlers[@battler_coordinate[@status_x,@status_y]] != nil
- # 死人不显示状态窗口
- if @battlers[@battler_coordinate[@status_x,@status_y]].death == true
- @slg_status_window.visible = false
- return
- end
- # 刷新窗口
- @slg_status_window.refresh @battlers[@battler_coordinate[@status_x,@status_y]]
- else
- @slg_status_window.visible = false
- end
- end
- #==========================================================================
- # ■ 角色指令窗口
- #==========================================================================
- #--------------------------------------------------------------------------
- # ◎设置角色指令窗口
- #--------------------------------------------------------------------------
- def setup_command_window
- # 角色指令窗口有效化
- @actor_command_window.active = true
- #@actor_command_window.visible = true
- @phase4_basic_command = true
- # 判断是否已行动过
- if @active_battler.have_moved
- @actor_command_window.disable_item(0)
- # 设置索引为 1
- @actor_command_window.index = 1
- else
- @actor_command_window.draw_item(0, Color.new(255,255,255))
- # 设置索引为 0
- @actor_command_window.index = 0
- # 闪烁
- $game_map.events[@active_battler.event_id].blink = true
- end
- end
- #--------------------------------------------------------------------------
- # ◎关闭角色指令窗口
- #--------------------------------------------------------------------------
- def close_command_window
- # 角色指令窗口无效化
- @actor_command_window.active = false
- @actor_command_window.visible = false
- @phase4_basic_command = false
- # 结束闪烁
- $game_map.events[@active_battler.event_id].blink = false
- end
- #--------------------------------------------------------------------------
- # ◎角色指令窗口刷新
- #--------------------------------------------------------------------------
- def update_phase4_basic_command
-
- # 事件移动
- $game_map.events[@active_battler.event_id].move_type_custom
- # 镜头跟随
- if $game_map.events[@active_battler.event_id].moving?
- max_x = ($game_map.width - 20) * 128
- max_y = ($game_map.height - 15) * 128
- $game_map.display_x = [0, [
- $game_map.events[@active_battler.event_id].real_x - CENTER_X, max_x].min].max
- $game_map.display_y = [0, [
- $game_map.events[@active_battler.event_id].real_y - CENTER_Y, max_y].min].max
- end
- # 地图滚动或角色移动中就关闭窗口
- if $game_map.scrolling? or $game_map.events[@active_battler.event_id].moving?
- # 角色指令窗口无效化
- @actor_command_window.active = false
- @actor_command_window.visible = false
- @command_need_refresh = true
- return
- elsif @command_need_refresh == true
- # 角色指令窗口有效化
- @actor_command_window.active = true
- @command_need_refresh = false
- end
- # 窗口可视化
- @actor_command_window.visible = true
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 角色已移动过的话
- if @active_battler.have_moved
- $game_map.events[@active_battler.event_id].moveto(@old_grid.x, @old_grid.y)
- $game_map.events[@active_battler.event_id].direction = @old_direction
- # 地图滚动
- $game_map.chaochaoc(@old_grid.x, @old_grid.y, 7)
- @active_battler.have_moved = false
- # 记录新位置
- change_coordinate(@active_battler.event_id, @now_grid.x, @now_grid.y,
- @old_grid.x, @old_grid.y)
- # 刷新一遍窗口
- setup_command_window
- end
- return
- end
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 角色指令窗口光标位置分歧
- case @actor_command_window.index
- when 0 # 移动
- # 移动过就不能再选
- if @active_battler.have_moved
- return
- end
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 关闭角色指令窗口
- close_command_window
- # 开始选择移动位置
- start_move_select
- when 1 # 攻击
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 关闭角色指令窗口
- close_command_window
- # 设置行动
- @active_battler.current_action.kind = 1
- @skill = $data_skills[@active_battler.skill_of_attack]
- @active_battler.current_action.skill_id = @skill.id
- make_range_and_aoe(@skill)
- # 效果范围是单体的情况下
- if @skill.scope == 1 or @skill.scope == 3 or @skill.scope == 5
- # 记录窗口
- @ex_window = 0
- # 开始选择目标
- start_target_select
- end
- when 2 # 特技
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 关闭角色指令窗口
- close_command_window
- # 设置行动
- @active_battler.current_action.kind = 1
- # 开始选择特技
- start_skill_select
- when 3 # 物品
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 关闭角色指令窗口
- close_command_window
- # 设置行动
- @active_battler.current_action.kind = 2
- # 开始选择物品
- start_item_select
- when 4 # 休息
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 关闭角色指令窗口
- close_command_window
- # 设置行动
- @active_battler.current_action.kind = 0
- @active_battler.current_action.basic = 3
- # 开始行动回合
- start_phase5
- end
- return
- end
- end
- #==========================================================================
- # ■ 移动选择
- #==========================================================================
- #--------------------------------------------------------------------------
- # ◎开始移动选择
- #--------------------------------------------------------------------------
- def start_move_select
- # 开启标志
- @phase4_move_select = true
- # 光标移动
- $game_cursor.moveto(@old_grid.x, @old_grid.y)
- # 光标可见
- $game_cursor.direction = 2
- # 取得可移动范围
- @move_grids = get_move_range(@old_grid, @active_battler.move_range)
- # 移动范围闪烁
- for grid in @move_grids
- @spriteset.tilemap.flash_data[grid.x, grid.y] = MOVE_COLOR
- end
- end
- #--------------------------------------------------------------------------
- # ◎结束移动选择
- #--------------------------------------------------------------------------
- def end_move_select
- # 关闭标志
- @phase4_move_select = false
- # 关闭状态窗口
- @slg_status_window.visible = false
- # 取消移动范围闪烁
- for grid in @move_grids
- @spriteset.tilemap.flash_data[grid.x, grid.y] = 0x000
- end
- # 光标不可见
- $game_cursor.direction = 8
- # 地图滚动
- $game_map.chaochaoc(@old_grid.x, @old_grid.y, 7)
- end
- #--------------------------------------------------------------------------
- # ◎移动范围刷新
- #--------------------------------------------------------------------------
- def update_phase4_move_select
- index = @active_battler.event_id
- # 正在移动中就返回
- if $game_map.events[index].moving?
- return
- end
- #更新光标
- $game_cursor.update
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 结束移动选择
- end_move_select
- # 设置角色指令窗口
- setup_command_window
- return
- end
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 检查是否能移动到该格
- if (grid = get_grid(@move_grids, $game_cursor.x, $game_cursor.y)) != false
- setup_path(index, grid)
- start_event(index)
- # 设置已行动标志
- @active_battler.have_moved = true
- # 记录新位置
- change_coordinate(@active_battler.event_id, @old_grid.x, @old_grid.y,
- grid.x, grid.y)
- # 结束移动选择
- end_move_select
- # 设置角色指令窗口
- setup_command_window
- end
- end
- end
- #==========================================================================
- # ■ 特技选择
- #==========================================================================
- #--------------------------------------------------------------------------
- # ◎开始特技选择
- #--------------------------------------------------------------------------
- def start_skill_select
- # 开启标志
- @phase4_skill_select = true
- # 生成特技窗口
- @skill_window = Window_Skill.new(@active_battler)
- # 关联帮助窗口
- @skill_window.help_window = @help_window
- end
- #--------------------------------------------------------------------------
- # ◎选择特技结束
- #--------------------------------------------------------------------------
- def end_skill_select
- # 释放特技窗口
- @skill_window.dispose
- @skill_window = nil
- # 关闭标志
- @phase4_skill_select = false
- # 隐藏帮助窗口
- @help_window.visible = false
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面 (角色命令回合 : 选择特技)
- #--------------------------------------------------------------------------
- def update_phase4_skill_select
- # 设置特技窗口为可视状态
- @skill_window.visible = true
- # 刷新特技窗口
- @skill_window.update
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 结束特技选择
- end_skill_select
- # 设置角色指令窗口
- setup_command_window
- return
- end
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 获取特技选择窗口现在选择的特技的数据
- @skill = @skill_window.skill
- # 无法使用的情况下
- if @skill == nil or not @active_battler.skill_can_use?(@skill.id)
- # 演奏冻结 SE
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 设置行动
- @active_battler.current_action.skill_id = @skill.id
- make_range_and_aoe(@skill)
- # 设置特技窗口为不可见状态
- @skill_window.visible = false
- # 效果范围是单体的情况下
- if @skill.scope == 1 or @skill.scope == 3 or @skill.scope == 5
- # 记录窗口
- @ex_window = 1
- # 开始选择目标
- start_target_select
- # 选择特技结束
- end_skill_select
- # 效果范围不是单体的情况下
- else
- # 选择特技结束
- end_skill_select
- end
- return
- end
- end
- #==========================================================================
- # ■ 物品选择
- #==========================================================================
- #--------------------------------------------------------------------------
- # ◎开始物品选择
- #--------------------------------------------------------------------------
- def start_item_select
- # 开启标志
- @phase4_item_select = true
- # 生成物品窗口
- @item_window = Window_Item.new#(@active_battler)保留做每个角色独立物品
- # 关联帮助窗口
- @item_window.help_window = @help_window
- end
- #--------------------------------------------------------------------------
- # ◎选择物品结束
- #--------------------------------------------------------------------------
- def end_item_select
- # 释放物品窗口
- @item_window.dispose
- @item_window = nil
- # 关闭标志
- @phase4_item_select = false
- # 隐藏帮助窗口
- @help_window.visible = false
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面 (角色命令回合 : 选择物品)
- #--------------------------------------------------------------------------
- def update_phase4_item_select
-
- # 设置物品窗口为可视状态
- @item_window.visible = true
- # 刷新物品窗口
- @item_window.update
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 结束物品选择
- end_item_select
- # 设置角色指令窗口
- setup_command_window
- return
- end
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 获取物品选择窗口现在选择的物品的数据
- @item = @item_window.item
- # 无法使用的情况下
- unless $game_party.item_can_use?(@item.id)
- # 演奏冻结 SE
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 设置行动
- @active_battler.current_action.item_id = @item.id
-
- make_range_and_aoe(@item)
- # 设置物品窗口为不可见状态
- @item_window.visible = false
- # 效果范围是单体的情况下
- if @item.scope == 1 or @item.scope == 3 or @item.scope == 5
- # 记录窗口
- @ex_window = 1
- # 开始选择目标
- start_target_select
- # 选择物品结束
- end_item_select
- # 效果范围不是单体的情况下
- else
- # 选择物品结束
- end_item_select
- end
- return
- end
- end
- #==========================================================================
- # ■ 目标选择
- #==========================================================================
- #--------------------------------------------------------------------------
- # ◎开始目标选择
- #--------------------------------------------------------------------------
- def start_target_select
- # 开启标志
- @phase4_target_select = true
- # 光标移动
- $game_cursor.moveto(@now_grid.x, @now_grid.y)
- # 光标可见
- $game_cursor.direction = 2
- # 取得射程范围
- @target_grids = get_target_range(
- @now_grid, @active_battler.current_action.range)
- # 初始化作用范围
- @aoe_grids = []
- # 射程范围闪烁
- for grid in @target_grids
- @spriteset.tilemap.flash_data[grid.x, grid.y] = MOVE_COLOR
- end
- # 范围闪烁
- target_grid = Grid.new($game_cursor.x, $game_cursor.y)
- @aoe_grids = get_target_aoe(target_grid, @active_battler.current_action.aoe)
- for grid in @aoe_grids
- if @target_grids.include?(grid)
- @spriteset.tilemap.flash_data[grid.x, grid.y] = TARGET_COLOR
- else
- @spriteset.tilemap.flash_data[grid.x, grid.y] = TARGET_OUT_COLOR
- end
- end
- end
- #--------------------------------------------------------------------------
- # ◎结束目标选择
- #--------------------------------------------------------------------------
- def end_target_select
- # 关闭标志
- @phase4_target_select = false
- # 关闭状态窗口
- @slg_status_window.visible = false
- # 取消移动范围闪烁
- for grid in (@target_grids + @aoe_grids)
- @spriteset.tilemap.flash_data[grid.x, grid.y] = 0x000
- end
- # 光标不可见
- $game_cursor.direction = 8
- # 地图滚动
- $game_map.chaochaoc(@now_grid.x, @now_grid.y, 7)
-
-
- end
- #--------------------------------------------------------------------------
- # ◎目标选择刷新
- #--------------------------------------------------------------------------
- def update_phase4_target_select
- # 记录光标位置
- old_cursor_x = $game_cursor.x
- old_cursor_y = $game_cursor.y
- # 更新光标
- $game_cursor.update
- index = @active_battler.event_id
- # 光标移动了的话
- if $game_cursor.x != old_cursor_x or $game_cursor.y != old_cursor_y
- # 原来范围闪烁停止
- for grid in @aoe_grids
- if grid.compare_grids(@target_grids)
- @spriteset.tilemap.flash_data[grid.x, grid.y] = MOVE_COLOR
- else
- @spriteset.tilemap.flash_data[grid.x, grid.y] = 0x000
- end
- end
- # 更新范围
- target_grid = Grid.new($game_cursor.x, $game_cursor.y)
- @aoe_grids = get_target_aoe(target_grid, @active_battler.current_action.aoe)
- # 范围闪烁
- for grid in @aoe_grids
- if grid.compare_grids(@target_grids)
- @spriteset.tilemap.flash_data[grid.x, grid.y] = TARGET_COLOR
- else
- @spriteset.tilemap.flash_data[grid.x, grid.y] = TARGET_OUT_COLOR
- end
- end
- end
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 结束目标选择
- end_target_select
- # 判断之前的窗口
- if @ex_window == 1
- # 返回特技选择
- start_skill_select
- elsif @ex_window == 2
- # 返回物品选择
- start_item_select
- else
- # 返回角色指令
- setup_command_window
- end
- return
- end
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- target_grid = Grid.new($game_cursor.x, $game_cursor.y)
- # 检查是否在射程内
- for grid in @target_grids
- if grid.x == $game_cursor.x and grid.y == $game_cursor.y
- available = true
- break
- end
- end
- if available != true
- return
- end
- # 设置目标坐标
- @active_battler.current_action.target_grid = target_grid
- # 特技范围为己方非HP0的话
- if @active_battler.current_action.for_friend?
- return unless get_target_friend
- # 特技范围为己方HP0的话
- elsif @active_battler.current_action.for_friend?(true)
- return unless get_target_friend(true)
- # 特技范围为敌方的话
- elsif @active_battler.current_action.for_enemy?
- return unless get_target_enemy
- end
- # 结束目标选择
- end_target_select
- # 开始行动回合
- start_phase5
- end
- end
- end
复制代码
在使用攻击指令的时候提示:
脚本'Scene_SLG(杂乱的方法)'的164行发生了NoMethodError.undefined method 'user_range?, for nil:NilClass
我查看了脚本,是下面这句错误。。。。
if action.user_range?
@active_battler.current_action.range = @active_battler.range +
action.range
- class Scene_SLG
- #--------------------------------------------------------------------------
- # ● 刷新解释器
- #--------------------------------------------------------------------------
- def interpreter_update
- # 执行战斗事件中的情况下
- if $game_system.battle_interpreter.running?
- # 刷新解释器
- $game_system.battle_interpreter.update
- # 强制行动的战斗者不存在的情况下
- #if $game_temp.forcing_battler == nil
- # 执行战斗事件结束的情况下
- #unless $game_system.battle_interpreter.running?
- # 继续战斗的情况下、再执行战斗事件的设置
- #unless judge
- #setup_battle_event
- #end
- #end
- # 如果不是结束战斗回合的情况下
- #if @phase != 5
- # 刷新状态窗口
- #@status_window.refresh
- #end
- #end
- end
- end
- #--------------------------------------------------------------------------
- # ● 调用商店
- #--------------------------------------------------------------------------
- def call_shop
- # 清除商店调用标志
- $game_temp.shop_calling = false
- # 矫正主角姿势
- $game_player.straighten
- # 切换到商店画面
- $scene = Scene_Shop.new
- end
- #--------------------------------------------------------------------------
- # ● 调用名称输入
- #--------------------------------------------------------------------------
- def call_name
- # 清除商店调用名称输入标志
- $game_temp.name_calling = false
- # 矫正主角姿势
- $game_player.straighten
- # 切换到名称输入画面
- $scene = Scene_Name.new
- end
- #--------------------------------------------------------------------------
- # ● 调用菜单
- #--------------------------------------------------------------------------
- def call_menu
- # 清除商店调用菜单标志
- $game_temp.menu_calling = false
- # 已经设置了菜单 SE 演奏标志的情况下
- if $game_temp.menu_beep
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 清除菜单演奏 SE 标志
- $game_temp.menu_beep = false
- end
- # 矫正主角姿势
- $game_player.straighten
- # 切换到菜单画面
- $scene = Scene_Menu.new
- end
- #--------------------------------------------------------------------------
- # ● 调用存档
- #--------------------------------------------------------------------------
- def call_save
- # 矫正主角姿势
- $game_player.straighten
- # 切换到存档画面
- $scene = Scene_Save.new
- end
- #--------------------------------------------------------------------------
- # ● 调用调试
- #--------------------------------------------------------------------------
- def call_debug
- # 清除商店调用调试标志
- $game_temp.debug_calling = false
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 矫正主角姿势
- $game_player.straighten
- # 切换到调试画面
- $scene = Scene_Debug.new
- end
- #--------------------------------------------------------------------------
- # ● 主角的场所移动
- #--------------------------------------------------------------------------
- def transfer_player
- # 清除主角场所移动调试标志
- $game_temp.player_transferring = false
- # 移动目标与现在的地图有差异的情况下
- if $game_map.map_id != $game_temp.player_new_map_id
- # 设置新地图
- $game_map.setup($game_temp.player_new_map_id)
- end
- # 设置主角位置
- $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
- # 设置主角朝向
- case $game_temp.player_new_direction
- when 2 # 下
- $game_player.turn_down
- when 4 # 左
- $game_player.turn_left
- when 6 # 右
- $game_player.turn_right
- when 8 # 上
- $game_player.turn_up
- end
- # 矫正主角姿势
- $game_player.straighten
- # 刷新地图 (执行并行事件)
- $game_map.update
- # 在生成活动块
- @spriteset.dispose
- @spriteset = Spriteset_Map.new
- # 处理过渡中的情况下
- if $game_temp.transition_processing
- # 清除过渡处理中标志
- $game_temp.transition_processing = false
- # 执行过渡
- Graphics.transition(20)
- end
- # 执行地图设置的 BGM、BGS 的自动切换
- $game_map.autoplay
- # 设置画面
- Graphics.frame_reset
- # 刷新输入信息
- Input.update
- end
- #--------------------------------------------------------------------------
- # ◎记录战斗者坐标
- #--------------------------------------------------------------------------
- def record_coordinate
- # 设置地图坐标列表
- @battler_coordinate = Table.new($game_map.data.xsize,$game_map.data.ysize)
- for battler in @battlers
- # 跳过nil值
- next if battler == nil
- # 忽略死亡单位
- if !battler.death
- @battler_coordinate[$game_map.events[battler.event_id].x,
- $game_map.events[battler.event_id].y] = battler.event_id
- #elsif battler.is_a?(Game_Actor) ★★特别注意!!如果要设置角色复活魔法,在这里要改
- #@battler_coordinate[$game_map.events[battler.event_id].x,
- #$game_map.events[battler.event_id].y] = battler.event_id
- end
- end
- end
- #--------------------------------------------------------------------------
- # ◎更改战斗者坐标
- #--------------------------------------------------------------------------
- def change_coordinate(event_id, old_x, old_y, new_x, new_y)
- @battler_coordinate[old_x, old_y] = 0
- @battler_coordinate[new_x, new_y] = event_id
- end
- #--------------------------------------------------------------------------
- # ◎生成射程及作用范围
- #--------------------------------------------------------------------------
- def make_range_and_aoe(action)
- if action.user_range?
- @active_battler.current_action.range = @active_battler.range +
- action.range
- else
- @active_battler.current_action.range = action.range
- end
- if action.user_aoe?
- @active_battler.current_action.aoe = @active_battler.aoe +
- action.aoe
- else
- @active_battler.current_action.aoe = action.aoe
- end
- end
- #--------------------------------------------------------------------------
- # 修改面向,让a面向b(柳柳)b可以是Grid类
- #--------------------------------------------------------------------------
- def a_faceto_b(a,b)
- return if b == nil
- sx = a.x - b.x
- sy = a.y - b.y
- if sx == 0 and sy == 0
- return
- end
- # 横侧距离长的情况下
- if sx.abs > sy.abs
- sx > 0 ? a.turn_left : a.turn_right
- # 竖侧距离长的情况下
- else
- sy > 0 ? a.turn_up : a.turn_down
- end
- end
- end
复制代码
请知道的前辈指导下。。。 |
|