|
||
|
|||||||
| Custom Script Release Archive This is a pre-script database archive of what our users had released. |
|
|
Thread Tools | Display Modes |
|
|
#1 (permalink) |
|
Forum Novice
Join Date: Jan 2005
Age: 47
Posts: 176
|
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 |
|
|
|
|
#2 (permalink) |
|
Forum Master
Join Date: Aug 2003
Posts: 5,688
|
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 |
|
|
|
|
#3 (permalink) | |
|
Forum Novice
Join Date: Jan 2005
Age: 47
Posts: 176
|
Quote:
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 ![]() |
|
|
|
|
|
#4 (permalink) |
|
Forum Master
Join Date: Aug 2003
Posts: 5,688
|
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.
__________________
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 |
|
|
|
|
#5 (permalink) | |
|
Forum Novice
Join Date: Jan 2005
Age: 47
Posts: 176
|
Quote:
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. |
|
|
|
|
|
#6 (permalink) |
|
Forum Master
Join Date: Aug 2003
Posts: 5,688
|
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 |
|
|
|
|
#7 (permalink) | |
|
Forum Novice
Join Date: Jan 2005
Age: 47
Posts: 176
|
Quote:
|
|
|
|
|
|
#8 (permalink) |
|
Forum Master
Join Date: Aug 2003
Posts: 5,688
|
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 |
|
|
|
|
#9 (permalink) | |
|
Forum Novice
Join Date: Jan 2005
Age: 47
Posts: 176
|
Quote:
thanks again for helping me throught another test...... |
|
|
|
|
|
#10 (permalink) |
|
Forum Novice
Join Date: Jan 2005
Age: 47
Posts: 176
|
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>
direct me in the right direction if it is possible. thanks |
|
|
|
|
#11 (permalink) | |
|
Forum Master
Join Date: Aug 2003
Posts: 5,688
|
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>
from the xmlspawner2.txt document Quote:
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 |
|
|
|
|
|
#12 (permalink) |
|
Forum Master
Join Date: Aug 2003
Posts: 5,688
|
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>
__________________
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 |
|
|
|
|
#13 (permalink) | |
|
Forum Novice
Join Date: Jan 2005
Age: 47
Posts: 176
|
Quote:
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 |
|
|
|
|
|
#14 (permalink) |
|
Forum Master
Join Date: Aug 2003
Posts: 5,688
|
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 |
|
|
|
|
#15 (permalink) | |
|
Forum Novice
Join Date: Jan 2005
Age: 47
Posts: 176
|
Quote:
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 |
|
|
|
|
|
#16 (permalink) | ||
|
Forum Master
Join Date: Aug 2003
Posts: 5,688
|
Quote:
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:
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>
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 |
||
|
|
|
|
#17 (permalink) | |
|
Forum Novice
Join Date: Jan 2005
Age: 47
Posts: 176
|
Quote:
![]() 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>
|
|
|
|
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|