Project1
标题:
请问任务公会脚本的聊天进展任务怎么设置啊?
[打印本页]
作者:
qpzm1027
时间:
2018-2-7 13:12
标题:
请问任务公会脚本的聊天进展任务怎么设置啊?
比如,我i设置了完成方式为 聊天后通过任务。 这时候我添加一个NPC人物,在人物事件里添加什么才能够,使和他多话后,完成聊天,可以去交任务呢???
教教我谢谢啊
111.png
(51.94 KB, 下载次数: 28)
下载附件
保存到相册
2018-2-7 13:12 上传
22222.png
(168.7 KB, 下载次数: 25)
下载附件
保存到相册
2018-2-7 13:12 上传
作者:
WantMy蕙
时间:
2018-2-7 17:56
那你就设计成对话完成后打开开关,判断若开关打开就完成任务哇
作者:
qpzm1027
时间:
2018-2-7 23:09
不会啊,我贴一下,脚本 ,我是想要,对话后不马上完成任务,而是只在任务界面显示谈话完成的步骤,然后我再去交任务
作者:
qpzm1027
时间:
2018-2-7 23:10
#==============================================================================
# ■ VXAce-RGSS3-4-def 任务系统【定义】 by Claimh 汉化:疾风怒涛
#------------------------------------------------------------------------------
# 任务设定中可以使用编辑的类别
# 【设定】在上方的section中已经配置相关定义
#------------------------------------------------------------------------------
#各设定中可以使用的类别一览
# ● 等级 Rank.new
# Rank类 : 任务Rank等级的相关情报
# ● 初期状态 StXX.new
# Status类 : 详细设定向(不推荐)
# StEv类 : 事件任务板
# StGuild类 : 公会任务板
# ● 前提条件[CondXXX.new, …] 明确条件[CondXXX.new, …]
# Condition类 : 详细设定向(不推荐)
# CondItem类 : 物品
# CondWeapon类 : 武器
# CondArmor类 : 防具
# CondMoney类 : 所持金
# CondSw类 : 开关
# CondVal类 : 变量
# CondActor类 : 队伍中是否有某角色?
# CondLevel类 : Level等级
# CondEnemy类 : 击倒敌人数
# CondQuestT类 : 任务结束(成功)是否保留记录?
# CondQuestF类 : 任务结束(失败)是否保留记录?
# CondSkill类 : 技能习得
# CondClass类 : 职业判定
# CondScript类 : 脚本判定(上级者向)
# ● 报酬[RsltXXX.new, …]
# Result类 : 详细设定向(不推荐)
# RsltItem类 : 成功時获得物品
# RsltWeapon类 : 成功時获得武器
# RsltArmor类 : 成功時获得防具
# RsltMoney类 : 成功時获得金钱
# RsltSkill类 : 成功時习得技能
# RsltCmnEv类 : 成功時发动公共事件
# RsltClass类 : 成功時职业升阶
# RsltLevel类 : 成功時等级提升
# RsltActor类 : 成功時角色加入
# RsltQuestT类 : 成功時任务显示ON変更
# RsltQuestF类 : 成功時任务显示OFF変更
# RsltQuestS类 : 成功時连锁任务开始
# RsltMoneyP类 : 失败時的惩罚(交付违约金)
# RsltCmnEvP类 : 失败時发动公共事件
# RsltLevelP里 : 失败時等级下降
# RsltQuestTP类: 失败時任务显示ON変更
# RsltQuestFP类: 失败時任务显示OFF変更
# ● 开关操作Sw.new(play_sw, clear_sw, fail_sw)
# Sw类 : 任务开始・成功・失败時切换开关状态
#==============================================================================
module Quest
#-------------------------------------------------------------------------------
#【设定用固定定义】
#-------------------------------------------------------------------------------
# 音声タイプ
ME=0;SE=1
# 任务列表中的种类
PLAYING=0;CLEAR=1;FAIL=2;STAY=-1
# 公会种类
REPORT=3;SHOP=4;EXIT=5
# 报酬・条件使用种类
ITEM=0;WEAPON=1;ARMOR=2;MONEY=3
ACTOR=5;LEVEL=6;ENEMY=7;SKILL=8;CLASS=9
SW=10;VAL=11;EV=12
QUEST_T=15;QUEST_F=16;QUEST_S=17
SCRIPT=20
# ● 任务等级 Rank.new
#=============================================================================
# 任务Rank等级用的类 Rank.new(quest, r_next, r_down)
#【说明】
# 决定任务Rank等级的类。
#【引数】
# quest : 任务的Rank等级(nil或1~10) <缺省设定为nil>
# Rank等级设定为nil时将不显示Rank等级
# r_next : 任务成功時的Rank操作 <缺省设定为nil>
# nil : 没有变化
# 0 : 现在的Rank等级 + 1
# 1-10 : 指定Rank等级変更
# (自己当前的Rank等级比指定的Rank等级高则无效)
# r_down : 任务失败時的Rank操作 <缺省设定为nil>
# nil : 没有变化
# 0 : 现在的Rank等级 - 1
# 1-10 : 指定Rank等级変更
# (自己当前的Rank等级比指定的Rank等级低则无效)
#=============================================================================
class Rank
attr_reader :quest
attr_reader :r_next
attr_reader :r_down
def initialize(quest=nil, r_next=nil, r_down=nil)
@quest
= quest; @r_next = r_next; @r_down = r_down
end
end
# ● 初期状态 StXX.new
#=============================================================================
# 初期状态用super类 Status.new(enable, visible, v_cond, v_res)
#【说明】
# 决定任务初期状态的类。
#【引数】
# enable : 公会可接受任务
# visible : 任务初期显示状态 <缺省设定为true>
# v_cond : 进展状况画面初期显示状态 <缺省设定为true>
# v_res : 报酬画面初期显示状态 <缺省设定为true>
#=============================================================================
class Status
attr_reader :enable
attr_reader :visible
attr_reader :v_res
attr_reader :v_cond
attr_reader :chg_ev
attr_reader :ids
def initialize(enable, visible=true, v_cond=true, v_res=true, chg_ev=false, ids=[])
@enable=enable; @visible=visible; @v_res=v_res
@v_cond=v_cond; @chg_ev = chg_ev; @ids = ids
end
end
#-----------------------------------------------------------------------------
# 初期状态用的类(事件用) StEv.new(v_res, v_cond)
#【说明】
# 可以用来在事件中简易设定任务。
#【引数】
# v_cond : 进展状況画面初期显示状态 <缺省设定为false>
# v_res : 报酬画面初期显示状态 <缺省设定为false>
#-----------------------------------------------------------------------------
class StEv < Status
def initialize(v_cond=false, v_res=false)
super(false, true, v_cond, v_res)
end
end
#-----------------------------------------------------------------------------
# 初期状态用的类(公会用) StGuild.new(visible, v_cond, v_res, ids)
#【说明】
# 可以用来在公会中简易设定任务。
#【引数】
# visible : 任务初期显示状态 <缺省设定为false>
# v_cond : 进展状況画面初期显示状态 <缺省设定为true>
# v_res : 报酬画面初期显示状态 <缺省设定为true>
# ids : 自公会接受的任务ID <缺省设定为没有限制>
#-----------------------------------------------------------------------------
class StGuild < Status
def initialize(visible=false, v_cond=true, v_res=true, ids=[])
super(true, visible, v_cond, v_res)
@ids = ids
end
end
#-----------------------------------------------------------------------------
# 初期状态用的类(公会用) StGuildEv.new(visible, v_cond, v_res, ids)
#【说明】
# 可以简易设定一个公会任务
# 当使用这个类时,遵循以下任务设定。
# 任务开始 : 在公会接受任务
# 任务结束 : 事件结束(不能在公会报告)
#【引数】
# visible : 任务初期显示状态 <缺省设定为false>
# v_cond : 进展状況画面初期显示状态 <缺省设定为true>
# v_res : 报酬画面初期显示状态 <缺省设定为true>
# ids : 自公会接受的任务ID <缺省设定为没有限制>
#-----------------------------------------------------------------------------
class StGuildEv < Status
def initialize(visible=false, v_cond=true, v_res=true, ids=[])
super(true, visible, v_cond, v_res, true)
@ids = ids
end
end
# ● 前提条件[CondXXX.new, …] 明确条件[CondXXX.new, …]
#=============================================================================
# 条件用super类 Condition.new(type, id, num, lose, view, name)
#【引数】
# type : 种类
# id : 各个ID (MONEY, EV don't care)
# num : 任务开始or任务clear必要的个数 (SW, EV, ACTOR, QUEST don't care)
# lose : 任务开始or任务clear時是否消费(ITEM, WEAPON, ARMOR, MONEY)
# true:减少 false:不减少
# view : 进展表示栏的显示与否
# true:显示 false:不显示
# name : 进展显示使用的名称(SW, VAL, EV)
#=============================================================================
class Condition
def initialize(type, id=0, num=0, lose=false, view=true, name="")
@type = type; @id = id; @num = num; @lose = lose; @name = name
end
end
#-----------------------------------------------------------------------------
# 条件 : ITEM类 CondItem.new(id, num, lose, view)
#【条件】
# 物品[id]达到必要个数[num]吗?
#【引数】
# id : 物品ID
# num : 任务开始or任务clear必要的个数
# lose : 任务开始or任务clear時是否消费相应物品 <缺省设定为消费(true)>
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
#-----------------------------------------------------------------------------
class CondItem < Condition
def initialize(id, num=1, lose=true, view=true)
super(ITEM, id, num, lose, view)
end
end
#-----------------------------------------------------------------------------
# 条件 : WEAPON类 CondWeapon.new(id, num, lose, view)
#【条件】
# 武器[id]达到必要个数[num]吗?
#【引数】
# id : 武器ID
# num : 任务开始or任务clear必要的个数
# lose : 任务开始or任务clear時是否消费该武器 <缺省设定为消费(true)>
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
#-----------------------------------------------------------------------------
class CondWeapon < Condition
def initialize(id, num=1, lose=true, view=true)
super(WEAPON, id, num, lose, view)
end
end
#-----------------------------------------------------------------------------
# 条件 : ARMOR类 CondArmor.new(id, num, lose, view)
#【条件】
# 防具[id]达到必要个数[num]吗?
#【引数】
# id : 防具ID
# num : 任务开始or任务clear必要的个数
# lose : 任务开始or任务clear時是否消费该防具 <缺省设定为消费(true)>
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
#-----------------------------------------------------------------------------
class CondArmor < Condition
def initialize(id, num=1, lose=true, view=true)
super(ARMOR, id, num, lose, view)
end
end
#-----------------------------------------------------------------------------
# 条件 : MONEY类 CondMoney.new(num, lose, view)
#【条件】
# 金钱数达到必要的[num]了吗?
#【引数】
# num : 任务开始or任务clear必要的金钱数
# lose : 任务开始or任务clear時是否消费 <缺省设定为消费(true)>
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
# name : 进展状況栏显示的名称 <缺省设定为金钱>
#-----------------------------------------------------------------------------
class CondMoney < Condition
def initialize(num=1, lose=true, view=true, name="金钱")
super(MONEY, 0, num, lose, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : SW类 CondSw.new(id, name, view)
#【条件】
# 开关[id]为ON时任务clear
#【引数】
# id : 开关ID
# name : 进展状況栏显示的名称 <缺省设定为SW>
# view : 进展状況栏是否显示 <缺省设定为表示(true)>
#-----------------------------------------------------------------------------
class CondSw < Condition
def initialize(id, name="SW", view=true)
super(SW, id, 0, false, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : VAL类 CondVal.new(id, num, name, view)
#【条件】
# 如果変量[id]的值达到[num]以上则任务clear
#【引数】
# id : 変量ID
# num : 任务clear必要的变量值 <缺省设定为1>
# name : 进展状況栏显示的名称 <缺省设定为VAL>
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
#-----------------------------------------------------------------------------
class CondVal < Condition
def initialize(id, num=1, name="VAL", view=true)
super(VAL, id, num, false, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : EV类 CondEv.new(name, view)
#【条件】
# 在事件中实行quest_clear / quest_fail(不需要满足前提条件)
#【引数】
# name : 进展状況栏显示的名称 <缺省设定为EV>
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
#-----------------------------------------------------------------------------
class CondEv < Condition
def initialize(name="EV", view=true)
super(EV, 0, 0, false, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : ACTOR类 CondActor.new(id, num, lose, view)
#【条件】
# 角色ー[id]是否在队伍中?
#【引数】
# id : 角色ーID
# num : 0=角色ー在队伍中? / 1=角色ー不在队伍中?
# lose : true=成功時角色离队 <缺省设定为不离队(false)>
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
# name : 进展状況栏显示的名称 <缺省设定为角色名>
#-----------------------------------------------------------------------------
class CondActor < Condition
def initialize(id, num=0, lose=false, view=true, name="")
super(ACTOR, id, num, lose, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : LEVEL类 CondLevel.new(id, num, view)
#【条件】
# 角色ー[id]的Level等级是否达到指定值[num]以上?
# ※id=0则指代平均Level
#【引数】
# id : 角色ーID
# num : 任务开始or任务clear必要的Level <缺省设定为1>
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
# name : 进展状況栏显示的名称 <缺省设定为角色名或队伍平均Level>
#-----------------------------------------------------------------------------
class CondLevel < Condition
def initialize(id=0, num=1, view=true, name="")
super(LEVEL, id, num, false, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : ENEMY类 CondEnemy.new(id, num, view)
#【条件】
# 敌人ー[id]击破数是否达到指定数[num]以上?
# ※击破数需要配合击破数计算器脚本使用
#【引数】
# id : 敌人ーID
# num : 任务开始or任务clear必要的击破数 <缺省设定为1>
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
# name : 进展状況栏显示的名称 <缺省设定为敌人名>
#-----------------------------------------------------------------------------
class CondEnemy < Condition
def initialize(id=0, num=1, view=true, name="")
super(ENEMY, id, num, false, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : QUEST类 CondQuestT.new(id, view)
#【条件】
# 任务[id]是否结束(成功)?
#【引数】
# id : 任务ID
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
# name : 进展状況栏显示的名称 <缺省设定为任务名>
#-----------------------------------------------------------------------------
class CondQuestT < Condition
def initialize(id=0, view=true, name="")
super(QUEST_T, id, 0, false, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : QUEST类 CondQuestF.new(id, view)
#【条件】
# 任务[id]是否结束(失败)?
#【引数】
# id : 任务ID
# view : 进展状況栏是否显示 <缺省设定为显示(true)>
# name : 进展状況栏显示的名称 <缺省设定为任务名>
#-----------------------------------------------------------------------------
class CondQuestF < Condition
def initialize(id=0, view=true, name="")
super(QUEST_F, id, 0, false, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : Skill类 CondSkill.new(skill_id, actor_id, view)
#【条件】
# 角色ー[actor_id]技能[skill_id]是否已习得?
# ※actor_id=0 判断队伍内是否有成员习得特定技能
#【引数】
# skill_id : 技能ID
# actor_id : 角色ーID
# view : 进展状況栏是否显示 <缺省设定为为显示(true)>
# name : 进展状況栏显示的名称 <缺省设定为技能名>
#-----------------------------------------------------------------------------
class CondSkill < Condition
def initialize(skill_id, actor_id=0, view=true, name="")
super(SKILL, skill_id, actor_id, false, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : Class类 CondClass.new(class_id, actor_id view)
#【条件】
# 职业[id]-是否有成员是XX职业?
#【引数】
# class_id : 职业ID
# actor_id : 角色ーID
# view : 进展状况栏是否显示 <缺省设定为表示(true)>
# name : 进展状况栏显示的名称 <缺省设定为职业名>(这里原文为“技能名”,应该是作者笔误)
#-----------------------------------------------------------------------------
class CondClass < Condition
def initialize(class_id, actor_id=0, view=true, name="")
super(CLASS, class_id, actor_id, false, view, name)
end
end
#-----------------------------------------------------------------------------
# 条件 : Script类 CondScript.new(id, num, view)
#【条件】
# 对脚本的判定(上级者向)
# 【设定】内部的Condition#script_clear?可以自由记述
#【引数】
# id : ID情报(任意)
# num : 数值情报(任意)
# view : 进展状况栏是否显示 <缺省设定为显示(true)>
# name : 进展状况栏显示的名称 <缺省设定为Script>
#-----------------------------------------------------------------------------
class CondScript < Condition
def initialize(id=0, num=0, view=true, name="Script")
super(SCRIPT, id, view, false, view, name)
end
end
# ● 报酬[RsltXXX.new, …]
#=============================================================================
# 报酬用super类 Result.new(type, id, num)
#【引数】
# type : 种类(ITEM / WEAPON / ARMOR / MONEY)
# id : 物品 / 武器 / 防具 的ID
# num : 获得个数 <缺省设定为1>
# view : 在报酬栏中显示 <缺省设定为true>
# penalty : 任务失败時失去 <缺省设定为false>
#=============================================================================
class Result
def initialize(type, id, num=1, view=true, penalty=false)
@type = type; @id = id; @num = num; @view = view; @penalty = penalty
end
end
#-----------------------------------------------------------------------------
# 报酬 : ITEM类 RsltItem.new(id, num)
#【引数】
# id : 物品ID
# num : 获得个数 <缺省设定为1>
# view : 在报酬栏中显示 <缺省设定为true>
#-----------------------------------------------------------------------------
class RsltItem < Result
def initialize(id, num=1, view=true)
super(ITEM, id, num, view)
end
end
#-----------------------------------------------------------------------------
# 报酬 : WEAPON类 RsltWeapon.new(id, num)
#【引数】
# id : 武器ID
# num : 获得个数 <缺省设定为1>
# view : 在报酬栏中显示 <缺省设定为true>
#-----------------------------------------------------------------------------
class RsltWeapon < Result
def initialize(id, num=1, view=true)
super(WEAPON, id, num, view)
end
end
#-----------------------------------------------------------------------------
# 报酬 : ARMOR类 RsltArmor.new(id, num)
# id : 防具ID
# num : 获得个数 <缺省设定为1>
# view : 在报酬栏中显示 <缺省设定为true>
#-----------------------------------------------------------------------------
class RsltArmor < Result
def initialize(id, num=1, view=true)
super(ARMOR, id, num, view)
end
end
#-----------------------------------------------------------------------------
# 报酬 : MONEY类 RsltMoney.new(id, num)
# num : 报酬金
#-----------------------------------------------------------------------------
class RsltMoney < Result
def initialize(num)
super(MONEY, 0, num, false)
end
end
#-----------------------------------------------------------------------------
# 报酬 : SKILL类 RsltSkill.new(skill_id, actor_id)
# skill_id : 技能ID
# actor_id : 角色ーID
# view : 在报酬栏中显示 <缺省设定为true>
#-----------------------------------------------------------------------------
class RsltSkill < Result
def initialize(skill_id, actor_id, view=true)
super(SKILL, skill_id, actor_id, view) ## @id = skill_id, @num = actor_id
end
end
#-----------------------------------------------------------------------------
# 報酬 : CommonEV类 RsltCmnEv.new(cmn_ev_id)
# cmn_ev_id : 公共事件ID
#-----------------------------------------------------------------------------
class RsltCmnEv < Result
def initialize(cmn_ev_id)
super(EV, cmn_ev_id)
end
end
#-----------------------------------------------------------------------------
# 報酬 : CLASS类 RsltClass.new(class_id, actor_id)
# class_id : 职业ID
# actor_id : 角色ーID
# view : 在报酬栏中显示 <缺省设定为true>
#-----------------------------------------------------------------------------
class RsltClass < Result
def initialize(class_id, actor_id, view=true)
super(CLASS, class_id, actor_id, view) ## @id = class_id, @num = actor_id
end
end
#-----------------------------------------------------------------------------
# 报酬 : LEVEL类 RsltLevel.new(actor_id, level)
# actor_id : 角色ーID
# level : Level等级上升
# view : 在报酬栏中显示 <缺省设定为true>
#-----------------------------------------------------------------------------
class RsltLevel < Result
def initialize(actor_id, level, view=true)
super(LEVEL, actor_id, level, view)
end
end
#-----------------------------------------------------------------------------
# 报酬 : ACTOR类 RsltActor.new(actor_id)
# actor_id : 角色ーID
# view : 在报酬栏中显示 <缺省设定为true>
#-----------------------------------------------------------------------------
class RsltActor < Result
def initialize(actor_id, view=true)
super(ACTOR, actor_id, 0, view)
end
end
#-----------------------------------------------------------------------------
# 报酬 : QUEST类 RsltQuestT.new(id)
# id : 向任务ID传达ON指令
# view : 在报酬栏中显示 <缺省设定为true>
#-----------------------------------------------------------------------------
class RsltQuestT < Result
def initialize(id, view=true)
super(QUEST_T, id, 0, view)
end
end
#-----------------------------------------------------------------------------
# 报酬 : QUEST类 RsltQuestF.new(id)
# id : 向任务ID传达OFF指令
# view : 在报酬栏中显示 <缺省设定为true>
#-----------------------------------------------------------------------------
class RsltQuestF < Result
def initialize(id, view=true)
super(QUEST_F, id, 0, view)
end
end
#-----------------------------------------------------------------------------
# 报酬 : QUEST类 RsltQuestS.new(id)
# id : 开始的任务ID
# view : 在报酬栏中显示 <缺省设定为false>
#-----------------------------------------------------------------------------
class RsltQuestS < Result
def initialize(id, view=false)
super(QUEST_S, id, 0, view)
end
end
#-----------------------------------------------------------------------------
# 惩罚 : MONEY类 RsltMoneyP.new(id, num)
# num : 任务失败時损失金额
#-----------------------------------------------------------------------------
class RsltMoneyP < Result
def initialize(num)
super(MONEY, 0, num, false, true)
end
end
#-----------------------------------------------------------------------------
# 惩罚 : CommonEV类 RsltCmnEvP.new(cmn_ev_id)
# cmn_ev_id : 公共事件ID
#-----------------------------------------------------------------------------
class RsltCmnEvP < Result
def initialize(cmn_ev_id)
super(EV, cmn_ev_id, 0, false, true)
end
end
#-----------------------------------------------------------------------------
# 惩罚 : LEVEL类 RsltLevelP.new(actor_id, level)
# actor_id : 角色ID
# level : Level等级下降
#-----------------------------------------------------------------------------
class RsltLevelP < Result
def initialize(actor_id, level)
super(LEVEL, actor_id, level, false, true)
end
end
#-----------------------------------------------------------------------------
# 惩罚 : QUEST类 RsltQuestTP.new(id)
# id : 任务ID
#-----------------------------------------------------------------------------
class RsltQuestTP < Result
def initialize(id)
super(QUEST_T, id, 0, false, true)
end
end
#-----------------------------------------------------------------------------
# 惩罚 : QUEST类 RsltQuestFP.new(id)
# id : 任务ID
#-----------------------------------------------------------------------------
class RsltQuestFP < Result
def initialize(id)
super(QUEST_F, id, 0, false, true)
end
end
# ● 开关操作Sw.new(play_sw, clear_sw, fail_sw)
#=============================================================================
# 开关操作用类 Sw.new(play, clr, fail)
#【引数】
# play : 任务开始時切换到ON的ID (为0则不操作) <缺省设定为0>
# clr : 任务成功時切换到ON的ID (为0则不操作) <缺省设定为0>
# fail : 任务失败時切换到ON的ID (为0则不操作) <缺省设定为0>
#=============================================================================
class Sw
def initialize(play=0, clr=0, fail=0)
@play = play; @clr = clr; @fail = fail
end
end
end
作者:
qpzm1027
时间:
2018-2-7 23:14
#==============================================================================
# ■ 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
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1