| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 14 |
| 经验 | |
| 最后登录 | 2026-9-29 |
| 在线时间 | 989 小时 |
- 梦石
- 0
- 星屑
- 1394
- 在线时间
- 989 小时
- 注册时间
- 2011-5-11
- 回帖
- 418
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 345912390 于 2014-12-7 08:24 编辑
游戏 物品制造,高手可以路过了!
注意:这个模板需要自己写一个分类文件 和一个配方列表文件。
【物品制造模板】以为数据文件生成示例
[fold=数据文件生成示例]=begin
#===============================================================================
#加工类型列表数据文件生成示例
#===============================================================================
$data_maker_type = []
type_id=0
#===============================================================================
#矿石加工列表[1-20]
#===============================================================================
Types=RPG::Maker_Type.new
Types.icon_index =11
Types.id=0
type_id+=1
Types.name="矿石加工"
Types.description=" 加工系技能之一,可以把原矿加工成矿锭\n或宝石。"
Types.type_arr=["矿石加工","宝石加工"]
for i in 1..10
Types.learnings.push(RPG::Maker_Type::Learning.new(i,i))#矿锭【1-10】
Types.learnings.push(RPG::Maker_Type::Learning.new(i,10+i))#宝石【11-20】
end
$data_maker_type.push(Types)
#===============================================================================
save_data($data_maker_type,"Data/Maker_Type.rvdata2")
exit
=end
=begin
#===============================================================================
#配方列表数据文件生成示例
#===============================================================================
#配方材料列表
#kind类别:
#[0]:物品
#[1]:武器
#[2]:防具
#RPG::Maker_List::ItemArray.new(类别,DI,数量,千分比)
#===============================================================================
Arr_Exp=[5,10,30,80,140,210,400,600,750,1750]
$Lists_id=0
#===============================================================================
#扇【101-110】=矿锭*4+丝绸*4
#===============================================================================
Arr_Name=["折扇","乌木扇","白羽扇","玉骨扇","清风扇","松风扇","朱雀扇","青鸾扇","灵犀扇","寒溟扇"]
i=0
while i < 10
lists=RPG::Maker_List.new
lists.id=$Lists_id
$Lists_id+=1
lists.icon_index=236
lists.name=Arr_Name+"配方"
lists.description=Arr_Name+"配方"
lists.type="扇"
lists.exp=Arr_Exp*8
lists.gold=Arr_Exp*16
#放入材料数组
lists.input.push(RPG::Maker_List::ItemArray.new(0,101+i,4))#矿锭【101-110】
lists.input.push(RPG::Maker_List::ItemArray.new(0,131+i,4))#丝绸【131-140】
#生成材料数组
lists.output.push(RPG::Maker_List::ItemArray.new(1,391+i,1,200))#精良20%
lists.output.push(RPG::Maker_List::ItemArray.new(1,261+i,1,750))#优秀75%
lists.output.push(RPG::Maker_List::ItemArray.new(1,651+i,1,5))#传奇5‰
lists.output.push(RPG::Maker_List::ItemArray.new(1,521+i,1,40))#稀有4%
$data_maker_list.push(lists)
i += 1
end
#===============================================================================
#save_data($data_maker_list,"Data/Maker_List.rvdata2")
#exit
=end
[/fold]
模块
[pre lang="ruby" line="1"]#===============================================================================
#加工类型
#===============================================================================
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
[/pre]
[fold=游戏截图]
一级分类末开启
一级分类末开启
一级分类开启
一级分类开启
二级分类,配方,材料不足提示
二级分类,配方,材料不足提示
分类学习配方列表中存在的配方
分类学习配方列表中存在的配方
配方状态与初始生成几率<几率为自己设定值,不一定要用1000比,可以改动>
配方状态与初始生成几率
等级加成后的配方生成几率<对显示不满意者,自行修改:Window_List_Status窗口>
等级加成后的配方生成几率
制造过渡窗口<对显示不满意者,自行修改。搜索关键字:show_loading_window>
制造过度
制造成功提示<对显示不满意者,自行修改。搜索关键字:show_gain_window>
制造成功提示
[/fold]
几率算法说明:
[fold=几率算法说明]以1000比为例:
A:5‰; B:200‰; C:750‰; D:40‰( 这个几率是自己设定的,可以没有顺序,显示的时候会按几率大小自动排序)
配方等级:1,当前分类的等级为:3
Lev_Rate=0.2
那么新的几率为:A:7‰; B:280‰; C:1050‰; D:56‰
(新的几率=设定几率×(1+Lev_Rate×(分类的等级-配方等级))
几率判断:随机数N=Rand(1000)
A:0<N<=7
D:7+56<N<=7+56
B:7+56<N<=7+56+280
C:7+56+280<N<=7+56+280+1050
判断顺序为A--->D--->B--->C(是用它们的几率由小到大判断的)[/fold]
【物品制造模板】
不提供兼容性的解决方法 |
|