Go Back   RunUO - Ultima Online Emulation > RunUO > RunUO Post Archive > Custom Script Release Archive

Custom Script Release Archive This is a pre-script database archive of what our users had released.

 
 
Thread Tools Display Modes
Old 03-15-2005, 12:22 AM   #1 (permalink)
Forum Novice
 
Join Date: Jan 2005
Age: 47
Posts: 176
Default GatorsGauntlet using xmlspawner2

Alright, this is my first real submission, and without ArteGordan and his great help this would never of happened.
This may help some people starting off better understand xmlspawner and some detailed steps on setting up part of a quest.

Since the information is pretty big, I will add it with code tags and also put it in the zip file. Enjoy and if there are any questions I will try to do the best i can to help.
Code:
First I would like to thank ArteGordon for the help in guiding and instructing me in the different steps and methods that I could take to get this accomplished.

I wanted to try and give some step by step instructions for what was done and hope this may be some help to someone else trying to setup their own quest using xmlspawner.

this was an idea that started when a friend and I were goofing off in green acres and walked to the lower north east corner. there we spotted another dungon with teleported there to explore. We seen that it was empty and was probally a dungon that uo was working on and didnt complete, so the idea was to make something with it. At first we were going to make an undead city there but after some work was started I thought this would be great to setup something like a gauntlet type quest since there are 6 hallways. This is where I started asking ArteGordon questions if he would help guide me in setting up this quest and with alot of help I feel its close to being complete.
 
