PDA

View Full Version : Re-released Quest Editor (1.6)


Muuss
11-09-2004, 07:57 PM
Hi, i had few minutes yesterday while recompiling a kernel, so i took the old sources of the quest editor i released a few monthes ago, and adapted them to 6.0 DB format. Its now back online at http://eqemu.vilvert.net The perl templates need to be completed, i ll work on that as soon as i ll find a doc or a summary of all the perl commands.

WildcardX
11-10-2004, 04:29 AM
Nice, but your link doesnt work. I get a 403 Forbidden message from your web server when i click the link.

Darkened
11-10-2004, 04:33 AM
the link works fine on his page.........

just pay a little attention , http://eqemu.vilvert.net./ (the link is wrong , notice the extra . )

remove the . , try the link and it'll work fine.

Muuss
11-10-2004, 04:34 AM
Thanks)

Kroeg
11-12-2004, 02:33 PM
Great job, and I've always been a long time supporter of this tool, back since when you first released it. One problem with this one is though, the syntax is off quite a bit.

Just plugging in a basic EVENT_SAY component returned the following:

sub EVENT_SAY(){
if ($text=~/hail/i){ }
}

The syntax works like this now:

sub EVENT_SAY {
if($text=~/Hail/i){
quest::say("Hail hail hail... tis all ye ever say anymore.");
quest::summonitem(itemno); }
}

If you want some help on updating this, let me know. I use the current perl system all the time, and am very comfortable with it.

Muuss
11-12-2004, 08:55 PM
Thanks Kroeg. In fact i have no problem at all with the new perl system, but i m the lazyest guy around, so lazy that i don't wanna take the time to find all the commands. If you wanna do it, you're more than welcome ! :)
If you correct the wrong ones and add the missing ones, i ll merge it to the source code, recompile and send you flowers :)

addcomand syntax :
- command title
- command string (where | is a CR)
- number of rows
- kind of the command :


Const EVENT=1;
Const COMMAND=2;
Const TEST=3;
Const IDENTIFIER=4;



