Jump to content


Photo

Bandit scalps and pickpocket exploit...


  • Please log in to reply
25 replies to this topic

#1 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 18 November 2011 - 07:56 AM

alright we all know that in the default behavior of BG & BG:TOTSC the bandit scalps come pre-assigned in the inventory of the various bandits. It was noted that in some cases (where the bandits are not already hostile) the scalps could be pickpocketed. Which lets be honest, makes absolutely no sense to steal their scalp without them noticing :P

There have been two traditional methods of dealing with this issue. First off, the scalps were flagged as 'unstealable' on the creature file. This was the method which Kevin Dorner used in Baldurdash. However, it was learned that once an item is flagged as unstealable on one creature that particular instance of the item remains unstealable throughout the game. Those playing multiplayer wanted to be able to pickpocket the scalps from each other (I suppose for the fun of it). This lead to the development of the second method. This "newer" method entails moving the item from the inventory to an equip slot such as gloves/bracers where it can no longer be pickpocketed.

I suppose the "newer" method is fine, but I disagree with it in principle. I'm building a FIX pack which is designed to correct things rather than intentionally placing things in the incorrect slots. To that end, I've developed something that I feel works best for this situation. I'll include working .tph code in a spoiler for those who wish to take a gander. Also if any wish to incorporate this idea to 'add' additional scalps to other creatures in the game feel free.

The basics of this are as follows:
ALL scalps are removed from the individual bandits (manual search done on a Saga install to get the list)
Those bandits who turn hostile via dialog file have their call to enemy status adjusted to create the scalp and then turn them hostile.
Those bandits who turn hostile via script OR are hostile to begin with have the scalp created via a modified shout script.

What does this do?
It allows for the scalp to be pickpocketed from fellow party members in a multiplayer game. It allows for the item to be assigned at the time of hostility in a correct and valid slot for the item. It allows me to mod happily knowing that I didn't intentionally bork something to make some people happy :P

The code:
Spoiler

My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm


#2 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 18 November 2011 - 08:43 AM

...

And what happen to a bandit that's not hostile, who gets killed before the script fires ? There won't be a scalp ... <_<

Deactivated account. The user today is known as The Imp.


#3 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 18 November 2011 - 09:24 AM

And what happen to a bandit that's not hostile, who gets killed before the script fires ? There won't be a scalp ... <_<

it's a penalty for improperly killing them just like the experience is truncated to only 10% for killing them when not hostile. Also name one situation where playing the game in a proper manner (i.e. without foreknowledge of what will happen) you would run across a bandit that is NOT hostile and be killed.

My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm


#4 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 20 November 2011 - 06:34 AM

Reading comprehension fail... ignore :crying:

Edited by Lollorian, 20 November 2011 - 06:40 AM.

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#5 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 20 November 2011 - 07:19 AM

Reading comprehension fail... ignore :crying:

uh okay...
*whistles away whilest wondering what I am ignoring* :whistling:

My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm


#6 Miloch

Miloch

    Barbarian

  • Modder
  • 6579 posts

Posted 20 November 2011 - 07:15 PM

portrait

Why Andy, I never knew you were so pretty... :whistling:

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#7 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 20 November 2011 - 08:06 PM

portrait

Why Andy, I never knew you were so pretty... :whistling:

ROFL!!!!!!!!!!!!!!!!!

that's my sims 3 version of my typical protagonist for the IE games. shoot I've got it as a portrait set for BG. now if i could just find some armor for sims 3 females....

My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm


#8 Miloch

Miloch

    Barbarian

  • Modder
  • 6579 posts

Posted 20 November 2011 - 08:09 PM

now if i could just find some armor for sims 3 females....

Ah, who needs armour when you've got skin :D.

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#9 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 20 November 2011 - 08:20 PM

now if i could just find some armor for sims 3 females....

Ah, who needs armour when you've got skin :D.

maybe you half-orcs have rough and tough skin, but 'my' skin is delicate and needs some dangnab protection :lol:




anywho... back on topic... um so uh how about them bandits?

My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm


#10 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 20 November 2011 - 11:02 PM

Also name one situation where playing the game in a proper manner (i.e. without foreknowledge of what will happen) you would run across a bandit that is NOT hostile and be killed.

Should I name one, cause the idea here is that the bandits should all be "hostile" to begin with, after all no civilized citizen comes up to you and demands 100gp's to not go hostile on your ass... or comes and demands 10^? Euros in the real world unless his intention is a hostile already.

