Sorcerer's Place Stores: Games, Books, DVDs, Merchandise (buying via these links & our affiliated stores below helps support the site - thanks!) |
||
Have you liked us yet? |
![]()
![]() |
|
|
|
|||||||
![]() |
|
|
Thread Tools |
|
|
#1 |
|
Gems: 6/31
Latest gem: Jasper |
I've been messing around with the 'Dark Ranger's Treasure' mod just to figure out some simple things about the Toolset. How do I make a NPC through conversation become a henchman and aid me on my journey? I know how to make the creature and all the base stuff. I just can't seem to figure out how to do the other stuff like after making the Npc greet me and then in conversation or scripting say 'yes come along' or 'no, not right now' kind of thing and have the NPC act accordingly. Please help me!!!!! I would appreciate any tips someone would think a newb of the Toolset should know. Thanks!!!
|
|
|
|
|
|
#3 |
|
Gems: 17/31
Latest gem: Star Diopside |
For a quick start:
1: in the dialog editor, on the line that you want the NPC to join the PC as a hanchman. Click the "actions taken" tab in the lower right corner, and enter the following: { object oPC = GetPCSpeaker(); object oTarget; oTarget = OBJECT_SELF; AddHenchman(oPC, oTarget); } ^^ generated by Lilac Soul's script generator btw. which makes most scripting very very easy. Some things still need tweaking by hand, but his program really minimizes the pain of scripting. 2: in the npc's properties: scripts tab, click on the "load script set" button in the bottom right, and select, "set_xp1_henchmen.ini" which will get the NPC behaving like a henchman; ie, following, attacking your enemies, etc. The death script on that set is still wonky and will need work, but the rest of it works great. |
|
|
|
|
|
#4 |
|
Gems: 6/31
Latest gem: Jasper |
I can get the npc to join me now (using the lilac program) but how can i then (while he/she is with me) initiate another conversation to get them out? Then what about going back up to them and asking them again? I don't understand how to organize the conversations to appear when i want them to. How would i do that with Lilac? I feel stupid about asking all this but i need some help!!!
[ April 19, 2004, 02:30: Message edited by: Naug ] |
|
|
|
|
|
#5 |
|
Gems: 4/31
Latest gem: Sunstone |
This Guide to making Hotu/Sou henchmen might help.
|
|
|
|
|
|
#6 |
|
Gems: 13/31
Latest gem: Ziose |
You'll want to review some basic conversation creation rules, I think. What you are looking to do will require you to code scripts that will have to be placed in the henchman's conversation branch's "Text appears when..." box.
You'll want to display a conversation branch that allows the PC to drop the henchman only if he already is following the PC and not display it otherwise. When the henchman is not currently following the PC, you'll want to display the branch that allows him to be invited along. You can get a little fancier and have one branch that displays if the henchman has never followed the PC and another that displays if he used to follow the PC, but isn't currently. |
|
|
|
|
|
#7 |
|
Gems: 6/31
Latest gem: Jasper |
Okay Big Stick I know what your saying. I just dont know how to use the 'Text appears when' tab correctly OR i cant find that option for 'when the henchman is already with with PC' type command in the above tab in the 'script wizard'. Would somebody familiar with the Lilac Script program or even somebody who will just tell me how to do it manually? This is really bothering me 'cause most of the toolset I have down pat(the basics at least). I think this is a definite basic and i need to know how to keep living like a roleplayin rockstar..... thanks.
|
|
|
|
|
|
#8 |
|
Gems: 13/31
Latest gem: Ziose |
What goes into the "Text appears when..." box is a script that determines whether or not the associated branch of the conversation is displayed to the player. In that script that you will create you can do a check to see if the PC is the henchman's current master using GetMaster() or something similar. I think I'd code something like:
Code:
// Determines if henchman is already with the PC if (GetMaster(OBJECT_SELF) == GetPCSpeaker()) ....and/or.... // Determines if henchman is not with the PC if (GetMaster(OBJECT_SELF) != GetPCSpeaker()) I use the NWN Lexicon for all my scripting needs, as it has very good information on most, if not all, of the commands. Do a search on "henchman" or look in the function category list on the left side for Henchmen/Familiars/Summoned. I am not very familiar with Lilac's script generator, but I think that there is a mini-wizard in the conversation editor that will help you create the needed script. |
|
|
|
|
|
#9 |
|
Gems: 6/31
Latest gem: Jasper |
That code you wrote to appear in the 'text appears when', do i have put both those there to do a check? I also noticed you put what the code means above each one. I can put those in all the script boxes right? In the (aouora's) script wizard they give a window. when you do a 'text appears when' and it says 'what do you want to check for?' it shows a shows a list where i can select one (race, alignment,etc.) but there isn't one to do something like if 'npc is in group and you initiate conversation' than this ( the conversation) will happen. thanks for guiding me stick. i appreciate.
|
|
|
|
|
|
#10 | ||
|
Gems: 17/31
Latest gem: Star Diopside |
Ok, what you want to do is the following:
In your npc henchman's conversation tree have 2 conversations available 1. the conversation you'd say if he was already your henchman, and you wanted to get rid of him. 2. the conversation you'd say to the npc if you wanted him to join. In the "text appears when" tab for conversation number 1, hit Edit, and paste in Quote:
In the "text appears when" tab in the other conversation: Quote:
So if he is in the party (master == oPC, meaning yes the PC *is* the master), the conversation to boot will appear. But if you are not currently the boss (oPC != the master, no the PC is the opposite of the master), you'll instead get the option to ask him to join. Did that help, or did it just confuse things more? |
||
|
|
|
|
|
#11 |
|
Gems: 6/31
Latest gem: Jasper |
I did what you said Art, and when i went to save the script, I would get an error saying 'if cannot be followed by a null statement'. What did I do wrong? I will try it again tommorrow when i have a little more time. I refuse to give up!!!!
|
|
|
|
|
|
#12 |
|
Gems: 13/31
Latest gem: Ziose |
Post the code you put in your script so we can see what you did. You probably have a small typo somewhere after the "if" keyword.
ArtE - Does he need to use the "void main"? I was thinking that he needed the "starting conditional" there instead. I haven't done a lot of that so can't remember without actually looking it up. |
|
|
|
|
|
#13 | |||
|
Gems: 17/31
Latest gem: Star Diopside |
Quote:
I did a test run with rearranging the scripts a bit, and got the following to work: *For the join conversation: Quote:
Quote:
|
|||
|
|
|
|
|
#14 |
|
Gems: 6/31
Latest gem: Jasper |
It worked 100%!!! Thanks for all the help ArtE and Biggie Sticks. I have been pining on this for like a week. I hope if i have questions in the future I get support like i did on this topic. Again thanks for going to the trouble to type the script out and just let me paste it. I appreciate lots......
|
|
|
|
![]() |
| Thread Tools | |
|
|