Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
73 lines
2.3 KiB
Plaintext
73 lines
2.3 KiB
Plaintext
// 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));
|
|
}
|