![]() |
The Black Wyrm's Lair Terms of Use |
![]() ![]() ![]() ![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
Post
#2
|
|
Forum Member Posts: 146 Joined: 1-November 06 From: Saint-Petersburg, Russia ![]() |
QUOTE I will give the summon+boosting a try, but I think the quick fix would still be to make all the spl/cre files. I'm thinking it would be less of a problem to get that to work code-wise. That largely depends on how many times a bard will get to 'distribute' thieving points, and how many skills into. If you have three skills and 7 distributions then it'll be(3+7)! / (7! * 3!) = 120 different cre and spl. Imo way too many. Here is a slight revamp of my own code. File names and directories are just for an example. Same goes to 'ag_' prefix, you likely want to use your own one. In table.2da the first column contains stats' names (from stats.ids, you can un fact use numbers instead), the second - the template for boosting spell's name (ag_loc4.spl is supposed to increase the polymorphed bard's lockpicking by 15*4=60 points, ag_ill12.spl - detect illusions by 12*15=180), the third one - how precise the scanning should be, 15 means it will detect each 15% (if before morphing you had 37% then it will consider you having 30=15*2). The fourth - how many times that skill may get improved, which is determined within the dialog. Apparently, this way the boosting spells are better to follow the %spell%[1;%max%].spl - +'%value%*[1;%max%]' rule. Though one can expand this code to generate those spells alongside with the script. CODE MKDIR ~mymod/workspace~ // for testing purpose, the finished mod should already have premade folders
<<<<<<<<inlined/table.2da DETECTILLUSIONS ag_ill 15 6 LOCKPICKING ag_loc 15 6 TRAPS ag_tra 15 6 >>>>>>>> <<<<<<<<inlined/script.baf IF /*GLOBAL*/ THEN RESPONSE #100 /*SETGLOBAL*/ ReallyForceSpellRES("polymorp",LastSummonerOf(Myself)) // polymorp.spl transforms you into a thief END /*BIG_BLOCK*/ >>>>>>>> COPY ~inlined/script.baf~ ~mymod/workspace/script.baf~ COPY ~inlined/table.2da~ ~mymod/workspace/table.2da~ COUNT_2DA_ROWS 4 rows FOR (i=0;i<rows;i+=1) BEGIN READ_2DA_ENTRY i 0 4 ~skill~ READ_2DA_ENTRY i 1 4 ~spell~ READ_2DA_ENTRY i 2 4 ~value~ READ_2DA_ENTRY i 3 4 ~max~ INNER_ACTION BEGIN COPY ~mymod/workspace/script.baf~ ~mymod/workspace/script.baf~ REPLACE_TEXTUALLY EXACT_MATCH ~/*GLOBAL*/~ ~ Global("ag_%skill%_set","locals",1) /*GLOBAL*/~ REPLACE_TEXTUALLY EXACT_MATCH ~/*SETGLOBAL*/~ ~ SetGlobal("ag_%skill%_set","locals",2) /*SETGLOBAL*/~ FOR (j=1;j<(max+1);j+=1) BEGIN SET value_min = (j*value - 1) PATCH_IF j=max BEGIN SET value_max = 300 END ELSE SET value_max = ((j+1)*value) REPLACE_TEXTUALLY EXACT_MATCH ~/*BIG_BLOCK*/~ ~ IF Global("ag_%skill%_set","locals",0) CheckStatGT(LastSummonerOf(Myself),%value_min%,%skill%) CheckStatLT(LastSummonerOf(Myself),%value_max%,%skill%) THEN RESPONSE #100 SetGlobal("ag_%skill%_set","locals",1) SetGlobal("ag_%skill%","locals",%j%) END IF Global("ag_%skill%_set","locals",2) Global("ag_%skill%","locals",%j%) THEN RESPONSE #100 SetGlobal("ag_%skill%_set","locals",3) ReallyForceSpellRES("%spell%%j%",LastSummonerOf(Myself)) END /*BIG_BLOCK*/~ END // inner FOR loop END // INNER_ACTION END // FOR loop This post has been edited by Ardanis: Jun 4 2009, 03:18 PM -------------------- aka GeN1e
|
|
|
![]() ![]() |
![]() |
Lo-Fi Version | Time is now: 22nd August 2025 - 02:07 PM |