addcommand('sub EVENT_SAY{}','sub EVENT_SAY()|if ($text=~//i){ }',3,EVENT,'');
addcommand('sub EVENT_ITEM{}','sub EVENT_ITEM()|if ($item1==){ }',3,EVENT,'');
addcommand('sub EVENT_ATTACK{}','sub EVENT_ATTACK()|',3,EVENT,'');
addcommand('sub EVENT_SPAWN{}','sub EVENT_SPAWN()|',3,EVENT,'');
addcommand('sub EVENT_DEATH{}','sub EVENT_DEATH()|',3,EVENT,'');
addcommand('quest::say()','quest::say("");',1,COMMAND,'');
addcommand('quest::addskill()','quest::addskill(,) ;',1,COMMAND,'');
addcommand('quest::break()','quest::break();',1,CO MMAND,'');
addcommand('quest::castspell()','quest::castspell( ,$id);',1,COMMAND,'');
addcommand('quest::depop()','quest::depop();',1,CO MMAND,'');
addcommand('quest::doanim()','quest::doanim();',1, COMMAND,'');
addcommand('quest::echo()','quest::echo("");',1,COMMAND,'');
addcommand('quest::emote()','quest::emote("");',1,COMMAND,'');
addcommand('quest::exp()','quest::exp();',1,COMMAN D,'');
addcommand('quest::faction()','quest::faction();', 1,COMMAND,'');
addcommand('quest::flagmob()','quest::flagmob();', 1,COMMAND,'');
addcommand('quest::flagnpc()','quest::flagnpc();', 1,COMMAND,'');
addcommand('quest::follow()','quest::follow();',1, COMMAND,'');
addcommand('quest::givecash()','quest::givecash(); ',1,COMMAND,'');
addcommand('quest::gmmove()','quest::gmmove();',1, COMMAND,'');
addcommand('quest::linkitem()','quest::linkitem(); ',1,COMMAND,'');
addcommand('quest::level()','quest::level();',1,CO MMAND,'');
addcommand('quest::me()','quest::me("");',1,COMMAND,'');
addcommand('quest::movegroup()','quest::movegroup( );',1,COMMAND,'');
addcommand('quest::movenpc()','quest::movenpc();', 1,COMMAND,'');
addcommand('quest::pvp()','quest::pvp("");',1,COMMAND,'');
addcommand('quest::rain()','quest::rain();',1,COMM AND,'');
addcommand('quest::rebind()','quest::rebind();',1, COMMAND,'');
addcommand('quest::snow()','quest::snow();',1,COMM AND,'');
addcommand('quest::setallskill()','quest::setallsk ill();',1,COMMAND,'');
addcommand('quest::setguild()','quest::setguild(); ',1,COMMAND,'');
addcommand('quest::setsky()','quest::setsky();',1, COMMAND,'');
addcommand('quest::settarget()','quest::settarget( );',1,COMMAND,'');
addcommand('quest::settime()','quest::settime();', 1,COMMAND,'');
addcommand('quest::sfollow()','quest::sfollow();', 1,COMMAND,'');
addcommand('quest::settarget()','quest::settarget( );',1,COMMAND,'');
addcommand('quest::shout()','quest::shout("");',1,COMMAND,'');
addcommand('quest::spawn()','quest::spawn(,,,,,);' ,1,COMMAND,'');
addcommand('quest::summonitem()','quest::summonite m();',1,COMMAND,'');
addcommand('quest::wait()','quest::wait();',1,COMM AND,'');
addcommand('$text','$text',1,IDENTIFIER,'');
addcommand('$class','$class',1,IDENTIFIER,'');
// addcommand('$day','$day',1,IDENTIFIER,'');
addcommand('$faction','$faction',1,IDENTIFIER,'');
// addcommand('$faction_name','$faction_name',1,IDENT IFIER,'');
// addcommand('$item1','$item1',1,IDENTIFIER,'');
// addcommand('$item2','$item2',1,IDENTIFIER,'');
// addcommand('$item3','$item3',1,IDENTIFIER,'');
// addcommand('$item4','$item4',1,IDENTIFIER,'');
addcommand('$mlevel','$mlevel',1,IDENTIFIER,'');
addcommand('$mobid','$mobid',1,IDENTIFIER,'');
addcommand('$name','$name',1,IDENTIFIER,'');
// addcommand('$npc_status','$npc_status',1,IDENTIFIE R,'');
addcommand('$race','$race',1,IDENTIFIER,'');
// addcommand('$random','$random',1,IDENTIFIER,'');
addcommand('$status','$status',1,IDENTIFIER,'');
// addcommand('$time','$time',1,IDENTIFIER,'');
// addcommand('$uguildrank','$uguildrank',1,IDENTIFIE R,'');
addcommand('$uguildid','$uguildid',1,IDENTIFIER,'' );
addcommand('$ulevel','$ulevel',1,IDENTIFIER,'');
addcommand('$userid','$userid',1,IDENTIFIER,'');
addcommand('$zoneln','$zoneln',1,IDENTIFIER,'');
// addcommand('$zonesky','$zonesky',1,IDENTIFIER,'');
addcommand('$zonesn','$zonesn',1,IDENTIFIER,'');

Cutter
11-14-2004, 12:25 AM
are your programs released yet? i went to your site.. and clicked on your links. will not download...

mrea
11-14-2004, 01:17 AM
You have to click the name of the prog. you want and then click the thing that says "Click the link to download the program" above it

Kroeg
11-14-2004, 07:37 PM
Where's the sourcecode Muuss ? I'll add the changes during my offtime.

