lfnetwork.com mark read register faq members calendar

Thread: Just a quick check in with the scripters
Thread Tools Display Modes
Post a new thread. Add a reply to this thread. Indicate all threads in this forum as read. Subscribe to this forum. RSS feed: this forum RSS feed: all forums
Old 02-23-2015, 09:37 AM   #1
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
DarthTyren's Endless Scripting Problems/Questions

I released my first mod a while back here.

I decided I wanted to update it with a way to get the new items in the game without cheating, so I found the script that assigns the advanced classes and added an ActionGiveItem command to each parameter.

*I added the stuff in red*

Code:
// This makes the PC one of the Jedi classes, depending on parameter.
// Param Count = 1, decides which class to make him or her.
// 0 = Weaponmaster
// 1 = Watchman
// 2 = Jedi Master
// 3 = Marauder
// 4 = Sith Assassin
// 5 = Sith Lord
// CFA 10-6-04

void main()
{
    // Grab the Parameter.
    int nScriptNumber = GetScriptParameter( 1 );

    // If Param = 0, then make him a Jedi Weaponmaster.
    if ( nScriptNumber == 0 ) {
        AddMultiClass (CLASS_TYPE_JEDIWEAPONMASTER, GetFirstPC () );
        ActionGiveItem(object a_robe_43, object GetFirstPC());
    }

    // If Param = 1, then make him a Jedi Watchman.
    if ( nScriptNumber == 1 ) {
        AddMultiClass (CLASS_TYPE_JEDIWATCHMAN, GetFirstPC () );
        ActionGiveItem(object a_robe_44, object GetFirstPC());
    }

    // If Param = 2, then make him a Jedi Master.
    if ( nScriptNumber == 2 ) {
        AddMultiClass (CLASS_TYPE_JEDIMASTER, GetFirstPC () );
        ActionGiveItem(object a_robe_45, object GetFirstPC());
    }

    // If Param = 3, then make him a Sith Marauder.
    if ( nScriptNumber == 3 ) {
        AddMultiClass (CLASS_TYPE_SITHMARAUDER, GetFirstPC () );
        ActionGiveItem(object a_robe_46, object GetFirstPC());
    }

    // If Param = 4, then make him a Sith Assassin.
    if ( nScriptNumber == 4 ) {
        AddMultiClass (CLASS_TYPE_SITHASSASSIN, GetFirstPC () );
        ActionGiveItem(object a_robe_47, object GetFirstPC());
    }

    // If Param = 5, then make him a Sith Lord.
    if ( nScriptNumber == 5 ) {
        AddMultiClass (CLASS_TYPE_SITHLORD, GetFirstPC () );
        ActionGiveItem(object a_robe_48, object GetFirstPC());
    }

}
I'm a total n00b when it comes to scripting, so I ask my fellow modders: Does this look right, or am I doing something wrong?

I haven't tested yet.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas

Last edited by darthtyren; 03-04-2015 at 05:15 AM.
darthtyren is offline   you may: quote & reply,
Old 02-23-2015, 12:34 PM   #2
Fair Strides 2
Witty Programmer
 
Fair Strides 2's Avatar
 
Join Date: Jan 2012
Location: Oregon, United States
Posts: 655
Current Game: Master of Orion 2
Helpful! 
Quote:
Originally Posted by darthtyren View Post
I released my first mod a while back here.

I decided I wanted to update it with a way to get the new items in the game without cheating, so I found the script that assigns the advanced classes and added an ActionGiveItem command to each parameter.

*I added the stuff in red*

Show spoiler


I'm a total n00b when it comes to scripting, so I ask my fellow modders: Does this look right, or am I doing something wrong?

I haven't tested yet.
Your code is mostly right, but the game wouldn't know what the objects were. The code below will work:

Code:
// This makes the PC one of the Jedi classes, depending on parameter.
// Param Count = 1, decides which class to make him or her.
// 0 = Weaponmaster
// 1 = Watchman
// 2 = Jedi Master
// 3 = Marauder
// 4 = Sith Assassin
// 5 = Sith Lord
// CFA 10-6-04

void main()
{
    // Grab the Parameter.
    int nScriptNumber = GetScriptParameter( 1 );
    string sItemtag = "";

    // If Param = 0, then make him a Jedi Weaponmaster.
    if ( nScriptNumber == 0 ) {
        AddMultiClass (CLASS_TYPE_JEDIWEAPONMASTER, GetFirstPC () );
        sItemtag = "a_robe_43";
        CreateItemOnObject(sItemtag, GetFirstPC());
    }

    // If Param = 1, then make him a Jedi Watchman.
    if ( nScriptNumber == 1 ) {
        AddMultiClass (CLASS_TYPE_JEDIWATCHMAN, GetFirstPC () );
        sItemtag = "a_robe_44";
        CreateItemOnObject(sItemtag, GetFirstPC());
    }

    // If Param = 2, then make him a Jedi Master.
    if ( nScriptNumber == 2 ) {
        AddMultiClass (CLASS_TYPE_JEDIMASTER, GetFirstPC () );
        sItemtag = "a_robe_45";
        CreateItemOnObject(sItemtag, GetFirstPC());
    }

    // If Param = 3, then make him a Sith Marauder.
    if ( nScriptNumber == 3 ) {
        AddMultiClass (CLASS_TYPE_SITHMARAUDER, GetFirstPC () );
        sItemtag = "a_robe_46";
        CreateItemOnObject(sItemtag, GetFirstPC());
    }

    // If Param = 4, then make him a Sith Assassin.
    if ( nScriptNumber == 4 ) {
        AddMultiClass (CLASS_TYPE_SITHASSASSIN, GetFirstPC () );
        sItemtag = "a_robe_47";
        CreateItemOnObject(sItemtag, GetFirstPC());
    }

    // If Param = 5, then make him a Sith Lord.
    if ( nScriptNumber == 5 ) {
        AddMultiClass (CLASS_TYPE_SITHLORD, GetFirstPC () );
        sItemtag = "a_robe_48";
        CreateItemOnObject(sItemtag, GetFirstPC());
    }
}
As to where you went wrong with the above script:

You don't need to define the item type when you pass the info to a function. For example, GetFirstPC() is an Object Function and so represents an object when you use it. The game will know it is an object already.

Also, ActionGiveItem is an action and is assigned to an object. For this to work, you would have to assign the command to an object and that object would have to have that item in it's possession. Which brings me to my last point.

