Project1

标题: 腳本修改求助! [打印本页]

作者: 小星星兔    时间: 2012-12-25 23:52
标题: 腳本修改求助!
各位好!
先送上需要幫助的腳本:

#==============================================================================
# □ Window_StatusDetail
#------------------------------------------------------------------------------
#   ステータス画面で、アクターの詳細情報を表示するウィンドウです。
#==============================================================================

#再定義してる部分があるので拡張ステータス画面より下に導入

class Window_StatusDetail < Window_Base
#設定項目
  def get_actor_statuspic
    case @actor.id #アクターIDで分岐
    when 1 #ID 001
      #攻撃力で分岐 (その他 def agi などで分岐可 Game_Battler 参照するといいかも
      if @actor.atk < 50 #攻撃力が50未満
        return "Actor1-1" #Actor1-1が取得するfilename (ピクチャーフォルダに入れとく)
      elsif @actor.atk >= 50 && @actor.atk < 100 #攻撃力が50以上100未満
        return "Actor1-5"
      elsif @actor.atk >= 100 &&  @actor.atk < 200
        return "Actor1-6"
      else #上の条件に当てはまらなかった時
        return nil #画像無し
      end
    when 2 #ID 002
      #こっちは防御力で分岐してみる
      if @actor.def < 50
        return "Actor1-2"
      elsif @actor.def >= 50 && @actor.def < 100
        return "Actor1-3"
      elsif @actor.def >= 100 &&  @actor.def < 200
        return "Actor1-4"
      else
        return nil
      end
    #中略 (他のアクターは自分で記述して下さい)
   
    else #上記で指定がないIDの場合
      return nil #画像無し
    end
  end
#設定ここまで
  #--------------------------------------------------------------------------
  # ● 画像の描画 ※新規定義 refreshから呼ばれます
  #--------------------------------------------------------------------------  
  def draw_actor_statuspic
    #actor_pic(変数)にfilename(上で分岐した結果)を代入
    actor_pic = get_actor_statuspic
    return if actor_pic == nil #actor_picがnilなら以下の処理をせずに戻る
    bitmap =  Cache.picture(actor_pic) #ピクチャーフォルダから画像を取得
    rect = Rect.new(0, 0, 0, 0)
    rect.width = bitmap.width #横幅は画像の横幅
    rect.height = bitmap.height #縦幅は画像の縦幅
    self.contents.blt(544 - bitmap.width - 16, 0, bitmap, rect) #画像の描画
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ ※再定義
  #--------------------------------------------------------------------------
  def refresh
    @element_chart_sprite.visible = false
    @state_chart_sprite.visible   = false
    return if @category == nil

    self.contents.clear
    case @category
    when :param
      #位置が被ったら先に書いたものが下に描画される
      #順番を逆にすれば画像が項目より上に描画されます
      draw_actor_statuspic ###追加箇所### 画像の描画
      draw_parameter_list
    when :resist
      draw_resistance
    when :element_resist
      draw_element_resistance(0, 0,
        KGC::ExtendedStatusScene::RESIST_STYLE_SYMBOL)
    when :state_resist
      draw_state_resistance(0, 0,
        KGC::ExtendedStatusScene::RESIST_STYLE_SYMBOL)
    when :profile
      draw_actor_statuspic ###追加箇所### 画像の描画
      draw_profile
    end
    Graphics.frame_reset
  end
end

我是想將攻擊力的分歧改成職業的分歧,
例如1號角色原本1號職業,
當他的職業變成第二個時,圖像會變,
我實在是沒有頭緒啊!
我試著把if @actor.atk < 50改成if @class_id =2
但是沒有反應,我剛接觸不久,也不知這樣改是否正確?
希望有人能教導解說,非常感謝!
作者: a364774426    时间: 2012-12-26 14:46
这个肯定的,@class_id = 2是把该角色的职业变成2号职业。@class_id == 2才是判断职业ID是否为2
一个 = 是赋值,而 == 是判断
作者: 小星星兔    时间: 2012-12-27 08:58
a364774426 发表于 2012-12-26 14:46
这个肯定的,@class_id = 2是把该角色的职业变成2号职业。@class_id == 2才是判断职业ID是否为2
一个 = 是 ...

謝謝您的回答!
我重新再試著修改,但卻還是一樣了...
真是挫折!
謝謝您告訴我=還有==的意思!
作者: 小星星兔    时间: 2012-12-27 20:47
a364774426 发表于 2012-12-26 14:46
这个肯定的,@class_id = 2是把该角色的职业变成2号职业。@class_id == 2才是判断职业ID是否为2
一个 = 是 ...

我研究出來了!
問題在於def get_actor_statuspic
將這相關的都改成def get_actor_classpic
然後用上面的前輩所教的,把=寫成==
就能達到我要的修改效果了!




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