Project1
标题:
【仿仙3】角色切换以及对应角色的机关
[打印本页]
作者:
iisnow
时间:
2011-10-10 13:11
标题:
【仿仙3】角色切换以及对应角色的机关
本帖最后由 iisnow 于 2011-10-10 22:36 编辑
我有来发无聊的脚本了:(也不知道有没有人做过,重复了就算了吧)
脚本在3L
假如在地图上你的
A键用来确认对话,触发剧情
B键用来调用菜单
那么L和R键没有用的话,该脚本可完全无缝插入(Game_player类没有改的前提下)
捕获.PNG
(201.22 KB, 下载次数: 21)
下载附件
保存到相册
2011-10-10 13:05 上传
(事先声明,该脚本完全可以用事件代替,但是需要做很多只有排序不同的角色)
大致就是这个意思:
队伍行进时,总是要一个带头人,游戏默认永远为ID最小的带头
脚本实现在地图上按L、R键切换行走人物;
另外还觉得脚本可以用来做角色的机关
用$scene.get_actor == ID的形式来判定
附件最后的hhhhhhh就是我的脚本,转的时候给我一点面子吧
我还是不会发脚本……求教啊
附件给的一个小游戏,你能打开宝箱吗??
哈哈~~
Project_new.rar
(254.18 KB, 下载次数: 749)
2011-10-10 13:11 上传
点击文件名下载附件
作者:
不会脚本
时间:
2011-10-10 19:13
话说发脚本用代码,hhhhhhh这个脚本帮助×99999
作者:
iisnow
时间:
2011-10-10 22:35
#------------------------------------------------------------------
# 用L\R键切换当前显示角色(行走图)
#--------------------------------------------------------------------
# 加入了get_actor的方法,在地图上调用得到当前显示角色的ID
# 即使用 $scene.get_actor 即可
#-------------------------------------------------------------------
# iisnow 原创小脚本
#-----------------------------------------------------------------
class Game_Player
attr_accessor :actors
def refresh(index = 0)
# 同伴人数为 0 的情况下
if $game_party.actors.size == 0
# 清除角色的文件名及对像
@character_name = ""
@character_hue = 0
# 分支结束
return
end
# 获取带头的角色
actor = $game_party.actors[index]
# 设置角色的文件名及对像
@character_name = actor.character_name
@character_hue = actor.character_hue
# 初始化不透明度和合成方式子
@opacity = 255
@blend_type = 0
end
end
class Scene_Map
def initialize
@index = 0
end
def update
# 循环
loop do
# 按照地图、实例、主角的顺序刷新
# (本更新顺序不会在的满足事件的执行条件下成为给予角色瞬间移动
# 的机会的重要因素)
$game_map.update
$game_system.map_interpreter.update
$game_player.update
# 系统 (计时器)、画面刷新
$game_system.update
$game_screen.update
# 如果主角在场所移动中就中断循环
unless $game_temp.player_transferring
break
end
# 执行场所移动
transfer_player
# 处理过渡中的情况下、中断循环
if $game_temp.transition_processing
break
end
end
# 刷新活动块
@spriteset.update
# 刷新信息窗口
@message_window.update
# 游戏结束的情况下
if $game_temp.gameover
# 切换的游戏结束画面
$scene = Scene_Gameover.new
return
end
# 返回标题画面的情况下
if $game_temp.to_title
# 切换到标题画面
$scene = Scene_Title.new
return
end
# 处理过渡中的情况下
if $game_temp.transition_processing
# 清除过渡处理中标志
$game_temp.transition_processing = false
# 执行过渡
if $game_temp.transition_name == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$game_temp.transition_name)
end
end
# 显示信息窗口中的情况下
if $game_temp.message_window_showing
return
end
# 遇敌计数为 0 且、且遇敌列表不为空的情况下
if $game_player.encounter_count == 0 and $game_map.encounter_list != []
# 不是在事件执行中或者禁止遇敌中
unless $game_system.map_interpreter.running? or
$game_system.encounter_disabled
# 确定队伍
n = rand($game_map.encounter_list.size)
troop_id = $game_map.encounter_list[n]
# 队伍有效的话
if $data_troops[troop_id] != nil
# 设置调用战斗标志
$game_temp.battle_calling = true
$game_temp.battle_troop_id = troop_id
$game_temp.battle_can_escape = true
$game_temp.battle_can_lose = false
$game_temp.battle_proc = nil
end
end
end
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 不是在事件执行中或菜单禁止中
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
# 设置菜单调用标志以及 SE 演奏
$game_temp.menu_calling = true
$game_temp.menu_beep = true
end
end
# 按下 L 键的情况下
if Input.trigger?(Input::L)
# 不是在事件执行中或菜单禁止中
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
# 设置菜单调用标志以及 SE 演奏
@index += 1
if @index >= $game_party.actors.size
@index = 0
end
$game_system.se_play($data_system.cancel_se)
$game_player.refresh(@index)
end
end
if Input.trigger?(Input::R)
# 不是在事件执行中或菜单禁止中
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
# 设置菜单调用标志以及 SE 演奏
@index -= 1
if @index < 0
@index = $game_party.actors.size - 1
end
$game_system.se_play($data_system.cancel_se)
$game_player.refresh(@index)
end
end
# 调试模式为 ON 并且按下 F9 键的情况下
if $DEBUG and Input.press?(Input::F9)
# 设置调用调试标志
$game_temp.debug_calling = true
end
# 不在主角移动中的情况下
unless $game_player.moving?
# 执行各种画面的调用
if $game_temp.battle_calling
call_battle
elsif $game_temp.shop_calling
call_shop
elsif $game_temp.name_calling
call_name
elsif $game_temp.menu_calling
call_menu
elsif $game_temp.save_calling
call_save
elsif $game_temp.debug_calling
call_debug
end
end
end
def get_actor
return $game_party.actors[@index].id
end
end
复制代码
试试能不能发脚本
感谢告诉我方法的……君
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1