Project1
标题: 求一个在状态界面显示角色立绘的脚本,或修改方法。 [打印本页]
作者: 午睡的风铃 时间: 2014-2-4 03:22
标题: 求一个在状态界面显示角色立绘的脚本,或修改方法。
想求一个能够在状态界面显示出人物立绘的脚本,或者是修改的方法也行。
我调整了状态界面的窗口,原来的全屏现在变成了半屏宽,打算在另一边显示立绘用,可是不知道怎么做,求各位指点。
作者: 御之嵐 时间: 2014-2-4 10:55
本帖最后由 御之嵐 于 2014-2-4 11:19 编辑
不知道是不是這邊的狀態介面
上下裁切掉
是因為有糟糕的東西所以遮蔽了一下
人物是我自己畫的
所以應該沒有版權問題_(:з」∠)_
這是我很久很久之前寫的
寫得很爛
有參考了日本RPG的腳本
後來就自己改寫了一下
原本是有判斷血量、裝備、狀態
利用這些去改變立繪
但是怕你看不懂
所以就只剩下血量判斷
class Window_statuschar < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
def initialize(x,y,w,h)
super(x, y, w, h)
self.opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 重新整理
#--------------------------------------------------------------------------
def refresh
#HPが50%以上
if ($game_actors[1].hp >= $game_actors[1].mhp / 2)
contents.clear
bitmap = Cache.load_bitmap("Graphics/Pictures/","menu_06a")
rect = Rect.new(-100, -70, 544,500)
contents.blt(0,0, bitmap, rect, 255)
bitmap.dispose
end
#HPが50%以下
if ($game_actors[1].hp < $game_actors[1].mhp / 2) && ($game_actors[1].hp > $game_actors[1].mhp / 5)
contents.clear
bitmap = Cache.load_bitmap("Graphics/Pictures/","menu_06b")
rect = Rect.new(-100, -70, 544,500)
contents.blt(0,0, bitmap, rect, 255)
bitmap.dispose
end
#HPが20%以下
if ($game_actors[1].hp <= $game_actors[1].mhp / 5)
contents.clear
bitmap = Cache.load_bitmap("Graphics/Pictures/","menu_06c")
rect = Rect.new(-100, 0, 544,416)
contents.blt(0,0, bitmap, rect, 255)
bitmap.dispose
end
end
#--------------------------------------------------------------------------
# ● 開啟視窗
#--------------------------------------------------------------------------
def open
refresh
super
end
end
class Window_statuschar < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
def initialize(x,y,w,h)
super(x, y, w, h)
self.opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 重新整理
#--------------------------------------------------------------------------
def refresh
#HPが50%以上
if ($game_actors[1].hp >= $game_actors[1].mhp / 2)
contents.clear
bitmap = Cache.load_bitmap("Graphics/Pictures/","menu_06a")
rect = Rect.new(-100, -70, 544,500)
contents.blt(0,0, bitmap, rect, 255)
bitmap.dispose
end
#HPが50%以下
if ($game_actors[1].hp < $game_actors[1].mhp / 2) && ($game_actors[1].hp > $game_actors[1].mhp / 5)
contents.clear
bitmap = Cache.load_bitmap("Graphics/Pictures/","menu_06b")
rect = Rect.new(-100, -70, 544,500)
contents.blt(0,0, bitmap, rect, 255)
bitmap.dispose
end
#HPが20%以下
if ($game_actors[1].hp <= $game_actors[1].mhp / 5)
contents.clear
bitmap = Cache.load_bitmap("Graphics/Pictures/","menu_06c")
rect = Rect.new(-100, 0, 544,416)
contents.blt(0,0, bitmap, rect, 255)
bitmap.dispose
end
end
#--------------------------------------------------------------------------
# ● 開啟視窗
#--------------------------------------------------------------------------
def open
refresh
super
end
end
menu...的詞都是圖片檔名
當時只是一時興起寫的
所以寫得很爛
參考看看就好了吧
我不建議使用 ( 艸)
希望對你有幫助
如果要測試效果
在 Scene_Status 的 @status_window.set_handler(:pageup, method(:prev_actor)) 底下
加上
@statuschar__window=Window_statuschar.new(250,0,320,485)
隨便找張立繪 檔名改成 menu_06a
放在 Graphics\Pictures 底下 應該就可以了
作者: 午睡的风铃 时间: 2014-2-4 15:22
@御之嵐
这个脚本切换角色后依然还是那张设定好的图片,请问怎样可以让半身像随着角色的改变而改变成对应的呢?
作者: 御之嵐 时间: 2014-2-4 17:07
本帖最后由 御之嵐 于 2014-2-4 20:33 编辑
午睡的风铃 发表于 2014-2-4 15:22
@御之嵐
这个脚本切换角色后依然还是那张设定好的图片,请问怎样可以让半身像随着角色的改变而改变成对应的 ...
看一下是不是你要的效果吧
換人物時圖片會跟者換
有血量的判斷
不想改預設腳本的話
就直接複製這兩個腳本
插入到 Main之前就好了
class Window_statuschar < Window_Base
#--------------------------------------------------------------------------
# ● 初始化對象
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, Graphics.width, Graphics.height)
self.opacity = 0
[url=home.php?mod=space&uid=95897]@actor[/url] = actor
refresh
activate
end
#--------------------------------------------------------------------------
# ● 設置角色
#--------------------------------------------------------------------------
def actor=(actor)
return if [url=home.php?mod=space&uid=95897]@actor[/url] == actor
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_player
end
#--------------------------------------------------------------------------
# ● 重新整理
#--------------------------------------------------------------------------
def draw_player
#HPが50%以上
if ($game_actors[@actor.id].hp >= $game_actors[@actor.id].mhp / 2)
bitmap = Cache.face("player_" + @actor.id.to_s + "_1")
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect)
bitmap.dispose
end
#HPが50%以下
if ($game_actors[@actor.id].hp < $game_actors[@actor.id].mhp / 2) && ($game_actors[@actor.id].hp > $game_actors[@actor.id].mhp / 5)
bitmap = Cache.face("player_" + @actor.id.to_s + "_2")
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect)
bitmap.dispose
end
#HPが20%以下
if ($game_actors[@actor.id].hp <= $game_actors[@actor.id].mhp / 5)
bitmap = Cache.face("player_" + @actor.id.to_s + "_3")
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect)
bitmap.dispose
end
end
#--------------------------------------------------------------------------
# ● 開啟視窗
#--------------------------------------------------------------------------
def open
refresh
super
end
end
class Window_statuschar < Window_Base
#--------------------------------------------------------------------------
# ● 初始化對象
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, Graphics.width, Graphics.height)
self.opacity = 0
[url=home.php?mod=space&uid=95897]@actor[/url] = actor
refresh
activate
end
#--------------------------------------------------------------------------
# ● 設置角色
#--------------------------------------------------------------------------
def actor=(actor)
return if [url=home.php?mod=space&uid=95897]@actor[/url] == actor
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_player
end
#--------------------------------------------------------------------------
# ● 重新整理
#--------------------------------------------------------------------------
def draw_player
#HPが50%以上
if ($game_actors[@actor.id].hp >= $game_actors[@actor.id].mhp / 2)
bitmap = Cache.face("player_" + @actor.id.to_s + "_1")
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect)
bitmap.dispose
end
#HPが50%以下
if ($game_actors[@actor.id].hp < $game_actors[@actor.id].mhp / 2) && ($game_actors[@actor.id].hp > $game_actors[@actor.id].mhp / 5)
bitmap = Cache.face("player_" + @actor.id.to_s + "_2")
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect)
bitmap.dispose
end
#HPが20%以下
if ($game_actors[@actor.id].hp <= $game_actors[@actor.id].mhp / 5)
bitmap = Cache.face("player_" + @actor.id.to_s + "_3")
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect)
bitmap.dispose
end
end
#--------------------------------------------------------------------------
# ● 開啟視窗
#--------------------------------------------------------------------------
def open
refresh
super
end
end
#encoding:utf-8
#==============================================================================
# ■ Scene_Status
#------------------------------------------------------------------------------
# 狀態畫面
#==============================================================================
class Scene_Status < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 開始處理
#--------------------------------------------------------------------------
def start
super
@status_window = Window_Status.new(@actor)
@status_window.set_handler(:cancel, method(:return_scene))
@status_window.set_handler(:pagedown, method(:next_actor))
@status_window.set_handler(:pageup, method(:prev_actor))
@statuschar__window=Window_statuschar.new(@actor)
end
#--------------------------------------------------------------------------
# ● 切換角色
#--------------------------------------------------------------------------
def on_actor_change
@status_window.actor = @actor
@status_window.activate
end
end
#encoding:utf-8
#==============================================================================
# ■ Scene_Status
#------------------------------------------------------------------------------
# 狀態畫面
#==============================================================================
class Scene_Status < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 開始處理
#--------------------------------------------------------------------------
def start
super
@status_window = Window_Status.new(@actor)
@status_window.set_handler(:cancel, method(:return_scene))
@status_window.set_handler(:pagedown, method(:next_actor))
@status_window.set_handler(:pageup, method(:prev_actor))
@statuschar__window=Window_statuschar.new(@actor)
end
#--------------------------------------------------------------------------
# ● 切換角色
#--------------------------------------------------------------------------
def on_actor_change
@status_window.actor = @actor
@status_window.activate
end
end
因為我不是很厲害
而且我當初寫的時候 只有針對 單一角色
所以 2L的腳本 綁死了
所以花了一點時間研究了一下
順便學 這樣
我有參考這邊的寫法
http://rpg.blue/thread-256268-1-1.html
用法的話
檔名
1號角色
50%以上 player_1_1
50%~20% player_1_2
20%以下 player_1_3
2號就以此類推
50%以上 player_2_1
50%~20% player_2_2
20%以下 player_2_3
圖片放在
Graphics\Faces
不過這個只是用於固定好的隊伍
假如
原本設定好的 2號角色
突然換成其他人了
那 裡面的 立繪
就還是原本的 2號角色 這樣
希望對你有幫助
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |