The Black Wyrm Lair Forums
The Black Wyrm's Lair Terms of Use Help Search Members Calendar

Welcome Guest ( Log In | Register )

> kit creation question
lroumen
post Jun 1 2009, 08:38 AM
Post #1





Forum Member
Posts: 522
Joined: 12-April 06
From: Netherlands




Hello everyone.

I am attempting to create a kit, but I run into a problem and I would like to hear some opinions.

I was thinking that since you cannot change the layout of the functional buttons, you may be able to change their behaviour. So I figured, since the bard already has a thieving button for his pick pocket skill, would it be possible to give a bardkit the ability to pick locks and remove traps?

1. I have attempted to add an OPEN_LOCKS line into the bard 2da right under his pick pocket ability, but I'm guessing that that never gets read by the game.
2. Next I tried to give him thieving points with shadowkeeper to see it that worked in any way. But when I detected a trap with another thief I simply could not get the trap disable button with the bard.

So I guess my current conclusion is that the bardic thieving button only works for pick pocketing. Now that means that it must have some of its natural capabilities disabled by the game (the pick locks and remove traps ability). Therefore, I wonder if anyone has ever looked further into the game to see how these abilities are removed. Since it is possible to disable a functional button using an op-code, maybe part of the thieving has also been disabled with an op-code and can be undisabed (reenabled).

It is also possible that thieving for thieves is added by thieving points, whereas the thieving for other classes (monk, ranger, bard) is added through a 2da. It does not seem possible to have a non-thief class to get thieving points per level, so perhaps additional thieving skills are impossible for the other classes as well.



Lastly I think I will probably be able to fix the usability of a bardkit as a semi-thief by giving it a few knocks per day and a few find traps spells per day as kit ability. That makes him all-purpose in the end, but too powerful due to 100% successrate for the skills. Is it possible to have the spells efficiency scale per level (knock and find traps are only effective for trap difficulty of 50% or less for instance, to be increased upon level ups)? I'm guessing that the answer is no, but perhaps I'm wrong. Related to this, is it possible to re-memorise the casting of a spell after it has been used but without requiring sleep? That way I only need to give 1 knock and 1 find traps as kit ability, but that still does not give it proper scalability (such that it does not become overpowered compared to a normal thief who has scalability of the thieving skills).

Thanks for the responses.
Go to the top of the page
 
Quote Post
 
Start new topic
Replies
lroumen
post Oct 30 2009, 08:06 AM
Post #2





Forum Member
Posts: 522
Joined: 12-April 06
From: Netherlands




Thanks for the tips. I will look into the possibilities.
Spells don't have a 'failure' measure though, so trap detection like the cleric spell is always 100%. That is kind of irritating.


I got my class changing to work again. It is relatively simple:

IF
Global("LR","GLOBAL",1)
Kit(Player1,LRBARDKIT)
THEN
RESPONSE #100
ChangeClass(Player1,THIEF)
ActionOverride(Player1,AddKit(LRTHIEFKIT))
SetGlobal("LR","GLOBAL",2)
END

IF
Global("LR","GLOBAL",1)
Kit(Player1,LRTHIEFKIT)
THEN
RESPONSE #100
ChangeClass(Player1,BARD)
ActionOverride(Player1,AddKit(LRBARDKIT))
SetGlobal("LR","GLOBAL",2)
END

The bardkit gets an innate that when tripped sets the global to 1 and trips the first portion of the script to change into a thief.
The thiefkit is hidden and gets an innate too that when tripped sets the global to 1 and trips the second portion of the script to change back.


The problem why it did not work for a while is because this does not work for some stupid reason:
If the innate sets the global to 0 and I use the block:
IF
Global("LR","GLOBAL",0)
Kit(Player1,LRBARDKIT)
THEN
RESPONSE #100
ChangeClass(Player1,THIEF)
ActionOverride(Player1,AddKit(LRTHIEFKIT))
SetGlobal("LR","GLOBAL",1)
END

