這是記錄修改心得的筆記,非本人請勿私自轉載,非商業用途請隨意使用於您的游戲中,真要用在商業游戲上我也拿您沒辦法。
1. LNX11a 戰鬥系統增加角色戰鬥圖的立繪選項。
LNX11a 戰鬥系統是基礎核心,LNX11b 是介面文字圖形化的擴展,LNX11p 是另一種圖形化擴展,兩個擴展差別只在於畫面佈置不同,但不管怎麼說,這個號稱 RMXP 風格的戰鬥系統中,玩家的角色戰鬥圖顯示方式只有臉圖和行走圖兩種,卻不能用 RMXP 默認的全身直立戰鬥圖,沒辦法,只好自己動手加上去了。
先是打開 LNX11a 配置腳本,就是一堆設定的那個,在基本設定那一項,0 是臉圖,1 是行走圖,我加上 2 為立繪戰鬥圖,所以
DEFAULT_BATTLER_GRAPHIC = 2 # 規定値:0
然後,打開 LNX11a 戰鬥腳本,找到 def default_battler_graphic 定義區塊,加上
when 2
self.facebattler = draw_sbattler("battler_", id)
接下來,找個好位置,加上全身戰鬥圖的描畫方法:
#--------------------------------------------------------------------------
# ● [追加]: 全身戰鬥圖繪製返回
# 額外增加的立繪圖形繪製
#--------------------------------------------------------------------------
def draw_sbattler(sbattler_name, sbattler_index)
return unless sbattler_name
bitmap = Cache.load_bitmap("Graphics/battlers/", sbattler_name + sbattler_index.to_s)
bw = bitmap.width
bh = bitmap.height
rect = Rect.new(0, 0, bw, bh)
sbattler = Bitmap.new(bw, bh)
color = LNX11::DEFAULT_BG_COLOR
sbattler.gradient_fill_rect(sbattler.rect, color[0], color[1], true)
sbattler.blt(0, 0, bitmap, rect)
bitmap.dispose
sbattler
end
全身戰鬥圖是設置放在 Graphics/battlers/ 下,它的檔名格式是
battler_1.png
battler_2.png
這檔名中的 1 2 數字是數據庫中玩家角色的ID,battle_1.png 對應 1 號角色,battle_2.png 對應 2 號角色,所以只要檔名對應正確,在戰鬥開始時出現的就是正確的玩家角色全身戰鬥圖,如果改變了數據庫中的角色前後順序,角色ID改變,戰鬥圖的檔名數字也要對照著改,免得顯示出錯。
這樣就更有 RMXP 的戰鬥風味了。
2. 給柳之一的截圖存檔腳本加上背景圖
我在 66rpg 論壇這兒發帖問過,但沒有人回應,直到帖子被設置為過期帖,只好自己研究,最後還是靠自己解決。
打開截圖存檔腳本,找到 class Scene_File < Scene_MenuBase 在 def start 的 super 下方加入
create_background
並且在 end 下加上
#--------------------------------------------------------------------------
# ● 生成背景
#--------------------------------------------------------------------------
def create_background
@background_sprite = Sprite.new
@background_sprite.bitmap = Cache.load_bitmap("Graphics/Titles1/","BG day 28")
@background_sprite.color.set(0, 0, 0, 0)
end
#--------------------------------------------------------------------------
# ● 結束背景
#--------------------------------------------------------------------------
def dispose_background
@background_sprite.dispose
end
使用 load_bitmap 取圖的方式,要設定圖檔路徑,"Graphics/Titles1/" 是預設位置,可以自己改,BG day 28是圖檔名,請自行改成自己用的圖檔名。
往下看到 def terminate 了,在它的 super 下方加上
dispose_background
完工!
3. 地圖名稱顯示的修改
Window_MapName 地圖名顯示默認是進入游戲時在地圖上不會顯示的,要場所轉移後才會出現,而且淡入後淡出,只會出現一段很短的時間。
那如果要在地圖上一進入游戲就有地圖名顯示,就要改初始化 def initialize 的
self.contents_opacity = 255 #0 <- 預設值
將不透明度設為 255,進入游戲時就會看到地圖名了,但這樣子地圖名仍然只會出現一段很短的時間就消失,因為淡出改變了不透明度的關係,所以要在更新淡出的地方也修改一下,找到 def update_fadeout 後改
#self.contents_opacity -= 16
把它註解掉就行了,可是,奇怪,怎麼每次場所轉移時地圖名都會閃一下?因為開啟地圖名窗口的時候,不透明度是 0,所以也要去改一下。
找到 def open 改
self.contents_opacity = 255 #0 <- 預設值
這樣不透明度設為 255 了,場所轉移時地圖名顯示自然不會再閃爍,不過,更新淡入的地方最好也把它注釋掉,不然場所轉移更新畫面時,淡入一直加不透明度值,不知道會不會造成溢位問題,為了保險,還是找到 def update_fadein 改
#self.contents_opacity += 16
OK!地圖名會一直保持在地圖上,如果地圖設置中顯示名稱是空的,地圖名就不顯示,不是空的就顯示。
但是,這地圖名位置是在左上角,我要放在右下角,那就改
super(0, 0, window_width, fitting_height(1))
0, 0 就是地圖名子窗口的 x, y 座標,都改成
super(Graphics.width - window_width, Graphics.height - fitting_height(1), window_width, fitting_height(1))
地圖名稱就顯示在左下角了,如果說,地圖名稱窗口中的字,我不要置中,要靠左或靠右怎麼做?找到重新整理 def refresh 中改
draw_text(contents.rect, $game_map.display_name, 2)
數字 2 是靠右,數字 0 是靠左,而數字 1 是置中,下面的例圖是畫面右下角顯示地圖名,文字靠右的結果:
想要使用自定的背景怎麼做?首先,準備一張地圖名窗口大小的背景圖,預設的地圖名窗口寬度是 240,高度是 24,扣去左右邊距,實際背景圖的寬度應該是 216,所以製作一張 216*24 的背景圖:
把背景圖放入 Graphics/Pictures 下,取檔名為 mapname_bg.png
再把 Window_MapName 繪製背景的 def draw_gackground(rect) 整段內容注釋掉,改成:
def draw_background(rect)
p rect.width
bitmap = Cache.load_bitmap("Graphics/Pictures/", "mapname_bg")
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect, 255)
bitmap.dispose
end
看看執行測試結果:
要是再配合修改小筆記 part.2 的雙地圖名美化修改方式,其實地圖名顯示能夠改得千變萬化,只有想不到,沒有做不出來的效果。