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

Project1

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

[已经解决] 怎样设置到达某个事件时显示所有主角?更换带队人物?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
130
在线时间
2 小时
注册时间
2012-10-28
帖子
3
跳转到指定楼层
1
发表于 2012-10-28 10:52:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
就像是仙剑里面那样的,按一下Tab键就可以更换带队人物。
平时移动时只有一个人物,设置到达某个事件点时,显示主角队伍中所有人物。
是不是需要脚本?

Lv1.梦旅人

梦石
0
星屑
130
在线时间
2 小时
注册时间
2012-10-28
帖子
3
5
 楼主| 发表于 2012-11-2 18:21:41 | 只看该作者
zxcgood2009 发表于 2012-10-28 16:33
先复制,在脚本编辑器里
在main前面插入一个空白,然后在空白里粘贴就ok了
$scene = Scene_Change_Turn.new ...

Oh thank you!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
251 小时
注册时间
2009-11-13
帖子
453
4
发表于 2012-10-28 16:33:00 | 只看该作者
先复制,在脚本编辑器里
在main前面插入一个空白,然后在空白里粘贴就ok了
$scene = Scene_Change_Turn.new
这是调用的脚本。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
130
在线时间
2 小时
注册时间
2012-10-28
帖子
3
3
 楼主| 发表于 2012-10-28 13:35:32 | 只看该作者
zxcgood2009 发表于 2012-10-28 12:42
我只想到一种方法,搜一个全键盘脚本,
在事件里并行处理。
条件分歧,当按下tab键时。

多谢了!但是插在哪段哪几行呢?{:2_270:}
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
251 小时
注册时间
2009-11-13
帖子
453
2
发表于 2012-10-28 12:42:53 | 只看该作者
我只想到一种方法,搜一个全键盘脚本,
在事件里并行处理。
条件分歧,当按下tab键时。
      条件分歧,当角色 xxxx在队伍中时
            条件分歧,当角色 xxxx2在队伍中时
                 跟换角色xxxx行走图
