Aschbourne_PRC8/_module/nss/kpb_payloan_all.nss

107 lines
4.8 KiB
Plaintext
Raw Permalink Normal View History

2024-06-14 10:48:20 -04:00
////////////////////////////////////////////
// Kittrell's Persistent Banking System //
// Designed by: Brian J. Kittrell //
// //
// This script does the following: //
// //
// kpb_payloan_all - This script allows //
// players to pay off a loan completely. //
////////////////////////////////////////////
#include "kpb_dateinc"
void main()
{
object oPC = GetPCSpeaker();
int nBalance = GetCampaignInt("kpb_bank", "KPB_LOAN_AMT", oPC);
int nGold = GetGold(oPC);
int nYear = GetCampaignInt("kpb_bank", "KPB_LOAN_YEAR", oPC);
int nMonth = GetCampaignInt("kpb_bank", "KPB_LOAN_MONTH", oPC);
int nDay = GetCampaignInt("kpb_bank", "KPB_LOAN_DAY", oPC);
int iMonth = GetCalendarMonth();
int iDay = GetCalendarDay();
int iYear = GetCalendarYear();
int nOldCredit = GetCampaignInt("kpb_bank", "KPB_CREDIT_AMT", oPC);
int nImprovedCredit = GetCampaignInt("kpb_bank", "KPB_CREDIT_RATE", oPC);
string sCurrentDate = GetCurrentDate();
string sLoanDate = GetDateString(nDay, nMonth, nYear);
int nTotalDays = GetDateDifference(sLoanDate, sCurrentDate, "days");
int nInterest = GetCampaignInt("kpb_bank", "KPB_CREDIT_RATE", oPC);
int nNewInterest = ((nInterest * nBalance)/100);
int nNewBalanceA = (nBalance + nNewInterest);
int nNewBalanceB = (nBalance + (nNewInterest * 2));
int nNewBalanceC = (nBalance + (nNewInterest * 3));
int nNewBalanceD = (nBalance + (nNewInterest * 4));
int nNewBalanceE = (nBalance + (nNewInterest * 5));
int nNewBalanceF = (nBalance + (nNewInterest * 8));
if (nTotalDays == 0 && nGold >= nBalance)
{
SpeakString("Very well. Your account didn't acquire any interest.", TALKVOLUME_TALK);
TakeGoldFromCreature(nBalance, oPC, TRUE);
SetCampaignInt("kpb_bank", "KPB_LOAN_AMT", 0, oPC);
}
if (nTotalDays >= 1 && nTotalDays <= 7 && nGold >= nNewBalanceA)
{
int nNewBalance = (nBalance + nNewInterest);
TakeGoldFromCreature(nNewBalance, oPC, TRUE);
SpeakString("You have paid " + IntToString(nNewBalance) + " gold. You now owe nothing to the bank.", TALKVOLUME_TALK);
if (nTotalDays >= 5)
{
SetCampaignInt("kpb_bank", "KPB_CREDIT_AMT", nImprovedCredit, oPC);
}
SetCampaignInt("kpb_bank", "KPB_LOAN_AMT", 0, oPC);
}
if (nTotalDays >= 8 && nTotalDays <= 14 && nGold >= nNewBalanceB)
{
int nNewBalance = (nBalance + (nNewInterest * 2));
TakeGoldFromCreature(nNewBalance, oPC, TRUE);
SpeakString("You have paid " + IntToString(nNewBalance) + " gold. You now owe nothing to the bank.", TALKVOLUME_TALK);
int nNewCredit = nOldCredit - nImprovedCredit;
SetCampaignInt("kpb_bank", "KPB_CREDIT_AMT", nNewCredit, oPC);
SetCampaignInt("kpb_bank", "KPB_LOAN_AMT", 0, oPC);
}
if (nTotalDays >= 15 && nTotalDays <= 21 && nGold >= nNewBalanceC)
{
int nNewBalance = (nBalance + (nNewInterest * 3));
TakeGoldFromCreature(nNewBalance, oPC, TRUE);
SpeakString("You have paid " + IntToString(nNewBalance) + " gold. You now owe nothing to the bank.", TALKVOLUME_TALK);
int nNewCredit = nOldCredit - (nImprovedCredit * 2);
SetCampaignInt("kpb_bank", "KPB_CREDIT_AMT", nNewCredit, oPC);
SetCampaignInt("kpb_bank", "KPB_LOAN_AMT", 0, oPC);
}
if (nTotalDays >= 22 && nTotalDays <= 28 && nGold >= nNewBalanceD)
{
int nNewBalance = (nBalance + (nNewInterest * 4));
TakeGoldFromCreature(nNewBalance, oPC, TRUE);
SpeakString("You have paid " + IntToString(nNewBalance) + " gold. You now owe nothing to the bank.", TALKVOLUME_TALK);
int nNewCredit = nOldCredit - (nImprovedCredit * 3);
SetCampaignInt("kpb_bank", "KPB_CREDIT_AMT", nNewCredit, oPC);
SetCampaignInt("kpb_bank", "KPB_LOAN_AMT", 0, oPC);
}
if (nTotalDays >= 29 && nTotalDays <= 36 && nGold >= nNewBalanceE)
{
int nNewBalance = (nBalance + (nNewInterest * 5));
TakeGoldFromCreature(nNewBalance, oPC, TRUE);
SpeakString("You have paid " + IntToString(nNewBalance) + " gold. You now owe nothing to the bank.", TALKVOLUME_TALK);
int nNewCredit = nOldCredit - (nImprovedCredit * 4);
SetCampaignInt("kpb_bank", "KPB_CREDIT_AMT", nNewCredit, oPC);
SetCampaignInt("kpb_bank", "KPB_LOAN_AMT", 0, oPC);
}
if (nTotalDays > 37 && nGold >= nNewBalanceF)
{
int nNewBalance = (nBalance + (nNewInterest * 8));
TakeGoldFromCreature(nNewBalance, oPC, TRUE);
SpeakString("You have paid " + IntToString(nNewBalance) + " gold. You now owe nothing to the bank.", TALKVOLUME_TALK);
int nNewCredit = nOldCredit - (nImprovedCredit * 6);
SetCampaignInt("kpb_bank", "KPB_CREDIT_AMT", nNewCredit, oPC);
SetCampaignInt("kpb_bank", "KPB_LOAN_AMT", 0, oPC);
}
if (nGold < nNewBalanceA || nGold < nNewBalanceB || nGold < nNewBalanceC || nGold < nNewBalanceD || nGold < nNewBalanceE || nGold < nNewBalanceF)
{
SpeakString("Sorry, you do not have enough gold to pay on this loan.", TALKVOLUME_TALK);
}
}