Muuss
11-14-2004, 07:44 PM
You just need to modify the code i pasted earlier. I can't make the source open since the mysql component I use isn't opensource, nor free :/ Basically, a set of AddCommand() will be enough to add the templates, if there's need of something else, describe it clearly, i ll add it !
I should eventually correct this and use another component... I use this one cause we developped it at work and use it a lot, so i m used to it.

mystic414
12-17-2004, 08:32 AM
Muuss, this quest editor is awesome! I'm not sure how I missed it when you first put it out, but I'm glad I found it... It's easily the best quest editor available now (sorry, Cofruben, no offence :) )

I came up with a few comments/suggestions I hope will be helpful:

1. Named quests have been supported by default for a while now... would be nice if you gave an option to load and save quest files by npc name rather than npcid. It could just be a checkbox someplace for those of us who want to use named quests.

2a. For the Item menu, it would be nice if there was a right-click option to insert just the item's id number without any additional code

2b. Another Item menu right-click option of ($itemcount { } == ) would be helpful.

3. Come to think of it, could you remove the $item1== from the default sub EVENT_ITEM template? As per our discussion here: http://www.eqemulator.net/forums/viewtopic.php?t=17622, it's almost always better to use $itemcount than $item1, etc.

4. Maybe I'm just missing something obvious, but the Load button doesn't seem to do anything at all. Is it working?

Thanks for making such an awesome editor! It's because of people like you that EQEmu will never die :)

EQEmu102
10-20-2005, 12:51 PM
Anyone still got this or updated it for 6.2?

1Boppoom1
12-15-2005, 06:52 AM
Is there anyway you can the program resize itself? cause man when u built this u had either a huge screen with alot of room or just didnt try it out afterwards. If its possible can you make it resizable, ive tried to resize it ever wya i can lol cause i cannot view the bottom half of the editor and my screen is pretty big. Thanks

Muuss
02-03-2006, 04:34 AM
Sorry boys, i m out of the race ATM and prolly again for a while. Be sure that if i change anything of interest, ill let you know :)

Muuss
04-06-2006, 02:18 AM
Quest editor 1.7 is now available, for EqEmu 6.6+ and only perl support.
You can download it from http://eqemu.vilvert.fr

Howto : unzip the file, edit config.ini. Run the executable.

Post bugs or questions here.

Muuss

Muuss
04-10-2006, 12:26 AM
Made a small update.
- Fixed the popups
- Added a $ before itemcount and removed () after the EVENT_*
- Added wordwrap to the text editor

Redownload 1.7

http://eqemu.vilvert.fr/quest_editor-1.7.zip

cavedude
04-10-2006, 09:51 AM
Excellent tool, makes the process of writing quests far less tedious :) Thanks man!

Muuss
04-10-2006, 06:56 PM
Thanks :)
At least 2 of us are using it :D

Muuss
04-24-2006, 01:34 AM
Updated to 1.8

lots of fixes, a few improvements, and a better text editor. Worth the update if you use it, imho.

http://eqemu.vilvert.fr/quest_editor-1.8.zip

klinzhai
04-24-2006, 02:31 AM
It's better than nothing, but I'd like to suggest a few improvements (if you don't mind... I'm so rusty on my programming I'd probably break if I tried to write anything right now):

1) Create some way to follow quests through all the steps and go back and edit them by name. The best way I can think of is to create a 'c:\eqemu\quests\masterlist' directory that keeps a list of quests and their steps, so you can go look at a quest and all the steps.

