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

Project1

 找回密码
 注册会员
搜索
查看: 2091|回复: 8
打印 上一主题 下一主题

[已经解决] 求助,一个物品合成的脚本

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
跳转到指定楼层
1
发表于 2011-10-21 19:46:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一个很普遍的脚本
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ アイテム合成 - KGC_ComposeItem ◆ VX ◆
  3. #_/    ◇ Last update : 2008/11/02 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  複数のアイテムを合成し、新たなアイテムを作り出す機能を作成します。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★ カスタマイズ項目 - Customize ★
  9. #==============================================================================

  10. module KGC
  11. module ComposeItem
  12.   # ◆ 合成画面呼び出しフラグを表すスイッチ番号
  13.   #  このスイッチを ON にすると、通常のショップの代わりに合成屋が開きます。
  14.   COMPOSE_CALL_SWITCH = 50

  15.   # ◆ 合成レシピ
  16.   #  [費用, "タイプ:ID,個数", ...]
  17.   #  【 費用 】合成費用
  18.   #  【タイプ】合成素材の種類 (I..アイテム  W..武器  A..防具)
  19.   #  【  ID  】合成素材のID (↑と対応)
  20.   #  【 個数 】合成素材の必要数
  21.   #  "タイプ:ID,個数" はいくつでも指定できます。
  22.   #  個数を省略して "タイプ:ID" と書いた場合、個数は 1 扱いとなります。
  23.   #  個数を 0 にした場合、1 個以上持っていれば何度でも合成できます。
  24.   #  レシピ配列は、添字がアイテム・武器・防具IDに対応しています。
  25.   RECIPE_ITEM   = []  # アイテム
  26.   RECIPE_WEAPON = []  # 武器
  27.   RECIPE_ARMOR  = []  # 防具
  28.   # ここから下に合成レシピを定義。
  29.   #  <設定例>
  30.   #  アイテムID:8 の合成レシピ
  31.   #  アイテムID 2, 4, 7 を 1 個ずつ消費。無料。
  32.   RECIPE_ITEM[8] = [0, "I:2", "I:4", "I:7"]
  33.   #  武器ID:16 の合成レシピ
  34.   #  武器ID:10 を 1 個、アイテムID:16 を 2 個消費。800 G。
  35.   RECIPE_WEAPON[18] = [800, "W:10", "I:16,2"]
  36.   #  防具ID:29 の合成レシピ
  37.   #  防具ID:25 を 1 個、アイテムID:8 を 3 個消費。2000 G。
  38.   RECIPE_ARMOR[29] = [2000, "A:25", "I:8,3"]

  39.   # ◆ 合成コマンド名
  40.   #  "購入する" コマンドの位置に表示されます。
  41.   #  ※ 他のコマンド名は [Vocab] で変更可能。
  42.   VOCAB_COMPOSE_ITEM = "合成する"
  43.   # ◆ 合成アイテム情報切り替えボタン
  44.   #  「素材リスト <--> 能力値変化(装備品のみ)」を切り替えるボタン。
  45.   #  使用しない場合は nil を指定。
  46.   SWITCH_INFO_BUTTON = Input::X

  47.   # ◆ 必要素材リストをコンパクトにする
  48.   #  素材数が多い場合は true にしてください。
  49.   COMPACT_MATERIAL_LIST = true
  50.   # ◆ コマンドウィンドウを表示しない
  51.   #  true  : XP 版と同様のスタイル
  52.   #  false : VX 仕様
  53.   HIDE_COMMAND_WINDOW   = false
  54.   # ◆ 所持金ウィンドウを表示しない
  55.   #  true  : 消える
  56.   #  false : 表示
  57.   #  HIDE_COMMAND_WINDOW が false のときは、常に false 扱いとなります。
  58.   HIDE_GOLD_WINDOW      = false
  59.   # ◆ 合成費用が 0 の場合、費用を表示しない
  60.   #  true  : 表示しない
  61.   #  false : 0 と表示
  62.   HIDE_ZERO_COST        = true

  63.   # ◆ 合成済みのレシピは常に表示する
  64.   #  true  : 一度でも合成したことがあれば常にリストに表示
  65.   #  false : 合成したことがあっても↓の条件に従う
  66.   SHOW_COMPOSED_RECIPE      = true
  67.   # ◆ 合成費用不足のレシピを隠す
  68.   #  true  : 費用不足ならリストに表示しない
  69.   #  false : 費用不足でも表示
  70.   HIDE_SHORTAGE_COST        = false
  71.   # ◆ 合成素材不足のレシピを隠す
  72.   #  true  : 素材不足ならリストに表示しない
  73.   #  false : 素材不足でも表示
  74.   HIDE_SHORTAGE_MATERIAL    = true
  75.   # ◆ 「判明・解禁・存在」機能を使用する
  76.   #  true  : 判明・解禁・存在するまで表示しない
  77.   #  false : 素材さえあれば合成可能
  78.   #  true の場合、仕様上強制的に
  79.   #   HIDE_SHORTAGE_COST     = false
  80.   #   HIDE_SHORTAGE_MATERIAL = false
  81.   #  という扱いになります。
  82.   NEED_RECIPE_EXIST         = true

  83.   # ◆ 合成したことがないレシピのアイテム名を隠す
  84.   MASK_UNKNOWN_RECIPE_NAME     = true
  85.   # ◆ 合成したことがないレシピに表示する名前
  86.   #  1文字だけ指定すると、アイテム名と同じ文字数に拡張されます。
  87.   UNKNOWN_NAME_MASK            = "?"
  88.   # ◆ 合成したことがないレシピのヘルプを隠す
  89.   HIDE_UNKNOWN_RECIPE_HELP     = true
  90.   # ◆ 合成したことがないレシピに表示するヘルプ
  91.   UNKNOWN_RECIPE_HELP          = "合成したことがありません。"
  92.   # ◆ 判明・解禁していないレシピの素材を隠す
  93.   #  NEED_RECIPE_EXIST = false の場合、常に false 扱いとなります。
  94.   HIDE_UNKNOWN_RECIPE_MATERIAL = true
  95.   # ◆ 素材を隠す場合の表示文字列
  96.   UNKNOWN_RECIPE_MATERIAL      = "????????"
  97. end
  98. end

  99. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  100. $imported = {} if $imported == nil
  101. $imported["ComposeItem"] = true

  102. module KGC::ComposeItem
  103.   unless NEED_RECIPE_EXIST
  104.     HIDE_UNKNOWN_RECIPE_MATERIAL = false
  105.   end

  106.   module Regexp
  107.     # レシピ
  108.     RECIPE = /([IWA])\s*:\s*(\d+)(\s*,\s*\d+)?/i
  109.   end
  110. end

  111. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  112. #==============================================================================
  113. # □ KGC::Commands
  114. #==============================================================================

  115. module KGC
  116. module Commands
  117.   module_function
  118.   #--------------------------------------------------------------------------
  119.   # ○ レシピ判明フラグを設定
  120.   #     type    : レシピのタイプ (0..アイテム  1..武器  2..防具)
  121.   #     id      : アイテムの ID
  122.   #     enabled : true..判明  false..未判明
  123.   #--------------------------------------------------------------------------
  124.   def set_recipe_cleared(type, id, enabled = true)
  125.     item = nil
  126.     case type
  127.     when 0, :item    # アイテム
  128.       item = $data_items[id]
  129.     when 1, :weapon  # 武器
  130.       item = $data_weapons[id]
  131.     when 2, :armor   # 防具
  132.       item = $data_armors[id]
  133.     end

  134.     $game_party.set_recipe_cleared(item, enabled) if item != nil
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ○ レシピ解禁フラグを設定
  138.   #     type    : レシピのタイプ (0..アイテム  1..武器  2..防具)
  139.   #     id      : アイテムの ID
  140.   #     enabled : true..解禁  false..未解禁
  141.   #--------------------------------------------------------------------------
  142.   def set_recipe_opened(type, id, enabled = true)
  143.     item = nil
  144.     case type
  145.     when 0, :item    # アイテム
  146.       item = $data_items[id]
  147.     when 1, :weapon  # 武器
  148.       item = $data_weapons[id]
  149.     when 2, :armor   # 防具
  150.       item = $data_armors[id]
  151.     end

  152.     $game_party.set_recipe_opened(item, enabled) if item != nil
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ○ レシピ存在フラグを設定
  156.   #     type    : レシピのタイプ (0..アイテム  1..武器  2..防具)
  157.   #     id      : アイテムの ID
  158.   #     enabled : true or false
  159.   #--------------------------------------------------------------------------
  160.   def set_recipe_exist(type, id, enabled = true)
  161.     item = nil
  162.     case type
  163.     when 0, :item    # アイテム
  164.       item = $data_items[id]
  165.     when 1, :weapon  # 武器
  166.       item = $data_weapons[id]
  167.     when 2, :armor   # 防具
  168.       item = $data_armors[id]
  169.     end

  170.     $game_party.set_recipe_exist(item, enabled) if item != nil
  171.   end
  172. end
  173. end

  174. class Game_Interpreter
  175.   include KGC::Commands
  176. end

  177. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  178. #==============================================================================
  179. # ■ Vocab
  180. #==============================================================================

  181. module Vocab
  182.   # 合成画面
  183.   ComposeItem = KGC::ComposeItem::VOCAB_COMPOSE_ITEM
  184. end

  185. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  186. #==============================================================================
  187. # ■ RPG::BaseItem
  188. #==============================================================================

  189. class RPG::BaseItem
  190.   #--------------------------------------------------------------------------
  191.   # ○ クラス変数
  192.   #--------------------------------------------------------------------------
  193.   @@__masked_name =
  194.     KGC::ComposeItem::UNKNOWN_NAME_MASK  # マスク名
  195.   @@__expand_masked_name = false         # マスク名拡張表示フラグ

  196.   if @@__masked_name != nil
  197.     @@__expand_masked_name = (@@__masked_name.scan(/./).size == 1)
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ○ アイテム合成のキャッシュ生成
  201.   #--------------------------------------------------------------------------
  202.   def create_compose_item_cache
  203.     @__compose_cost = 0
  204.     @__compose_materials = []

  205.     # レシピ取得
  206.     recipe = nil
  207.     case self
  208.     when RPG::Item    # アイテム
  209.       recipe = KGC::ComposeItem::RECIPE_ITEM[self.id]
  210.     when RPG::Weapon  # 武器
  211.       recipe = KGC::ComposeItem::RECIPE_WEAPON[self.id]
  212.     when RPG::Armor   # 防具
  213.       recipe = KGC::ComposeItem::RECIPE_ARMOR[self.id]
  214.     end
  215.     return if recipe == nil
  216.     recipe = recipe.dup

  217.     @__compose_cost = recipe.shift
  218.     # 素材リストを作成
  219.     recipe.each { |r|
  220.       if r =~ KGC::ComposeItem::Regexp::RECIPE
  221.         material = Game_ComposeMaterial.new
  222.         material.kind = $1.upcase                    # 素材の種類を取得
  223.         material.id = $2.to_i                        # 素材の ID を取得
  224.         if $3 != nil
  225.           material.number = [$3[/\d+/].to_i, 0].max  # 必要数を取得
  226.         end
  227.         @__compose_materials << material
  228.       end
  229.     }
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # ○ マスク名
  233.   #--------------------------------------------------------------------------
  234.   def masked_name
  235.     if @@__expand_masked_name
  236.       # マスク名を拡張して表示
  237.       return @@__masked_name * self.name.scan(/./).size
  238.     else
  239.       return @@__masked_name
  240.     end
  241.   end
  242.   #--------------------------------------------------------------------------
  243.   # ○ 合成用費用
  244.   #--------------------------------------------------------------------------
  245.   def compose_cost
  246.     create_compose_item_cache if @__compose_cost == nil
  247.     return @__compose_cost
  248.   end
  249.   #--------------------------------------------------------------------------
  250.   # ○ 合成用素材リスト
  251.   #--------------------------------------------------------------------------
  252.   def compose_materials
  253.     create_compose_item_cache if @__compose_materials == nil
  254.     return @__compose_materials
  255.   end
  256.   #--------------------------------------------------------------------------
  257.   # ○ 合成アイテムか
  258.   #--------------------------------------------------------------------------
  259.   def is_compose?
  260.     return !compose_materials.empty?
  261.   end
  262. end

  263. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  264. #==============================================================================
  265. # ■ Game_Party
  266. #==============================================================================

  267. class Game_Party < Game_Unit
  268.   #--------------------------------------------------------------------------
  269.   # ○ 合成済みフラグをクリア
  270.   #--------------------------------------------------------------------------
  271.   def clear_composed_flag
  272.     @item_composed = {}
  273.     @weapon_composed = {}
  274.     @armor_composed = {}
  275.   end
  276.   #--------------------------------------------------------------------------
  277.   # ○ レシピ判明フラグをクリア
  278.   #--------------------------------------------------------------------------
  279.   def clear_recipe_cleared_flag
  280.     @item_recipe_cleared = {}
  281.     @weapon_recipe_cleared = {}
  282.     @armor_recipe_cleared = {}
  283.   end
  284.   #--------------------------------------------------------------------------
  285.   # ○ レシピ解禁フラグをクリア
  286.   #--------------------------------------------------------------------------
  287.   def clear_recipe_opened_flag
  288.     @item_recipe_opened = {}
  289.     @weapon_recipe_opened = {}
  290.     @armor_recipe_opened = {}
  291.   end
  292.   #--------------------------------------------------------------------------
  293.   # ○ レシピ存在フラグをクリア
  294.   #--------------------------------------------------------------------------
  295.   def clear_recipe_exist_flag
  296.     @item_recipe_exist = {}
  297.     @weapon_recipe_exist = {}
  298.     @armor_recipe_exist = {}
  299.   end
  300.   #--------------------------------------------------------------------------
  301.   # ○ アイテムの合成済みフラグを設定
  302.   #     item : アイテム
  303.   #     flag : true..合成済み  false..未合成
  304.   #--------------------------------------------------------------------------
  305.   def set_item_composed(item, flag = true)
  306.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  307.     return false unless item.is_compose?           # 合成アイテム以外

  308.     # 合成済みフラグを格納するハッシュを作成
  309.     clear_composed_flag if @item_composed == nil

  310.     # 合成済みフラグをセット
  311.     case item
  312.     when RPG::Item    # アイテム
  313.       @item_composed[item.id] = flag
  314.     when RPG::Weapon  # 武器
  315.       @weapon_composed[item.id] = flag
  316.     when RPG::Armor   # 防具
  317.       @armor_composed[item.id] = flag
  318.     end
  319.   end
  320.   #--------------------------------------------------------------------------
  321.   # ○ アイテムの合成済み判定
  322.   #     item : アイテム
  323.   #--------------------------------------------------------------------------
  324.   def item_composed?(item)
  325.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  326.     return false unless item.is_compose?           # 合成アイテム以外

  327.     # 合成済みフラグを格納するハッシュを作成
  328.     clear_composed_flag if @item_composed == nil

  329.     # 合成済み判定
  330.     case item
  331.     when RPG::Item    # アイテム
  332.       return @item_composed[item.id]
  333.     when RPG::Weapon  # 武器
  334.       return @weapon_composed[item.id]
  335.     when RPG::Armor   # 防具
  336.       return @armor_composed[item.id]
  337.     end
  338.     return false
  339.   end
  340.   #--------------------------------------------------------------------------
  341.   # ○ アイテムの合成済みフラグを設定
  342.   #     item : アイテム
  343.   #     flag : true..合成済み  false..未合成
  344.   #--------------------------------------------------------------------------
  345.   def set_item_composed(item, flag = true)
  346.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  347.     return false unless item.is_compose?           # 合成アイテム以外

  348.     # 合成済みフラグを格納するハッシュを作成
  349.     clear_composed_flag if @item_composed == nil

  350.     # 合成済みフラグをセット
  351.     case item
  352.     when RPG::Item    # アイテム
  353.       @item_composed[item.id] = flag
  354.     when RPG::Weapon  # 武器
  355.       @weapon_composed[item.id] = flag
  356.     when RPG::Armor   # 防具
  357.       @armor_composed[item.id] = flag
  358.     end
  359.   end
  360.   #--------------------------------------------------------------------------
  361.   # ○ レシピ判明判定
  362.   #     item : アイテム
  363.   #--------------------------------------------------------------------------
  364.   def recipe_cleared?(item)
  365.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  366.     return false unless item.is_compose?           # 合成アイテム以外

  367.     # 判明フラグを格納するハッシュを作成
  368.     clear_recipe_cleared_flag if @item_recipe_cleared == nil

  369.     # 判定
  370.     case item
  371.     when RPG::Item    # アイテム
  372.       return @item_recipe_cleared[item.id]
  373.     when RPG::Weapon  # 武器
  374.       return @weapon_recipe_cleared[item.id]
  375.     when RPG::Armor   # 防具
  376.       return @armor_recipe_cleared[item.id]
  377.     end
  378.     return false
  379.   end
  380.   #--------------------------------------------------------------------------
  381.   # ○ アイテムの判明フラグを設定
  382.   #     item : アイテム
  383.   #     flag : true..判明  false..未判明
  384.   #--------------------------------------------------------------------------
  385.   def set_recipe_cleared(item, flag = true)
  386.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  387.     return false unless item.is_compose?           # 合成アイテム以外

  388.     # 判明フラグを格納するハッシュを作成
  389.     clear_recipe_cleared_flag if @item_recipe_cleared == nil

  390.     # 判明フラグをセット
  391.     case item
  392.     when RPG::Item    # アイテム
  393.       @item_recipe_cleared[item.id] = flag
  394.     when RPG::Weapon  # 武器
  395.       @weapon_recipe_cleared[item.id] = flag
  396.     when RPG::Armor   # 防具
  397.       @armor_recipe_cleared[item.id] = flag
  398.     end
  399.   end
  400.   #--------------------------------------------------------------------------
  401.   # ○ レシピ解禁判定
  402.   #     item : アイテム
  403.   #--------------------------------------------------------------------------
  404.   def recipe_opened?(item)
  405.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  406.     return false unless item.is_compose?           # 合成アイテム以外

  407.     # 解禁フラグを格納するハッシュを作成
  408.     clear_recipe_opened_flag if @item_recipe_opened == nil

  409.     # 判定
  410.     case item
  411.     when RPG::Item    # アイテム
  412.       return @item_recipe_opened[item.id]
  413.     when RPG::Weapon  # 武器
  414.       return @weapon_recipe_opened[item.id]
  415.     when RPG::Armor   # 防具
  416.       return @armor_recipe_opened[item.id]
  417.     end
  418.     return false
  419.   end
  420.   #--------------------------------------------------------------------------
  421.   # ○ アイテムの解禁フラグを設定
  422.   #     item : アイテム
  423.   #     flag : true..解禁  false..未解禁
  424.   #--------------------------------------------------------------------------
  425.   def set_recipe_opened(item, flag = true)
  426.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  427.     return false unless item.is_compose?           # 合成アイテム以外

  428.     # 解禁フラグを格納するハッシュを作成
  429.     clear_recipe_opened_flag if @item_recipe_opened == nil

  430.     # 解禁フラグをセット
  431.     case item
  432.     when RPG::Item    # アイテム
  433.       @item_recipe_opened[item.id] = flag
  434.     when RPG::Weapon  # 武器
  435.       @weapon_recipe_opened[item.id] = flag
  436.     when RPG::Armor   # 防具
  437.       @armor_recipe_opened[item.id] = flag
  438.     end
  439.   end
  440.   #--------------------------------------------------------------------------
  441.   # ○ レシピ存在判定
  442.   #     item : アイテム
  443.   #--------------------------------------------------------------------------
  444.   def recipe_exist?(item)
  445.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  446.     return false unless item.is_compose?           # 合成アイテム以外

  447.     # 存在フラグを格納するハッシュを作成
  448.     clear_recipe_exist_flag if @item_recipe_exist == nil

  449.     # 判定
  450.     case item
  451.     when RPG::Item    # アイテム
  452.       return @item_recipe_exist[item.id]
  453.     when RPG::Weapon  # 武器
  454.       return @weapon_recipe_exist[item.id]
  455.     when RPG::Armor   # 防具
  456.       return @armor_recipe_exist[item.id]
  457.     end
  458.     return false
  459.   end
  460.   #--------------------------------------------------------------------------
  461.   # ○ アイテムの存在フラグを設定
  462.   #     item : アイテム
  463.   #     flag : true..存在  false..存在しない
  464.   #--------------------------------------------------------------------------
  465.   def set_recipe_exist(item, flag = true)
  466.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  467.     return false unless item.is_compose?           # 合成アイテム以外

  468.     # 存在フラグを格納するハッシュを作成
  469.     clear_recipe_exist_flag if @item_recipe_exist == nil

  470.     # 存在フラグをセット
  471.     case item
  472.     when RPG::Item    # アイテム
  473.       @item_recipe_exist[item.id] = flag
  474.     when RPG::Weapon  # 武器
  475.       @weapon_recipe_exist[item.id] = flag
  476.     when RPG::Armor   # 防具
  477.       @armor_recipe_exist[item.id] = flag
  478.     end
  479.   end
  480.   #--------------------------------------------------------------------------
  481.   # ○ アイテム名マスク判定
  482.   #     item : アイテム
  483.   #--------------------------------------------------------------------------
  484.   def item_name_mask?(item)
  485.     return false unless KGC::ComposeItem::MASK_UNKNOWN_RECIPE_NAME
  486.     return false if item_composed?(item)   # 合成済み
  487.     return false if recipe_cleared?(item)  # 判明済み

  488.     return true
  489.   end
  490.   #--------------------------------------------------------------------------
  491.   # ○ 素材非表示判定
  492.   #     item : アイテム
  493.   #--------------------------------------------------------------------------
  494.   def item_compose_material_mask?(item)
  495.     return false unless KGC::ComposeItem::HIDE_UNKNOWN_RECIPE_MATERIAL
  496.     return false if item_composed?(item)   # 合成済み
  497.     return false if recipe_cleared?(item)  # 判明済み
  498.     return false if recipe_opened?(item)   # 解禁済み

  499.     return true
  500.   end
  501.   #--------------------------------------------------------------------------
  502.   # ○ アイテムの合成可能判定
  503.   #     item : アイテム
  504.   #--------------------------------------------------------------------------
  505.   def item_can_compose?(item)
  506.     return false unless item_compose_cost_satisfy?(item)
  507.     return false unless item_compose_material_satisfy?(item)

  508.     return true
  509.   end
  510.   #--------------------------------------------------------------------------
  511.   # ○ 合成アイテムの資金充足判定
  512.   #     item : アイテム
  513.   #--------------------------------------------------------------------------
  514.   def item_compose_cost_satisfy?(item)
  515.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  516.     return false unless item.is_compose?           # 合成アイテム以外

  517.     return (gold >= item.compose_cost)
  518.   end
  519.   #--------------------------------------------------------------------------
  520.   # ○ 合成アイテムの素材充足判定
  521.   #     item : アイテム
  522.   #--------------------------------------------------------------------------
  523.   def item_compose_material_satisfy?(item)
  524.     return false unless item.is_a?(RPG::BaseItem)  # アイテム以外
  525.     return false unless item.is_compose?           # 合成アイテム以外

  526.     item.compose_materials.each { |material|
  527.       num = item_number(material.item)
  528.       return false if num < material.number || num == 0  # 素材不足
  529.     }
  530.     return true
  531.   end
  532.   #--------------------------------------------------------------------------
  533.   # ○ アイテムの合成可能数を取得
  534.   #     item : アイテム
  535.   #--------------------------------------------------------------------------
  536.   def number_of_composable(item)
  537.     return 0 unless item.is_a?(RPG::BaseItem)  # アイテム以外
  538.     return 0 unless item.is_compose?           # 合成アイテム以外

  539.     number = ($imported["LimitBreak"] ? item.number_limit : 99)
  540.     if item.compose_cost > 0
  541.       number = [number, gold / item.compose_cost].min
  542.     end
  543.     # 素材数判定
  544.     item.compose_materials.each { |material|
  545.       next if material.number == 0  # 必要数 0 は無視
  546.       n = item_number(material.item) / material.number
  547.       number = [number, n].min
  548.     }
  549.     return number
  550.   end
  551. end

  552. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  553. #==============================================================================
  554. # □ Game_ComposeMaterial
  555. #------------------------------------------------------------------------------
  556. #   合成素材の情報を格納するクラスです。
  557. #==============================================================================

  558. class Game_ComposeMaterial
  559.   #--------------------------------------------------------------------------
  560.   # ○ 公開インスタンス変数
  561.   #--------------------------------------------------------------------------
  562.   attr_accessor :kind                     # アイテムの種類 (/[IWA]/)
  563.   attr_accessor :id                       # アイテムの ID
  564.   attr_accessor :number                   # 必要数
  565.   #--------------------------------------------------------------------------
  566.   # ○ オブジェクト初期化
  567.   #--------------------------------------------------------------------------
  568.   def initialize
  569.     @kind = "I"
  570.     @id = 0
  571.     @number = 1
  572.   end
  573.   #--------------------------------------------------------------------------
  574.   # ○ アイテム取得
  575.   #--------------------------------------------------------------------------
  576.   def item
  577.     case @kind
  578.     when "I"  # アイテム
  579.       return $data_items[@id]
  580.     when "W"  # 武器
  581.       return $data_weapons[@id]
  582.     when "A"  # 防具
  583.       return $data_armors[@id]
  584.     else
  585.       return nil
  586.     end
  587.   end
  588. end

  589. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  590. #==============================================================================
  591. # ■ Window_Base
  592. #==============================================================================

  593. class Window_Base < Window
  594.   #--------------------------------------------------------------------------
  595.   # ○ マスク済みアイテム名の描画
  596.   #     item    : アイテム (スキル、武器、防具でも可)
  597.   #     x       : 描画先 X 座標
  598.   #     y       : 描画先 Y 座標
  599.   #     enabled : 有効フラグ。false のとき半透明で描画
  600.   #--------------------------------------------------------------------------
  601.   def draw_masked_item_name(item, x, y, enabled = true)
  602.     return if item == nil

  603.     draw_icon(item.icon_index, x, y, enabled)
  604.     self.contents.font.color = normal_color
  605.     self.contents.font.color.alpha = enabled ? 255 : 128
  606.     self.contents.draw_text(x + 24, y, 172, WLH, item.masked_name)
  607.   end
  608. end

  609. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  610. #==============================================================================
  611. # □ Window_ComposeNumber
  612. #------------------------------------------------------------------------------
  613. #   合成画面で、合成するアイテムの個数を入力するウィンドウです。
  614. #==============================================================================

  615. class Window_ComposeNumber < Window_ShopNumber
  616.   #--------------------------------------------------------------------------
  617.   # ○ 公開インスタンス変数
  618.   #--------------------------------------------------------------------------
  619.   attr_accessor :sell_flag                # 売却フラグ
  620.   #--------------------------------------------------------------------------
  621.   # ● オブジェクト初期化
  622.   #     x : ウィンドウの X 座標
  623.   #     y : ウィンドウの Y 座標
  624.   #--------------------------------------------------------------------------
  625.   alias initialize_KGC_ComposeItem initialize unless $@
  626.   def initialize(x, y)
  627.     @sell_flag = false

  628.     initialize_KGC_ComposeItem(x, y)
  629.   end
  630.   #--------------------------------------------------------------------------
  631.   # ● リフレッシュ
  632.   #--------------------------------------------------------------------------
  633.   def refresh
  634.     y = 96
  635.     self.contents.clear
  636.     if @sell_flag || !$game_party.item_name_mask?(@item)
  637.       draw_item_name(@item, 0, y)
  638.     else
  639.       draw_masked_item_name(@item, 0, y)
  640.     end
  641.     self.contents.font.color = normal_color
  642.     self.contents.draw_text(212, y, 20, WLH, "×")
  643.     self.contents.draw_text(248, y, 20, WLH, @number, 2)
  644.     self.cursor_rect.set(244, y, 28, WLH)
  645.     if !KGC::ComposeItem::HIDE_ZERO_COST || @price > 0
  646.       draw_currency_value(@price * @number, 4, y + WLH * 2, 264)
  647.     end
  648.   end
  649. end

  650. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  651. #==============================================================================
  652. # □ Window_ComposeItem
  653. #------------------------------------------------------------------------------
  654. #   合成画面で、合成できる商品の一覧を表示するウィンドウです。
  655. #==============================================================================

  656. class Window_ComposeItem < Window_ShopBuy
  657.   #--------------------------------------------------------------------------
  658.   # ● リフレッシュ
  659.   #--------------------------------------------------------------------------
  660.   def refresh
  661.     @data = []
  662.     for goods_item in @shop_goods
  663.       case goods_item[0]
  664.       when 0
  665.         item = $data_items[goods_item[1]]
  666.       when 1
  667.         item = $data_weapons[goods_item[1]]
  668.       when 2
  669.         item = $data_armors[goods_item[1]]
  670.       end
  671.       # 合成アイテムのみ追加
  672.       @data.push(item) if include?(item)
  673.     end
  674.     @item_max = @data.size
  675.     create_contents
  676.     for i in 0...@item_max
  677.       draw_item(i)
  678.     end
  679.   end
  680.   #--------------------------------------------------------------------------
  681.   # ○ アイテムをリストに含めるかどうか
  682.   #     item : アイテム
  683.   #--------------------------------------------------------------------------
  684.   def include?(item)
  685.     return false if item == nil           # アイテムが nil なら含めない
  686.     return false unless item.is_compose?  # 合成アイテム以外は含めない

  687.     # 合成済みなら表示
  688.     if KGC::ComposeItem::SHOW_COMPOSED_RECIPE
  689.       return true if $game_party.item_composed?(item)
  690.     end
  691.     # 判明 or 解禁 or 存在済みなら表示
  692.     exist_flag = $game_party.recipe_cleared?(item) ||
  693.       $game_party.recipe_opened?(item) || $game_party.recipe_exist?(item)
  694.     if KGC::ComposeItem::NEED_RECIPE_EXIST && exist_flag
  695.       return true
  696.     end
  697.     # 費用不足なら隠す
  698.     if KGC::ComposeItem::HIDE_SHORTAGE_COST
  699.       return false unless $game_party.item_compose_cost_satisfy?(item)
  700.     end
  701.     # 素材不足なら隠す
  702.     if KGC::ComposeItem::HIDE_SHORTAGE_MATERIAL
  703.       return false unless $game_party.item_compose_material_satisfy?(item)
  704.     end

  705.     if KGC::ComposeItem::NEED_RECIPE_EXIST
  706.       # 判明 or 解禁 or 存在していない
  707.       return false unless exist_flag
  708.     end

  709.     return true
  710.   end
  711.   #--------------------------------------------------------------------------
  712.   # ○ アイテムを許可状態で表示するかどうか
  713.   #     item : アイテム
  714.   #--------------------------------------------------------------------------
  715.   def enable?(item)
  716.     return $game_party.item_can_compose?(item)
  717.   end
  718.   #--------------------------------------------------------------------------
  719.   # ● 項目の描画
  720.   #     index : 項目番号
  721.   #--------------------------------------------------------------------------
  722.   def draw_item(index)
  723.     item = @data[index]
  724.     number = $game_party.item_number(item)
  725.     limit = ($imported["LimitBreak"] ? item.number_limit : 99)
  726.     rect = item_rect(index)
  727.     self.contents.clear_rect(rect)
  728.     if $game_party.item_name_mask?(item)
  729.       draw_masked_item_name(item, rect.x, rect.y, enable?(item))
  730.     else
  731.       draw_item_name(item, rect.x, rect.y, enable?(item))
  732.     end
  733.     # 費用を描画
  734.     if !KGC::ComposeItem::HIDE_ZERO_COST || item.compose_cost > 0
  735.       rect.width -= 4
  736.       self.contents.draw_text(rect, item.compose_cost, 2)
  737.     end
  738.   end

  739.   if KGC::ComposeItem::HIDE_UNKNOWN_RECIPE_HELP
  740.   #--------------------------------------------------------------------------
  741.   # ● ヘルプテキスト更新
  742.   #--------------------------------------------------------------------------
  743.   def update_help
  744.     item = (index >= 0 ? @data[index] : nil)
  745.     if item == nil || !$game_party.item_name_mask?(item)
  746.       # アイテムが nil or マスクなしなら [Window_ShopBuy] に任せる
  747.       super
  748.     else
  749.       @help_window.set_text(KGC::ComposeItem::UNKNOWN_RECIPE_HELP)
  750.     end
  751.   end
  752.   end
  753. end

  754. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  755. #==============================================================================
  756. # □ Window_ComposeStatus
  757. #------------------------------------------------------------------------------
  758. #  合成画面で、素材の所持数や必要数を表示するウィンドウです。
  759. #==============================================================================

  760. class Window_ComposeStatus < Window_ShopStatus
  761.   #--------------------------------------------------------------------------
  762.   # ○ 表示モード
  763.   #--------------------------------------------------------------------------
  764.   MODE_MATERIAL = 0  # 素材リスト
  765.   MODE_STATUS   = 1  # パーティのステータス
  766.   #--------------------------------------------------------------------------
  767.   # ● オブジェクト初期化
  768.   #     x : ウィンドウの X 座標
  769.   #     y : ウィンドウの Y 座標
  770.   #--------------------------------------------------------------------------
  771.   def initialize(x, y)
  772.     @mode = MODE_MATERIAL
  773.     super(x, y)
  774.   end
  775.   #--------------------------------------------------------------------------
  776.   # ○ モード変更
  777.   #--------------------------------------------------------------------------
  778.   def change_mode
  779.     case @mode
  780.     when MODE_MATERIAL
  781.       @mode = MODE_STATUS
  782.     when MODE_STATUS
  783.       @mode = MODE_MATERIAL
  784.     end
  785.     self.oy = 0
  786.     refresh
  787.   end
  788.   #--------------------------------------------------------------------------
  789.   # ● ウィンドウ内容の作成
  790.   #--------------------------------------------------------------------------
  791.   def create_contents
  792.     if @mode == MODE_STATUS
  793.       super
  794.       return
  795.     end

  796.     self.contents.dispose
  797.     ch = height - 32
  798.     if @item != nil
  799.       mag = (KGC::ComposeItem::COMPACT_MATERIAL_LIST ? 1 : 2)
  800.       ch = [ch, WLH * (mag + @item.compose_materials.size * mag)].max
  801.     end
  802.     self.contents = Bitmap.new(width - 32, ch)
  803.   end
  804.   #--------------------------------------------------------------------------
  805.   # ● リフレッシュ
  806.   #--------------------------------------------------------------------------
  807.   def refresh
  808.     create_contents
  809.     self.contents.font.size = Font.default_size
  810.     case @mode
  811.     when MODE_MATERIAL
  812.       draw_material_list
  813.     when MODE_STATUS
  814.       super
  815.     end
  816.   end
  817.   #--------------------------------------------------------------------------
  818.   # ○ 素材リストを描画
  819.   #--------------------------------------------------------------------------
  820.   def draw_material_list
  821.     return if @item == nil

  822.     number = $game_party.item_number(@item)
  823.     self.contents.font.color = system_color
  824.     self.contents.draw_text(4, 0, 200, WLH, Vocab::Possession)
  825.     self.contents.font.color = normal_color
  826.     self.contents.draw_text(4, 0, 200, WLH, number, 2)

  827.     # 不明な素材を隠す
  828.     if $game_party.item_compose_material_mask?(@item)
  829.       self.contents.draw_text(4, WLH * 2, 200, WLH,
  830.         KGC::ComposeItem::UNKNOWN_RECIPE_MATERIAL, 1)
  831.       return
  832.     end

  833.     self.contents.font.size = 16 if KGC::ComposeItem::COMPACT_MATERIAL_LIST
  834.     mag = (KGC::ComposeItem::COMPACT_MATERIAL_LIST ? 1 : 2)
  835.     @item.compose_materials.each_with_index { |material, i|
  836.       y = WLH * (mag + i * mag)
  837.       draw_material_info(0, y, material)
  838.     }
  839.   end
  840.   #--------------------------------------------------------------------------
  841.   # ○ 素材情報を描画
  842.   #--------------------------------------------------------------------------
  843.   def draw_material_info(x, y, material)
  844.     m_item = material.item
  845.     return if m_item == nil
  846.     number = $game_party.item_number(m_item)
  847.     enabled = (number > 0 && number >= material.number)
  848.     draw_item_name(m_item, x, y, enabled)
  849.     if KGC::ComposeItem::COMPACT_MATERIAL_LIST
  850.       m_number = (material.number == 0 ? "-" : sprintf("%d", material.number))
  851.       self.contents.draw_text(x, y, width - 32, WLH,
  852.         sprintf("%s/%d", m_number, number), 2)
  853.     else
  854.       m_number = (material.number == 0 ? "-" : sprintf("%2d", material.number))
  855.       self.contents.draw_text(x, y + WLH, width - 32, WLH,
  856.         sprintf("%2s/%2d", m_number, number), 2)
  857.     end
  858.   end
  859. end

  860. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  861. #==============================================================================
  862. # ■ Scene_Map
  863. #==============================================================================

  864. class Scene_Map < Scene_Base
  865.   #--------------------------------------------------------------------------
  866.   # ● ショップ画面への切り替え
  867.   #--------------------------------------------------------------------------
  868.   alias call_shop_KGC_ComposeItem call_shop
  869.   def call_shop
  870.     # 合成画面を呼び出した場合
  871.     if $game_switches[KGC::ComposeItem::COMPOSE_CALL_SWITCH]
  872.       # 合成画面に移行
  873.       $game_temp.next_scene = nil
  874.       $game_switches[KGC::ComposeItem::COMPOSE_CALL_SWITCH] = false
  875.       $scene = Scene_ComposeItem.new
  876.     else
  877.       call_shop_KGC_ComposeItem
  878.     end
  879.   end
  880. end

  881. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  882. #==============================================================================
  883. # □ Scene_ComposeItem
  884. #------------------------------------------------------------------------------
  885. #  合成画面の処理を行うクラスです。(Scene_Shop を流用)
  886. #==============================================================================

  887. class Scene_ComposeItem < Scene_Shop
  888.   #--------------------------------------------------------------------------
  889.   # ● 開始処理
  890.   #--------------------------------------------------------------------------
  891.   def start
  892.     super
  893.     # コマンドウィンドウ非表示
  894.     if KGC::ComposeItem::HIDE_COMMAND_WINDOW
  895.       @command_window.visible = false
  896.       @gold_window.y = Graphics.height - @gold_window.height
  897.       @gold_window.z = @status_window.z + 100
  898.       @gold_window.visible = !KGC::ComposeItem::HIDE_GOLD_WINDOW

  899.       @dummy_window.y = @command_window.y
  900.       @dummy_window.height += @command_window.height
  901.     end

  902.     # [Scene_Shop] 再利用のため、合成リストに @buy_window を使用
  903.     @buy_window.dispose
  904.     @buy_window = Window_ComposeItem.new(0, @dummy_window.y)
  905.     @buy_window.height = @dummy_window.height
  906.     @buy_window.active = false
  907.     @buy_window.visible = false
  908.     @buy_window.help_window = @help_window

  909.     # その他のウィンドウを再構成
  910.     @number_window.dispose
  911.     @number_window = Window_ComposeNumber.new(0, @buy_window.y)
  912.     @number_window.height = @buy_window.height
  913.     @number_window.create_contents
  914.     @number_window.active = false
  915.     @number_window.visible = false

  916.     @status_window.dispose
  917.     @status_window = Window_ComposeStatus.new(@buy_window.width, @buy_window.y)
  918.     @status_window.height = @buy_window.height
  919.     @status_window.create_contents
  920.     @status_window.visible = false

  921.     # コマンドウィンドウ非表示の場合、合成ウィンドウに切り替え
  922.     if KGC::ComposeItem::HIDE_COMMAND_WINDOW
  923.       @command_window.active = false
  924.       @dummy_window.visible = false
  925.       @buy_window.active = true
  926.       @buy_window.visible = true
  927.       @buy_window.update_help
  928.       @status_window.visible = true
  929.       @status_window.item = @buy_window.item
  930.     end
  931.   end
  932.   #--------------------------------------------------------------------------
  933.   # ● コマンドウィンドウの作成
  934.   #--------------------------------------------------------------------------
  935.   def create_command_window
  936.     s1 = Vocab::ComposeItem
  937.     s2 = Vocab::ShopSell
  938.     s3 = Vocab::ShopCancel
  939.     @command_window = Window_Command.new(384, [s1, s2, s3], 3)
  940.     @command_window.y = 56
  941.     if $game_temp.shop_purchase_only
  942.       @command_window.draw_item(1, false)
  943.     end
  944.   end
  945.   #--------------------------------------------------------------------------
  946.   # ● フレーム更新
  947.   #--------------------------------------------------------------------------
  948.   def update
  949.     super
  950.     if KGC::ComposeItem::SWITCH_INFO_BUTTON != nil &&
  951.         Input.trigger?(KGC::ComposeItem::SWITCH_INFO_BUTTON)
  952.       Sound.play_cursor
  953.       @status_window.change_mode
  954.     end
  955.   end
  956.   #--------------------------------------------------------------------------
  957.   # ● 購入アイテム選択の更新
  958.   #--------------------------------------------------------------------------
  959.   def update_buy_selection
  960.     @number_window.sell_flag = false

  961.     # コマンドウィンドウ非表示で B ボタンが押された場合
  962.     if KGC::ComposeItem::HIDE_COMMAND_WINDOW && Input.trigger?(Input::B)
  963.       Sound.play_cancel
  964.       $scene = Scene_Map.new
  965.       return
  966.     end

  967.     @status_window.item = @buy_window.item
  968.     if Input.trigger?(Input::C)
  969.       @item = @buy_window.item
  970.       # アイテムが無効なら選択不可
  971.       if @item == nil
  972.         Sound.play_buzzer
  973.         return
  974.       end

  975.       # 合成不可能 or 限界数まで所持している場合は選択不可
  976.       number = $game_party.item_number(@item)
  977.       limit = ($imported["LimitBreak"] ? @item.number_limit : 99)
  978.       if !$game_party.item_can_compose?(@item) || number == limit
  979.         Sound.play_buzzer
  980.         return
  981.       end

  982.       # 個数入力に切り替え
  983.       Sound.play_decision
  984.       max = $game_party.number_of_composable(@item)
  985.       max = [max, limit - number].min
  986.       @buy_window.active = false
  987.       @buy_window.visible = false
  988.       @number_window.set(@item, max, @item.compose_cost)
  989.       @number_window.active = true
  990.       @number_window.visible = true
  991.       return
  992.     end

  993.     super
  994.   end
  995.   #--------------------------------------------------------------------------
  996.   # ● 売却アイテム選択の更新
  997.   #--------------------------------------------------------------------------
  998.   def update_sell_selection
  999.     @number_window.sell_flag = true
  1000.     super
  1001.   end
  1002.   #--------------------------------------------------------------------------
  1003.   # ● 個数入力の決定
  1004.   #--------------------------------------------------------------------------
  1005.   def decide_number_input
  1006.     if @command_window.index != 0  # 「合成する」以外
  1007.       super
  1008.       return
  1009.     end

  1010.     Sound.play_shop
  1011.     @number_window.active = false
  1012.     @number_window.visible = false
  1013.     # 合成処理
  1014.     operation_compose
  1015.     @gold_window.refresh
  1016.     @buy_window.refresh
  1017.     @status_window.refresh
  1018.     @buy_window.active = true
  1019.     @buy_window.visible = true
  1020.   end
  1021.   #--------------------------------------------------------------------------
  1022.   # ○ 合成の処理
  1023.   #--------------------------------------------------------------------------
  1024.   def operation_compose
  1025.     $game_party.lose_gold(@number_window.number * @item.compose_cost)
  1026.     $game_party.gain_item(@item, @number_window.number)
  1027.     # 素材を減らす
  1028.     @item.compose_materials.each { |material|
  1029.       $game_party.lose_item(material.item,
  1030.         material.number * @number_window.number)
  1031.     }
  1032.     # 合成済みにする
  1033.     $game_party.set_item_composed(@item)
  1034.   end
  1035. end
