Re: [問題] 第二配件裝備及資訊顯示問題

看板RPGMaker (RPG製作大師 - RPG Maker)作者 (太極狂龍)時間15年前 (2010/01/07 03:03), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《yinsheng (總是被忽略...)》之銘言: : 想增加第二裝飾品 : 所以用了板上bill大1709篇的RGSS修改內容 : 然後又用RPG教學站ritud大提供的商店畫面改造 : 進入遊戲測試後卻發現 : 假設身上裝了一個力戒+15力量 還剩一個飾品空格 : 這時要到商店再買一個力戒 資訊顯示上卻不會有任何的增加 : 想請問要如何修改RGSS讓商店資訊顯示能夠判斷我有兩個飾品 : 好能夠正確顯示我打算裝同樣物品時的增加數值 我改寫了ritud大的商店畫面改造腳本 效果預覽http://imgur.com/hNZIV.jpg
可以看到游標正停在商店中的力量戒指上 隊員「拜倫」裝備的一號飾品是「力量戒指」,二號飾品是「防護戒指」 而他的「力量」欄位後的兩個數字分別是「增加0」和「增加15」 「靈巧」欄位後的兩個數字分別是「增加0」和「減少15」 (一號飾品) (二號飾品) 就表示說,如果你買了商店中的力量戒指把他的一號飾品替換掉 他的力量和靈巧都不會變動 而如果是把二號飾品替換掉 則他的力量會增加15,靈巧會減少15 使用時請先將舊版的腳本刪除 然後貼上下列腳本: #============================================================================== # ■ Window_ShopStatus #------------------------------------------------------------------------------ #  商店畫面、顯示物品所持數與角色裝備的窗口。 #============================================================================== class Window_ShopStatus < Window_Base #-------------------------------------------------------------------------- # ● 初始化對像 #-------------------------------------------------------------------------- def initialize super(368, 128, 272, 352) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.size = 16 @item = nil refresh end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh self.contents.clear if @item == nil return end case @item when RPG::Item number = $game_party.item_number(@item.id) when RPG::Weapon number = $game_party.weapon_number(@item.id) when RPG::Armor number = $game_party.armor_number(@item.id) end self.contents.font.color = system_color self.contents.draw_text(4, 0, 200, 32, "所持數") self.contents.font.color = normal_color self.contents.draw_text(204, 0, 32, 32, number.to_s, 2) if @item.is_a?(RPG::Item) return end for i in 0...$game_party.actors.size # 獲取角色 actor = $game_party.actors[i] # 可以裝備為普通文字顏色、不能裝備設置為無效文字顏色 if actor.equippable?(@item) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end # 描繪角色名字 j = 70 self.contents.draw_text(0, 32 + j * i, 84, 32, actor.name) i += 1 x = -16 if @item.is_a?(RPG::Weapon) self.contents.draw_text(80*0, x+j * i, 112, 32,"攻擊",0) self.contents.draw_text(80*1, x+j * i, 112, 32,"力量",0) self.contents.draw_text(80*2, x+j * i, 112, 32,"靈巧",0) self.contents.draw_text(80*0, x+j * i+16, 112, 32,"速度",0) self.contents.draw_text(80*1, x+j * i+16, 112, 32,"魔力",0) self.contents.draw_text(80*2, x+j * i+16, 112, 32,"防禦",0) else self.contents.draw_text(80*0, x+j * i, 112, 32,"力量",0) self.contents.draw_text(80*1, x+j * i, 112, 32,"靈巧",0) self.contents.draw_text(80*2, x+j * i, 112, 32,"速度",0) self.contents.draw_text(80*0, x+j * i+16, 112, 32,"魔力",0) self.contents.draw_text(80*1, x+j * i+16, 112, 32,"物防",0) self.contents.draw_text(80*2, x+j * i+16, 112, 32,"魔防",0) end max = 0 # 獲取當前的裝備品 if @item.is_a?(RPG::Weapon) item1 = $data_weapons[actor.weapon_id] elsif @item.kind == 0 item1 = $data_armors[actor.armor1_id] elsif @item.kind == 1 item1 = $data_armors[actor.armor2_id] elsif @item.kind == 2 item1 = $data_armors[actor.armor3_id] else item1 = $data_armors[actor.armor4_id] max = 1 end t = 0 while t <= max if t == 1 item1 = $data_armors[actor.armor5_id] end # 可以裝備的情況 #if actor.equippable?(@item) # 武器的情況 str1 = item1 != nil ? item1.str_plus : 0 str2 = @item != nil ? @item.str_plus : 0 dex1 = item1 != nil ? item1.dex_plus : 0 dex2 = @item != nil ? @item.dex_plus : 0 agi1 = item1 != nil ? item1.agi_plus : 0 agi2 = @item != nil ? @item.agi_plus : 0 int1 = item1 != nil ? item1.int_plus : 0 int2 = @item != nil ? @item.int_plus : 0 pdef1 = item1 != nil ? item1.pdef : 0 pdef2 = @item != nil ? @item.pdef : 0 mdef1 = item1 != nil ? item1.mdef : 0 mdef2 = @item != nil ? @item.mdef : 0 a = [] if @item.is_a?(RPG::Weapon) atk1 = item1 != nil ? item1.atk : 0 atk2 = @item != nil ? @item.atk : 0 a[0] = atk2 - atk1 a[1] = str2 - str1 a[2] = dex2 - dex1 a[3] = agi2 - agi1 a[4] = int2 - int1 a[5] = pdef2 - pdef1 + mdef2 - mdef1 else a[0] = str2 - str1 a[1] = dex2 - dex1 a[2] = agi2 - agi1 a[3] = int2 - int1 a[4] = pdef2 - pdef1 a[5] = mdef2 - mdef1 end #--------------------------------------------------------------------- q=40-10 ym = -16 for k in 0..5 drawdata(80*(k%3)+q+t*22, ym+j*i+16*(k/3), 32/(max+1),32, a[k], max) end #--------------------------------------------------------------------- self.contents.font.color = Color.new(159,251,162,255) self.contents.font.color = normal_color # 描繪物品 if item1 != nil x = 86 + 80*t y = 32 + j * (i-1) bitmap = RPG::Cache.icon(item1.icon_name) opacity = self.contents.font.color == normal_color ? 255 : 128 self.contents.blt(x, y , bitmap, Rect.new(0, 0, 32, 32), opacity) self.contents.draw_text(x + 26, y, 96/(max+1), 32, item1.name) end t +=1 end i -= 1 end end #-------------------------------------------------------------------------- # ● 設置物品 # item : 新的物品 #-------------------------------------------------------------------------- def item=(item) if @item != item @item = item refresh end end #-------------------------------------------------------------------------- # ● # #-------------------------------------------------------------------------- def drawdata(dx, dy, dw, dh, dd, max) if dd >=0 self.contents.font.color = Color.new(159,251,162,255) self.contents.draw_text(dx, dy, dw, dh,"↑",0) else self.contents.font.color = Color.new(255,0,0,255) self.contents.draw_text(dx, dy, dw, dh,"↓",0) end self.contents.font.color = Color.new(159,251,162,255) self.contents.draw_text(dx+12, dy, dw, dh, dd.abs.to_s,0) end end -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.124.105.92

01/08 01:12, , 1F
太感謝了 我竟然沒想到可以弄成兩組來顯示
01/08 01:12, 1F
文章代碼(AID): #1BHDvffB (RPGMaker)
文章代碼(AID): #1BHDvffB (RPGMaker)