#============================================================================== # ★ ステートでキャラチップ変化 ver1.0 by USK #------------------------------------------------------------------------------ # ・ステートに応じてアクターのキャラチップを変更します。 #============================================================================== =begin ・26行目からの{}の間に (ステート番号) => ["(ファイル名)", (キャラチップ番号[0〜7])], と記入すると(ステート番号)で設定したステートになったアクターは(ファイル名)で 指定した画像の(キャラチップ番号)番目のキャラチップになります。 ・アクターのメモ欄に と記入すると、そのアクターは(ステート番号)で設定したステートになったとき、 (ファイル名)で指定した画像の(キャラチップ番号)番目のキャラチップになります。 この効果は上記の共通設定より優先されます。 例  ・キャラチップが変化するステートに複数かかった場合、ステート番号が若いものが  優先されます。 =end #============================================================================== # ■ 共通設定 #============================================================================== CommonSC = { #(ステート番号) => ["(ファイル名)", (キャラチップ番号[0〜7])], 1 => ["$Coffin", 0], } #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- alias :usk_sc_character_name :character_name def character_name character_name_by_state || usk_sc_character_name end #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- def character_name_by_state sid = @states.find {|id| actor.state_character(id)} || 0 sc = actor.state_character(sid) sc[0] end #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- alias :usk_sc_character_index :character_index def character_index character_index_by_state || usk_sc_character_index end #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- def character_index_by_state sid = @states.find {|id| actor.state_character(id)} || 0 sc = actor.state_character(sid) sc[1] end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- alias :usk_sc_refresh :refresh def refresh usk_sc_refresh $game_player.refresh if SceneManager.scene_is?(Scene_Map) end end #============================================================================== # ■ RPG::Actor #============================================================================== class RPG::Actor #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- def state_character(id) if @state_character.nil? @state_character = CommonSC.clone @state_character[0] = [nil, nil] @note.each_line do |line| if line =~ // @state_character[$1.to_i] = [$2, $3.to_i] end end end @state_character[id] end end