复制代码
开关是50
商店设置如图

为什么商店里面没有东西?

Lv1.梦旅人

梦石
0
星屑
50
在线时间
138 小时
注册时间
2008-11-28
帖子
73
2
发表于 2011-10-21 20:17:46 | 只看该作者
你要合成的菜單有照他說明設置了嗎
RECIPE_ITEM   = []  # アイテム
RECIPE_WEAPON = []  # 武器
RECIPE_ARMOR  = []  # 防具
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
3
 楼主| 发表于 2011-10-21 21:53:33 | 只看该作者
dancy60634 发表于 2011-10-21 20:17
你要合成的菜單有照他說明設置了嗎
RECIPE_ITEM   = []  # アイテム
RECIPE_WEAPON = []  # 武器

  RECIPE_ITEM[8] = [0, "I:2", "I:4", "I:7"]
下面已经有设定例。
而且我的那三个东西就是这三个ID
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1130
在线时间
274 小时
注册时间
2011-7-24
帖子
272
4
发表于 2011-10-21 22:02:01 | 只看该作者
负零 发表于 2011-10-21 21:53
RECIPE_ITEM[8] = [0, "I:2", "I:4", "I:7"]
下面已经有设定例。
而且我的那三个东西就是这三个ID ...

这样就是合成8号物品要物品ID为2的和ID为4和为7的.........
  1. RECIPE_ITEM[X]/code]X应该是你要合成的物品 就是出现在合成画面的物品...
  2. [code]RECIPE_ITEM[X] = [0, "I:2", "I:4", "I:7"]
