Well, I'm not sure if I am using the same version of that file... anyway...
In my file line 175 is below, in bold.
<i>void Item_OnPickItem()
{
Log_SetActiveAction("Nothing");
aref activeLocation;
ref chr = GetMainCharacter();
<b>makearef(activeLocation, Locations[sti(chr.itemLocationIndex)]);
</b></i>
As you see, it's a makearef, just at the beginning of the function
The error says something about incorrect index in a string
As you can see, sti(chr.itemLocationIndex) is acting as the index for Locations[]
chr is the struct mchref, I mean, the attributes of our player (well, the LOGICAL ones... <img src="style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid="
" border="0" alt="icon_wink.gif" /> )
So my guess is that, who knows why, chr.itemLocationIndex has the value of 0 or null, probably because previously, in same function, either wasn't setted to a value, or it was deleted.
To check my guess, you'll have to include this code (in bold)
<i>void Item_OnPickItem()
{
Log_SetActiveAction("Nothing");
aref activeLocation;
ref chr = GetMainCharacter();
<b>Trace("JASON - Item_OnPcikItem - Check for CTD: " + chr.itemLocationIndex);</b>
makearef(activeLocation, Locations[sti(chr.itemLocationIndex)]);
</i>
BTW once I made a dump of mchref ... and see:
itemlocationindex = -1
So seems likely we get the reason (but not how to fix)