PDA

View Full Version : How can I edit the force powers that come with the game?


Zer0Morph
08-24-2009, 03:45 AM
Ok here's where I'm at and I'm very frustrated.

I'm trying to extend the time of certain force powers. Such as I would like to make Force Aura last 30 seconds, Force Shield last 60 seconds, and Force Armor last 120 seconds.

I downloaded KOTOR Tools and figured out how to edit the spells.2da file but that didn't help. Then I found a scripting file called k_inc_force.nss which is where the data resides. I edited that script and saved it in my Override file, however I can't seem to compile it with nwnnsscomp.exe, I keep getting an error.

Any help on what I'm doing wrong?

Zer0Morph
08-24-2009, 05:20 AM
Ok cancel that, I figured it out. However I was wondering where I need to go to edit the text description of the power for the new times.

Anyone?

Canderis
08-24-2009, 10:21 AM
You edit it in the Dialog.tlk file. You can open it with THIS (i am clickable) (http://www.starwarsknights.com/mtools/TalkEd104b.rar)
As for what line you can find that out with a quick trip to spells.2da.

Zer0Morph
08-24-2009, 02:18 PM
Ok here's what I did...

I went to the link you gave me and downloaded dialog.tlk. I opened it within KOTOR Tools tlk editor and found the correct lines. I made the changes and hit apply. I then saved dialog.tlk to my override directory.

Unfortunately the changes were not made in the game. What am I doing wrong?

zbyl2
08-24-2009, 02:56 PM
dialog.tlk should be saved in "main" kotor folder, (replace existing one) not override.

Zer0Morph
08-24-2009, 04:07 PM
Awesome! Thanks so much guys for your help.

Sorry to keep being a noob but I am trying to add Energy Resistance to the Energy Resistance and Improved Energy Resistance Powers. Right now they only protect from cold, fire, electrical, and sonic.

I tried replacing Cold with Energy and saved it, however whenever I go to compile it I get...

Compiling: k_sp1_generic.nss
k_inc_force.nss(1592): Error: Undeclared identifier "DAMAGE_TYPE_ENERGY"
k_inc_force.nss(1592): Error: Required argument missing in call to "EffectDamage
Resistance"
k_inc_force.nss(1592): Error: Required argument missing in call to "EffectLinkEf
fects"
Compilation aborted with errors
Total Execution time = 46 ms

Anyone know what I'm doing wrong?

VarsityPuppet
08-24-2009, 04:37 PM
You should post the section of code that you modified. It'll be much easier to help you if we can see the coding.

Zer0Morph
08-24-2009, 05:15 PM
This is the original "Energy Resistance" Coding.
All I really did was add a line for DAMAGE_TYPE_ENERGY.

{
if(!SP_CheckEnergyResistance(OBJECT_SELF))
{
SWFP_HARMFUL = FALSE;
eLink1 = EffectDamageResistance(DAMAGE_TYPE_COLD, 15);
eLink1 = EffectLinkEffects(eLink1, EffectDamageResistance(DAMAGE_TYPE_FIRE, 15));
eLink1 = EffectLinkEffects(eLink1, EffectDamageResistance(DAMAGE_TYPE_SONIC, 15));
eLink1 = EffectLinkEffects(eLink1, EffectDamageResistance(DAMAGE_TYPE_ELECTRICAL, 15));
eLink1 = SetEffectIcon(eLink1, 26);
eLink2 = EffectVisualEffect(VFX_PRO_RESIST_ELEMENTS);
Sp_ApplyEffects(FALSE, oTarget, 0.0, 1, eLink1, 120.0, eLink2, 1.0);
}
}


This is the modified one.

{
if(!SP_CheckEnergyResistance(OBJECT_SELF))
{
SWFP_HARMFUL = FALSE;
eLink1 = EffectDamageResistance(DAMAGE_TYPE_COLD, 15);
eLink1 = EffectLinkEffects(eLink1, EffectDamageResistance(DAMAGE_TYPE_FIRE, 15));
eLink1 = EffectLinkEffects(eLink1, EffectDamageResistance(DAMAGE_TYPE_SONIC, 15));
eLink1 = EffectLinkEffects(eLink1, EffectDamageResistance(DAMAGE_TYPE_ELECTRICAL, 15));
eLink1 = EffectLinkEffects(eLink1, EffectDamageResistance(DAMAGE_TYPE_ENERGY, 15));
eLink1 = SetEffectIcon(eLink1, 26);
eLink2 = EffectVisualEffect(VFX_PRO_RESIST_ELEMENTS);
Sp_ApplyEffects(FALSE, oTarget, 0.0, 1, eLink1, 120.0, eLink2, 1.0);
}
}

Nirran
08-24-2009, 05:48 PM
these are the valid damage types,they are found in nwscript.ini

int DAMAGE_TYPE_BLUDGEONING = 1;
int DAMAGE_TYPE_PIERCING = 2;
int DAMAGE_TYPE_SLASHING = 4;
int DAMAGE_TYPE_UNIVERSAL = 8;
int DAMAGE_TYPE_ACID = 16;
int DAMAGE_TYPE_COLD = 32;
int DAMAGE_TYPE_LIGHT_SIDE = 64;
int DAMAGE_TYPE_ELECTRICAL = 128;
int DAMAGE_TYPE_FIRE = 256;
int DAMAGE_TYPE_DARK_SIDE = 512;
int DAMAGE_TYPE_SONIC = 1024;
int DAMAGE_TYPE_ION = 2048;
int DAMAGE_TYPE_BLASTER = 4096;

Star Admiral
08-24-2009, 06:24 PM
In case you're wondering, DAMAGE_TYPE_BLASTER is the one that you want.

- Star Admiral

Zer0Morph
08-24-2009, 10:08 PM
Ok guys, I did exactly what you said and everything turned out PERFECT!!!

OMG my Force Powers rebalance has made this game so much more fun and challenging. I want to thank all of you for your superior knowledge and help with this project. KOTOR is now a game worth playing over and over! :)

