Skip to content

Adding tiax thieving button

Gel87Gel87 Member Posts: 331
Hi, tiax has a fancy thieving button in his innate ailbilites.
I want that excact skill on a kit im making.
Anyone know how this thing is set up? Can’t find it in nearinfinity. Anyone know the spell name? Want thieving albilities either via innate or change bard song/dance function.

I would also love to know how to give shaman the albility to read and use and cast mage scrolls/spells/spellbook. (Not as important)

My plan is a shaman/mage/thief multiclass built as a singleclass with -70% xp gain.

I want to pickpocket, steal from stores, disarm traps, open locks, set traps, backstab, cast shaman spells with a few selections from cleric spells and possible cast a few mage spells as well, but may do so via innates. It must be the shaman way of casting spells.

Comments

  • Gel87Gel87 Member Posts: 331
    edited February 5
    Yo, found out that it was default for cleric/thief class.

    Anyway, found this topic, any1 brighter than me know how to implement this into my shaman kit?
    https://forums.beamdog.com/discussion/59735/permanent-thieving-button-whaaat

    This may be a plan as well, to use a custom familiar.
    https://forums.beamdog.com/discussion/69319/is-there-any-mod-that-allows-non-thief-classes-to-disarm-traps-bg-bg2-and-iwd

    Next part would be stealing from the store then.
  • Gel87Gel87 Member Posts: 331
    edited February 5
    Okay, so this was harder than exspected.
    * So basicly my plan is to use a ferret familiar (due to mage / thief class)
    * The other option was to use Pseudo Dragon (due to neutral good alignment / azuredge)

    Issue is that i have never made a single dialog ever..

    Maby the easiest part for me, would be to make it from scratch:
    Spell:
    - Summon Familiar, via clab table as an AP_ spell. New AP_spell will set a global value which will make last familiar DestroySelf() and remove last familar item, or replace it.
    - Make relevant creatures based on what level of the spell is casted(increasing thieving albilities, possible more) / Basicly a ferret, but improve its thieving % and possible its HP/res/ac/level as well.

    So how do i make this script? Do i add code in the .TP2 file?
    So i found out i need to make a .D file.
    Will this work?
    //GelSh08.D
    BEGIN GelShFa
     IF ~True()~ THEN BEGIN 0
      SAY ~What you want from me boss?~`
       ++ ~Come here where you are safe~ THEN DO ~MoveToObject(Player1) GivePartyAllEquipment() 
       GiveItemCreate("GelSh08",Player1,0,0,0) DestroySelf()~ EXIT
    
       ++ ~Give me all your stolen items please~ THEN DO ~MoveToObject(Player1) GivePartyAllEquipment() EXIT
    END
    
    //GeShKit.TP2
    COPY "GeShKit/Creatures/GelSH08.cre" "Override"
    SAY NAME1 ~Ferret~
    SAY NAME2 ~Ferret~
    WRITE_ASCII DIALOG ~GelSh08~
      WRITE_ASCII ~0x0248~          ~GelSh08~               // Assign-ing override script x.bcs
      WRITE_ASCII ~0x0280~          ~GelSh08~               // death variable this makes the creature unique... or not
    
    //GelSh08.bcs
    IF
    	Global("GelSh08","GLOBAL",1)
    	ActionListEmpty()
    THEN
    	RESPONSE #100
    		SetGlobal("GelSh08","GLOBAL",0)
                    DestroySelf()
    END
    




    Post edited by Gel87 on
  • Gel87Gel87 Member Posts: 331
    edited February 6
    Okay, so kit is almost done.
    I copied ferret familiar, and made different versions of the creature.
    Gave him a dialog script that works. I can pick him up, and release him via item (at caster level).
    The options is to give me what he stole, and to give me what he stole and enter my inventory.

    He cannot target locked chest, and possible not traps either as i have not gotten that far yet.
    And he cannot talk to people other than me, so i guess he cannot steal from stores either. He can however pickpocket.

    So i will try some stuff:
    1. Change class to thief (hopefully adds more thieving features)
    2. Copy a thief NPC or premade character and turn him into a familiar creature. I think i will go for Cat or baby wyvern. Then add a 3rd option in dialog:
    - «I need you to shoplift some for me» and he joins party and hopefully this will allow him to talk to people and then shoplift as a thief. Possible this is the fix to disarm traps and open locks as well. Ofc I need him to leave party as well after.

    My char can detect traps it seems. Dont know how to make it scale yet. I will also see if i can add backstab.

    I have profience point issues. My char is supposed to be able to put ** in axe/spear/sling/staff. Which leaves a shaman shy on possible spendable points.
    1. I first tried to add * knife and sling via clab in lvl 1. this worked in a way. I put original class 1, active class 1 on then. What happened was, that if i put another profience point into sling, it would then become *** instead of **. If i tried to reduce it again it would not go down, and instead earn me profience point for each click [-].
    2. So then i tried active class only. But i added * to all wepons shaman cant use. And *** to dual wield. This broke the game upon character creation.
    3. I did test by putting in orginal class only, but then no profience points was gained.

    So maby i should choose ** to dual wep? Maby the *** breaks the game.
    I did test to manual put ** on dual wield upon character creation and that worked. And it made shaman able to dual wield 2 axes.

    Else than that i had chosen a wrong spell, chaotic command instead of greater command. Which is an easy fix(at level 5 spell slots).

    I will also make it a infinite castable familiar spell, but if more than 1 is summoned the first one will give party items and destroy self and if in inventory it will dissapear.

    Ofc it needs a cute portrait etc as well.
  • AquadrizztAquadrizzt Member Posts: 1,072
    The thieving buttons are hardcoded, unfortunately. You have discovered one of the workarounds (using a secondary creature with the Thief class). Another technique I've seen used is having an ability that (temporarily) toggles your class to Thief, which gives you the Thief hotbar but does prevent you from accessing spellbooks.
  • Gel87Gel87 Member Posts: 331
    edited February 7
    Aquadrizzt wrote: »
    The thieving buttons are hardcoded, unfortunately. You have discovered one of the workarounds (using a secondary creature with the Thief class). Another technique I've seen used is having an ability that (temporarily) toggles your class to Thief, which gives you the Thief hotbar but does prevent you from accessing spellbooks.

    Thanks :D

    Well, i have a few issues with my familiar thief. The issue is mainly that I have never ever written any Dialog before.
    But found a guide on youtube. Tried to follow it.

    Here is my issues:
    What works:
    - When i summon him and he is in the form of ALLY (not in team) i can talk to him. He will do the actions perfectly. (Enter my inventory or join my team)
    - Familiar will be released from my inventory item, but when i release him from inventory in LOB mode he is lvl 15mage/15thief somehow.. When i cast spell he is lvl 3/3.
    What dont work:
    - When he is in my party and I try to talk to him, he has nothing to say to me.
    - I also made a creature script where old familiars are supposed to destroy themselves/or the inventory item. But it seems to destroy the new one instead.
    - If i manually kick him from party while inside tavern in candlekeep my maincharacter seems to dissapear, and im forced to outside tavern. If i kick him from outside of that tavern that seems fine.
    - When kicked he seem to have default kicked from party dialog, not what i made.
    - His portrait don't display...

    It looks like this:
    ///////////////////.TP2 file: ////////////////////////////////////////
    COPY "GelSha/Creatures/GelSh08.cre" "Override"
      SAY NAME1 ~Ferret~
      SAY NAME2 ~Ferret~
    	WRITE_ASCII DIALOG ~GelSh08~
    	WRITE_ASCII ~0x0248~          ~GelShFA~               // Assign-ing override script x.bcs
    	WRITE_ASCII ~0x0280~          ~GelShFA~               // death variable this makes the creature unique... or not
    
    COMPILE ~GelSha/DLG/GelSh08.D~
    COMPILE ~GelSha/DLG/GelSh08p.D~
    COMPILE ~GelSha/DLG/GelSh08j.D~
    
    APPEND ~Pdialog.2da~
    ~GelSh08		GelSh08p		GelSh08j~
    UNLESS ~GelSh08~
    
    COMPILE ~GelSha/Scripts/GelShFa.BAF~
    

    ///////////////////////GelSh08.D file: /////////////////////////
    BEGIN GelSh08
    IF ~True()~ THEN BEGIN 0
    SAY ~What you want from me boss?~
    ++ ~Come here where you are safe~ DO ~MoveToObject(Player1) GivePartyAllEquipment() GiveItemCreate("GelSh08",Player1,0,0,0) DestroySelf()~ EXIT
    ++ ~Give me all your stolen items please~ DO ~MoveToObject(Player1) GivePartyAllEquipment()~ EXIT
    ++ ~I need you for your excellent thieving skills~ DO ~JoinParty()~ EXIT
    END
    

    ///////////////////////GelSh08j.D file: /////////////////
    BEGIN GelSh08j
    IF ~True()~ THEN BEGIN 0
    SAY ~What you want from me boss?~
    ++ ~Come here where you are safe~ DO ~MoveToObject(Player1) GivePartyAllEquipment() GiveItemCreate("GelSh08",Player1,0,0,0) DestroySelf()~ EXIT
    ++ ~Give me all your stolen items please~ DO ~MoveToObject(Player1) GivePartyAllEquipment()~ EXIT
    ++ ~Well done, you are not needed for your thieving skills at the moment~ DO ~LeaveParty() GivePartyAllEquipment() GiveItemCreate("GelSh08",Player1,0,0,0) DestroySelf()~ EXIT
    END
    

    ////////////////////GelSh08p.D file: ////////////////////
    BEGIN GelSh08p
    IF ~Global("KickedOut", "LOCALS", 0)~ THEN BEGIN 0
    SAY ~What now boss?~
    ++ ~Excellent job, let me see those items and rest in my purse~ DO ~MoveToObject(Player1) GivePartyAllEquipment() GiveItemCreate("GelSh08",Player1,0,0,0) DestroySelf()~ EXIT
    ++ ~I need you some more for your excellent thieving skills~ DO ~JoinParty()~ EXIT
    END
    

    //////////////////GelShFam.BAF file: ////////////////// [ I also tried IF OR(2) !Global("GelShFam","GLOBAL",0) [code]!Global("GelShFam","GLOBAL",1) ]
    IF
      OR(7)
      Global("GelShFam","GLOBAL",2)
      Global("GelShFam","GLOBAL",3)
      Global("GelShFam","GLOBAL",4)
      Global("GelShFam","GLOBAL",5)
      Global("GelShFam","GLOBAL",6)
      Global("GelShFam","GLOBAL",7)
      Global("GelShFam","GLOBAL",8)
    
    THEN
      RESPONSE #100
        TakePartyItem("GelSh08")
        DestroyItem("GelSh08")
        SetGlobal("GelShFam","GLOBAL",0)
        DestroySelf()
    END
    
    [/code]

    Other menitonable features:
    The summon familiar spell Increase global value of GelShFam by 1.

    If I instead use a invisible creature to change my class from Shaman to Mage/Thief when i cast a Thievery spell, and then i cast a spell again to return to shaman. Will such a code work? And will i revert to my special kitted shaman, with same spells etc after i turn back?

    Thievery skill, which sets GE1CRE global to 1:
    IF
    	Class(LastSummonerOf(Myself),SHAMAN)
    	Global("GE1CRE","GLOBAL",1)
    	Kit(LastSummonerOf(Myself),GelSha)
    	ActionListEmpty()
    THEN
    	RESPONSE #100
    		ChangeClass(LastSummonerOf(Myself),THIEF/MAGE)
    		SetGlobal("GE1CRE","GLOBAL",2)
    END
    
    
    IF
    	Global("GE1CRE","GLOBAL",2)
    THEN
    	RESPONSE #100
    		DestroySelf()
    END
    

    Thievery skill, which sets GE1CRE global to 3:
    IF
    	Class(LastSummonerOf(Myself),THIEF/MAGE)
    	Global("GE1CRE","GLOBAL",3)
    	Kit(LastSummonerOf(Myself),GelSha)
    	ActionListEmpty()
    THEN
    	RESPONSE #100
    		ChangeClass(LastSummonerOf(Myself),SHAMAN)
    		SetGlobal("GE1CRE","GLOBAL",2)
    END
    
    
    IF
    	Global("GE1CRE","GLOBAL",2)
    THEN
    	RESPONSE #100
    		DestroySelf()
    END
    
    Could you please help me? :)

    It is all for a Shaman/SomeCleric/HalfFighter/SemiMage/Thief kit "multiclass" made as singleclass with 60% less XP gained.
  • Gel87Gel87 Member Posts: 331
    I just cant get InParty() dialogs or afterkicking dialogs to work.
    So added a "Recall Familier" spell.
    And some stuff in familier creature script to enter my inventory and leave party once this skill is used.
    Manually Kicking it from Party may cause some issues thought.

    Would love to learn more about this dialog thing though, as what i did now is not very clean xD
  • Gel87Gel87 Member Posts: 331
    So, well i made it work in a way.
    - My creature script seems to work in a way preventing more than 1 familiar, but even if you summon your first familiar it will instantly destroy(self) and end up in ur inventory, i guess thats fine.
    - The familiar will be called into my inventory when i use the recall familiar, it does not matter if partied or not. I do have a issue of this innate skill building beyond 1 but that is something i know how to fix.
    - If I party this familiar while inside some few small places and then have it leave my party in any means possible my main char will dissapear. Places i know it happens: candlekeep inn, the circus tents, the inn in bergeost with marv and algernon inside. But i could use it with regular pickpocket there as unparty.
    - Also had to fix my tornado spell to match projectile speed, as i used an older version of the spell.



    But i think I have ADHD, because i now made a Half Dragon Paladin kit as well.

    Currently playing:
    Regular shaman
    Regular cleric / (old version ranger)
    «Multikit shaman»
    Vampire Monk
    Monk consisting of all 3 regular kits combined
    Banshee Mage
    Skeleton F/M/T
    Mindflayer mage - Banshee - Ninja Assassin (3 man team)

    All in legacy of bhaal. I never reach to finnish runs before i start something new xD

    But i learned some stuff:
    - If dialog strings, such as profience strings gets destroyed, a simple code compiling of baldur.bcs will make game fresh as a new install. Then uninstall this again and game is clean.
    - Innate albility with +1 to priest spell cast per day must be set to not trigger before manual level up. Else you get stuck in char making screen after picking spells.
    - I learned to appreciate priest spells :D
Sign In or Register to comment.