Deactivated account. The user today is known as The Imp.


#11 i30817

i30817
  • Member
  • 611 posts

Posted 20 November 2011 - 11:10 PM

pickpocket ... *scalps*?!?

What's the point?

And THAT applies to all "unstealable" items.

Edited by i30817, 20 November 2011 - 11:11 PM.


#12 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 21 November 2011 - 07:56 AM

Also name one situation where playing the game in a proper manner (i.e. without foreknowledge of what will happen) you would run across a bandit that is NOT hostile and be killed.

Should I name one, cause the idea here is that the bandits should all be "hostile" to begin with, after all no civilized citizen comes up to you and demands 100gp's to not go hostile on your ass... or comes and demands 10^? Euros in the real world unless his intention is a hostile already.

yes please do. you are talking real world.
real world != game world
In the game world your example is flawed since when you give them the money they walk away and disappear. It takes some pretty good luck to get them before they poof unless you have either cheated or waited till late in the game to do anything after getting all that good gear you wouldn't otherwise have....

besides i'm not talking about a BGT or modded type of game, but rather the vanilla game. if someone wishes to undo what I plan to do in the fixpack that's their business better warn the players tho that things are yet again different....

I can take a closer look at the creatures. if those who turn hostile via dialog use the same shout script, I can easily apply the script block to them as well. That way if you do make 'em hostile either after giving them your money OR attacking them before talking to them cause you know the game too well then the scalp would be created BUT I won't do anything about providing a scalp if you kill them while they have a blue circle. Just like experience points are reduced when not hostile so too should there be a penalty here.

pickpocket ... *scalps*?!?

What's the point?

And THAT applies to all "unstealable" items.

the point on the scalps is that you shouldn't pick them at all since the scalp is supposed to still be attached to their head. that's why, I propose making the scalp not available until the creature turns hostile.



as far as other pickpocketed items that should or shouldn't be or can be more than once, do i need to point out the code i already have in place to work around such issues? the scalps are the only highly contended one because SOME people wish the ability to steal from each other in multiplayer for some odd reason. doesn't make much sense to me as all the money is pooled in the party so there is no benefit from stealing and selling.


