查看: 7464|回复: 12

[推荐问答] 【求助】人物仓库脚本,求使用方法及添加一些功能,感谢~

[复制链接]

  /) /)<

梦石
0
星屑
4262
在线时间
4894 小时
注册时间
2009-2-16
回帖
8198

超评测评委开拓者短篇七成年组季军

发表于 2013-1-8 18:44:55 | 显示全部楼层 |阅读模式
悬赏3星屑已解决
本帖最后由 天使喝可乐 于 2013-1-8 18:48 编辑

这个人物仓库脚本 之前修改了一下界面 不知道为什么原工程能打开仓库 新工程复制后就弹框跳错= =  于是貌似对测试脚本有些麻烦  如果您测试时修改了其他地方请顺便说出来
很多功能是这个仓库脚本自带的 但是本人是脚本盲.. 求脚本用法

目前我知道的功能:
1.打开仓库 $scene = Chaochao_Scene_Party.new
2.将ABC+1位队员移动至人物仓库  $game_party.huanren(ABC,2)   ←这个“2”替换成别的是什么功能?=- =

我希望使用(添加)的功能如下,求使用方法 很多脚本里都有写的  如果没有这个功能 希望能修改下脚本增加下面的功能:
1.求总结这个脚本中的所有已有功能及使用方法。
2.当X号开关打开时,人物仓库不允许使用。
3.将Y号(数据库中的序号)人物移至队伍/移至仓库/删除(即使在人物仓库中也删除;现在的情况是 若人物在仓库中时,替换队员指令是无法删除它的)。
  ↓下面这2个功能希望游戏进行中能随时更改。
4.限制人物仓库的最少人数为M、最多人数为N。 (9比如我希望队伍同时只能有3个人   或者队伍必须满4人 就需要这个功能了)
5.设置若干人无法移动至仓库/移出仓库。这个说下,这个脚本中我是找到这个功能了的,但是貌似有些不一样?
  attr_reader   :chaochao#不能从队伍向备用角色移动的角色ID
  attr_reader   :chaochao2#不能从备用角色向队伍移动的角色ID
  def initialize
    @chaochao = [1]
    @chaochao2 = []

我将“chaochao”数组设为1  但是1号和2号人物目前都无法移动 而不是只有1号不能移动

就这些,脚本在下面,有什么疑问请回复,感谢=w=
[pre lang="ruby" line="1"]#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

#==============================================================================
# ■ chaochao的人物仓库ver1.02正式版
# 修改了Game_Party
# 功能:
# 用来存放角色的仓库……
# 召唤画面用  $scene = Chaochao_Scene_Party.new
# 将index+1号队员移动至人物仓库 index输入(0-3)  $game_party.huanren(index,2)
# 其它使用说明在代码里已经备注。
#------------------------------------------------------------------------------
# 作者:chaochao
#==============================================================================
class Chaochao_Window_PartyLeft < Window_Selectable
  def initialize
    super(0, 0, 320, 292)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.index = 0
    refresh
  end
  def actor
    return @actors[self.index]
  end
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @actors = []
    for i in 0...$game_party.actors.size
      @actors.push($game_party.actors)
    end
   
    @item_max = 4
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, (row_max+1) * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  def draw_item(index)
    self.contents.draw_text(4, 1, 288, 32, "【出战成员】")
    if @actors[index] != nil
      actor = @actors[index]
      text = @actors[index].name
      lv = @actors[index].level.to_s + " "
      if $game_party.chaochao.include?(actor.id) or $game_party.actors.size <= 1
        self.contents.font.color = Color.new(10, 160, 255)#(255, 0, 0) #不能被移动的颜色
      else
        self.contents.font.color = Color.new(255, 160, 20)#(0, 255, 0) #可以被移动的颜色
      end
      self.contents.draw_text(4, index * 32 + 32, 288, 32, text)
      self.contents.font.color = normal_color
      self.contents.font.size = 16
      self.contents.draw_text(4, index * 32 + 36, 278, 32,  "Level:   ", 2)
      colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
      colory = [255.0000 / 60 * @actors[index].level,255].min
      self.contents.font.color = Color.new(colorx, colory, 0)
      self.contents.draw_text(4, index * 32 + 36, 288, 32,  lv, 2)
      self.contents.font.color = normal_color
      self.contents.font.size = 22
    else
      self.contents.draw_text(4, index * 32 + 32, 288, 32,  " ")
    end
  end
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
      return
    end
    row = @index / @column_max
    if row < self.top_row
      self.top_row = row
    end
    if row > self.top_row + (self.page_row_max - 1)
      self.top_row = row - (self.page_row_max - 1)
    end
    cursor_width = self.width / @column_max - 32
    x = @index % @column_max * (cursor_width + 32)
    y = @index / @column_max * 32 - self.oy + 32
    self.cursor_rect.set(x, y, cursor_width, 32)
  end
  def item_max
    return @item_max
  end
  def actor?(index)
    return @actors[index] == nil ? false : true
  end
  def set_index(x)
    @index = x
  end
