设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

合成腳本商店化

查看数: 3486 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-8-15 16:05

正文摘要:

1.合成腳本商店化 因為不同的事件(NPC)可合成的物品不同 所以想把合成腳本改成像「商店處理」一樣,可以選擇合成物品 2.因為我有用第二貨幣的腳本,所以在合成物品時,會擋到視窗,想更改視窗的大小,請問要怎麼更 ...

回复

a0936459772 发表于 2013-8-23 13:31:05
本帖最后由 a0936459772 于 2013-8-23 13:55 编辑
ji3rul4coco 发表于 2013-8-21 16:50
非~~常感謝!


注意:
此腳本只會在遊戲菜單中同時顯示兩個貨幣
其餘狀況則根據通貨的開關決定顯示的貨幣
關閉時顯示第一貨幣
打開時顯示第二貨幣
效果圖




直接覆蓋你原本的第二貨幣腳本即可
記得把用語和開關ID改回來

RUBY 代码复制
  1. # by 杂兵天下的马甲
  2. # 2013.8.23 由a0936459772 修改
  3. # 因為這是根據私人需求而修改的客製化腳本,若出現任何bug或是腳本衝突,本熊一概沒有任何責任。
  4.  
  5. #第二货币设置
  6. $SECOND_CURRENCY_SWITCH = 10  #打開某號開關後,金錢的增減全變為第二貨幣
  7. $SECOND_CURRENCY_NAME = "結晶" #在道具備註裡打上<第二通貨價格:1>,則道具可以用1第二通貨購買
  8. #第二货币方法
  9. class Game_Party < Game_Unit
  10.   attr_reader    :spegold
  11.   alias initialize_normal_sc initialize
  12.   def initialize
  13.     initialize_normal_sc
  14.     @spegold = 0
  15.   end
  16.   alias gain_gold_normal_sc gain_gold
  17.   def gain_gold(amount)
  18.     if $game_switches[$SECOND_CURRENCY_SWITCH]
  19.       @spegold = [[@spegold + amount, 0].max, max_gold].min
  20.     else
  21.       gain_gold_normal_sc(amount)
  22.     end
  23.   end
  24. end
  25.  
  26. #第二货币的显示
  27.  
  28. class Window_Gold < Window_Base
  29.   #覆盖方法!可能引起冲突
  30.   #--------------------------------------------------------------------------
  31.   # ● 初始化                  
  32.   #--------------------------------------------------------------------------
  33.   def initialize
  34.     super(0, 0, window_width, window_height)
  35.     refresh
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 獲取窗口的高度
  39.   #--------------------------------------------------------------------------
  40.   def window_height
  41.     SceneManager.scene_is?(Scene_Menu) ? fitting_height(2) : fitting_height(1)
  42.   end
  43. #alias refresh_normal_sc refresh
  44.   #--------------------------------------------------------------------------
  45.   # ● 刷新                     
  46.   #--------------------------------------------------------------------------
  47.   def refresh
  48.     contents.clear
  49.     #refresh_normal_sc
  50.     if SceneManager.scene_is?(Scene_Menu)
  51.       draw_currency_value(value, currency_unit, 4, 0, contents.width - 8)
  52.       draw_currency_value($game_party.spegold, $SECOND_CURRENCY_NAME, 4, 24, contents.width - 8)
  53.     elsif $game_switches[$SECOND_CURRENCY_SWITCH]
  54.       draw_currency_value($game_party.spegold, $SECOND_CURRENCY_NAME, 4, 0, contents.width - 8)
  55.     else
  56.       draw_currency_value(value, currency_unit, 4, 0, contents.width - 8)
  57.     end
  58.   end
  59. end
  60.  
  61. #战斗胜利不获得第二货币
  62.  
  63. module BattleManager
  64.   #覆盖方法!可能引起冲突
  65.   def self.gain_gold
  66.     if $game_troop.gold_total > 0
  67.       text = sprintf(Vocab::ObtainGold, $game_troop.gold_total)
  68.       $game_message.add('\.' + text)
  69.       $game_party.gain_gold_normal_sc($game_troop.gold_total)
  70.     end
  71.     wait_for_message
  72.   end
  73. end
  74.  
  75. #用第二货币买东西
  76. module RPG
  77.   class Item
  78.     def price
  79.       if $game_switches[$SECOND_CURRENCY_SWITCH]
  80.         note.split(/[\r\n]+/).each { |line|
  81.           case line
  82.           when /<第二通貨價格:(\d+)>/i
  83.             return $1.to_i
  84.           end
  85.         }
  86.         return 0
  87.       else
  88.         return @price
  89.       end
  90.     end
  91.   end
  92. end
  93.  
  94. #商店中购买灵魄物品显示灵魄
  95.  
  96. class Window_ShopNumber < Window_Selectable
  97.   alias draw_total_price_normal_sc draw_total_price
  98.   def draw_total_price
  99.     if $game_switches[$SECOND_CURRENCY_SWITCH]
  100.       @currency_unit = $SECOND_CURRENCY_NAME
  101.     end
  102.     draw_total_price_normal_sc
  103.   end
  104. end
  105.  
  106. class Scene_Shop < Scene_MenuBase
  107.   alias money_normal_sc money
  108.   def money
  109.     if $game_switches[$SECOND_CURRENCY_SWITCH]
  110.       return $game_party.spegold
  111.     else
  112.       return money_normal_sc
  113.     end
  114.   end
  115.   alias create_gold_window_normal_sc create_gold_window
  116.   def create_gold_window
  117.     create_gold_window_normal_sc
  118.    #@gold_window.y -= 24
  119.   end
  120. end

