Project1

标题: 怎么修改战斗中人物层次先后 [打印本页]

作者: 会飞的面包    时间: 2009-6-7 13:41
标题: 怎么修改战斗中人物层次先后
怎么修改战斗中人物层次先后?在脚本中的哪里修改?



还有就是如何制作一个CG回顾的NPC,可以回顾看过的CG。。 [LINE]1,#dddddd[/LINE]此贴于 2009-6-12 2:59:12 被版主darkten提醒,请楼主看到后对本贴做出回应。
作者: kakarot    时间: 2009-6-7 15:11
答一:
修改Game_actor里的z值,值越大优先级越高,显示越靠前~
答二:
传送门附上~
http://rpg.blue/viewthread.php?tid=87982&ntime=2009%2D6%2D7+7%3A09%3A41

唠叨一:
版规好象说一贴一问来着?
唠叨二:
下次LZ提问前可以稍微先自己搜索着试试看~

以上,睡觉去了~
作者: 会飞的面包    时间: 2009-6-8 02:42
我是人物吧血槽给遮住了。。。这么办?
作者: 会飞的面包    时间: 2009-6-8 02:54
回顾CG用公共事件带过了,但是这么才能让CG出来大概10S左右或者要按一下 才能关掉?
作者: kakarot    时间: 2009-6-8 03:04
以下引用会飞的面包于2009-6-7 18:42:23的发言:

我是人物吧血槽给遮住了。。。这么办?

那就把全员的Z值都调低好了~LZ多调试几次,注意别低到让框把人也遮住了就好了~

以下引用会飞的面包于2009-6-7 18:54:32的发言:

回顾CG用公共事件带过了,但是这么才能让CG出来大概10S左右或者要按一下 才能关掉?


那就等待400帧再执行图片消失咯~要按一下才能关掉的话..在下有个耍小聪明的办法,就是在显示图片的同时显示文章(当然要先设置一下不显示对话框+文章在下方显示,这个在更改文章选项里设置就好了~),文章内容为空,在显示文章之后执行图片消失或者移动图片把不透明度改成0就可以了~

作者: 会飞的面包    时间: 2009-6-8 03:22
那就等待400帧再执行图片消失咯~要按一下才能关掉的话..在下有个耍小聪明的办法,就是在显示图片的同时显示文章(当然要先设置一下不显示对话框+文章在下方显示,这个在更改文章选项里设置就好了~),文章内容为空,在显示文章之后执行图片消失或者移动图片把不透明度改成0就可以了~


谢谢了。。至于Z值还是不知道如何修改。非常抱歉。。。在下愚昧

作者: 会飞的面包    时间: 2009-6-8 03:23
  #--------------------------------------------------------------------------
  # ● 取得战斗画面的 Z 坐标
  #--------------------------------------------------------------------------
  def screen_z
    # 返回计算后的队伍 Z 坐标的排列顺序
    if self.index != nil
      return 1 - self.index
    else
      return 0
    end
  end
end


是这里么?
作者: kakarot    时间: 2009-6-8 04:25
以下引用会飞的面包于2009-6-7 19:23:23的发言:

#--------------------------------------------------------------------------
# ● 取得战斗画面的 Z 坐标
#--------------------------------------------------------------------------
def screen_z
   # 返回计算后的队伍 Z 坐标的排列顺序
   if self.index != nil
     return 1 - self.index
   else
     return 0
   end
end
end


是这里么?


是这里..不过我奇怪的是Z值并不高为什么还是把血条盖住了..
LZ把你用的血条脚本也贴上来吧~
作者: 会飞的面包    时间: 2009-6-8 14:00
def initialize(skin, line_height)
    @skin   = skin
    @width  = @skin.width
    @height = line_height
    @line   = 1
    @amount = 0
    @base_sprite = Sprite.new
    @base_sprite.bitmap = @skin
    @base_sprite.src_rect.set(0, 0, @width, @height)
    @base_sprite.z = 601
    super()
    self.z = @base_sprite.z + 1
    self.bitmap = @skin
    self.line = 1
  end


不知道是不是这个。。

作者: kakarot    时间: 2009-6-8 15:09