end

#------------------------------------------------------------------------------

class Chaochao_Window_PartyRight < Window_Selectable
  def initialize
    super(320, 0, 320, 292)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.index = -1
    refresh
  end
  def actor
    return @actors[self.index]
  end
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @actors = []
    for i in 0...$game_party.actors2.size
      @actors.push($game_party.actors2)
    end
   
    @item_max = $game_party.actors2.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, (row_max+1) * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    elsif @item_max == 0
      
    end
  end
  def draw_item(index)
    actor = @actors[index]
    text = @actors[index].name
    lv = @actors[index].level.to_s + " "
    if $game_party.chaochao2.include?(actor.id) or $game_party.actors.size >= 4
        self.contents.font.color = Color.new(255, 150, 200)#(255, 0, 0) #不能被移动的颜色
      else
        self.contents.font.color = Color.new(255, 160, 20)#(0, 255, 0) #可以被移动的颜色
      end
    self.contents.draw_text(80, 0, 268, 32, "wait...")## 80 0 268 32
    self.contents.font.color = normal_color#
    self.contents.draw_text(4, index * 32 + 32, 288, 32, text)
    self.contents.font.color = normal_color
    self.contents.font.size = 16
    self.contents.draw_text(4, index * 32 + 36, 278, 32,  "Level:   ", 2)
    colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
    colory = [255.0000 / 60 * @actors[index].level,255].min
    self.contents.font.color = Color.new(colorx, colory, 0)
    self.contents.draw_text(4, index * 32 + 36, 288, 32,  lv, 2)
    self.contents.font.color = normal_color
    self.contents.font.size = 22
  end
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
      return
    end
    row = @index / @column_max
    if row < self.top_row
      self.top_row = row
    end
    if row > self.top_row + (self.page_row_max - 1)
      self.top_row = row - (self.page_row_max - 1)
    end
    cursor_width = self.width / @column_max - 32
    x = @index % @column_max * (cursor_width + 32)
    y = @index / @column_max * 32 - self.oy + 32
    self.cursor_rect.set(x, y, cursor_width, 32)
  end
  def item_max
    return @item_max
  end
  def actor?(index)
    return @actors[index] == nil ? false : true
  end
  def set_index(x)
    @index = x
  end
end

#------------------------------------------------------------------------------
#  下方 人物属性栏
#------------------------------------------------------------------------------
class Chaochao_Window_PartyData < Window_Base
  
  def initialize
    super(0, 292, 640, 188)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = nil
  end
  
  def set_actor(actor)
    self.contents.clear
    draw_actor_name(actor, 4, 0)
    draw_actor_class(actor, 4, 30)
    draw_actor_state(actor, 200, 0)
    draw_actor_hp(actor, 284, 0)
    draw_actor_sp(actor, 460, 0)  
    draw_actor_level(actor, 4, 60)
    draw_actor_exp(actor, 4, 200)
   
    draw_actor_parameter(actor, 150, 36, 0)
    draw_actor_parameter(actor, 150, 68, 1)
    draw_actor_parameter(actor, 150, 100, 2)
    draw_actor_parameter(actor, 150, 132, 3)
   
    draw_actor_parameter(actor, 400, 36, 4)
    draw_actor_parameter(actor, 400, 68, 5)
    draw_actor_parameter(actor, 400, 100, 6)
    draw_actor_parameter(actor, 400, 132, 7)

    @actor = actor
    self.visible = true
  end
  def clear
    self.contents.clear
  end
