This is a GUI made Multiboard to present quests that you may pick up in any RPG. This is for people who would like quests in their game, but don't want to place them in the Quest Log perhaps because there is other valuable info such as crdits, a changelog or a presentation of heroes they made.
Terrain could use some work, I know, but I'm no good at it, so I will perhaps replace a couple of tiles to make it look good sooner or later.
This multiboard will add the quests each time you pick it up and wil update the quests when you finish a quest (The quest will disappear from the multiboard)
It has documentation, I tried the best way I can to make it easy to use and understand, but you may be lost where you can modify and where you can't even if I did try to show it as much as possible.
Created by Mjllonir *Please give credits if used*
Please comment and rate .
If you have any fixes to suggest, or find any bugs, leaks, etc, please post a message and I will try to find it ASAP.
Additional Information
Quest Multiboard
Events
Time - Elapsed game time is 1.00 seconds
Conditions
Actions
-------- Create the multiboard. CHANGE THE TITLE HERE! --------
Multiboard - Create a multiboard with 2 columns and (1 + QUEST_TOTAL) rows, titled Quests
-------- You MUST show this at the end. If you don't your Multiboard will never show up. --------
Multiboard - Show QUEST_MULTIBOARD
Quest 1
Events
Player - Player 1 (Red) Selects a unit
Player - Player 2 (Blue) Selects a unit
Player - Player 3 (Teal) Selects a unit
Player - Player 4 (Purple) Selects a unit
Player - Player 5 (Yellow) Selects a unit
Player - Player 6 (Orange) Selects a unit
Player - Player 7 (Green) Selects a unit
Player - Player 8 (Pink) Selects a unit
Player - Player 9 (Gray) Selects a unit
Player - Player 10 (Light Blue) Selects a unit
Conditions
QUEST_MAIN[1] Equal to False
(Triggering unit) Equal to Villager (Male 2) 0000 <gen>
Actions
-------- Because we have activated the quest, we also activate this trigger. This is to make sure the player can't repeat the same trigger twice. --------
-------- QUEST_CURRENT_SPOT is the current row where we will modify our text. --------
-------- QUEST_NUMBER[*number*] is once again reffered as the Quest number (Each quest hasa number) and this quest is set on the Current Spot (row) --------
Set QUEST_NUMBER[1] = QUEST_CURRENT_SPOT
-------- We add 1 to Quest Current Spot so that the next quest doesn't interfere with this row. --------
Set QUEST_CURRENT_SPOT = (QUEST_CURRENT_SPOT + 1)
Collect an item complete
Events
Player - Player 1 (Red) Selects a unit
Player - Player 2 (Blue) Selects a unit
Player - Player 3 (Teal) Selects a unit
Player - Player 4 (Purple) Selects a unit
Player - Player 5 (Yellow) Selects a unit
Player - Player 6 (Orange) Selects a unit
Player - Player 7 (Green) Selects a unit
Player - Player 8 (Pink) Selects a unit
Player - Player 9 (Gray) Selects a unit
Player - Player 10 (Light Blue) Selects a unit
Conditions
QUEST_MAIN_COMPLETE[2] Equal to False
QUEST_DONE[2] Equal to True
(Triggering unit) Equal to Villager (Male) 0001 <gen>
Actions
-------- We are determining what the rewards will be (In this case it's EXP and Gold) YOU MAY MODIFY. --------
-------- This Whole section is the reward Floating text and the rewards we give out to the players. (As a group) --------
Player Group - Pick every player in PLAYER_GROUP_REWARDS and do (Actions)
Loop - Actions
Set UNIT_GROUP_REWARDS = (Units owned by (Picked player) matching (((Matching unit) is A Hero) Equal to True))
Unit Group - Pick every unit in UNIT_GROUP_REWARDS and do (Actions)
Loop - Actions
Player - Add GOLD_ADDED to (Picked player) Current gold
Hero - Add EXP_ADDED experience to (Picked unit), Show level-up graphics
Floating Text - Create floating text that reads (|c00540081 + ((String(EXP_ADDED)) + exp|r)) at (Position of (Picked unit)) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 100.00%), and 0.00% transparency
Set EXP_REWARD_TEXT = (Last created floating text)
Floating Text - Change EXP_REWARD_TEXT: Disable permanence
Floating Text - Set the velocity of EXP_REWARD_TEXT to 64.00 towards 90.00 degrees
Floating Text - Change the lifespan of EXP_REWARD_TEXT to 3.00 seconds
Floating Text - Change the fading age of EXP_REWARD_TEXT to 2.50 seconds
Floating Text - Create floating text that reads (|c00FFFC01 + ((String(GOLD_ADDED)) + gold|r)) at (Position of (Picked unit)) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 100.00%), and 0.00% transparency
Set GOLD_REWARD_TEXT = (Last created floating text)
Floating Text - Change GOLD_REWARD_TEXT: Disable permanence
Floating Text - Set the velocity of GOLD_REWARD_TEXT to 64.00 towards 90.00 degrees
Floating Text - Change the lifespan of GOLD_REWARD_TEXT to 3.00 seconds
Floating Text - Change the fading age of GOLD_REWARD_TEXT to 2.50 seconds
-------- QUEST_SPOT_CHANGE acts the same way QUEST_CURRENT_SPOT does. I made a second one because QUEST_CURRENT_SPOT is to set up the quests while the QUEST_SPOT_CHANGE is at the end to change the spot of all quests. --------
-------- Notice the QUEST_DONE[*number*] trigger, This is to make sure the Quest isn't done in a way that we didn't meet every requirement for the quest. --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
QUEST_MAIN[2] Equal to True
QUEST_DONE[2] Equal to False
Then - Actions
Item - Create Quest 2 item at (Position of (Triggering unit))
Item - Make (Last created item) Invulnerable
Else - Actions
Pickup quest item 2
Events
Unit - A unit Acquires an item
Conditions
(Item-type of (Item being manipulated)) Equal to Quest 2 item
v0.1 : Submitted to Hive.
v0.2 : Added triggers to description, added some eye candy (terraining and colors to Multiboard) and fixed some bugs v0.3 : Fixed a small bug that no one probably noticed, that would make you be able to complete a quest all the time, until you have no more multiboard spots, in which case teh game crashes. Also made the System description a little nicer.
-Shows all the quests you pickup.
-Updates quest once your done the requirements
-Gets rid of the quests once you are finished with it completely.
Updated map. All triggers in first post, as well as features. I have added some nice coloring so it all fits in well, and I'm sure you guys will like it better
As for the leaks, yes people please tell me where the leaks are, as I probably don't know where they are. Also, if they are for the Player groups and Unit Groups, I'm currently working on getting that fixed...somehow...
Really badass, but I don't know how to do it else with GUI. I would simply stick to an vJass hook at item pickup and such, but yeah, GUI is really awful for quests.
Okay my other comment wasnt that helpful but i will try again
I didnt see any leaks, so that should be fine.
I dont think the system is MPI as it is using waits a few times.
Try to make it work without the waits, and it will be MPI.
I didnt find any other things in the coding and it seems fine ingame, as it is used in dalanar rpg.
Fixed a small bug I noticed while looking at it...it would actually cause the game to crash, well it's fixed now so it's no problem.
It uses waits because the floating text would actually go one on top of the other otherwise. And sadly I found another bug in this system that I am currently trying to fix...I just found out about it actually.
it's ok for GUI user
well i still dont like to use it
2 things,
i dont like group-shared-quests
and i dont like GUI-trigger^^
still 3,5/5 i'll round up
Well sadly, I don't know Jass for one, and two, you don't need to like them. Otherw may find a use to it . Anyways, I' still working on single player quests and a few other bugs I found.
i didn't want to say it's bad
still one more suggestion
as i saw it in your map itself (i mean dalanar rpg) it's really annoying that u see in the multiboard "Gnoll Pelt" - "0" and you can't read anywhere where to give the quest back
so in my opinion it would be good if you still add those quests to F9 to read what exactly to do + where + for who
PS: i also made a multiboard questlog for me now, just in jass and that every player has his own quests
you want credits for "stealing the idea" =O?
Bah you know what, the quest multiboard is not just my idea, I mean, everyone can make one and can make their own. It's nit necessarily my idea . So no, you don't need to give credits for it
I am trying out this system, and found a pretty crippling bug...
Lets say you have:
======================
Current Quests
Quest 1 1 text
Quest 2 2 text
Quest 3 3 text
Quest 4 4 text
======================
Then you turn in quest 1, so the scoreboard turns into:
======================
Current Quests
Quest 2 2 text
Quest 3 3 text
Quest 4 4 text
======================
Lets assume Quest 2 is to kill 20 guys... what happens when you kill a guy for the quest is...
======================
Current Quests
Quest 2 2 text (wont change)
Quest 3 2 text (Change to what quest 2 should be)
Quest 4 4 text
======================
This system works for doing 1 quest at a time; but to have multiple quests going at once that can be completed in any order... doesnt seem to be working.
Unfortunately, I don't work with WC3 anymore (Working with SC2 now).
I'll take a quick look at it though, see if I can find the fix for this. (Considering I must be at least 3x better at triggering than I was when I made this)
Using your system as a base; I actually kinda remade the entire thing; and honestly, it looks a little neater; but I didn't clean any of it, so it is dirty.
Q Mrs Brown
Events
Player - Player 1 (Red) Selects a unit
Player - Player 2 (Blue) Selects a unit
Player - Player 3 (Teal) Selects a unit
Player - Player 4 (Purple) Selects a unit
Player - Player 5 (Yellow) Selects a unit
Player - Player 6 (Orange) Selects a unit
Player - Player 7 (Green) Selects a unit
Player - Player 8 (Pink) Selects a unit
Player - Player 9 (Gray) Selects a unit
Player - Player 10 (Light Blue) Selects a unit
Conditions
And - All (Conditions) are true
Conditions
((Region(((Position of (Triggering unit)) offset by (-250.00, -250.00)), ((Position of (Triggering unit)) offset by (250.00, 250.00)))) contains Player_Hero[(Player number of (Triggering player))]) Equal to True
(Triggering unit) Equal to Mrs. Brown 0022 <gen>
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of Player_Hero[(Player number of (Triggering player))]) Less than (Quest_Difficulty[3] + 10)
(Level of Player_Hero[(Player number of (Triggering player))]) Greater than (Quest_Difficulty[3] - 4)
Quest_Done[3] Equal to False
Quest_On[3] Equal to False
Quest_Complete[3] Equal to False
Then - Actions
Set Quest_On[3] = True
Set Quest_Required[3] = 5
Set Multiboard_Column1_Text[3] = |cffff0000Protect the Chickens|r
Set Multiboard_Column2_Text[3] = (String(Quest_Required[3]))
Game - Display to (All players) the text: |cffFF1400Mrs. Brow...
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Quest_Complete[3] Equal to False
Quest_Done[3] Equal to True
Quest_On[3] Equal to True
Then - Actions
Set Quest_On[3] = False
Set Quest_Done[3] = False
Set Quest_Complete[3] = True
Set Quest_Exp_Added = 200
Set Quest_Gold_Added = 200
Set Quest_Rep_Added = 4
Set QUEST_PG_REWARD = Team1
Game - Display to (All players) the text: |cffFF1400Mrs. Brow...
Player Group - Pick every player in QUEST_PG_REWARD and do (Actions)
Loop - Actions
Set QUEST_UG_REWARD = (Units owned by (Picked player) matching (((Level of (Matching unit)) Greater than (Quest_Difficulty[3] - 4)) and ((Level of (Matching unit)) Less than (Quest_Difficulty[3] + 10))))
Unit Group - Pick every unit in QUEST_UG_REWARD and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) is A Hero) Equal to True
Then - Actions
Player - Add Quest_Gold_Added to (Picked player) Current gold
Hero - Add Quest_Exp_Added experience to (Picked unit), Show level-up graphics
Floating Text - Create floating text that reads (+ + ((String(Quest_Exp_Added)) + EXP)) at (Position of (Picked unit)) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
Set Quest_Exp_Text = (Last created floating text)
Floating Text - Change Quest_Exp_Text: Disable permanence
Floating Text - Set the velocity of Quest_Exp_Text to 64.00 towards 90.00 degrees
Floating Text - Change the lifespan of Quest_Exp_Text to 3.00 seconds
Floating Text - Change the fading age of Quest_Exp_Text to 2.50 seconds
Floating Text - Create floating text that reads (+ + ((String(Quest_Gold_Added)) + Gold)) at ((Position of (Picked unit)) offset by (0.00, 50.00)) with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 0.00%), and 0.00% transparency
Set Quest_Gold_Text = (Last created floating text)
Floating Text - Change Quest_Gold_Text: Disable permanence
Floating Text - Set the velocity of Quest_Gold_Text to 64.00 towards 90.00 degrees
Floating Text - Change the lifespan of Quest_Gold_Text to 3.00 seconds
Floating Text - Change the fading age of Quest_Gold_Text to 2.50 seconds
Player - Add Quest_Rep_Added to (Picked player) Current lumber
Floating Text - Create floating text that reads (+ + ((String(Quest_Rep_Added)) + REP)) at ((Position of (Picked unit)) offset by (0.00, 100.00)) with Z offset 0.00, using font size 10.00, color (15.00%, 25.00%, 100.00%), and 0.00% transparency
Set Quest_Rep_Text = (Last created floating text)
Floating Text - Change Quest_Rep_Text: Disable permanence
Floating Text - Set the velocity of Quest_Rep_Text to 64.00 towards 90.00 degrees
Floating Text - Change the lifespan of Quest_Rep_Text to 3.00 seconds
Floating Text - Change the fading age of Quest_Rep_Text to 2.50 seconds
I set my own quest level requirements in there. On map init I set the custom values of QUEST_DIFFICULTY, so that players who are above or below a certain level cannot partake in the quest activity. This is a nice addon, but not required in any way.
Ive tested the above with a variety of 9 quests, being activated and completed and turned in, in many different orders. I have had no problems at all with it.
- I'm too stubborn to learn vJASS or to move on to SC2 yet. Gimme a couple of months...
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.