"
"object a_robe_43" -- The game has no clue what this is. For an object to have meaning, you would need to assign something to it. This can be done with a lot of functions depending on the situation.

For example:
  • GetObjectByTag -- This is used if the object already exists in the game world, which usually does not count one's inventory...
  • GetFirstPC/GetNextPC -- Cycles through the current party members
  • GetPartyMemberByIndex -- also used to cycle through the current party
  • GetFirstItemInInventory/GetNexItemInInventory -- Cycles through an object's inventory, retruring an object which you can then check the tag against using GetTag.
  • GetItemPossessedBy/GetItemPossessor -- Both of these sees if something has an item, but the first uses the supposed owner and the second uses the item.
  • CreateItemOnObject/CreateItemOnFloor/CreateObject -- The first is for cutscenes, the second will create something in the object's inventory, and the last is used to create any type of item/placeable/creature/door, .etc in general


All of my mods are available on Deadlystream.

Always remember modders: "Quality= Effort*Time"

KSE 3.3.4 is LIVE!!! Check it out here.

Check out WalkSwitch, the Walkmesh-changing tool!
Fair Strides 2 is offline   you may: quote & reply,
Old 02-23-2015, 03:47 PM   #3
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
EDIT: Thanks, Fair Strides, it worked.

Quote:
Originally Posted by Fair Strides 2 View Post
As to where you went wrong with the above script:

You don't need to define the item type when you pass the info to a function. For example, GetFirstPC() is an Object Function and so represents an object when you use it. The game will know it is an object already.
I figured that might be the case, just was checking.

Quote:
Originally Posted by Fair Strides 2 View Post
Also, ActionGiveItem is an action and is assigned to an object. For this to work, you would have to assign the command to an object and that object would have to have that item in it's possession.
Fundamentally, would that mean inside a container, or on another NPC, or in the inventory?

Or all three?

Quote:
Originally Posted by Fair Strides 2 View Post
Which brings me to my last point.

"
"object a_robe_43" -- The game has no clue what this is. For an object to have meaning, you would need to assign something to it. This can be done with a lot of functions depending on the situation.

For example:
  • GetObjectByTag -- This is used if the object already exists in the game world, which usually does not count one's inventory...
  • GetFirstPC/GetNextPC -- Cycles through the current party members
  • GetPartyMemberByIndex -- also used to cycle through the current party
  • GetFirstItemInInventory/GetNexItemInInventory -- Cycles through an object's inventory, retruring an object which you can then check the tag against using GetTag.
  • GetItemPossessedBy/GetItemPossessor -- Both of these sees if something has an item, but the first uses the supposed owner and the second uses the item.
  • CreateItemOnObject/CreateItemOnFloor/CreateObject -- The first is for cutscenes, the second will create something in the object's inventory, and the last is used to create any type of item/placeable/creature/door, .etc in general
So the CreateItemOnObject function would be used to add an item to the inventory using a script? At least, that's what I'm gathering.

I'm sorry if I'm not making sense - I have a long way to go to understanding KOTOR Language.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas

Last edited by darthtyren; 02-24-2015 at 09:53 AM.
darthtyren is offline   you may: quote & reply,
Old 02-25-2015, 04:50 PM   #4
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
I know there's a no-double-post rule, but honestly, who would come back to read a re-edited post?

OK, so new script, new problem. In the "new game script", a.k.a. a_bet3m4, there's a function that sets the Player's gender as a Global Boolean, 000_PLAYER_GENDER. It, in regards to the script, is as follows:

*it's in cyan, a little over halfway down*
Code:
// Prototypes
void sub3(object objectParam1, int intParam2);
void sub2();
void sub1();

void sub3(object objectParam1, int intParam2) {
	object oRWeapItem = GetItemInSlot(4, objectParam1);
	AssignCommand(objectParam1, ActionUnequipItem(oRWeapItem, 1));
	if (intParam2) {
		DestroyObject(oRWeapItem, 0.0, 1, 0.0, 1);
	}
}

void sub2() {
	AddAvailableNPCByTemplate(8, "p_t3m4");
	SwitchPlayerCharacter(8);
	sub3(GetObjectByTag("t3m4", 0), 1);
	SetMinOneHP(GetObjectByTag("t3m4", 0), 1);
	AssignCommand(GetObjectByTag("debris", 0), ApplyEffectToObject(0, EffectDamage(25, 8, 0), GetObjectByTag("t3m4", 0), 0.0));
	DisableHealthRegen(1);
	ApplyEffectToObject(2, EffectVisualEffect(2067, 0), GetObjectByTag("t3m4", 0), 0.0);
}

void sub1() {
	if ((GetGlobalNumber("001EBO_Rumble") == 0)) {
		DelayCommand(IntToFloat((Random(10) + 10)), sub1());
		AurPostString("Rumbling", 5, 5, 5.0);
		PlaySound("MetalStrain");
		ApplyEffectToObject(1, EffectVisualEffect(6002, 0), GetFirstPC(), IntToFloat((Random(8) + 1)));
	}
}

void main() {
	if (GetLoadFromSaveGame()) {
		return;
	}
	if (GetIsPC(GetEnteringObject())) {
		if ((!GetLocalBoolean(OBJECT_SELF, 30))) {
			SetLocalBoolean(OBJECT_SELF, 30, 1);
			sub1();
			RevealMap([0.0,0.0,0.0], 0xFFFFFFFF);
		}
		if (GetGlobalNumber("002EBO_Door_Override")) {
			object oStar_dorm = GetObjectByTag("star_dorm", 0);
			AssignCommand(oStar_dorm, ActionOpenDoor(oStar_dorm));
		}
		int nGlobal = GetGlobalNumber("001EBO_BEEN_T3_M4");
		if ((!nGlobal)) {
			if ((0 == GetGender(GetFirstPC()))) {
				SetGlobalBoolean("000_PLAYER_GENDER", 1);
			}
			SetGlobalNumber("001EBO_BEEN_T3_M4", 1);
			DelayCommand(0.2, sub2());
			object oC_medbaypc = GetObjectByTag("MEDBAY_PC", 0);
			if ((!GetIsObjectValid(oC_medbaypc))) {
				object oInvisibleLocationMarker = GetObjectByTag("InvisibleLocationMarker", 0);
				location location1 = GetLocation(oInvisibleLocationMarker);
				oC_medbaypc = CreateObject(1, "c_medbaypc", location1, 0);
				int int9 = GetAppearanceType(GetEnteringObject());
				effect effect1 = EffectDisguise(int9);
				ApplyEffectToObject(2, effect1, oC_medbaypc, 0.0);
				AssignCommand(oC_medbaypc, ActionPlayAnimation(30, 1.0, (-1.0)));
			}
		}
		SetGlobalNumber("GBL_MAIN_SITH_LORD", 0);
		if ((GetGlobalNumber("001EBO_Movie") == 0)) {
			SetGlobalNumber("001EBO_Movie", 1);
			PlayMovie("permov01", 0);
			SetGlobalFadeOut(0.0, 0.0, 0.0, 0.0, 0.0);
			SetFadeUntilScript();
			AssignCommand(GetObjectByTag("Prologue", 0), ActionStartConversation(OBJECT_SELF, "intro", 0, 0, 0, "", "", "", "", "", "", 0, 0xFFFFFFFF, 0xFFFFFFFF, 0));
		}
	}
}
I could be wrong, but this is my understanding: What the function does is if the GetGender(GetFirstPC()) returns as 0, then the boolean is set to TRUE, which is what the game checks for if a certain action requires the PC to be a male.