end

#------------------------------------------------------------------------------

class Game_Party
  attr_reader   :actors2
  attr_reader   :chaochao#不能从队伍向备用角色移动的角色ID
  attr_reader   :chaochao2#不能从备用角色向队伍移动的角色ID
  def initialize
    @actors = []
    @gold = 0
    @steps = 0
    @items = {}
    @weapons = {}
    @armors = {}
    @actors2 = []
    @chaochao = [1]
    @chaochao2 = []
  end
  def add_actor(actor_id,type=1)#type为1是向队伍中添加,为2则相反。
    case type
    when 1
      if $game_actors[actor_id] != nil
        actor = $game_actors[actor_id]
        #如果队伍没有满和队伍中没有此角色
        if @actors.size < 4 and not @actors.include?(actor) and not @actors2.include?(actor)
          @actors.push(actor)
          $game_player.refresh
        end
      end
    when 2
      if $game_actors[actor_id] != nil
        actor = $game_actors[actor_id]
        #如果角色不在队伍中和不在备用角色队伍中的情况下
        #向备用角色中添加角色
        if not @actors.include?(actor) and not @actors2.include?(actor)
          @actors2.push(actor)
          $game_player.refresh
        end
      end
    end
  end
  
  def huanren(index,type=1)#type为1是从备用角色向队伍中移动,为2则相反。
    case type
    when 1
      id = @actors2[index].id
      actor = $game_actors[id]
      if @actors.size < 4  and not @chaochao2.include?(index) #and not @actors.include?(actor)
        @actors.push(actor)
        #@actors2.delete(actor)
        @actors2.each do |i|
          @actors2.delete(i) if i.id == actor.id
        end
        $game_system.se_play($data_system.decision_se)
        $game_player.refresh
      end
    when 2
      id = @actors[index].id
      actor = $game_actors[id]
      if actor != nil  and not @chaochao.include?(index)
        @actors2.push(actor)
        @actors.each do |i|
          @actors.delete(i) if i.id == actor.id
        end
        $game_system.se_play($data_system.decision_se)
        $game_player.refresh
      end
    end
  end
  
  #type1,1是操作队伍中的角色能否向备用队伍移动,2则相反。
  #type2,1是添加不能移动的,2是删除不能移动的。
  def yidong(actor_id,type1,type2=1)
    case type2
    when 1
      case type1
      when 1
        @chaochao.push(actor_id)
      when 2
        @chaochao2.push(actor_id)
      end
    when 2
      case type1
      when 1
        @chaochao.delete(actor_id)
      when 2
        @chaochao2.delete(actor_id)
      end
    end
  end
  
  #type,1从队伍中离开,2从备用角色中离开,3从队伍和备用角色中离开。
  def remove_actor(actor_id,type=1)
    actor = $game_actors[actor_id]
    case type
    when 1
      @actors.delete(actor)
      $game_player.refresh
    when 2
      @actors2.delete(actor)
      $game_player.refresh
    when 3
      @actors.delete(actor)
      @actors2.delete(actor)
      $game_player.refresh
    end
  end
  
  def refresh
    new_actors = []
    new_actors2 = []
    for i in 0...@actors.size
      if $game_actors[@actors.id] != nil
        new_actors.push($game_actors[@actors.id])
      end
    end
    @actors = new_actors
    for i in 0...@actors2.size
      if $game_actors[@actors2.id] != nil
        new_actors2.push($game_actors[@actors2.id])
      end
    end
    @actors2 = new_actors2
  end
end

#------------------------------------------------------------------------------

