#===================================
# Leon's Mission Script v2.0
#----------------------------------------------------------------------
# 2006-09-22
#===================================
=begin
Description:
I did a drastic overhaul on this Mission/Quest script to make it much better and user friendly.
Features:
There is 2 new features:
1. If the user doesn't know of the mission, it doesn't appear in the list, nor does a slot for it.
2. Completed missions are in green.
3. Number of missions. (X/Y) X is completed missions, Y can be either known missions,
or your game's total missions. Set Mission_Setup to 'true' if you want known missions,
false for total.
Instructions:
Put it above main.
The instructions have changed alot more than the features. Just go through
the short list below, and you'll know. Just remember, go in order, and if you have 10
different missions in 1 spot, you must have the same number in each other segment
of the module, with the exception of the lines of text. (Yes, i made that one all the easier.)
Changing the status of the missions is different than before as well.
$game_party.mission[mission_id] = x
Mission ID: The ID of the mission, as defined in the module. In this example,
"Lost Cat" would be 0
X:
1 = they do not know the mission exists. This is optional, unless they forget a mission.
2 = they know the mission, but it is incomplete
3 = the mission is complete.
BY DEFAULT, ALL MISSIONS ARE UNKNOWN unless specified in the script before the game begins.
Do NOT post my work in any other forums without my permission, and NEVER take credit
for my work.
=end
#==================================
# ** Mission_Menu
#==================================
module Mission_Menu
#--------------------------------------------------------------------
# * Mission Name- Write the mission number, and the name you want to appear.
# ~ mission_id => "mission name"
#--------------------------------------------------------------------
Mission_Name = {
0 => "Lost Cat",
1 => "Old Blade",
2 => "Seize Sentries",
3 => "Hidden Heirloom",
4 => "A Gooey Mess.",
5 => "Hidden Horror"
}
#--------------------------------------------------------------------
# * Mission_Sprite. holds data on the name of the sprite, it's hue, name, locale, and
# * reward all in one.
# ~ mission_id => ["sprite name", hue, name, location, Reward]
#--------------------------------------------------------------------
Mission_Sprite = {
0 => ["113-Civilian13", 330, "Amy", "Logres", "Potion x 3"],
1 => ["005-Fighter05", 0, "L'eric", "Logres", "Rusty Sword"],
2 => ["002-Fighter02", 0, "Wallace", "Resistance H.Q.", "500 Gold"],
3 => ["122-Civilian22", 30, "Old Woman", "Cyris Home", "Sound Effect"],
4 => ["011-Lancer03", 0, "Soldier", "Cyris Barracks", "Kite Shield"],
5 => ["006-Fighter06", 0, "Lady", "Cyris", "Lion's Head Earring"]
}
#--------------------------------------------------------------------
# * Defines the mission. Remember, if it is too long for 1 line, you can drop it
# * down to line 2.
# ~ mission_id => "Line One"
#--------------------------------------------------------------------
Mission_L1 = {
0 => "Amy has lost her cat and needs help",
1 => "Somebody said they saw L'eric's blade",
2 => "Head north toward enemy territory, and",
3 => "Seek out the caverns south of Cyris. There",
4 => "A monster to the west of the town every",
5 => "Somewhere in the Belin Caverns, there is a"
}
#--------------------------------------------------------------------
# * Same as the above one.
# ~ mission_id => "Line Two"
#--------------------------------------------------------------------
Mission_L2 = {
0 => "finding him. He likes to play in the",
1 => "just south of here by the river. He ",
2 => "capture two sentry towers. Be careful ",
3 => "you will find a blue chest. Retrieve its",
4 => "now and then terrorizes the caravans.",
5 => "creature holding an item the lady in"
}
#--------------------------------------------------------------------
# * Same as the above one.
# ~ mission_id => "Line Three"
#--------------------------------------------------------------------
Mission_L3 = {
0 => " North East side of Tiberian Plains.",
1 => "wants Will to confirm the story, and",
2 => "and don't get caught. Return to Wallace",
3 => "contents and bring it back to the old",
4 => "A soldier in the barracks has asked you",
5 => "Cyris is looking for. She said the monster"
}
#--------------------------------------------------------------------
# * Same as the above one.
# ~ mission_id => "Line Four"
#--------------------------------------------------------------------
Mission_L4 = {
1 => "if it is true, bring back the sword.",
2 => "once this job is complete.",
3 => "woman.",
4 => "to exterminate it.",
5 => "would be hiding."
}
#--------------------------------------------------------------------
# * Same as the above one.
# ~ mission_id => "Line Five"
#--------------------------------------------------------------------
Mission_L5 = {
}
#--------------------------------------------------------------------
# * Same as the above one.
# ~ mission_id => "Line Six"
#--------------------------------------------------------------------
Mission_L6 = {
}
#--------------------------------------------------------------------
# * Same as the above one.
# ~ mission_id => "Line Seven"
#--------------------------------------------------------------------
Mission_L7 = {
}
#--------------------------------------------------------------------
# * Same as the above one.
# ~ mission_id => "Line Eight"
#--------------------------------------------------------------------
Mission_L8 = {
}
#--------------------------------------------------------------------
# * Mission Set-up
#--------------------------------------------------------------------
Mission_Setup = true
end
#----------------------------------------------------------------------
# * Game_Party
#----------------------------------------------------------------------
class Game_Party
#--------------------------------------------------------------------
# * Attributes
#--------------------------------------------------------------------
attr_accessor :mission
#--------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------
alias leon_gp_mission_initialize initialize
#--------------------------------------------------------------------
# * Object initialization
#--------------------------------------------------------------------
# Leon_Edit add an array for each mission in @mission.
# [mission_id, 1]
#--------------------------------------------------------------------
def initialize
leon_gp_mission_initialize
@mission = {
0 => 1,
1 => 2,
2 => 3,
3 => 2
}
end
end
#--------------------------------------------------------------------
# * Ends Game_Party
#--------------------------------------------------------------------
#----------------------------------------------------------------------
# * Window_Missionhelp
#----------------------------------------------------------------------
class Window_Missionhelp < Window_Base
#--------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------
def initialize
super(0, 0, 400, 60)
self.contents = Bitmap.new(width - 32, height - 32)
end
#--------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------
def update(help_text)
self.contents.clear
self.contents.draw_text(0, 0, 440, 32, help_text)
end
end
#----------------------------------------------------------------------
# * End Window_Missionhelp
#----------------------------------------------------------------------
#----------------------------------------------------------------------
# Window_MissionNum
#----------------------------------------------------------------------
class Window_MissionNum < Window_Base
#--------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------
def initialize
super(400, 0, 240, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
#--------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------
def refresh
self.contents.clear
mis = Mission_Menu
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 120, 32, "Missions:")
self.contents.font.color = normal_color
@mission_comp = []
@mission_know = []
#Calls Mission number of completed missions
for i in 0...$game_party.mission.keys.size
if $game_party.mission[$game_party.mission.keys[i]] == 3
@mission_comp.push(i)
end
end
#Calls Mission number of missions
for j in 0...$game_party.mission.keys.size
if $game_party.mission[$game_party.mission.keys[j]] > 1
@mission_know.push(j)
end
end
#if Mission_Setup is false...
if mis::Mission_Setup == false
if @mission_comp.size == $game_party.mission.size
self.contents.font.color = Color.new(40, 250, 40, 255)
self.contents.draw_text(0, 0, 208, 32, @mission_comp.size.to_s +
"/" + $game_party.mission.size.to_s, 2)
self.contents.font.color = normal_color
else
self.contents.draw_text(0, 0, 208, 32, @mission_comp.size.to_s +
"/" + $game_party.mission.size.to_s, 2)
end
#if Mission_Setup is true...
elsif mis::Mission_Setup == true
if @mission_comp.size == @mission_know.size
self.contents.font.color = Color.new(40, 250, 40, 255)
self.contents.draw_text(0, 0, 208, 32, @mission_comp.size.to_s +
"/" + @mission_know.size.to_s, 2)
self.contents.font.color = normal_color
else
self.contents.draw_text(0, 0, 208, 32, @mission_comp.size.to_s +
"/" + @mission_know.size.to_s, 2)
end
end
end
end
#----------------------------------------------------------------------
# * End Window_Missionnum
#----------------------------------------------------------------------
#----------------------------------------------------------------------
# Window_Missionlist
#----------------------------------------------------------------------
class Window_Missionlist < Window_Selectable
#--------------------------------------------------------------------
# * Attribute listings
#--------------------------------------------------------------------
attr_accessor :mission
#--------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------
def initialize
super(0, 60, 260, 420)
self.contents = Bitmap.new(width - 32, height - 32)
self.index = 0
refresh
end
#--------------------------------------------------------------------
# * Mission
#--------------------------------------------------------------------
def mission
return @data[self.index]
end
#--------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
mis = Mission_Menu
@data = []
for i in 0...$game_party.mission.keys.size
if $game_party.mission[$game_party.mission.keys[i]] > 1
@data.push($game_party.mission.keys[i])
end
end
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max
draw_item(i)
end
end
end
#--------------------------------------------------------------------
# * Draw_Item
#--------------------------------------------------------------------
def draw_item(index)
mis = Mission_Menu
mission_name = @data[index]
x = 4
y = index * 32
rect = Rect.new(x, y, self.width - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
if $game_party.mission[mission_name] == 3
self.contents.font.color = Color.new(40, 250, 40, 255)
self.contents.draw_text(x, y, 228, 32, mis::Mission_Name[mission_name])
else
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 228, 32, mis::Mission_Name[mission_name])
end
end
end
#----------------------------------------------------------------------
# * End Window_Missionlist
#----------------------------------------------------------------------
#----------------------------------------------------------------------
# Window_Missioncomp
#----------------------------------------------------------------------
class Window_Missioncomp < Window_Base
#--------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------
def initialize(mission)
super(260, 365, 380, 115)
self.contents = Bitmap.new(width - 32, height - 32)
refresh(mission)
end
#--------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------
def refresh(mission)
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(0, 52, 440, 32, "Status:")
self.contents.draw_text(170, 52, 440, 32, "Reward:")
self.contents.font.color = normal_color
#person place status reward
mis = Mission_Menu
if mis::Mission_Sprite.has_key?(mission)
if $game_party.mission[mission] > 1
self.contents.draw_text(36, 6, 440, 32,
mis::Mission_Sprite[mission][2] + ", " + mis::Mission_Sprite[mission][3])
case $game_party.mission[mission]
when 1
self.contents.draw_text(62, 52, 400, 32, "")
when 2
self.contents.draw_text(62, 52, 400, 32, "Incomplete")
self.contents.draw_text(242, 52, 138, 32, "Unknown")
when 3
self.contents.font.color = Color.new(40, 250, 40, 255)
self.contents.draw_text(62, 52, 400, 32, "Complete")
self.contents.draw_text(242, 52, 138, 32, mis::Mission_Sprite[mission][4])
end
bitmap = RPG::Cache.character(mis::Mission_Sprite[mission][0],
mis::Mission_Sprite[mission][1])
cw = bitmap.width / 4
ch = bitmap.height / 4
facing = 0
src_rect = Rect.new(0, facing * ch, cw, ch)
self.contents.blt(0, 0, bitmap, src_rect)
end
end
end
def clear
self.contents.clear
end
end
#--------------------------------------------------------------------
# * Ends Window_Missioncomp
#--------------------------------------------------------------------
#----------------------------------------------------------------------
# Window_Missiondesc
#----------------------------------------------------------------------
class Window_Missiondesc < Window_Base
#--------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------
def initialize(mission)
super(260, 60, 380, 305)
self.contents = Bitmap.new(width - 32, height - 32)
end
#--------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------
def refresh(mission)
self.contents.clear
mis = Mission_Menu
self.contents.draw_text(0, 0, 348, 32, mis::Mission_L1[mission].to_s)
self.contents.draw_text(0, 32, 348, 32, mis::Mission_L2[mission].to_s)
self.contents.draw_text(0, 64, 348, 32, mis::Mission_L3[mission].to_s)
self.contents.draw_text(0, 96, 348, 32, mis::Mission_L4[mission].to_s)
self.contents.draw_text(0, 128, 348, 32, mis::Mission_L5[mission].to_s)
self.contents.draw_text(0, 160, 348, 32, mis::Mission_L6[mission].to_s)
self.contents.draw_text(0, 192, 348, 32, mis::Mission_L7[mission].to_s)
self.contents.draw_text(0, 224, 348, 32, mis::Mission_L8[mission].to_s)
end
end
#--------------------------------------------------------------------
# * Ends Window_Missiondesc
#--------------------------------------------------------------------
#====================================
# Scene_MissionMenu
#====================================
class Scene_MissionMenu
#--------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------
# * Main
#--------------------------------------------------------------------
def main
@missionhelp_window = Window_Missionhelp.new
@missionlist_window = Window_Missionlist.new
@missionnum_window = Window_MissionNum.new
@missioncomp_window = Window_Missioncomp.new(@missionlist_window.mission)
@missiondesc_window = Window_Missiondesc.new(@missionlist_window.mission)
@mission = @missionlist_window.mission
@missiondesc_window.refresh(@missionlist_window.mission)
@missioncomp_window.refresh(@missionlist_window.mission)
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@missionhelp_window.dispose
@missiondesc_window.dispose
@missioncomp_window.dispose
@missionlist_window.dispose
@missionnum_window.dispose
end
#--------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------
def update
mis = Mission_Menu
@missionlist_window.update
@missionnum_window.update
@missionhelp_window.update("Select a mission to see details.")
if Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN) or Input.repeat?(Input::DOWN) or Input.repeat?(Input::UP)
@missiondesc_window.refresh(@missionlist_window.mission)
@missioncomp_window.refresh(@missionlist_window.mission)
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
end
end
end
#--------------------------------------------------------------------
# * Ends Scene_Missionmenu
#--------------------------------------------------------------------
Mission/Quest Menu script.
#1
Posted 29 June 2007 - 06:52 PM
#2
Posted 01 July 2007 - 11:26 AM
But why didnt you use sephy's paragraph method ? I found it very helpful..
#3
Posted 01 July 2007 - 04:45 PM
#4
Posted 14 July 2007 - 02:57 PM
#5
Posted 17 July 2007 - 04:28 PM
#6
Posted 27 January 2008 - 09:12 PM
#7
Posted 28 January 2008 - 03:39 PM
Changing the status of the missions is different than before as well.
$game_party.mission[mission_id] = x
Mission ID: The ID of the mission, as defined in the module. In this example,
"Lost Cat" would be 0
X:
1 = they do not know the mission exists. This is optional, unless they forget a mission.
2 = they know the mission, but it is incomplete
3 = the mission is complete.
BY DEFAULT, ALL MISSIONS ARE UNKNOWN unless specified in the script before the game begins.
#8
Posted 01 September 2008 - 12:33 PM
#9
Posted 01 September 2008 - 01:21 PM
#10
Posted 19 June 2009 - 05:06 AM
#11
Posted 19 July 2009 - 11:18 PM
#12
Posted 30 July 2009 - 12:23 AM
Quote
Changing the status of the missions is different than before as well.
$game_party.mission[mission_id] = x
Mission ID: The ID of the mission, as defined in the module. In this example,
"Lost Cat" would be 0
X:
1 = they do not know the mission exists. This is optional, unless they forget a mission.
2 = they know the mission, but it is incomplete
3 = the mission is complete.
BY DEFAULT, ALL MISSIONS ARE UNKNOWN unless specified in the script before the game begins.
1) Where do I put "$game_party.mission[mission_id] = x"?
2) In regards to the menu: where do I put "$scene = Scene_MissionMenu.new"? Does it appear in the main menu?
I have been trying to figure this out for a long time and am very annoyed.
#13
Posted 30 July 2009 - 12:32 AM
@ the staff: I apologize for the flaming here, i am just sick of this term.
#14
Posted 30 July 2009 - 12:43 AM
I hope you understand that you just refused to help someone who was brand new to this board because of some personal agenda you have against "l33t" terms, and are therefore giving a bad first impression of the "staff" on rmxpu.
#15
Posted 30 July 2009 - 12:50 AM
#16
Posted 30 July 2009 - 01:04 AM
#17
Posted 30 July 2009 - 01:34 AM
This forum isn't anything like rmrk.net, there aren't jerks here. I can honestly say every single person here (I don't know Arkbennett and I'm sure he is just as nice, but I know Leon is nice enough to help people. He was helping me.) is very sweet and always willing to help. He just thinks you shouldn't disrespect yourself for help...
Right, Leon? Was I close? That's what I'm seeing (reading)....
#18
Posted 30 July 2009 - 01:39 AM
#19
Posted 30 July 2009 - 02:26 AM
Leon, on Jul 30 2009, 01:39 AM, said:
You would have helped if never said the word, right?
That's how I feel when people request my help on game information or any kind of help at all -I hate helping when people think they aren't good enough to even be able to do it, so they degrade themselves. Of course, I always help though and I don't even know why. They don't even post a "Thank you for the help. It worked" They leave the site and never, ever come back T.T
#20
Posted 30 July 2009 - 03:27 AM
j4kl1ng3r, on Jul 30 2009, 12:23 PM, said:
1) Where do I put "$game_party.mission[mission_id] = x"?
2) In regards to the menu: where do I put "$scene = Scene_MissionMenu.new"? Does it appear in the main menu?
I have been trying to figure this out for a long time and am very annoyed.
Perhaps post the link to a certain topic will help clear things up, if j4kl1ng3r decides to return here:
http://www.rmxpunlim...?showtopic=3065
I think it's still appropriate to answer the post(whether he is serious about not using the script or not).
I believe for both lines you use the "call script" command on the 3rd page of your event commands(in the event editor). Just paste in those lines into the text area.
$game_party.mission[mission_id] = xx can be 1, 2 or 3. As said in the instructions, 1 = they do not know the mission exists, 2 = they know the mission, but it is incomplete, 3 = the mission is complete. So you can change the status of the mission by using call script and the above line of code. mission_id is the id of the mission you're changing the status of.
$scene = Scene_MissionMenu.newAgain use this in the call script command. This will bring up the Mission menu.
#21
Posted 04 August 2009 - 02:20 AM
Quote
Maybe if someone knew that this board had just been having a huge conversation in the Symposium about using the word n00b it wold be appropriate to not help them if they used it. But when someone comes into the site and asks for help, I think refusing to help them because they use an internet slang term is a bit elitist.
#22
Posted 04 August 2009 - 02:33 AM
#23
Posted 04 August 2009 - 03:32 AM
As to answer your question, try this tread.
Furthermore, I feel we are getting off on the wrong foot here. Not even a few days before your first post here, we had a heated discussion here on this word. And to add to the situation and reaction, I was having a very bad day.
#24
Posted 04 August 2009 - 03:46 AM
I will try that tutorial, though.
And thanks, Leon.
#25
Posted 04 August 2009 - 03:50 AM
#26
Posted 04 September 2009 - 09:07 AM
Leon, on 04 August 2009 - 03:50 AM, said:
This is a very good script, I'm glad I've found it. I'm trying to see if I can get it to work with the ringmenu by dubleax, so you should keep your fingers crossed =)
Anyway, very good work. I like this script alot. Thanks!
#27
Posted 04 September 2009 - 06:13 PM
Maulth, on 04 September 2009 - 09:07 AM, said:
Anyway, very good work. I like this script alot. Thanks!
If you find a way to make that work can you post your code in this thread or PM it to me?
That'd be suuuuuuuuper
#28
Posted 04 September 2009 - 09:19 PM
j4kl1ng3r, on 04 September 2009 - 06:13 PM, said:
That'd be suuuuuuuuper
Most definitely. I'm not amazing with Ruby, but I've been working C++ for a long time so I can kind of figure out what's going on. May take me a bit though.
#29
Posted 05 September 2009 - 05:30 PM
Maulth, on 04 September 2009 - 09:19 PM, said:
Sorry to double post, but rather than go through and edit the ring menu for compatibility, I just created a "journal" type item and gave it to my main character, and created a common event that did this:
$scene = Scene_MissionMenu.new Erase eventand call the event when the item is used. I know it's not the way you wanted it done, but I am not good enough to edit the menu myself, and it will suffice for me. Hope this helps.
#30
Posted 08 September 2009 - 03:21 PM
I was wondering if there was a way to separate quests into chapters of the story, or if that would make it too complicated? (If not, then maybe set the numbers back to "1" after each chapter is completed?)
0 user(s) are reading this topic
members, guests, anonymous users