MS不是..LZ把Window_BattleStatus这部分脚本贴上来看看?
(注意用
  1. [code]脚本
复制代码
[/code]的格式来引用脚本)
作者: 会飞的面包    时间: 2009-6-9 13:15
  1. #==============================================================================
  2. # ■ Window_BattleStatus
  3. #------------------------------------------------------------------------------
  4. #  显示战斗画面同伴状态的窗口。
  5. #==============================================================================

  6. class Window_BattleStatus < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.     super(0, 320, 640, 160)
  12.     self.contents = Bitmap.new(width - 32, height - 32)
  13.     @level_up_flags = [false, false, false, false]
  14.     refresh
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 释放
  18.   #--------------------------------------------------------------------------
  19.   def dispose
  20.     super
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 设置升级标志
  24.   #     actor_index : 角色索引
  25.   #--------------------------------------------------------------------------
  26.   def level_up(actor_index)
  27.     @level_up_flags[actor_index] = true
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 刷新
  31.   #--------------------------------------------------------------------------
  32.   def refresh
  33.     self.contents.clear
  34.     @item_max = $game_party.actors.size
  35.     for i in 0...$game_party.actors.size
  36.       actor = $game_party.actors[i]
  37.       actor_x = i * 160 + 4
  38.       draw_actor_name(actor, actor_x, 0)
  39.       draw_actor_hp(actor, actor_x, 32, 120)
  40.       draw_actor_sp(actor, actor_x, 64, 120)
  41.       if @level_up_flags[i]
  42.         self.contents.font.color = normal_color
  43.         self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
  44.       else
  45.         draw_actor_state(actor, actor_x, 96)
  46.       end
  47.     end
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 刷新画面
  51.   #--------------------------------------------------------------------------
  52.   def update
  53.     super
  54.     # 主界面的不透明度下降
  55.     if $game_temp.battle_main_phase
  56.       self.contents_opacity -= 4 if self.contents_opacity > 191
  57.     else
  58.       self.contents_opacity += 4 if self.contents_opacity < 255
  59.     end
  60.   end
  61. end
复制代码


作者: kakarot    时间: 2009-6-9 13:47
把最后一部分改成这样试试~


  1.   #--------------------------------------------------------------------------
  2.   # ● フレーム更新
  3.   #--------------------------------------------------------------------------
  4.   def update
  5.     super
  6.     # メインフェーズのときは不透明度をやや下げる
  7.     if $game_temp.battle_main_phase
  8.       self.contents_opacity -= 4 if self.contents_opacity > 191
  9.       self.z = 9999
  10.     else
  11.       self.contents_opacity += 4 if self.contents_opacity < 255
  12.       self.z = 9999
  13.     end
  14.   end
  15. end
复制代码

作者: 会飞的面包    时间: 2009-6-10 13:38
非常抱歉。。还是不行。。。
作者: 会飞的面包    时间: 2009-6-10 13:39
  1. module XRXS65
  2.   #
  3.   # 「バトルスピード」(数値が高いほど早い)
  4.   #
  5.   SPEED = 0.7
  6.   #
  7.   # 戦闘開始時 CP。 固定値と占有率
  8.   #
  9.   CP_PRESET_FIXNUM = 0
  10.   CP_PRESET_RATIO  = 2.0
  11.   #
  12.   # ターンコントローラ (nil  : カウント/ターンを有効。
  13.   #                     数値 : そのインデックスをもつエネミーが支配)
  14.   #
  15.   TC = 0
  16.   #
  17.   # カウント/ターン (TCが有効な場合は無視)
  18.   #
  19.   CPT = 40
  20.   #
  21.   # CP スキン
  22.   #
  23.   SKIN        = "Line"  # スキンファイル名(Graphics/Windowskinsフォルダ)
  24.   LINE_HEIGHT =  6        # スキンの"一行"の縦幅[単位:ピクセル]
  25.   #
  26.   # 表示位置セッティング
  27.   #
  28.   X_OFFSET = 164    # 横位置
  29.   Y_OFFSET = 464    # 縦位置
  30.   ALIGN    =   2    #「位置揃え」(CPメーターの位置。0:左寄せ 1:中央 2:右寄せ)
  31.   MAX      =   4    # 確保するサイズ[単位:~人分]
  32.   #
  33.   # アクターコマンドがポップしたときの効果音
  34.   #
  35.   COMMAND_UP_SE = "Audio/SE/select.ogg"
  36. end
复制代码

作者: kakarot    时间: 2009-6-10 16:05
LS贴的设置好像也没什么关系..
先提醒一句:修改完脚本如果在数据库里战斗测试脚本的效果不会马上表现出来,请先保存再测试~如果没有这么做的话请先这么做着试试..
如果还是不行的话..在下愚钝,从LZ给出的这些材料无法判断LZ的问题所在,如果可以的话请将工程简化后上传上来大家一起研究研究~
以下是个人的一些小白分析:

其实从LZ贴出来的Window_BattleStatus脚本以及截图来看和AStory的脚本比较像,咱昨天按照LSSS(就是咱上次回的那贴..)的方法改过之后好像血条就已经压在人物上了..LZ这么改了之后还是不行的话估计是LZ又外挂了什么其他脚本把这一部分改动了,所以需要LZ上传工程来看看到底是哪一部分的问题~(咱脚本还处于入门阶段,技术不到家真是对不起了..orz..)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1