class Chaochao_Scene_Party
  def main
    @left_temp_command = 0
    @right_temp_command = 0
    @temp = 0
    @left_window = Chaochao_Window_PartyLeft.new
    @left_window.active = true
    @right_window = Chaochao_Window_PartyRight.new
    @right_window.active = false
    @data_window = Chaochao_Window_PartyData.new
    update_data
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @left_window.dispose
    @right_window.dispose
    @data_window.dispose
  end
  
  def update
    @left_window.update
    @right_window.update
    @data_window.update
    update_command
    update_data
  end
  
  def update_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      #画面切换
      $scene = Scene_Map.new
      return
    end
    if @left_window.active
      update_left
      return
    end
    if @right_window.active
      update_right
      return
    end
  end
  
  def update_left
    if Input.trigger?(Input::RIGHT)
      if @right_window.item_max > 0
        @left_temp_command = @left_window.index
        @left_window.set_index(-1)
        $game_system.se_play($data_system.cursor_se)
        @left_window.active = false
        @right_window.active = true
        @left_window.refresh
        @right_window.refresh
        @right_window.set_index(@right_temp_command)
        return
      else
        $game_system.se_play($data_system.buzzer_se)
        return
      end
    end
    if Input.trigger?(Input::C)
      if @left_window.active and @left_window.actor?(@left_window.index) and $game_party.actors.size > 1 and not $game_party.chaochao.include?($game_party.actors[@left_window.index].id)
        $game_party.huanren(@left_window.index,2)#type为1是从备用角色向队伍中移动,为2则相反。
        @left_window.refresh
        @right_window.refresh
      else
        $game_system.se_play($data_system.buzzer_se)
      end
    end
    return
  end
  
  def update_right
    if Input.trigger?(Input::LEFT)
      if @left_window.item_max > 0
        @right_temp_command = @right_window.index
        @right_window.set_index(-1)
        $game_system.se_play($data_system.cursor_se)
        @left_window.active = true
        @right_window.active = false
        @left_window.refresh
        @right_window.refresh
        @left_window.set_index(@left_temp_command)
        return
      else
        $game_system.se_play($data_system.buzzer_se)
        return
      end
    end
    if Input.trigger?(Input::C)
      if $game_party.actors.size >= 4
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      if @right_window.active and @right_window.actor?(@right_window.index) and not $game_party.chaochao2.include?($game_party.actors2[@right_window.index].id)
        $game_party.huanren(@right_window.index,1)#type为1是从备用角色向队伍中移动,为2则相反。
        if $game_party.actors2.size == 0
          @right_temp_command = @right_window.index
          @right_window.set_index(-1)
          $game_system.se_play($data_system.cursor_se)
          @left_window.active = true
          @right_window.active = false
          @left_window.refresh
          @right_window.refresh
          @left_window.set_index(@left_temp_command)
        end
        if @right_window.index > 0
          @right_window.set_index(@right_window.index-1)
        end
        @left_window.refresh
        @right_window.refresh
      else
        $game_system.se_play($data_system.buzzer_se)
      end
    end
    return
  end
  
  def update_data
    if @left_window.active
      if $game_party.actors[@left_window.index] != nil
        @data_window.set_actor($game_party.actors[@left_window.index])
      else
        @data_window.clear
      end
      return
    end
    if @right_window.active
      if $game_party.actors2[@right_window.index] != nil
        @data_window.set_actor($game_party.actors2[@right_window.index])
      else
        @data_window.clear
      end
      return
    end
  end
end

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================[/pre]


最佳答案

查看完整内容

1、首先你如果光是这个脚本的话,会因为在描绘角色能力值的时候因为type没有7这个值而报错~ 2、另外脚本还有个错误的地方这段是我修改以后的,之前对于@chaochao和@chaochao2的判断成了队伍ID,而不是角色ID,这点显然与描述中的是不同的~所以才会出现你说的设置成1号的时候反倒是队伍ID为1的角色无法移动。 3、随时变更两个队伍的最大最小人数。 ...

点评

真心求别再用这个ruby的脚本框了,里面乱七八糟的[url]让人头疼……  发表于 2013-1-10 10:54
梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2013-1-8 18:44:56 | 显示全部楼层
本帖最后由 亿万星辰 于 2013-1-10 16:58 编辑

1、首先你如果光是这个脚本的话,会因为在描绘角色能力值的时候因为type没有7这个值而报错~

