Sorry to be a parasite, but I really don't have even basic scripting skills.
Well, first of all, I have this script:
CODE
#=============================================================================== # Quest Log System # Author game_guy # Version 3.0 #------------------------------------------------------------------------------- # Intro: # A script that keeps track of quests you obtain and complete. # # Features: # Marks quest names with a yellow color if they're completed # Easy to setup one quest # Be able to use a fairly long description # Be able to display a picture # Easy to add and complete a quest # More compatible than earlier versions # # Instructions: # Scroll down a bit until you see # Being Config. Follow the instructions there. # Scroll below that and you'll see Begin Quest Setup. Follow the steps there. # # Script Calls: # Quest.add(id) ~ Adds the quest(id) to the parties quests. # Quest.take(id) ~ Takes the quest(id) from the party. # Quest.complete(id) ~ Makes the quest(id) completed. # Quest.completed?(id) ~ Returns true if the quest(id) is completed. # Quest.has?(id) ~ Returns true if the party has quest(id). # # Credits: # game_guy ~ for making it # Beta Testers ~ Sally and Landith # Blizzard ~ Small piece of code I borrowed from his bestiary #=============================================================================== module GameGuy #================================================== # Begin Config # UsePicture ~ true means it'll show pictures in # the quests, false it wont. #================================================== UsePicture = false
def self.qreward(id) case id #================================================== # Quest Reward # Use when x then return "Reward" # x = id, Reward = reward in quotes #================================================== when 1 then return "50G" when 2 then return "2 High Potions & 50G " when 3 then return "???" when 4 then return "???" when 5 then return "???" end return "????" end
def self.qpicture(id) case id #================================================== # Quest Picture # Use when x then return "picture" # x = id, picture = picutre name in quotes #================================================== when 1 then return "ghost" end return nil end
def self.qname(id) case id #================================================== # Quest Name # Use when x then return "name" # x = id, name = quest name in quotes #================================================== when 1 then return "Colllection of war spoils" when 2 then return "The Golden Pendant" when 3 then return "My Axe!" when 4 then return "The Red Dragon" when 5 then return "Flower Extraction" end return "" end
def self.qlocation(id) case id #================================================== # Quest Location # Use when x then return "location" # x = id, location = location in quotes #================================================== when 1 then return "Unknown area" when 2 then return "Ehira Dungeon" when 3 then return "Ruins of Despair" when 4 then return "Doam Swamp" when 5 then return "Ceerp Forest" end return "????" end
def self.qdescription(id) case id #================================================== # Quest Description # Use when x then return "description" # x = id, description = quest description in quotes #================================================== when 1 then return "Bring back 1 War Spoil from Kenth Unit to Weapon Seller" when 2 then return "Help the Man with beard at the inn to find his lost golden pendant!" when 3 then return "Help the Woodcutter to find his axe!" when 4 then return "Defeat Rocoh the Red Dragon!" when 5 then return "Help Jessie extract 3 Esniato Extract." end return "" end
end
module Quest
def self.add(id) $game_party.add_quest(id) end
def self.take(id) $game_party.take_quest(id) end
def self.complete(id) $game_party.complete(id) end
def self.completed?(id) return $game_party.completed?(id) end
def self.has?(id) return $game_party.has_quest?(id) end
end
class Game_Party
attr_accessor :quests attr_accessor :completed
alias gg_quests_lat initialize def initialize @quests = [] @completed = [] gg_quests_lat end
def add_quest(id) unless @quests.include?(id) @quests.push(id) end end
def completed?(id) return @completed.include?(id) end
def complete(id) unless @completed.include?(id) if @quests.include?(id) @completed.push(id) end end end
def has_quest?(id) return @quests.include?(id) end
def take_quest(id) @quests.delete(id) @completed.delete(id) end
end class Scene_Quest def main @quests = [] for i in $game_party.quests @quests.push(GameGuy.qname(i)) end @map = Spriteset_Map.new @quests2 = [] for i in $game_party.quests @quests2.push(i) end @quests.push("No Quests") if @quests.size < 1 @quests_window = Window_Command.new(160, @quests) @quests_window.height = 480 @quests_window.back_opacity = 110 Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end @quests_window.dispose @quest_info.dispose if @quest_info != nil @map.dispose end def update @quests_window.update if @quests_window.active update_quests return end if @quest_info != nil update_info return end end def update_quests if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Menu.new return end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) @quest_info = Window_QuestInfo.new(@quests2[@quests_window.index]) @quest_info.back_opacity = 110 @quests_window.active = false return end end def update_info if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @quests_window.active = true @quest_info.dispose @quest_info = nil return end end end class Window_QuestInfo < Window_Base def initialize(quest) super(160, 0, 480, 480) self.contents = Bitmap.new(width - 32, height - 32) @quest = quest refresh end def refresh self.contents.clear if GameGuy::UsePicture pic = GameGuy.qpicture(@quest) bitmap = RPG::Cache.picture(GameGuy.qpicture(@quest)) if pic != nil rect = Rect.new(0, 0, bitmap.width, bitmap.height) if pic != nil self.contents.blt(480-bitmap.width-32, 0, bitmap, rect) if pic != nil end self.contents.font.color = system_color self.contents.draw_text(0, 0, 480, 32, "Quest:") self.contents.font.color = normal_color self.contents.draw_text(0, 32, 480, 32, GameGuy.qname(@quest)) self.contents.font.color = system_color self.contents.draw_text(0, 64, 480, 32, "Reward:") self.contents.font.color = normal_color self.contents.draw_text(0, 96, 480, 32, GameGuy.qreward(@quest)) self.contents.font.color = system_color self.contents.draw_text(0, 128, 480, 32, "Location:") self.contents.font.color = normal_color self.contents.draw_text(0, 160, 480, 32, GameGuy.qlocation(@quest)) self.contents.font.color = system_color self.contents.draw_text(0, 192, 480, 32, "Completion:") self.contents.font.color = normal_color if $game_party.completed.include?(@quest) self.contents.font.color = crisis_color self.contents.draw_text(0, 224, 480, 32, "Completed") else self.contents.font.color = normal_color self.contents.draw_text(0, 224, 480, 32, "In Progress") end self.contents.font.color = system_color self.contents.draw_text(0, 256, 480, 32, "Description:") self.contents.font.color = normal_color text = self.contents.slice_text(GameGuy.qdescription(@quest), 480) text.each_index {|i| self.contents.draw_text(0, 288 + i*32, 480, 32, text[i])} end end class Bitmap
def slice_text(text, width) words = text.split(' ') return words if words.size == 1 result, current_text = [], words.shift words.each_index {|i| if self.text_size("#{current_text} #{words[i]}").width > width result.push(current_text) current_text = words[i] else current_text = "#{current_text} #{words[i]}" end result.push(current_text) if i >= words.size - 1} return result end
end
This is a quest log script made by game_guy of Chaos Project, but I would need some additional features that can help a lot in my optional quests in my game.
There is a lot of 'killing n number of x monsters' quest in games, like Maplestory, and thanks to brewmaster I have figured out how to count using variables the number of x monsters killed, but need the number to be present inside the quest log which will appear inside my menu so that it makes game experience much better.
Thus, can anyone help me with this tiny request? Easy or not, I'm not sure, but please do be kind.
Hleeo.Tahnk you for tkanig the tmie to raed tihs.I am bsaing tihs on the frist {oigranl} can you raed tihs?Yaeh olny smoe poelpe can sikm sneentces lkie tehse woituht hvanig to sotp.You rllaey olny hvae to konw the frist and end lttres of the wrod you are tyrnig to raed for yuor mnid to pcik tehm up esaily.Olny 55% of poelpe can raed tihs.I tihnk taht snice you konw waht you are raendig aoubt you can gesus the wrods.If you can raed tihs, palce it in yuor sgitanrue.Dnoe by Senapho.Oops.Sanehpo.
"Creative people don't say themselves as creative because they are creative." -Cheong Cheng Wen a.k.a AphidRuin
Group: +Gold Member
Posts: 1,522
Type: Scripter
RM Skill: Undisclosed
Edited Version
CODE
#=============================================================================== # Quest Log System # Author game_guy # Version 3.0 #------------------------------------------------------------------------------- # Intro: # A script that keeps track of quests you obtain and complete. # # Features: # Marks quest names with a yellow color if they're completed # Easy to setup one quest # Be able to use a fairly long description # Be able to display a picture # Easy to add and complete a quest # More compatible than earlier versions # # Instructions: # Scroll down a bit until you see # Being Config. Follow the instructions there. # Scroll below that and you'll see Begin Quest Setup. Follow the steps there. # # Script Calls: # Quest.add(id) ~ Adds the quest(id) to the parties quests. # Quest.take(id) ~ Takes the quest(id) from the party. # Quest.complete(id) ~ Makes the quest(id) completed. # Quest.completed?(id) ~ Returns true if the quest(id) is completed. # Quest.has?(id) ~ Returns true if the party has quest(id). # # Credits: # game_guy ~ for making it # Beta Testers ~ Sally and Landith # Blizzard ~ Small piece of code I borrowed from his bestiary #=============================================================================== module GameGuy #================================================== # Begin Config # UsePicture ~ true means it'll show pictures in # the quests, false it wont. #================================================== UsePicture = false
def self.qreward(id) case id #================================================== # Quest Reward # Use when x then return 'Reward' # x = id, Reward = reward in quotes #================================================== when 1 then return '50G' when 2 then return '2 High Potions & 50G ' when 3 then return '???' when 4 then return '???' when 5 then return '???' end return '????' end
def self.qpicture(id) case id #================================================== # Quest Picture # Use when x then return 'picture' # x = id, picture = picutre name in quotes #================================================== when 1 then return 'ghost' end return nil end
def self.qname(id) case id #================================================== # Quest Name # Use when x then return 'name' # x = id, name = quest name in quotes #================================================== when 1 then return 'Colllection of war spoils' when 2 then return 'The Golden Pendant' when 3 then return 'My Axe!' when 4 then return 'The Red Dragon' when 5 then return 'Flower Extraction' end return '' end
def self.qlocation(id) case id #================================================== # Quest Location # Use when x then return 'location' # x = id, location = location in quotes #================================================== when 1 then return 'Unknown area' when 2 then return 'Ehira Dungeon' when 3 then return 'Ruins of Despair' when 4 then return 'Doam Swamp' when 5 then return 'Ceerp Forest' end return '????' end
def self.qdescription(id) case id #================================================== # Quest Description # Use when x then return 'description' # x = id, description = quest description in quotes #================================================== when 1 then return 'Bring back 1 War Spoil from Kenth Unit to Weapon Seller' when 2 then return 'Help the Man with beard at the inn to find his lost golden pendant!' when 3 then return 'Help the Woodcutter to find his axe!' when 4 then return 'Defeat Rocoh the Red Dragon!' when 5 then return 'Help Jessie extract 3 Esniato Extract.' end return '' end
end
module Quest
def self.add(id) $game_party.add_quest(id) end
def self.take(id) $game_party.take_quest(id) end
def self.complete(id) $game_party.complete(id) end
def self.completed?(id) return $game_party.completed?(id) end
def self.has?(id) return $game_party.has_quest?(id) end
end
class Game_Party
attr_accessor :quests attr_accessor :completed
alias gg_quests_lat initialize def initialize @quests = [] @completed = [] gg_quests_lat end
def add_quest(id) unless @quests.include?(id) @quests.push(id) end end
def completed?(id) return @completed.include?(id) end
def complete(id) unless @completed.include?(id) if @quests.include?(id) @completed.push(id) end end end
def has_quest?(id) return @quests.include?(id) end
def take_quest(id) @quests.delete(id) @completed.delete(id) end
end class Scene_Quest def main @quests = [] for i in $game_party.quests @quests.push(GameGuy.qname(i).fmt_slsh) end @map = Spriteset_Map.new @quests2 = [] for i in $game_party.quests @quests2.push(i) end @quests.push('No Quests') if @quests.size < 1 @quests_window = Window_Command.new(160, @quests) @quests_window.height = 480 @quests_window.back_opacity = 110 Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end @quests_window.dispose @quest_info.dispose if @quest_info != nil @map.dispose end def update @quests_window.update if @quests_window.active update_quests return end if @quest_info != nil update_info return end end def update_quests if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Menu.new return end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) @quest_info = Window_QuestInfo.new(@quests2[@quests_window.index]) @quest_info.back_opacity = 110 @quests_window.active = false return end end def update_info if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @quests_window.active = true @quest_info.dispose @quest_info = nil return end end end class Window_QuestInfo < Window_Base def initialize(quest) super(160, 0, 480, 480) self.contents = Bitmap.new(width - 32, height - 32) @quest = quest refresh end def refresh self.contents.clear if GameGuy::UsePicture pic = GameGuy.qpicture(@quest).fmt_slsh bitmap = RPG::Cache.picture(pic) if pic != nil rect = Rect.new(0, 0, bitmap.width, bitmap.height) if pic != nil self.contents.blt(480-bitmap.width-32, 0, bitmap, rect) if pic != nil end self.contents.font.color = system_color self.contents.draw_text(0, 0, 480, 32, 'Quest:') self.contents.font.color = normal_color self.contents.draw_text(0, 32, 480, 32, GameGuy.qname(@quest).fmt_slsh) self.contents.font.color = system_color self.contents.draw_text(0, 64, 480, 32, 'Reward:') self.contents.font.color = normal_color self.contents.draw_text(0, 96, 480, 32, GameGuy.qreward(@quest).fmt_slsh) self.contents.font.color = system_color self.contents.draw_text(0, 128, 480, 32, 'Location:') self.contents.font.color = normal_color self.contents.draw_text(0, 160, 480, 32, GameGuy.qlocation(@quest).fmt_slsh) self.contents.font.color = system_color self.contents.draw_text(0, 192, 480, 32, 'Completion:') self.contents.font.color = normal_color if $game_party.completed.include?(@quest) self.contents.font.color = crisis_color self.contents.draw_text(0, 224, 480, 32, 'Completed') else self.contents.font.color = normal_color self.contents.draw_text(0, 224, 480, 32, 'In Progress') end self.contents.font.color = system_color self.contents.draw_text(0, 256, 480, 32, 'Description:') self.contents.font.color = normal_color text = self.contents.slice_text(GameGuy.qdescription(@quest).fmt_slsh, 480) text.each_index {|i| self.contents.draw_text(0, 288 + i*32, 480, 32, text[i])} end end class Bitmap def slice_text(text, width) words = text.split(' ') return words if words.size == 1 result, current_text = [], words.shift words.each_index {|i| if self.text_size("#{current_text} #{words[i]}").width > self.width result.push(current_text) current_text = words[i] else current_text = "#{current_text} #{words[i]}" end result.push(current_text) if i >= words.size - 1} return result end end class String def fmt_slsh self.gsub!(/\\[Vv]\[([\d]+)\]/) {$game_variables[$1.to_i]} self.gsub!(/\\[Nn]\[([\d]+)\]/) {$game_actors[$1.to_i].name} self.gsub!(/\\[Gg]/) {$game_party.gold} self end end
Just use \v[2] to show variable #2 I've also got \n[8] and \g working to show actor #8's name the the gold held by the party
__________________________
K.I.S.S. Want help with your scripting problems? Upload a demo! Or at the very least; provide links to the scripts in question.
#=============================================================================== # Quest Log System # Author game_guy # Version 3.0 #------------------------------------------------------------------------------- # Intro: # A script that keeps track of quests you obtain and complete. # # Features: # Marks quest names with a yellow color if they're completed # Easy to setup one quest # Be able to use a fairly long description # Be able to display a picture # Easy to add and complete a quest # More compatible than earlier versions # # Instructions: # Scroll down a bit until you see # Being Config. Follow the instructions there. # Scroll below that and you'll see Begin Quest Setup. Follow the steps there. # # Script Calls: # Quest.add(id) ~ Adds the quest(id) to the parties quests. # Quest.take(id) ~ Takes the quest(id) from the party. # Quest.complete(id) ~ Makes the quest(id) completed. # Quest.completed?(id) ~ Returns true if the quest(id) is completed. # Quest.has?(id) ~ Returns true if the party has quest(id). # # Credits: # game_guy ~ for making it # Beta Testers ~ Sally and Landith # Blizzard ~ Small piece of code I borrowed from his bestiary #=============================================================================== module GameGuy #================================================== # Begin Config # UsePicture ~ true means it'll show pictures in # the quests, false it wont. #================================================== UsePicture = false
def self.qreward(id) case id #================================================== # Quest Reward # Use when x then return 'Reward' # x = id, Reward = reward in quotes #================================================== when 1 then return '50G' when 2 then return '2 High Potions & 50G ' when 3 then return '???' when 4 then return '???' when 5 then return '???' end return '????' end
def self.qpicture(id) case id #================================================== # Quest Picture # Use when x then return 'picture' # x = id, picture = picutre name in quotes #================================================== when 1 then return 'ghost' end return nil end
def self.qname(id) case id #================================================== # Quest Name # Use when x then return 'name' # x = id, name = quest name in quotes #================================================== when 1 then return 'Colllection of war spoils' when 2 then return 'The Golden Pendant' when 3 then return 'My Axe!' when 4 then return 'The Red Dragon' when 5 then return 'Flower Extraction' end return '' end
def self.qlocation(id) case id #================================================== # Quest Location # Use when x then return 'location' # x = id, location = location in quotes #================================================== when 1 then return 'Unknown area' when 2 then return 'Ehira Dungeon' when 3 then return 'Ruins of Despair' when 4 then return 'Doam Swamp' when 5 then return 'Ceerp Forest' end return '????' end
def self.qdescription(id) case id #================================================== # Quest Description # Use when x then return 'description' # x = id, description = quest description in quotes #================================================== when 1 then return 'Bring back 1 War Spoil from Kenth Unit to Weapon Seller' when 2 then return 'Help the Man with beard at the inn to find his lost golden pendant!' when 3 then return 'Help the Woodcutter to find his axe!' when 4 then return 'Defeat Rocoh the Red Dragon!' when 5 then return 'Help Jessie extract 3 Esniato Extract.' end return '' end
end
module Quest
def self.add(id) $game_party.add_quest(id) end
def self.take(id) $game_party.take_quest(id) end
def self.complete(id) $game_party.complete(id) end
def self.completed?(id) return $game_party.completed?(id) end
def self.has?(id) return $game_party.has_quest?(id) end
end
class Game_Party
attr_accessor :quests attr_accessor :completed
alias gg_quests_lat initialize def initialize @quests = [] @completed = [] gg_quests_lat end
def add_quest(id) unless @quests.include?(id) @quests.push(id) end end
def completed?(id) return @completed.include?(id) end
def complete(id) unless @completed.include?(id) if @quests.include?(id) @completed.push(id) end end end
def has_quest?(id) return @quests.include?(id) end
def take_quest(id) @quests.delete(id) @completed.delete(id) end
end class Scene_Quest def main @quests = [] for i in $game_party.quests @quests.push(GameGuy.qname(i).fmt_slsh) end @map = Spriteset_Map.new @quests2 = [] for i in $game_party.quests @quests2.push(i) end @quests.push('No Quests') if @quests.size < 1 @quests_window = Window_Command.new(160, @quests) @quests_window.height = 480 @quests_window.back_opacity = 110 Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end @quests_window.dispose @quest_info.dispose if @quest_info != nil @map.dispose end def update @quests_window.update if @quests_window.active update_quests return end if @quest_info != nil update_info return end end def update_quests if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Menu.new return end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) @quest_info = Window_QuestInfo.new(@quests2[@quests_window.index]) @quest_info.back_opacity = 110 @quests_window.active = false return end end def update_info if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @quests_window.active = true @quest_info.dispose @quest_info = nil return end end end class Window_QuestInfo < Window_Base def initialize(quest) super(160, 0, 480, 480) self.contents = Bitmap.new(width - 32, height - 32) @quest = quest refresh end def refresh self.contents.clear if GameGuy::UsePicture pic = GameGuy.qpicture(@quest).fmt_slsh bitmap = RPG::Cache.picture(pic) if pic != nil rect = Rect.new(0, 0, bitmap.width, bitmap.height) if pic != nil self.contents.blt(480-bitmap.width-32, 0, bitmap, rect) if pic != nil end self.contents.font.color = system_color self.contents.draw_text(0, 0, 480, 32, 'Quest:') self.contents.font.color = normal_color self.contents.draw_text(0, 32, 480, 32, GameGuy.qname(@quest).fmt_slsh) self.contents.font.color = system_color self.contents.draw_text(0, 64, 480, 32, 'Reward:') self.contents.font.color = normal_color self.contents.draw_text(0, 96, 480, 32, GameGuy.qreward(@quest).fmt_slsh) self.contents.font.color = system_color self.contents.draw_text(0, 128, 480, 32, 'Location:') self.contents.font.color = normal_color self.contents.draw_text(0, 160, 480, 32, GameGuy.qlocation(@quest).fmt_slsh) self.contents.font.color = system_color self.contents.draw_text(0, 192, 480, 32, 'Completion:') self.contents.font.color = normal_color if $game_party.completed.include?(@quest) self.contents.font.color = crisis_color self.contents.draw_text(0, 224, 480, 32, 'Completed') else self.contents.font.color = normal_color self.contents.draw_text(0, 224, 480, 32, 'In Progress') end self.contents.font.color = system_color self.contents.draw_text(0, 256, 480, 32, 'Description:') self.contents.font.color = normal_color text = self.contents.slice_text(GameGuy.qdescription(@quest).fmt_slsh, 480) text.each_index {|i| self.contents.draw_text(0, 288 + i*32, 480, 32, text[i])} end end class Bitmap def slice_text(text, width) words = text.split(' ') return words if words.size == 1 result, current_text = [], words.shift words.each_index {|i| if self.text_size("#{current_text} #{words[i]}").width > self.width result.push(current_text) current_text = words[i] else current_text = "#{current_text} #{words[i]}" end result.push(current_text) if i >= words.size - 1} return result end end class String def fmt_slsh self.gsub!(/\\[Vv]\[([\d]+)\]/) {$game_variables[$1.to_i]} self.gsub!(/\\[Nn]\[([\d]+)\]/) {$game_actors[$1.to_i].name} self.gsub!(/\\[Gg]/) {$game_party.gold} self end end
Just use \v[2] to show variable #2 I've also got \n[8] and \g working to show actor #8's name the the gold held by the party
Sorry for the trouble, but I'm still kind of confused what is going on. Can you please explain clearer? Thanks for the help anyway
Hleeo.Tahnk you for tkanig the tmie to raed tihs.I am bsaing tihs on the frist {oigranl} can you raed tihs?Yaeh olny smoe poelpe can sikm sneentces lkie tehse woituht hvanig to sotp.You rllaey olny hvae to konw the frist and end lttres of the wrod you are tyrnig to raed for yuor mnid to pcik tehm up esaily.Olny 55% of poelpe can raed tihs.I tihnk taht snice you konw waht you are raendig aoubt you can gesus the wrods.If you can raed tihs, palce it in yuor sgitanrue.Dnoe by Senapho.Oops.Sanehpo.
"Creative people don't say themselves as creative because they are creative." -Cheong Cheng Wen a.k.a AphidRuin
Hleeo.Tahnk you for tkanig the tmie to raed tihs.I am bsaing tihs on the frist {oigranl} can you raed tihs?Yaeh olny smoe poelpe can sikm sneentces lkie tehse woituht hvanig to sotp.You rllaey olny hvae to konw the frist and end lttres of the wrod you are tyrnig to raed for yuor mnid to pcik tehm up esaily.Olny 55% of poelpe can raed tihs.I tihnk taht snice you konw waht you are raendig aoubt you can gesus the wrods.If you can raed tihs, palce it in yuor sgitanrue.Dnoe by Senapho.Oops.Sanehpo.
"Creative people don't say themselves as creative because they are creative." -Cheong Cheng Wen a.k.a AphidRuin