[VXA] Quest Journal 1.0.3

0 Members and 1 Guest are viewing this topic.

*
Rep:
Level 72
Artista
2012 Best Artist2012 Best RPG Maker User (Graphical)2011 Best RPG Maker User (Graphical)Winner - 2011 Summer Project of the Season
I haven't seen this in the thread, but what are your TOS for using this script in commercial projects? Or do you have general TOS for commercial projects with all of your scripts?  :)
My current project:

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Generally, I am fine with people using my scripts in commercial projects, as long as I get a free copy of the game when it's finished.  :police:

*
Rep:
Level 72
Artista
2012 Best Artist2012 Best RPG Maker User (Graphical)2011 Best RPG Maker User (Graphical)Winner - 2011 Summer Project of the Season
Great! I have a friend who's going to be branching into commercial projects with Ace, and I'm just about to recommend your scripts. I'll make sure you get a copy of his game when he's done developing. :)
My current project:

***
Rep:
Level 80
Monster Hunter
Wow MA i wish the VX version could look like that, it looks awesome :p

**
Rep: +0/-0Level 63
RMRK Junior
Good morning.
I love your script, but I can not make it work I speak French.
I can not do a quest!
how to activate the quest 1

Thank you in advance.

***
Rep:
Level 80
Monster Hunter
Good morning.
I love your script, but I can not make it work I speak French.
I can not do a quest!
how to activate the quest 1

