#============================================================================== # ■ 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 |
#============================================================================== # ■ 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 |
不会啊,我贴一下,脚本 ,我是想要,对话后不马上完成任务,而是只在任务界面显示谈话完成的步骤,然后我再去交任务 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-17 11:49
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.