Tyler Hartman Posted August 29, 2012 Share Posted August 29, 2012 Starting up a new game in KotOR i thought "I sure wish i could just slaughter this clueless shopkeeper and take all his goods." Well i want to have that made possible so first things first... Where should i start? I havent the slightest clue where to find the shopkeepers files at, i would like to start trying to modify the first shop owner in the abandoned apartment on Taris. Anyone know where those files are? I obviously need to add the items somehow where his Kiosk is set up at to what is originally in his inventory and to make it to where he fights you if you decide to take his supplies by force. I would appreciate any assistance from you guys at Holowan Labs = ) Link to comment Share on other sites More sharing options...
JCarter426 Posted August 29, 2012 Share Posted August 29, 2012 I don't believe stores have an inventory in the traditional sense, so there would be no way to move their items from one place to another. You could open the store with a script that tells it to give you a 100% discount, but then you would still be able to sell items to any merchant that usually sells items, and then buy them back for free. Link to comment Share on other sites More sharing options...
Tyler Hartman Posted August 29, 2012 Author Share Posted August 29, 2012 Think theres a way to remove the character that sells items after you kill them and add the items that they had in a "loot bag" where the body was? Link to comment Share on other sites More sharing options...
JCarter426 Posted August 29, 2012 Share Posted August 29, 2012 No, because it isn't the character that had the items in the first place. Link to comment Share on other sites More sharing options...
Hassat Hunter Posted August 29, 2012 Share Posted August 29, 2012 You'll manually have to add the entire stock to the characters inventory for this to work... Link to comment Share on other sites More sharing options...
Canderis Posted August 29, 2012 Share Posted August 29, 2012 And what you already bought would be duplicated Link to comment Share on other sites More sharing options...
Nick Vader Posted August 29, 2012 Share Posted August 29, 2012 As stated above, you could insert a dialog option that would make it look like you killed the shopkeeper, then a dialog option appears allowing you to loot the shopkeepers bbody. There you could attach a script that would either give you the items, or open up the shop with no cost for any items. In that script, however you will also have tto actually kill the NPC, or just make him vanish. Link to comment Share on other sites More sharing options...
CptPriceless Posted August 29, 2012 Share Posted August 29, 2012 The script would be tedious; if you want to make it even more realistic, not only would you have to script in all the original items manually, but you'd also have to script: If PLAYER bought ___, then ___ will not appear in loot. Obviously that's no code, but you get the idea. Even so, I really like this concept. Link to comment Share on other sites More sharing options...
Tyler Hartman Posted August 29, 2012 Author Share Posted August 29, 2012 Hmm... Yeah i can do tedious work because i got nothing else better to do with my time. As soon as i find a starting point im on it. Thanks for the information, i see that the shopkeeper doesnt have an actual inventory but like Hassat Hunter said im willing to manually insert all the items, but the problem i expected to encounter is what CptPriceless said. If you purchase an item then it shouldnt appear in the bag thats left from the body. Link to comment Share on other sites More sharing options...
Fallen Guardian Posted August 29, 2012 Share Posted August 29, 2012 I guess you could set the on death script of the merchants to run this: void main() { object oPC = GetFirstPC(); OpenStore(object oStore, oPC, 0, 100); } You'd have to find the merchant's UTM file (their store file) and put it in for object oStore but this would basically make it, I think, so that once the player killed the merchant the store would pop up and everything would be free. Link to comment Share on other sites More sharing options...
Tyler Hartman Posted August 30, 2012 Author Share Posted August 30, 2012 Thanks, where would someone find the store files? I cant look in KotOR Tool right now cause my Desktop is being used at the moment and my laptop is riddled with problems. Link to comment Share on other sites More sharing options...
JCarter426 Posted August 30, 2012 Share Posted August 30, 2012 As I said though, the sell function should still be there. I'm not entirely sure how the bonus markup or markdown affects selling, but I believe you would be able to buy back any items you sell for free, which would lead to abuse. Not to mention it makes no sense to get cash for selling to a dead guy. I guess it's worth a try though. But if you attach the script to the NPC's OnDeath, you'd only be able to access it once. Yeah, you could take everything at once, but some NPCs have an infinite supply of certain items, so it would be better to keep the store open, so to speak. So I would suggest spawning an invisible placeable that triggers the store, somewhere that would make sense like over their kiosk or on a shelf. The store files are UTM files, found in the _s.rim of each module. Link to comment Share on other sites More sharing options...
Fallen Guardian Posted August 30, 2012 Share Posted August 30, 2012 JC, couldn't you use the clone inventory script that you created, to clone whatever merchant's inventory you wanted over to a new, blank, generic UTM file that would have the OnlySells flag set to true? Link to comment Share on other sites More sharing options...
JCarter426 Posted August 30, 2012 Share Posted August 30, 2012 That's a nice thought, but I've been unable to get the game to recognize an item from a UTM's inventory. That probably would be the best option in order to account for infinite items, but the games refuse to do it. I can get them to recognize the UTM, but not anything it might have. For the record I wasn't using the same functions, though. I used GetItemInSlot for cloning, but UTMs don't have inventory slots (or at least I don't think they do) so I tried GetFirstItemInInventory and GetNextItemInInventory, both of which worked for the PC's inventory but not for a UTM's. Maybe GetItemPossessedBy would work, but I didn't try that as it requires you input the item tag. I guess I could give it a try later. EDIT: Didn't work, probably limited to creatures, though the other two say they support stores in NWScript. I can, however, confirm that DelayCommand(0.1, OpenStore(oStore, GetFirstPC(), -100, 0)); does work, but you can indeed sell items for their regular price and then buy them back for free. I feel like there must be something more to this, though. K2 doesn't have static merchant inventories, which would imply there's a way to script items into the UTM. One would expect the reverse to be true, but I never expect the expected when it comes to these games. I suppose you could change every merchant to "only sells" and then have a merchant on every planet you can sell to that's unkillable. Link to comment Share on other sites More sharing options...
Tyler Hartman Posted August 30, 2012 Author Share Posted August 30, 2012 So what your saying is that you wouldn't be able to sell items to the merchants that you can kill to prevent abuse? I thought that after you killed them the interactions with the merchants would cease to exist. Link to comment Share on other sites More sharing options...
JCarter426 Posted August 30, 2012 Share Posted August 30, 2012 It doesn't matter if the character is dead or alive, because the stores are their own objects, not dependent on any specific character. Because of this, it's possible to use two different merchants to open the same store - I did this a while back to let you access Samhan's secret stash after he's been arrested, by talking to his brother Dendis - or to access it via a placeable or anything else that is capable of firing a script. With the OpenStore function you can reduce the buy price of all items down to zero, but it does not seem to support reducing the sell price at all. The details are a bit complex, but the short answer is if there were a way to do what you say, to move items from a store to a placeable, then you would also be able to move them from a store to another store and, as Fallen Guardian suggested, set the new one to "only sells". The advantage is you would have access to an infinite supply of whatever items of which the store had an infinite supply. But they are both hindered by one problem - I can't figure out how to grab an item from a store's inventory inside a script. Link to comment Share on other sites More sharing options...
Tyler Hartman Posted August 31, 2012 Author Share Posted August 31, 2012 Oh okay i think i got it now, i dont suppose its possible to remove or negate a script and replace it with your own. Uh an example here: Say you wanted the infinite items that are in a script replaced with yours that makes the infinite items into a set number like 1. And leave a few shopkeepers unmodified so that some of their infinite items are still purchasable throughout the game. Is that a possibility? Link to comment Share on other sites More sharing options...
JCarter426 Posted August 31, 2012 Share Posted August 31, 2012 I'm not sure if I follow. You can edit the merchant files to remove infinite items, yes, but that doesn't resolve any problems here. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.