2、另外脚本还有个错误的地方
  1.   def huanren(index,type=1)#type为1是从备用角色向队伍中移动,为2则相反。
  2.     case type
  3.     when 1
  4.       id = @actors2[index].id
  5.       actor = $game_actors[id]
  6.       if @actors.size < 4  and not @chaochao2.include?(id) #and not @actors.include?(actor)
  7.         @actors.push(actor)
  8.         @actors2.delete(actor)
  9.         $game_system.se_play($data_system.decision_se)
  10.         $game_player.refresh
  11.       end
  12.     when 2
  13.       id = @actors[index].id
  14.       actor = $game_actors[id]
  15.       if actor != nil  and not @chaochao.include?(id)
  16.         @actors2.push(actor)
  17.         @actors.delete(actor)
  18.         $game_system.se_play($data_system.decision_se)
  19.         $game_player.refresh
  20.       end
  21.     end
  22.   end
复制代码
这段是我修改以后的,之前对于@chaochao和@chaochao2的判断成了队伍ID,而不是角色ID,这点显然与描述中的是不同的~所以才会出现你说的设置成1号的时候反倒是队伍ID为1的角色无法移动。

3、随时变更两个队伍的最大最小人数。

  1.   VID_MINACTORS = 1 # 记录主队伍中最少人数所用的变量编号
  2.   VID_MAXACTORS = 2 # 记录主队伍中最多人数所用的变量编号
  3.   VID_MAXACTORS2 = 3 # 记录备用队伍中最多人数所用的变量编号
  4.   def update_left
  5.     if Input.trigger?(Input::RIGHT)
  6.       if @right_window.item_max > 0
  7.         @left_temp_command = @left_window.index
  8.         @left_window.set_index(-1)
  9.         $game_system.se_play($data_system.cursor_se)
  10.         @left_window.active = false
  11.         @right_window.active = true
  12.         @left_window.refresh
  13.         @right_window.refresh
  14.         @right_window.set_index(@right_temp_command)
  15.         return
  16.       else
  17.         $game_system.se_play($data_system.buzzer_se)
  18.         return
  19.       end
  20.     end
  21.     if Input.trigger?(Input::C)
  22.       if $game_party.actors2.size >= $game_variables[VID_MAXACTORS2] or $game_party.actors.size < $game_variables[VID_MINACTORS] + 1
  23.         $game_system.se_play($data_system.buzzer_se)
  24.         return
  25.       end
  26.       if @left_window.active and @left_window.actor?(@left_window.index) and $game_party.actors.size > 1 and not $game_party.chaochao.include?($game_party.actors[@left_window.index].id)
  27.         $game_party.huanren(@left_window.index,2)#type为1是从备用角色向队伍中移动,为2则相反。
  28.         @left_window.refresh
  29.         @right_window.refresh
  30.       else
  31.         $game_system.se_play($data_system.buzzer_se)
  32.       end
  33.     end
  34.     return
  35.   end

  36.   def update_right
  37.     if Input.trigger?(Input::LEFT)
  38.       if @left_window.item_max > 0
  39.         @right_temp_command = @right_window.index
  40.         @right_window.set_index(-1)
  41.         $game_system.se_play($data_system.cursor_se)
  42.         @left_window.active = true
  43.         @right_window.active = false
  44.         @left_window.refresh
  45.         @right_window.refresh
  46.         @left_window.set_index(@left_temp_command)
  47.         return
  48.       else
  49.         $game_system.se_play($data_system.buzzer_se)
  50.         return
  51.       end
  52.     end
  53.     if Input.trigger?(Input::C)
  54.       if $game_party.actors.size >= $game_variables[VID_MAXACTORS]
  55.         $game_system.se_play($data_system.buzzer_se)
  56.         return
  57.       end
  58.       if @right_window.active and @right_window.actor?(@right_window.index) and not $game_party.chaochao2.include?($game_party.actors2[@right_window.index].id)
  59.         $game_party.huanren(@right_window.index,1)#type为1是从备用角色向队伍中移动,为2则相反。
  60.         if $game_party.actors2.size == 0
  61.           @right_temp_command = @right_window.index
  62.           @right_window.set_index(-1)
  63.           $game_system.se_play($data_system.cursor_se)
  64.           @left_window.active = true
  65.           @right_window.active = false
  66.           @left_window.refresh
  67.           @right_window.refresh
  68.           @left_window.set_index(@left_temp_command)
  69.         end
  70.         if @right_window.index > 0
  71.           @right_window.set_index(@right_window.index-1)
  72.         end
  73.         @left_window.refresh
  74.         @right_window.refresh
  75.       else
  76.         $game_system.se_play($data_system.buzzer_se)
  77.       end
  78.     end
  79.     return
  80.   end
