|
本帖最后由 a0936459772 于 2013-8-23 13:55 编辑 注意: 此腳本只會在遊戲菜單中同時顯示兩個貨幣 其餘狀況則根據通貨的開關決定顯示的貨幣 關閉時顯示第一貨幣 打開時顯示第二貨幣 效果圖
直接覆蓋你原本的第二貨幣腳本即可 記得把用語和開關ID改回來 [pre lang="ruby" line="1"]# by 杂兵天下的马甲 # 2013.8.23 由a0936459772 修改 # 因為這是根據私人需求而修改的客製化腳本,若出現任何bug或是腳本衝突,本熊一概沒有任何責任。 #第二货币设置 $SECOND_CURRENCY_SWITCH = 10 #打開某號開關後,金錢的增減全變為第二貨幣 $SECOND_CURRENCY_NAME = "結晶" #在道具備註裡打上<第二通貨價格:1>,則道具可以用1第二通貨購買 #第二货币方法 class Game_Party < Game_Unit attr_reader :spegold alias initialize_normal_sc initialize def initialize initialize_normal_sc @spegold = 0 end alias gain_gold_normal_sc gain_gold def gain_gold(amount) if $game_switches[$SECOND_CURRENCY_SWITCH] @spegold = [[@spegold + amount, 0].max, max_gold].min else gain_gold_normal_sc(amount) end end end #第二货币的显示 class Window_Gold < Window_Base #覆盖方法!可能引起冲突 #-------------------------------------------------------------------------- # ● 初始化 #-------------------------------------------------------------------------- def initialize super(0, 0, window_width, window_height) refresh end #-------------------------------------------------------------------------- # ● 獲取窗口的高度 #-------------------------------------------------------------------------- def window_height SceneManager.scene_is?(Scene_Menu) ? fitting_height(2) : fitting_height(1) end #alias refresh_normal_sc refresh #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh contents.clear #refresh_normal_sc if SceneManager.scene_is?(Scene_Menu) draw_currency_value(value, currency_unit, 4, 0, contents.width - 8) draw_currency_value($game_party.spegold, $SECOND_CURRENCY_NAME, 4, 24, contents.width - 8) elsif $game_switches[$SECOND_CURRENCY_SWITCH] draw_currency_value($game_party.spegold, $SECOND_CURRENCY_NAME, 4, 0, contents.width - 8) else draw_currency_value(value, currency_unit, 4, 0, contents.width - 8) end end end #战斗胜利不获得第二货币 module BattleManager #覆盖方法!可能引起冲突 def self.gain_gold if $game_troop.gold_total > 0 text = sprintf(Vocab::ObtainGold, $game_troop.gold_total) $game_message.add('\.' + text) $game_party.gain_gold_normal_sc($game_troop.gold_total) end wait_for_message end end #用第二货币买东西 module RPG class Item def price if $game_switches[$SECOND_CURRENCY_SWITCH] note.split(/[\r\n]+/).each { |line| case line when /<第二通貨價格:(\d+)>/i return $1.to_i end } return 0 else return @price end end end end #商店中购买灵魄物品显示灵魄 class Window_ShopNumber < Window_Selectable alias draw_total_price_normal_sc draw_total_price def draw_total_price if $game_switches[$SECOND_CURRENCY_SWITCH] @currency_unit = $SECOND_CURRENCY_NAME end draw_total_price_normal_sc end end class Scene_Shop < Scene_MenuBase alias money_normal_sc money def money if $game_switches[$SECOND_CURRENCY_SWITCH] return $game_party.spegold else return money_normal_sc end end alias create_gold_window_normal_sc create_gold_window def create_gold_window create_gold_window_normal_sc #@gold_window.y -= 24 end end [/pre] |
|
本帖最后由 a0936459772 于 2013-8-22 23:17 编辑 在你的物品合成腳本中 找到 [pre lang="ruby" line="1"] Category_w = true #カテゴリウィンドウに「武器」の項目を表示 Category_a = true #カテゴリウィンドウに「防具」の項目を表示[/pre] 改成 [pre lang="ruby" line="1"] Category_w = false #カテゴリウィンドウに「武器」の項目を表示 Category_a = false #カテゴリウィンドウに「防具」の項目を表示[/pre] |
|
本帖最后由 a0936459772 于 2013-8-19 19:52 编辑 其實你的要求用事件就可以達成
你的合成腳本應該是這個沒錯 http://izumiwhite.web.fc2.com/rgss3/rgss3_004.html 它裡面有寫 [pre lang="ruby" line="1"]recipe_all_switch_off #全てのレシピを削除[/pre] 用來刪除所有已記錄的配方 那麼就在事件裡加入該商店的配方,叫出合成畫面,然後再把所有配方刪除即可(參考圖片)。 |
|
本帖最后由 ji3rul4coco 于 2013-8-19 16:18 编辑 非常感謝ㄋㄟ~ ![]() ![]() 對了,關於第1個問題,我在想是不是可以用開關控制腳本,在呼出合成腳本前設定開關 用開關來達成不同事件有不同合成物的功能 例如說: if(XXXXXXXXXXXXX)開關[0001]=on I_recipe[2] = [30, ["I",29,5]] I_recipe[3] = [30, ["I",30,5]] I_recipe[4] = [30, ["I",31,5]] I_recipe[5] = [30, ["I",32,5]] I_recipe[6] = [30, ["I",33,5]] if(XXXXXXXXXXXXX)開關[0002]=on I_recipe[10] = [30, ["I",37,5]] I_recipe[11] = [30, ["I",38,5]] I_recipe[12] = [30, ["I",39,5]] I_recipe[13] = [30, ["I",40,5]] I_recipe[14] = [30, ["I",41,5]] 之類的(至於if甚麼的...就不是我能寫得出來的了....) |
|
本帖最后由 a0936459772 于 2013-8-19 01:29 编辑 如果是改變貨幣顯示的窗口大小的話 在你的第二貨幣腳本中的約28行做修改
逗點左邊為寬,右邊為高 直接用常數代入即可 如果是改變顯示"合成"的那個窗口的話 請在你的物品合成腳本851行做修改
[pre lang="ruby" line="1"]super(x, y, width, height-24) #改成這樣就能正常顯示[/pre] 我本身也有用第二貨幣腳本 根據我的需求,我把它改成普通商店時金錢窗口只顯示金錢 第二貨幣商店時只顯示第二貨幣 而且金錢窗口也能正常顯示 如果樓主要實現這個功能的話 就回覆或點評一下吧 |