Now comes the problem: I put the same function in a script that is fired the same way - using the .ARE OnEnter field.

Code:
void main(){
  if (GetLoadFromSaveGame()) {
    return;
  }
  if ((0 == GetGender(GetFirstPC()))) {
    SetGlobalBoolean("000_PLAYER_GENDER", 1);
  }
  if ((GetLevelByClass(CLASS_TYPE_JEDISENTINEL, GetFirstPC()) == 1)) {
    SetGlobalNumber("000_PLAYER_CLASS", 1);
  }
  if ((GetLevelByClass(CLASS_TYPE_JEDICONSULAR, GetFirstPC()) == 1)) {
    SetGlobalNumber("000_PLAYER_CLASS", 2);
  }
  PlayMovie("hot01");
  
}
The other functions work, but the Gender one doesn't. I checked the GLOBALVARS.res save file in KotOR Tool, but the Boolean is set to FALSE, or female.

BTW, this script is incomplete. I plan on adding two equip functions, a warp to waypoint, and start conversation, all of which is on hold until preparations can be made for the appearance.2da, as well as the UTCs.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Old 02-25-2015, 05:08 PM   #5
Fair Strides 2
Witty Programmer
 
Fair Strides 2's Avatar
 
Join Date: Jan 2012
Location: Oregon, United States
Posts: 655
Current Game: Master of Orion 2
Helpful! 
Quote:
Originally Posted by darthtyren View Post
I know there's a no-double-post rule, but honestly, who would come back to read a re-edited post?

OK, so new script, new problem. In the "new game script", a.k.a. a_bet3m4, there's a function that sets the Player's gender as a Global Boolean, 000_PLAYER_GENDER. It, in regards to the script, is as follows:

*it's in cyan, a little over halfway down*
Code:
// Prototypes
void sub3(object objectParam1, int intParam2);
void sub2();
void sub1();

void sub3(object objectParam1, int intParam2) {
	object oRWeapItem = GetItemInSlot(4, objectParam1);
	AssignCommand(objectParam1, ActionUnequipItem(oRWeapItem, 1));
	if (intParam2) {
		DestroyObject(oRWeapItem, 0.0, 1, 0.0, 1);
	}
}

void sub2() {
	AddAvailableNPCByTemplate(8, "p_t3m4");
	SwitchPlayerCharacter(8);
	sub3(GetObjectByTag("t3m4", 0), 1);
	SetMinOneHP(GetObjectByTag("t3m4", 0), 1);
	AssignCommand(GetObjectByTag("debris", 0), ApplyEffectToObject(0, EffectDamage(25, 8, 0), GetObjectByTag("t3m4", 0), 0.0));
	DisableHealthRegen(1);
	ApplyEffectToObject(2, EffectVisualEffect(2067, 0), GetObjectByTag("t3m4", 0), 0.0);
}

void sub1() {
	if ((GetGlobalNumber("001EBO_Rumble") == 0)) {
		DelayCommand(IntToFloat((Random(10) + 10)), sub1());
		AurPostString("Rumbling", 5, 5, 5.0);
		PlaySound("MetalStrain");
		ApplyEffectToObject(1, EffectVisualEffect(6002, 0), GetFirstPC(), IntToFloat((Random(8) + 1)));
	}
}

void main() {
	if (GetLoadFromSaveGame()) {
		return;
	}
	if (GetIsPC(GetEnteringObject())) {
		if ((!GetLocalBoolean(OBJECT_SELF, 30))) {
			SetLocalBoolean(OBJECT_SELF, 30, 1);
			sub1();
			RevealMap([0.0,0.0,0.0], 0xFFFFFFFF);
		}
		if (GetGlobalNumber("002EBO_Door_Override")) {
			object oStar_dorm = GetObjectByTag("star_dorm", 0);
			AssignCommand(oStar_dorm, ActionOpenDoor(oStar_dorm));
		}
		int nGlobal = GetGlobalNumber("001EBO_BEEN_T3_M4");
		if ((!nGlobal)) {
			if ((0 == GetGender(GetFirstPC()))) {
				SetGlobalBoolean("000_PLAYER_GENDER", 1);
			}
			SetGlobalNumber("001EBO_BEEN_T3_M4", 1);
			DelayCommand(0.2, sub2());
			object oC_medbaypc = GetObjectByTag("MEDBAY_PC", 0);
			if ((!GetIsObjectValid(oC_medbaypc))) {
				object oInvisibleLocationMarker = GetObjectByTag("InvisibleLocationMarker", 0);
				location location1 = GetLocation(oInvisibleLocationMarker);
				oC_medbaypc = CreateObject(1, "c_medbaypc", location1, 0);
				int int9 = GetAppearanceType(GetEnteringObject());
				effect effect1 = EffectDisguise(int9);
				ApplyEffectToObject(2, effect1, oC_medbaypc, 0.0);
				AssignCommand(oC_medbaypc, ActionPlayAnimation(30, 1.0, (-1.0)));
			}
		}
		SetGlobalNumber("GBL_MAIN_SITH_LORD", 0);
		if ((GetGlobalNumber("001EBO_Movie") == 0)) {
			SetGlobalNumber("001EBO_Movie", 1);
			PlayMovie("permov01", 0);
			SetGlobalFadeOut(0.0, 0.0, 0.0, 0.0, 0.0);
			SetFadeUntilScript();
			AssignCommand(GetObjectByTag("Prologue", 0), ActionStartConversation(OBJECT_SELF, "intro", 0, 0, 0, "", "", "", "", "", "", 0, 0xFFFFFFFF, 0xFFFFFFFF, 0));
		}
	}
}
I could be wrong, but this is my understanding: What the function does is if the GetGender(GetFirstPC()) returns as 0, then the boolean is set to TRUE, which is what the game checks for if a certain action requires the PC to be a male.