点评

太謝謝了~  发表于 2013-8-26 21:28

评分

参与人数 1梦石 +2 收起 理由
Sion + 2 认可答案

查看全部评分

a0936459772 发表于 2013-8-22 23:14:27
本帖最后由 a0936459772 于 2013-8-22 23:17 编辑
ji3rul4coco 发表于 2013-8-21 16:50
非~~常感謝!


在你的物品合成腳本中
找到
RUBY 代码复制
  1. Category_w = true #カテゴリウィンドウに「武器」の項目を表示
  2.   Category_a = true #カテゴリウィンドウに「防具」の項目を表示

改成
RUBY 代码复制
  1. Category_w = false #カテゴリウィンドウに「武器」の項目を表示
  2.   Category_a = false #カテゴリウィンドウに「防具」の項目を表示
ji3rul4coco 发表于 2013-8-21 16:50:49
a0936459772 发表于 2013-8-19 19:51
其實你的要求用事件就可以達成

非~~常感謝!

点评

不用了,直接拿吧。  发表于 2013-8-23 13:31
把你的第二貨幣腳本貼上來,我幫你改  发表于 2013-8-23 04:13
ji3rul4coco 发表于 2013-8-21 16:34:16
a0936459772 发表于 2013-8-19 19:51
其實你的要求用事件就可以達成

非~~常感謝!
a0936459772 发表于 2013-8-19 19:51:01
本帖最后由 a0936459772 于 2013-8-19 19:52 编辑
ji3rul4coco 发表于 2013-8-19 16:17
非常感謝ㄋㄟ~

對了,關於第1個問題,我在想是不是可以用開關控制腳本,在呼出合成腳 ...


其實你的要求用事件就可以達成


你的合成腳本應該是這個沒錯
http://izumiwhite.web.fc2.com/rgss3/rgss3_004.html

它裡面有寫
RUBY 代码复制
  1. recipe_all_switch_off #全てのレシピを削除

用來刪除所有已記錄的配方

那麼就在事件裡加入該商店的配方,叫出合成畫面,然後再把所有配方刪除即可(參考圖片)。

点评

補問個問題:因為已經有別的鍛造腳本了,所以想請大大幫忙,能否把合成武器與防具的部分修掉,只專門合成物品?  发表于 2013-8-22 17:15
ji3rul4coco 发表于 2013-8-19 16:17:00
本帖最后由 ji3rul4coco 于 2013-8-19 16:18 编辑
a0936459772 发表于 2013-8-19 01:08
如果是改變貨幣顯示的窗口大小的話
在你的第二貨幣腳本中的約28行做修改


非常感謝ㄋㄟ~

對了,關於第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:08:10
本帖最后由 a0936459772 于 2013-8-19 01:29 编辑
ji3rul4coco 发表于 2013-8-18 00:40
回點評:
在上一個窗口時變成這樣


如果是改變貨幣顯示的窗口大小的話
在你的第二貨幣腳本中的約28行做修改

逗點左邊為寬,右邊為高
直接用常數代入即可


如果是改變顯示"合成"的那個窗口的話
請在你的物品合成腳本851行做修改

RUBY 代码复制
  1. super(x, y, width, height-24) #改成這樣就能正常顯示




我本身也有用第二貨幣腳本
根據我的需求,我把它改成普通商店時金錢窗口只顯示金錢
第二貨幣商店時只顯示第二貨幣
而且金錢窗口也能正常顯示

如果樓主要實現這個功能的話
就回覆或點評一下吧

点评

求大大改的腳本(第二貨幣那個)~~拜託了(上次看太快沒看到)((雙手合十  发表于 2013-8-22 17:58
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-27 01:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表