赞 | 6 |
VIP | 22 |
好人卡 | 15 |
积分 | 13 |
经验 | 97563 |
最后登录 | 2022-11-26 |
在线时间 | 831 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1323
- 在线时间
- 831 小时
- 注册时间
- 2007-12-25
- 帖子
- 1558
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
经过很长时间的制作
发现事件编辑器,很多东西不支持变量操作,比如图像移动时,放大率
在这里我扩充了很多功能,主要时让绝大多数的东西支持变量指定。
不过还得先看完说明!
- #=========================================================================
- #■ 事件编辑器的功能已经相当完善
- # 不过有时候发现也有点不足,因为似乎有些东西不支持变量指定
- # 种种,问题在这里可以解决
- # 你只需要把要用的变量处理一下,然后在那个位置填写11
- #=========================================================================
- #-------------------------------------------------------------------------
- #使用方法,增加事件编辑器的功能采用约定的方法
- #不同的事件可能方法不同,不过大致统一 ,当然,在使用前要先处理这个变量的
- # 当每次使用 11 数值时都会产生一些约定的东西,
- # 如果想暂时屏蔽,你可以让 变量A = 11,这样就没有影响了
- # ●等待时间——约定设定为 11 时使用 变量A (绝大多数约定使用11)
- # ●条件分歧——
- # 开关 设定为11号时,使用编号为变量A
- # 变量 设定第一个为11时,使用编号为$变量A,第二个使用$变量B
- # 扩充支持变量指定 角色id,约定 当选定的是11号角色,则判断 id = 变量A角色
- # 武器,防具等
- # ●变量操作——约定当变量编号设定为11时,变量id为变量A
- # 操作对应为 11,则使用Id为变量B
- #
- # ●增减物品——约定当增减id设定为 11时,增减id为 变量A 的物品
- # ●增减武器——约定当增减id设定为 11时,增减id为 变量A 的武器
- # ●增减防具——约定当增减id设定为 11时,增减id为 变量A 的防具
- # ●画面卷动——约定当移动距离设定为 11时,移动距离为 变量A
- # ●显示动画——约定当动画id设定为 11时,使用ID为$变量A的动画
- # ●移动图片——约定将放大率设定为 11时,X使用$变量A,Y使用变量B(实现变量指定放大率)
- # ●更改角色姓名——在角色名内填写1-99的数字,即可成功将角色名该为,该id的角色名
- # ●敌人变身——约定当变身id设为11是,使用id = 变量A敌人
- # 为了适合不同作者,约定数值也作更改,更改后,将约定这个数值
- $约定 = 1
- $变量A_ID = 4 #你还是要设定下变量A的ID,1号变量的好处就是变量操作的时候默认就在1号
- $变量B_ID = 5
- #--------------总之,很多时候,只要选择的关于11,都可能约定为指定变量---------
- class Interpreter
- #--------------------------------------------------------------------------
- # ● 等待
- #--------------------------------------------------------------------------
- def command_106
- # 设置等待计数
- @parameters[0] = $game_variables[$变量A_ID] if @parameters[0] == $约定
- @wait_count = @parameters[0] * 2
- # 继续
- return true
- end
-
- #--------------------------------------------------------------------------
- # ● 条件分支
- #--------------------------------------------------------------------------
- def command_111
- # 初始化本地变量 result
- result = false
- # 条件判定
- case @parameters[0]
- when 0 # 开关
- @parameters[1] = $game_variables[$变量A_ID] if @parameters[1] == $约定
- result = ($game_switches[@parameters[1]] == (@parameters[2] == 0))
- when 1 # 变量
- @parameters[1] = $game_variables[$变量A_ID] if @parameters[1] == $约定
- value1 = $game_variables[@parameters[1]]
- if @parameters[2] == 0
- value2 = @parameters[3]
- else
- @parameters[3] = $game_variables[$变量B_ID] if @parameters[3] == $约定
- value2 = $game_variables[@parameters[3]]
- end
- case @parameters[4]
- when 0 # 等于
- result = (value1 == value2)
- when 1 # 以上
- result = (value1 >= value2)
- when 2 # 以下
- result = (value1 <= value2)
- when 3 # 超过
- result = (value1 > value2)
- when 4 # 未满
- result = (value1 < value2)
- when 5 # 以外
- result = (value1 != value2)
- end
- when 2 # 独立开关
- if @event_id > 0
- key = [$game_map.map_id, @event_id, @parameters[1]]
- if @parameters[2] == 0
- result = ($game_self_switches[key] == true)
- else
- result = ($game_self_switches[key] != true)
- end
- end
- when 3 # 计时器
- if $game_system.timer_working
- sec = $game_system.timer / Graphics.frame_rate
- if @parameters[2] == 0
- result = (sec >= @parameters[1])
- else
- result = (sec <= @parameters[1])
- end
- end
- when 4 # 角色
- @parameters[1] = $game_variables[$变量A_ID] if @parameters[1] == $约定
- @parameters[3] = $game_variables[$变量B_ID] if @parameters[3] == $约定
- actor = $game_actors[@parameters[1]]
- if actor != nil
- case @parameters[2]
- when 0 # 同伴
- result = ($game_party.actors.include?(actor))
- when 1 # 名称
- result = (actor.name == @parameters[3])
- when 2 # 特技
- result = (actor.skill_learn?(@parameters[3]))
- when 3 # 武器
- result = (actor.weapon_id == @parameters[3])
- when 4 # 防具
- result = (actor.armor1_id == @parameters[3] or
- actor.armor2_id == @parameters[3] or
- actor.armor3_id == @parameters[3] or
- actor.armor4_id == @parameters[3])
- when 5 # 状态
- result = (actor.state?(@parameters[3]))
- end
- end
- when 5 # 敌人
- enemy = $game_troop.enemies[@parameters[1]]
- if enemy != nil
- case @parameters[2]
- when 0 # 出现
- result = (enemy.exist?)
- when 1 # 状态
- result = (enemy.state?(@parameters[3]))
- end
- end
- when 6 # 角色
- character = get_character(@parameters[1])
- if character != nil
- result = (character.direction == @parameters[2])
- end
- when 7 # 金钱
- if @parameters[2] == 0
- result = ($game_party.gold >= @parameters[1])
- else
- result = ($game_party.gold <= @parameters[1])
- end
- when 8 # 物品
- @parameters[1] = $game_variables[$变量A_ID] if @parameters[1] == $约定
- result = ($game_party.item_number(@parameters[1]) > 0)
- when 9 # 武器
- @parameters[1] = $game_variables[$变量A_ID] if @parameters[1] == $约定
- result = ($game_party.weapon_number(@parameters[1]) > 0)
- when 10 # 防具
- @parameters[1] = $game_variables[$变量A_ID] if @parameters[1] == $约定
- result = ($game_party.armor_number(@parameters[1]) > 0)
- when 11 # 按钮
- result = (Input.press?(@parameters[1]))
- when 12 # 活动块
- result = eval(@parameters[1])
- end
- # 判断结果保存在 hash 中
- @branch[@list[@index].indent] = result
- # 判断结果为真的情况下
- if @branch[@list[@index].indent] == true
- # 删除分支数据
- @branch.delete(@list[@index].indent)
- # 继续
- return true
- end
- # 不符合条件的情况下 : 指令跳转
- return command_skip
- end
-
- #--------------------------------------------------------------------------
- # ● 增减物品
- #--------------------------------------------------------------------------
- alias swtf_command_126 command_126
- # 获取要操作的值
- def command_126
- if @parameters[0] == $约定
- @parameters[0] = $game_variables[$变量A_ID]
- end
- swtf_command_126
- # 继续
- return true
- end
- #--------------------------------------------------------------------------
- # ● 增减武器
- #--------------------------------------------------------------------------
- alias swtf_command_127 command_127
- def command_127
- # 获取要操作的值
- if @parameters[0] == $约定
- @parameters[0] = $game_variables[$变量A_ID]
- end
- swtf_command_127
- return true
- end
- #--------------------------------------------------------------------------
- # ● 增减防具
- #--------------------------------------------------------------------------
- alias swtf_command_128 command_128
- def command_128
- # 获取要操作的值
- if @parameters[0] == $约定
- @parameters[0] = $game_variables[$变量A_ID]
- end
- swtf_command_128
- return true
- end
- #--------------------------------------------------------------------------
- # ● 地图的滚动
- #--------------------------------------------------------------------------
- def command_203
- # 战斗中的情况下
- if $game_temp.in_battle
- # 继续
- return true
- end
- # 已经在滚动中的情况下
- if $game_map.scrolling?
- # 结束
- return false
- end
- # 开始滚动
- @parameters[1] = $game_variables[$变量A_ID] if @parameters[1] == $约定
- $game_map.start_scroll(@parameters[0], @parameters[1], @parameters[2])
- # 继续
- return true
- end
- #--------------------------------------------------------------------------
- # ● 显示动画
- #--------------------------------------------------------------------------
- def command_207
- # 获取角色
- character = get_character(@parameters[0])
- # 角色不存在的情况下
- if character == nil
- # 继续
- return true
- end
- # 设置动画 ID
- @parameters[1] = $game_variables[$变量A_ID] if @parameters[1] == $约定
- character.animation_id = @parameters[1]
- # 继续
- return true
- end
- #--------------------------------------------------------------------------
- # ● 移动图片
- #--------------------------------------------------------------------------
- def command_232
- # 获取图片编号
- number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
- # 指定方法为 [直接指定] 的情况下
- if @parameters[3] == 0
- x = @parameters[4]
- y = @parameters[5]
- # 指定方法为 [使用变量指定] 的情况下
- else
- x = $game_variables[@parameters[4]]
- y = $game_variables[@parameters[5]]
- end
- # 移动图片
- @parameters[6] = $game_variables[$变量A_ID] if @parameters[6] == $约定
- @parameters[7] = $game_variables[$变量B_ID] if @parameters[7] == $约定
- $game_screen.pictures[number].move(@parameters[1] * 2, @parameters[2],
- x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])
- # 继续
- return true
- end
- #--------------------------------------------------------------------------
- # ● 战斗处理
- #--------------------------------------------------------------------------
- def command_301
- # 如果不是无效的队伍
- @parameters[0] = $game_variables[$变量A_ID] if @parameters[0] == $约定
- if $data_troops[@parameters[0]] != nil
- # 设置中断战斗标志
- $game_temp.battle_abort = true
- # 设置战斗调用标志
- $game_temp.battle_calling = true
- $game_temp.battle_troop_id = @parameters[0]
- $game_temp.battle_can_escape = @parameters[1]
- $game_temp.battle_can_lose = @parameters[2]
- # 设置返回调用
- current_indent = @list[@index].indent
- $game_temp.battle_proc = Proc.new { |n| @branch[current_indent] = n }
- end
- # 推进索引
- @index += 1
- # 结束
- return false
- end
- #--------------------------------------------------------------------------
- # ● 更改角色的名字
- #--------------------------------------------------------------------------
- def command_320
- # 获取角色
- actor = $game_actors[@parameters[0]]
- # 更改名字
- if actor != nil
- for i in 0..99
- @parameters[1] = $game_actors[i].name if @parameters[1] == "#{i}"
- end
- actor.name = @parameters[1]
- end
- # 继续
- return true
- end
- #--------------------------------------------------------------------------
- # ● 敌人变身
- #--------------------------------------------------------------------------
- def command_336
- # 获取敌人
- enemy = $game_troop.enemies[@parameters[0]]
- # 变身处理
- if enemy != nil
- @parameters[1] = $game_variables[$变量A_ID] if @parameters[1] == $约定
- enemy.transform(@parameters[1])
- end
- # 继续
- return true
- end
- #--------------------------------------------------------------------------
- # ● 变量操作
- #--------------------------------------------------------------------------
- def command_122
- # 初始化值
- value = 0
- # 操作数的分支
- case @parameters[3]
- when 0 # 恒量
- value = @parameters[4]
- when 1 # 变量
- @parameters[4] = $game_variables[$变量B_ID] if @parameters[4] == $约定
- value = $game_variables[@parameters[4]]
- when 2 # 随机数
- value = @parameters[4] + rand(@parameters[5] - @parameters[4] + 1)
- when 3 # 物品
- @parameters[4] = $game_variables[$变量B_ID] if @parameters[4] == $约定
- value = $game_party.item_number(@parameters[4])
- when 4 # 角色
- @parameters[4] = $game_variables[$变量B_ID] if @parameters[4] == $约定
- actor = $game_actors[@parameters[4]]
- if actor != nil
- case @parameters[5]
- when 0 # 等级
- value = actor.level
- when 1 # EXP
- value = actor.exp
- when 2 # HP
- value = actor.hp
- when 3 # SP
- value = actor.sp
- when 4 # MaxHP
- value = actor.maxhp
- when 5 # MaxSP
- value = actor.maxsp
- when 6 # 力量
- value = actor.str
- when 7 # 灵巧
- value = actor.dex
- when 8 # 速度
- value = actor.agi
- when 9 # 魔力
- value = actor.int
- when 10 # 攻击力
- value = actor.atk
- when 11 # 物理防御
- value = actor.pdef
- when 12 # 魔法防御
- value = actor.mdef
- when 13 # 回避修正
- value = actor.eva
- end
- end
- when 5 # 敌人
- @parameters[4] = $game_variables[$变量B_ID] if @parameters[4] == $约定
- enemy = $game_troop.enemies[@parameters[4]]
- if enemy != nil
- case @parameters[5]
- when 0 # HP
- value = enemy.hp
- when 1 # SP
- value = enemy.sp
- when 2 # MaxHP
- value = enemy.maxhp
- when 3 # MaxSP
- value = enemy.maxsp
- when 4 # 力量
- value = enemy.str
- when 5 # 灵巧
- value = enemy.dex
- when 6 # 速度
- value = enemy.agi
- when 7 # 魔力
- value = enemy.int
- when 8 # 攻击力
- value = enemy.atk
- when 9 # 物理防御
- value = enemy.pdef
- when 10 # 魔法防御
- value = enemy.mdef
- when 11 # 回避修正
- value = enemy.eva
- end
- end
- when 6 # 角色
- character = get_character(@parameters[4])
- if character != nil
- case @parameters[5]
- when 0 # X 坐标
- value = character.x
- when 1 # Y 坐标
- value = character.y
- when 2 # 朝向
- value = character.direction
- when 3 # 画面 X 坐标
- value = character.screen_x
- when 4 # 画面 Y 坐标
- value = character.screen_y
- when 5 # 地形标记
- value = character.terrain_tag
- end
- end
- when 7 # 其它
- case @parameters[4]
- when 0 # 地图 ID
- value = $game_map.map_id
- when 1 # 同伴人数
- value = $game_party.actors.size
- when 2 # 金钱
- value = $game_party.gold
- when 3 # 步数
- value = $game_party.steps
- when 4 # 游戏时间
- value = Graphics.frame_count / Graphics.frame_rate
- when 5 # 计时器
- value = $game_system.timer / Graphics.frame_rate
- when 6 # 存档次数
- value = $game_system.save_count
- end
- end
- # 循环全部操作
- @parameters[0] = $game_variables[$变量A_ID] if @parameters[0] == $约定
- for i in @parameters[0] .. @parameters[1]
- # 操作分支
- case @parameters[2]
- when 0 # 代入
- $game_variables[i] = value
- when 1 # 加法
- $game_variables[i] += value
- when 2 # 减法
- $game_variables[i] -= value
- when 3 # 乘法
- $game_variables[i] *= value
- when 4 # 除法
- if value != 0
- $game_variables[i] /= value
- end
- when 5 # 剩余
- if value != 0
- $game_variables[i] %= value
- end
- end
- # 检查上限
- if $game_variables[i] > 99999999
- $game_variables[i] = 99999999
- end
- # 检查下限
- if $game_variables[i] < -99999999
- $game_variables[i] = -99999999
- end
- end
- # 刷新地图
- $game_map.need_refresh = true
- # 继续
- return true
- end
- end
复制代码 我想不会有冲突吧。没人涉及这一块
如果觉得有什么东西还能扩充,不要吝啬告诉我 |
|