Now comes the problem: I put the same function in a script that is fired the same way - using the .ARE OnEnter field.

Code:
void main(){
  if (GetLoadFromSaveGame()) {
    return;
  }
  if ((0 == GetGender(GetFirstPC()))) {
    SetGlobalBoolean("000_PLAYER_GENDER", 1);
  }
  if ((GetLevelByClass(CLASS_TYPE_JEDISENTINEL, GetFirstPC()) == 1)) {
    SetGlobalNumber("000_PLAYER_CLASS", 1);
  }
  if ((GetLevelByClass(CLASS_TYPE_JEDICONSULAR, GetFirstPC()) == 1)) {
    SetGlobalNumber("000_PLAYER_CLASS", 2);
  }
  PlayMovie("hot01");
  
}
The other functions work, but the Gender one doesn't. I checked the GLOBALVARS.res save file in KotOR Tool, but the Boolean is set to FALSE, or female.

BTW, this script is incomplete. I plan on adding two equip functions, a warp to waypoint, and start conversation, all of which is on hold until preparations can be made for the appearance.2da, as well as the UTCs.
Seeing as it is the OnEnter script, the players aren't technically loaded up yet.

Assuming the Player's character is the only one in the party, you can do this:

Code:
void main(){
  if (GetLoadFromSaveGame()) {
    return;
  }
  if(GetIsPC(GetEnteringObject()))
  {
      object oPC = GetEnteringObject();
      if ((0 == GetGender(oPC))) {
        SetGlobalBoolean("000_PLAYER_GENDER", 1);
      }
      if ((GetLevelByClass(CLASS_TYPE_JEDISENTINEL, oPC) == 1)) {
        SetGlobalNumber("000_PLAYER_CLASS", 1);
      }
      if ((GetLevelByClass(CLASS_TYPE_JEDICONSULAR, oPC) == 1)) {
        SetGlobalNumber("000_PLAYER_CLASS", 2);
      }
      if ((GetLevelByClass(CLASS_TYPE_JEDIGUARDIAN, oPC) == 1)) {
        SetGlobalNumber("000_PLAYER_CLASS", 3);
      }
  }
  PlayMovie("hot01");
  
}
However, unless it was designed that way, you forgot a check for Jedi Guardian, so I added it in there.


All of my mods are available on Deadlystream.

Always remember modders: "Quality= Effort*Time"

KSE 3.3.4 is LIVE!!! Check it out here.

Check out WalkSwitch, the Walkmesh-changing tool!
Fair Strides 2 is offline   you may: quote & reply,
Old 02-25-2015, 05:47 PM   #6
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
That didn't fix it. The GLOBALVARS still says FALSE. My character is definitely a guy, but the game is telling me it's a girl.

And I decided I was going to leave the Guardian at a value of 0. Kudos to you, sir, for catching on.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Old 02-25-2015, 06:11 PM   #7
Fair Strides 2
Witty Programmer
 
Fair Strides 2's Avatar
 
Join Date: Jan 2012
Location: Oregon, United States
Posts: 655
Current Game: Master of Orion 2
Helpful! 
Quote:
Originally Posted by darthtyren View Post
That didn't fix it. The GLOBALVARS still says FALSE. My character is definitely a guy, but the game is telling me it's a girl.

And I decided I was going to leave the Guardian at a value of 0. Kudos to you, sir, for catching on.
In that case, you might try putting the 0 on the right side of the == sign.

Also, trying adding this just above it:

SendMessageToPC(GetEnteringObject(), "Gender is: " + IntToString(GetGender(GetEnteringObject)));


All of my mods are available on Deadlystream.

Always remember modders: "Quality= Effort*Time"

KSE 3.3.4 is LIVE!!! Check it out here.

Check out WalkSwitch, the Walkmesh-changing tool!
Fair Strides 2 is offline   you may: quote & reply,
Old 02-25-2015, 06:44 PM   #8
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
Added the function, but there was a compiling problem.

Show spoiler


Looks like SendMessageToPC doesn't like GetEnteringObject... I think?


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Old 02-25-2015, 07:00 PM   #9
Fair Strides 2
Witty Programmer
 
Fair Strides 2's Avatar
 
Join Date: Jan 2012
Location: Oregon, United States
Posts: 655
Current Game: Master of Orion 2
Helpful! 
Quote:
Originally Posted by darthtyren View Post
Added the function, but there was a compiling problem.

Show spoiler


Looks like SendMessageToPC doesn't like GetEnteringObject... I think?
My mistake. The second GetEnteringObject needs the ()


All of my mods are available on Deadlystream.

Always remember modders: "Quality= Effort*Time"

KSE 3.3.4 is LIVE!!! Check it out here.

Check out WalkSwitch, the Walkmesh-changing tool!
Fair Strides 2 is offline   you may: quote & reply,
Old 02-25-2015, 08:09 PM   #10
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
It compiled correctly that time. And the message showed up in feedback screen: Gender is: 0.

Tried it again with a female: Gender is: 1

Opened Up GLOBALVARS: Still not making a difference.

EDIT: Okay, so this is very strange, but on a hunch I decided to check out the Globals according to KotOR Tool and match them up against the Globals that KSE shows me. As fortune would have it, the GlobalVars file still says that the Boolean is inactive, but KSE says it is active.

Show spoiler


I have yet to try anything out with this information. But now I have another question: Wouldn't it be easier just to tell the game to set the value to "TRUE" rather than "1"? Or are they the same?

Reason I ask is because I will be using the game's global "Gender Check" scripts at certain points. Those scripts look for "TRUE/FALSE" values, not the numeric "0/1".

Again, sorry if I sound like a n00b. I am one.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas

Last edited by darthtyren; 02-26-2015 at 07:38 AM.
darthtyren is offline   you may: quote & reply,
Old 02-27-2015, 06:53 AM   #11
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
Guess what! New post + new script = new problem. Need I say more?

Anyway, I was kind of following this tutorial, but rather than destroying the NPC, I wanted the NPC to jump to another waypoint when it reaches the first.