1. My friend and I used pandoras box to set doors in between each set of hallways so this would be six areas to go through, we then named each door "door1,2,3...7 to name the door do this:
[props and target the door click on right arrow at top to goto next page and you should see name, click on the arrow and rename the door to door1,2, ect....

2. I then needed to set a spawner to open the first door so these are the steps I did:
   
[add xmlspawner - with target cursor I set the spawner 2 tiles in front of the door
[props - clicked on spawner 
I used the top right arrow to goto the next pages and made changes to:
maxdelay=03s - beside maxdelay i clicked on right arrow clicked by 's' and typed 3
mindelay=01s - beside mindelay i clicked on right arrow clicked by 's' and typed 1
(this would mean that between 1-3seconds the spawn or action will take place)
ProximityMsg=Beware there is no Return - clicked on right arrow and typed in message
ProximityRange=1 - clicked on right arrow and deleted -1 and type in 1 (-1 disables this)
RefractMax=30s - clicked on right arrow and clicked by 's' and type in 30
RefractMin=20s -  clicked on right arrow and clicked by 's' and type in 20
(this was done so I wouldnt keep trying to open the door over and over, it would wait 20-30seconds before trying to do this again.
TriggerAccessLevel=Admin - clicked on right arrow and picked admin
(I did this so I could test, this defaults to player and the triggers wouldnt work for me untill i changed this)
TriggerObject - click on arrow, select Null, you should get a target cursor, click on the spawner, it should open another gump and just right click on it to close, now you should see:
TriggerObjectName "spawner"
closed props
clicked on spawner
when spawner gump opened I clicked on the scroll to the right of the first line, this should open up a blank book, click on the right top side of the book and you should see a cursor flashing, there type:
SET,door1,basedoor/open/true/locked/false
then click with right mouse and it will put the command in the first line and it will set max=1
(SET needs to be caps, door1 will be the name of the first door, want it to open and be unlocked)
Now for me I usually always click on reset at the bottom and then clicked on the ON button, now somtimes if there was a problem you would see it in red in that area, sometimes you will not see an error untill you close the gump and test the spawner by walking to it, if it didnt work open the spawner again by clicking on it and you may see the error then.

2. I then walk through the door and set another spawner to lock the door behind me.
[add xmlspawner - target the ground close to the door and place
[props and click on the spawner
maxdelay=03s - beside maxdelay i clicked on right arrow clicked by 's' and typed 3
mindelay=01s - beside mindelay i clicked on right arrow clicked by 's' and typed 1
ProximityMsg=The Door has Locked Behind You - clicked on right arrow and typed in message
ProximityRange=1 - clicked on right arrow and deleted -1 and type in 1 (-1 disables this)
RefractMax=30s - clicked on right arrow and clicked by 's' and type in 30
RefractMin=20s -  clicked on right arrow and clicked by 's' and type in 20
TriggerAccessLevel=Admin - clicked on right arrow and picked admin
closed props
clicked on spawner
when spawner gump opened I clicked on the scroll to the right of the first line, this should open up a blank book, click on the right top side of the book and you should see a cursor flashing, there type:
SET,door1,basedoor/open/false/locked/true
then click with right mouse and it will put the command in the first line and it will set max=1

3. set spawns in the first hallway, one in the right one in the left
in left hallway (or west)
[add xmlspawner - i place this in the center of the pentagram that was there
[props - and click on spawner
maxdelay=03s - beside maxdelay i clicked on right arrow clicked by 's' and typed 3
mindelay=01s - beside mindelay i clicked on right arrow clicked by 's' and typed 1
ProximityMsg=This is Easy - clicked on right arrow and typed in message
ProximityRange=3 - clicked on right arrow and deleted -1 and type in 3 (-1 disables this)
RefractMax=2m - clicked on right arrow and clicked by 'm' and type in 2
RefractMin=1m -  clicked on right arrow and clicked by 'm' and type in 1
SpawnRange=2 - clicked on right arrow and changed to 2
TriggerAccessLevel=Admin - clicked on right arrow and picked admin
TriggerObjectProp=currentcount=0 - click on arrow and type in currentcount=0
(with TriggerObject this will see if the object has a spawn and if it dont then this spawner will spawn if it does then this spawner will not)
name=spawner1a - this names the spawner so we can identify it better
close props for now, we will need to come back and do some more
walk the the right hallway (east)
[add xmlspawner - i place this in the center of the pentagram that was there
[props and click on spawner
maxdelay=03s - beside maxdelay i clicked on right arrow clicked by 's' and typed 3
mindelay=01s - beside mindelay i clicked on right arrow clicked by 's' and typed 1
ProximityMsg=This is Easy - clicked on right arrow and typed in message
ProximityRange=3 - clicked on right arrow and deleted -1 and type in 3 (-1 disables this)
RefractMax=2m - clicked on right arrow and clicked by 'm' and type in 2
RefractMin=1m -  clicked on right arrow and clicked by 'm' and type in 1
SpawnRange=2 - clicked on right arrow and changed to 2
TriggerAccessLevel=Admin - clicked on right arrow and picked admin
TriggerObject - click on the right arrow, select Null, this should give you a target cursor, walk to the west hallway and target spawner1a, it should bring up another gump just right click to close it then walk back to east spawner props should still be up.
TriggerObjectName should have 'Spawner1a" in the box
TriggerObjectProp=currentcount=0 - click on arrow and type in currentcount=0
name=spawner1b -click on arrow and name spawner1b
close props
click on spawner
when spawner gump opened I clicked on the scroll to the right of the first line, this should open up a blank book, click on the right top side of the book and you should see a cursor flashing, there type:
ratman/combatant/TRIGMOB
(this could be any creature in the game, combatant makes it aggressive, TRIGMOB (in caps) targets who triggered the spawn, so it wont just stand there it will attack you)
I click on reset and on to see if there are any errors, then I kill the spawn.
I then go back to the west hallway and do
[props
TriggerObject - click on the right arrow, select Null, this should give you a target cursor, walk to the west hallway and target spawner1b, it should bring up another gump just right click to close it then walk back to east spawner props should still be up.
TriggerObjectName should have 'Spawner1b" in the box
close props
click on spawner
when spawner gump opened I clicked on the scroll to the right of the first line, this should open up a blank book, click on the right top side of the book and you should see a cursor flashing, there type:
spider/combatant/TRIGMOB
I click on reset and on to see if there are any errors, then I kill the spawn.

3. set a spawner to open door so i can goto North to the next hallway this door will be created where the walls are closest in the middle in the North hallway between first and second hallway

[add xmlspawner - set it on the second tile in front of the door
[props and click on spawner
maxdelay=03s - beside maxdelay i clicked on right arrow clicked by 's' and typed 3
mindelay=01s - beside mindelay i clicked on right arrow clicked by 's' and typed 1
ProximityRange=1 - clicked on right arrow and deleted -1 and type in 1 (-1 disables this)
RefractMax=2m - clicked on right arrow and clicked by 'm' and type in 2
RefractMin=1m -  clicked on right arrow and clicked by 'm' and type in 1
TriggerAccessLevel=Admin - clicked on right arrow and picked admin
TriggerObject - click on arrow, select Null, you should get a target cursor, click on the spawner, it should open another gump and just right click on it to close, now you should see:
TriggerObjectName "spawner"
close props
click on spawner
at the bottom right you should see a props button click on that, it will open 3 pages of props, you will notice that changes that you made should be in green. you need to goto the right side and click on the arrow next to 
TriggerObjectPr... (prop) and you need to type in this command:
GET,spawner1a,killcount>0 & GET,spawner1b,killcount>0
(GET "in caps" will check spawner1a to make sure there is a kill greater then zero &=is and spawner1b for a killcount greater then zero)
click on the right arrow to close
then click on the scroll to the right of the first line, this should open up a blank book, click on the right top side of the book and you should see a cursor flashing, there type:
SET,door1,basedoor/open/true/locked/false
then click with right mouse and it will put the command in the first line and it will set max=1
click on reset and then 'on' to see if there are any errors then close

Now is the time to test the first hallway, run to the west and a ratman should spawn, kill it and the go to the east and a spider should spawn, kill it and the go the the door in the middle and in a couple secs the door should open for you.

Now that you have the first area done, you just repeat the steps, for each hallway, I made the spawns harder for each hallway that i did and I did change some of the spawn messages and door trigger messages.

4. after you go through last door, i belive it will be door7
you need to use pandoras box again and block the path to the west and east and the cave to the north, after blocking the two halways i just placed walls so it looked like a big square
in the middle of the now made room i placed a spawner
[add xmlspawner
[props -click on spawner
maxdelay=03s - beside maxdelay i clicked on right arrow clicked by 's' and typed 3
mindelay=01s - beside mindelay i clicked on right arrow clicked by 's' and typed 1
ProximityMsg=Deaths Advocate Approaches - clicked on right arrow and typed in message
ProximityRange=3 - clicked on right arrow and deleted -1 and type in 3 (-1 disables this)
RefractMax=2m - clicked on right arrow and clicked by 'm' and type in 2
RefractMin=1m -  clicked on right arrow and clicked by 'm' and type in 1
TriggerAccessLevel=Admin - clicked on right arrow and picked admin
name=spawnerfinal
close props
click on spawner
then click on the scroll to the right of the first line, this should open up a blank book, click on the right top side of the book and you should see a cursor flashing, there type:
lichlord/isparagon/true
(spawns a paragon lichlord, again you can set to what you want for creature)
then click with right mouse and it will put the command in the first line and it will set max=1
click on reset and then 'on' to see if there are any errors then close

5. now set a spawner one tile in front of the wall in front of the cave entrance
[add xmlspawner
[props and click on spawner
Duration=1m - click on right arrow and click by the 'm' and type 1
(this is how long this spawn will last when its active)
maxdelay=03s - beside maxdelay i clicked on right arrow clicked by 's' and typed 3
mindelay=01s - beside mindelay i clicked on right arrow clicked by 's' and typed 1
ProximityRange=1 - clicked on right arrow and deleted -1 and type in 1 (-1 disables this)
RefractMax=2m - clicked on right arrow and clicked by 'm' and type in 2
RefractMin=1m -  clicked on right arrow and clicked by 'm' and type in 1
TriggerAccessLevel=Admin - clicked on right arrow and picked admin
TriggerObject - click on arrow, select Null, you should get a target cursor, click on the spawner, it should open another gump and just right click on it to close, now you should see:
TriggerObjectName "spawner"
close props
click on spawner
at the bottom right you should see a props button click on that, it will open 3 pages of props, you will notice that changes that you made should be in green. you need to goto the right side and click on the arrow next to 
TriggerObjectPr... (prop) and you need to type in this command:
GET,spawnerfinal,killcount>0
(GET "in caps" will check spawnerfinal to make sure there is a kill greater then zero)
 then click on the scroll to the right of the first line, this should open up a blank book, click on the right top side of the book and you should see a cursor flashing, there type:
moongate/target/(5733,792,0)/targetmap/trammel
(what will happen here is when you kill the spawn it will make the kill greator then zero, that will trigger this spawn and create a moongate that will stay up for one min (duration=1) so when you walk in it will gate you to (x,y,z) on the trammel map. you can change this to what you want but the coords should gate you to a room to the north, you should be able to see it on your radar since your a admin if you have any question just start walking back south of the room and you should run into the wall you made in front of the cave, if you dont then you need to change trammel to felucca.
after I was for sure I was in the right one I then closed the opening in the room with pandoras box.

6. in the room i added a Quest Reward Stone I dont know who to give all the credit to but the last person to edit the one I downloaded was stryder, and he didnt know who did it either, so kudo's to someones hard work.
I also made a simple edit to the stone, I made it so everything was free, but now I need to figure out how to add where you can only pick one item.
After that I will set a moongate or teleporter to take them back to a town.
there have been to many good moongate and teleport scripts to name everyone that I would like to thank.

There is alot of changes or different ways someone else may of done this, but with the help from ArteGordon this is what I have put togather, and this has been tested and works. I hope if this is not what someone wants it may give you a clue to help you do something you do.

Please forgive any grammer or spelling issues.

Extra:

After more talking with ArteGordon, I have been working on setting up the Guantlet so it could be saved and placed with little or no work. This should spawn all wall/doors/creatures/rewards/and extras. This was placed on the felucca map, and at the moment is working fine for me. You may still go in and change the spawns and or rewards.
Note: you need to set a gate in the entrance room somewhere, this would be so if anyone dies they can get out, the region is set so you cannot mark/gate/or recall. so this gauntlet is all or nothing, might want to put up a sign to make sure stuff is insured before trying.

I also didnt setup a quest to get down here, you may make it a open dungon for everone to goto, or you might setup a small quest that needs to be done to show them worthy to come down here.

I also noticed that when you walk in front of the doors you may have to wait a sec before you trigger it to open. this could of been because of lag, but wanted to let you know.

this is to let you know how i set the walls and doors and extras up:
by now you have a better idea getting around in the spawner
for the first hallway that had walls and doors I had used pandoras to set the first and then I opened a wordpad doc on my desktop and typed in the locations and commands that I would need.
the first wall and door went like this:
static,577/location/(5729,975,0)/name/gguant_wall
static,577/location/(5730,975,0)/name/gguant_wall
metaldoor,0/location/(5731,975,0)/name/gguant_door1
static,577/location/(5732,975,0)/name/gguant_wall
static,577/location/(5733,975,0)/name/gguant_wall
static,577/location/(5734,975,0)/name/gguant_wall

its a static deco, static id of 577 (look at pandoras and you will see under the picture of it two numbers, the one to the right is the one i used), stating you are going to set to a location, (x,y,z) coords if you use do props on the wall it will show you the coords, showing you going to name the wall wich is good to keep track of, and what you name it.
metaldoor is the type of door,0 is the direction, and the rest is the same exept what i used for the name.
[xmlspawner
first line I copied and pasted in the fist line of the spawer
did the same for the rest
I deleted the walls and door that i set with pandoras
and set count to one for each of the lines and watch them all spawn

for the static walls that needed to be turned, I used statuc,578 which you will see in pandoras
the other thing I did was setup the QuestRewardStone to spawn instead of it just setting there:

[add xmlspawner
[props
Duration=1m - click on right arrow and click by the 'm' and type 1
maxdelay=03s - beside maxdelay i clicked on right arrow clicked by 's' and typed 3
mindelay=01s - beside mindelay i clicked on right arrow clicked by 's' and typed 1
ProximityRange=1 - clicked on right arrow and deleted -1 and type in 1 (-1 disables this)
RefractMax=2m - clicked on right arrow and clicked by 'm' and type in 2
RefractMin=1m -  clicked on right arrow and clicked by 'm' and type in 1
SpawnRange=1 - clicked on right arrow and changed to 1
TriggerAccessLevel=Admin - clicked on right arrow and picked admin
TriggerObject - click on the right arrow, select Null, click on the spawnercrystal
TriggerObjectName should have 'Spawner1" in the box
TriggerObjectProp=Get,GspawnFinalFight,killcount>0
(that is so you can only get the reward to spawn if you kill the final monster)

and in spawner on the fist line i just typed in QuestRewardStone

Now when trigger is hit, it will spawn the reward stone for 1min and then it will dissapear

the other spawner in this room is for blocking the doorway and creating the publicmoongate.
 

Ok, with even more help for ArteGordon, I learned that if in my spawners if I setup subgroups on them the spawns will be faster, ect. the walls and doors. When I did this and respawned the Gauntlet, it was much faster, and also figuring that instead of using the doors for a triggerobject and using the spawnercrystal itself has saved me alot of time. 

I will add the QuestRewardStone to this, just put it in your customs folder
you will have to do [xmlload GatorsGauntlet.xml to load the Gauntlet (remember this is in the empty dungon at the north east corner of green acres, and it is setup for felucca

Enjoy
Attached Files
File Type: zip GatorsGauntlet.zip (37.7 KB, 522 views)
Gator81 is offline  
Old 03-15-2005, 02:47 AM   #2 (permalink)
Forum Master
 
Join Date: Aug 2003
Posts: 5,688
Default

nice job.
I just tried it out. One minor thing, when you first load it the doors are not locked, so the first time you run through after loading it is possible to go right to the champ by just opening the doors. In your GSpawnHallway spawner I would spawn the doors with /locked/true.
Also, in the last creature spawner before your champ you spawn a "revenantlion". That is a custom se creature that is not in the distro so some people might not have it. If they dont, then they just need to replace it with something else otherwise they cant finish.

btw, I like your messages
__________________
The first line of the first rule in the forum rules and guidelines "Be respectful of others. "

For questions, information, and support for XmlSpawner and its addons, visit the
XmlSpawner Support Forum
ArteGordon is offline  
Old 03-15-2005, 11:01 AM   #3 (permalink)
Forum Novice
 
Join Date: Jan 2005
Age: 47
Posts: 176
Default

Quote:
Originally Posted by ArteGordon
nice job.
I just tried it out. One minor thing, when you first load it the doors are not locked, so the first time you run through after loading it is possible to go right to the champ by just opening the doors. In your GSpawnHallway spawner I would spawn the doors with /locked/true.
Also, in the last creature spawner before your champ you spawn a "revenantlion". That is a custom se creature that is not in the distro so some people might not have it. If they dont, then they just need to replace it with something else otherwise they cant finish.

btw, I like your messages
Thanks for the help!

I made the changes to the doors so they will be locked when spawned and I changed the revenantlion to a drake and re-uploaded the file, so if anyone already downloaded it and if they want the changes instead of dooing it themselves they could download it again. (almost sounds confusing)

I am still working on the quest reward stone (still cannot get it to do what I want fully) and maby adding some more deco and stuff, if the changes are great enough I will also release an update if the users would like.

After I am finally finished with all I want to do with this project, I am working on some more ideas for another quest
Gator81 is offline  
Old 03-15-2005, 02:46 PM   #4 (permalink)
Forum Master
 
Join Date: Aug 2003
Posts: 5,688
Default

Here is something to try for dispensing your rewards. It is a questnpc that will hand out rewards based upon player dialog.
I set it up to hand out a 10K bankcheck and a random lev 4-5 piece of magical armor, weapon, or jewelry based upon what the player asks for, but you could set it up to give out whatever you wanted.

Once the reward is given it also uses the XmlQuestAttachment to flag players as having completed the quest with an expiration time that you can set (I made it 10 hours), to limit how frequently they can do the quest and receive a reward.

To try it out, just drop the .npc file either in your main RunUO installation directory, or in a folder name XmlQuestNPC in your main RunUO installation directory.

I also added the spawner to load the npc.
Attached Files
File Type: zip questmaster.zip (1.9 KB, 129 views)
__________________
The first line of the first rule in the forum rules and guidelines "Be respectful of others. "

For questions, information, and support for XmlSpawner and its addons, visit the
XmlSpawner Support Forum
ArteGordon is offline  
Old 03-16-2005, 01:25 AM   #5 (permalink)
Forum Novice
 
Join Date: Jan 2005
Age: 47
Posts: 176
Default

Quote:
Originally Posted by ArteGordon
Here is something to try for dispensing your rewards. It is a questnpc that will hand out rewards based upon player dialog.
I set it up to hand out a 10K bankcheck and a random lev 4-5 piece of magical armor, weapon, or jewelry based upon what the player asks for, but you could set it up to give out whatever you wanted.

Once the reward is given it also uses the XmlQuestAttachment to flag players as having completed the quest with an expiration time that you can set (I made it 10 hours), to limit how frequently they can do the quest and receive a reward.

To try it out, just drop the .npc file either in your main RunUO installation directory, or in a folder name XmlQuestNPC in your main RunUO installation directory.

I also added the spawner to load the npc.
Nice, You ROCK, I will put this in and check it out.

thanks...........

I got to look at this, and I wanted to know if the npc could be duplicated? so If i wanted to use it for more then one quest?
and would you know if there is any steps posted somewhere that explains how someone could setup one of the .npc scripts. so i could add or remove anything without messing it up or loosing great amouts of sleep.


thanks

more notes: I installed the questmaster and spawned it, I went and run through the gauntlet as a player and when i got to the end the questmaster just stood there, no matter what i said it didnt seem to trigger him. Am I doing something wrong? I figured that when i came withing 3 spaces from him it should trigger him saying well done choose thy reward or something like that, and i got nothing. I will keep working with it, but if you see something i am doing wrong let me know.
Gator81 is offline  
Old 03-17-2005, 04:24 AM   #6 (permalink)
Forum Master
 
Join Date: Aug 2003
Posts: 5,688
Default

Sure, you can load the .npc file into as many npcs as you like. For info on setting up .npc files you will have to look through xmlspawner2.txt and the .npc examples. Just do a search for xmlquestnpc.

As for why your questnpc was not responsive, my guess is that it didnt load the questmaster.npc file. Is he named "QuestMaster"? If he isnt, then the file didnt load. Make sure that you have the .npc file in one of the default locations, either in the main RunUO installation directory or in the XmlQuestNPC folder in the main RunUO installation directory.
__________________
The first line of the first rule in the forum rules and guidelines "Be respectful of others. "

For questions, information, and support for XmlSpawner and its addons, visit the
XmlSpawner Support Forum
ArteGordon is offline  
Old 03-17-2005, 05:10 AM   #7 (permalink)
Forum Novice
 
Join Date: Jan 2005
Age: 47
Posts: 176
Default

Quote:
Originally Posted by ArteGordon
Sure, you can load the .npc file into as many npcs as you like. For info on setting up .npc files you will have to look through xmlspawner2.txt and the .npc examples. Just do a search for xmlquestnpc.

As for why your questnpc was not responsive, my guess is that it didnt load the questmaster.npc file. Is he named "QuestMaster"? If he isnt, then the file didnt load. Make sure that you have the .npc file in one of the default locations, either in the main RunUO installation directory or in the XmlQuestNPC folder in the main RunUO installation directory.
This one seems to elude me, I have the questmaster.npc file in the xmlquestnpc folder, and i put the xml spawner you created in the spawns folder and their both in the root. As for the npc name when he spawns it is Not QuestMaster, so I dont know why it isint loading, if you have another suggestion, I would be glad to try.
Gator81 is offline  
Old 03-17-2005, 05:17 AM   #8 (permalink)
Forum Master
 
Join Date: Aug 2003
Posts: 5,688
Default

I would double check the naming and location of the folders and files.
The XmlQuestNPC folder should be in the main RunUO installation directory.

Another thing to try is to just unzip the contents into the main RunUO installation directory and try it there.
__________________
The first line of the first rule in the forum rules and guidelines "Be respectful of others. "

For questions, information, and support for XmlSpawner and its addons, visit the
XmlSpawner Support Forum
ArteGordon is offline  
Old 03-17-2005, 05:51 AM   #9 (permalink)
Forum Novice
 
Join Date: Jan 2005
Age: 47
Posts: 176
Default

Quote:
Originally Posted by ArteGordon
I would double check the naming and location of the folders and files.
The XmlQuestNPC folder should be in the main RunUO installation directory.

Another thing to try is to just unzip the contents into the main RunUO installation directory and try it there.
As I was getting more frustrated, i tested the other quest spawns in greenacres and a couple of them worked and a couple didnt, I went ahead and put questmaster and the xml in the root and reloaded the server and it worked, and I figured i just typed in something wrong or i unzipped them wrong so i put them back where there were suppost to be and then it didnt work again, I went back to get ready to move them to the root again and notice that the xmlquestnpc folder was spelled qmlquestnpc, I almost fell out of my chair, I couldnt figure out why some of the quests worked and the others didnt, but I changed it to xmlquestnpc and now everything seems to be working.

thanks again for helping me throught another test......
Gator81 is offline  
Old 03-18-2005, 03:07 PM   #10 (permalink)
Forum Novice
 
Join Date: Jan 2005
Age: 47
Posts: 176
Default the questmaster

ArteGordon, since this is your work you may be able to help me here. In your questmaster.npc I would like to know if this is possible or if I would need to look into doing it in another way.

Code:
<?xml version="1.0" standalone="yes"?>

<XmlQuestNPC>

----------------------------
This sets up the NPC named QuestMaster
Banter is triggered by a player coming within 3 tiles.
The conversation will automatically reset after 12 seconds of idle time.

Speech triggering will be disabled if the GatorQuest quest attachment 
is found that lets us know whether the person has already completed this quest.
----------------------------
  <NPC>
    <Name>QuestMaster</Name>
    <Running>True</Running>
    <ProximityRange>3</ProximityRange>
    <NoTriggerOnCarried>ATTACHMENT,GatorQuest,XmlQuestAttachment</NoTriggerOnCarried>
    <AllowGhost>False</AllowGhost>
    <ResetTime>0.20</ResetTime>
    <ConfigFile>questmaster</ConfigFile>
  </NPC>

----------------------------
This is just the default starting point when the conversation resets.  It is just a placeholder.  All of the real conversation 
branches from the banter
----------------------------
<SpeechEntry>
<EntryNumber>0</EntryNumber>
    <ID>0</ID>
    <DependsOn>9999</DependsOn>
  </SpeechEntry>

----------------------------
Here is the banter section
----------------------------
<SpeechEntry>
    <EntryNumber>1</EntryNumber>
    <ID>1</ID>
    <Text>Well done hero. You have completed your quest, do you seek a reward?</Text>
    <DependsOn>-1</DependsOn>
  </SpeechEntry>

----------------------------
Reach this point if the quest has not already been completed
----------------------------
<SpeechEntry>
    <EntryNumber>5</EntryNumber>
    <ID>3</ID>
    <Text>You are worthy. Name that which you seek.</Text>
<Keywords>yes</Keywords>
    <DependsOn>1</DependsOn>
  </SpeechEntry>


------------------
offer the rewards
------------------
<SpeechEntry>
    <EntryNumber>10</EntryNumber>
    <ID>33</ID>
    <Text>Your choices are: Armor, Weapon, Jewelry.</Text>
    <DependsOn>3</DependsOn>
    <Pause>2</Pause>
  </SpeechEntry>

-----------------
give the rewards based upon what they say

In this section I was curious if another sub script could be used to select the
different weapons that I would want randomally picked.
example:
questitems
 weapons - a sword
                   a mace - ect...(weapons that I want to choose)
 armor      - chain
                - leather - ect..( armor that i want to choose)
 Jewlery  - ring - ect.. (same thing)
now I could have 10-15 items for each one if i wanted and I could also 
set different ones for different levels of the quest.
easy quest            - rare items
hard quest            - elite items
almost impossible - godly items-----------------
<SpeechEntry>
    <EntryNumber>15</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/WEAPON,4,5</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>16</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/ARMOR,4,5</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>17</EntryNumber>
    <ID>34</ID>
    <Text>Here is your jewelry.</Text>
    <Action>GIVE/JEWELRY,4,5</Action>
    <Keywords>jewelry</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>

--------------------
and throw in a little bonus
--------------------
<SpeechEntry>
    <EntryNumber>30</EntryNumber>
    <ID>35</ID>
    <Text>and something to spend wisely.</Text>
    <Action>GIVE/bankcheck,10000</Action>
    <DependsOn>34</DependsOn>
  </SpeechEntry>

------------------------
After giving the reward, add the quest attachment that will expire after 10 hours (600 minutes)
------------------------
<SpeechEntry>
    <EntryNumber>40</EntryNumber>
    <ID>50</ID>
    <Text>Perhaps we will meet when you are again worthy.</Text>
    <Action>SETONTRIGMOB/ATTACH/XmlQuestAttachment,GatorQuest,600</Action>
    <DependsOn>35</DependsOn>
  </SpeechEntry>



</XmlQuestNPC>
in the code is where I want to do something, and you have the talent of helping
direct me in the right direction if it is possible.


thanks
Gator81 is offline  
Old 03-18-2005, 04:21 PM   #11 (permalink)
Forum Master
 
Join Date: Aug 2003
Posts: 5,688
Default

well, you can call up a userdefined gump in which you could do all of those things with an entry like this

Code:
<SpeechEntry>
    <EntryNumber>14</EntryNumber>
    <ID>34</ID>
    <Text>Let me show you some things.</Text>
    <Action>GUMP,Hero's quest completed,0,XmlNewGump/Here are your selections.</Action>
    <Keywords>gump</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
which uses the GUMP keyword

from the xmlspawner2.txt document
Quote:
The GUMP keyword can also be used to display user gumps with the syntax "GUMP,title,number,gumpconstructor/text".
where you had scripted in your own custom gump with a constructor that gets called with the following arguments.

Code:
namespace Server.Gumps
{
	public class  XmlNewGump : Gump
	{
		public XmlNewGump( XmlSpawner spawner, string gumptext, string gumptitle, int gumpnumber, BaseXmlSpawner.KeywordTag tag ): base( 0, 0 )
		{
			// put in whatever you want
			// note, you can use the gumpnumber to send in values
			// that might correspond to the quest type, quest level, or anything else you wanted.
		}

		public override void OnResponse( Server.Network.NetState state, RelayInfo info )
		{
			// put in whatever you want
		}
	}
}
__________________
The first line of the first rule in the forum rules and guidelines "Be respectful of others. "

For questions, information, and support for XmlSpawner and its addons, visit the
XmlSpawner Support Forum
ArteGordon is offline  
Old 03-18-2005, 04:29 PM   #12 (permalink)
Forum Master
 
Join Date: Aug 2003
Posts: 5,688
Default

Another way in which you can give out random rewards is to have multiple entries that could be triggered by the same keyword, in which case it will pick one at random. Like,

Code:
<SpeechEntry>
    <EntryNumber>15</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/weapon1</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>

<SpeechEntry>
    <EntryNumber>16</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/weapon2</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>

<SpeechEntry>
    <EntryNumber>17</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/weapon3</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
where weapon1, weapon2, and weapon3 were items that you wished to hand out one of at random. Since all of the entries have the same dependencies, one of them would be selected at random.
__________________
The first line of the first rule in the forum rules and guidelines "Be respectful of others. "

For questions, information, and support for XmlSpawner and its addons, visit the
XmlSpawner Support Forum
ArteGordon is offline  
Old 03-18-2005, 06:52 PM   #13 (permalink)
Forum Novice
 
Join Date: Jan 2005
Age: 47
Posts: 176
Default

Quote:
Originally Posted by ArteGordon
well, you can call up a userdefined gump in which you could do all of those things with an entry like this

Code:
<SpeechEntry>
    <EntryNumber>14</EntryNumber>
    <ID>34</ID>
    <Text>Let me show you some things.</Text>
    <Action>GUMP,Hero's quest completed,0,XmlNewGump/Here are your selections.</Action>
    <Keywords>gump</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
which uses the GUMP keyword

from the xmlspawner2.txt document



where you had scripted in your own custom gump with a constructor that gets called with the following arguments.

Code:
namespace Server.Gumps
{
	public class  XmlNewGump : Gump
	{
		public XmlNewGump( XmlSpawner spawner, string gumptext, string gumptitle, int gumpnumber, BaseXmlSpawner.KeywordTag tag ): base( 0, 0 )
		{
			// put in whatever you want
			// note, you can use the gumpnumber to send in values
			// that might correspond to the quest type, quest level, or anything else you wanted.
		}

		public override void OnResponse( Server.Network.NetState state, RelayInfo info )
		{
			// put in whatever you want
		}
	}
}
I have never done anything like this so I may ask a few dumb questions, sorry..

1. Could the QuestRewardStonegump be modified to do this? where I am confused looking at it is that it lets you pick anything you want and I want to give random from catagory ex: armor/jewelry/ect..
2. If 1. can be done, will it still look for the items it has, since their in their own folders?
3. what would be the easiest way to test this without running through the gauntlet every time.
4. would you have any links to gumps that I could study for leads to find my answer? I dont mind working to figure it out, it is just difficult when I am trying with no real scripting knowdlege

I have been looking at gump examples for the last couple hours and I am still confused.

thanks for anymore help
Gator81 is offline  
Old 03-18-2005, 08:34 PM   #14 (permalink)
Forum Master
 
Join Date: Aug 2003
Posts: 5,688
Default

yes, you could probably use something like your quest reward gump. You could set up pretty much any gump you wanted. The only thing the quest npc adds is the ability to launch gumps via dialog instead of something like doubleclicking a stone.

You might find the 3rd party progs like GumpStudio that can help design gumps useful.
There are explicit examples of quest gumps in the xmlspawner2 xmlquest/xmlquestgumps.cs script.

You dont need the gauntlet to test out the npcs since you can just set them up to be proximity/speech triggered. For the specific npc that I posted, just remove the NoTriggerOnCarried property assignment and then it will trigger whenever you interact with it.
__________________
The first line of the first rule in the forum rules and guidelines "Be respectful of others. "

For questions, information, and support for XmlSpawner and its addons, visit the
XmlSpawner Support Forum
ArteGordon is offline  
Old 03-19-2005, 12:25 AM   #15 (permalink)
Forum Novice
 
Join Date: Jan 2005
Age: 47
Posts: 176
Default

Quote:
Originally Posted by ArteGordon
Another way in which you can give out random rewards is to have multiple entries that could be triggered by the same keyword, in which case it will pick one at random. Like,

Code:
<SpeechEntry>
    <EntryNumber>15</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/weapon1</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>

<SpeechEntry>
    <EntryNumber>16</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/weapon2</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>

<SpeechEntry>
    <EntryNumber>17</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/weapon3</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
where weapon1, weapon2, and weapon3 were items that you wished to hand out one of at random. Since all of the entries have the same dependencies, one of them would be selected at random.
ok this looks alot easier then the other stuff I was looking at..... but i still have a question that I dont meant to be confused about:
would I make a directory named weapon1 and put the weapons in it? or do i have to rename the weapons to weapon1,weapon2.ect..
Or would i need to expand and give a unique id to each name weapon/armor/jewlery instead of them all being id 33 so I could keep the original name of the item and the dependson would = the one word and since there is multi items it would choose only one.
I dont mean to sound coufusing but I am thinking on the fly.

thanks for the help
Gator81 is offline  
Old 03-19-2005, 12:41 AM   #16 (permalink)
Forum Master
 
Join Date: Aug 2003
Posts: 5,688
Default

Quote:
<SpeechEntry>
<EntryNumber>15</EntryNumber>
<ID>34</ID>
<Text>Here is your weapon.</Text>
<Action>GIVE/weapon1</Action>
<Keywords>weapon</Keywords>
<DependsOn>33</DependsOn>
</SpeechEntry>
weapon1 is just an item class name, like longsword, or axe, or katana.

You would have to have a script that defined an item class named weapon1.
This would have been clearer perhaps.

Code:
<SpeechEntry>
    <EntryNumber>15</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/longsword</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>

<SpeechEntry>
    <EntryNumber>16</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/mace</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>

<SpeechEntry>
    <EntryNumber>17</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/katana</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
Quote:
Or would i need to expand and give a unique id to each name weapon/armor/jewlery instead of them all being id 33 so I could keep the original name of the item and the dependson would = the one word and since there is multi items it would choose only one.
sorry, I'm not really following all of that. The DependsOn key refers to the ID number of another speech entry. It has to be a number, not a word.
It determines the order in which speech entries will be processed. So if DependsOn for an entry is 33, then that entry wont be processed until the entry with ID 33 has been completed.
In the present example the entry with ID 33 looks like this

Code:
<SpeechEntry>
    <EntryNumber>10</EntryNumber>
    <ID>33</ID>
    <Text>Your choices are: Armor, Weapon, Jewelry.</Text>
    <DependsOn>3</DependsOn>
    <Pause>2</Pause>
  </SpeechEntry>
so the entries that give out weapons will not be processed until this one finishes.
Since they all depend on the same entry (33), and they are triggered by the same keywords (weapon), one of them will be randomly selected.
__________________
The first line of the first rule in the forum rules and guidelines "Be respectful of others. "

For questions, information, and support for XmlSpawner and its addons, visit the
XmlSpawner Support Forum
ArteGordon is offline  
Old 03-19-2005, 02:14 AM   #17 (permalink)
Forum Novice
 
Join Date: Jan 2005
Age: 47
Posts: 176
Default

Quote:
Originally Posted by ArteGordon
weapon1 is just an item class name, like longsword, or axe, or katana.

You would have to have a script that defined an item class named weapon1.
This would have been clearer perhaps.

Code:
<SpeechEntry>
    <EntryNumber>15</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/longsword</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>

<SpeechEntry>
    <EntryNumber>16</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/mace</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>

<SpeechEntry>
    <EntryNumber>17</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/katana</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>


sorry, I'm not really following all of that. The DependsOn key refers to the ID number of another speech entry. It has to be a number, not a word.
It determines the order in which speech entries will be processed. So if DependsOn for an entry is 33, then that entry wont be processed until the entry with ID 33 has been completed.
In the present example the entry with ID 33 looks like this

Code:
<SpeechEntry>
    <EntryNumber>10</EntryNumber>
    <ID>33</ID>
    <Text>Your choices are: Armor, Weapon, Jewelry.</Text>
    <DependsOn>3</DependsOn>
    <Pause>2</Pause>
  </SpeechEntry>
so the entries that give out weapons will not be processed until this one finishes.
Since they all depend on the same entry (33), and they are triggered by the same keywords (weapon), one of them will be randomly selected.
I dont know why i didnt see it earlier, when you explained it this last time the one think that I didnt know was how I was going to keep each catagory seperate, i thought the speach would have to be seperated to point to each word seperatly. but now i see the line <keywords> and I saw the light...

thanks again for being patient with me.
EDIT:

this is what I have done so far, its using most of the items in the quest reward stone. I have tested and it seems to be working, but when I went back in to make some spelling changes and then tested again it only gave one time again, so i can only think i may of missed something.

Code:
<?xml version="1.0" standalone="yes"?>

<XmlQuestNPC>

----------------------------
This sets up the NPC named QuestMaster
Banter is triggered by a player coming within 3 tiles.
The conversation will automatically reset after 12 seconds of idle time.

Speech triggering will be disabled if the GatorQuest quest attachment 
is found that lets us know whether the person has already completed this quest.
----------------------------
  <NPC>
    <Name>QuestMaster</Name>
    <Running>True</Running>
    <ProximityRange>3</ProximityRange>
    //<NoTriggerOnCarried>ATTACHMENT,GatorQuest,XmlQuestAttachment</NoTriggerOnCarried>
    <AllowGhost>False</AllowGhost>
    <ResetTime>0.20</ResetTime>
    <ConfigFile>questmaster</ConfigFile>
  </NPC>

----------------------------
This is just the default starting point when the conversation resets.  It is just a placeholder.  All of the real conversation 
branches from the banter
----------------------------
<SpeechEntry>
<EntryNumber>0</EntryNumber>
    <ID>0</ID>
    <DependsOn>9999</DependsOn>
  </SpeechEntry>

----------------------------
Here is the banter section
----------------------------
<SpeechEntry>
    <EntryNumber>1</EntryNumber>
    <ID>1</ID>
    <Text>Well done hero. You have completed your quest, do you seek a reward?</Text>
    <DependsOn>-1</DependsOn>
  </SpeechEntry>

----------------------------
Reach this point if the quest has not already been completed
----------------------------
<SpeechEntry>
    <EntryNumber>5</EntryNumber>
    <ID>3</ID>
    <Text>You are worthy. Name that which you seek.</Text>
<Keywords>yes</Keywords>
    <DependsOn>1</DependsOn>
  </SpeechEntry>


------------------
offer the rewards
------------------
<SpeechEntry>
    <EntryNumber>10</EntryNumber>
    <ID>33</ID>
    <Text>Your choices are: Armor, Weapon, Jewelry.</Text>
    <DependsOn>3</DependsOn>
    <Pause>2</Pause>
  </SpeechEntry>

-----------------
give the rewards based upon what they say
-----------------
//weapons
<SpeechEntry>
    <EntryNumber>15</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/BladeofBlood</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>16</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/BladeOfDeath</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>19</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/BowOfTheDarkElf</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>20</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/DoomKiss</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>21</EntryNumber>
    <ID>34</ID>
    <Text>Here is your weapon.</Text>
    <Action>GIVE/SlayoroftheAbyss</Action>
    <Keywords>weapon</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
//Armor
<SpeechEntry>
    <EntryNumber>30</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/GauntletsOfBeserker</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>31</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/HelmetofBlood</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>32</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/MageBracers</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>33</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/LeggingsOfSpeed</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>34</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/LeggingsOfTheMagi</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>35</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/OrnateArmGuards</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>36</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/TunicOfThorns</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>37</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/TunicofBlood</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>38</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/TunicOfChance</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>39</EntryNumber>
    <ID>34</ID>
    <Text>Here is your armor.</Text>
    <Action>GIVE/VoiceDead</Action>
    <Keywords>armor</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
//Jewelry
<SpeechEntry>
    <EntryNumber>50</EntryNumber>
    <ID>34</ID>
    <Text>Here is your jewelry.</Text>
    <Action>GIVE/BraceOfChance</Action>
    <Keywords>jewelry</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>51</EntryNumber>
    <ID>34</ID>
    <Text>Here is your jewelry.</Text>
    <Action>GIVE/Fightersbracelet</Action>
    <Keywords>jewelry</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>52</EntryNumber>
    <ID>34</ID>
    <Text>Here is your jewelry.</Text>
    <Action>GIVE/RingOfTheMagi</Action>
    <Keywords>jewelry</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>
<SpeechEntry>
    <EntryNumber>53</EntryNumber>
    <ID>34</ID>
    <Text>Here is your jewelry.</Text>
    <Action>GIVE/RingOfTheRanger</Action>
    <Keywords>jewelry</Keywords>
    <DependsOn>33</DependsOn>
  </SpeechEntry>

--------------------
and throw in a little bonus
--------------------
<SpeechEntry>
    <EntryNumber>60</EntryNumber>
    <ID>35</ID>
    <Text>and something to spend wisely.</Text>
    <Action>GIVE/bankcheck,10000</Action>
    <DependsOn>34</DependsOn>
  </SpeechEntry>

------------------------
After giving the reward, add the quest attachment that will expire after 10 hours (600 minutes)
------------------------
<SpeechEntry>
    <EntryNumber>70</EntryNumber>
    <ID>50</ID>
    <Text>Perhaps we will meet when you are again worthy.</Text>
    <Action>SETONTRIGMOB/ATTACH/XmlQuestAttachment,GatorQuest,600</Action>
    <DependsOn>35</DependsOn>
  </SpeechEntry>



</XmlQuestNPC>
thanks for checking it out..
Gator81 is offline  
 

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off



Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5