Note: LucasForums Archive Project
The content here was reconstructed by scraping the Wayback Machine in an effort to restore some of what was lost when LF went down. The LucasForums Archive Project claims no ownership over the content or assets that were archived on archive.org.

This project is meant for research purposes only.

Adding character to new modual via onEnter

Page: 1 of 1
 Doctor-Hal
06-18-2010, 2:06 AM
#1
Hello all.

So, I have been working on a mod to add new merchants to the game. I can do this most of the time via mandatory dialog sequences, however there are some points where I can't, or where that would be impractical. So, delving back into my memory from the days of yore I remembered adding a character to an area via the onEnter script. After searching through some dusty threads on LF I believed that I had found the information on how to do this once again, and quickly did so. However; upon loading the files into the override and starting the game, I found a problem existed. Namely the new character doesn't appear.

Here I'll explain the steps I took:

Opened Kotor Tool
Looked up tar_m02ab
Checked the .ARE file for onEnter
Found and extracted k_ptar_02ab_en
Renamed it old_k_ptar_02ab_en

Used the following code. (Named it k_ptar_02ab_en and compiled it with the KT):

void main() {

ExecuteScript("k_benjo_spawn", OBJECT_SELF);
ExecuteScript("old_k_ptar_02ab_en", OBJECT_SELF);

}

Used the following code. (Named it k_benjo_spawn and compiled it):

void main() {

object oEntering = GetEnteringObject();
object oCreature = GetObjectByTag("benjo");
if (GetIsPC(oEntering))
if (GetIsObjectValid(oCreature) == FALSE)
CreateObject (OBJECT_TYPE_CREATURE, "benjo", Location(Vector (88.48, 94.40, 0.00), 0.00));

}


I then created the UTC file for Benjo taking care to replace the existing tag with "benjo". (I also replaced all scripts with "hen" in place of "def". I believe I remember that being a requirement.

Finally I created a dialog file for Benjo and attached it in his UTC file. Then, thinking I was done, I loaded everything into my Override folder.

Here is what went into the override:

benjo_dlg.dlg
k_benjo_spawn.ncs
k_ptar_02ab_en.ncs
old_k_ptar_02ab_en.ncs
benjo.utc


Any suggestions / help would be much appreciated. Thanks in advance,

~Dr. Hal
 newbiemodder
06-18-2010, 9:16 AM
#2
In this line in your script

CreateObject (OBJECT_TYPE_CREATURE, "benjo", Location(Vector (88.48, 94.40, 0.00), 0.00));

}


I see from your script that "benjo" is the tag of your utc, is is also its ResRef b/c the resref of the utc needs to follow object_type_creature.

just a thought
 Doctor-Hal
06-18-2010, 12:56 PM
#3
Hey newbiemodder, thanks for replying.

Well I made sure the ResRef's were identical, (which they were), but just to make sure I renamed the ResRef to: k_benjo. This is the new spawn code. I'm actually beginning to think there might be something wrong with the spawn code itself?

void main() {

object oEntering = GetEnteringObject();
object oCreature = GetObjectByTag("benjo");
if (GetIsPC(oEntering))
if (GetIsObjectValid(oCreature) == FALSE)
CreateObject (OBJECT_TYPE_CREATURE, "k_benjo", Location(Vector (88.48, 94.40, 0.00), 0.00));

}


Any thoughts?
 newbiemodder
06-18-2010, 1:54 PM
#4
I'm not the greatest scripter, heck I'm no even good...but there must be something wrong with your conditional "if" statements b/c they do not look right

Try this...again this could be totally wrong

void main() {

object oEntering = GetEnteringObject();
object oCreature = GetObjectByTag("benjo");
if (GetIsPC(oEntering)) {
if (GetIsObjectValid(oCreature) == FALSE) {
CreateObject (OBJECT_TYPE_CREATURE, "k_benjo", Location(Vector (88.48, 94.40, 0.00), 0.00));

}}}
 Doctor-Hal
06-18-2010, 7:50 PM
#5
I figured out the problem on my own however. It seems that there were two .ncs files with almost identical names. I extracted the wrong one, (which obviously created the problem). Everything is working now, and I think I have relearned that oh-so-valuable lesson of modding. 'Have patience!'

Thanks again for all your help, your name will be appearing in the readme.

~Dr. Hal
Page: 1 of 1