*SYNTAX ERROR in ORANGE
Code:
void main(){
  object oNPC = GetObjectByTag("Imia");
  object oWaypoint1 = GetWaypointByTag("wp_imiaout");
  object oWaypoint2 = GetWaypointByTag("wp_imia");
  int bRun = FALSE
  ActionDoCommand(SetCommandable(TRUE, oNPC));
  AssignCommand(oNPC, ActionForceMoveToObject(oWaypoint1, bRun));
  AssignCommand(oNPC, ActionDoCommand(JumpToObject(oWayPoint2)));
  ActionResumeConversation();
}
Problem is, if I take the command away, then the next line down gets a SYNTAX Error. I don't know what's going on.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Old 02-27-2015, 01:27 PM   #12
VarsityPuppet
Master of Puppets
 
VarsityPuppet's Avatar
 
Join Date: May 2009
Location: MN
Posts: 1,274
Current Game: Chrono Trigger
Contest winner - Modding Forum Veteran Veteran Modder Helpful! 
Missing semicolon int bRun = FALSE;

VarsityPuppet is offline   you may: quote & reply,
Old 02-27-2015, 02:03 PM   #13
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
Ya know, I was able to spot the same problem in the final version of the previous script. I guess I don't have a very good eye. Now I feel foolish.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Old 02-27-2015, 02:07 PM   #14
Fair Strides 2
Witty Programmer
 
Fair Strides 2's Avatar
 
Join Date: Jan 2012
Location: Oregon, United States
Posts: 655
Current Game: Master of Orion 2
Helpful! 
Quote:
Originally Posted by darthtyren View Post
Guess what! New post + new script = new problem. Need I say more?

Anyway, I was kind of following this tutorial, but rather than destroying the NPC, I wanted the NPC to jump to another waypoint when it reaches the first.

*SYNTAX ERROR in ORANGE
Code:
void main(){
  object oNPC = GetObjectByTag("Imia");
  object oWaypoint1 = GetWaypointByTag("wp_imiaout");
  object oWaypoint2 = GetWaypointByTag("wp_imia");
  int bRun = FALSE
  ActionDoCommand(SetCommandable(TRUE, oNPC));
  AssignCommand(oNPC, ActionForceMoveToObject(oWaypoint1, bRun));
  AssignCommand(oNPC, ActionDoCommand(JumpToObject(oWayPoint2)));
  ActionResumeConversation();
}
Problem is, if I take the command away, then the next line down gets a SYNTAX Error. I don't know what's going on.
int bRun = FALSE needs a ; at the end. And SetCommandable doesn't need the ActionDoCommand at all, so that line should read "SetCommandable(TRUE, oNPC);


All of my mods are available on Deadlystream.

Always remember modders: "Quality= Effort*Time"

KSE 3.3.4 is LIVE!!! Check it out here.

Check out WalkSwitch, the Walkmesh-changing tool!
Fair Strides 2 is offline   you may: quote & reply,
Old 02-27-2015, 02:25 PM   #15
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
Alright, thanks VP, FS. And don't go anywhere: I'll very likely have more queries for you.

EDIT:

Yep. Here we go again.

Code:
void main(){
  object oNPC = GetObjectByTag("Imia");
  object oWaypoint1 = GetWaypointByTag("wp_imiaout");
  object oWaypoint2 = GetWaypointByTag("wp_imia");
  int bRun = FALSE;
  SetCommandable(TRUE, oNPC);
  AssignCommand(oNPC, ActionForceMoveToObject(oWaypoint1, bRun));
  AssignCommand(oNPC, ActionDoCommand(JumpToObject(oWayPoint2)));
  ActionResumeConversation();
}
It tells me there's something wrong with every little tidbit of the highlighted line except the oNPC.

Also, any tips on recompiling the k_align_movie.nss so that it doesn't fire?


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas

Last edited by darthtyren; 02-27-2015 at 03:22 PM.
darthtyren is offline   you may: quote & reply,
Old 02-27-2015, 03:54 PM   #16
Sith Holocron
M4-78
 
Sith Holocron's Avatar
 
Join Date: Mar 2006
Location: Pasadena, MD(Nar Shaddaa East)
Posts: 1,378
Current Game: The Old Republic
Forum Veteran Folder extraordinaire Helpful! Alderaan News Holopics contributor 
Just so you know, Fair Strides is on modding hiatus for one month.




Considering trying out (or returning to) SWTOR? You may as well go through my link and help get me some SWTOR referral points!
Sith Holocron is offline   you may: quote & reply,
Old 02-27-2015, 06:05 PM   #17
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
Quote:
Originally Posted by Sith Holocron View Post
Just so you know, Fair Strides is on modding hiatus for one month.
... Okay.

