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

Project1

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

关于领队更换系统的暂停问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
90
在线时间
8 小时
注册时间
2007-12-16
帖子
51
跳转到指定楼层
1
发表于 2008-3-15 12:26:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
上次在论坛里发现了一个好脚本:领队更换系统。(就是按A键切换领队头像的那个)。
于是我也用到我的游戏里了。但后来发现如果有队员离队的话,这个脚本就出现错误了。
请领队更换系统的作者继续完善一下,或哪位GS有空的话也帮忙来解决一下。谢谢了!
脚本如下:
#==============================================================================
# 领队更换系统 by SailCat
#------------------------------------------------------------------------------
# 添加此脚本后,在地图画面按下X键更换当前的领队。
# 领队更改不会造成战斗队伍、菜单队伍次序的更改。
# 若要在条件分歧中调用领队,请用脚本:$game_party.leader == 序号
# 序号为0-3的值,最大不会超过队伍的角色数目减1。
#==============================================================================
class Game_Party
#--------------------------------------------------------------------------
# ● 追加实例变量
#--------------------------------------------------------------------------
attr_reader   :leader
alias sailcat_initialize initialize
alias sailcat_setup_starting_members setup_starting_members
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
   # 生成领队
   @leader = 0
   sailcat_initialize
end
#--------------------------------------------------------------------------
# ● 设置初期同伴
#--------------------------------------------------------------------------
def setup_starting_members
   sailcat_setup_starting_members
   # 生成领队
   @leader = 0
end
#--------------------------------------------------------------------------
# ● 设置领队
#--------------------------------------------------------------------------
def switch_leader
   @leader += 1
   @leader %= @actors.size
end
end
class Game_Player
alias sailcat_update update
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
   # 同伴人数为 0 的情况下
   if $game_party.actors.size == 0
     # 清除角色的文件名及对像
     @character_name = ""
     @character_hue = 0
     # 分支结束
     return
   end
   # 获取带头的角色
   actor = $game_party.actors[$game_party.leader]
   # 设置角色的文件名及对像
   @character_name = actor.character_name
   @character_hue = actor.character_hue
   # 初始化不透明度和合成方式
   @opacity = 255
   @blend_type = 0
end
#--------------------------------------------------------------------------
# ● 画面更新
#--------------------------------------------------------------------------
def update
   # 按下 X 键的情况下
   if Input.trigger?(Input::X)
     # 更换领队
     $game_party.switch_leader
     refresh
   end
   sailcat_update
end
end
版务信息:本贴由楼主自主结贴~

Lv3.寻梦者

酱油的

梦石
0
星屑
1265
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

2
发表于 2008-3-15 14:07:15 | 只看该作者
……囧rz,那個不是抱怨,但是怎麼好像SailCat前輩這個腳本有種小題大造的感覺??

——————————以上言論請無視————————————————————————
#------------------------------------------------------------------------------
# 添加此脚本后,在地图画面按下X键更换当前的领队。
# 领队更改不会造成战斗队伍、菜单队伍次序的更改。
# 若要在条件分歧中调用领队,请用脚本:$game_player.leader_id == 序号
#==============================================================================
class Game_Player < Game_Character
attr_reader   :leader_id

  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    # 同伴人数为 0 的情况下
    if $game_party.actors.size == 0
      # 清除角色的文件名及对像
      @character_name = ""
      @character_hue = 0
      # 分支结束
      return
    end
    if @leader_id.nil? or $game_party.actors[@leader_id].nil?
      # 获取带头的角色
      actor = $game_party.actors[0]
      @leader_id = 0
    else
      # 获取带头的角色
      actor = $game_party.actors[@leader_id]
    end
    # 设置角色的文件名及对像
    @character_name = actor.character_name
    @character_hue = actor.character_hue
    # 初始化不透明度和合成方式子
    @opacity = 255
    @blend_type = 0
  end
  #--------------------------------------------------------------------------
  # ● 画面更新
  #--------------------------------------------------------------------------
  alias oir_update update
  def update
    # 按下 X 键的情况下
    if Input.trigger?(Input::X)
      @leader_id += 1
      @leader_id = 0 if $game_party.actors[@leader_id].nil?
      refresh
    end
    oir_update
  end
end
——————————完了————————————————————————————
修改很麻煩,所以直接寫新的了。
直接當作插件丟在main之前,甚麽修改都不用。
條件分歧調用稍微改變了一下
版主对此帖的认可:『很美好的简化,可以用。奖励100恩,其他人也要更努力啊!By光郎』,积分『+100』。
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

史上最强粉丝

梦石
0
星屑
50
在线时间
9 小时
注册时间
2007-8-20
帖子
5574

贵宾

3
发表于 2008-3-15 16:02:12 | 只看该作者
…那么长的你修改成这么短的…可以用吗?我要给你加分奖励。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1265
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

4
发表于 2008-3-15 16:41:21 | 只看该作者
本來的就不長(67行),修改後更短(44行)。

「這就是RUBY的最小意外原則!!!!!」(Pia飛)

(爬回來……)
至於可不可用,禾西口講無憑,光郞可以自己開個工程測試一下
(另外,那個X鍵好像默認設置下其實是A鍵 囧rz)
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

史上最强粉丝

梦石
0
星屑
50
在线时间
9 小时
注册时间
2007-8-20
帖子
5574

贵宾

5
发表于 2008-3-15 17:15:59 | 只看该作者
恩…全新版请写上制作者和论坛地址~这个脚本很好的解决了问题呢。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1265
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

6
发表于 2008-3-15 18:42:20 | 只看该作者
那個……
這個腳本基本上無有任何技術含量
能够額外加到100分就已經是中獎

版權就沒有了,就當公衆版吧!╮(╯ . ╰)╭
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
8 小时
注册时间
2007-12-16
帖子
51
7
 楼主| 发表于 2008-3-15 20:00:15 | 只看该作者
各位真是GS中的GS,小弟是个程序白痴。你们看似简单的这个脚本,但对于我来说就如同天书一般。
想弄懂关于脚本的编程,但不知道该从何下手。真羡慕你们啊……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-23 01:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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