加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 345912390 于 2014-12-7 08:24 编辑
游戏 物品制造,高手可以路过了!
注意:这个模板需要自己写一个分类文件 和一个配方列表文件。
【物品制造模板】以为数据文件生成示例
数据文件生成示例
模块
#=============================================================================== #加工类型 #=============================================================================== class RPG::Maker_Type< RPG::BaseItem attr_accessor :learnings#学习制作项 attr_accessor :enabled#可用与否 attr_accessor :exp_params#经验值参数 attr_accessor :lev# attr_accessor :exp# attr_accessor :max_level# attr_accessor :type_arr#类型 def initialize @learnings = [] @type_arr=[] @enabled=false @lev=1 @exp=0 @max_level = 10 @exp_params = [0,125,250,750,2000,3500,5250,10000,15000,18750,43750] end #增加经验 def add_exp(value_exp) @exp+=value_exp if @exp>=@exp_params[@lev] @exp-=@exp_params[@lev] @lev+=1 end @lev=[@lev,@max_level].min end #增加等级 def add_lev(value_lev) @lev+=value_lev @exp=0 @lev=[@lev,@max_level].min end #学习配方列表中已有的配方 def add_learnings(level,list_id,type) @learnings.push(RPG::Maker_Type::Learning.new(level,list_id)) if !@type_arr.include?(type) @type_arr.push(type) end end end #=============================================================================== #加工列表 #=============================================================================== class RPG::Maker_Type::Learning def initialize(level,list_id,note='') @level =level @list_id = list_id @note = note end attr_accessor :level#需求等级 attr_accessor :list_id#配方ID attr_accessor :note#备注 end #=============================================================================== #配方列表 #=============================================================================== class RPG::Maker_List< RPG::BaseItem attr_accessor :exp#增加经验 attr_accessor :gold#消耗金币 attr_accessor :type#类型取<二级列表用>中的一个元素值 attr_accessor :input#放入材料数组 attr_accessor :output#生成材料数组 def initialize @exp = 0 @gold = 0 @type="" @input=[] @output=[] end end #=============================================================================== #配方材料列表 #kind类别: #[0]:物品 #[1]:武器 #[2]:防具 #=============================================================================== class RPG::Maker_List::ItemArray def initialize(kind,data_id,count=1,percent=1000) @kind =kind @data_id = data_id @count= count @percent=percent end attr_accessor :kind#材料类别 attr_accessor :data_id#ID attr_accessor :count#数量 attr_accessor :percent#成功千分比 end module Maker Lev_Rate=0.2#等级加成 #Percent:随机数0-Percent如改动请连带改RPG::Maker_List::ItemArray后, #再生成配方数据文件 Percent=1000 PercentChar="‰"#几率符号 SUCCESS_SE = RPG::SE.new("Hammer", 100, 100)#音效 end
#===============================================================================
#加工类型
#===============================================================================
class RPG::Maker_Type< RPG::BaseItem
attr_accessor :learnings#学习制作项
attr_accessor :enabled#可用与否
attr_accessor :exp_params#经验值参数
attr_accessor :lev#
attr_accessor :exp#
attr_accessor :max_level#
attr_accessor :type_arr#类型
def initialize
@learnings = []
@type_arr=[]
@enabled=false
@lev=1
@exp=0
@max_level = 10
@exp_params = [0,125,250,750,2000,3500,5250,10000,15000,18750,43750]
end
#增加经验
def add_exp(value_exp)
@exp+=value_exp
if @exp>=@exp_params[@lev]
@exp-=@exp_params[@lev]
@lev+=1
end
@lev=[@lev,@max_level].min
end
#增加等级
def add_lev(value_lev)
@lev+=value_lev
@exp=0
@lev=[@lev,@max_level].min
end
#学习配方列表中已有的配方
def add_learnings(level,list_id,type)
@learnings.push(RPG::Maker_Type::Learning.new(level,list_id))
if !@type_arr.include?(type)
@type_arr.push(type)
end
end
end
#===============================================================================
#加工列表
#===============================================================================
class RPG::Maker_Type::Learning
def initialize(level,list_id,note='')
@level =level
@list_id = list_id
@note = note
end
attr_accessor :level#需求等级
attr_accessor :list_id#配方ID
attr_accessor :note#备注
end
#===============================================================================
#配方列表
#===============================================================================
class RPG::Maker_List< RPG::BaseItem
attr_accessor :exp#增加经验
attr_accessor :gold#消耗金币
attr_accessor :type#类型取<二级列表用>中的一个元素值
attr_accessor :input#放入材料数组
attr_accessor :output#生成材料数组
def initialize
@exp = 0
@gold = 0
@type=""
@input=[]
@output=[]
end
end
#===============================================================================
#配方材料列表
#kind类别:
#[0]:物品
#[1]:武器
#[2]:防具
#===============================================================================
class RPG::Maker_List::ItemArray
def initialize(kind,data_id,count=1,percent=1000)
@kind =kind
@data_id = data_id
@count= count
@percent=percent
end
attr_accessor :kind#材料类别
attr_accessor :data_id#ID
attr_accessor :count#数量
attr_accessor :percent#成功千分比
end
module Maker
Lev_Rate=0.2#等级加成
#Percent:随机数0-Percent如改动请连带改RPG::Maker_List::ItemArray后,
#再生成配方数据文件
Percent=1000
PercentChar="‰"#几率符号
SUCCESS_SE = RPG::SE.new("Hammer", 100, 100)#音效
end
游戏截图
几率算法说明:
几率算法说明
【物品制造模板】
不提供兼容性的解决方法 |