Jump to content

Discussion: BG2 Kit Creation Series


Recommended Posts

for the variables, I could just take a look at the npc after they just joined, keep a copy of that, and simply copy over the variables of that npc to the other one later, could i not? In some cases, I wouldn't miss the missing dialogue at all. ( who in their right mind would want to hear everything over and over )

That sounds like it'd work. You might be stuck with repeating dialogue regardless, since a lot of it is controlled in global variables (which would be reset when starting a new game) instead of ones local to the creatures.

 

the variables are all listed as "affect" or "global flags" ( probably later ) in shadowkeeper in the savegame/ cre file, aren't they?

They are effects, so they'll probably be listed under "affects". I haven't used Shadowkeeper in a while, I stick with NearInfinity for most everything now.

Link to comment
Guest Fairytale

Those kits are ridiculously unbalanced and for a normal BG2 game out of the question. Running through a level of monsters and hack 'n slash through everything is what we do with this, nothing else.

 

for the variables, I could just take a look at the npc after they just joined, keep a copy of that, and simply copy over the variables of that npc to the other one later, could i not? In some cases, I wouldn't miss the missing dialogue at all. ( who in their right mind would want to hear everything over and over )

 

the variables are all listed as "affect" or "global flags" ( probably later ) in shadowkeeper in the savegame/ cre file, aren't they?

 

while i'm on it with asking questions, is the limit of weapon slots hardcoded or also controlled in the 2da files? ( meaning, how a mage / cleric etc has only 2 slots, a fighter has 4 )

Link to comment
Guest Fairytale

( christ, whats wrong with the database? duplicate posts popping up, screwed up image codes.. )

 

well, i can just shoot through repeated dialogue, thank god BG2 allows that. and good that most things are controlled by global variables that get automatically reset, saves me some editing I guess.

 

I really don't like the affect tab, as it's sometimes a pain to figure out what does what.

 

only new paragraph from last post:

 

while i'm on it with asking questions, is the limit of weapon slots hardcoded or also controlled in the 2da files? ( meaning, how a mage / cleric etc has only 2 slots, a fighter has 4 )

Link to comment
Guest Guest

just a non-kit related question

 

i accidentally did a "re-install" of the PnP celestials and the weidu installer reinstalled ALL mods present. that, essentially, deleted weeks worth of work.

Is that normal? I mean, that it automatically tries to reinstall ALL freakin' mods? If so, I can just go about and uninstall the game and be done with it, once and forever. if not, I will proceed to rage and kill whoever is responsible for that shit.

Link to comment

Yes, if you want to uninstall or re-install a mod in the middle of your mod load, all of the mods that were installed after it will need be uninstalled and re-installed. This is an important part of the way WeiDU works and is required for the way we design mods.

 

Feel free to post modding questions unrelated to kits in the Modding Q&A forum, where you'll likely receive better attention than here.

Link to comment
Guest Guest

No, I'll just be done with it then. Bugs keep piling up ( and I haven't even many mods installed, mostly item mods, and I still get a crash each time I or anyone summons a deva... ) and I just don't want to redo the whole thing. Let begones be begones and move on.

Link to comment

Hey Guys,

 

