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

Project1

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

[已经过期] 这次又是为什么。可是脚本出错

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
70 小时
注册时间
2011-1-23
帖子
117
跳转到指定楼层
1
发表于 2011-7-16 22:13:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 忧雪の伤 于 2011-7-17 12:42 编辑



下面是脚本,哪里错了帮忙更正下。
  1. #==============================================================================
  2. # 复杂装备系统(2)打孔镶嵌 by 沉影不器
  3. #==============================================================================
  4. module Game_Equip
  5.   
  6.   ## 装备升级参数
  7.   ## 能力升级基数(倍数)
  8.   BaseAbility = 0.2
  9.   ## 每级价格提高基数(倍数)
  10.   BasePrice = 0.3
  11.   ## 是否保证成功
  12.   UpGrade_Absoluteness = false
  13.   ## 每级成功率基数(百分比倍数,用于逐级下降)
  14.   BaseSucceed = 80
  15.   ## 最大等级
  16.   MaxLevel = 10
  17.   ## 需金钱基数(与本身价格的倍数)
  18.   GoldNeed = 0.8
  19.   ## 需物品id => 数量
  20.   ItemsNeed = {21=>1, 22=>2}
  21.   
  22.   
  23.   
  24.   ## 打孔价格
  25.   SocketPrice = 1000
  26.   SocketItems = {21=>1}
  27.   
  28.   #--------------------------------------------------------------------------
  29.   # ● 装备重生
  30.   #    equip:  装备
  31.   #--------------------------------------------------------------------------
  32.   def self.reini(equip, sockets_num = 0)
  33.     return if equip.nil?
  34.     result = Marshal.load(Marshal.dump(equip))
  35.     result.base_id = equip.id
  36.     ######result.sockets = []
  37.     sockets_num.times{result.sockets_add}
  38.     case result
  39.     when RPG::Weapon
  40.       result.id = $data_weapons.size
  41.       $data_weapons.push result
  42.     when RPG::Armor
  43.       result.id = $data_armors.size
  44.       $data_armors.push result
  45.     end
  46.     return result
  47.   end  
  48. end

  49. module RPG
  50.   class BaseItem
  51.     def initialize
  52.       @id = 0
  53.       @name = ""
  54.       @icon_index = 0
  55.       @description = ""
  56.       @note = ""
  57.       @base_id = 0
  58.     end
  59.     attr_accessor :id
  60.     attr_accessor :name
  61.     attr_accessor :icon_index
  62.     attr_accessor :description
  63.     attr_accessor :note
  64.     attr_accessor :base_id
  65.   end
  66. end

  67. module RPG
  68.   class Item < UsableItem
  69.     def gem?
  70.       return read_note('gem').to_i >= 0
  71.     end
  72.     def socket_gem?
  73.       return read_note('gem').to_i == 1
  74.     end
  75.   end
  76. end

  77. module RPG
  78.   class Weapon < BaseItem
  79.     ## 母版id
  80.     attr_accessor :base_id
  81.     ## 角色id
  82.     attr_reader :actor_id
  83.     ## 孔集合(Array)
  84.     attr_accessor :sockets

  85.    
  86.     def sockets_max
  87.       return read_note('sockets').to_i
  88.     end
  89.    
  90.     def sockets_num
  91.       return 0 if @sockets.nil?
  92.       return @sockets.size
  93.     end
  94.    
  95.     def sockets_add
  96.       @sockets = [] unless @sockets
  97.       if sockets_num < sockets_max
  98.         @sockets.push 0
  99.         @name += "[O]"
  100.       end
  101.     end
  102.    
  103.     def sockets_use(item_id)
  104.       return false unless @sockets
  105.       for i in [email][email protected][/email]
  106.         if @sockets[i] == 0
  107.           @sockets[i] = item_id
  108.           @name.sub!(/\[O\]/) {"[#{$data_items[item_id].name}]"}
  109.           return true
  110.         end
  111.       end
  112.       return false
  113.     end
  114.    
  115.     def actor_id=(id)
  116.       @actor_id = id
  117.       ## 处理能力变化
  118.       parameter_change
  119.     end
  120.    
  121.     def parameter_change
  122.       @atk = $data_weapons[@base_id].atk
  123.       @def = $data_weapons[@base_id].def
  124.       @spi = $data_weapons[@base_id].spi
  125.       @agi = $data_weapons[@base_id].agi
  126.       @hp_max = 0
  127.       @mp_max = 0
  128.       return unless @sockets
  129.       for id in @sockets
  130.         next if id == 0
  131.         next if actor_id.nil?
  132.         g = Game_Gem.new(id)
  133.         a = $game_actors[actor_id.to_i]
  134.         @atk += g.atk
  135.         @def += g.def
  136.         @spi += g.spi
  137.         @agi += g.agi
  138.         @hp_max += g.hp_max + a.base_maxhp * g.hp_rate / 100
  139.         @mp_max += g.mp_max + a.base_maxmp * g.mp_rate / 100
  140.       end
  141.     end
  142.    
  143.     def hp_max
  144.       return @hp_max.to_i
  145.     end
  146.    
  147.     def mp_max
  148.       return @mp_max.to_i
  149.     end
  150.    
  151.   end
  152. end

  153. module RPG
  154.   class Armor < BaseItem
  155.     ## 母版id
  156.     attr_accessor :base_id
  157.     ## 角色id
  158.     attr_reader :actor_id
  159.     ## 孔集合(Array)
  160.     attr_accessor :sockets


  161.     def sockets_max
  162.       return read_note('sockets').to_i
  163.     end
  164.    
  165.     def sockets_num
  166.       return 0 if @sockets.nil?
  167.       return @sockets.size
  168.     end
  169.    
  170.     def sockets_add
  171.       @sockets = [] unless @sockets
  172.       if sockets_num < sockets_max
  173.         @sockets.push 0
  174.         @name += "[O]"
  175.       end
  176.     end
  177.    
  178.     def sockets_use(item_id)
  179.       return false unless @sockets
  180.       for i in [email][email protected][/email]
  181.         if @sockets[i] == 0
  182.           @sockets[i] = item_id
  183.           @name.sub!(/\[O\]/) {"[#{$data_items[item_id].name}]"}
  184.           return true
  185.         end
  186.       end
  187.       return false
  188.     end
  189.    
  190.     def actor_id=(id)
  191.       @actor_id = id
  192.       ## 处理能力变化
  193.       parameter_change
  194.     end
  195.    
  196.     def parameter_change
  197.       @atk = $data_armors[@base_id].atk
  198.       @def = $data_armors[@base_id].def
  199.       @spi = $data_armors[@base_id].spi
  200.       @agi = $data_armors[@base_id].agi
  201.       @hp_max = 0
  202.       @mp_max = 0
  203.       return unless @sockets
  204.       for id in @sockets
  205.         next if id == 0
  206.         next if actor_id.nil?
  207.         g = Game_Gem.new(id)
  208.         a = $game_actors[actor_id.to_i]
  209.         @atk += g.atk
  210.         @def += g.def
  211.         @spi += g.spi
  212.         @agi += g.agi
  213.         @hp_max += g.hp_max + a.base_maxhp * g.hp_rate / 100
  214.         @mp_max += g.mp_max + a.base_maxmp * g.mp_rate / 100
  215.       end
  216.     end
  217.    
  218.     def hp_max
  219.       return @hp_max.to_i
  220.     end
  221.    
  222.     def mp_max
  223.       return @mp_max.to_i
  224.     end
  225.    
  226.   end
  227. end

  228. #==============================================================================
  229. # ■ Game_Gem
  230. #==============================================================================
  231. class Game_Gem
  232.   attr_reader :hp_rate
  233.   attr_reader :mp_rate
  234.   attr_reader :hp_max
  235.   attr_reader :mp_max
  236.   attr_reader :atk
  237.   attr_reader :def
  238.   attr_reader :spi
  239.   attr_reader :agi
  240.   #--------------------------------------------------------------------------
  241.   # ● 初始化
  242.   #--------------------------------------------------------------------------
  243.   def initialize(item_id)
  244.     item = $data_items[item_id]
  245.     @hp_rate = item.hp_recovery_rate
  246.     @mp_rate = item.mp_recovery_rate
  247.     @hp_max = item.hp_recovery
  248.     @mp_max = item.mp_recovery
  249.     @atk = 0
  250.     @def = 0
  251.     @spi = 0
  252.     @agi = 0
  253.     n = item.parameter_points
  254.     case item.parameter_type
  255.     when 1 #HP上限
  256.       @hp_max += n
  257.     when 2 #MP上限
  258.       @mp_max += n
  259.     when 3 #攻击力
  260.       @atk = n
  261.     when 4 #防御力
  262.       @def = n
  263.     when 5 #精神
  264.       @spi = n
  265.     when 6 #敏捷
  266.       @agi = n
  267.     end
  268.   end
  269. end

  270. #==============================================================================
  271. # ■ Game_Actor
  272. #==============================================================================
  273. class Game_Actor < Game_Battler
  274.   #--------------------------------------------------------------------------
  275.   # ● 基本 MaxHP の取得
  276.   #--------------------------------------------------------------------------
  277.   def base_maxhp
  278.     n = actor.parameters[0, @level]
  279.     for item in equips.compact do n += item.hp_max end
  280.     return n
  281.   end
  282.   #--------------------------------------------------------------------------
  283.   # ● 获取基本 MaxHP
  284.   #--------------------------------------------------------------------------
  285.   def base_maxmp
  286.     n = actor.parameters[1, @level]
  287.     for item in equips.compact do n += item.mp_max end
  288.     return n
  289.   end
  290.   #--------------------------------------------------------------------------
  291.   # ● 更改装备 (指定对象)
  292.   #     equip_type : 装备部位 (0..4)
  293.   #     item       : 武器 or 防具 (nil 为解除装备)
  294.   #     test       : 测试标志 (战斗测试、以及装备画面的临时装备)
  295.   #--------------------------------------------------------------------------
  296.   def change_equip(equip_type, item, test = false)
  297.     last_item = equips[equip_type]
  298.     unless test
  299.       return if $game_party.item_number(item) == 0 if item != nil
  300.       $game_party.gain_item(last_item, 1)
  301.       $game_party.lose_item(item, 1)
  302.     end
  303.     item_id = item == nil ? 0 : item.id
  304.     case equip_type
  305.     when 0  # 武器
  306.       @weapon_id = item_id
  307.       unless two_hands_legal?             # 违反双手拿取的情况下
  308.         change_equip(1, nil, test)        # 解除反手的装备
  309.       end
  310.     when 1  # 盾
  311.       @armor1_id = item_id
  312.       unless two_hands_legal?             # 违反双手拿取的情况下
  313.         change_equip(0, nil, test)        # 解除反手的装备
  314.       end
  315.     when 2  # 头
  316.       @armor2_id = item_id
  317.     when 3  # 身体
  318.       @armor3_id = item_id
  319.     when 4  # 装饰品
  320.       @armor4_id = item_id
  321.     end
  322.     ## 绑定角色id
  323.     last_item.actor_id = nil
  324.     return if item.nil?
  325.     item.actor_id = self.id### if item.actor_id.nil?
  326.   end
  327. end

  328. #==============================================================================
  329. # ■ Game_Actor
  330. #==============================================================================
  331. class Game_Actor < Game_Battler
  332.   #--------------------------------------------------------------------------
  333.   # ● 初始化对象
  334.   #     actor_id : 角色 ID
  335.   #--------------------------------------------------------------------------
  336.   def initialize(actor_id)
  337.     super()
  338.     setup(actor_id)
  339.     @last_skill_id = 0
  340.   end
  341.   #--------------------------------------------------------------------------
  342.   # ● 设置
  343.   #     actor_id : 角色 ID
  344.   #--------------------------------------------------------------------------
  345.   def setup(actor_id)
  346.     actor = $data_actors[actor_id]
  347.     @actor_id = actor_id
  348.     @name = actor.name
  349.     @character_name = actor.character_name
  350.     @character_index = actor.character_index
  351.     @face_name = actor.face_name
  352.     @face_index = actor.face_index
  353.     @class_id = actor.class_id
  354.     @weapon_id = actor.weapon_id
  355.     @armor1_id = actor.armor1_id
  356.     @armor2_id = actor.armor2_id
  357.     @armor3_id = actor.armor3_id
  358.     @armor4_id = actor.armor4_id
  359.     @level = actor.initial_level
  360.     @exp_list = Array.new(101)
  361.     make_exp_list
  362.     @exp = @exp_list[@level]
  363.     @skills = []
  364.     for i in self.class.learnings
  365.       learn_skill(i.skill_id) if i.level <= @level
  366.     end
  367.     clear_extra_values
  368.     recover_all
  369.     ## 生成新装备id
  370.     reset_equip_id
  371.   end
  372.   
  373.   #--------------------------------------------------------------------------
  374.   # ● 装备重设
  375.   #--------------------------------------------------------------------------
  376.   def reset_equip_id
  377.     if @weapon_id != 0
  378.       item = Game_Equip.reini($base_weapons[@weapon_id])
  379.       unless item.nil?
  380.         $data_weapons.push item
  381.         @weapon_id = item.id
  382.       end
  383.     end
  384.     if @armor1_id != 0
  385.       if two_swords_style####two_hands_legal?
  386.         item = Game_Equip.reini($base_weapons[@armor1_id])
  387.         unless item.nil?
  388.           $data_weapons.push item
  389.           @armor1_id = item.id
  390.         end
  391.       else
  392.         item = Game_Equip.reini($base_armors[@armor1_id])
  393.         unless item.nil?
  394.           $data_armors.push item
  395.           @armor1_id = item.id
  396.         end
  397.       end
  398.     end
  399.     if @armor2_id != 0
  400.       item = $base_armors[@armor2_id]
  401.       unless item.nil?
  402.         item = Game_Equip.reini(item)
  403.         $data_armors.push item
  404.         @armor2_id = item.id
  405.       end
  406.     end
  407.     if @armor3_id != 0
  408.       item = $base_armors[@armor3_id]
  409.       unless item.nil?
  410.         item = Game_Equip.reini(item)
  411.         $data_armors.push item
  412.         @armor3_id = item.id
  413.       end
  414.     end
  415.     if @armor4_id != 0
  416.       item = $base_armors[@armor4_id]
  417.       unless item.nil?
  418.         item = Game_Equip.reini(item)
  419.         $data_armors.push item
  420.         @armor4_id = item.id
  421.       end
  422.     end
  423.   end
  424.   
  425.   #--------------------------------------------------------------------------
  426.   # ● 判断是否可以装备
  427.   #     item : 物品
  428.   #     base : 是否读取母版数据
  429.   #--------------------------------------------------------------------------
  430.   def equippable?(item, base = true)
  431.     id = base ? item.base_id : item.id
  432.     if item.is_a?(RPG::Weapon)
  433.       return self.class.weapon_set.include?(id)
  434.     elsif item.is_a?(RPG::Armor)
  435.       return false if two_swords_style and item.kind == 0
  436.       return self.class.armor_set.include?(id)
  437.     end
  438.     return false
  439.   end
  440. end

  441. #==============================================================================
  442. # ■ Game_Party
  443. #==============================================================================
  444. class Game_Party < Game_Unit
  445.   #--------------------------------------------------------------------------
  446.   # ● 判断持有的物品(依据base_id)
  447.   #     item          : 物品
  448.   #     include_equip : 包括装备品
  449.   #--------------------------------------------------------------------------
  450.   def has_item_by_base_id?(item, include_equip = false)
  451.     for i in items
  452.       return true if i.base_id == item.id
  453.     end
  454.     if include_equip
  455.       for actor in members
  456.         for e in actor.equips
  457.           return true if e.base_id == item.id
  458.         end
  459.       end
  460.     end
  461.     return false
  462.   end
  463.   #--------------------------------------------------------------------------
  464.   # ● 获得物品
  465.   #     item          : 物品
  466.   #     n             : 个数
  467.   #--------------------------------------------------------------------------
  468.   def gain_reini_item(item, n, include_equip = false)
  469.     if n < 0
  470.       lose_item(item, -n, include_equip = false)
  471.     else
  472.       case item
  473.       when RPG::Item
  474.         number = item_number(item)
  475.         @items[item.id] = [[number + n, 0].max, 99].min
  476.       when RPG::Weapon
  477.         for i in 0...n
  478.           w = Game_Equip.reini(item)
  479.           @weapons[w.id] = 1
  480.         end
  481.       when RPG::Armor
  482.         for i in 0...n
  483.           a = Game_Equip.reini(item)
  484.           @armors[a.id] = 1
  485.         end
  486.       end
  487.     end
  488.   end
  489.   #--------------------------------------------------------------------------
  490.   # ● 减少物品 (减少)
  491.   #     item          : 物品
  492.   #     n             : 个数
  493.   #     include_equip : 包括装备品
  494.   #--------------------------------------------------------------------------
  495.   def lose_reini_item(item, n, include_equip = false)
  496.     number = item_number(item)
  497.     case item
  498.     when RPG::Item
  499.       @items[item.id] = [[number - n, 0].max, 99].min
  500.     when RPG::Weapon
  501.       @weapons[item.id] = [[number - n, 0].max, 99].min
  502.     when RPG::Armor
  503.       @armors[item.id] = [[number - n, 0].max, 99].min
  504.     end
  505.     n -= number
  506.     if include_equip and n > 0
  507.       for actor in members
  508.         while n > 0 and actor.equips.include?(item)
  509.           actor.discard_equip(item)
  510.           n -= 1
  511.         end
  512.       end
  513.     end
  514.   end
  515. end

  516. #==============================================================================
  517. # ■ Game_Troop
  518. #==============================================================================
  519. class Game_Troop < Game_Unit
  520.   #--------------------------------------------------------------------------
  521.   # ● 敌人角色名称后的文字表
  522.   #--------------------------------------------------------------------------
  523.   LETTER_TABLE = [ 'A','B','C','D','E','F','G','H','I','J',
  524.                    'K','L','M','N','O','P','Q','R','S','T',
  525.                    'U','V','W','X','Y','Z']
  526.   #--------------------------------------------------------------------------
  527.   # ● 生成掉落物品队列
  528.   #--------------------------------------------------------------------------
  529.   def make_drop_items
  530.     drop_items = []
  531.     for enemy in dead_members
  532.       for di in [enemy.drop_item1, enemy.drop_item2]
  533.         next if di.kind == 0
  534.         next if rand(di.denominator) != 0
  535.         if di.kind == 1
  536.           drop_items.push($data_items[di.item_id])
  537.         elsif di.kind == 2
  538.           drop_items.push($base_weapons[di.weapon_id])
  539.         elsif di.kind == 3
  540.           drop_items.push($base_armors[di.armor_id])
  541.         end
  542.       end
  543.     end
  544.     return drop_items
  545.   end
  546. end

  547. #==============================================================================
  548. # ■ Game_Interpreter
  549. #==============================================================================
  550. class Game_Interpreter
  551.   #--------------------------------------------------------------------------
  552.   # ● 计算操作的值
  553.   #     operation    : 操作 (0:增加 1:减少)
  554.   #     operand_type : 运算域类型 (0:常量 1:变量)
  555.   #     operand      : 运算域 (数值为变量 ID)
  556.   #--------------------------------------------------------------------------
  557.   def operate_value(operation, operand_type, operand)
  558.     if operand_type == 0
  559.       value = operand
  560.     else
  561.       value = $game_variables[operand]
  562.     end
  563.     if operation == 1
  564.       value = -value
  565.     end
  566.     return value
  567.   end
  568.   #--------------------------------------------------------------------------
  569.   # ● 条件分歧
  570.   #--------------------------------------------------------------------------
  571.   def command_111
  572.     result = false
  573.     case @params[0]
  574.     when 0  # 开关
  575.       result = ($game_switches[@params[1]] == (@params[2] == 0))
  576.     when 1  # 变量
  577.       value1 = $game_variables[@params[1]]
  578.       if @params[2] == 0
  579.         value2 = @params[3]
  580.       else
  581.         value2 = $game_variables[@params[3]]
  582.       end
  583.       case @params[4]
  584.       when 0  # 相等
  585.         result = (value1 == value2)
  586.       when 1  # 大于等于
  587.         result = (value1 >= value2)
  588.       when 2  # 小于等于
  589.         result = (value1 <= value2)
  590.       when 3  # 大于
  591.         result = (value1 > value2)
  592.       when 4  # 小于
  593.         result = (value1 < value2)
  594.       when 5  # 不等于
  595.         result = (value1 != value2)
  596.       end
  597.     when 2  # 自我开关
  598.       if @original_event_id > 0
  599.         key = [@map_id, @original_event_id, @params[1]]
  600.         if @params[2] == 0
  601.           result = ($game_self_switches[key] == true)
  602.         else
  603.           result = ($game_self_switches[key] != true)
  604.         end
  605.       end
  606.     when 3  # 计时器
  607.       if $game_system.timer_working
  608.         sec = $game_system.timer / Graphics.frame_rate
  609.         if @params[2] == 0
  610.           result = (sec >= @params[1])
  611.         else
  612.           result = (sec <= @params[1])
  613.         end
  614.       end
  615.     when 4  # 角色
  616.       actor = $game_actors[@params[1]]
  617.       if actor != nil
  618.         case @params[2]
  619.         when 0  # 是同伴
  620.           result = ($game_party.members.include?(actor))
  621.         when 1  # 姓名
  622.           result = (actor.name == @params[3])
  623.         when 2  # 特技
  624.           result = (actor.skill_learn?($data_skills[@params[3]]))
  625.         when 3  # 武器
  626.           ## 判断是否符合母版id
  627.           actor.weapons.each do |weapon|
  628.             if weapon.base_id == @params[3]
  629.               result = true
  630.               break
  631.             end
  632.           end
  633.         when 4  # 防具
  634.           ## 判断是否符合母版id
  635.           actor.armors.each do |armor|
  636.             if armor.base_id == @params[3]
  637.               result = true
  638.               break
  639.             end
  640.           end
  641.         when 5  # 状态
  642.           result = (actor.state?(@params[3]))
  643.         end
  644.       end
  645.     when 5  # 敌方角色
  646.       enemy = $game_troop.members[@params[1]]
  647.       if enemy != nil
  648.         case @params[2]
  649.         when 0  # 出现
  650.           result = (enemy.exist?)
  651.         when 1  # 状态
  652.           result = (enemy.state?(@params[3]))
  653.         end
  654.       end
  655.     when 6  # 角色
  656.       character = get_character(@params[1])
  657.       if character != nil
  658.         result = (character.direction == @params[2])
  659.       end
  660.     when 7  # 金钱
  661.       if @params[2] == 0
  662.         result = ($game_party.gold >= @params[1])
  663.       else
  664.         result = ($game_party.gold <= @params[1])
  665.       end
  666.     when 8  # 物品
  667.       result = $game_party.has_item?($data_items[@params[1]])
  668.     when 9  # 武器
  669.       result = $game_party.has_item_by_base_id?($base_weapons[@params[1]], @params[2])
  670.     when 10  # 防具
  671.       result = $game_party.has_item_by_base_id?($base_armors[@params[1]], @params[2])
  672.     when 11  # 按钮
  673.       result = Input.press?(@params[1])
  674.     when 12  # 脚本
  675.       result = eval(@params[1])
  676.     when 13  # 交通工具
  677.       result = ($game_player.vehicle_type == @params[1])
  678.     end
  679.     @branch[@indent] = result     # 将判断结果放置在缓存中
  680.     if @branch[@indent] == true
  681.       @branch.delete(@indent)
  682.       return true
  683.     end
  684.     return command_skip
  685.   end
  686.   
  687.   
  688.   #--------------------------------------------------------------------------
  689.   # ● 计算装备操作的值
  690.   #     operand_type : 运算域类型 (0:常量 1:变量)
  691.   #     operand      : 运算域 (数值为变量 ID)
  692.   #--------------------------------------------------------------------------
  693.   def opera_equip_value(operation, operand_type, operand)
  694.     if operand_type == 0
  695.       value = operand
  696.     else
  697.       value = $game_variables[operand]
  698.     end
  699.     return value
  700.   end
  701.   #--------------------------------------------------------------------------
  702.   # ● 增减武器
  703.   #--------------------------------------------------------------------------
  704.   def command_127
  705.     value = operate_value(@params[1], @params[2], @params[3])
  706.     if @params[1] == 0
  707.       $game_party.gain_reini_item($base_weapons[@params[0]], value.abs, @params[4])
  708.     else
  709.       $game_party.lose_reini_item($base_weapons[@params[0]], value.abs, @params[4])
  710.     end
  711.     return true
  712.   end
  713.   #--------------------------------------------------------------------------
  714.   # ● 增减防具
  715.   #--------------------------------------------------------------------------
  716.   def command_128
  717.     value = operate_value(@params[1], @params[2], @params[3])
  718.     if @params[1] == 0
  719.       $game_party.gain_reini_item($base_armors[@params[0]], value.abs, @params[4])
  720.     else
  721.       $game_party.lose_reini_item($base_armors[@params[0]], value.abs, @params[4])
  722.     end
  723.     return true
  724.   end
  725.   #--------------------------------------------------------------------------
  726.   # ● 更改装备
  727.   #--------------------------------------------------------------------------
  728.   def command_319
  729.     actor = $game_actors[@params[0]]
  730.     if actor != nil
  731.       actor.change_equip_by_id(@params[1], @params[2])
  732.     end
  733.     return true
  734.   end
  735. end

  736. #==============================================================================
  737. # ■ Window_ShopBuy
  738. #==============================================================================
  739. class Window_ShopBuy < Window_Selectable
  740.   #--------------------------------------------------------------------------
  741.   # ● 刷新
  742.   #--------------------------------------------------------------------------
  743.   def refresh
  744.     @data = []
  745.     for goods_item in @shop_goods
  746.       case goods_item[0]
  747.       when 0
  748.         item = $base_items[goods_item[1]]
  749.       when 1
  750.         item = $base_weapons[goods_item[1]]
  751.       when 2
  752.         item = $base_armors[goods_item[1]]
  753.       end
  754.       if item != nil
  755.         @data.push(item)
  756.       end
  757.     end
  758.     @item_max = @data.size
  759.     create_contents
  760.     for i in 0...@item_max
  761.       draw_item(i)
  762.     end
  763.   end
  764. end