The block is not executed. Weird. If the global does not exist, the block does execute.
So the cure was to set the global to a different value that 0 (as above I just use 1 and 2 instead of 0 and 1) such that the block can activate.

The block fires instantaneous. The kit addition is also instantaneous. The F1-F12 buttons do not change if you still have the character selected but if you unselect and reselect the buttons also change, so it is a minor hamperment but it does work the way it should.


Btw: I cannot add bonus abilities to the CLAB anymore if I keep shifting ingame. That is because any bonuses of previous levels will be applied when you change to a class. That means a simple bonus like +1AC will be re-added when you shift from one class to the next and back again multiple times. Cheating-galore.
But anyway, I only needed my bardsongchange to be in the CLAB and my "gain shifting innate" in the 2da, which is fine since it does not give any innate-duplication problems. Similarly, the hidden thiefkit has a CLAB that only contains the innate to shift back.
I can always add into my scripts the removal of an innate skill like a thief trap setting of course. That should be no big problem.




I did a test and you can make a mage-kit that does not show up under the mage kit list since it's full and then you basically slap in a fighterkit pickable by all races who has no bonuses and such (I suggest also mage-like proficiencies) and then set a block that simply changes this fighterkit to change your class and kit into the desired mage-kit.
Who says protagonists cannot have a custom mage kit?

IF
OnCreation()
Global("LRSHIFT","GLOBAL",0)
Kit(Player1,LRFIGHTERKIT)
THEN
RESPONSE #100
ChangeClass(Player1,MAGE)
ActionOverride(Player1,AddKit(LRMAGEKIT))
SetGlobal("LRSHIFT","GLOBAL",1)
END

Note: now the global does work since "LRSHIFT" does not exist yet in a new game.
Extremely simple! Am I reinventing the wheel here because stuff like this I cannot find anywhere in a kitcreation readme or across the boards.


Edit reason. Fixed the ClassChange -> ChangeClass issue.
Additionally, as discussed below, this will also work in a more general fashion:

IF
OnCreation()
Global("LRSHIFT","LOCALS",0)
Kit(Myself,LRFIGHTERKIT)
THEN
RESPONSE #100
ChangeClass(Myself,MAGE)
ActionOverride(Myself,AddKit(LRMAGEKIT))
SetGlobal("LRSHIFT","LOCALS",1)
END


This post has been edited by lroumen: Nov 3 2009, 08:53 AM
Go to the top of the page
 
Quote Post
Jarno Mikkola
post Oct 31 2009, 08:23 AM
Post #3





Forum Member
Posts: 80
Joined: 25-January 07
From: We call it Swamp Pit, you call it Finland.




Hmm, intresting. thumb.gif
QUOTE(lroumen @ Oct 30 2009, 11:06 AM) *
IF
Global("LR",1)
Kit(Player1,LRBARDKIT)
THEN
RESPONSE #100
ClassChange(Player1,THIEF)
ActionOverride(Player1,AddKit(LRTHIEFKIT))
SetGlobal("LR",2)
END

IF
Global("LR",1)
Kit(Player1,LRTHIEFKIT)
THEN
RESPONSE #100
ClassChange(Player1,BARD)
ActionOverride(Player1,AddKit(LRBARDKIT))
SetGlobal("LR",2)
END
Just so you know, this will probably fail if you'll install the Refinements mod, and it would be better if you made the script like this:
CODE
IF
Global("LR","LOCALS",1)
THEN
RESPONSE #100
ChangeClass(Myself,THIEF)
ActionOverride(Myself,AddKit(LRTHIEFKIT))
SetGlobal("LR","LOCALS",0)
END

IF
Global("LR","LOCALS",2)
THEN
RESPONSE #100
ChangeClass(Myself,BARD)
ActionOverride(Myself1,AddKit(LRBARDKIT))
SetGlobal("LR","LOCALS",0)
END
As the LR = 0, would be the normal state, while the 1 and 2 would be the class and kit changing mode... so the initiate just needs to set the LR to 1 or 2. wink.gif

