Jump to content


Photo

Druidic thievery.


  • Please log in to reply
2 replies to this topic

#1 Andyr

Andyr

    HERR RASENKOPF

  • Member
  • 2318 posts

Posted 16 April 2005 - 04:51 AM

I noticed the FAQ has been updated: http://www.shsforums...showtopic=14516 to say that you've got her able to use Druid-only and Thief-only stuff. :) I was wondering if you could share your secrets?
"We are the Gibberlings Three, as merry a band as you ever did see..." - Home of IE mods

< jcompton > Suggested plugs include "Click here so Compton doesn't ban me. http://www.pocketplane.net/ub"

#2 Sir Kalthorine

Sir Kalthorine

    Order of Radiant Ugliness

  • Modder
  • 2188 posts

Posted 16 April 2005 - 09:52 AM

I noticed the FAQ has been updated: http://www.shsforums...showtopic=14516 to say that you've got her able to use Druid-only and Thief-only stuff. :) I was wondering if you could share your secrets?

View Post

The real answer to how it was done = imperfectly/hackily (i.e. still searching for a better way, but the current way works).

Steps taken are:

1) Search for and patch druid-usable/thief-unusable items (bit NOT scrolls or rings) during WeiDU installation so as to make them usable by thieves/assassins as well but unusable by bounty hunters, swashbucklers and half-orcs (since half-orcs cannot be druids and tieflings use the half-orc usability flag, and "Fade" is an NPC tiefling thief).

2) Append the Chateau Irenicus level 1 area script and Chrysta's own script to apply "item unusable" effects to members of the group if any of them is a single class elven, human or half-elf thief or assassin, for a list of specified critical druid-but-not-thief items such as weapons (in particular spears and druidic staffs), armour, helms, wands and amulets.

3) [Eventually] append to Chrysta's ToB script to check if the PC has obtained the "Use Any Item" HLA, and in that event remove the previously applied druid-only-item unusability effects from them.

This enables Chrysta to be the only character able to use the druid items among the group, as single class PC thieves are prevented by step (2) described above, and all other known NPCs are prevented by step (1) - Yoshimo uses Bounty Hunter flags, Fade is a tiefling (half-orc usability flags), and Jan, Imoen and Nalia all use mage/thief usability flags.

Like I said, it is by far from perfect (and a bit hacky to be honest), but it works!

Edited by Sir Kalthorine, 17 April 2005 - 12:37 AM.

KACH_TS.jpg Chrysta... could helping her to uncover her past threaten your own future?

"Pity the land in need of Heroes."- Bertolt Brecht
"A little madness, now and then, is relished by the wisest men." - Willy Wonka


#3 Sir Kalthorine

Sir Kalthorine

    Order of Radiant Ugliness

  • Modder
  • 2188 posts

Posted 16 April 2005 - 06:13 PM

In case you needed more detail as regards step 1:

COPY_EXISTING_REGEXP GLOB ~.*\.itm~ ~override~   //copies all item files
     READ_BYTE    "0x20" "thief"   // reads the byte containing thief class usability flag
     READ_BYTE    "0x2B" "assassin" // reads the byte containing thief kit usability flags
     READ_BYTE    "0x21" "druid"   // reads the byte containing druid usability flag
     READ_SHORT   "0x1C" "type"    // reads the byte containing the item type
     READ_BYTE    "0x21" "race"    // reads the byte containing the race flags
     WRITE_BYTE    "0x2B" ("%assassin%" BAND "0b11111011")   // makes usable by assassins
     WRITE_BYTE    "0x20" ("%thief%" BAND "0b10111111")   // and makes usable by thieves
     WRITE_BYTE    "0x2B" ("%assassin%" BOR "0b00011000")   // and makes unusable by Bounty Hunters and Swashbucklers
     WRITE_BYTE    "0x21" ("%race%" BOR "0b10000000")   // and makes unusable by half-orcs
     IF_EVAL (("%druid%" BAND "0b01000000") = "0b00000000")   // if it is already usable by druids
     IF_EVAL (("%thief%" BAND "0b01000000") = "0b01000000")   // and if it is NOT already usable by thieves
     IF_EVAL
         ("%type%" = "2") OR // and if it is armour
         ("%type%" = "3") OR // or belt/girdle
         ("%type%" = "4") OR // or boots
         ("%type%" = "6") OR // or bracers/gauntlets
         ("%type%" = "7") OR // or helm
         ("%type%" = "9") OR // or potion
         ("%type%" = "12") OR // or shield
         ("%type%" = "14") OR // or sling bullet
         ("%type%" = "16") OR // or dagger
         ("%type%" = "17") OR // or mace/club
         ("%type%" = "18") OR // or sling
         ("%type%" = "19") OR // or short sword
         ("%type%" = "20") OR // or long sword
         ("%type%" = "24") OR // or dart
         ("%type%" = "26") OR // or staff
         ("%type%" = "29") OR // or spear
         ("%type%" = "32") OR // or cloak/robe
         ("%type%" = "35") OR // or wand
         ("%type%" = "60") OR // or leather armour
         ("%type%" = "61") OR // or studded leather armour
         ("%type%" = "66") OR // or hide armour
         ("%type%" = "67") OR // or robe
         ("%type%" = "72") OR // or hat
         ("%type%" = "73")    // or gauntlet

I am sure there is a much more elegant way of doing it, but at least I get results this way and so it with do at the very least as a stop-gap method while I search for better ways to implement it.

Edited by Sir Kalthorine, 17 April 2005 - 12:04 AM.

KACH_TS.jpg Chrysta... could helping her to uncover her past threaten your own future?

"Pity the land in need of Heroes."- Bertolt Brecht
"A little madness, now and then, is relished by the wisest men." - Willy Wonka