rmxp吧 关注:1,907贴子:8,177
  • 7回复贴,共1

【新手求教】关于脚本修改

只看楼主收藏回复

我在网上下了个装备扩展脚本,想添加几种新的装备类型,但怎么在数据库中增加这几种类型的装备呢(我已经看过脚本了,它没有定义装备类型,只是增加了几个装备孔,装备孔还放不进去东西)?
我还下了个SRPG的脚本,我想让游戏可以在普通模式(走路),与SRPG的模式(战斗)中互相转换,可不可以?
另外网上下的合成脚本根本不能用,哪位高人有能用的?让我来研究一下
哪位大神教教我
I


1楼2013-11-03 19:02回复
    脚本在哪。。


    来自Android客户端2楼2013-11-03 19:25
    回复
      2025-12-27 15:40:07
      广告
      不感兴趣
      开通SVIP免广告
      脚本来了


      3楼2013-11-04 09:51
      回复
        # ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
        #
        # 防具类追加
        #
        # ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
        module RPG
        class Weapon
        def name
        name = @name.split(/,/)[0]
        return name != nil ? name : ''
        end
        def pic_name
        pic_name = @name.split(/,/)[1]
        return pic_name != nil ? pic_name : ""
        end
        end
        class Armor
        def name
        name = @name.split(/,/)[0]
        return name != nil ? name : ''
        end
        def pic_name
        pic_name = @name.split(/,/)[1]
        return pic_name != nil ? pic_name : ""
        end
        def kind
        kind = @name.split(/,/)[2]
        return kind != nil ? kind.to_i : @kind
        end
        end
        end
        # ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
        #
        # Game_Actor添加新的防具ID,并对相关方法修正
        #
        # ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
        class Game_Actor < Game_Battler
        attr_reader :armor5_id # 项链 ID
        attr_reader :armor6_id # 鞋 ID
        #--------------------------------------------------------------------------
        # ● 设置
        # actor_id : 角色 ID
        #--------------------------------------------------------------------------
        alias old_setup setup
        def setup(actor_id)
        old_setup(actor_id)
        @armor5_id = 0
        @armor6_id = 0
        update_auto_state(nil, $data_armors[@armor5_id])
        update_auto_state(nil, $data_armors[@armor6_id])
        end
        #--------------------------------------------------------------------------
        # ● 取得属性修正值
        # element_id : 属性 ID
        #--------------------------------------------------------------------------
        def element_rate(element_id)
        # 获取对应属性有效度的数值
        table = [0,200,150,100,50,0,-100]
        result = table[$data_classes[@class_id].element_ranks[element_id]]
        # 防具能防御本属性的情况下效果减半
        for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id, @armor5_id, @armor6_id]
        armor = $data_armors[i]
        if armor != nil and armor.guard_element_set.include?(element_id)
        result /= 2
        end
        end
        # 状态能防御本属性的情况下效果减半
        for i in @states
        if $data_states[i].guard_element_set.include?(element_id)
        result /= 2
        end
        end
        # 过程结束
        return result
        end
        #--------------------------------------------------------------------------
        # ● 判定防御属性
        # state_id : 属性 ID
        #--------------------------------------------------------------------------
        def state_guard?(state_id)
        for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id, @armor5_id, @armor6_id]
        armor = $data_armors[i]
        if armor != nil
        if armor.guard_state_set.include?(state_id)
        return true
        end
        end
        end
        return false
        end
        #--------------------------------------------------------------------------
        # ● 获取基本力量
        #--------------------------------------------------------------------------
        def base_str
        n = $data_actors[@actor_id].parameters[2, @level]
        weapon = $data_weapons[@weapon_id]
        armor1 = $data_armors[@armor1_id]
        armor2 = $data_armors[@armor2_id]
        armor3 = $data_armors[@armor3_id]
        armor4 = $data_armors[@armor4_id]
        armor5 = $data_armors[@armor5_id]
        armor6 = $data_armors[@armor6_id]
        n += weapon != nil ? weapon.str_plus : 0
        n += armor1 != nil ? armor1.str_plus : 0
        n += armor2 != nil ? armor2.str_plus : 0
        n += armor3 != nil ? armor3.str_plus : 0
        n += armor4 != nil ? armor4.str_plus : 0
        n += armor5 != nil ? armor5.str_plus : 0
        n += armor6 != nil ? armor6.str_plus : 0
        return [[n, 1].max, 999].min
        end
        #--------------------------------------------------------------------------
        # ● 获取基本灵巧
        #--------------------------------------------------------------------------
        def base_dex
        n = $data_actors[@actor_id].parameters[3, @level]
        weapon = $data_weapons[@weapon_id]
        armor1 = $data_armors[@armor1_id]
        armor2 = $data_armors[@armor2_id]
        armor3 = $data_armors[@armor3_id]
        armor4 = $data_armors[@armor4_id]
        armor5 = $data_armors[@armor5_id]
        armor6 = $data_armors[@armor6_id]
        n += weapon != nil ? weapon.dex_plus : 0
        n += armor1 != nil ? armor1.dex_plus : 0
        n += armor2 != nil ? armor2.dex_plus : 0
        n += armor3 != nil ? armor3.dex_plus : 0
        n += armor4 != nil ? armor4.dex_plus : 0
        n += armor5 != nil ? armor5.dex_plus : 0
        n += armor6 != nil ? armor6.dex_plus : 0
        return [[n, 1].max, 999].min
        end
        #--------------------------------------------------------------------------
        # ● 获取基本速度
        #--------------------------------------------------------------------------
        def base_agi
        n = $data_actors[@actor_id].parameters[4, @level]
        weapon = $data_weapons[@weapon_id]
        armor1 = $data_armors[@armor1_id]
        armor2 = $data_armors[@armor2_id]
        armor3 = $data_armors[@armor3_id]
        armor4 = $data_armors[@armor4_id]
        armor5 = $data_armors[@armor5_id]
        armor6 = $data_armors[@armor6_id]
        n += weapon != nil ? weapon.agi_plus : 0
        n += armor1 != nil ? armor1.agi_plus : 0
        n += armor2 != nil ? armor2.agi_plus : 0
        n += armor3 != nil ? armor3.agi_plus : 0
        n += armor4 != nil ? armor4.agi_plus : 0
        n += armor5 != nil ? armor5.agi_plus : 0
        n += armor6 != nil ? armor6.agi_plus : 0
        return [[n, 1].max, 999].min
        endI


        4楼2013-11-04 09:53
        回复
          #--------------------------------------------------------------------------
          # ● 获取基本魔力
          #--------------------------------------------------------------------------
          def base_int
          n = $data_actors[@actor_id].parameters[5, @level]
          weapon = $data_weapons[@weapon_id]
          armor1 = $data_armors[@armor1_id]
          armor2 = $data_armors[@armor2_id]
          armor3 = $data_armors[@armor3_id]
          armor4 = $data_armors[@armor4_id]
          armor5 = $data_armors[@armor5_id]
          armor6 = $data_armors[@armor6_id]
          n += weapon != nil ? weapon.int_plus : 0
          n += armor1 != nil ? armor1.int_plus : 0
          n += armor2 != nil ? armor2.int_plus : 0
          n += armor3 != nil ? armor3.int_plus : 0
          n += armor4 != nil ? armor4.int_plus : 0
          n += armor5 != nil ? armor5.int_plus : 0
          n += armor6 != nil ? armor6.int_plus : 0
          return [[n, 1].max, 999].min
          end
          #--------------------------------------------------------------------------
          # ● 获取基本物理防御
          #--------------------------------------------------------------------------
          def base_pdef
          weapon = $data_weapons[@weapon_id]
          armor1 = $data_armors[@armor1_id]
          armor2 = $data_armors[@armor2_id]
          armor3 = $data_armors[@armor3_id]
          armor4 = $data_armors[@armor4_id]
          armor5 = $data_armors[@armor5_id]
          armor6 = $data_armors[@armor6_id]
          pdef1 = weapon != nil ? weapon.pdef : 0
          pdef2 = armor1 != nil ? armor1.pdef : 0
          pdef3 = armor2 != nil ? armor2.pdef : 0
          pdef4 = armor3 != nil ? armor3.pdef : 0
          pdef5 = armor4 != nil ? armor4.pdef : 0
          pdef6 = armor5 != nil ? armor5.pdef : 0
          pdef7 = armor6 != nil ? armor6.pdef : 0
          return pdef1 + pdef2 + pdef3 + pdef4 + pdef5 + pdef6 + pdef7
          end
          #--------------------------------------------------------------------------
          # ● 获取基本魔法防御
          #--------------------------------------------------------------------------
          def base_mdef
          weapon = $data_weapons[@weapon_id]
          armor1 = $data_armors[@armor1_id]
          armor2 = $data_armors[@armor2_id]
          armor3 = $data_armors[@armor3_id]
          armor4 = $data_armors[@armor4_id]
          armor5 = $data_armors[@armor5_id]
          armor6 = $data_armors[@armor6_id]
          mdef1 = weapon != nil ? weapon.mdef : 0
          mdef2 = armor1 != nil ? armor1.mdef : 0
          mdef3 = armor2 != nil ? armor2.mdef : 0
          mdef4 = armor3 != nil ? armor3.mdef : 0
          mdef5 = armor4 != nil ? armor4.mdef : 0
          mdef6 = armor5 != nil ? armor5.mdef : 0
          mdef7 = armor6 != nil ? armor6.mdef : 0
          return mdef1 + mdef2 + mdef3 + mdef4 + mdef5 + mdef6 + mdef7
          end
          #--------------------------------------------------------------------------
          # ● 获取基本回避修正
          #--------------------------------------------------------------------------
          def base_eva
          armor1 = $data_armors[@armor1_id]
          armor2 = $data_armors[@armor2_id]
          armor3 = $data_armors[@armor3_id]
          armor4 = $data_armors[@armor4_id]
          armor5 = $data_armors[@armor5_id]
          armor6 = $data_armors[@armor6_id]
          eva1 = armor1 != nil ? armor1.eva : 0
          eva2 = armor2 != nil ? armor2.eva : 0
          eva3 = armor3 != nil ? armor3.eva : 0
          eva4 = armor4 != nil ? armor4.eva : 0
          eva5 = armor5 != nil ? armor5.eva : 0
          eva6 = armor6 != nil ? armor6.eva : 0
          return eva1 + eva2 + eva3 + eva4 + eva5 + eva6
          end
          #--------------------------------------------------------------------------
          # ● 装备固定判定
          # equip_type : 装备类型
          #--------------------------------------------------------------------------
          def equip_fix?(equip_type)
          case equip_type
          when 0 # 武器
          return $data_actors[@actor_id].weapon_fix
          when 1 # 盾
          return $data_actors[@actor_id].armor1_fix
          when 2 # 头
          return $data_actors[@actor_id].armor2_fix
          when 3 # 身体
          return $data_actors[@actor_id].armor3_fix
          when 4 # 装饰品
          return $data_actors[@actor_id].armor4_fix
          end
          return false
          end
          #--------------------------------------------------------------------------
          # ● 变更装备
          # equip_type : 装备类型
          # id : 武器 or 防具 ID (0 为解除装备)
          #--------------------------------------------------------------------------
          def equip(equip_type, id)
          case equip_type
          when 0 # 武器
          if id == 0 or $game_party.weapon_number(id) > 0
          $game_party.gain_weapon(@weapon_id, 1)
          @weapon_id = id
          $game_party.lose_weapon(id, 1)
          end
          when 1 # 盾
          if id == 0 or $game_party.armor_number(id) > 0
          update_auto_state($data_armors[@armor1_id], $data_armors[id])
          $game_party.gain_armor(@armor1_id, 1)
          @armor1_id = id
          $game_party.lose_armor(id, 1)
          end
          when 2 # 头
          if id == 0 or $game_party.armor_number(id) > 0
          update_auto_state($data_armors[@armor2_id], $data_armors[id])
          $game_party.gain_armor(@armor2_id, 1)
          @armor2_id = id
          $game_party.lose_armor(id, 1)
          end
          when 3 # 身体
          if id == 0 or $game_party.armor_number(id) > 0
          update_auto_state($data_armors[@armor3_id], $data_armors[id])
          $game_party.gain_armor(@armor3_id, 1)
          @armor3_id = id
          $game_party.lose_armor(id, 1)
          end
          when 4 # 装饰品
          if id == 0 or $game_party.armor_number(id) > 0
          update_auto_state($data_armors[@armor4_id], $data_armors[id])
          $game_party.gain_armor(@armor4_id, 1)
          @armor4_id = id
          $game_party.lose_armor(id, 1)
          end
          when 5 # 项链
          if id == 0 or $game_party.armor_number(id) > 0
          update_auto_state($data_armors[@armor5_id], $data_armors[id])
          $game_party.gain_armor(@armor5_id, 1)
          @armor5_id = id
          $game_party.lose_armor(id, 1)
          end
          when 6 # 鞋
          if id == 0 or $game_party.armor_number(id) > 0
          update_auto_state($data_armors[@armor6_id], $data_armors[id])
          $game_party.gain_armor(@armor6_id, 1)
          @armor6_id = id
          $game_party.lose_armor(id, 1)
          end
          end
          end
          #--------------------------------------------------------------------------
          # ● 更改职业 ID
          # class_id : 新的职业 ID
          #--------------------------------------------------------------------------
          def class_id=(class_id)
          if $data_classes[class_id] != nil
          @class_id = class_id
          # 避开无法装备的物品
          unless equippable?($data_weapons[@weapon_id])
          equip(0, 0)
          end
          unless equippable?($data_armors[@armor1_id])
          equip(1, 0)
          end
          unless equippable?($data_armors[@armor2_id])
          equip(2, 0)
          end
          unless equippable?($data_armors[@armor3_id])
          equip(3, 0)
          end
          unless equippable?($data_armors[@armor4_id])
          equip(4, 0)
          end
          unless equippable?($data_armors[@armor5_id])
          equip(5, 0)
          end
          unless equippable?($data_armors[@armor6_id])
          equip(6, 0)
          end
          end
          end
          endI


          5楼2013-11-04 09:55
          回复
            突然发现这可以用了
            在装备名字后面加,,(id)就行了
            。。


            6楼2013-11-06 20:31
            回复
              下面公布第二个脚本


              7楼2013-11-06 20:31
              回复
                #==============================================================================
                # Sample master list for crafting script
                # written by Deke
                #============================================================================================
                # 简介:
                # 这是一个很不错的合成物品系统,可以通过游戏的过程,不断学习可以合成的
                # 物品方法。
                #
                # 使用方法:
                # 1、召唤界面:使用脚本$scene = Scene_Craft.new
                #
                # 2、学习合成:$game_party.learn_recipe(合成项目)
                #
                # 3、合成定义:
                # 这个合成脚本可以定义两种合成物品。一种是预先定义好了的,就像下面这样,
                # 直接写在这里就可以,另一种是在学习之前现场定义。
                #
                # 4、举例
                # 4.1、学会recipe_list[1]定义的合成:$game_party.learn_recipe($game_temp.recipe_list[1])
                # 注意,一行如果输入不下,在(的后面或[的后面按回车换行,否则可能出错
                #
                # 4.2、在游戏中临时定义一种合成,让玩家学会。使用事件中的脚本如下,
                # 脚本:
                # 材料 = [$game_variables[1],$game_variables[2]] #——材料编号是变量1、2的编号
                # 材料种类 = [0,0] #——材料是物品
                # 材料数量 = [$game_variables[3],$game_variables[4]] #——需要材料数量是变量3、4的编号
                # 成品 = $game_variables[5] #——获得结果编号是5
                # 成品种类 = 1 #——成品是防具类
                # $game_party.learn_recipe(Game_Recipe.new(材料,材料种类, 材料数量,成品,成品种类))
                #===========================================================================================
                class Game_Temp
                attr_reader :recipe_list
                alias crafting_temp_initialize initialize
                def initialize
                crafting_temp_initialize
                @recipe_list=[]
                get_recipe_list
                end
                def get_recipe_list
                ##########################################################################
                # 0 号合成物品设定 (物品小药水×2 + 中药水 = 大药水)
                ##########################################################################
                材料 = [1, 2] # 需要材料的数据库编号
                材料种类 = [0, 0] # 需要材料的种类,0是普通物品,1是防具,2是武器
                材料数量 = [2, 1] # 需要材料的数量
                成品 = 3 # 获得物品编号
                成品种类 = 0 # 获得物品种类,0是普通物品,1是防具,2是武器
                @recipe_list[1] = Game_Recipe.new(材料,材料种类, 材料数量,成品,成品种类)
                ##########################################################################
                # 1 号合成物品设定 (武器铜剑、铁剑、钢剑各1 = 密切斯特剑)
                ##########################################################################
                材料 = [1, 2, 3] # 需要材料的数据库编号
                材料种类 = [2, 2, 2] # 需要材料的种类,0是普通物品,1是防具,2是武器
                材料数量 = [3, 2, 1] # 需要材料的数量
                成品 = 4 # 获得物品编号
                成品种类 = 2 # 获得物品种类,0是普通物品,1是防具,2是武器
                @recipe_list[2] = Game_Recipe.new(材料,材料种类, 材料数量,成品,成品种类)
                ##########################################################################
                # 2 号合成物品设定 (物品力量之石×2 + 防具钢盾×1 = 密切斯特盾)
                ##########################################################################
                材料 = [13, 3] # 需要材料的数据库编号
                材料种类 = [0, 1] # 需要材料的种类,0是普通物品,1是防具,2是武器
                材料数量 = [2, 1] # 需要材料的数量
                成品 = 4 # 获得物品编号
                成品种类 = 1 # 获得物品种类,0是普通物品,1是防具,2是武器
                @recipe_list[3] = Game_Recipe.new(材料,材料种类, 材料数量,成品,成品种类)
                ##########################################################################
                # 2 号合成物品设定 (金疮药×2 + 仙狐涎×1 = 大粒丸)
                ##########################################################################
                材料 = [1, 2] # 需要材料的数据库编号
                材料种类 = [0, 0] # 需要材料的种类,0是普通物品,1是防具,2是武器
                材料数量 = [2, 1] # 需要材料的数量
                成品 = 3 # 获得物品编号
                成品种类 = 0 # 获得物品种类,0是普通物品,1是防具,2是武器
                @recipe_list[4] = Game_Recipe.new(材料,材料种类, 材料数量,成品,成品种类)
                end # of get_recipe_list method
                end # of updates to Game_Temp Class
                #================================
                # CRAFTING PROGRAM
                #----------------------------------------------------------------
                #-written by Deke
                #-yes_no window code created by Phsylomortis
                #----------------------------------------------------------------
                #================================
                #updates to Game_Party class
                class Game_Party
                attr_accessor :recipes
                alias crafting_party_initialize initialize
                def initialize
                crafting_party_initialize
                @recipes=[]
                end
                #----------------------------------------------------------------------
                def know?(recipe, version = 1)
                unless recipe.is_a?(Game_Recipe)
                recipe = get_recipe_from_master_list(recipe, version)
                end
                return $game_party.recipes.include?(recipe)
                end
                #----------------------------------------------------------------------
                def learn_recipe(recipe , version = 1)
                unless recipe.is_a?(Game_Recipe)
                recipe = get_recipe_from_master_list(recipe, version)
                end
                if recipe.is_a?(Game_Recipe)
                unless know?(recipe)
                @recipes.push(recipe)
                end
                end
                end


                8楼2013-11-06 20:36
                回复