baszto Advance
Posts : 317 Thanked : 2
| Subyek: [error]omega quest 2012-01-04, 23:11 | |
| kk knpa ya scriptnya error past sya tmbhin jdi 3 quest jdi kyak gni sblumnya pas 2 quest doang sih ga masalah tpi pas dtbah lgi bru deh kyak gtu. ni scriptny - Code:
-
# ============================================================================= # Omegas7's Ultimate Quest System Script. # ============================================================================= # Author: Omegas7. # Version: 3.0 (Final). # My Site: baseomega.forumer.com # ============================================================================= # This final version comes loaded with a better looking layout, # a more customizable configuration area, etc... # ============================================================================= # Features: # > Easy to create quests in the script. # > A quest works with a variable, no switches! # > Unlimited tasks for each quest! (Scroll Function) # > Incomplete and Complete icons. # > Set Background and HUD graphics for your own menu style! # > You can use pictures for each quest! # > Descriptions of each quest. # > Variable support! Display variables values for complex quests! # > Categories for ALL, COMPLETE, and INCOMPLETE quests. # > Automatically adds "Quest Completed" unlike older versions. # > Change Font sizes. # > Lots of customization options, check below. # ============================================================================= # Instructions: (First time? Better read them) # # Thanks for using this script. # It is quite an useful system, take your time reading the next: # # First of all, let's create a new quest for our game. # Below, in the configurations area, you will find the # [QUEST CREATION AREA]. To create your own quest, you will # need to add some code. Here is the basic template: # # QUESTS[ID] = ['Name',VAR,IconA,IconB,'Image'] # TASKS[ID] = ['Do this','And this','And this'] # DESCRIPTIONS[ID] = ['This is an awesome','quest for noobs'] # # ID will be your quest ID number. # So if you got 20 quests, your new quest ID would be 21. # 'Name' is... The name lol. Make sure it to be inside quotes ' '. # VAR is the variable ID which controls this quest. # IconA is the incomplete icon index number. # IconB ia the complete one. # 'Image' will be the picture displayed on top of your quest. # You can disable it by putting 'nil' (no quotes). # # TASKS will be the array containing all the To-Do stuff of the # quest. Each task is a string, inside quotes ' '. # Each task, is separated by a comma. # You can have unlimited tasks (the window will become scrollable). # You can put \v[id] for showing variables in your tasks! # # DESCRIPTIONS is like TASKS. Just that it will be the description # being shown in the main menu for the quest. # Each element is a text line. # # Look at the demo if you need help. # For further help, let me know. My site is: # baseomega.forumer.com # =============================================================================
module OMEGAS7 module QUEST # ========================================================================= # Configuration Options. # ========================================================================= # Exit returns to MAP or to MENU? EXIT_TO = "MENU" # If MENU, then, what slot will it appear on? (Counting from 0) MENU_RETURN_SLOT = 6 # Background and HUD graphics, both in system folder. BACKGROUND = 'QUEST BG' HUD = 'QUEST HUD' # Tasks prefix and icon spacing (spaces before the quest name for the icon). TASKS_PREFIX = "> " ICON_SPACING = " " # Main menu quests and task lines font sizes: QUESTS_FONT_SIZE = 13 TASKS_FONT_SIZE = 16 # Category Icon Indexes. # [All,Completed,Incompleted] CATEGORY_ICONS = [100,101,99] # ========================================================================= QUESTS = [] # Don't edit. TASKS = [] # Don't edit. DESCRIPTIONS = [] # Don't edit. # ========================================================================= QUESTS[0] = ['Grandpa tooth',2,99,101,] TASKS[0] = ['I must find that tooth somewhere in this castle', 'I think I got the tooth. Go talk to the kid.'] DESCRIPTIONS[0] = ['find grandpa tooth'] QUESTS[1] = ['candy for bali',1,99,101,] TASKS[1] = ['Buy some Candy for Bali on Rustis villag', 'now give it to bali'] DESCRIPTIONS[1] = ['Give bali Some candy'] QUEST[2] = ['find a lost pendant',3,99,101,] TASKS[2] = ['I must search the pendant','I shall give it back to the chief'] DESCRIPTION[2] = ['find a lost pendant'] end end
class Omega_Quest < Scene_Base include OMEGAS7::QUEST def initialize @index = 0 @mode = 0 @empty_list = false create_background create_quest_list create_quest_commands create_quest_description create_category create_information end def create_background @background = Sprite_Base.new @background.bitmap = Cache.system(BACKGROUND.to_s) @background.z = 50 @hud = Sprite_Base.new @hud.bitmap = Cache.system(HUD.to_s) @hud.z = 60 end def create_quest_list @list = [] @list[0] = [] @list[1] = [] @list[2] = [] for i in 0...QUESTS.size if $game_variables[QUESTS[i][1].to_i].to_i > TASKS[i].size @list[0][i] = [QUESTS[i][0].to_s,true,i] @list[1][i] = [QUESTS[i][0].to_s,true,i] elsif $game_variables[QUESTS[i][1].to_i].to_i > 0 @list[0][i] = [QUESTS[i][0].to_s,false,i] @list[2][i] = [QUESTS[i][0].to_s,false,i] end end @list[0].compact! @list[1].compact! @list[2].compact! @list.compact! if @list[0].empty? @empty_list = true end end def create_quest_commands create_quest_list @command_window = Window_Quest_Command.new(250,@list[@mode]) @command_window.y = 90 @command_window.x = 12 @command_window.opacity = 0 @index = @command_window.index end def create_quest_description @window_description = Window_Base.new(280,80,250,170) @window_description.contents.font.size = QUESTS_FONT_SIZE @window_description.opacity = 0 refresh_description end def refresh_description @window_description.contents.clear if @list[@mode][@command_window.index][2] != nil for i in 0...DESCRIPTIONS[@list[@mode][@command_window.index][2]].size txt = DESCRIPTIONS[@list[@mode][@command_window.index][2]][i].to_s @window_description.contents.draw_text(0,18*i,260,18,txt.to_s) end end end def update @command_window.update @category.update if @mode != @category.index @mode = @category.index @command_window.dispose create_quest_commands refresh_description end if @index != @command_window.index @index = @command_window.index refresh_description end if Input.trigger?(Input::C) && @list[@mode][@command_window.index][2] != nil @background.dispose @hud.dispose @command_window.dispose @window_description.dispose @category.dispose @information.dispose $scene = Omega_Quest_View.new(@list[@mode][@command_window.index][2]) elsif Input.trigger?(Input::C) && @list[@mode][@command_window.index][2] == nil Sound.play_buzzer end if Input.trigger?(Input::B) finish end end def create_category @category = Window_Categories_Command.new(180) @category.opacity = 0 @category.x = -6 @category.y = 40 end def create_information @information = Window_Base.new(544-250,416-120,250,120) @information.opacity = 0 @information.contents.font.size = 16 if @empty_list == true @information.contents.draw_text(0,0,250,24,"Current Total Quests: 0") else @information.contents.draw_text(0,0,250,24,"Current Total Quests: " + @list[0].size.to_s) end @information.contents.font.color = Color.new(0,255,0) @information.contents.draw_text(0,24,250,24,"Completed Quests: " + @list[1].size.to_s) @information.contents.font.color = Color.new(255,167,0) @information.contents.draw_text(0,48,250,24,"Incomplete Quests: " + @list[2].size.to_s) end def finish @background.dispose @hud.dispose @command_window.dispose @window_description.dispose @category.dispose @information.dispose case EXIT_TO when "MENU" $scene = Scene_Menu.new(MENU_RETURN_SLOT) when "MAP" $scene = Scene_Map.new end end end
class Omega_Quest_View < Scene_Base include OMEGAS7::QUEST def initialize(id) @font_size = 16 @line_height = 18 @id = id @limit_y = 0 draw_picture if QUESTS[@id][4] != nil set_tasks create_window refresh_window end def draw_picture @picture = Sprite_Base.new @picture.bitmap = Cache.system(QUESTS[@id][4].to_s) @picture.x = (544/2) - (@picture.width/2) @picture.z = 250 end def set_tasks @tasks = [] for i in 0...TASKS[@id].size if $game_variables[QUESTS[@id][1]].to_i >= i + 1 @tasks[i] = TASKS[@id][i].to_s end end if $game_variables[QUESTS[@id][1]].to_i > TASKS[@id].size @tasks.push('Quest Completed!') end end def create_window height = @line_height * @tasks.size + 32 y = 0 if @picture != nil y += @picture.height @limit_y = @picture.height end @window = Window_Base.new(0,y,544,height) end def refresh_window @window.contents.clear @window.contents.font.size = @font_size @display = [] for i in 0...@tasks.size @display[i] = @tasks[i].clone @display[i].to_s.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] } @display[i].to_s.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] } @window.contents.draw_text(0,i * @line_height,500,@line_height,TASKS_PREFIX.to_s + @display[i].to_s) end end def update if Input.press?(Input::DOWN) && ((@window.y + @window.height) > 416) @window.y -= 3 elsif Input.press?(Input::UP) && (@window.y < @limit_y) @window.y += 3 end if Input.trigger?(Input::B) @picture.dispose if @picture != nil @window.dispose $scene = Omega_Quest.new end end end
class Window_Quest_Command < Window_Selectable include OMEGAS7::QUEST
attr_reader :commands
def initialize(width, commands, column_max = 1, row_max = 0, spacing = 32) @commands = commands @empty = false if @commands.empty? @commands[0] = ["No quests.",false] @empty = true end if row_max == 0 row_max = (@commands.size + column_max - 1) / column_max end super(0, 0, width, row_max * WLH + 32, spacing) @item_max = commands.size @column_max = column_max self.contents.font.size = TASKS_FONT_SIZE refresh self.index = 0 end
def refresh self.contents.clear for i in 0...@item_max draw_item(i) end end
def draw_item(index, enabled = true) spacing = ICON_SPACING.to_s rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) self.contents.font.color = Color.new(255,0,0) self.contents.font.color.alpha = enabled ? 255 : 128 if @empty == false if @commands[index][1] == true self.contents.font.color = Color.new(0,255,0) draw_icon(QUESTS[@commands[index][2]][3].to_i,rect.x,rect.y) else self.contents.font.color = Color.new(255,0,0) draw_icon(QUESTS[@commands[index][2]][2].to_i,rect.x,rect.y) end elsif @empty == true spacing = "" end self.contents.draw_text(rect, spacing + @commands[index][0].to_s) end end
class Window_Categories_Command < Window_Selectable include OMEGAS7::QUEST
attr_reader :commands
def initialize(width, column_max = 3, row_max = 1, spacing = 32) super(0, 0, width, row_max * WLH + 32, spacing) @commands = ['','',''] @item_max = commands.size @column_max = column_max @icons = CATEGORY_ICONS refresh self.index = 0 end
def refresh self.contents.clear for i in 0...@item_max draw_item(i) end end
def draw_item(index, enabled = true) rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) draw_icon(@icons[index],rect.x,rect.y) end end mohon bantuanya untuk yg kesekian kaliny thx | |
|
baszto Advance
Posts : 317 Thanked : 2
| Subyek: Re: [error]omega quest 2012-01-04, 23:15 | |
| oh ternyata ada yg kurang 's' toh maaf om momod n mimin apabila saya nyampah topic solved | |
|