复制代码
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
回帖
1526
发表于 2013-1-8 19:32:47 | 显示全部楼层
脚本第 448 行不是有解释第一个问题,关于 2 替换的答案吗?
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复

使用道具 举报

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
回帖
711
发表于 2013-1-8 19:34:12 | 显示全部楼层
1表示从备用到队伍,2是从队伍到备用

点评

应该是在 235行定义的  发表于 2013-1-8 19:40

评分

参与人数 1星屑 +120 收起 理由
天使喝可乐 + 120 感谢总结和回答~!

查看全部评分

回复

使用道具 举报

  /) /)<

梦石
0
星屑
4262
在线时间
4894 小时
注册时间
2009-2-16
回帖
8198

超评测评委开拓者短篇七成年组季军

 楼主| 发表于 2013-1-8 19:55:50 | 显示全部楼层
j433463 发表于 2013-1-8 19:32
脚本第 448 行不是有解释第一个问题,关于 2 替换的答案吗?

呃 这个没注意 因为前面都没看懂 脚本注释出现了N次这句类似的话= =
求下面问题的答案 谢谢
回复

使用道具 举报

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
回帖
711
发表于 2013-1-8 21:18:31 | 显示全部楼层
回答1:
      打开仓库                    $scene = Chaochao_Scene_Party.new
      角色从仓库到队伍            $game_party.huanren(角色ID,1)
      角色从队伍到仓库            $game_party.huanren(角色ID,2)
      禁止角色移动到仓库          $game_party.yidong(角色ID,1,1)
      不禁止角色移动到仓库        $game_party.yidong(角色ID,1,2)
      禁止角色移动到队伍          $game_party.yidong(角色ID,2,1)
      不禁止角色移动到队伍        $game_party.yidong(角色ID,2,2)
      删除队伍中角色              $game_party.remove_actor(角色ID,1)
      删除仓库中角色              $game_party.remove_actor(角色ID,2)

回答2:
      比如仓库NPC事件里弄个条件分歧"当X号开关为开时不能使用人物仓库,反之则可以使用"


回答3:
      删除队伍中角色              $game_party.remove_actor(角色ID,1)
      删除仓库中角色              $game_party.remove_actor(角色ID,2)  

回答4:
      不是很明白楼主的意思,什么叫限制最少人数?游戏初始时仓库里是0(--b 0还不够少吗?)最大人数现在应该可           以放很多个(数据库里有的应该都能放的下)

回答5:
      禁止角色移动到仓库          $game_party.yidong(角色ID,1,1)
      不禁止角色移动到仓库        $game_party.yidong(角色ID,1,2)
      禁止角色移动到队伍          $game_party.yidong(角色ID,2,1)
      不禁止角色移动到队伍        $game_party.yidong(角色ID,2,2)     
         

评分

参与人数 1星屑 +120 收起 理由
天使喝可乐 + 120 感谢总结和回答~!

查看全部评分

回复

使用道具 举报

  /) /)<

梦石
0
星屑
4262
在线时间
4894 小时
注册时间
2009-2-16
回帖
8198

超评测评委开拓者短篇七成年组季军

 楼主| 发表于 2013-1-8 22:36:39 | 显示全部楼层
wwwcctvty 发表于 2013-1-8 21:18
回答1:
      打开仓库                    $scene = Chaochao_Scene_Party.new
      角色从仓库到队伍    ...

感谢 等一会我试验一下
1.但是 强制X号进入仓库 那个不是人物ID 而是人物处在队伍序列位置的ID   因此其他的变量是否也指队伍序列位置/仓库序列位置 而不是人物ID?