2) When creating a quest (or quest step), make the job a little easier for perl dummies (like me) by having a top window (call it character part) where you list what the character does ('says "Hail" 'or 'gives item #28395') then have a second window, where you list what the NPC does ('says "Thank you, this will be remembered") then have a bottom window where you list rewards (spawn item 29385, 1200 experience points, faction, etc...) For the rewards, you might think of just having buttons like "Add Item", "Add Experience", "Add money" and "Add Faction" (note, the faction reward could be negative).

I'm just thinking of ways to help other people build quests so that we can get more of them out there. This editor is by far better than anything else I've seen out there and miles better than doing it by hand. I'm just thinking that if there was something that a complete computer doofus could use (well, maybe not complete... but you get the idea), I think we'd have a *lot* more people out there building quests and not only quests, but nice, long multi-part, epic-type quests.

Muuss
04-24-2006, 03:01 AM
Thank you for your suggestions.

First one will never be released. It would block you to update quests from only 1 computer and only from questeditor. Anybody doing it by hand or without questeditor would mess everything.

Second one would certainly be a very nice improvment, but that's so much work for so few people... The best you can do i think is to use the popups (you saw that the editor is full of popups, right ?), most of them add comments after the commands, it makes the scripts pretty easy to read.

klinzhai
04-24-2006, 05:04 AM
Ah, but you could always share out the quests directory and allow someone to connect to it externally (or simply have it create the quests). Or have a quest importer that would append the quest text into existing NPC quest files. That would actually make it really easy for anyone to add new quests without having to touch all of the NPC files.

Here's what I'm thinking:

Masterlist directory: contains a list of quests. Inside the files are the following:

<step1>
<char>say::"Hail, Oogabooga"</char>
<NPC>say::"What you want? Oogabooga can make yooz a [pretty shield]."</NPC>
</step1>
<step2>
<char>say::"pretty shield"</char>
<NPC>say::"Yep. Yooz bring me a body from a [big spider] and me make a shield for yooz."</NPC>
</step2>
<step3>
<char>say::"big spider"</char>
<NPC>say::"Yooz go to da desert on da odder side of da Innotool Swamp and der is a big spider der. Yooz smash him gud and bring me da body and me make yooz a shield."</NPC>
</step3>
<step4>
<char>give::Item#6759</char> (or whatever the numver for Terrorantula carapace is)
<NPC>say::"Ooh, yooz barshed him gud! Just a sekund, me make yooz a shield really quick!! Here yooz go, see, dis a pretty shield!!"</NPC>
<reward>createitem::Item#54768 (pretty shield); exp::2000; faction::Oogabooga/120</reward>
</step4>

So that's all in the master list. Call it "Oogabooga pretty shield" or whatever. Then when it imports the quest, it checks Oogabooga for the quests and if they're there, then it replaces those entries, if they're not, then it appends them on the end. You can always make a #rem statement to list the quests that are there. Example:

#rem Oogaboogaprettyshield,Oogaboogaprettysword,Oogaboo gaprettyboots,etc....

Then it knows what quests are there just by looking at the #rem line at the beginning.

Just thinking about how it could work for anyone. Then you just need to copy over the "Oogaboogaprettyshield.qst" file to anyone and they can import the quest into their quest list. It would require a little bit of rework on quests, but I think it would be worth it in the long run and it would be nice for the PEQ people, since they can always bring in quests to test, then remove them or update them quickly. :)

So basically you build the quest in the editor, it creates a quest file, then you import it into the actual NPC quest files.

Cisyouc
04-24-2006, 07:03 AM
Wait, I'm not understanding, why have the XML when the Perl is just as easier and stronger? What about XS capabilities?

klinzhai
04-25-2006, 01:00 AM
I was using xml because I know xml structure off the top of my head. It doesn't matter what format you use overall, the idea is the same and it would probably be easier to do if the quest master file was in Perl script.

It's all right Muuss.... I have a friend who is a really good programmer that will take care of this for me. He wants to play on my server and after I explained to him what I wanted he said "Sounds pretty basic, I should be able to do it", so I'm going to send him my specs and the basic perl format for quests in EQEmu.

abaddon
09-27-2006, 03:42 AM
I know this topic is a bit old... but I just DL'd 1.8 will post my thoughts when I make em *grins*

GeorgeS
10-04-2006, 01:46 PM
Actually I too prefer simple text rather than xml

GeorgeS