大概就是这个样子了,就是不停的判定,因为烦所以建议用公共事件做
因为是队伍第一人的行走图,所以我这只是换汤不换药而已。脚本我还写不出来。
不过我有一个是在菜单里跟换队伍顺序的脚本
我都不知道从哪里弄来的了。
  1. class Window_Change_Turn_Left < Window_Selectable
  2.   attr_accessor :now_group
  3.   #--------------------------------------------------------------------------
  4.   # ● 初始化对像
  5.   #--------------------------------------------------------------------------
  6.   def initialize
  7.     super(30, 20, 152, 440)
  8.     self.contents = Bitmap.new(width - 32, height - 32)
  9.     self.z += 10
  10.     self.contents.font.size = 20
  11.     self.index = 0
  12.    
  13.     @now_group = []

  14.     for i in 0..$game_party.actors.size-1
  15.       @now_group.push($game_party.actors[i])
  16.     end
  17.     @item_max = @now_group.size
  18.    
  19.     refresh
  20.   end
  21.   
  22.   def delete_actor(actor)

  23.     @now_group.delete(actor)
  24.     @item_max = @now_group.size
  25.     refresh
  26.   end
  27.   
  28.   def set_actor(actor)
  29. #   @now_group.clear

  30.     @now_group.push(actor)

  31.     @item_max = @now_group.size
  32.     refresh
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● 刷新
  36.   #--------------------------------------------------------------------------
  37.   def refresh
  38.     self.contents.clear
  39.     for i in 0..@now_group.size-1
  40.       x = 4
  41.       y = 4 + i * 102
  42.       actor = @now_group[i]
  43.       draw_actor_name(actor, x+32, y)
  44.       draw_actor_graphic(actor, x+12, y+48)
  45.     end
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 刷新光标矩形
  49.   #--------------------------------------------------------------------------
  50.   def update_cursor_rect
  51.     self.cursor_rect.set(0, @index*102, 120, 102)
  52.   end
  53. end

  54. class Window_Change_Turn_Right < Window_Selectable
  55.   attr_accessor :actor_group
  56.   #--------------------------------------------------------------------------
  57.   # ● 初始化对像
  58.   #--------------------------------------------------------------------------
  59.   def initialize
  60.     super(232, 20, 152, 440)
  61.     self.contents = Bitmap.new(width - 32, height - 32)
  62.     self.z += 10
  63.     self.contents.font.size = 20
  64.     @actor_group = []
  65.     self.index = 0
  66.     refresh
  67.   end
  68.   # 设置角色
  69.   def set_actor(actor)
  70.     @actor_group.push(actor)
  71.     refresh
  72.   end
  73.   
  74.   def delete_actor(actor)
  75.     @actor_group.delete(actor)
  76.     refresh
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 刷新
  80.   #--------------------------------------------------------------------------
  81.   def refresh
  82.     if self.contents != nil
  83.       self.contents.clear
  84.     end
  85.    
  86.     if @actor_group.size == $game_party.actors.size
  87.       for i in 0..$game_party.actors.size-1
  88.         $game_party.actors[i] = @actor_group[i]
  89.       end
  90.       $game_player.refresh
  91.     end
  92.    
  93.     if @actor_group.size != 0
  94.       for i in 0..@actor_group.size-1
  95.         x = 4
  96.         y = 4 + i * 102
  97.         actor = @actor_group[i]
  98.         draw_actor_name(actor, x+32, y)
  99.         draw_actor_graphic(actor, x+12, y+48)
  100.       end
  101.     end
  102.    
  103.   end

  104.   def update_cursor_rect
  105.     self.cursor_rect.empty
  106.   end
  107.   
  108. end






  109. class Scene_Change_Turn
  110.   def main
  111.     #cmd = Window_Command.new#($game_party.actors.size)
  112.     #cmd.index = 5
  113.     #cmd.active = false

  114.     @change_turn_left_window = Window_Change_Turn_Left.new
  115.     @change_turn_left_window.x = -152
  116.     # 获取角色
  117.     @change_turn_actor = @change_turn_left_window.now_group[@change_turn_left_window.index]
  118.     @change_turn_right_window = Window_Change_Turn_Right.new
  119.     @change_turn_right_window.x = -152
  120.    
  121.     Graphics.transition
  122.     # 窗口滑动
  123.     for i in 1..8
  124.       @change_turn_left_window.x += 22
  125.       @change_turn_right_window.x += 48
  126.       if i==8
  127.         @change_turn_left_window.x = 30
  128.         @change_turn_right_window.x = 232
  129.       end
  130.       Graphics.update
  131.     end
  132.     # 主循环
  133.     loop do
  134.       # 刷新游戏画面
  135.       Graphics.update
  136.       # 刷新输入信息
  137.       Input.update
  138.       # 刷新画面
  139.       update_change_turn_scene
  140.       # 如果画面被切换的话就中断循环
  141.       if $scene != self
  142.         break
  143.       end
  144.     end
  145.    
  146.     if @fangx == 1
  147.       for i in 1..9
  148.         @change_turn_left_window.x += 76
  149.         @change_turn_right_window.x += 51
  150.         Graphics.update
  151.       end
  152.     else
  153.       for i in 1..9
  154.         @change_turn_left_window.x -= 22
  155.         @change_turn_right_window.x -= 48
  156.         Graphics.update
  157.       end
  158.     end
  159.     Graphics.transition
  160. #    cmd.dispose
  161.     @change_turn_left_window.dispose
  162.     @change_turn_right_window.dispose
  163.   end
  164.   
  165.   def update_change_turn_scene
  166.     @change_turn_left_window.update
  167.     if @change_turn_actor != @change_turn_left_window.now_group[@change_turn_left_window.index]
  168.       @change_turn_actor = @change_turn_left_window.now_group[@change_turn_left_window.index]
  169.     end
  170.    
  171.     if @change_turn_left_window.active
  172.       change_turn_update_actor_window
  173.       return
  174.     end
  175.   end
  176.   
  177.   def change_turn_update_actor_window
  178.     if @change_turn_left_window.now_group.size == 0
  179.       for i in 1..20
  180.         Graphics.update
  181.       end
  182.       @fangx = 1
  183.       $scene = Scene_Menu.new(5)
  184.       return
  185.     end
  186.    
  187.     if Input.trigger?(Input::B)
  188.       if @change_turn_left_window.now_group.size == $game_party.actors.size
  189.         $game_system.se_play($data_system.cancel_se)
  190.         $scene = Scene_Menu.new(5)
  191.         return
  192.       else
  193.         n = $game_party.actors.size-@change_turn_left_window.now_group.size
  194.         $game_system.se_play($data_system.cancel_se)
  195.         k = @change_turn_right_window.actor_group[@change_turn_right_window.actor_group.size-1]
  196.         @change_turn_right_window.delete_actor(k)
  197.         @change_turn_left_window.set_actor(k)
  198.       end
  199.     end
  200.    
  201.     if Input.trigger?(Input::C)
  202.       if @change_turn_left_window.now_group.size == $game_party.actors.size
  203.         if @change_turn_actor.hp == 0
  204.           # 演奏无效 SE
  205.           $game_system.se_play($data_system.buzzer_se)
  206.         else
  207.           # 演奏确定 SE
  208.           $game_system.se_play($data_system.decision_se)
  209.           @change_turn_right_window.set_actor(@change_turn_actor)
  210.           @change_turn_left_window.delete_actor(@change_turn_actor)
  211.           if @change_turn_left_window.now_group.size == @change_turn_left_window.index and
  212.             @change_turn_left_window.now_group.size != 0
  213.             @change_turn_left_window.index -= 1
  214.           end   
  215.         end
  216.       else
  217.         # 演奏确定 SE
  218.         $game_system.se_play($data_system.decision_se)
  219.         @change_turn_right_window.set_actor(@change_turn_actor)
  220.         @change_turn_left_window.delete_actor(@change_turn_actor)
  221.         if @change_turn_left_window.now_group.size == @change_turn_left_window.index and
  222.           @change_turn_left_window.now_group.size != 0
  223.           @change_turn_left_window.index -= 1
  224.         end
  225.       end
  226.       return
  227.     end
  228.    
  229.   end
  230.   
  231. end
复制代码

评分

参与人数 1梦石 +2 收起 理由
hcm + 2 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 20:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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