This hack must be required by a mod to be enabled.
This hack allows mods to specify custom NPCs for car shops.
It also allows mods to include and exclude specific cars and skins at specific phone booths and skin shops respectively.
Requiring This Hack
To require this hack, add this line to your mod's Meta.ini:
RequiredHack=CustomShopSupport
Your mod must provide a configuration file when requiring this hack.
Configuring This Hack
To configure this hack, create a file named CustomShopSupport.xml and add the parameters necessary for your mod inside it.
<?xml version="1.0" encoding="utf-8"?>
<CustomShopSupport>
<!--
<CarShop>
Level: The level the charshop is in.
Character: The name of the character that runs the shop (including the "reward_" prefix).
Conversation: The name of the conversation to use when talking to the character. Leave blank to disable the conversation.
<PhoneBooth>
Drawable: Change the drawable that displays above the phonebooth. Optional.
<Selector>
Level: The level to use this phonebooth on.
Locator: The Type 9 SummonVehiclePhone locator to use this phonebooth on.
<FreeItems>
<Car>
[Contents]: Specify the name of the car.
Path: The path to the car. Defaults to "art\cars\CARNAME.p3d".
RepairCost: The cost to repair this car.
<ExcludedItems>
<Car>
[Contents]: Specify the name of the car.
<IncludedItems>
<Car>
[Contents]: Specify the name of the car.
RepairCost: The cost to repair this car.
<SkinShop>
Drawable: Change the drawable that represents this shop. Optional.
<Selector>
Level: The level to use this SkinShop on.
Locator: The Type 9 PurchaseSkin locator to use this SkinShop on.
<FreeItems>
<Skin>
[Contents]: Specify the name of the character.
Path: The path to the character. Defaults to "art\chars\CHARNAME.p3d".
<ExcludedItems>
<Skin>
[Contents]: Specify the name of the character.
<IncludedItems>
<Skin>
[Contents]: Specify the name of the character.
-->
<!-- Default Car Shops -->
<CarShop Level="1" Conversation="plowking" Character="reward_barney" />
<CarShop Level="2" Conversation="son" Character="reward_homer" />
<CarShop Level="3" Conversation="bus" Character="reward_otto" />
<CarShop Level="4" Conversation="tractor" Character="reward_tractor" />
<CarShop Level="5" Conversation="borrowing" Character="reward_homer" />
<CarShop Level="6" Conversation="swine" Character="reward_kearney" />
<CarShop Level="7" Conversation="" Character="zombie" />
<!-- Custom Phone Booth Examples -->
<PhoneBooth>
<!-- Use this Phonebooth in Level 1 and Level 7 -->
<Selector Level="1" />
<Selector Level="7" />
<!-- Make it so Homer can't use Apu's car -->
<ExcludedItems>
<Car>apu_v</Car>
</ExcludedItems>
</PhoneBooth>
<PhoneBooth Drawable="wrench">
<!-- Use this PhoneBooth in Level 1 on the locator named "Z1p1" -->
<Selector Level="1" Locator="Z1p1"/>
<!-- Specify an empty IncludedItems to exclude all Reward Cars -->
<IncludedItems />
<FreeItems>
<!-- And then here we add a couple cars to the phonebooth -->
<Car>bart_v</Car>
<Car>homer_v</Car>
</FreeItems>
</PhoneBooth>
<!-- Custom Skin Shop Examples -->
<SkinShop Drawable="dice">
<Selector Level="1" Locator="z1_skin2"/>
<FreeItems>
<Skin>h_fat</Skin>
<Skin>h_scuzzy</Skin>
</FreeItems>
</SkinShop>
<SkinShop Drawable="wrench">
<Selector Level="1" Locator="z1_skin3"/>
<FreeItems>
<Skin>h_stcrobe</Skin>
<Skin>h_undrwr</Skin>
</FreeItems>
</SkinShop>
</CustomShopSupport>
<?xml version="1.0" encoding="utf-8"?>
<CustomShopSupport>
<!--
<PhoneBooth>
<Blacklist> (Use ExcludedItems instead)
<Whitelist> (Use IncludedItems instead)
<SkinShop>
<Blacklist> (Use ExcludedItems instead)
<Whitelist> (Use IncludedItems instead)
-->
</CustomShopSupport>
Version History
1.25
Changed the Whitelist and Blacklist elements used inside PhoneBooth and SkinShop elements to IncludedItems and ExcludedItems.
The old names are still supported for backwards compatibility.
1.22
Added support for a SkinShop element in this hack's configuration file that works similarly to the existing PhoneBooth element.
1.18.2
Fixed a crash on startup that occurred with certain game executables in certain circumstances:
- If the mod used the
Locatorattribute on aSelectorelement inside aPhoneBoothelement. - If the mod used a
Carelement inside aFreeItemselement inside aPhoneBoothelement.
1.18
Added this hack.