累计送礼: 0 个 累计收礼: 1 个 TA的每日心情 开心 2026-7-12 04:10
签到天数: 209 天
连续签到: 2 天
[LV.7]常住居民III
管理员
VIP
7
卡币
58883
OK点
16
推广点
0
同能卷
50
积分 68848
Hi there. This is a pretty old script, but here it is nonetheless. I'm not the best programmer, so there may be compatibility issues with other scripts, but if you wanna give it a try here it is
- Heres an old vid of it:
Code:
Spoiler Code:
#-============================================================================-# # ProQuest Version 3 # # Now with EasyUpdate! No more need to update and completely redo quests. #-============================================================================-# #-=HOW TO USE!-=+=============================================================-# =begin Set quest name: (id = quest id number) $game_quests.setname(id, name) Set quest short name: $game_quests.setshortname(id, name) Set quest description: $game_quests.setdesc(id, desc) can be 3 lines long. Set quest sender: $game_quests.setsender(id, name) Set quest EXP: $game_quests.setexp(id, amount) Set quest Gold: $game_quests.setgold(id, amount) Set quest Item: $game_quests.setitem(id, name) Set quest location $game_quests.setlocation(id, location) Set quest Face $game_quests.setface(id, face_name, face_index) Set quest expired $game_quests.setexpired(id, on) Set quest level: $game_quests.set_level(id, min_level, max_level) set quest type: $game_quests.set_type(id, type, type_icon) Set goals: (Use 0 if disabled) up to 6 goals. $game_quests.set_goals(id, g1, g2, g3, g4, g5, g6) Set goal Min: $game_quests.set_goals_min(id, g1, g2, g3, g4, g5, g6) Set goal Max: $game_quests.set_goals_max(id, g1, g2, g3, g4, g5, g6) Check if quest is complete, and if so, complete it. $game_quests.do_complete(id) Set points earned for completing quest $game_quests.set_quest_points(id, val) Add Goal progress: $game_quests.add_goal_progress(id, value_to_add) $game_quests.add_goalx_progress(id, value_to_add) ^ replace x with 2 through 6. Subtract Goal progress: $game_quests.subtract_goal_progress(id, value_to_subtract) $game_quests.subtract_goalx_progress(id, value_to_subtract) ^ replace x with 2 through 6. =end #-[Config-#===================================================================-# Use_Windowskin=true Map_window_X=0 Map_window_Y=0 Gold_Icon=361 EXP_Icon=121 Item_Icon=192 No_Quest_Found_MSG = "Quest Not Available" $quest_size=0 $font_size=Font.default_size Window_Color_r=55 Window_Color_g=25 Window_Color_b=15 QP_Name="QP" $error_msg = "-not found-" $exp_name="EXP" $gold_name="G" Complete_ME="Audio/me/Fanfare1" Complete_ME_Volume = 100 Complete_ME_Pitch=0 #-============================================================================-# #-[Make Quest Information]-#==================================================-# class Game_Quests def initialize @name= [] @desc= [] @sender= [] @exp = [] @gold = [] @item = [] @location = [] @face = [] @face_id = [] @expired = [] @min_level = [] @max_level = [] @type = [] @type_icon = [] @goal = [] @goal2 = [] @goal3 = [] @goal4 = [] @goal5 = [] @goal6 = [] @short_name= [] @quest_complete = [] @quest_accepted = [] @goal_progress= [] @goal2_progress= [] @goal3_progress= [] @goal4_progress= [] @goal5_progress= [] @goal6_progress= [] @goal_min = [] @goal2_min = [] @goal3_min = [] @goal4_min = [] @goal5_min = [] @goal6_min = [] @goal_max = [] @goal2_max = [] @goal3_max = [] @goal4_max = [] @goal5_max = [] @goal6_max = [] @quest_size = 0 @quest_rating= [] @number_complete=0 @qp=0 @quests_enabled=0 $index=0 $quest_id=0 $mode=0 $selected_quest=0 $show_quest=0 end def get_completed_quests return @number_complete end def quests_enabled if @quests_enabled==0 return false else return true end end def quest_size return @quest_size-1 end def enable_quests @quests_enabled=1 end def set_quest_points(id, val) @quest_rating[id]=val end def get_poitns(id) return @quest_rating[id] end def accept(id) return @quest_accepted[id] end def do_accept(id) @quest_accepted[id] = true enable_quests end def do_un_accept(id) @quest_accepted[id] = false end def check_complete(id) if @goal_min[id]==@goal_max[id] && @goal2_min[id]==@goal2_max[id] && @goal3_min[id]==@goal3_max[id] && @goal4_min[id]==@goal4_max[id] && @goal5_min[id]==@goal5_max[id] && @goal6_min[id]==@goal6_max[id] return true else return false end end def do_complete(id) if check_complete(id) && @quest_complete[id] != true @number_complete+=1 @qp+=@quest_rating[id] @quest_complete[id]=true end end def name(id) return @name[id] end def short_name(id) return @short_name[id] end def desc(id) return @desc[id] end def sender(id) return @sender[id] end def exp(id) return @exp[id] end def gold(id) return @gold[id] end def item(id) return @item[id] end def location(id) return @location[id] end def face(id) return @face[id] end def face_id(id) return @face_id[id] end def expired(id) return @expired[id] end def min_level(id) return @min_level[id] end def max_level(id) return @max_level[id] end def type(id) return @type[id] end def type_icon(id) return @type_icon[id] end def setname(id, str) @name[id]=str @quest_size=id+1 if @quest_size<=id #Tell how many quests there are. end def setshortname(id, str) @short_name[id]=str end def setdesc(id, str) @desc[id]=str end def setsender(id, str) @sender[id]=str end def setexp(id, str) @exp[id]=str end def setgold(id, str) @gold[id]=str end def setitem(id, str) @item[id]=str end def setlocation(id, str) @location[id]=str end def setface(id, facename, str) @face[id]=facename @face_id[id]=str end def setexpired(id, str) @expired[id]=str end def set_level(id, str1, str2) @min_level[id]=str1 @max_level[id]=str2 end def setmax_level(id, str) @max_level[id]=str end def set_type(id, str1, str2) @type[id]=str1 @type_icon[id]=str2 end def settype_icon(id, str) @type_icon[id]=str end def set_goals(id, g1, g2, g3, g4, g5, g6) @goal[id]=g1 @goal2[id]=g2 @goal3[id]=g3 @goal4[id]=g4 @goal5[id]=g5 @goal6[id]=g6 end def set_goals_min(id, g1, g2, g3, g4, g5, g6) @goal_min[id]=g1 @goal2_min[id]=g2 @goal3_min[id]=g3 @goal4_min[id]=g4 @goal5_min[id]=g5 @goal6_min[id]=g6 end def set_goals_max(id, g1, g2, g3, g4, g5, g6) @goal_max[id]=g1 @goal2_max[id]=g2 @goal3_max[id]=g3 @goal4_max[id]=g4 @goal5_max[id]=g5 @goal6_max[id]=g6 end def add_goal_progress(id, val) @goal_min[id]=0 if @goal_min[id]==nil @goal_min[id]+=val end def add_goal2_progress(id, val) @goal2_min[id]=0 if @goal2_min[id]==nil @goal2_min[id]+=val end def add_goal3_progress(id, val) @goal3_min[id]=0 if @goal3_min[id]==nil @goal3_min[id]+=val end def add_goal4_progress(id, val) @goal4_min[id]=0 if @goal4_min[id]==nil @goal4_min[id]+=val end def add_goal5_progress(id, val) @goal5_min[id]=0 if @goal5_min[id]==nil @goal5_min[id]+=val end def add_goal6_progress(id, val) @goal6_min[id]=0 if @goal6_min[id]==nil @goal6_min[id]+=val end def subtract_goal_progress(id, val) @goal_min[id]=0 if @goal_min[id]==nil @goal_min[id]-=val end def subtract_goal2_progress(id, val) @goal2_min[id]=0 if @goal2_min[id]==nil @goal2_min[id]-=val end def subtract_goal3_progress(id, val) @goal3_min[id]=0 if @goal3_min[id]==nil @goal3_min[id]-=val end def subtract_goal4_progress(id, val) @goal4_min[id]=0 if @goal4_min[id]==nil @goal4_min[id]-=val end def subtract_goal5_progress(id, val) @goal5_min[id]=0 if @goal5_min[id]==nil @goal5_min[id]-=val end def subtract_goal6_progress(id, val) @goal6_min[id]=0 if @goal6_min[id]==nil @goal6_min[id]-=val end def get_goal(id) return @goal[id] end def get_goal2(id) return @goal2[id] end def get_goal3(id) return @goal3[id] end def get_goal4(id) return @goal4[id] end def get_goal5(id) return @goal5[id] end def get_goal6(id) return @goal6[id] end def get_goal_max(id) return @goal_max[id] end def get_goal2_max(id) return @goal2_max[id] end def get_goal3_max(id) return @goal3_max[id] end def get_goal4_max(id) return @goal4_max[id] end def get_goal5_max(id) return @goal5_max[id] end def get_goal6_max(id) return @goal6_max[id] end def get_goal_min(id) return @goal_min[id] end def get_goal2_min(id) return @goal2_min[id] end def get_goal3_min(id) return @goal3_min[id] end def get_goal4_min(id) return @goal4_min[id] end def get_goal5_min(id) return @goal5_min[id] end def get_goal6_min(id) return @goal6_min[id] end def qp(id) return @quest_rating[id] end def player_qp return @qp end def amount return @quest_size end end #function to set font size in description def setFont(size) $font_size=size end def call_quest if $menu==0 $mode=0 SceneManager.call(Scene_Quest) else $mode=1 SceneManager.call(Scene_Quest) end end #-============================================================================-# #-[DataManager Alias]-#=======================================================-# module DataManager class << self alias :pq_create_game_objects :create_game_objects alias :pq_make_save_contents :make_save_contents alias :pq_extract_save_contents :extract_save_contents end def self.create_game_objects $game_quests = Game_Quests.new pq_create_game_objects end def self.make_save_contents contents = pq_make_save_contents contents[:quests] = $game_quests contents end def self.extract_save_contents(contents) pq_extract_save_contents(contents) $game_quests = contents[:quests] end end #-============================================================================-# #-[Quest Window]-#============================================================-# class Quest_Window < Window_Base def initialize super(0, 0, Graphics.width, Graphics.height) self.windowskin=Cache.system("QuestWindow") if Use_Windowskin == true self.opacity=0 refresh end def refresh if $game_quests.name($quest_id)!=nil contents.clear contents.fill_rect(0, 0, 96, 96, face_bg) draw_face($game_quests.face($quest_id), $game_quests.face_id($quest_id), 0, 0) contents.fill_rect(0, 96, 96, line_height, face_bg) contents.fill_rect(96, 0, contents.width-96, line_height*4, dark) contents.fill_rect(96, 96, contents.width-96, line_height, darker) contents.fill_rect(96, 96, contents.width-96, 1, face_bg) contents.fill_rect(contents.width/2, 96+line_height*2, 1, line_height*2, white) contents.fill_rect(contents.width/2, 96+line_height*8, 1, line_height*2, white) contents.font.size=Font.default_size draw_text(0, 96, 96, line_height, $game_quests.sender($quest_id)) text=sprintf("%s", $game_quests.desc($quest_id)) ypos = 0 change_color(normal_color) contents.font.size=$font_size text.split(/\n/).each do |t| draw_text(96, ypos, contents.width-96, line_height, t) ypos += $font_size end contents.font.size=Font.default_size $font_size=Font.default_size draw_icon($game_quests.type_icon($quest_id), 96, 96) contents.fill_rect(Graphics.width-300, 96, 100-24, line_height, dark2) draw_icon(EXP_Icon, contents.width-300, 96) contents.fill_rect(Graphics.width-200, 96, 100-24, line_height, dark2) draw_icon(Gold_Icon, contents.width-200, 96) contents.fill_rect(Graphics.width-100, 96, 100-24, line_height, dark2) draw_icon(Item_Icon, contents.width-100, 96) change_color(system_color) draw_text(96+24, 96, 96, line_height, $game_quests.type($quest_id)) draw_text(Graphics.width-300, 96, 96, line_height, $game_quests.exp($quest_id)) draw_text(Graphics.width-200, 96, 96, line_height, $game_quests.gold($quest_id)) draw_text(Graphics.width-100, 96, 96, line_height, $game_quests.item($quest_id)) change_color(normal_color) contents.fill_rect(0, 96+line_height*2, contents.width/2-24, line_height, dark) draw_text(0, 96+line_height*2, 200, line_height, "Min-level:") change_color(system_color) if $game_party.members[0].level >= $game_quests.min_level($quest_id) change_color(crisis_color) if $game_party.members[0].level < $game_quests.min_level($quest_id) draw_text(0, 96+line_height*2, contents.width/2-24, line_height, $game_quests.min_level($quest_id), 2) change_color(normal_color) contents.fill_rect(0, 96+line_height*3, contents.width/2-24, line_height, dark) draw_text(0, 96+line_height*3, 200, line_height, "Max-level:") change_color(system_color) if $game_party.members[0].level <= $game_quests.max_level($quest_id) change_color(crisis_color) if $game_party.members[0].level > $game_quests.max_level($quest_id) draw_text(0, 96+line_height*3, contents.width/2-24, line_height, $game_quests.max_level($quest_id), 2) change_color(normal_color) contents.fill_rect(contents.width/2+24, 96+line_height*2, 300, line_height, dark) draw_text(contents.width/2+24, 96+line_height*2, 300, line_height, "Location:") contents.fill_rect(contents.width/2+24, 96+line_height*3, 300, line_height, dark) draw_text(contents.width/2+24, 96+line_height*3, 300, line_height, "Expired:") change_color(system_color) draw_text(contents.width/2-24, 96+line_height*2, contents.width/2+24, line_height, $game_quests.location($quest_id), 2) text="Yes" if $game_quests.expired($quest_id)==true text="No" if $game_quests.expired($quest_id)==false draw_text(contents.width/2-24, 96+line_height*3, contents.width/2+24, line_height, text, 2) contents.fill_rect(0, 96+line_height*5, 50, line_height, dark) draw_text(0, 96+line_height*5, 50, line_height, $game_quests.get_goal($quest_id)) contents.fill_rect(75, 96+line_height*5, 50, line_height, dark) contents.fill_rect(75*2, 96+line_height*5, 50, line_height, dark) contents.fill_rect(75*3, 96+line_height*5, 50, line_height, dark) contents.fill_rect(75*4, 96+line_height*5, 50, line_height, dark) contents.fill_rect(75*5, 96+line_height*5, 50, line_height, dark) draw_text(75, 96+line_height*5, 50, line_height, $game_quests.get_goal2($quest_id)) if $game_quests.get_goal2($quest_id) != 0 draw_text(75*2, 96+line_height*5, 50, line_height, $game_quests.get_goal3($quest_id)) if $game_quests.get_goal3($quest_id) != 0 draw_text(75*3, 96+line_height*5, 50, line_height, $game_quests.get_goal4($quest_id)) if $game_quests.get_goal4($quest_id) != 0 draw_text(75*4, 96+line_height*5, 50, line_height, $game_quests.get_goal5($quest_id)) if $game_quests.get_goal5($quest_id) != 0 draw_text(75*5, 96+line_height*5, 50, line_height, $game_quests.get_goal6($quest_id)) if $game_quests.get_goal6($quest_id) != 0 text=sprintf("%d/%d", $game_quests.get_goal_min($quest_id), $game_quests.get_goal_max($quest_id)) text2=sprintf("%d/%d", $game_quests.get_goal2_min($quest_id), $game_quests.get_goal2_max($quest_id)) text3=sprintf("%d/%d", $game_quests.get_goal3_min($quest_id), $game_quests.get_goal3_max($quest_id)) text4=sprintf("%d/%d", $game_quests.get_goal4_min($quest_id), $game_quests.get_goal4_max($quest_id)) text5=sprintf("%d/%d", $game_quests.get_goal5_min($quest_id), $game_quests.get_goal5_max($quest_id)) text6=sprintf("%d/%d", $game_quests.get_goal6_min($quest_id), $game_quests.get_goal6_max($quest_id)) change_color(normal_color) draw_text(0, 96+line_height*6, 50, line_height, text) if $game_quests.get_goal($quest_id) != 0 draw_text(75*1, 96+line_height*6, 50, line_height, text2) if $game_quests.get_goal2($quest_id) != 0 draw_text(75*2, 96+line_height*6, 50, line_height, text3) if $game_quests.get_goal3($quest_id) != 0 draw_text(75*3, 96+line_height*6, 50, line_height, text4) if $game_quests.get_goal4($quest_id) != 0 draw_text(75*4, 96+line_height*6, 50, line_height, text5) if $game_quests.get_goal5($quest_id) != 0 draw_text(75*5, 96+line_height*6, 50, line_height, text6) if $game_quests.get_goal6($quest_id) != 0 change_color(system_color) contents.fill_rect(0, 96+line_height*8, contents.width/2-24, line_height*2, dark) contents.fill_rect(contents.width/2+24, 96+line_height*8, contents.width/2-24, line_height*2, dark) text="Quest Worth:" draw_text(0, 96+line_height*8, Graphics.width, line_height, text) draw_text(0, 96+line_height*9, Graphics.width, line_height, "Quest Complete:") text=sprintf("%s earned:", QP_Name) draw_text(contents.width/2+24, 96+line_height*8, contents.width/2, line_height, text) draw_text(contents.width/2+24, 96+line_height*9, contents.width/2, line_height, "Quests Completed:") change_color(normal_color) text=sprintf("%d %s", $game_quests.qp($quest_id), QP_Name) draw_text(0, 96+line_height*8, contents.width/2-24, line_height, text, 2) text=sprintf("Yes") if $game_quests.check_complete($quest_id) text=sprintf("No") if !$game_quests.check_complete($quest_id) draw_text(0, 96+line_height*9, contents.width/2-24, line_height, text, 2) draw_text(contents.width/2+24, 96+line_height*8, contents.width/2+24, line_height, $game_quests.player_qp, 2) text=sprintf("%d", $game_quests.get_completed_quests) draw_text(contents.width/2-24, 96+line_height*9, contents.width/2+24, line_height, text, 2) contents.font.size=12 draw_text(0, line_height*16-4, Graphics.width, 12, "ProQuest by TheUnproPro") end end def white color=Color.new(255, 255, 255, 150) color end def dark color=Color.new(0, 0, 0, 50) color end def dark2 color=Color.new(0, 0, 0, 120) color end def face_bg color=Color.new(0, 0, 0, 100) color end def darker color=Color.new(0, 0, 55, 75) color end def update super if $do_refresh == 1 $game_quests.setface(01, $game_quests.face($quest_id), 3) contents.clear refresh $do_refresh = 0 end end end #-============================================================================-# #-[Empty Windows]-#===========================================================-# class Dummy_Window < Window_Base def initialize(x, y, width, height) super(x, y, width, height) self.windowskin=Cache.system("QuestWindow") if Use_Windowskin == true refresh end def refresh end def update_tone if Use_Windowskin == true self.tone.set(brown) else self.tone.set($game_system.window_tone) end end def brown if Use_Windowskin == true tone=Tone.new(Window_Color_r, Window_Color_g, Window_Color_b, 122) tone else end end end #-============================================================================-# #-[Quest Accept Window]-#=====================================================-# class Accept_Quests < Window_HorzCommand def make_command_list if $game_quests.accept($quest_id)==true && $game_quests.check_complete($quest_id)!=true add_command("Stop Quest", :stop) add_command("Back", :decline) end if $game_quests.accept($quest_id)!=true && $game_quests.check_complete($quest_id)!=true add_command("Accept", :accept, can_accept) add_command("Decline", :decline) end if $game_quests.check_complete($quest_id) == true add_command("Complete", :complete) add_command("Back", :decline, $game_quests.check_complete($quest_id)==false) end end def window_width return Graphics.width end def can_accept if $game_quests.min_level($quest_id) != nil && $game_quests.max_level($quest_id) != nil if $game_party.members[0].level <= $game_quests.max_level($quest_id) && $game_party.members[0].level>= $game_quests.min_level($quest_id) return true else return false end end end end #-============================================================================-# #-[Quest Display Window]-#====================================================-# class Quest_Display_Choices < Window_HorzCommand def make_command_list $i=0 while $i<$game_quests.quest_size+1 text=sprintf("%s", $error_msg) if $game_quests.accept($i)==nil text=sprintf("%s", $game_quests.name($i)) if $game_quests.accept($i)!=nil add_command(text, :cmd, $game_quests.accept($i)==true) $i+=1 end end def window_width return Graphics.width end def update super if $game_quests.name(index) != nil $do_refresh = 1 if $quest_id != index $quest_id=index end end end #-============================================================================-# #-[Quest help for map]-#======================================================-# class Window_QuestHelp < Window_Base def initialize super(0, 0, Graphics.width, Graphics.height) self.opacity=0 self.hide self.show refresh end def refresh contents.clear if $game_quests.quests_enabled == true && $show_quest==1 size=75 if $game_quests.get_goal($selected_quest) != 0 size=75*2 if $game_quests.get_goal2($selected_quest) != 0 size=75*3 if $game_quests.get_goal3($selected_quest) != 0 size=75*4 if $game_quests.get_goal4($selected_quest) != 0 size=75*5 if $game_quests.get_goal5($selected_quest) != 0 size=75*6 if $game_quests.get_goal6($selected_quest) != 0 contents.fill_rect(0, 0, size, line_height*4, darker) contents.fill_rect(0, 0, 50, line_height, dark) if $game_quests.get_goal($selected_quest) != 0 draw_text(0, 0, 50, line_height, $game_quests.get_goal($selected_quest)) contents.font.size=18 draw_text(0, line_height*3, Graphics.width, line_height, "Q-Close") draw_text(0, line_height*2, Graphics.width, line_height, $game_quests.name($selected_quest)) contents.font.size=Font.default_size contents.fill_rect(75, 0, 50, line_height, dark) if $game_quests.get_goal2($selected_quest) != 0 contents.fill_rect(75*2, 0, 50, line_height, dark) if $game_quests.get_goal3($selected_quest) != 0 contents.fill_rect(75*3, 0, 50, line_height, dark) if $game_quests.get_goal4($selected_quest) != 0 contents.fill_rect(75*4, 0, 50, line_height, dark) if $game_quests.get_goal5($selected_quest) != 0 contents.fill_rect(75*5, 0, 50, line_height, dark) if $game_quests.get_goal6($selected_quest) != 0 draw_text(75, 0, 50, line_height, $game_quests.get_goal2($selected_quest)) if $game_quests.get_goal2($selected_quest) != 0 draw_text(75*2, 0, 50, line_height, $game_quests.get_goal3($selected_quest)) if $game_quests.get_goal3($selected_quest) != 0 draw_text(75*3, 0, 50, line_height, $game_quests.get_goal4($selected_quest)) if $game_quests.get_goal4($selected_quest) != 0 draw_text(75*4, 0, 50, line_height, $game_quests.get_goal5($selected_quest)) if $game_quests.get_goal5($selected_quest) != 0 draw_text(75*5, 0, 50, line_height, $game_quests.get_goal6($selected_quest)) if $game_quests.get_goal6($selected_quest) != 0 text=sprintf("%d/%d", $game_quests.get_goal_min($selected_quest), $game_quests.get_goal_max($selected_quest)) text2=sprintf("%d/%d", $game_quests.get_goal2_min($selected_quest), $game_quests.get_goal2_max($selected_quest)) text3=sprintf("%d/%d", $game_quests.get_goal3_min($selected_quest), $game_quests.get_goal3_max($selected_quest)) text4=sprintf("%d/%d", $game_quests.get_goal4_min($selected_quest), $game_quests.get_goal4_max($selected_quest)) text5=sprintf("%d/%d", $game_quests.get_goal5_min($selected_quest), $game_quests.get_goal5_max($selected_quest)) text6=sprintf("%d/%d", $game_quests.get_goal6_min($selected_quest), $game_quests.get_goal6_max($selected_quest)) change_color(normal_color) draw_text(0, line_height, 50, line_height, text) if $game_quests.get_goal($selected_quest) != 0 draw_text(75*1, line_height, 50, line_height, text2) if $game_quests.get_goal2($selected_quest) != 0 draw_text(75*2, line_height, 50, line_height, text3) if $game_quests.get_goal3($selected_quest) != 0 draw_text(75*3, line_height, 50, line_height, text4) if $game_quests.get_goal4($selected_quest) != 0 draw_text(75*4, line_height, 50, line_height, text5) if $game_quests.get_goal5($selected_quest) != 0 draw_text(75*5, line_height, 50, line_height, text6) if $game_quests.get_goal6($selected_quest) != 0 end end def dark color=Color.new(0, 0, 0, 50) color end def darker color=Color.new(50, 50, 50, 50) color end def update super refresh if Input.trigger?(:L) Sound.play_cancel if $show_quest!=0 $show_quest=0 end end end #-============================================================================-# #-[Quest Scene]-#=============================================================-# class Scene_Quest < Scene_MenuBase def start super make_windows end def make_windows @dummy1=Dummy_Window.new(0, 0, Graphics.width, 24*6) @dummy2=Dummy_Window.new(0, 96+48, Graphics.width, 24*3) @dummy3=Dummy_Window.new(0, 96+24+96, Graphics.width, 24*3) @dummy4=Dummy_Window.new(0, 96+96+96, Graphics.width, 24*3) @dummy5=Dummy_Window.new(0, 96+96+96+24*3, Graphics.width, 24*2+8) @info=Quest_Window.new if $mode==0 @choices=Accept_Quests.new(0, 24*15-4) @choices.opacity=0 @choices.set_handler(:accept, method(:accept)) @choices.set_handler(:decline, method(:decline)) @choices.set_handler(:cancel, method(:decline)) if $game_quests.check_complete($quest_id)!=true @choices.set_handler(:stop, method(:stop)) @choices.set_handler(:complete, method(:complete)) end if $mode == 1 @choices=Quest_Display_Choices.new(0, 24*15-4) @choices.opacity=0 @choices.set_handler(:cmd, method(:cmd)) @choices.set_handler(:cancel, method(:decline)) end end def cmd $selected_quest=@choices.index $show_quest=1 $mode=0 return_scene end def complete $show_quest=0 return_scene SceneManager.call(Scene_Complete) end def accept $game_quests.do_accept($quest_id) return_scene end def stop $game_quests.do_un_accept($quest_id) $show_quest=0 $mode=0 return_scene end def decline $menu=0 $mode=0 return_scene end end #-============================================================================-# #-[Add command to menu]-#=====================================================-# class Window_MenuCommand < Window_Command alias quest_add_original_commands add_original_commands def add_original_commands quest_add_original_commands add_command("Quests", :quests, $game_quests.quests_enabled) end end #-============================================================================-# #-[Add command to menu]-#=====================================================-# class Scene_Menu < Scene_MenuBase alias quest_create_command_window create_command_window def create_command_window quest_create_command_window @command_window.set_handler(:quests, method(:quests)) end def quests $menu=1 $mode=1 $quest_id=0 SceneManager.call(Scene_Quest) end end #-============================================================================-# #-[Add window to map]-#=======================================================-# class Scene_Map < Scene_Base alias quest_create_all_windows create_all_windows def create_all_windows quest_create_all_windows @help_window=Window_QuestHelp.new end end class Window_Complete < Window_Base def initialize super(0, 0, Graphics.width, Graphics.height) self.opacity=0 Audio.me_play(Complete_ME, Complete_ME_Volume, Complete_ME_Pitch) refresh end def refresh contents.clear contents.font.size=32 $game_quests.do_un_accept($quest_id) change_color(system_color) draw_text(0, 0, Graphics.width, 32, "Quest Complete!", 1) change_color(normal_color) contents.font.size=Font.default_size text=sprintf("You earned %d %s and %d %s", $game_quests.exp($quest_id), $exp_name, $game_quests.gold($quest_id), $gold_name) draw_text(0, line_height+32, Graphics.width, line_height, text) text=sprintf("Items gained: %s", $game_quests.item($quest_id)) draw_text(0, line_height*2+32, Graphics.width, line_height, text) draw_text(0, line_height*3+32, Graphics.width, line_height, "Press confirm key to continue.") end end #-============================================================================-# #-[Quest Complete Scene]-#====================================================-# class Scene_Complete < Scene_MenuBase def start super make_win end def make_win @window=Window_Complete.new $game_party.all_members.each do |actor| actor.gain_exp($game_quests.exp($quest_id)) end $game_party.gain_gold($game_quests.gold($quest_id)) end def update super if Input.trigger?(:C) return_scene end end end 复制代码
How to use: (Event - Script)
SpoilerSet up quest: (With ID of 1 by default, change 1 to 0 if first quest.)
$quest_id=1
$game_quests.setname(01, "Veggies!")
$game_quests.setsender(01, "Derik")
$game_quests.setface(01, "People1", 3)
$game_quests.set_type(01, "Food", 298)
$game_quests.set_level(01, 1, 5)
$game_quests.setexp(01, 25)
$game_quests.setgold(01, 50)
$game_quests.setitem(01, "Sample")
$game_quests.setlocation(01, "Eastern Rosia")
$game_quests.setexpired(01, false)
#setFont(18)
$game_quests.setdesc(01, "This is the craziest thing ever. I got this awesome
recipe for some kind of stew, so I decided I'd like to try and make it.
The problem is, I need the vegetables to make it! Do you think you
can get me them?")
$game_quests.set_goals(01, "Carrots", 0, "Onions", "Basil", "Ginger", "Beats")
$game_quests.set_goals_min(01, 0, 0, 0, 0, 0, 0)
$game_quests.set_goals_max(01, 1, 3, 5, 12, 2, 3)
$game_quests.set_quest_points(01, 5)
SceneManager.call(Scene_Quest)
Add progress:
$game_quests.add_goal_progress(1, 1)
$game_quests.add_goal2_progress(1, 3)
$game_quests.add_goal3_progress(1, 5)
$game_quests.add_goal4_progress(1, 12)
$game_quests.add_goal5_progress(1, 2)
$game_quests.add_goal6_progress(1, 3)
本贴来自国际rpgmaker官方论坛作者:TheUnproPro处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:
https://forums.rpgmakerweb.com/threads/quest-script.59214/
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x