Zer0Morph
08-25-2009, 12:10 AM
Oh NO! Ran into another snag. Here I thought KOTOR2 worked the same way KOTOR one did, guess I was wrong.

I just made a slight change with the k_inc_force.nss file and saved it. Made sure k_inc_generic.nss and nwscript.nss were both in the same directory as the compiler.

Here is what I typed and neither worked.

C:\Compiler>nwnnsscomp -v1.00 k_inc_generic.nss
'Star Wars: Knights of the Old Republic' Script Compiler/Decompile
based on 'NeverWinter Nights' Script Compiler/Decompiler
Copyright 2002-2003, Edward T. Smith
Modified by Hazard (hazard_x@gmx.net)

Compiling: k_inc_generic.nss
File is an include file, ignored
Total Execution time = 94 ms

C:\Compiler>nwnnsscomp -c k_inc_generic.nss
'Star Wars: Knights of the Old Republic' Script Compiler/Decompile
based on 'NeverWinter Nights' Script Compiler/Decompiler
Copyright 2002-2003, Edward T. Smith
Modified by Hazard (hazard_x@gmx.net)

Compiling: k_inc_generic.nss
File is an include file, ignored
Total Execution time = 62 ms



Anyone know what I'm doing wrong? Does KOTOR2 need a different compiler?

Canderis
08-25-2009, 12:13 AM
Why don't you try the compiler in kotortool. It always works for me :D

Zer0Morph
08-25-2009, 12:17 AM
I'm not sure how to use it, everytime I have in the past it's never worked.

Ok so I open up the .txt editor, then open up k_inc_force.nss. Then I choose KOTOR2 in the drop down, then hit compile or F5. Then it makes me choose a .nss file which I choose k_inc_force or k_inc_generic, and neither pump out an .ncs file.