On another note, due to all my questions regarding scripts, including the stated unanswered ones, and may more to come, I am asking a moderator to rename this thread to something more appropriate (like 'DarthTyren's Endless Scripting Problems/Questions'). It will now be a more permanent place for me to voice my problems and questions regarding scripting.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Old 02-27-2015, 07:42 PM   #18
VarsityPuppet
Master of Puppets
 
VarsityPuppet's Avatar
 
Join Date: May 2009
Location: MN
Posts: 1,274
Current Game: Chrono Trigger
Contest winner - Modding Forum Veteran Veteran Modder Helpful! 
Quote:
Originally Posted by darthtyren View Post
Alright, thanks VP, FS. And don't go anywhere: I'll very likely have more queries for you.

EDIT:

Yep. Here we go again.

Code:
void main(){
  object oNPC = GetObjectByTag("Imia");
  object oWaypoint1 = GetWaypointByTag("wp_imiaout");
  object oWaypoint2 = GetWaypointByTag("wp_imia");
  int bRun = FALSE;
  SetCommandable(TRUE, oNPC);
  AssignCommand(oNPC, ActionForceMoveToObject(oWaypoint1, bRun));
  AssignCommand(oNPC, ActionDoCommand(JumpToObject(oWayPoint2)));
  ActionResumeConversation();
}
It tells me there's something wrong with every little tidbit of the highlighted line except the oNPC.

Also, any tips on recompiling the k_align_movie.nss so that it doesn't fire?
What does the compiler say when you try to compile?

recompiling k_align_movie.nss... not a clue.. I feel like we should have some sort of repo to check these things. I hate having to check the game source for the scripts.

VarsityPuppet is offline   you may: quote & reply,
Old 02-27-2015, 08:25 PM   #19
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
Show spoiler


You know, sometimes I don't like case-sensitivity. oWaypoint2 ≠ oWayPoint2

After fixing that, it compiled correctly.

OK, next on my list: Is there a way to force the Player to level up? Starting out as a Jedi doesn't make much sense if there are no Force Powers, or points.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Old 02-28-2015, 08:05 PM   #20
Qui-Gon Glenn
Digory Kirke's Bafflement
 
Qui-Gon Glenn's Avatar
 
Join Date: May 2007
Location: Irune
Posts: 1,489
Current Game: KotOR awww yeah
Folder extraordinaire Helpful! Forum Veteran Veteran Modder 
The Endar Spire will not allow you to leave the bridge without leveling. Look there for a source script.


Want to play a game of ME3MP?
Qui-Gon_Glenn
Qui-Gon Glenn is offline   you may: quote & reply,
Old 03-01-2015, 06:45 PM   #21
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
Quote:
Originally Posted by Qui-Gon Glenn View Post
The Endar Spire will not allow you to leave the bridge without leveling. Look there for a source script.
Actually, I'm looking for something more like leveling up just after you get your Jedi class. The only problem is that it's compiled only. And it's a KotOR script, not TSL, so I can't "decompile" it in DeNCS.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas

Last edited by darthtyren; 03-01-2015 at 07:19 PM.
darthtyren is offline   you may: quote & reply,
Old 03-01-2015, 08:53 PM   #22
VarsityPuppet
Master of Puppets
 
VarsityPuppet's Avatar
 
Join Date: May 2009
Location: MN
Posts: 1,274
Current Game: Chrono Trigger
Contest winner - Modding Forum Veteran Veteran Modder Helpful! 
Another place to look is when you're forced to level up as a jedi on Dantooine.

VarsityPuppet is offline   you may: quote & reply,
Old 03-01-2015, 09:28 PM   #23
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
Quote:
Originally Posted by VarsityPuppet View Post
Another place to look is when you're forced to level up as a jedi on Dantooine.
That's what I said. But again, I can't decompile that script.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Old 03-02-2015, 03:47 PM   #24
Qui-Gon Glenn
Digory Kirke's Bafflement
 
Qui-Gon Glenn's Avatar
 
Join Date: May 2007
Location: Irune
Posts: 1,489
Current Game: KotOR awww yeah
Folder extraordinaire Helpful! Forum Veteran Veteran Modder 
Do you need to? Are you perhaps just not looking in the right place?

I need to get the tools installed, but many of the source scripts for K1 are actually stored in the modules, or somewhere, IIRC.

And then, there is DeNCS for the scripts that do not have source. It won't decompile everything, but it does handle most of the scripts from the game.

I found a Decompilation Repository for TSL, but not for K1 or I would link it. You need to identify your module with whereami, and then you can use KTool to look through the module for the script in question. It is probably attached to Master Zhar's dialog tree, but may be in a few other spots.


Want to play a game of ME3MP?
Qui-Gon_Glenn
Qui-Gon Glenn is offline   you may: quote & reply,
Old 03-02-2015, 04:24 PM   #25
Fair Strides 2
Witty Programmer
 
Fair Strides 2's Avatar
 
Join Date: Jan 2012
Location: Oregon, United States
Posts: 655
Current Game: Master of Orion 2
Helpful! 
Quote:
Originally Posted by Qui-Gon Glenn View Post
Do you need to? Are you perhaps just not looking in the right place?

I need to get the tools installed, but many of the source scripts for K1 are actually stored in the modules, or somewhere, IIRC.

And then, there is DeNCS for the scripts that do not have source. It won't decompile everything, but it does handle most of the scripts from the game.

I found a Decompilation Repository for TSL, but not for K1 or I would link it. You need to identify your module with whereami, and then you can use KTool to look through the module for the script in question. It is probably attached to Master Zhar's dialog tree, but may be in a few other spots.
Sadly, that method doesn't work for what Darth Tyren is asking.

When you add a new class, it automatically levels you up.

However, the level-up thing is both games follows a simple formula.

To get to the next level, you need to acquire your level x 1000 exp.

To get to level 2, you need 1 x 1000 exp. To get to level two, you need 2 x 1000 exp = 2000 exp.

The game keeps a running total of your exp, and for each level, the amount required is that level x 1000 to get the next level.

For both games, there are two functions you need: GetXP and GiveXPToCreature.

To give enough exp to level up, you could use this:

Code:
void main()
{
    SetPartyLeader(-1); // This is only required if this script is being run in a party. It just makes sure that we're working with the player character...

    object oPC = GetFirstPC();
    int iLevel = GetLevelByPosition(1, oPC) + GetLevelByPosition(2, oPC) + GetLevelByPosition(3, oPC);

    int iCount;
    int iXP = 0;

    for(iCount = 1; iCount < iLevel; iCount++)
    {
        iXP += 1000 * iCount;
    }

    int iXP_CURRENT = GetXP(oPC);
    int iXP_LEVEL   = iLevel * 1000;
    int iXP_HAVE    = iXP_CURRENT - iXP;
    int iXP_NEEDED  = iXP_LEVEL - iXP_HAVE;

    GiveXPToCreature(oPC, iXP_NEEDED);
//    I've commented the following line out. If you're running this script at the very end of a conversation (on a blue blank node in DLG Editor), then you can un-comment it. Otherwise, leave it commented to avoid breaking the GUI...
//    ShowLevelUpGUI();
}


All of my mods are available on Deadlystream.

Always remember modders: "Quality= Effort*Time"

KSE 3.3.4 is LIVE!!! Check it out here.

Check out WalkSwitch, the Walkmesh-changing tool!
Fair Strides 2 is offline   you may: quote & reply,
Old 03-03-2015, 05:40 AM   #26
LiliArch
Lurker
 
LiliArch's Avatar
 
Join Date: Jan 2014
Posts: 9
Just a couple of things that caught my eye:

Quote:
Originally Posted by darthtyren View Post
Code:
  if ((GetLevelByClass(CLASS_TYPE_JEDICONSULAR, GetFirstPC()) == 1)) {
    SetGlobalNumber("000_PLAYER_CLASS", 2);
  }
Is there a reason for the double parenthesis in the if-clause? I mean, shouldn't it work as well, if it would be
Code:
  if (GetLevelByClass(CLASS_TYPE_JEDICONSULAR, GetFirstPC()) == 1) {
    SetGlobalNumber("000_PLAYER_CLASS", 2);
  }
And the second one...
Quote:
Originally Posted by darthtyren View Post
The only problem is that it's compiled only. And it's a KotOR script, not TSL, so I can't "decompile" it in DeNCS.
Actually, DeNCS can compile KotOR scripts as well. Of course, it does not compile them all, but I don't think it can compile all of the TSL scripts, either.
LiliArch is offline   you may: quote & reply,
Old 03-03-2015, 03:45 PM   #27
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
The script is called k_pdan_makejedi.ncs in the danm13_s.rim. As it turns out, the script does decompile in DeNCS, which is wierd, I thought that it could only decompile TSL scripts.

Code:
// Globals
	int intGLOB_1 = 1;
	int intGLOB_2 = 2;
	int intGLOB_3 = 3;
	int intGLOB_4 = 4;
	int intGLOB_5 = 5;
	int intGLOB_6 = 6;
	int intGLOB_7 = 3;
	int intGLOB_8 = 4;
	int intGLOB_9 = 5;
	int intGLOB_10 = 6;
	int intGLOB_11 = 7;
	int intGLOB_12 = 1;
	int intGLOB_13 = 2;
	int intGLOB_14 = 3;
	int intGLOB_15 = 4;
	int intGLOB_16 = 5;
	int intGLOB_17 = 6;
	int intGLOB_18 = 7;
	int intGLOB_19 = 8;
	int intGLOB_20 = 9;
	int intGLOB_21 = 10;
	int intGLOB_22 = 11;
	int intGLOB_23 = 12;
	int intGLOB_24 = 13;
	int intGLOB_25 = 14;
	int intGLOB_26 = 15;
	int intGLOB_27 = 16;
	int intGLOB_28 = 17;
	int intGLOB_29 = 18;
	int intGLOB_30 = 19;
	int intGLOB_31 = 20;
	int intGLOB_32 = 21;
	int intGLOB_33 = 22;
	int intGLOB_34 = 23;
	int intGLOB_35 = 24;
	int intGLOB_36 = 25;
	int intGLOB_37 = 26;
	int intGLOB_38 = 27;
	int intGLOB_39 = 28;
	int intGLOB_40 = 29;
	int intGLOB_41 = 30;
	int intGLOB_42 = 59;
	int intGLOB_43 = 0;
	int intGLOB_44 = 1;
	int intGLOB_45 = 2;
	int intGLOB_46 = 29;
	int intGLOB_47 = 30;
	int intGLOB_48 = 34;
	int intGLOB_49 = 35;
	int intGLOB_50 = 36;
	int intGLOB_51 = 37;
	int intGLOB_52 = 38;
	int intGLOB_53 = 39;
	int intGLOB_54 = 41;
	int intGLOB_55 = 42;
	int intGLOB_56 = 46;
	int intGLOB_57 = 47;
	int intGLOB_58 = 15;
	int intGLOB_59 = 10;
	int intGLOB_60 = 5;
	int intGLOB_61 = 2;
	int intGLOB_62;
	int intGLOB_63;
	int intGLOB_64;
	object objectGLOB_1;
	int intGLOB_65;
	int intGLOB_66;
	int intGLOB_67;
	int intGLOB_68;
	int intGLOB_69;
	int intGLOB_70;
	int intGLOB_71 = 1;
	int intGLOB_72 = 2;
	int intGLOB_73 = 3;
	int intGLOB_74 = 20;
	int intGLOB_75 = 21;
	int intGLOB_76 = 22;
	int intGLOB_77 = 23;
	int intGLOB_78 = 24;
	int intGLOB_79 = 25;
	int intGLOB_80 = 26;
	int intGLOB_81 = 27;
	int intGLOB_82 = 28;
	int intGLOB_83 = 31;
	int intGLOB_84 = 32;
	int intGLOB_85 = 33;
	int intGLOB_86 = 40;
	int intGLOB_87 = 43;
	int intGLOB_88 = 44;
	int intGLOB_89 = 45;
	int intGLOB_90 = 48;
	int intGLOB_91 = 49;
	int intGLOB_92 = 50;
	int intGLOB_93 = 51;
	int intGLOB_94 = 52;
	int intGLOB_95 = 53;
	int intGLOB_96 = 54;
	int intGLOB_97 = 55;
	int intGLOB_98 = 56;
	int intGLOB_99 = 57;
	int intGLOB_100 = 58;
	int intGLOB_101 = 60;
	int intGLOB_102 = 61;
	int intGLOB_103 = 62;
	int intGLOB_104 = 63;
	int intGLOB_105 = 64;
	int intGLOB_106 = 65;
	int intGLOB_107 = 66;
	int intGLOB_108 = 67;
	int intGLOB_109 = 68;
	int intGLOB_110 = 69;
	int intGLOB_111 = 70;
	int intGLOB_112 = 71;
	int intGLOB_113 = 72;
	int intGLOB_114 = 1;
	int intGLOB_115 = 2;
	int intGLOB_116 = 3;
	int intGLOB_117 = 4;
	int intGLOB_118 = 0;
	int intGLOB_119 = 1;
	int intGLOB_120 = 2;
	int intGLOB_121 = 3;
	int intGLOB_122 = 4;
	int intGLOB_123 = 5;
	int intGLOB_124 = 6;
	int intGLOB_125 = 7;
	int intGLOB_126 = 8;
	int intGLOB_127 = 9;
	int intGLOB_128 = 10;
	int intGLOB_129 = 11;
	int intGLOB_130 = 12;
	int intGLOB_131 = 13;
	int intGLOB_132 = 14;
	int intGLOB_133 = 15;
	int intGLOB_134 = 16;
	int intGLOB_135 = 17;
	int intGLOB_136 = 18;
	int intGLOB_137 = 19;
	int intGLOB_138 = 1100;
	int intGLOB_139 = (-6);
	int intGLOB_140 = (-5);
	int intGLOB_141 = (-4);
	int intGLOB_142 = (-2);
	int intGLOB_143 = (-1);
	int intGLOB_144 = 0;
	int intGLOB_145 = 4;
	int intGLOB_146 = 1;
	int intGLOB_147 = 7;
	int intGLOB_148 = 1;
	int intGLOB_149 = 2;
	int intGLOB_150 = 3;
	int intGLOB_151 = 1;
	int intGLOB_152 = 2;
	int intGLOB_153 = 3;
	int intGLOB_154 = 4;
	int intGLOB_155 = 5;
	int intGLOB_156 = 6;
	string stringGLOB_1 = "bastila";
	string stringGLOB_2 = "carth";
	string stringGLOB_3 = "dan13_WP_council";
	string stringGLOB_4 = "g_w_lghtsbr01";
	string stringGLOB_5 = "g_w_lghtsbr03";
	string stringGLOB_6 = "g_w_lghtsbr04";
	string stringGLOB_7 = "dan_wanderhound";

// Prototypes
void sub2();
void sub1();

void sub2() {
	int int1 = GetGlobalBoolean("DAN_EXTRA");
	int int3 = ((GetGlobalNumber("DAN_EXTRA_XP2") + 128) << 8);
	int int5 = (GetGlobalNumber("DAN_EXTRA_XP") + 128);
	int int7 = (int3 | int5);
	if (int1) {
		GiveXPToCreature(GetFirstPC(), int7);
	}
	SetGlobalNumber("DAN_EXTRA_XP", 0);
	SetGlobalNumber("DAN_EXTRA_XP2", 0);
	ShowLevelUpGUI();
}

void sub1() {
	object oPC = GetFirstPC();
	int nGlobal = GetGlobalNumber("DAN_PATH_STATE");
	if ((nGlobal > 0)) {
		if ((nGlobal == intGLOB_148)) {
			AddMultiClass(3, oPC);
		}
		else {
			if ((nGlobal == intGLOB_149)) {
				AddMultiClass(5, oPC);
			}
			else {
				if ((nGlobal == intGLOB_150)) {
					AddMultiClass(4, oPC);
				}
			}
		}
	}
	CancelPostDialogCharacterSwitch();
	NoClicksFor(0.6);
	DelayCommand(0.5, sub2());
}

void main() {
	object oPC = GetFirstPC();
	if ((((GetLevelByClass(4, oPC) == 0) && (GetLevelByClass(3, oPC) == 0)) && (GetLevelByClass(5, oPC) == 0))) {
		sub1();
	}
	ClearAllActions();
}
I don't need the script to add xp, hopefully, assuming the JRL file can grant xp, but I do want to force the player to level up. As in, go to the level up screen.

I want the player to start the game as a force-using Jedi, but there are no force powers granted at character creation, so the next best thing is level 2. They would go through the opening conversation, then recieve xp from updating the journal, then be forced to the level up screen. The appropriate script would be on the final line in the conversation.

Believe it or not, I'm not so worried about this, because if a player can level, why shouldn't he? It would be cool to find the solution I'm looking for, but that is not as important as some other things.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Old 03-03-2015, 09:08 PM   #28
Qui-Gon Glenn
Digory Kirke's Bafflement
 
Qui-Gon Glenn's Avatar
 
Join Date: May 2007
Location: Irune
Posts: 1,489
Current Game: KotOR awww yeah
Folder extraordinaire Helpful! Forum Veteran Veteran Modder 
Glad you found the script decompilable.

TSL is essentially a mod of the first game, and is built on the same scripting engine. It just adds a lot of user friendly features that give TSL deeper options. Ergo, DeNCS will work on both games, as you now know


Want to play a game of ME3MP?
Qui-Gon_Glenn
Qui-Gon Glenn is offline   you may: quote & reply,
Old 03-03-2015, 09:37 PM   #29
VarsityPuppet
Master of Puppets
 
VarsityPuppet's Avatar
 
Join Date: May 2009
Location: MN
Posts: 1,274
Current Game: Chrono Trigger
Contest winner - Modding Forum Veteran Veteran Modder Helpful! 
Quote:
Originally Posted by Qui-Gon Glenn View Post
Glad you found the script decompilable.

TSL is essentially a mod of the first game
Certainly feels like it sometimes!

VarsityPuppet is offline   you may: quote & reply,
Old 03-03-2015, 10:19 PM   #30
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
Quote:
Originally Posted by VarsityPuppet View Post
Certainly feels like it sometimes!
Indeed. A rushed and poorly executed one.

Anyway, new question (crazy right?). Does anyone know how the Ebon Hawk module in TSL recognizes the Handmaiden and the Disciple and under what conditions it spawns one or the other? I'm working on a project that makes them no longer gender specific. You would be able to swap them out with each other outside 003EBO, but I want the player to be able to talk to both of them and earn/lose influence with them.

Also, if any moderators are looking, could you please change the name of this thread to "DarthTyren's Endless Scripting Problems/Questions"? I'll likely be using this thread longer than what one expects from a "quick check in". Thank you.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Old 03-04-2015, 01:03 AM   #31
Sith Holocron
M4-78
 
Sith Holocron's Avatar
 
Join Date: Mar 2006
Location: Pasadena, MD(Nar Shaddaa East)
Posts: 1,378
Current Game: The Old Republic
Forum Veteran Folder extraordinaire Helpful! Alderaan News Holopics contributor 
Quote:
Originally Posted by darthtyren View Post
Also, if any moderators are looking, could you please change the name of this thread to "DarthTyren's Endless Scripting Problems/Questions"? I'll likely be using this thread longer than what one expects from a "quick check in". Thank you.
Edit your initial post and click on the "Go Advanced" button. Then you can rename the thread.




Considering trying out (or returning to) SWTOR? You may as well go through my link and help get me some SWTOR referral points!
Sith Holocron is offline   you may: quote & reply,
Old 03-04-2015, 05:20 AM   #32
darthtyren
Rookie
 
darthtyren's Avatar
 
Join Date: May 2011
Location: Kotor Tool folder
Posts: 166
Quote:
Originally Posted by Sith Holocron View Post
Edit your initial post and click on the "Go Advanced" button. Then you can rename the thread.
I tried to already. The title of the post changed, but not the thread.


Good with dialogues and getting better
Working on Scripting and Module Editing/Re-skinning
Started work on Modeling New Areas
darthtyren is offline   you may: quote & reply,
Post a new thread. Add a reply to this thread. Indicate all threads in this forum as read. Subscribe to this forum. RSS feed: this forum RSS feed: all forums
Go Back   LucasForums > Network > Knights of the Old Republic > Editing / Modding > Holowan Laboratories > Just a quick check in with the scripters

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

Forum Jump


All times are GMT -4. The time now is 09:17 PM.

LFNetwork, LLC ©2002-2011 - All rights reserved.
Powered by vBulletin®
Copyright ©2000 - 2015, Jelsoft Enterprises Ltd.