really it boils down to this:
I don't want to put the scalps (or any item) in an incorrect slot.
I want to code within the confines of the game and how the game works.
I want to try to accommodate as many possibilities as I can.... but the game mechanics state if you attack they turn hostile, therefore I can not accommodate blue circle deaths (it's not my fault or the fixpacks fault that you are too overpowered and one hit kill the people you attack....)

I know I can't please everyone. For a while I had subcomponents going the two different routes, then an optional install to revert my preferred of the two and move the items. Now that I've come up with a nice solution that makes a good compromise between the two ideas, I find that there are those who don't like the lack of scalp while the bandit dies with a blue circle. Sorry but THAT is the price to be paid for compromise. I will not move the items to an incorrect location. This solution solves the 'unstealable' flag bit problem that is created when leaving the item in the correct location.

I'm standing my ground. I gave my reasons. I'm using this code in the fixpack. If you don't like it, don't play with the fixpack. Besides BGT does it differently so you can always use that to play BG & BG:ToTSC if you'd like

My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm


#13 GeN1e

GeN1e

    A very GAR character

  • Modder
  • 1604 posts

Posted 21 November 2011 - 08:39 AM

Create a scalp upon death? If bandit scripts are universal (wtasight), then check for a local, and patch it as an effect into bandit CREs.

PS The portrait seems a bit Lara Croftish to me.

PS Speaking of which, if you're not concerned about modded games, then why such a hate towards putting items in equipment slots? Yes, it contradicts common sense, but then the very idea of carrying your own scalp or heart in your pocket is absurd. And it's not like players gonna complain about scalp being in bracer slot - was it my intention to complain, I'd find a thousand more reasons to do so.

PPS Gah, what's wrong with hands, can't type a phrase without several typos? Been barely a week without internet...

Edited by GeN1e, 21 November 2011 - 08:49 AM.

Retired from modding.


#14 Turambar

Turambar
  • Modder
  • 935 posts

Posted 21 November 2011 - 08:53 AM

Create a scalp upon death? If bandit scripts are universal (wtasight), then check for a local, and patch it as an effect into bandit CREs.

That would be a good idea, IMO. But some mods, such as BP, change the scripts of bandits.
Or, you could create a new script, bandit.bcs, and assign it as an override script (being careful not to delete other scripts, but to just move them down to less important slots).
You could both give the scalps if the bandit dies and if he gets hostile, and use a LOCAl variable to prevent two scalps from being given.

Turambar

Currently supporting: DSotSC for BGT, NTotSC - forum

Turambar's fixes and tweaks for BG2, BGT, DSotSC, NTotSC, SoBH and more!

 

Before posting questions (even regarding posts written by myself), please look at Jarno Mikkola's FAQs for the Megamods!
(how to correctly report CTDs)

 


vipersig.jpg


#15 DavidWallace

DavidWallace
  • Validating
  • 337 posts

Posted 21 November 2011 - 09:15 AM

I don't want to put the scalps (or any item) in an incorrect slot.


This confuses me. Slot location is not visible in-game for non-joinables, and has no mechanical consequences in this case. So what principle is being violated? If it makes it any easier, don't think of (say) the slot usually called "Amulet slot" as actually being the amulet slot. Just think of it as being slot (say) 11, which has the function for joinable characters only of containing the object that is in the Amulet slot.

#16 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 21 November 2011 - 09:30 AM

yes please do. you are talking real world.
real world != game world

Hmm, I gave you the example... let's quote meself:

cause the idea here is that the bandits should all be "hostile" to begin with, after all no civilized citizen comes up to you and demands 100gp's to not go hostile on your ass(, well the guard do, but )... unless their intention is a hostile already.

So why not just make the creature already hostile, and let it call it's helped after his dialog is over, or make him remove himself... . One could also place the helper somewhere in the map from where they actually can come and help the poor bastard, and if the player has already killed them... the player can laugh at his face. And the helpers would then go away with the character that starts the dialog.

Yeah, the game tried to be close parallel to the real world... and today, the more it is, the better. Unless there's an explanation that makes things possible... like summoning&controlling monsters/energy via magic. The enemy waves in Dragon Age II are pretty ugly, and most reviews note that... and some of that is fixed in the DLC's.

In the game world your example is flawed since when you give them the money they walk away and disappear. It takes some pretty good luck to get them before they poof unless you have either cheated or waited till late in the game to do anything after getting all that good gear you wouldn't otherwise have....

Erhm, there's unlimited amount of gold distributed during the game, as you can hall everything from daggers and leather armors to high end stuff to the town smiths and get gold from that... that you get by killing bandits. So the money that disappears with the bandit doesn't actually matter at all.
And no, I have never given any money, but it's a possibility.

I don't want to put the scalps (or any item) in an incorrect slot.

This confuses me. Slot location is not visible in-game for non-joinables, and has no mechanical consequences in this case. So what principle is being violated? If it makes it any easier, don't think of (say) the slot usually called "Amulet slot" as actually being the amulet slot. Just think of it as being slot (say) 11, which has the function for joinable characters only of containing the object that is in the Amulet slot.

Well, if this is to be the BG1 Fixpack, by definition it would be optimal that the said fixes won't break anything else, like a mod that adds an item to the amulet slot...

That would be a good idea, IMO. But some mods, such as BP

This is a BG1 mod... :P

was it my intention to complain, I'd find a thousand more reasons to do so.

That's my sentiment to... it's no likely that I am going to go and kill everyone of the neutral bandits to notice if there is a scalp or not... I just like to point things and poke them a bit too much perhaps. :D

PPS Gah, what's wrong with hands, can't type a phrase without several typos? Been barely a week without internet...

Perhaps someone pickpocket your scalp and now it's in a wrong item slot.

Edited by Jarno Mikkola, 21 November 2011 - 09:48 AM.

Deactivated account. The user today is known as The Imp.


#17 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 21 November 2011 - 10:40 AM

So why not just make the creature already hostile, and let it call it's helped after his dialog is over, or make him remove himself... . One could also place the helper somewhere in the map from where they actually can come and help the poor bastard, and if the player has already killed them... the player can laugh at his face. And the helpers would then go away with the character that starts the dialog.

you sir make no sense with this and at any rate is way way outside the scope of a fixpack. you could tho put it in "Jarno's Mod of Crazy Things" if you so wish. I won't stop you.

I just like to point things and poke them a bit too much perhaps.

way too true! if you wanted to play devils advocate you could preface your posting as such rather than ripping one's well thought out intentions to kingdom come and back. enough said on this.... anything else needs to be handled between you and I personally and privately.


Create a scalp upon death? If bandit scripts are universal (wtasight), then check for a local, and patch it as an effect into bandit CREs.

I can look further into this, but I'm not too sure if BG1 could handle anything like this. I've not seen any existing setups where something is created and given on creature death.


As it currently stands with my code, the only time a scalp won't be found is when the bandit is killed while still having a blue circle. To me that is a small price to pay for playing the game OUTSIDE OF DEVELOPER INTENT. Otherwise you end up with either scalps that retain the inability to be pickpocketed AFTER retrieving from the bandit or scalps that could possibly be removed from another mod that adds stuff into the slot that the scalp was moved to. Neither of those are really preferential for a fixpack, tho if I had to pick I'd say screw the multiplayers and flag the scalp unstealable and be done with it (which is what the current available release of the fixpack does)

PS The portrait seems a bit Lara Croftish to me.

THAT dear sir was not my intention. If it looks like her, it is totally by coincidence. To be honest I barely tweaked the facial features from one of the possible default settings. It is most likely due to the hairstyle. I am a bit partial to pony tails...

My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm


#18 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 21 November 2011 - 10:47 AM

There have been two traditional methods of dealing with this issue. First off, the scalps were flagged as 'unstealable' on the creature file. This was the method which Kevin Dorner used in Baldurdash. However, it was learned that once an item is flagged as unstealable on one creature that particular instance of the item remains unstealable throughout the game. Those playing multiplayer wanted to be able to pickpocket the scalps from each other (I suppose for the fun of it). This lead to the development of the second method.

I was wondering about this :P

There's a DIsplayable flag in an ITM and a Unstealable flag in the CRE's inventory table - logic would suggest that the CRE's flag would be enforced for that CRE only while the ITM's flag would be a global restriction like you implied :unsure:

If no, isn't this an oversight? (that might be fixed within ToBEx? :P Not implying that you should need ToBEx for your fixpack btw :D)

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#19 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 21 November 2011 - 11:59 AM

There have been two traditional methods of dealing with this issue. First off, the scalps were flagged as 'unstealable' on the creature file. This was the method which Kevin Dorner used in Baldurdash. However, it was learned that once an item is flagged as unstealable on one creature that particular instance of the item remains unstealable throughout the game. Those playing multiplayer wanted to be able to pickpocket the scalps from each other (I suppose for the fun of it). This lead to the development of the second method.

I was wondering about this :P

There's a DIsplayable flag in an ITM and a Unstealable flag in the CRE's inventory table - logic would suggest that the CRE's flag would be enforced for that CRE only while the ITM's flag would be a global restriction like you implied :unsure:

If no, isn't this an oversight? (that might be fixed within ToBEx? :P Not implying that you should need ToBEx for your fixpack btw :D)

while Tobex might be able to fix this situation for the BGT/Tutu/Easytutu versions of BG & BG:ToTSC it sadly won't be able to fix BG & BG:ToTSC themselves -- different game with different exe files.

The problem now is that while I can resolve the oddity of pickpocketing the scalp within game engine parameters (without potential conflict down the road with other mods -- the moving item method; without unwanted side effects in multiplayer play -- the cre file flag method), it doesn't provide a scalp to those creatures killed while still having a blue circle. An issue known to me before I ever made the original post. To me it seemed an acceptable loss because should the player play the game as Bioware intended every bandit would have his scalp. It is only those players who use prior game knowledge and cheesy tactics to kill off neutral enemies before they become hostile that would miss out on having the scalp just as they miss out on full experience points from the kill.


********************************
Hindsight says that I shouldn't have bothered to make a post, just do my fix, go on, and deal with the people who complain later... Since it is most likely that the number of people who play the real BG game is quickly nearing 0 due to BGT, Tutu/EasyTutu and the available Tobex changes to them.

My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm


#20 i30817

i30817
  • Member
  • 611 posts

Posted 21 November 2011 - 08:10 PM

Every bandit should have a scalp... while officer (val something) is asking for it.

Otherwise, why not scalp every single one of your many murders? And isn't it strange that a almost-monk is scalping people before being told to do so? Not exactly what comes to mind with a corpse - "let's scalp it".
And after it makes no sense anymore (val is gone), then it should stop too.


If you publicize your component with that feature, i would use it.

Edited by i30817, 21 November 2011 - 08:18 PM.