Further file organization
Further file organization
This commit is contained in:
72
nwn/nwnprc/trunk/scripts/prc_setalign.nss
Normal file
72
nwn/nwnprc/trunk/scripts/prc_setalign.nss
Normal file
@@ -0,0 +1,72 @@
|
||||
// This script adjusts the PC's alignment.
|
||||
// Called from debug console only.
|
||||
|
||||
#include "inc_utility"
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = OBJECT_SELF;
|
||||
|
||||
int nOldLawChaos = GetLawChaosValue(oPC); // (100=law, 0=chaos)
|
||||
int nOldGoodEvil = GetGoodEvilValue(oPC); // (100=law, 0=chaos)
|
||||
DoDebug("Old alignment: " + IntToString(nOldLawChaos) + " / " + IntToString(nOldGoodEvil));
|
||||
|
||||
int nNewLawChaos = nOldLawChaos;
|
||||
int nNewGoodEvil = nOldGoodEvil;
|
||||
|
||||
string sNewAlign = GetStringUpperCase(GetLocalString(oPC, "prc_setalign"));
|
||||
DeleteLocalString(oPC, "prc_setalign");
|
||||
string sNewLawChaos = GetLocalString(oPC, "prc_setalign_lc");
|
||||
DeleteLocalString(oPC, "prc_setalign_lc");
|
||||
string sNewGoodEvil = GetLocalString(oPC, "prc_setalign_ge");
|
||||
DeleteLocalString(oPC, "prc_setalign_ge");
|
||||
|
||||
if (GetStringLength(sNewAlign) == 2)
|
||||
{
|
||||
string sAlign = GetSubString(sNewAlign, 0, 1);
|
||||
if (sAlign == "L")
|
||||
nNewLawChaos = 85;
|
||||
else if (sAlign == "N")
|
||||
nNewLawChaos = 50;
|
||||
else if (sAlign == "C")
|
||||
nNewLawChaos = 15;
|
||||
|
||||
sAlign = GetSubString(sNewAlign, 1, 1);
|
||||
if (sAlign == "G")
|
||||
nNewGoodEvil = 85;
|
||||
else if (sAlign == "N")
|
||||
nNewGoodEvil = 50;
|
||||
else if (sAlign == "E")
|
||||
nNewGoodEvil = 15;
|
||||
}
|
||||
|
||||
if (sNewLawChaos != "")
|
||||
{
|
||||
nNewLawChaos = StringToInt(sNewLawChaos);
|
||||
if (nNewLawChaos > 100)
|
||||
nNewLawChaos = 100;
|
||||
else if (nNewLawChaos < 0)
|
||||
nNewLawChaos = 0;
|
||||
}
|
||||
|
||||
if (sNewGoodEvil != "")
|
||||
{
|
||||
nNewGoodEvil = StringToInt(sNewGoodEvil);
|
||||
if (nNewGoodEvil > 100)
|
||||
nNewGoodEvil = 100;
|
||||
else if (nNewGoodEvil < 0)
|
||||
nNewGoodEvil = 0;
|
||||
}
|
||||
|
||||
if (nNewLawChaos > nOldLawChaos)
|
||||
AdjustAlignment(oPC, ALIGNMENT_LAWFUL, nNewLawChaos - nOldLawChaos, FALSE);
|
||||
else
|
||||
AdjustAlignment(oPC, ALIGNMENT_CHAOTIC, nOldLawChaos - nNewLawChaos, FALSE);
|
||||
|
||||
if (nNewGoodEvil > nOldGoodEvil)
|
||||
AdjustAlignment(oPC, ALIGNMENT_GOOD, nNewGoodEvil - nOldGoodEvil, FALSE);
|
||||
else
|
||||
AdjustAlignment(oPC, ALIGNMENT_EVIL, nOldGoodEvil - nNewGoodEvil, FALSE);
|
||||
|
||||
DoDebug("New alignment: " + IntToString(nNewLawChaos) + " / " + IntToString(nNewGoodEvil));
|
||||
}
|
Reference in New Issue
Block a user