赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 3 |
经验 | 0 |
最后登录 | 2018-3-13 |
在线时间 | 76 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 349
- 在线时间
- 76 小时
- 注册时间
- 2018-1-26
- 帖子
- 28
|
5楼
楼主 |
发表于 2018-2-7 23:14:50
|
只看该作者
#==============================================================================
# ■ VXAce-RGSS3-4 任务系统 [Ver.1.0.0] by Claimh 汉化:疾风怒涛
#------------------------------------------------------------------------------
#・任务(委托)接受、任务进行系统的建立
#・任务自事件获得或从公会获取
#・任务列表确认内容
# 现在进行中的任务、已经clear的任务、失败的任务
#・任务的Rank等级分为10和阶段。初期Rank等级为1
# 当前Rank等级不足时无法接受公会的高阶任务
#・由公会接受的任务将通过在公会报告任务来完成
# (也可通过事件完成)
#・当自公会获取的任务的显示状态为true时,可以接受
#・【定义】在下面的section中已经配置相关定义
#------------------------------------------------------------------------------
#【任务名、委托人、任务内容 用于控制的字符】
# \\n[n] : ID:n-角色ー名
# \\e[n] : ID:n-敌人ー名
# \\j[n] : ID:n-职业名
# \\s[n] : ID:n-技能名
# \\t[n] : ID:n-物品名
# \\w[n] : ID:n-武器名
# \\a[n] : ID:n-防具名
# \\m[n] : ID:n-地图名
# \\q[n] : ID:n-任务名
#【任务内容 用于控制的字符】
# \\c[n] : 文字色変更
# \\+ : 加粗表示 开始/结束
# \\- : 斜体表示 开始/结束
# \\x[n] : X轴方向 n 的当前位置刻画
# \\n : 改行
# \\p : 改页面
#==============================================================================
module Quest
#==============================================================================
#【全局设定】
#==============================================================================
# 可同時进行的任务数
# 初期只计算在StGuild类(公会)中设定的任务
# 除此之外的任务不能在公会接受
# 可通过事件接取任务
# nil为没有限制
MAX = nil
# 任务成功時的音效(BGM停止,播放SE)
CLR_A_FILE = RPG::ME.new("Victory1")
# CLR_A_FILE = RPG::SE.new("Chime1")
# 任务失败時的音效(BGM停止,播放SE)
FAIL_A_FILE = RPG::ME.new("Gameover1")
# FAIL_A_FILE = RPG::SE.new("Buzzer1")
# Rank等级表示
SHOW_RANK = true
# 任务Rank等级名称
RANK={1=>"G",2=>"F",3=>"E",4=>"D",5=>"C",6=>"B",7=>"A",8=>"A+",9=>"S",10=>"SS"}
# 每级Rank的文字色
RANK_CLR = {
1 => Color.new(255, 255, 255, 128),
2 => Color.new(255, 255, 255, 255),
3 => Color.new(128, 255, 255, 255),
4 => Color.new(128, 128, 255, 255),
5 => Color.new(255, 255, 128, 255),
6 => Color.new(128, 255, 128, 255),
7 => Color.new(255, 128, 128, 255),
8 => Color.new(255, 255, 0, 255),
9 => Color.new(255, 0, 255, 255),
10 => Color.new(255, 0, 0, 255)
}
# 职业变更发生后任务经验值的继承
CLASS_EXP = true
# 任务列表中的类別(3个种类可自由选择 & 顺序自由)
# PLAYING : 进行中任务
# CLEAR : 已完成任务
# FAIL : 失败任务
QUEST_LIST = [PLAYING, CLEAR, FAIL] ## [PLAYING] -> 進捗中のみ表示
# 任务列表中显示的名称
LIST_NAME = {
PLAYING => "任务进展",
CLEAR => "完成的任务",
FAIL => "失败的任务"
}
# 任务公会操作的种类(3个种类可自由选择 & 顺序自由)
# REPORT : 任务报告
# SHOP : 接受任务
# EXIT : 离开公会
GUILD_LIST = [SHOP, REPORT, EXIT] ## [SHOP] -> 表示接受任务
# 任务公会操作种类的显示名称
GUILD_NAME = {
REPORT => "任务报告",
SHOP => "接受任务",
EXIT => "离开公会"
}
#==============================================================================
#【任务设定】 ※任务ID不能为0
#==============================================================================
QUEST = {
=begin
[说明]
每个任务的设定。
Rank、StXXX、CondXXX、RsltXXX、Sw详细(具体参数的设定请参考对应脚本的说明)
【定义】请仔细阅读以下部分的格式
[表述形式]
任务ID => {
# 任务名,
# 委托人(""内显示),
# Rank等级 Rank.new(quest, r_next, r_down),
# 初期状态 StXXX.new,
# 前提条件[CondXXX.new, …],
# clear条件[CondXXX.new, …],
# 报酬[RsltXXX.new, …],
# 开关操作Sw.new(play_sw, clear_sw, fail_sw),
# 任务内容
},
=end
#=begin ## 设定案例[START]
#-----------------------------------------------------------------------------
3 => [
# 任务名
"遗失的古琴",
# 委托人(""内显示),
"卡岚",
# Rank等级 Rank.new(quest, r_next, r_down),
Rank.new(1, 0), # 成功時Rank等级上升【疾风:具体设定见定义脚本70行】
# 初期状态 StXXX.new,
StGuild.new(true), # 公会任务、初期表示ON(具体见定义脚本13行)
# 前提条件[CondXXX.new, …],
[], # 没有条件
# clear条件[CondXXX.new, …],
[CondItem.new(14)], # 去取得14号物品一个
# 报酬[RsltXXX.new, …],
[RsltMoney.new(800),
RsltItem.new(1, 3)],
# 成功時:钱800,物品[1]×3
# 开关操作Sw.new(play, clear, fail),
Sw.new(1, 2, 3), # 开始時SW[1]、成功時SW[2]、失敗時SW[3]
# 任务内容
"\\c[5]丁美塔内\\c[0]请去调查一下吧!
我曾经去过那里探险,但是遭遇了魔兽,
慌乱之下不小心把重要的古琴给遗失了!
丁美塔很危险,建议等级\\+\\c[2]10\\c[0]\\+级以上!"
],
#-----------------------------------------------------------------------------
2 => [
# 任务名,
"神的记事本",
# 委托人(""内显示),
"剧情",
# Rank等级 Rank.new(quest, r_next, r_down),
Rank.new(1, 0), # 成功時Rank等级上升
# 初期状态 StXXX.new,
StEv.new, # 通过事件获取的任务
# 前提条件[CondXXX.new, …],
[], # 任务[1]结束(成功)
# clear条件[CondXXX.new, …],
[], # 没有条件
[],
# 开关操作Sw.new(play, clear, fail),
Sw.new(4, 5, 6), # 开始時SW[4]、成功時SW[5]、失败時SW[6]
# 任务内容
"\\c[5]世界各处\\c[0]寻找“落日”灾难的记录!
关于9世纪末,前所未有的最强自然灾难!
这场毁天灭地的灾害背后,可能有着不为
世人所知的惊天秘密......"
],
#-----------------------------------------------------------------------------
1 => [
# クエスト名,
"游戏指南书",
# 委托人(""内显示),
"系统",
# Rank等级 Rank.new(quest, r_next, r_down),
Rank.new(1, 0), # 成功時Rank等级上升
# 初期状态 StXXX.new,
StEv.new,
[],
[],
[],
Sw.new, # SW操作无
# 任务内容
"
\\c[6]特技类;\\c[0]特殊的强化技能是装备附带的特技。\\c[6]
契约类;\\c[0]契约书的使用限制为每场战斗一次。\\c[6]
怪物类;\\c[0]不死族、恶魔族、昆虫类、人型怪。\\c[6]
Boss类;\\c[0]免疫任何形式的必杀和特定的状态。\\c[6]精英怪;\\c[0]能力值为普通怪的1.3倍,奖励1.3倍。\\c[6]场景类;\\c[0]按住Shift键可以加速移动速度。\\c[6]
状态类;\\c[0]部分状态对特定怪物几率降低或增加。\\c[6]特殊类;\\c[0]部分Boss拥有秒杀技能,请小心应对"
],
#-----------------------------------------------------------------------------
4 => [
# 任务名,
"情侣的信物",
# 委托人(""内显示),
"教会",
# Rank等级 Rank.new(quest, r_next, r_down),
Rank.new(1, 0), # 成功時Rank等级+1
# 初期状态 StXXX.new,
StGuild.new(true), # 公会任务、初期表示ON
# 前提条件[CondXXX.new, …],
[CondQuestT.new(3)], # 任务[3]结束(成功)
# clear条件[CondXXX.new, …],
[CondItem.new(1, 2), # 物品[1]×2、clear時减少
CondEv.new("谈话")], # 事件quest_clear/quest_fail二者有一、進展栏的显示名称"谈话"
# 报酬[RsltXXX.new, …],
[RsltMoney.new(1000)], # 成功時:1000G
# 开关操作Sw.new(play_sw, clear_sw, fail_sw),
Sw.new, # SW操作无
# 任务内容
"\\c[5]世界地图的\\+丽罗\\+!\\c[0]将双子环送给她。
信物之上饱含了寄主的思念之意......
"
],
#-----------------------------------------------------------------------------
5 => [
# 任务名,
"头号赏金手",
# 委托人(""内显示),
"系统",
# Rank等级 Rank.new(quest, r_next, r_down),
Rank.new(1, 0), # 成功時Rank等级+1
# 初期状态 StXXX.new,
StGuild.new(true), # 公会任务、初期表示ON
# 前提条件[CondXXX.new, …],
[], # 任务[4]结束(成功)
# clear条件[CondXXX.new, …],
[CondEnemy.new(2, 1),
CondEnemy.new(38, 1),
CondEnemy.new(39, 1),
CondEnemy.new(40, 1),
CondEnemy.new(41, 1),
CondEnemy.new(42, 1),
CondEnemy.new(43, 1),
CondEnemy.new(44, 1),],
# 报酬[RsltXXX.new, …],
[RsltMoney.new(36000)], # 成功時:2500G
# 开关操作Sw.new(play_sw, clear_sw, fail_sw),
Sw.new, # SW操作无
# 任务内容
"\\c[5]\\+Boss怪物\\+!\\c[0]击杀8个通缉犯!
可以获得大量的金币奖励!
"
],
#-----------------------------------------------------------------------------
6 => [
# 任务名,
"契约书狂人",
# 委托人(""内显示),
"教会",
# Rank等级 Rank.new(quest, r_next, r_down),
Rank.new(1, 0),
# 初期状态 StXXX.new,
StGuild.new(true), # 公会任务、初期表示ON
# 前提条件[CondXXX.new, …],
[CondQuestT.new(5)],
# clear条件[CondXXX.new, …],
[CondArmor.new(1, 2),
CondEv.new("谈话")],
# 报酬[RsltXXX.new, …],
[RsltMoney.new(5000)],
# 开关操作Sw.new(play_sw, clear_sw, fail_sw),
Sw.new,
# 任务内容
"\\c[5]\\+契约书\\+!\\c[0]使用30次!
可以得到永久的随机对象契约书。
"
],
#-----------------------------------------------------------------------------
7 => [
# 任务名,
"流星的碎片",
# 委托人(""内显示),
"教会",
# Rank等级 Rank.new(quest, r_next, r_down),
Rank.new(1, 0),
# 初期状态 StXXX.new,
StGuild.new(true), # 公会任务、初期表示ON,
# 前提条件[CondXXX.new, …],
[CondQuestT.new(6)],
# clear条件[CondXXX.new, …],
[CondMoney.new(50)],
# 报酬[RsltXXX.new, …],
[RsltMoney.new(10000)],
# 开关操作Sw.new(play_sw, clear_sw, fail_sw),
Sw.new,
# 任务内容
"\\c[5]\\+流星碎片\\+!\\c[0]收集9片交给教会!
可以得到强化杀伤力的特殊装备!
"
],
#-----------------------------------------------------------------------------
8 => [
# 任务名,
"上级试炼@2",
# 委托人(""内显示),
"公会会长",
# Rank等级 Rank.new(quest, r_next, r_down),
Rank.new(8, 0),
# 初期状态 StXXX.new,
StGuild.new,
# 前提条件[CondXXX.new, …],
[CondQuestT.new(7)],
# clear条件[CondXXX.new, …],
[CondMoney.new(500),
CondEv.new("谈话")],
# 报酬[RsltXXX.new, …],
[RsltMoney.new(25000)],
# 开关操作Sw.new(play_sw, clear_sw, fail_sw),
Sw.new,
# 任务内容
"同上的工作w"
],
#-----------------------------------------------------------------------------
9 => [
# 任务名,
"神之亵渎",
# 委托人(""内显示),
"马夫托",
# ランク Rank.new(quest, r_next, r_down),
Rank.new(9, 0, 0), # 成功時:Rank等级+1、失败時:Rank等级-1
# 初期状态 StXXX.new,
StEv.new,
# 前提条件[CondXXX.new, …],
[],
# clear条件[CondXXX.new, …],
[],
# 报酬[RsltXXX.new, …],
[RsltMoney.new(50000)],
# 开关操作Sw.new(play_sw, clear_sw, fail_sw),
Sw.new(21, 22, 23),
# 任务内容
"神\\c[3]阿努比斯\\c[0]连接冥界的使徒、似乎准备攻击地上世界\\n"+
"冥界的力量相当強大、到时候地上世界的崩溃只是时间问题・・・\\n\\n"+
"阻止神\\c[3]阿努比斯\\c[0]的野望、守护地上世界!!"
],
#-----------------------------------------------------------------------------
10 => [
# 任务名,
"深红之魔王",
# 委托人(""内显示),
"水棲温蒂尼",
# Rank等级 Rank.new(quest, r_next, r_down),
Rank.new(10, nil, 1), # 成功時:不变、失败時:Rank等级归1
# 初期状态 StXXX.new,
StEv.new,
# 前提条件[CondXXX.new, …],
[CondQuestT.new(9)],
# クリア条件[CondXXX.new, …],
[],
# 报酬[RsltXXX.new, …],
[RsltMoney.new(100000)],
# 开关操作Sw.new(play_sw, clear_sw, fail_sw),
Sw.new(24, 25, 26),
# 任务内容
"魔王\\c[3]大菠萝\\c[0]打倒"#(原文diablo无误,暗黑破坏神)
],
}
#==============================================================================
#【事件追记用 自由记述栏】
# 事件脚本可输入文字的控制字符
# 这里准备的是固定值,实际上长文本的输入也是可以的
#==============================================================================
#=begin ## 設定サンプル[START]
Q_1_CLEAR = "\\p\\c[1]【任务结果】\\c[0]\\n"+
"我的女儿平安地回家了\\n非常感谢"
Q_1_FAIL = "\\p\\c[1]【任务结果】\\c[0]\\n"+
"・・・我没有什么话可说了"
Q_2_CLEAR = "\\p\\c[1]【任务结果】\\c[0]\\n"+
"\\c[3]芬里尔\\c[0]被成功讨伐了、非常感谢\\n"+
"我们的村子又能回归安稳和平的日常了"
Q_2_FAIL = "\\p\\c[1]【任务结果】\\c[0]\\n"+
"村子・・・\\n呜、借助人类的力量果然是个错误吗・・・"
Q_9_CLEAR = "\\p\\c[1]【任务结果】\\c[0]\\n"+
"神\\c[3]阿努比斯\\c[0]虽然没有被彻底打倒、但已经阻止了冥界的入侵\\n"+
"天界的代表一定会向你表示感谢的"
Q_9_FAIL = "\\p\\c[1]【任务结果】\\c[0]\\n"+
"虽然心情沉重但不得不承认・・・\\n这个地上世界已经完结了"
#=end ## 设定案例[END]
#==============================================================================
# ■ 脚本条件check(上级者向)
# 前提条件、clear条件CondScript类的场合有设定必要
#==============================================================================
class Condition
#--------------------------------------------------------------------------
# ● 条件check
#【说明】
# 是否符合条件?
#【引数】
# id : 设定時导入id
# num : 设定時导入num
#【返回值】
# true : 条件适合
# false : 条件不适合
#--------------------------------------------------------------------------
def script_clear?(id, num)
=begin # 例
case id
when 0 # 队伍人数check
return ($game_party.members.size >= num) # 人数在num以上时条件适合
when 1 # 队伍人数check
return ($game_party.members.size <= num) # 人数在num以下时条件适合
end
=end
return true
end
#--------------------------------------------------------------------------
# ● 条件不适合時的message
#【说明】
# 当条件不符合时显示的信息
#【引数】
# type : 前提条件未适合(0) or clear条件未適合(1)
# id : 设定時导入id
# num : 设定時导入num
#【返回值】
# Message要显示的文本
#--------------------------------------------------------------------------
def script_cause(type, id, num)
=begin # 例
case id
when 0 # 队伍人数check
return "队伍人数\\n还差#{(num - $game_party.members.size)}人"
when 1 # 队伍人数check
return "队伍人数必须在\\n#{num}人以下"
end
=end
return (type==0 ? "开始" : "clear") + "条件不满足"
end
end
end
|
|