Ancordia_PRC8/_module/nss/house_putsale.nss
Jaysyn904 102ba7dab6 Initial Commit
Initial Commit
2023-09-21 19:51:32 -04:00

85 lines
3.3 KiB
Plaintext

#include "x4_inc_functions"
void main()
{
object oPC = GetPCSpeaker();
object oModule = GetModule();
string sDatabase = GetLocalString(oModule, "DB");
int nPrice = GetLocalInt(oPC, "HousePrice");
string sHouse = GetLocalString(oPC, "HouseToSell");
string sHouseOwnership = "H_"+sHouse+"_OWNER";
string sOwner = CharacterDB(oPC);
string sHouseSeller = "H_"+sHouse+"_SELLER";
string sHousePrice = "H_"+sHouse+"_PRICE";
SetCampaignString(sDatabase, sHouseOwnership, "FORSALE");
SetCampaignString(sDatabase, sHouseSeller, sOwner);
SetCampaignInt(sDatabase, sHousePrice, nPrice);
//Clear the list of the authorized people of the estate
DeleteCampaignVariable(sDatabase, "H_"+sHouse+"_AUTH_1");
DeleteCampaignVariable(sDatabase, "H_"+sHouse+"_AUTH_2");
DeleteCampaignVariable(sDatabase, "H_"+sHouse+"_AUTH_3");
DeleteCampaignVariable(sDatabase, "H_"+sHouse+"_AUTH_4");
DeleteCampaignVariable(sDatabase, "H_"+sHouse+"_AUTH_5");
DeleteCampaignVariable(sDatabase, "H_"+sHouse+"_AUTH_6");
DeleteCampaignVariable(sDatabase, "H_"+sHouse+"_AUTH_7");
DeleteCampaignVariable(sDatabase, "H_"+sHouse+"_AUTH_8");
DeleteCampaignVariable(sDatabase, "H_"+sHouse+"_AUTH_9");
DeleteCampaignVariable(sDatabase, "H_"+sHouse+"_AUTH_10");
//Identify the area with the estate in question
string sWaypointName = "WP_AREA_"+sHouse;
object oAreaWP = GetWaypointByTag(sWaypointName);
object oEstate = GetArea(oAreaWP);
//Kick out all players that might still be present in the sold estate
object oTarget = GetWaypointByTag("WP_AREA_"+sHouse+"_OUT");
object oVisitor = GetFirstPC();
object oHench;
int nHench;
while (GetIsObjectValid(oVisitor) == TRUE)
{
if(GetArea(oVisitor)==oEstate)
{
// Teleport the PC.
AssignCommand(oVisitor, ClearAllActions());
AssignCommand(oVisitor, JumpToObject(oTarget));
// Also teleport associates.
oHench = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oVisitor);
AssignCommand(oHench, ClearAllActions());
AssignCommand(oHench, JumpToObject(oTarget));
oHench = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oVisitor);
AssignCommand(oHench, ClearAllActions());
AssignCommand(oHench, JumpToObject(oTarget));
oHench = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oVisitor);
AssignCommand(oHench, ClearAllActions());
AssignCommand(oHench, JumpToObject(oTarget));
oHench = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oVisitor);
AssignCommand(oHench, ClearAllActions());
AssignCommand(oHench, JumpToObject(oTarget));
// Support for multiple henchmen (includes horses).
nHench = 1;
oHench = GetHenchman(oVisitor, 1);
while ( oHench != OBJECT_INVALID )
{
AssignCommand(oHench, ClearAllActions());
AssignCommand(oHench, JumpToObject(oTarget));
// Next henchman.
oHench = GetHenchman(oVisitor, ++nHench);
}
}
oVisitor = GetNextPC();
}
//In ONLINE mode, delete the current date
if (GetLocalString(oModule, "MODE") == "ONLINE")
DeleteCampaignVariable(sDatabase, "TIME_"+sHouse);
}