HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Automatic Quest System (Multiplayer Compatible)

01-15-2006, 07:06 PM#1
shadow1500
An automatic quest system, you do not need to use any variables or other stuff to store ur quests, a simple id system allows you to access each quest and easily find if its complete/discovered/undiscovered.
it is multiplayer compatible, and it doesnt create a quest for each player, instead, it creates a quest as soon as its needed and then recycles it for other players.
This system has many additional features to the old Wc3 Quest system
1. Multiplayer compatible (And optimized for it as well)
2. Display Quest Messages Automatically
3. Quest Requirment Counters (As seen by the screenshot)
4. Simple ID system instead of using endless variables to store everything
5. Create the quest effect more easily (Works in Multiplayer)
Attached Images
File type: jpgQuestPic.jpg (45.4 KB)
Attached Files
File type: w3xAutoQuestSystem1.1.w3x (42.1 KB)
01-15-2006, 07:31 PM#2
Vexorian
was not able to find obvious leaks. And the system is pretty good and seems that it might be really useful.

Aproved + rep
01-15-2006, 07:39 PM#3
Blade.dk
Funny that Vex checked it at the same time, hehe.

Well, I checked it, it has locals not set to null leaks, you should try to fix them.

And replace this:

Collapse JASS:
function InitQuestSystem takes nothing returns nothing
     set udg_hash = InitGameCache("handlevars.w3v")
     set udg_questsys = InitGameCache("questsys.w3v")
endfunction

with this:

Collapse JASS:
function InitQuestSystem takes nothing returns nothing
     call FlushGameCache(InitGameCache("handlevars.w3v"))
     set udg_hash = InitGameCache("handlevars.w3v")
     call FlushGameCache(InitGameCache("questsys.w3v"))
     set udg_questsys = InitGameCache("questsys.w3v")
endfunction

To fix a nasty Blizzard bug that Vexorian found, read about it here.

Pretty nice system :).
01-15-2006, 07:53 PM#4
shadow1500
ty blade, submitted updated version, dunno how to update it in the original post though >_<
01-15-2006, 08:03 PM#5
Blade.dk
Edit Post --> Go Advanced --> Manage Attachments.

EDIT: Updated it in the first post for you :).
01-16-2006, 12:42 PM#6
boomwolf
wonderfull thing!!! very well done!!! dude you are amazing!
but this system is really complex! i dont understand half of it! ho well time to learn some more triggering...
01-16-2006, 11:20 PM#7
shadow1500
Quote:
wonderfull thing!!! very well done!!! dude you are amazing!
ty
Quote:
this system is really complex! i dont understand half of it! ho well time to learn some more triggering...
u dont have to understand it to use it, its very simple to use once you get used to it, look in the help section in the trigger editor, it has explanations for all the functions and how to use them.
01-19-2006, 04:49 PM#8
Meanie
i have 4 players in my map and they have 4 diffrent heroes and all those heroes does the same quest is it supposed to work then? coz the globals will just over write each other?and then absolutely nothing works.... havent tested it yet
01-19-2006, 09:54 PM#9
shadow1500
When i say multiplayer compatible, that means that two players can have the quest at the same time and have different progress, like player 1 only done the first requirment, but player 2 has finished the second requirment.
There are no globals used in the map, except the game cache variable, and a string array which is used as global (so that the game doesnt have to find memory locations for 8000 strings each time a quest updates)
01-20-2006, 11:40 AM#10
Medivh
Yes, I'm a bit of a noob, my question: How do you put this quest system in your map?
01-20-2006, 02:56 PM#11
shadow1500
You have to copy the code at the custom script section, look in the trigger editor, ur map's name is at the upper-left, Copy the code inside to the same place in ur map.
There are 3 needed variables, questsys - gamecache, hash - gamecache and ArrayVar - string array,
make those variables in ur map, and then u can freely use all functions as specified in the help section.
01-21-2006, 10:43 AM#12
Medivh
Okey dokey,thx !
02-06-2006, 07:28 PM#13
Meanie
Got a hand of this now so its the ultimate quest system...but you should add Follow up feature so only when a player have done the last quest he can do the next....like in WoW, but its easy to make that self only make an Boolean variable with an array blah blah blah
02-07-2006, 05:59 PM#14
Chuckle_Brother
Nice system, might be better though if you add some stuff to the player's quest menu, maybe change optional to "Completed" and the other to "Active".
02-07-2006, 08:27 PM#15
shadow1500
When a quest is completed, it is removed, it is intended to be this way.
Since this system is for multiplayer, completed quests will cause unneccecary lag, espacially if u have lots of quests.