This post has been edited by Jarno Mikkola: Nov 3 2009, 07:37 AM
Go to the top of the page
 
Quote Post

Posts in this topic
lroumen   kit creation question   Jun 1 2009, 08:38 AM
Ardanis   Next to everything about classes-buttons is hardco...   Jun 1 2009, 08:10 PM
lroumen   Yes, exe hacking is a bit beyond the scope of my f...   Jun 2 2009, 06:52 PM
lroumen   I've had a thought-wave. Perhaps it would be ...   Jun 3 2009, 06:30 AM
Ardanis   It will probably work. I can think of such a tric...   Jun 3 2009, 05:29 PM
lroumen   It does make sense. Perfect sense. I cannot believ...   Jun 4 2009, 06:27 AM
Ardanis   That largely depends on how many times a bard will...   Jun 4 2009, 03:11 PM
lroumen   I see that this code greatly reduces the amount of...   Jun 5 2009, 07:37 AM
Ardanis   I've thought of it, and it's how I had thi...   Jun 5 2009, 05:17 PM
lroumen   Unfortunately, I really didn't have much time ...   Aug 25 2009, 08:28 AM
lroumen   Short update Coding the globals to work for 6 NPC...   Oct 6 2009, 07:49 AM
lroumen   Well, I tried the polymorph ability into a thief, ...   Oct 8 2009, 06:52 AM
lroumen   woohoo. I got changeclass and addkit to work to so...   Oct 22 2009, 07:45 AM
Hoppy   Have you tried creating innate abilities for your ...   Oct 28 2009, 05:26 PM
lroumen   Thanks for the tip, but the kit bonuses are not re...   Oct 29 2009, 08:18 AM
Hoppy   Anyway, the class changing was working a while ago...   Oct 30 2009, 02:16 AM
lroumen   Thanks for the tips. I will look into the possibil...   Oct 30 2009, 08:06 AM
Jarno Mikkola   Hmm, intresting. :thumb: IF Global("LR...   Oct 31 2009, 08:23 AM
lroumen   Hmm, intresting. :thumb: Just so you know, this...   Nov 2 2009, 09:55 AM
Jarno Mikkola   Question though, why would it not work with refine...   Nov 2 2009, 10:29 PM
lroumen   I will check Refinements regardless, but I think t...   Nov 3 2009, 08:48 AM
Jarno Mikkola   ChangeClass or ClassChange?!? Argh! Typing...   Nov 3 2009, 01:05 PM
lroumen   Good idea about the usb. I had not thought about t...   Nov 3 2009, 01:42 PM
lroumen   Update: - class changing fixed. it is working pro...   Nov 23 2009, 07:56 AM
Jarno Mikkola   I would like a tip for a reliable hosting site. An...   Nov 23 2009, 09:56 PM
Baronius   lroumen can always PM me with the details of what ...   Nov 24 2009, 10:22 AM
Jarno Mikkola   On a side note, I'm sure most members know her...   Nov 24 2009, 05:47 PM
lroumen   Oh, haha, I didn't mean it like that. If I wer...   Nov 24 2009, 01:46 PM
Baronius   As a forum member, you should be able to attach fi...   Nov 24 2009, 03:44 PM
lroumen   Oh right, I forgot about being able to attach file...   Nov 24 2009, 06:58 PM
Baronius   Jarno Mikkola: I don't know what megabytes you...   Nov 25 2009, 03:31 PM
lroumen   Well.. this is it. All info is in the zip file, bu...   Dec 22 2009, 01:43 PM
Jarno Mikkola   Ah, there's no primary mod folder(*modname* th...   Dec 22 2009, 02:37 PM
lroumen   Ah yes. The zip-file should be unpacked in the ma...   Dec 23 2009, 06:35 AM
Jarno Mikkola   The zip-file should be unpacked in the main BG2 fo...   Dec 23 2009, 07:16 AM
lroumen   Great, I had to fix a bug with the bardsong alread...   Jan 19 2010, 02:44 PM


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:



- Lo-Fi Version Time is now: 22nd August 2025 - 02:13 PM