复制代码
后面的
  1. [0, "I:2", "I:4", "I:7"]
复制代码
是花费金钱和合成必须的物品

点评

这个我懂  发表于 2011-10-21 23:40
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
138 小时
注册时间
2008-11-28
帖子
73
5
发表于 2011-10-21 22:15:53 | 只看该作者
合成したことがないレシピのアイテム名を隠す
  MASK_UNKNOWN_RECIPE_NAME     = true
改成false呢?

点评

无效  发表于 2011-10-21 23:43
我去试试  发表于 2011-10-21 23:40
回复

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

6
发表于 2011-10-21 22:54:58 | 只看该作者
我看新建一工程把内容复制过去(除该脚本)比较快。

点评

新工程无效,应该是设置问题。  发表于 2011-10-21 23:40
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
7
 楼主| 发表于 2011-10-21 23:52:46 | 只看该作者
本帖最后由 负零 于 2011-10-21 23:52 编辑

我想看看你们的一些设置,我试试看,好奇怪啊...
原来这个脚本是可以用的。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
138 小时
注册时间
2008-11-28
帖子
73
8
发表于 2011-10-22 00:09:36 | 只看该作者
# ◆ 合成素材不足のレシピを隠す
  #  true  : 素材不足ならリストに表示しない
  #  false : 素材不足でも表示
  HIDE_SHORTAGE_MATERIAL    = true
  # ◆ 「判明・解禁・存在」機能を使用する
  #  true  : 判明・解禁・存在するまで表示しない
  #  false : 素材さえあれば合成可能
  #  true の場合、仕様上強制的に
  #   HIDE_SHORTAGE_COST     = false
  #   HIDE_SHORTAGE_MATERIAL = false
  #  という扱いになります。
  NEED_RECIPE_EXIST         = true

兩個true都改成false
確定可以用,我開新遊戲試過了
再不行可能是腳本衝突的問題

点评

我试试  发表于 2011-10-22 00:10
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
9
 楼主| 发表于 2011-10-22 00:13:17 | 只看该作者
我的错,我把那两行注释掉了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-9-21 16:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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