I a newby with Weidu and i tried to create a new bard-kit called infiltrator (I'm geared to the Kit Creation Tutorial), but I've got a problem with the installation. I copied the setup-infiltrator.exe and the folder containing the backup folder, the setup-infiltrator.tp2 and the B!Infilt.2da files to the BGII - SvA (German version) folder. When I doubleclick the setuo-infiltrator.exe, the following error message appears:

 

[C:\Programme\Black Isle\BGII - SvA\Setup-Infiltrator.exe] WeiDU version 21100

[C:\Programme\Black Isle\BGII - SvA\Setup-Infiltrator.exe] Using scripting style

"BG2"

In state 39, I expected one of these tokens:

[2] ~~

Parse error (state 39) at SAY

 

[sETUP-INFILTRATOR.TP2] PARSE ERROR at line 31 column 1-3

Near Text: SAY

GLR parse error

 

[sETUP-INFILTRATOR.TP2] ERROR at line 31 column 1-3

Near Text: SAY

Parsing.Parse_error

ERROR: parsing [sETUP-INFILTRATOR.TP2]: Parsing.Parse_error

ERROR: problem parsing TP file [sETUP-INFILTRATOR.TP2]: Parsing.Parse_error

 

FATAL ERROR: Parsing.Parse_error

 

Press ENTER to exit.

 

 

I wrote the following command in the .tp2 file:

 

 

BACKUP ~Infiltrator/backup~

 

AUTHOR ~johannes-toebben@web.de.~

 

BEGIN ~Infiltrator Kit~

 

ADD_KIT ~B!Infilt~

 

~B!Infilt 1 1 1 1 1 0 0 0 ~

 

~B!Infilt 0 1 0 0 1 0 0 1 0 3 3 0 0 5 3 3 0 1 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ~

 

~B!Infilt 0 12 0 15 0 15 ~

 

~B!Infilt 0 0 0 0 0 0 ~

 

~B!Infilt 0 0 0 0 0 0~

 

~B!Infilt 0 0 0 1 1 1 1 1 1 ~

 

~B!Infilt 0 0 0 0 0 0 ~

 

~Infiltrator/B!Infilt.2da~

 

~K_B_H K_B_D K_B_G K_B_E K_B_HE K_B_HL K_B_HO~

 

~0x00004000 5~

~Th0~

~CHAN09 * HELM07 BAG20 RING06 RING21 * BOOT01 AMUL20 BRAC10 BELT06 AROW11,40 BULL03,40 BOLT06,40 POTN52,5 POTN04,2 POTN14,5 HAMM07 SW1H27 STAF08~ //25STWEAP//

 

SAY ~Infiltrator~

SAY ~Infiltrator~

SAY ~Infiltrator: Der Infiltrator ist ein Barde, der sein schauspielerisches Talent dazu nutzt feindliche Organisationen zu unterwandern. Um seine Ziele zu erreichen, nuzt er Magie und seinen Charm. Falls nötig ist er aber auch in der Lage

schnell und tödlich zu zuschlagen, um der Schlange den Kopf abzutrennen.Er steht meist im Dienst mächtiger Herrscherhäuser oder Organisation.

 

Vorteile:

-Kann die Meisterschaft mit einhändigen Klingenwaffen erreichen

-Kann 2 Punkte in Einhandwaffenkampf erlangen

-Kann eine hinterhältigen Angriff vollführen

-Erhält alle 10 Stufen je +1 Trefferwürfel und Schaden,sowie einen -1 Initiative alle 5 Stufen, beginnend mit Stufe 1

 

Nachteile:

-Kann nur die Waffen benutzen, die auch einem Dieb erlaubt sind

-Bardenlied verbessert sich nicht

-Erhält nur 50% der Werte in Taschendiebstahl und Sagenkunde eines gewöhlichen Barden

-Kann keine Zauber der Schulen Beschwörung, Nekromantie und Hervorrufung lernen

-Erhält keine Fertigkeiten im Zweiwaffenkampf ~

 

 

END

 

At last I created the B!Infilt.2da file by copying abilities from clab***.2da files of original BGII Kits.

 

And my scond question is, how to forbid special schools of spellcasting (similar to the gypsy-kit)

 

Thanks beforehand for your help.

 

Hank

Link to comment
Hey Guys,

 

I a newby with Weidu and i tried to create a new bard-kit called infiltrator (I'm geared to the Kit Creation Tutorial), but I've got a problem with the installation. I copied the setup-infiltrator.exe and the folder containing the backup folder, the setup-infiltrator.tp2 and the B!Infilt.2da files to the BGII - SvA (German version) folder. When I doubleclick the setuo-infiltrator.exe, the following error message appears:

 

[C:\Programme\Black Isle\BGII - SvA\Setup-Infiltrator.exe] WeiDU version 21100

[C:\Programme\Black Isle\BGII - SvA\Setup-Infiltrator.exe] Using scripting style

"BG2"

In state 39, I expected one of these tokens:

[2] ~~

Parse error (state 39) at SAY

 

[sETUP-INFILTRATOR.TP2] PARSE ERROR at line 31 column 1-3

Near Text: SAY

GLR parse error

This error message is appearing because you forgot one of the lines needed in ADD_KIT. If you use comments, it's easier to see what's missing:

// appended to CLASWEAP.2da
~B!Infilt  1	1	1	1	1	0	0	0 ~

// appended column-wise to WEAPPROF.2da
~B!Infilt 0 1 0 0 1 0 0 1 0 3 3 0 0 5 3 3 0 1 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ~

// appended to ABCLASRQ.2da
~B!Infilt 0	   12	  0	   15	  0	   15 ~

// appended to ABCLSMOD.2da
~B!Infilt 0	0	0	0	0	0 ~

// appended to ABDCDSRQ.2da
~B!Infilt  0	   0	   0	   0	   0	  0~

// appended to ABDCSCRQ.2da
// ------------------------
// ------- MISSING --------
// ------------------------

// appended to ALIGNMNT.2da
~B!Infilt  0 0 0 1 1 1 1 1 1 ~

// appended to DUALCLAS.2da
~B!Infilt 0	   0	   0	   0	   0	   0 ~

// path to your CLAB-style 2da file
~Infiltrator/B!Infilt.2da~

// PC races and classes allowed to use this kit, from KITTABLE.2da
~K_B_H	K_B_D   K_B_G   K_B_E   K_B_HE   K_B_HL   K_B_HO~

// usability flags, added to the end of the KITLIST.2da entry
~0x00004000	   5~

// HLA table to use; see LUABBR.2da
~Th0~

// list of starting equipment for PCs starting in ToB. Appended column-wise to 25STWEAP.2da
~CHAN09 * HELM07 BAG20 RING06 RING21 * BOOT01 AMUL20 BRAC10 BELT06 AROW11,40 BULL03,40 BOLT06,40 POTN52,5 POTN04,2 POTN14,5 HAMM07 SW1H27 STAF08~

 

Another thing to note is that you don't need to use END with BEGIN ~Component~ (or with ADD_KIT), and doing so will actually give you an error.

 

And my scond question is, how to forbid special schools of spellcasting (similar to the gypsy-kit)

 

Thanks beforehand for your help.

 

Hank

If you combine the usability value of your kit with the usability value of the specialist mage from the opposing school of the one you want to forbid, then your kit will gain the restrictions of that kit: no access to spells from opposing schools on creation, unable to use scrolls of those spells, and any other item restrictions specific to that specialist mage. Remember that the usability values can be found in kitlist.2da under the column UNUSABLE. To combine usability values, add them together as hexadecimal numbers. So, if you wanted to make a mage kit who couldn't cast transmutation or divination spells, then you'd take the usability values of the abjurer (who can't cast transmutations) and the conjurer (who can't cast divinations), and add them together:

  0x00000040 // abjurer
+ 0x00000080 // conjurer
------------
 0x000000C0 // new kit

Then you would insert that usability value into this part of your ADD_KIT command:

// usability flags, added to the end of the KITLIST.2da entry
~0x000000C0	   1~

Edit: And if your kit would normally have a usability of 0x00004000, you can leave that out of the usability combination. In other words, to make a bard who can't cast divinations, you should be able to just give him a usability of 0x00000080, like the conjurer.

Edited by Mike1072
Link to comment

I've changed the commands in the following way, and added some comments (you're right: it makes it much easier to keep track of it :thumbsup: ) :

 

BACKUP ~Infiltrator/backup~

 

AUTHOR ~johannes-toebben@web.de.~

 

BEGIN ~Infiltrator Kit~

 

ADD_KIT ~B!Infilt~

 

// appended to CLASWEAP.2da

~B!Infilt 1 1 1 1 1 0 0 0 ~

// appended column-wise to WEAPPROF.2da

~B!Infilt 0 1 0 0 1 0 0 1 0 3 3 0 0 3 3 3 0 1 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ~

// appended to ABCLASRQ.2da

~B!Infilt 0 12 0 15 0 15 ~

// appended to ABCLSMOD.2da

~B!Infilt 0 0 0 0 0 0 ~

// appended to ABDCDSRQ.2da

~B!Infilt 0 0 0 0 0 0~

// appended to ABDCSCRQ.2da

~B!Infilt 0 0 0 0 0 0~

// appended to ALIGNMNT.2da

~B!Infilt 0 0 0 1 1 1 1 1 1 ~

// appended to DUALCLAS.2da

~B!Infilt 0 0 0 0 0 0 ~

// path to the CLAB-style 2da file

~Infiltrator/B!Infilt.2da~

// appended to KITTABLE.2da

~K_B_H K_B_D K_B_G K_B_E K_B_HE K_B_HL K_B_HO~

// usability flags of Blade, Diviner, Enchanter and Illusionist, appended to KITLIST.2da

~0x00200700 5~

// appended to LUABBR.2da

~Th0~

~CHAN09 * HELM07 BAG20 RING06 RING21 * BOOT01 AMUL20 BRAC10 BELT06 AROW11,40 BULL03,40 BOLT06,40 POTN52,5 POTN04,2 POTN14,5 HAMM07 SW1H27 STAF08~ //25STWEAP//

 

SAY Infiltrator

SAY Infiltrator

SAY Infiltrator: Der Infiltrator ist ein Barde, der // and so on

 

 

Then I reinstalled SoA, ToB, the latest patch and DungeonbeGone:

Now I receive this ( long) error message:

 

[C:\Programme\Black Isle\BGII - SvA\Setup-Infiltrator.exe] WeiDU version 21100

[C:\Programme\Black Isle\BGII - SvA\Setup-Infiltrator.exe] Using scripting style

"BG2"

In state 92, I expected one of these tokens:

[0] EOF

[1] []

[2] ~~

[3] <<<<<<<<

[10] EXTEND_TOP_REGEXP

[11] DECOMPRESS_INTO_FILE

[12] IS_AN_INT

[13] GET_DIRECTORY_ARRAY

[14] INSERT_BYTES

[15] REQUIRE_FILE

[16] DEFINE_ACTION_MACRO

[18] ADD_MUSIC

[20] LOAD

[21] REPLACE_BCS_BLOCK

[22] PATCH_REINCLUDE

[23] AUTO_TRA

[24] INNER_PATCH

[25] REMOVE_CRE_EFFECTS

[26] EXTEND_TOP

[27] VERBOSE

[28] DEFINE_ASSOCIATIVE_ARRAY

[29] APPEND_COL

[30] ADD_PROJECTILE

[31] STRING_LENGTH

[32] READ_SLONG

[33] DESCRIBE_ITEM

[35] LOCAL_SET

[37] NOT

[38] SPACES

[39] INSERT_FILE

[40] GET_OFFSET_ARRAY2

[41] DEFINE_PATCH_MACRO

[42] USING

[43] COMPILE_D_TO_DLG

[44] LOAD_TRA

[45] INNER_ACTION

[46] MOD_IS_INSTALLED

[47] README

[48] TEXT_SPRINT

[50] ALTER_TLK_LIST

[51] REQUIRE_COMPONENT

[53] LAUNCH_ACTION_FUNCTION

[56] SET_2DA_ENTRIES_NOW

[57] PATCH_RANDOM_SEED

[58] APPEND_FILE_EVALUATE

[60] LAUNCH_PATCH_FUNCTION

[61] APPLY_BCS_PATCH_OR_COPY

[62] DOLLARS

[63] TO_UPPER

[65] EVALUATE_BUFFER

[66] SAY_EVALUATED

[67] DEPRECATED

[68] PATCH_GAM

[70] REMOVE_STORE_ITEM

[71] BYTE_AT

[73] REMOVE_KNOWN_SPELL

[74] CLEAR_MEMORY

[76] AT_INTERACTIVE_NOW

[77] DEFINE_ACTION_FUNCTION

[78] PRETTY_PRINT_2DA

[80] READ_STRREF_F

[81] COPY

[82] ASK_EVERY_COMPONENT

[83] OUTER_PATCH

[84] VARIABLE_IS_SET

[85] PATCH_VERBOSE

[86] ALWAYS

[87] FILE_CONTAINS

[88] GET_STRREF_F

[89] GET_STRREF

[90] BUFFER_LENGTH

[91] UNINSTALL

[93] GET_FILE_ARRAY

[94] READ_2DA_ENTRY

[95] ADD_MEMORIZED_SPELL

[96] SPRINTF

[97] PRINT

[99] IF_SIZE_IS

[100] READ_STRREF_S

[101] REPLACE_BCS_BLOCK_REGEXP

[102] ACTION_DEFINE_ASSOCIATIVE_ARRAY

[103] GAME_IS

[104] ADD_KIT

[105] READ_2DA_ENTRY_FORMER

[106] FAIL

[107] MKDIR

[108] WRITE_LONG

[110] READ_STRREF_FS

[111] BEGIN

[112] COPY_EXISTING_REGEXP

[113] COPY_LARGE

[115] SPRINT

[116] FILE_IS_IN_COMPRESSED_BIF

[117] ACTION_READLN

[118] GET_STRREF_S

[119] READ_BYTE

[120] ACTION_DEFINE_ARRAY

[121] READ_SHORT

[122] AT_UNINSTALL

[123] SAY

[124] REMOVE_CRE_ITEMS

[125] LANGUAGE

[126] REPLACE_TEXTUALLY

[127] AT_INTERACTIVE_UNINSTALL

[128] FILE_MD5

[129] DECOMPILE_BCS_TO_BAF

[130] ADD_MAP_NOTE

[131] LONG_AT

[132] ENGINE_IS

[133] STRING_SET_RANGE

[134] OUTER_SPRINT

[135] CLEAR_IDS_MAP

[137] STRING_SET

[138] COPY_KIT

[139] REPLACE_EVALUATE

[140] SET_IDS_SYMBOL_OF_INT

[141] AT_EXIT

[142] COPY_ALL_GAM_FILES

[143] END

[144] QUOTE

[148] ALTER_TLK

[150] PATCH_PHP_EACH

[152] LAUNCH_ACTION_MACRO

[155] LOCAL_SPRINT

[156] MODDER

[158] COMPRESS_REPLACE_FILE

[160] DEFINE_PATCH_FUNCTION

[161] NO_IF_EVAL_BUG

[162] COMPILE

[163] COUNT_REGEXP_INSTANCES

[164] SSHORT_AT

[166] READ_SSHORT

[167] OUTER_WHILE

[168] READ_STRREF

[169] ABS

[170] COUNT_2DA_COLS

[171] APPEND

[172] PATCH_SILENT

[173] READ_ASCII

[174] REPLACE

[175] LOCAL_TEXT_SPRINT

[176] RANDOM_SEED

[178] ADD_KNOWN_SPELL

[179] DELETE_BYTES

[181] SBYTE_AT

[182] COMPILE_BAF_TO_BCS

[184] STRING_CONCAT

[185] SCRIPT_STYLE

[188] RPAREN

[189] REQUIRE_PREDICATE

[190] PATCH_DEFINE_ARRAY

[193] SEMICOLON

[194] STATE_WHICH_SAYS

[195] REBUILD_CRE_FILE

[198] FORBID_COMPONENT

[200] INSTALL_BY_DEFAULT

[201] PATCH_FOR_EACH

[202] DECOMPRESS_REPLACE_FILE

[203] SET_BG2_PROFICIENCY

[206] FILE_EXISTS

[207] REINCLUDE

[208] EXTEND_BOTTOM

[209] SHORT_AT

[210] FORCED_SUBCOMPONENT

[211] READ_SBYTE

[212] BUT_ONLY_IF_IT_CHANGES

[213] WRITE_FILE

[214] WRITE_ASCII_TERMINATED

[215] APPLY_BCS_PATCH

[216] FILE_SIZE

[218] FILE_CONTAINS_EVALUATED

[219] EVALUATE_BUFFER_SPECIAL

[220] WRITE_SHORT

[221] SILENT

[222] DECOMPILE_DLG_TO_D

[224] PATCH_BASH_FOR

[225] COPY_EXISTING

[226] COMPRESS_INTO_FILE

[228] SLONG_AT

[229] ALTER_TLK_RANGE

[230] PATCH_CLEAR_ARRAY

[231] ACTION_PHP_EACH

[232] REMOVE_CRE_ITEM

[233] INNER_PATCH_SAVE

[235] SET_2DA_ENTRY_LATER

[237] IF

[238] ADD_CRE_ITEM

[239] FROM

[240] AT_NOW

[241] FORBID_FILE

[242] STRING_SET_EVALUATE

[243] GROUP

[244] SET_2DA_ENTRY

[245] REMOVE_KNOWN_SPELLS

[246] READ_LONG

[248] EXTEND_BOTTOM_REGEXP

[249] ADD_STORE_ITEM

[250] NO_LOG_RECORD

[251] SET

[254] AT_INTERACTIVE_EXIT

[255] REMOVE_MEMORIZED_SPELL

[257] OUTER_SET

[259] REMOVE_2DA_ROW

[261] FOR

[262] APPEND_OUTER

[263] REMOVE_MEMORIZED_SPELLS

[264] OUTER_FOR

[265] EDIT_SAV_FILE

[266] WHILE

[268] APPEND_FILE

[269] INCLUDE

[271] MENU_STYLE

[272] OUTER_PATCH_SAVE

[274] OUTER_TEXT_SPRINT

[275] DECOMPRESS_INTO_VAR

[276] FILE_EXISTS_IN_GAME

[277] BNOT

[278] COUNT_2DA_ROWS

[280] SUBCOMPONENT

[281] GET_OFFSET_ARRAY

[282] WRITE_BYTE

[283] WRITE_ASCII

[284] RANDOM

[286] IF_EVAL

[287] ACTION_FOR_EACH

[289] COPY_RANDOM

[291] ACTION_CLEAR_ARRAY

[294] PATCH_READLN

[295] WRITE_EVALUATED_ASCII

[296] SNPRINT

[297] PATCH_PRINT

[298] LPAREN

[299] VERSION

[301] COMPRESS_INTO_VAR

[303] BIFF

[304] ALLOW_MISSING

[305] PATCH_IF

[306] ACTION_IF

[307] IDS_OF_SYMBOL

[308] INNER_PATCH_FILE

[309] GET_STRREF_FS

[310] TO_LOWER

[311] INSERT_2DA_ROW

[312] EXTEND_MOS

[313] DESIGNATED

[315] UNLESS

[316] REPLACE_CRE_ITEM

[317] LAUNCH_PATCH_MACRO

[318] ACTION_BASH_FOR

[321] READ_2DA_ENTRIES_NOW

[322] ADD_SPELL

[324] PATCH_INCLUDE

Parse error (state 92) at COLON

 

[sETUP-INFILTRATOR.TP2] PARSE ERROR at line 37 column 1-18

Near Text: :

GLR parse error

 

[sETUP-INFILTRATOR.TP2] ERROR at line 37 column 1-18

Near Text: :

Parsing.Parse_error

ERROR: parsing [sETUP-INFILTRATOR.TP2]: Parsing.Parse_error

ERROR: problem parsing TP file [sETUP-INFILTRATOR.TP2]: Parsing.Parse_error

 

FATAL ERROR: Parsing.Parse_error

 

Press ENTER to exit.

 

 

 

Best regars,

Hank

Link to comment

Need the help of an expert with kits, please. Berelinde and I have been trying to fix this for days and we are both out of our element. I have a NPC with a custom kit and if a certain thing happens in the game...we're trying to swap the kit for another custom kit. Nothing we have tried so far works. Is there a way to make this happen? Any help would be greatly appreciated.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...