Thank you in advance.
Si tu veut je peut te l'expliquer mieux ^^ (oui je parle fran├žais, (depuis 10 ans ;p))
If you like i could explain you how it works  (yes i speak french (for 10 years now ;p)

**
Rep: +0/-0Level 63
RMRK Junior
Oui ce serait formidable :D
Merci.
je sais faire l'appelle de script mais le reste non ^^

Anglais.

Yes it would be great :D
Thank you.
I know how the script calls but not the rest ^^

***
Rep:
Level 80
Monster Hunter
Oui ce serait formidable :D
Merci.
je sais faire l'appelle de script mais le reste non ^^

Anglais.

Yes it would be great :D
Thank you.
I know how the script calls but not the rest ^^
il me semble que le script est pareil que la version pour VX , tu devrait telecharger la demo de VX, cest tres bien expliquer (jai pas RMVXA)
http://rmrk.net/index.php/topic,25533.0.html  tu peut utiliser Google traduction sur le topic ^^

it looks like the script is the same as the VX version, you should download the demo for VX, its really well explained (i dont have RMVXA)
http://rmrk.net/index.php/topic,25533.0.html you can use Google Translation on the topic ^^
« Last Edit: March 17, 2012, 02:47:51 AM by Mitsarugi »

**
Rep: +0/-0Level 72
RMRK Junior
how do i make a quest for hunting a certain amount of monsters?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
You do it with events, not through this script. This script just graphically represents that quest.

You would set up the quest in the script like this:

Code: [Select]

    when 7 # Quest 7 - this ID doesn't need to be 7, but it has to be unique
      q[:name]              = "Animal Trouble in Lynis"
      q[:level]             = 1
      q[:icon_index]        = 333
      q[:description]       = "Wolves are attacking the town of Lynis. The mayor has put a bounty on their heads."
      q[:objectives][0]     = "Speak to Mayor Trakia."
      q[:objectives][1]     = "Kill 5 Wolves.     \\v[4] / 5"
      q[:objectives][2]     = "Return their pelts to Mayor Trakia."
      q[:client]            = "Mayor Trakia"
      q[:location]          = "Black Forest"
      q[:rewards]           = [
        [:gold, 500],
      ]

As a sample, you would then set up the actual quest through events. In this example, I am using the pelt count as a proxy for wolves killed, meaning every wolf would need to have a 100% drop rate for pelts. However, that is not totally necessary. You could do it simply by kills, but you would need to set up counting events in every troop that has wolves (if you are doing random encounters). If you are not doing random encounters, you would just need to count the wolves in the troop inside the event in which the battle is called. Anyway, the following event does it by pelt count.

So first, you hear a rumour about the wolf troubles. That event would look like this:

@>Text: Hey, you might not want to go to Lynis. I hear there are wolves attacking that town every night!
@>Script: reveal_objective(7, 0)

7 is the quest ID I chose at the very top of the event I setup - "when 7". It has to be unique so that you can identify it when you are modifying objective status. That reveals the "Talk to Mayor Trakia" objective.

Then in Lynis, there would be this Mayor Trakia event:

Page 1: No conditions
  @>Text: Please help us! We are being attacked by wolves! I will give you 500 Gold if you kill five of them.
  @>Show Choices: OK!, No thanks!
   : When OK!
    @>Text: Oh thank you so much! Bring me five pelts for your reward.
    @>Script: complete_objective(7,0)
                   reveal_objective(7, 1, 2)
    @>Control Switches: Switch 34 is ON

Page 2: Condition: Switch 34 is ON
  @>Conditional Branch: Variable 4 >= 5
    @>Text: Oh, you have the pelts! That is wonderful news! Here is your reward
    @>Change Gold: +500
    @>Change Items: -5 Wolf Pelts
    @>Script: complete_objective(7,2)
    @>           quest(7).objectives[1] = "Kill 5 Wolves   5/5"
    @>Control Switch: Switch 34 = OFF
    @>Control Self-Switch: A = ON
  : Else
    @>Text: Please return when you have killed the savage beasts!
  @>Branch End

Page 3, Condition: Self-Switch A is ON
  @>Text: Thank you for your earlier assistance.

Switch 34 and Variable 4 were randomly chosen IDs. Again they can be any ID, as long as you are consistent. I chose variable 4 actually when setting up the quest, as I set that to be the pelt count.

Now all that is left is counting the wolves killed. This can be done with a parallel process common event like this:

Common Event, Trigger: Parallel Process, Switch Condition: Switch 34
  @>Variable Operation: [004: Pelt Count] = [Wolf Pelt] is present
  @>Conditional Branch: Variable [004: Pelt Count] >= 5
    @>Variable Operation: [004: Pelt Count] = 5
    @>Script: complete_objective(7, 1)
   : Else
    @>Conditional Branch: Script: objective_complete?(7, 1)
      @>Script: uncomplete_objective(7, 1)
     : Branch END
   : Branch END
  @>Wait: 6 frames


That's all very messy, but I am sure you can adapt it to your needs.

*
Rep: +0/-0Level 56
RMRK Junior
I am trying to use it in RPG Maker VX Ace and I keep getting this error:

Script 'Quest Log' line 795: NameError occurred

uninitialized constant Object::DataManager

Anyone able to help? D:

*
Rep: +0/-0Level 56
RMRK Junior
Hello.

First off, thankyou modern algebra for these wonderful scripts. I'm a total newbie with RPG Maker, first time using scripts, first time everything. I decided to try out your quest script.

This may be dumb but how do you move the quests to "completed" after the objectives are met? I've placed objective_complete?(ID, 0,1,2 etc) in my conditional branch to get my rewards but the quest didn't move to complete.

Also, is this script really customizable in terms of changing graphics?
I've put a picture in the banner section and it was real neat. Wonder if you can customize other parts.

Thankyou so much for inspiring me and I hope to learn a lot from you.
« Last Edit: March 18, 2012, 09:58:30 AM by Understatement »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
With respect to your first question, the code you chose only checks whether the specified objectives are complete.

There are two ways to complete a script. Firstly, a quest completes when all prime objectives are completed. Which objectives are prime depends on the value of q[:prime_objectives] when you setup the quest. If you do not include it altogether, then all objectives are prime. If it is [x, y, z], then only objectives x, y, and z are prime.

To complete an objective, you use the following code in a regular Script event command (ie not the Conditional Branch field):

Code: [Select]
complete_objective(ID, x, y, ..., z)

Where x, y, and z are the objectives you want to complete. Once all the prime objectives are completed in this manner, then the quest status changes to complete. If any one of the prime objectives are failed, then the quest status changes to failed.

Alternatively, you can set it so that there are no prime objectives in the following way when setting the quest up:
Code: [Select]
q[:prime_objectives] = []

If you do that, then quests will never auto-complete or auto-fail, and so if you want to change the quest's status to complete or failed, you have to use one of the following codes (again in a Script event command, not in the Conditional Branch field):

Code: [Select]
manually_complete_quest(ID)
manually_fail_quest(ID)

Quests will still auto-activate whenever an objective is revealed (unless you've turned that feature off), but if you want to change its status back to active after completing or failing the quest, you must use the code:

Code: [Select]
manually_activate_quest(ID)

In all of the above code samples, ID should be replaced with the integer ID of the quest you are modifying and x, y, and z with the IDs of the objectives of which you are changing the status.

With respect to your second question as to how graphically customizable it is, the following is a semi-complete list:

  • You can add a banner
  • You can change the fonts and colours of all text
  • You can change the windowskin and window's tone
  • You can change any of the icons used in the script
  • You can add new categories to the category window
  • You can change the label shown for each category
  • You can choose not to show a label for any category
  • You can choose to show the category label in a separate window
  • You can change the label shown for the Quest Log as a whole
  • You can choose not to show a label for the Quest Log at all
  • You can add new "basic" data like :client and :location (ie icon and label, then a customizable entry for each quest
  • You can obviously change any and all data for the quest
  • In description and the objectives, you can use any message codes like \\v[n], \\c[n], etc.
  • You can change the order in which items are drawn either generally or on a per-quest basis. In other words, if you want the rewards to precede the objectives, then you can do that either on a general basis or for only a specific quest. In addition to that, you can specify that some things are drawn at the same y-coordinate, which is what is done in the default with the line, quest name, and quest level
  • You can change the quest level to show either as a number of a generic icon corresponding to the level (ie. 1 stars for level 1, 2 stars for level 2, etc...), as one unique icon for each level (ie. 1 bronze star for level 1, 1 silver star for level 2, etc...), or as a label (like "Rank:") followed by a number or letter corresponding to the level (you can set which letters correspond to which level).

There might be more that I am forgetting.

****
Rep:
Level 83
3...2...1...
I get:

"Script 'Quest Journal' line 1583: TypeError occurred.
can't convert true into Integer"

it worked fine until I tried to make the journal accessible from the menu.


Never mind, it was an error on my part. So far I like the script, MA!

**
Rep: +0/-0Level 69
Writer
Yeah well,I am loving this,but what's up with this!?



What's up with those question marks?

Great Script BTW!!!

**
Rep:
Level 55
RMRK Junior
It looks like your system isn't rendering the diamonds in the font properly for some reason.
It's more like a big ball of wibbly wobbly...timey wimey...stuff.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Yeah, what Trihan said. Your font does not know how to reperesent the diamond. Just change the following line:

   
Code: [Select]
objective_bullet: "?",

to a character your font recognizes.
« Last Edit: April 11, 2012, 02:08:13 PM by Seamus »

**
Rep: +0/-0Level 69
Writer
Yeah, what Trihan said. Your font does not know how to reperesent the diamond. Just change the following line:

   
Code: [Select]
objective_bullet: "?",

to a character your font recognizes.

Thanks,it is working perfectly!!!!

**
Rep: +0/-0Level 83
Just wondering, unless I overlooked it, how would I mask rewards?

E.g. the reward is 5000 gold, but before a certain point (say a script call), the reward is ???

Like, a script call to questlog(questID, rewardIndex, bool hide)
true for hide, false for reveal

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
I guess I barely explained rewards in the script itself. Anyway, you would set it up in the quest itself as:

Code: [Select]
q[:rewards] = [
  [:gold, 500],
  [:string, 0, "???"]
]

The 0 in the string array is just the index of any icon you want to show. 0 is no icon, but you could change that to some other icon.

Then, when you want to reveal what it actually is, you would use the following code in a script call:

Code: [Select]
  quest(x).rewards[1] = [:weapon, 12]

Where x is the ID of the quest you setup. I use since array indices start at zero, so its ID is 1 since it is the reward after the gold. In that particular case, it is changed to give Weapon 12.
« Last Edit: April 28, 2012, 11:27:07 PM by modern algebra »

**
Rep: +0/-0Level 83
Alright, thats what i was looking for! Thanks. But would this work to add a reward?

Say I did not want the player knowing how many rewards they would get? Would I just leave blank strings?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
You could just leave blank strings, or you could just push the new entries to the array. Ie: you could have the above example and it would show just the two rewards in the Quest scene.

But then you could use the following code:

Code: [Select]
quest(x).rewards.push([:item, 1, 2])

and then the quest would show three awards: the gold, Weapon 12, and now 2 of item 1.

**
Rep: +0/-0Level 83
Thank you! You are a godsend!

*
Rep: +0/-0Level 57
RMRK Junior
This is really a dumb question...
But, How can I enable the Quests scene?
It's always disabled in menu or in map

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Just reveal any objective of any quest. It is disabled until there is something in the journal to see.