#============================================================================== # ■ 我方显示战斗图 by:celica #------------------------------------------------------------------------------ #============================================================================== #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 取得画面 X 坐标 #-------------------------------------------------------------------------- def screen_x (3-index) * Graphics.width / 4 + Graphics.width / 8 end #-------------------------------------------------------------------------- # ● 取得画面 Y 坐标 #-------------------------------------------------------------------------- def screen_y Graphics.height end #-------------------------------------------------------------------------- # ● 取得画面 Z 坐标 #-------------------------------------------------------------------------- def screen_z screen_y end #-------------------------------------------------------------------------- # ● 自动获得战斗图 #-------------------------------------------------------------------------- def battler_name name = @name states.each {|s| name = name + "_" + s.name if s.show_lihui? } #name = @name unless FileTest.exists?("Graphics/Battlers/" + name + ".png") return name end #-------------------------------------------------------------------------- # ● 是否使用活动块 #-------------------------------------------------------------------------- def use_sprite? true end end #============================================================================== #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- # ● 生成角色活动块 #-------------------------------------------------------------------------- def create_actors @actor_sprites = $game_party.members.reverse.collect do |actor| Sprite_Battler.new(@viewport1, actor) end end end
class Window_BattlePicture < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(15, 10, 640, 480) end #-------------------------------------------------------------------------- # ● 立ち絵のセット #-------------------------------------------------------------------------- def set(face_name, actor = nil) self.contents.clear if actor != nil case ((actor.hp * 100) / actor.mhp) when 31...60 bitmap1 = Cache.picture(face_name + "-2") when 0...30 bitmap1 = Cache.picture(face_name + "-3") else bitmap1 = Cache.picture(face_name) end end rect1 = Rect.new(0, 0, bitmap1.width, bitmap1.height) x = 570-bitmap1.width/2 + 0 y = 480-bitmap1.height + 0 self.contents.blt(x, y, bitmap1, rect1) end end class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● 情報表示ビューポートの作成 #-------------------------------------------------------------------------- alias wd_orig_create_info_viewport_009 create_info_viewport def create_info_viewport @battle_picture_window = Window_BattlePicture.new @battle_picture_window.hide @battle_picture_window.opacity = 0 wd_orig_create_info_viewport_009 end #-------------------------------------------------------------------------- # ● 次のコマンド入力へ #-------------------------------------------------------------------------- alias wd_orig_next_command_009 next_command def next_command @battle_picture_window.hide wd_orig_next_command_009 end #-------------------------------------------------------------------------- # ● 前のコマンド入力へ #-------------------------------------------------------------------------- alias wd_orig_prior_command_009 prior_command def prior_command @battle_picture_window.hide wd_orig_prior_command_009 end #-------------------------------------------------------------------------- # ● アクターコマンド選択の開始 #-------------------------------------------------------------------------- alias wd_orig_start_actor_command_selection_009 start_actor_command_selection def start_actor_command_selection wd_orig_start_actor_command_selection_009 actor = BattleManager.actor @battle_picture_window.show @battle_picture_window.set(actor.face_name, actor) end end
#-------------------------------------------------------------------------- # ● 立ち絵のセット #-------------------------------------------------------------------------- def set(face_name, actor = nil) self.contents.clear name = "" actor.states.each {|s| name = name + "_" + STATE_P::SP[s.id] if s.show_lihui? } if actor.states.size == 1 name = name + "_" + STATE_P::SP["N"] if actor.states.size > 1 bitmap1 = Cache.picture(face_name + name) rect1 = Rect.new(0, 0, bitmap1.width, bitmap1.height) x = 570-bitmap1.width/2 + 0 y = 480-bitmap1.height + 0 self.contents.blt(x, y, bitmap1, rect1) end end
module STATE_P SP = { #写法 状态ID=>["表情名"], 1=>"死亡", 4=>"中毒", "N"=>"嘤嘤嘤", } end
soulsaga 发表于 2019-9-12 13:02
#--------------------------------------------------------------------------
# ● 立ち絵のセット
...
sezhiyang 发表于 2019-9-13 13:40
太谢谢了,不点回复大佬看不到吧,帮我帮到底吗,谢谢谢谢谢谢谢谢谢谢谢谢谢谢
两个问题
soulsaga 发表于 2019-9-13 13:42
1我不知道..
2..什么是联动..还有图指什么图?
还有..不是大佬..是平凡的萌新 ...
sezhiyang 发表于 2019-9-13 18:04
就是按某几个特定状态id 显示不同的图片,应该是把原来的脚本的判断hp 改成判断某个指定的状态就行了 ...
soulsaga 发表于 2019-9-13 18:45
所以你是要把第2个脚本改成显示图片..不是显示立绘?
sezhiyang 发表于 2019-9-13 21:11
第二个脚本第14行不是有个判断hp显示不同的图片么,改成根据状态id 显示不同图片
soulsaga 发表于 2019-9-12 13:02
#--------------------------------------------------------------------------
# ● 立ち絵のセット
...
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |