2025/07/20 Update
Updated PEPS AI. Full compile.
This commit is contained in:
@@ -814,7 +814,7 @@ json CreateLevelStatList(json jHenchman, object oHenchman, object oPC, int nLeve
|
||||
{
|
||||
jLevelArray = JsonArrayInsert(jLevelArray, jLevel);
|
||||
}
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 813, Adding LvlStatList to " + GetName(oHenchman));
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 813, Creating LvlStatList for " + GetName(oHenchman));
|
||||
return GffAddList(jHenchman, "LvlStatList", jLevelArray);
|
||||
}
|
||||
int CanSelectFeat(json jCreature, object oCreature, int nFeat, int nPosition = 1)
|
||||
@@ -969,6 +969,7 @@ json ResetFeats(json jHenchman, object oHenchman)
|
||||
int nRace = GetRacialType(oHenchman);
|
||||
string sRace2DAName = Get2DAString("racialtypes", "FeatsTable", nRace);
|
||||
// Give racial feats.
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 972, Checking for racial feats.");
|
||||
int nRaceRow, nRaceFeat;
|
||||
int nRaceMaxRow = Get2DARowCount(sRace2DAName);
|
||||
while(nRaceRow < nRaceMaxRow)
|
||||
@@ -978,11 +979,12 @@ json ResetFeats(json jHenchman, object oHenchman)
|
||||
jFeat = GffAddWord(jFeat, "Feat", nRaceFeat);
|
||||
jFeat = JsonObjectSet(jFeat, "__struct_id", JsonInt(1));
|
||||
jFeatList = JsonArrayInsert(jFeatList, jFeat);
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 973, Adding racial feat: " +
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 982, Adding racial feat: " +
|
||||
Get2DAString("feat", "LABEL", nRaceFeat));
|
||||
nRaceRow++;
|
||||
}
|
||||
// Give class feats.
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 972, Checking for class feats.");
|
||||
int nClass = GetClassByPosition(1, oHenchman);
|
||||
string sGranted, sList;
|
||||
string sClsFeat2DAName = Get2DAString("classes", "FeatsTable", nClass);
|
||||
@@ -1000,13 +1002,14 @@ json ResetFeats(json jHenchman, object oHenchman)
|
||||
jFeat = GffAddWord(jFeat, "Feat", nClassFeat);
|
||||
jFeat = JsonObjectSet(jFeat, "__struct_id", JsonInt(1));
|
||||
jFeatList = JsonArrayInsert(jFeatList, jFeat);
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 995, Adding class feat: " +
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 1005, Adding class feat: " +
|
||||
Get2DAString("feat", "LABEL", nClassFeat));
|
||||
}
|
||||
}
|
||||
nClassRow++;
|
||||
}
|
||||
// Give any bonus feats from package.
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 1012, Checking for selectable feats.");
|
||||
int nPackageFeat, nPackageRow;
|
||||
string sBonusFeat2DAName = Get2DAString("classes", "BonusFeatsTable", nClass);
|
||||
int nNumOfFeats = StringToInt(Get2DAString(sBonusFeat2DAName, "Bonus", nLevel));
|
||||
@@ -1044,10 +1047,11 @@ json ResetFeats(json jHenchman, object oHenchman)
|
||||
}
|
||||
}
|
||||
// Give picked feats from package.
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 972, Checking for select feats.");
|
||||
nNumOfFeats = 1;
|
||||
if(GetHasFeat(FEAT_QUICK_TO_MASTER, oHenchman)) nNumOfFeats++;
|
||||
nPackageRow = 0;
|
||||
while(nPackageRow < nPackageMaxRow)
|
||||
while(nPackageRow < nPackageMaxRow || nNumOfFeats > 0)
|
||||
{
|
||||
nClassRow = 0;
|
||||
nPackageFeat = StringToInt(Get2DAString(sPackage2DAName, "FeatIndex", nPackageRow));
|
||||
@@ -1064,6 +1068,7 @@ json ResetFeats(json jHenchman, object oHenchman)
|
||||
if(nNumOfFeats < 1) break;
|
||||
nPackageRow++;
|
||||
}
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 1071, Adding feat list.");
|
||||
jHenchman = GffReplaceList(jHenchman, "FeatList", jFeatList);
|
||||
return jHenchman;
|
||||
}
|
||||
@@ -1079,6 +1084,7 @@ json ResetSkills(json jHenchman, object oHenchman)
|
||||
json jSkillList = JsonArray();
|
||||
json jSkill;
|
||||
// Setup the Skill List.
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 1087, Generating skill list.");
|
||||
int nIndex, nSkillMaxRow = Get2DARowCount("skills");
|
||||
for(nIndex = 0; nIndex < nSkillMaxRow; nIndex++)
|
||||
{
|
||||
@@ -1088,6 +1094,7 @@ json ResetSkills(json jHenchman, object oHenchman)
|
||||
jSkillList = JsonArrayInsert(jSkillList, jSkill);
|
||||
}
|
||||
// Give skill points based on the package.
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 1097, Gets " + IntToString(nSkillPoints) + " skill points.");
|
||||
int nPackageSkill, nPackageRow, nCurrentRanks, bCrossClass, nClassRow, nNewRanks;
|
||||
string sPackage2DAName = Get2DAString("packages", "SkillPref2DA", nClass);
|
||||
int nPackageMaxRow = Get2DARowCount(sPackage2DAName);
|
||||
@@ -1116,8 +1123,9 @@ json ResetSkills(json jHenchman, object oHenchman)
|
||||
{
|
||||
jSkill = GffReplaceByte(jSkill, "Rank", nCurrentRanks + nNewRanks);
|
||||
jSkillList = JsonArraySet(jSkillList, nPackageSkill, jSkill);
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 1110, Adding " + IntToString(nNewRanks) +
|
||||
" ranks to " + Get2DAString("skills", "Label", nPackageSkill));
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 1126, Adding " + IntToString(nNewRanks) +
|
||||
" ranks to " + Get2DAString("skills", "Label", nPackageSkill) +
|
||||
" CrossClass: " + IntToString(bCrossClass));
|
||||
nSkillPoints -= nNewRanks;
|
||||
}
|
||||
nPackageRow++;
|
||||
@@ -1127,7 +1135,9 @@ json ResetSkills(json jHenchman, object oHenchman)
|
||||
}
|
||||
json ResetSpellsKnown(json jClass, object oHenchman)
|
||||
{
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 1138, Checking for spells known.");
|
||||
int nClass = GetClassByPosition(1, oHenchman);
|
||||
WriteTimestampedLogEntry("pinc_henchmen, 1140, SpellCaster: " + Get2DAString("classes", "SpellCaster", nClass));
|
||||
if(Get2DAString("classes", "SpellCaster", nClass) == "0") return jClass;
|
||||
int nLevel = 0;
|
||||
// We remake the Known spell list if the character doesn't have a level list!
|
||||
|
Reference in New Issue
Block a user