复制代码

  1. #==============================================================================
  2. # ■ Window_ShopStatus
  3. #==============================================================================
  4. class Window_ShopStatus < Window_Base
  5.   #--------------------------------------------------------------------------
  6.   # ● 描绘角色现在装备的能力值变化
  7.   #     actor : 角色
  8.   #     x     : 描画目标 X 坐标
  9.   #     y     : 描画目标 Y 坐标
  10.   #--------------------------------------------------------------------------
  11.   def draw_actor_parameter_change(actor, x, y)
  12.     return if @item.is_a?(RPG::Item)
  13.     enabled = actor.equippable?(@item, false)
  14.     self.contents.font.color = normal_color
  15.     self.contents.font.color.alpha = enabled ? 255 : 128
  16.     self.contents.draw_text(x, y, 200, WLH, actor.name)
  17.     if @item.is_a?(RPG::Weapon)
  18.       item1 = weaker_weapon(actor)
  19.     elsif actor.two_swords_style and @item.kind == 0
  20.       item1 = nil
  21.     else
  22.       item1 = actor.equips[1 + @item.kind]
  23.     end
  24.     if enabled
  25.       if @item.is_a?(RPG::Weapon)
  26.         atk1 = item1 == nil ? 0 : item1.atk
  27.         atk2 = @item == nil ? 0 : @item.atk
  28.         change = atk2 - atk1
  29.       else
  30.         def1 = item1 == nil ? 0 : item1.def
  31.         def2 = @item == nil ? 0 : @item.def
  32.         change = def2 - def1
  33.       end
  34.       self.contents.draw_text(x, y, 200, WLH, sprintf("%+d", change), 2)
  35.     end
  36.     draw_item_name(item1, x, y + WLH, enabled)
  37.   end
  38. end

  39. #==============================================================================
  40. # ■ Window_ScrEquip
  41. #==============================================================================
  42. class Window_ScrEquip < Window_Selectable
  43.   attr_accessor :equip_only
  44.   #--------------------------------------------------------------------------
  45.   # ● 初始化对象
  46.   #     x      : 窗口的 X 坐标
  47.   #     y      : 窗口的 Y 坐标
  48.   #     width  : 窗口的宽
  49.   #     height : 窗口的高
  50.   #--------------------------------------------------------------------------
  51.   def initialize(x, y, width, height)
  52.     super(x, y, width, height)
  53.     @column_max = 1
  54.     @equip_only = true
  55.     refresh
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● 取得物品
  59.   #--------------------------------------------------------------------------
  60.   def item
  61.     return @data[self.index]
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● 显示是否可以使用物品
  65.   #     item : 物品
  66.   #--------------------------------------------------------------------------
  67.   def enable?(item)
  68.     return true
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 列表中包含的物品
  72.   #     item : 物品
  73.   #--------------------------------------------------------------------------
  74.   def include?(item)
  75.     return true if item == nil
  76.     if @equip_only
  77.       return true if item.is_a? RPG::Weapon or item.is_a? RPG::Armor
  78.     else
  79.       return true if item.is_a? RPG::Item and item.gem?
  80.     end
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 刷新
  84.   #--------------------------------------------------------------------------
  85.   def refresh
  86.     self.index = 0
  87.     @data = []
  88.     for item in $game_party.items
  89.       next unless include?(item)
  90.       @data.push(item)
  91.     end
  92.     @data.push(nil) if include?(nil)
  93.     @item_max = @data.size
  94.     create_contents
  95.     for i in 0...@item_max
  96.       draw_item(i)
  97.     end
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● 描绘项目
  101.   #     index : 项目编号
  102.   #--------------------------------------------------------------------------
  103.   def draw_item(index)
  104.     rect = item_rect(index)
  105.     self.contents.clear_rect(rect)
  106.     item = @data[index]
  107.     if item != nil
  108.       number = $game_party.item_number(item)
  109.       rect.width -= 4
  110.       draw_item_name(item, rect.x, rect.y)
  111.       self.contents.draw_text(rect, sprintf(":%2d", number), 2)
  112.     end
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 更新帮助文本
  116.   #--------------------------------------------------------------------------
  117.   def update_help
  118.     @help_window.set_text(item == nil ? "" : item.description)
  119.   end  
  120. end

  121. #==============================================================================
  122. # ■ Window_DestEquip #equip add clear items
  123. #==============================================================================
  124. class Window_DestEquip < Window_Base
  125.   #--------------------------------------------------------------------------
  126.   # ● 定义实例变量
  127.   #--------------------------------------------------------------------------
  128.   attr_reader   :equip
  129.   attr_reader   :items
  130.   #--------------------------------------------------------------------------
  131.   # ● 初始化对象
  132.   #     x      : 窗口的 X 坐标
  133.   #     y      : 窗口的 Y 坐标
  134.   #     width  : 窗口的宽
  135.   #     height : 窗口的高
  136.   #--------------------------------------------------------------------------
  137.   def initialize(x, y, width, height)
  138.     super(x, y, width, height)
  139.     clear
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● 添加物品
  143.   #--------------------------------------------------------------------------
  144.   def add(item, n = 1)
  145.     $game_party.lose_item(item, n)
  146.     if @index == -1
  147.       @equip = item
  148.     else
  149.       number = @items[item].to_i
  150.       @items[item] = [[number + n, 0].max, 99].min
  151.     end
  152.     @index += 1
  153.     draw_item(item, n)
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 清除物品
  157.   #--------------------------------------------------------------------------
  158.   def clear
  159.     @equip = nil
  160.     @items = {}
  161.     @index = -1
  162.     self.contents.clear
  163.     self.contents.font.color = system_color
  164.     self.contents.draw_text(0,0,self.contents.width-16,WLH,"请放入升级装备:")
  165.     self.contents.draw_text(0,WLH*2,self.contents.width-16,WLH,"请放入炼制物品:")
  166.   end
  167.   #--------------------------------------------------------------------------
  168.   # ● 归还物品
  169.   #--------------------------------------------------------------------------
  170.   def revert
  171.     $game_party.gain_item(@equip, 1)
  172.     @items.each{|i,n| $game_party.gain_item(i, n)}
  173.     clear
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ● 描绘项目
  177.   #     index : 项目编号
  178.   #--------------------------------------------------------------------------
  179.   def draw_item(item, n)
  180.     rect = Rect.new(4,WLH+WLH*@index,self.contents.width-8, WLH)######判断@index分支
  181.     rect.y += WLH if @index >0
  182.     ##self.contents.clear_rect(rect)
  183.     if item != nil
  184.       ##rect.width -= 4
  185.       draw_item_name(item, rect.x, rect.y)
  186.       self.contents.draw_text(rect, sprintf(":%2d", n), 2)
  187.     end
  188.   end
  189.   #--------------------------------------------------------------------------
  190.   # ● 更新帮助文本
  191.   #--------------------------------------------------------------------------
  192.   def update_help
  193.     @help_window.set_text(item == nil ? "" : item.description)
  194.   end
  195. end

  196. #==============================================================================
  197. # ■ Window_EquipNumber
  198. #==============================================================================
  199. class Window_EquipNumber < Window_Base
  200.   #--------------------------------------------------------------------------
  201.   # ● 初始化对象
  202.   #     x : 窗口的 X 坐标
  203.   #     y : 窗口的 Y 坐标
  204.   #--------------------------------------------------------------------------
  205.   def initialize(x, y)
  206.     super(x, y, 272, 304)
  207.     @item = nil
  208.     @max = 1
  209.     @number = 1
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # ● 设置物品、最大个数
  213.   #--------------------------------------------------------------------------
  214.   def set(item, max)
  215.     @item = item
  216.     @max = max
  217.     @number = 1
  218.     refresh
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ● 设置输入个数
  222.   #--------------------------------------------------------------------------
  223.   def number
  224.     return @number
  225.   end
  226.   #--------------------------------------------------------------------------
  227.   # ● 刷新
  228.   #--------------------------------------------------------------------------
  229.   def refresh
  230.     y = 96
  231.     self.contents.clear
  232.     draw_item_name(@item, 0, y)
  233.     self.contents.font.color = normal_color
  234.     self.contents.draw_text(212-32, y, 20, WLH, "×")
  235.     self.contents.draw_text(248-32, y, 20, WLH, @number, 2)
  236.     self.cursor_rect.set(244-32, y, 28, WLH)
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● 更新画面
  240.   #--------------------------------------------------------------------------
  241.   def update
  242.     super
  243.     if self.active
  244.       last_number = @number
  245.       if Input.repeat?(Input::RIGHT) and @number < @max
  246.         @number += 1
  247.       end
  248.       if Input.repeat?(Input::LEFT) and @number > 1
  249.         @number -= 1
  250.       end
  251.       if Input.repeat?(Input::UP) and @number < @max
  252.         @number = [@number + 10, @max].min
  253.       end
  254.       if Input.repeat?(Input::DOWN) and @number > 1
  255.         @number = [@number - 10, 1].max
  256.       end
  257.       if @number != last_number
  258.         Sound.play_cursor
  259.         refresh
  260.       end
  261.     end
  262.   end
  263. end

  264. #==============================================================================
  265. # ■ Scene_Socket
  266. #==============================================================================
  267. class Scene_Socket < Scene_Base
  268.   include Game_Equip
  269.   #--------------------------------------------------------------------------
  270.   # ● 开始处理
  271.   #--------------------------------------------------------------------------
  272.   def start
  273.     super
  274.     create_menu_background
  275.     create_command_window
  276.     @help_window = Window_Help.new
  277.     @gold_window = Window_Gold.new(384, 56)
  278.     ##@gold_window.opacity = 0
  279.     @scr_window = Window_ScrEquip.new(0,112,272,304)
  280.     @scr_window.active = true
  281.     @scr_window.help_window = @help_window
  282.     @dest_window = Window_DestEquip.new(272,112,272,304)
  283.     @number_window = Window_EquipNumber.new(0, 112)
  284.     @number_window.active = false
  285.     @number_window.visible = false
  286.     @result_window = Window_Base.new(56,56,384,80)
  287.     @result_window.active = false
  288.     @result_window.visible = false
  289.   end
  290.   #--------------------------------------------------------------------------
  291.   # ● 结束处理
  292.   #--------------------------------------------------------------------------
  293.   def terminate
  294.     super
  295.     dispose_menu_background
  296.     dispose_command_window
  297.     @help_window.dispose
  298.     @gold_window.dispose
  299.     @scr_window.dispose
  300.     @dest_window.dispose
  301.     @number_window.dispose
  302.   end
  303.   #--------------------------------------------------------------------------
  304.   # ● 更新画面
  305.   #--------------------------------------------------------------------------
  306.   def update
  307.     super
  308.     update_menu_background
  309.     @help_window.update
  310.     @command_window.update
  311.     @gold_window.update
  312.     @scr_window.update
  313.     @dest_window.update
  314.     @number_window.update
  315.     if @command_window.active
  316.       @scr_window.contents_opacity = 128
  317.       @command_window.contents_opacity = 255
  318.       update_command_selection
  319.     elsif @scr_window.active
  320.       @scr_window.contents_opacity = 255
  321.       @command_window.contents_opacity = 128
  322.       update_item_selection
  323.     elsif @number_window.active
  324.       update_number_input
  325.     elsif @result_window.active
  326.       update_result_window
  327.     end
  328.   end
  329.   #--------------------------------------------------------------------------
  330.   # ● 生成指令窗口
  331.   #--------------------------------------------------------------------------
  332.   def create_command_window
  333.     s1 = "打孔"
  334.     s2 = "镶嵌"
  335.     s3 = "退出"
  336.     @command_window = Window_Command.new(384, [s1, s2, s3], 4, 0, 8)
  337.     @command_window.y = 56
  338.     @command_window.active = false
  339.     @command_window.contents_opacity = 128
  340.   end
  341.   #--------------------------------------------------------------------------
  342.   # ● 释放指令窗口
  343.   #--------------------------------------------------------------------------
  344.   def dispose_command_window
  345.     @command_window.dispose
  346.   end
  347.   #--------------------------------------------------------------------------
  348.   # ● 是否满足打孔条件?
  349.   #--------------------------------------------------------------------------
  350.   def socket_addable?(equip)
  351.     return false if equip.nil?
  352.     return false if equip.sockets_num >= equip.sockets_max
  353.     return false if $game_party.gold < SocketPrice
  354.     items = {}
  355.     SocketItems.each{|i,n| items[$data_items[i]] = n}
  356.     return false if @dest_window.items != items
  357.     ## 扣钱
  358.     $game_party.lose_gold(SocketPrice)
  359.     return true
  360.   end
  361.   #--------------------------------------------------------------------------
  362.   # ● 是否满足镶嵌条件?
  363.   #--------------------------------------------------------------------------
  364.   def socket_useable?(equip)
  365.     return false if equip.nil?
  366.     return false if equip.sockets_num == 0
  367.     return false unless equip.sockets.include?(0)
  368.     return false if @dest_window.items.size != 1
  369.     return false if $game_party.gold < SocketPrice
  370.     @dest_window.items.each{|i,n| return false if i.socket_gem? or n != 1}
  371.     ## 扣钱
  372.     $game_party.lose_gold(SocketPrice)
  373.     return true
  374.   end
  375.   #--------------------------------------------------------------------------
  376.   # ● 显示结果(包括处理金钱物品)
  377.   #--------------------------------------------------------------------------
  378.   def show_result(type)
  379.     @result_window.active = true
  380.     @result_window.visible = true
  381.     case type
  382.     when 0
  383.       unless socket_addable?(@dest_window.equip)
  384.         @result_window.contents.clear
  385.         @result_window.contents.draw_text(0,0,352,24,"材料不正确或金钱不足!", 1)
  386.         @result_window.contents.draw_text(0,24,352,24,"物品已自动归还.", 1)
  387.         @dest_window.revert
  388.         Sound.play_actor_collapse
  389.         ## 直接返回
  390.         return
  391.       end
  392.       @dest_window.equip.sockets_add
  393.       s = "共有(#{@dest_window.equip.sockets_num})孔"
  394.       @result_window.contents.clear
  395.       @result_window.contents.draw_text(0, 0, 352, 24, "#{@dest_window.equip.name}打孔成功!")
  396.       @result_window.contents.draw_text(4, 24, 352-4, 24, s)
  397.       $game_party.gain_item(@dest_window.equip, 1)
  398.       Sound.play_shop
  399.     when 1
  400.       unless socket_useable?(@dest_window.equip)
  401.         @result_window.contents.clear
  402.         @result_window.contents.draw_text(0,0,352,24,"材料不正确或金钱不足!", 1)
  403.         @result_window.contents.draw_text(0,24,352,24,"物品已自动归还.", 1)
  404.         @dest_window.revert
  405.         Sound.play_actor_collapse
  406.         ## 直接返回
  407.         return
  408.       end
  409.       @dest_window.items.each_key do |i|
  410.         @dest_window.equip.sockets_use(i.id)
  411.         @name = i.name
  412.       end
  413.       @result_window.contents.clear
  414.       @result_window.contents.draw_text(0, 0, 352, 24, "#{@dest_window.equip.name}镶嵌成功!")
  415.       @result_window.contents.draw_text(4, 24, 352-4, 24, "#{@name}已经嵌入.")
  416.       $game_party.gain_item(@dest_window.equip, 1)
  417.       Sound.play_shop
  418.     end
  419.     @dest_window.clear
  420.   end
  421.   #--------------------------------------------------------------------------
  422.   # ● 更新帮助文本
  423.   #--------------------------------------------------------------------------
  424.   def update_help(text)
  425.     @help_window.set_text(text)
  426.   end  
  427.   #--------------------------------------------------------------------------
  428.   # ● 更新指令窗口
  429.   #--------------------------------------------------------------------------
  430.   def update_command_selection
  431.     case @command_window.index
  432.     when 0
  433.       update_help("确定键为装备打孔")
  434.     when 1
  435.       update_help("确定键为装备镶嵌")
  436.     when 2
  437.       update_help("退出锻造界面")
  438.     end
  439.     if Input.trigger?(Input::B)
  440.       ## 重来
  441.       Sound.play_cancel
  442.       @scr_window.active = true
  443.       @command_window.active = false
  444.     elsif Input.trigger?(Input::C)
  445.       case @command_window.index
  446.       when 2  # 退出
  447.         Sound.play_decision
  448.         @dest_window.revert
  449.         $scene = Scene_Map.new
  450.       else # 打孔 or 镶嵌
  451.         Sound.play_decision
  452.         @command_window.active = false
  453.         @scr_window.active = false
  454.         ######### 显示升级结果,归还物品
  455.         show_result(@command_window.index)
  456.       end
  457.     end
  458.   end
  459.   #--------------------------------------------------------------------------
  460.   # ● 更新选择物品
  461.   #--------------------------------------------------------------------------
  462.   def update_item_selection
  463.     if Input.trigger?(Input::B)
  464.       Sound.play_cancel
  465.       @command_window.active = true
  466.       @scr_window.active = false
  467.       ###@help_window.set_text("")
  468.       return
  469.     end
  470.     if Input.trigger?(Input::C)
  471.       @item = @scr_window.item
  472.       number = $game_party.item_number(@item)
  473.       if @item == nil or number == 0
  474.         Sound.play_buzzer
  475.       else
  476.         Sound.play_decision
  477.         ##### 传递物品给容器栏
  478.         if number > 1
  479.           @scr_window.active = false
  480.           @number_window.set(@item, number)
  481.           @number_window.active = true
  482.           @number_window.visible = true
  483.         else
  484.           Sound.play_shop
  485.           @dest_window.add(@scr_window.item, 1)
  486.           @scr_window.equip_only = false
  487.           @scr_window.refresh
  488.         end
  489.       end
  490.     end
  491.   end
  492.   #--------------------------------------------------------------------------
  493.   # ● 更新输入个数
  494.   #--------------------------------------------------------------------------
  495.   def update_number_input
  496.     if Input.trigger?(Input::B)
  497.       cancel_number_input
  498.     elsif Input.trigger?(Input::C)
  499.       decide_number_input
  500.     end
  501.   end
  502.   #--------------------------------------------------------------------------
  503.   # ● 更新结果窗体
  504.   #--------------------------------------------------------------------------
  505.   def update_result_window
  506.     if Input.trigger?(Input::B) or Input.trigger?(Input::C)
  507.       Sound.play_decision
  508.       @scr_window.equip_only = true
  509.       @scr_window.refresh
  510.       @scr_window.active = true
  511.       @result_window.active = false
  512.       @result_window.visible = false
  513.     end
  514.   end
  515.   #--------------------------------------------------------------------------
  516.   # ● 取消输入个数
  517.   #--------------------------------------------------------------------------
  518.   def cancel_number_input
  519.     Sound.play_cancel
  520.     @number_window.active = false
  521.     @number_window.visible = false
  522.     @scr_window.active = true
  523.     @scr_window.visible = true
  524.   end
  525.   #--------------------------------------------------------------------------
  526.   # ● 确定输入个数
  527.   #--------------------------------------------------------------------------
  528.   def decide_number_input
  529.     Sound.play_shop
  530.     @number_window.active = false
  531.     @number_window.visible = false
  532.     @dest_window.add(@item, @number_window.number)
  533.     @scr_window.equip_only = false
  534.     @scr_window.refresh
  535.     @scr_window.active = true
  536.   end
  537. end

  538. #==============================================================================
  539. # ■ Scene_File
  540. #==============================================================================
  541. class Scene_File < Scene_Base
  542.   #--------------------------------------------------------------------------
  543.   # ● 写入存档数据
  544.   #     file : 写入文件用对象 (已经打开)
  545.   #--------------------------------------------------------------------------
  546.   def write_save_data(file)
  547.     characters = []
  548.     for actor in $game_party.members
  549.       characters.push([actor.character_name, actor.character_index])
  550.     end
  551.     $game_system.save_count += 1
  552.     $game_system.version_id = $data_system.version_id
  553.     @last_bgm = RPG::BGM::last
  554.     @last_bgs = RPG::BGS::last
  555.     Marshal.dump(characters,           file)
  556.     Marshal.dump(Graphics.frame_count, file)
  557.     Marshal.dump(@last_bgm,            file)
  558.     Marshal.dump(@last_bgs,            file)
  559.     Marshal.dump($game_system,         file)
  560.     Marshal.dump($game_message,        file)
  561.     Marshal.dump($game_switches,       file)
  562.     Marshal.dump($game_variables,      file)
  563.     Marshal.dump($game_self_switches,  file)
  564.     Marshal.dump($game_actors,         file)
  565.     Marshal.dump($game_party,          file)
  566.     Marshal.dump($game_troop,          file)
  567.     Marshal.dump($game_map,            file)
  568.     Marshal.dump($game_player,         file)
  569.     Marshal.dump($data_weapons,        file)
  570.     Marshal.dump($data_armors,         file)
  571.   end
  572.   #--------------------------------------------------------------------------
  573.   # ● 读取存档数据
  574.   #     file : 读取文件用对象 (已经打开)
  575.   #--------------------------------------------------------------------------
  576.   def read_save_data(file)
  577.     characters           = Marshal.load(file)
  578.     Graphics.frame_count = Marshal.load(file)
  579.     @last_bgm            = Marshal.load(file)
  580.     @last_bgs            = Marshal.load(file)
  581.     $game_system         = Marshal.load(file)
  582.     $game_message        = Marshal.load(file)
  583.     $game_switches       = Marshal.load(file)
  584.     $game_variables      = Marshal.load(file)
  585.     $game_self_switches  = Marshal.load(file)
  586.     $game_actors         = Marshal.load(file)
  587.     $game_party          = Marshal.load(file)
  588.     $game_troop          = Marshal.load(file)
  589.     $game_map            = Marshal.load(file)
  590.     $game_player         = Marshal.load(file)
  591.     $data_weapons        = Marshal.load(file)
  592.     $data_armors         = Marshal.load(file)
  593.     if $game_system.version_id != $data_system.version_id
  594.       $game_map.setup($game_map.map_id)
  595.       $game_player.center($game_player.x, $game_player.y)
  596.     end
  597.   end
  598. end


  599. #==============================================================================
  600. # ■ Scene_Shop
  601. #==============================================================================
  602. class Scene_Shop < Scene_Base
  603.   #--------------------------------------------------------------------------
  604.   # ● 确定输入个数
  605.   #--------------------------------------------------------------------------
  606.   def decide_number_input
  607.     Sound.play_shop
  608.     @number_window.active = false
  609.     @number_window.visible = false
  610.     case @command_window.index
  611.     when 0  # 购买
  612.       $game_party.lose_gold(@number_window.number * @item.price)
  613.       $game_party.gain_reini_item(@item, @number_window.number)
  614.       @gold_window.refresh
  615.       @buy_window.refresh
  616.       @status_window.refresh
  617.       @buy_window.active = true
  618.       @buy_window.visible = true
  619.     when 1  # 卖出
  620.       $game_party.gain_gold(@number_window.number * (@item.price / 2))
  621.       $game_party.lose_reini_item(@item, @number_window.number)
  622.       @gold_window.refresh
  623.       @sell_window.refresh
  624.       @status_window.refresh
  625.       @sell_window.active = true
  626.       @sell_window.visible = true
  627.       @status_window.visible = false
  628.     end
  629.   end
  630. end

  631. #==============================================================================
  632. # ■ Scene_Title
  633. #==============================================================================
  634. class Scene_Title < Scene_Base
  635.   #--------------------------------------------------------------------------
  636.   # ● 载入数据库
  637.   #--------------------------------------------------------------------------
  638.   def load_database
  639.     $data_actors        = load_data("Data/Actors.rvdata")
  640.     $data_classes       = load_data("Data/Classes.rvdata")
  641.     $data_skills        = load_data("Data/Skills.rvdata")
  642.     $data_items         = load_data("Data/Items.rvdata")
  643.     $base_weapons       = load_data("Data/Weapons.rvdata")
  644.     $base_armors        = load_data("Data/Armors.rvdata")
  645.     $data_enemies       = load_data("Data/Enemies.rvdata")
  646.     $data_troops        = load_data("Data/Troops.rvdata")
  647.     $data_states        = load_data("Data/States.rvdata")
  648.     $data_animations    = load_data("Data/Animations.rvdata")
  649.     $data_common_events = load_data("Data/CommonEvents.rvdata")
  650.     $data_system        = load_data("Data/System.rvdata")
  651.     $data_areas         = load_data("Data/Areas.rvdata")
  652.     $data_weapons       = [nil]
  653.     $data_armors        = [nil]
  654.   end
  655.   #--------------------------------------------------------------------------
  656.   # ● 载入战斗测试用的数据库
  657.   #--------------------------------------------------------------------------
  658.   def load_bt_database
  659.     $data_actors        = load_data("Data/BT_Actors.rvdata")
  660.     $data_classes       = load_data("Data/BT_Classes.rvdata")
  661.     $data_skills        = load_data("Data/BT_Skills.rvdata")
  662.     $data_items         = load_data("Data/BT_Items.rvdata")
  663.     $data_weapons       = load_data("Data/BT_Weapons.rvdata")
  664.     $data_armors        = load_data("Data/BT_Armors.rvdata")
  665.     $data_enemies       = load_data("Data/BT_Enemies.rvdata")
  666.     $data_troops        = load_data("Data/BT_Troops.rvdata")
  667.     $data_states        = load_data("Data/BT_States.rvdata")
  668.     $data_animations    = load_data("Data/BT_Animations.rvdata")
  669.     $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  670.     $data_system        = load_data("Data/BT_System.rvdata")
  671.     $base_weapons       = $data_weapons
  672.     $base_armors        = $data_armors
  673.   end
  674. end
复制代码

评分

参与人数 1星屑 -2 收起 理由
忧雪の伤 -2 加框费用。

查看全部评分

http://rpg.blue/thread-194335-1-1.html


你的投票建议了各位游戏制作者

最终冒险完成进度:
道具、地图:30%
脚本:85%
剧情:10%
素材:70%

Lv1.梦旅人

梦石
0
星屑
85
在线时间
424 小时
注册时间
2009-8-3
帖子
984
2
发表于 2011-7-17 07:26:18 | 只看该作者
脚本请用CODE引起来谢谢。。。
这个脚本单一是不会出错的,所以还用了别的什么脚本吗

点评

已经加code。  发表于 2011-7-17 12:43
回复

使用道具 举报

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6067
在线时间
6587 小时
注册时间
2007-12-16
帖子
4501

贵宾

3
发表于 2011-7-17 10:23:19 | 只看该作者
需要有 读取备注 脚本
连接:http://rpg.blue/forum.php?mod=vi ... B%E5%A4%87%E6%B3%A8

还在龟速填坑中
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-17 08:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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