2.这个我知道 我是希望能直接将脚本禁止(X号开关打开后 即使打开窗口也无法做任何调整)

3..这个意思就是 我希望队伍至少保持有4个人参战  如果不做限制的话 全放进仓库就只有1个人物参战了 因此希望增加限制
相反地  我希望只能允许3个人参战 就要限制成3了

点评

1 $game_party.remove_actor(角色ID,1) 谁和你说X的是队伍的?明明是数据库ID 自己看def里的定义 2既然没作用为何还让玩家能打开? 3战斗前判定队伍人数啊  发表于 2013-1-9 00:43
回复

使用道具 举报

梦石
0
星屑
3703
在线时间
3081 小时
注册时间
2011-11-17
回帖
943
发表于 2013-1-9 00:49:57 | 显示全部楼层
本帖最后由 yagami 于 2013-1-9 00:51 编辑
天使喝可乐 发表于 2013-1-8 22:36
感谢 等一会我试验一下
1.但是 强制X号进入仓库 那个不是人物ID 而是人物处在队伍序列位置的ID   因此其 ...


2PS.你实在要坑爹的 让仓库能打开 但不能换人的话 找到 if Input.trigger?(Input::C)....上面嵌套个if
如if $game_switches[编号] == true
if Input.trigger?(Input::C)
。。。(原脚本内容)
else
p "可乐在嘿咻"
end
3ps.你实在要改脚本 不从NPC下手 在脚本里找4  自己看看意思差不多是判定队伍人物是4 都改成$game_variables[变量编号] 游戏开始时记得先给这变量赋值 要不就是0 你死活换不了

点评

PS 3V你也好意思拿出手  发表于 2013-1-9 00:50

评分

参与人数 1星屑 +120 收起 理由
天使喝可乐 + 120 忘了加分了= = 补上

查看全部评分

回复

使用道具 举报

  /) /)<

梦石
0
星屑
4262
在线时间
4894 小时
注册时间
2009-2-16
回帖
8198

超评测评委开拓者短篇七成年组季军

 楼主| 发表于 2013-1-10 16:27:43 | 显示全部楼层
亿万星辰 发表于 2013-1-10 11:15
1、首先你如果光是这个脚本的话,会因为在描绘角色能力值的时候因为type没有7这个值而报错~

2、另外脚本还 ...

感谢~!

另外问下 后面控制人数这个 是直接插在脚本任意位置吗?
“主队伍”指的就是参战的队伍吗?
这个变量如何在游戏中更改?

点评

你找到对应的方法,然后直接替换就好了~主队伍是参战的~随时修改对应的变量(比如我给的是1、2、3号变量)就可以了~  发表于 2013-1-10 16:53
回复

使用道具 举报

  /) /)<

梦石
0
星屑
4262
在线时间
4894 小时
注册时间
2009-2-16
回帖
8198

超评测评委开拓者短篇七成年组季军

 楼主| 发表于 2013-1-10 17:28:02 | 显示全部楼层
亿万星辰 发表于 2013-1-10 11:15
1、首先你如果光是这个脚本的话,会因为在描绘角色能力值的时候因为type没有7这个值而报错~

2、另外脚本还 ...

您修正ID判断的那段脚本我替换到了脚本中 但貌似还是队伍ID?= =
其他功能测试 全部正常   
但是在“X号人物进入/移出仓库”依然有BUG嗯

无标题2.jpg

输入“1号人物进入仓库”指令时 队伍1+1号 也就是2号队伍位人物进入了仓库 同样地 输入2号人物进仓库 队伍3号位人物进入了仓库0 0
输入“1号出仓库到队伍” 也是仓库2号位到了队伍 仍然是队伍ID不是人物ID

另外 如果无限输入X号位移出仓库指令 会出现多个同样人物在队伍里的情况 此时占用队伍格子 但行动却仍然是1次 比如 队伍出现3个同样地弓箭手 战斗时所有数值和1个人一样 但下面3格位置都是他的属性条
将此人物存入仓库再取出就恢复成1个人了 如图  (而且貌似 这个多出来分身的人物一定是数据库4号ID的人物)
无标题.jpg
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部