Canderis
08-25-2009, 12:25 AM
You save the file as a .nss and then it should produce a .nsc.

Zer0Morph
08-25-2009, 12:36 AM
Well it's not.

Does anyone else know how to compile a KOTOR2 .nss file? :confused:

Star Admiral
08-25-2009, 01:32 AM
k_inc_force.nss is an include file, so it will not compile on its own. If you want to change the Force powers, you will need to re-compile k_sp1_generic.nss.

Extract k_sp1_generic.nss, k_inc_force.nss, and k_inc_debug.nss using KT, make whatever changes you need in k_inc_force.nss, then type in "nwnnsscomp -c k_sp1_generic.nss" into the DOS prompt. That should give you the k_sp1_generic.ncs file that you can pop into your Override folder.

- Star Admiral

Zer0Morph
08-25-2009, 02:20 AM
Well there's 2 different compilers from http://www.starwarsknights.com/tools.php. The one ported by HazardX uses the -v1.00 switch while the one ported by stoffe and tk102 uses the -c.

For KOTOR I used HazardX's NWNSSCOMP program (-v1.00) and it worked great. For some reason however I couldn't get it to work for KOTOR2. So I took your idea and nabbed the one that uses -c.

Here's a breakdown of what I did.

- Downloaded NWNSSCOMP (the one by stoffe and tk102).
- Created a DIR called "Compiler".
- Dropped the 2 files from NWNSSCOMP into C:\Compiler, the 2 files were nwscript.nss and nwnnsscomp.exe.
- I opened KOTOR Tools
- Using KOTOR Tools I extracted the following files to C:\Compiler, k_inc_debug.nss, k_inc_generic.nss, and k_inc_force.nss.
- For this test I did not modify any of these files what so ever, I just wanted to make sure this would work first.
- Next I opened the command prompt.
- Typed in the following command (nwnnsscomp -c k_inc_generic.nss)

Here is what I got....

C:\Compiler>nwnnsscomp -c k_inc_generic.nss
Compiling: k_inc_generic.nss
k_inc_generic.nss(10): Error: Unable to open the include file "k_inc_gensupport"

Compilation aborted with errors
Total Execution time = 16 ms

C:\Compiler>


Not sure what I'm doing wrong?


Edit: I added k_inc_gensupport and ran it again, this time it said it couldn't find k_inc_drop.nss so I added that, and it kept asking me for more .nss files. Below is what I got when I kept adding what it asked for.

C:\Compiler>nwnnsscomp -c k_inc_generic.nss
Compiling: k_inc_generic.nss
k_inc_generic.nss(10): Error: Unable to open the include file "k_inc_gensupport"

Compilation aborted with errors
Total Execution time = 16 ms

C:\Compiler>nwnnsscomp -c k_inc_generic.nss
Compiling: k_inc_generic.nss
k_inc_generic.nss(11): Error: Unable to open the include file "k_inc_walkways"
Compilation aborted with errors
Total Execution time = 16 ms

C:\Compiler>nwnnsscomp -c k_inc_generic.nss
Compiling: k_inc_generic.nss
k_inc_generic.nss(12): Error: Unable to open the include file "k_inc_drop"
Compilation aborted with errors
Total Execution time = 32 ms

C:\Compiler>nwnnsscomp -c k_inc_generic.nss
Compiling: k_inc_generic.nss
File is an include file, ignored
Total Execution time = 15 ms

C:\Compiler>

Zer0Morph
08-25-2009, 02:36 AM
OMG Star Admiral, I officially nominate myself for NOOB of the Month!!! :thmbup1:

I really need to learn to read. This whole time I was typing in k_inc_generic.nss instead of k_sp1_generic.nss. HAHAHA I'm dumb!

You fixed my issue Star Admiral, man you and the rest of the crew here in Holowan Labs are so freakin smart! Do you guys mod Fallout 3 by any chance? I'm a big Fallout 3 modder myself, just wondering.

Anyways thanks again fellas! :)