RPG Maker XP
Mission/Quest Menu script.
Introduction
Ok, here is a revamp of my first script. I went out strong, and kept pumping out new scripts, but this has been my most used script. It still suprises me that people request it, even though it has been created. The instructions are in the header:
Features
- If the user doesn’t know of the mission, it doesn’t appear in the list, nor does a slot for it.
- Completed missions are in green.
- 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.
The Code
License Terms
Attribution 3.0 Unported - You must attribute the work in the manner specified by the author or licensor. Commerical use allowed.
Instructions
Put it above main.
The instructions have changed a lot 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.
Call the script like so
$scene = Scene_MissionMenu.new
Author Notes
Do NOT post my work in any other forums without my permission, and NEVER take credit
for my work.
Comments (43)
Leave a Reply
You must be logged in to post a comment.
Dark Dragon
Cool, remindes me of mine ;-;
But why didnt you use sephy's paragraph method ? I found it very helpful..
Leon
The paragraphed method has problems with certain fonts and will squish the lettering of them. I found that aspect of the script quite… unappealing.
ichabod
This is awesome, i can use it when i make a mmorpg. I think you should add a feature to have to do more then 1 thing to finish quest. So in quest 1, if u did this switch 1 will be put on which mean part 1 of quest one is over then part 2 is activated. You know what i'm saying?
Leon
I know what you are saying, but it wouldn't be easy to code, because you can't just change teh module's settings, I would have to rewrite almost all of the core of the script. Something I am not about to do. Maybe for version 3.0, but not any time REAL soon… Sorry, mate.
Sicmonkey7
I put your scipt in an everything worked… but how do I make missions…. do I have to script them in…
Leon
In the instructions, it says:
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.
Moogleking
How do you call the quest menu?
Leon
$scene = Scene_MissionMenu.new
Bigace360
How do you call this in the menu, since I'm not using save in the menu how do you put it there.
Leon
Read some of the other posts.. like hte one above yours.
j4kl1ng3r
I'm baffled at how to use scripts overall, so excuse me for being n00bish, but for some of us your instructions are very vague.[quote]In the instructions, it says:
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.[/quote]
1) Where do I [i]put[/i] "$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.
Leon
I refuse to help anyone who refers to themselves as a 'noob', 'noobish', or any variant thereof. If they haven't enough self respect and self dignity to call themselves anything more than a horrible 'l33t' term, they can figure it out themselves.
@ the staff: I apologize for the flaming here, i am just sick of this term.
j4kl1ng3r
Ok, well I will not use your scripts anymore. Not only did you not answer a single question fully that you've been asked, but your also an elitist asshole.
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.
Leon
Hey, if you notice, i am NOT affiliated with the staff here, I am merely a teacher. Further, try reading the help file in RmXP. might help you.
Arkbennett
He's not being some elitist asshole, he's just simple refusing service from someone who can slander himself. Your just blowing this out of proportion and you need to calm down.
CrimsonInferno
Arkbennett is right, you just need to calm down. You're spinning this out of proportion. We just don't like it when people call themselves "noob" so people can help them.
This forum isn't anything like rmrk.net, there aren't jerks here. I can honestly say every single person here ([i]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.[/i]) 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)….
Leon
That is exactly it, Crimson. You see, people tend to give themselves an inferiority complex in hopes people assist, and this is old.
CrimsonInferno
[quote name=’Leon’ post=’24564′ date=’Jul 30 2009, 01:39 AM’]That is exactly it, Crimson. You see, people tend to give themselves an inferiority complex in hopes people assist, and this is old.[/quote]
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
Marked
[quote name=’j4kl1ng3r’ post=’24548′ date=’Jul 30 2009, 12:23 PM’]I'm baffled at how to use scripts overall, so excuse me for being n00bish, but for some of us your instructions are very vague.
1) Where do I [i]put[/i] "$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.[/quote]
Perhaps post the link to a certain topic will help clear things up, if j4kl1ng3r decides to return here:
[url=”http://www.rmxpunlimited.net/forums/index.php?showtopic=3065″]http://www.rmxpunlimited.net/forums/index.php?showtopic=3065[/url]
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. [code]$game_party.mission[mission_id] = x[/code]
x 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.
[code]$scene = Scene_MissionMenu.new[/code]
Again use this in the call script command. This will bring up the Mission menu.
j4kl1ng3r
[quote]He's not being some elitist asshole, he's just simple refusing service from someone who can slander himself. Your just blowing this out of proportion and you need to calm down.[/quote]
I don't think "refusing service" because someone uses a word you disagree with is a proper course of action. That, to me, is more offensive than calling yourself a n00b. Maybe, for instance, if he would have just suggested that I not use that word when referring to myself…or something along those lines…seeing as how I had only 1 post on this forum at the time…I would understand.
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.
j4kl1ng3r
But, in reference to my original questions. Is there any way to get this into the main menu? Or do I simply have to call it from events on the screen?
Leon
I wasn't being an elitist. I was refusing service because I felt if someone didn't care enough about themselves to give themself even a touch of credit, why should I? I try to steer from quoting scripture, becuase it is a heated debate, but if someone won't help themself (even by believing in themself) then why should I?
As to answer your question, try [url=”http://www.rmxpunlimited.net/forums/index.php?showtopic=697″]this tread.[/url]
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.
j4kl1ng3r
It's all good. I'm not upset about it (though my reaction was a little over-dramatic), and I hope you aren't either.
I will try that tutorial, though.
And thanks, Leon.
Leon
You are welcome, and I hold no ill will either
Maulth
[quote name='Leon' date='03 August 2009 – 10:50 PM' timestamp='1249357834' post='25000']
You are welcome, and I hold no ill will either
[/quote]
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!
j4kl1ng3r
[quote name='Maulth' date='04 September 2009 – 05:07 AM' timestamp='1252055266' post='26890']
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!
[/quote]
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
Maulth
[quote name='j4kl1ng3r' date='04 September 2009 – 01:13 PM' timestamp='1252088028' post='26895']
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
[/quote]
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.
Maulth
[quote name='Maulth' date='04 September 2009 – 04:19 PM' timestamp='1252099185' post='26897']
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.
[/quote]
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:
[code]
$scene = Scene_MissionMenu.new
Erase event
[/code]
and 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.
Thubanus
I just figured out how to use this script. It is really awesome, thank you.
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?)
Maulth
[quote name='Thubanus' date='08 September 2009 – 10:21 AM' timestamp='1252423286' post='27009']
I just figured out how to use this script. It is really awesome, thank you.
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?)
[/quote]
You could do it so that when you ended a chapter, you could call this script:
[code] $game_party.mission[0] = 1 [/code]
With the [0] being the ID of your mission, inside of an event, right before a cutscene, or immediately after.
KatReverie
I'm sorry to be a bother, but I'm having an issue with the script.
I get two different errors when I try to call up
[code]$scene = Scene_MissionMenu.new[/code]
They are as follows:
Calling from an item- "Name error occurred while running script. undefined local variable or method for #<interpreter:0x3980ef8>"
( Screenshot for reference: http://img269.imageshack.us/img269/4093/errorinitem.png )
Calling from a sign (event) – "Script 'quests' line 305: nomethoderroroccurred. Undefined method 'keys' for nil:NilClass"
(Screenshot for reference: http://img42.imageshack.us/img42/1696/errorinsign.png )
Note, quests is what I named the script.
Line 305 is [code]for i in 0…$game_party.mission.keys.size[/code] in a *Refresh part.
Also, when I try to change event status ( by calling – $game_party.mission[1] = 2 from a mailbox [just as a test to see what would happen after the other events]) I get the following message- "Name error occurred while running script. undefined method `[]=' for nil:Nilclass"
(Screenshot for reference – http://img193.imageshack.us/img193/9871/errorinmakingquestknown.png )
The only things I've modified is changing Mission_setup to false and the text for mission id 0.
I'm very, very confused since I'm new (to say the least) at working with any sort of code. I've googled the errors and gotten nothing I can decipher with my very limited understanding of scripting.
Thank you for your time, and I hope someone could inform me what I'm doing wrong.
Maulth
[quote name='KatReverie' date='10 September 2009 – 12:36 AM' timestamp='1252560992' post='27113']
I'm sorry to be a bother, but I'm having an issue with the script.
I get two different errors when I try to call up
[code]$scene = Scene_MissionMenu.new[/code]
They are as follows:
Calling from an item- "Name error occurred while running script. undefined local variable or method for #<interpreter:0x3980ef8>"
( Screenshot for reference: http://img269.imageshack.us/img269/4093/errorinitem.png )
Calling from a sign (event) – "Script 'quests' line 305: nomethoderroroccurred. Undefined method 'keys' for nil:NilClass"
(Screenshot for reference: http://img42.imageshack.us/img42/1696/errorinsign.png )
Note, quests is what I named the script.
Line 305 is [code]for i in 0…$game_party.mission.keys.size[/code] in a *Refresh part.
Also, when I try to change event status ( by calling – $game_party.mission[1] = 2 from a mailbox [just as a test to see what would happen after the other events]) I get the following message- "Name error occurred while running script. undefined method `[]=' for nil:Nilclass"
(Screenshot for reference – http://img193.imageshack.us/img193/9871/errorinmakingquestknown.png )
The only things I've modified is changing Mission_setup to false and the text for mission id 0.
I'm very, very confused since I'm new (to say the least) at working with any sort of code. I've googled the errors and gotten nothing I can decipher with my very limited understanding of scripting.
Thank you for your time, and I hope someone could inform me what I'm doing wrong.
[/quote]
Before we try and figure out anything, we need to know 2 things.
A) Are you using a Legit copy of RPG XP, because Postality knights or w/e has a lot of problems with scripts
B) are you using the SDK?
KatReverie
[quote name='Maulth' date='10 September 2009 – 01:02 AM' timestamp='1252562568' post='27114']
Before we try and figure out anything, we need to know 2 things.
A) Are you using a Legit copy of RPG XP, because Postality knights or w/e has a lot of problems with scripts
B) are you using the SDK?
[/quote]
A) Well, I got it off of the official RPG maker xp site, so I'm going to assume it's legit.
B) I'm not using the SDK. I'm just using the maker as it came aside from editing tile sets and sprites, and two scripts aside from this one. A pause script by Zeriab and "Stat Influence Script/Barehands" by Leon.
Leon
Question number 3: Did you load up a save file from before installing this game, or is it from a new game?
Kiriashi
That's probably the problem as that happened with me when I tried this out and I fixed it by starting a new game.
This is why the Switch and Variable Managers and the Control key are useful while play-testing!
KatReverie
Ah! Thank you so much.
It was from a load state. I didn't realize that it could cause a problem if it was from a previously saved state. I feel rather silly now, since that makes sense.
I just played it from a new game state (Hurray for f9 and temporary teleports placed in decorations on the first map!) and it worked. I'll be sure to test things on a new game state from now on!
Once again, thank you so very much!
Chiyoi
Hey, sorry for bumping this topic but I really need to ask a question, I hope it will be answered.
I know completely now how to use this script, but I have one question.
Is there a way that when I press O for example, the quest menu opens?
Marked
This sounds like something I did in a horrible, horrible script I made back in 2006.
Try this:
Add the following line to Game_Temp, around line 17(or amongst the rest of them, you'll see):
[code]attr_accessor :quest_calling # Quest Menu calling flag[/code]
Next, goto Scene_Map. Add the following:
[code] #————————————————————————–
# * If the L button(Q button) is pressed, the quest menu will appear.
#————————————————————————–
if Input.trigger?(Input::L)
# If event is running, or menu is not forbidden
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
# Set menu calling flag or beep flag
$game_temp.quest_calling = true
$game_temp.menu_beep = true
end
end[/code]
Directly below(starts around line 122:
[code] # If B button was pressed
if Input.trigger?(Input::B)
# If event is running, or menu is not forbidden
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
# Set menu calling flag or beep flag
$game_temp.menu_calling = true
$game_temp.menu_beep = true
end
end[/code]
Still in Scene_Map, add the following:
[code] #————————————————————————–
# * Makes the Quest menu appear if the player is not moving
#————————————————————————–
elsif $game_temp.quest_calling
call_quest[/code]
Directly below:(around line 167, but moved because you added the code above):
[code] elsif $game_temp.debug_calling
call_debug[/code]
Next, still in Scene_Map, add the following:
[code] #————————————————————————–
# * Quest Call
#————————————————————————–
def call_quest
# Clear menu call flag
$game_temp.quest_calling = false
# If menu beep flag is set
if $game_temp.menu_beep
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Clear menu beep flag
$game_temp.menu_beep = false
end
# Straighten player position
$game_player.straighten
# Switch to menu screen
$game_system.se_play($data_system.save_se)
$scene = Scene_MissionMenu.new
end[/code]
Directly below(around line 217):
[code] #————————————————————————–
# * Menu Call
#————————————————————————–
def call_menu
# Clear menu call flag
$game_temp.menu_calling = false
# If menu beep flag is set
if $game_temp.menu_beep
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Clear menu beep flag
$game_temp.menu_beep = false
end
# Straighten player position
$game_player.straighten
# Switch to menu screen
$scene = Scene_Menu.new
end[/code]
OR, I'll do the edits for you, and you can add the scripts into your game. But this will cause errors if you have previously edited these scripts.
Replace Game_Temp with:
[spoiler][code]#==============================================================================
# ** Game_Temp
#——————————————————————————
# This class handles temporary data that is not included with save data.
# Refer to "$game_temp" for the instance of this class.
#==============================================================================
class Game_Temp
#————————————————————————–
# * Public Instance Variables
#————————————————————————–
attr_accessor :quest_calling # Quest Menu calling flag
attr_accessor :map_bgm # map music (for battle memory)
attr_accessor :message_text # message text
attr_accessor :message_proc # message callback (Proc)
attr_accessor :choice_start # show choices: opening line
attr_accessor :choice_max # show choices: number of items
attr_accessor :choice_cancel_type # show choices: cancel
attr_accessor :choice_proc # show choices: callback (Proc)
attr_accessor :num_input_start # input number: opening line
attr_accessor :num_input_variable_id # input number: variable ID
attr_accessor :num_input_digits_max # input number: digit amount
attr_accessor :message_window_showing # message window showing
attr_accessor :common_event_id # common event ID
attr_accessor :in_battle # in-battle flag
attr_accessor :battle_calling # battle calling flag
attr_accessor :battle_troop_id # battle troop ID
attr_accessor :battle_can_escape # battle flag: escape possible
attr_accessor :battle_can_lose # battle flag: losing possible
attr_accessor :battle_proc # battle callback (Proc)
attr_accessor :battle_turn # number of battle turns
attr_accessor :battle_event_flags # battle event flags: completed
attr_accessor :battle_abort # battle flag: interrupt
attr_accessor :battle_main_phase # battle flag: main phase
attr_accessor :battleback_name # battleback file name
attr_accessor :forcing_battler # battler being forced into action
attr_accessor :shop_calling # shop calling flag
attr_accessor :shop_goods # list of shop goods
attr_accessor :name_calling # name input: calling flag
attr_accessor :name_actor_id # name input: actor ID
attr_accessor :name_max_char # name input: max character count
attr_accessor :menu_calling # menu calling flag
attr_accessor :menu_beep # menu: play sound effect flag
attr_accessor :save_calling # save calling flag
attr_accessor :debug_calling # debug calling flag
attr_accessor :player_transferring # player place movement flag
attr_accessor :player_new_map_id # player destination: map ID
attr_accessor :player_new_x # player destination: x-coordinate
attr_accessor :player_new_y # player destination: y-coordinate
attr_accessor :player_new_direction # player destination: direction
attr_accessor :transition_processing # transition processing flag
attr_accessor :transition_name # transition file name
attr_accessor :gameover # game over flag
attr_accessor :to_title # return to title screen flag
attr_accessor :last_file_index # last save file no.
attr_accessor :debug_top_row # debug screen: for saving conditions
attr_accessor :debug_index # debug screen: for saving conditions
#————————————————————————–
# * Object Initialization
#————————————————————————–
def initialize
@map_bgm = nil
@message_text = nil
@message_proc = nil
@choice_start = 99
@choice_max = 0
@choice_cancel_type = 0
@choice_proc = nil
@num_input_start = 99
@num_input_variable_id = 0
@num_input_digits_max = 0
@message_window_showing = false
@common_event_id = 0
@in_battle = false
@battle_calling = false
@battle_troop_id = 0
@battle_can_escape = false
@battle_can_lose = false
@battle_proc = nil
@battle_turn = 0
@battle_event_flags = {}
@battle_abort = false
@battle_main_phase = false
@battleback_name = ''
@forcing_battler = nil
@shop_calling = false
@shop_id = 0
@name_calling = false
@name_actor_id = 0
@name_max_char = 0
@menu_calling = false
@menu_beep = false
@save_calling = false
@debug_calling = false
@player_transferring = false
@player_new_map_id = 0
@player_new_x = 0
@player_new_y = 0
@player_new_direction = 0
@transition_processing = false
@transition_name = ""
@gameover = false
@to_title = false
@last_file_index = 0
@debug_top_row = 0
@debug_index = 0
end
end[/code]
[/spoiler]
Replace Scene_Map with:
[spoiler][code]#==============================================================================
# ** Scene_Map
#——————————————————————————
# This class performs map screen processing.
#==============================================================================
class Scene_Map
#————————————————————————–
# * Main Processing
#————————————————————————–
def main
# Make sprite set
@spriteset = Spriteset_Map.new
# Make message window
@message_window = Window_Message.new
# Transition run
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of sprite set
@spriteset.dispose
# Dispose of message window
@message_window.dispose
# If switching to title screen
if $scene.is_a?(Scene_Title)
# Fade out screen
Graphics.transition
Graphics.freeze
end
end
#————————————————————————–
# * Frame Update
#————————————————————————–
def update
# Loop
loop do
# Update map, interpreter, and player order
# (this update order is important for when conditions are fulfilled
# to run any event, and the player isn't provided the opportunity to
# move in an instant)
$game_map.update
$game_system.map_interpreter.update
$game_player.update
# Update system (timer), screen
$game_system.update
$game_screen.update
# Abort loop if player isn't place moving
unless $game_temp.player_transferring
break
end
# Run place move
transfer_player
# Abort loop if transition processing
if $game_temp.transition_processing
break
end
end
# Update sprite set
@spriteset.update
# Update message window
@message_window.update
# If game over
if $game_temp.gameover
# Switch to game over screen
$scene = Scene_Gameover.new
return
end
# If returning to title screen
if $game_temp.to_title
# Change to title screen
$scene = Scene_Title.new
return
end
# If transition processing
if $game_temp.transition_processing
# Clear transition processing flag
$game_temp.transition_processing = false
# Execute transition
if $game_temp.transition_name == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$game_temp.transition_name)
end
end
# If showing message window
if $game_temp.message_window_showing
return
end
# If encounter list isn't empty, and encounter count is 0
if $game_player.encounter_count == 0 and $game_map.encounter_list != []
# If event is running or encounter is not forbidden
unless $game_system.map_interpreter.running? or
$game_system.encounter_disabled
# Confirm troop
n = rand($game_map.encounter_list.size)
troop_id = $game_map.encounter_list[n]
# If troop is valid
if $data_troops[troop_id] != nil
# Set battle calling flag
$game_temp.battle_calling = true
$game_temp.battle_troop_id = troop_id
$game_temp.battle_can_escape = true
$game_temp.battle_can_lose = false
$game_temp.battle_proc = nil
end
end
end
# If B button was pressed
if Input.trigger?(Input::B)
# If event is running, or menu is not forbidden
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
# Set menu calling flag or beep flag
$game_temp.menu_calling = true
$game_temp.menu_beep = true
end
end
#————————————————————————–
# * If the L button(Q button) is pressed, the quest menu will appear.
#————————————————————————–
if Input.trigger?(Input::L)
# If event is running, or menu is not forbidden
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
# Set menu calling flag or beep flag
$game_temp.quest_calling = true
$game_temp.menu_beep = true
end
end
# If debug mode is ON and F9 key was pressed
if $DEBUG and Input.press?(Input::F9)
# Set debug calling flag
$game_temp.debug_calling = true
end
# If player is not moving
unless $game_player.moving?
# Run calling of each screen
if $game_temp.battle_calling
call_battle
elsif $game_temp.shop_calling
call_shop
elsif $game_temp.name_calling
call_name
elsif $game_temp.menu_calling
call_menu
elsif $game_temp.save_calling
call_save
elsif $game_temp.debug_calling
call_debug
elsif $game_temp.quest_calling
call_quest
end
end
end
#————————————————————————–
# * Battle Call
#————————————————————————–
def call_battle
# Clear battle calling flag
$game_temp.battle_calling = false
# Clear menu calling flag
$game_temp.menu_calling = false
$game_temp.menu_beep = false
# Make encounter count
$game_player.make_encounter_count
# Memorize map BGM and stop BGM
$game_temp.map_bgm = $game_system.playing_bgm
$game_system.bgm_stop
# Play battle start SE
$game_system.se_play($data_system.battle_start_se)
# Play battle BGM
$game_system.bgm_play($game_system.battle_bgm)
# Straighten player position
$game_player.straighten
# Switch to battle screen
$scene = Scene_Battle.new
end
#————————————————————————–
# * Shop Call
#————————————————————————–
def call_shop
# Clear shop call flag
$game_temp.shop_calling = false
# Straighten player position
$game_player.straighten
# Switch to shop screen
$scene = Scene_Shop.new
end
#————————————————————————–
# * Name Input Call
#————————————————————————–
def call_name
# Clear name input call flag
$game_temp.name_calling = false
# Straighten player position
$game_player.straighten
# Switch to name input screen
$scene = Scene_Name.new
end
#————————————————————————–
# * Menu Call
#————————————————————————–
def call_menu
# Clear menu call flag
$game_temp.menu_calling = false
# If menu beep flag is set
if $game_temp.menu_beep
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Clear menu beep flag
$game_temp.menu_beep = false
end
# Straighten player position
$game_player.straighten
# Switch to menu screen
$scene = Scene_Menu.new
end
#————————————————————————–
# * Quest Call
#————————————————————————–
def call_quest
# Clear menu call flag
$game_temp.quest_calling = false
# If menu beep flag is set
if $game_temp.menu_beep
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Clear menu beep flag
$game_temp.menu_beep = false
end
# Straighten player position
$game_player.straighten
# Switch to menu screen
$game_system.se_play($data_system.save_se)
$scene = Scene_MissionMenu.new
end
#————————————————————————–
# * Save Call
#————————————————————————–
def call_save
# Straighten player position
$game_player.straighten
# Switch to save screen
$scene = Scene_Save.new
end
#————————————————————————–
# * Debug Call
#————————————————————————–
def call_debug
# Clear debug call flag
$game_temp.debug_calling = false
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Straighten player position
$game_player.straighten
# Switch to debug screen
$scene = Scene_Debug.new
end
#————————————————————————–
# * Player Place Move
#————————————————————————–
def transfer_player
# Clear player place move call flag
$game_temp.player_transferring = false
# If move destination is different than current map
if $game_map.map_id != $game_temp.player_new_map_id
# Set up a new map
$game_map.setup($game_temp.player_new_map_id)
end
# Set up player position
$game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
# Set player direction
case $game_temp.player_new_direction
when 2 # down
$game_player.turn_down
when 4 # left
$game_player.turn_left
when 6 # right
$game_player.turn_right
when 8 # up
$game_player.turn_up
end
# Straighten player position
$game_player.straighten
# Update map (run parallel process event)
$game_map.update
# Remake sprite set
@spriteset.dispose
@spriteset = Spriteset_Map.new
# If processing transition
if $game_temp.transition_processing
# Clear transition processing flag
$game_temp.transition_processing = false
# Execute transition
Graphics.transition(20)
end
# Run automatic change for BGM and BGS set on the map
$game_map.autoplay
# Frame reset
Graphics.frame_reset
# Update input information
Input.update
end
end[/code]
[/spoiler]
You press the Q key on the map. And I did test this, so it should work.
Chiyoi
Thank you so very much!
It completely works now, I love you
Thanks again.
Marked
No problem
Thanks for giving me something to do while my download finishes. I think I'll write a tutorial for this tomorrow for others who want to do the same with other scripts.
dakillasms
Hey Im new and umm im never incorporated scripts before
so i have no knowledge on the subject could someone here help me out
or direct me to a tutorial. I just made a basic quest off of youtube:
http://www.youtube.com/watch?v=I9teOd4jHeM&feature=PlayList&p=3194667C039E1395&playnext=1&playnext_from=PL&index=76
alright thats the quest I made so now how do I incorporate that into you script or if its easier from a new project or a demo.
thank you
Karanum
I've been playing around with your script but I can't get it to work somehow.
I quickly added 3 missions and added 'Quests' to the menu.
Whenever I try to open it through the menu I get the following error:
Script 'Scene_MissionMenu' line 311: TypeError occurred.
cannot convert nil into String
[code]
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]) #<—– It's this line over here
end
end
[/code]
I started a new game and called $game_party.mission[0] = 2
I've tried a few things but I can't seem to solve it by myself.
Does anyone know how to solve this problem?
mxmmix
Hmm this is a great script! Exactly what i need!
I understand how it works (i think) but i cant get it to work.
I got a serie of quests set up but i cant activate them. O_o
This is what i did:
I changed the first quest into one im gonna use.
I created an event and in that event the player gets the quest using: a comment where is written: $game_party.mission[0] = 2
But it still wont work Dx
Could somebody help me out please?