2025/07/21 Update

Updated PEPS AI.
Full compile.
This commit is contained in:
Jaysyn904
2025-07-21 09:41:55 -04:00
parent 0e9e2c6950
commit ca8d5eba41
282 changed files with 920 additions and 646 deletions

View File

@@ -1311,7 +1311,8 @@ void main()
jWidget = JsonArray();
if(JsonGetLength(jSpells) == 2) jSpells = JsonArrayInsert(jSpells, JsonArray());
}
if(JsonGetLength(jWidget) < 20)
int nWidgetLength = JsonGetLength(jWidget);
if(nWidgetLength < 20)
{
json jData = NuiGetUserData(oPC, nToken);
json jQuickListArray = JsonArrayGet(jData, 1);
@@ -1320,8 +1321,7 @@ void main()
jSpells = JsonArraySet(jSpells, 2, jWidget);
jAIData = JsonArraySet(jAIData, 10, jSpells);
ai_SetAssociateDbJson(oPC, sAssociateType, "aidata", jAIData);
DelayCommand(0.0, NuiDestroy(oPC, nToken));
DelayCommand(0.1, ai_CreateQuickWidgetSelectionNUI(oPC, oAssociate));
ai_PopulateWidgetList(oPC, oAssociate, nToken, jWidget);
}
else ai_SendMessages("The quick widget can only have 20 abilities or spells!", AI_COLOR_RED, oPC);
}
@@ -1331,7 +1331,7 @@ void main()
json jSpell = JsonArrayGet(jQuickListArray, nIndex);
ai_CreateDescriptionNUI(oPC, jSpell);
}
else if(GetStringLeft(sElem, 11) == "btn_widget_")
else if(GetStringLeft(sElem, 11) == "btn_widget_") // Removes ability from quick use widget
{
string sIndex;
if(GetStringLength(sElem) == 13) sIndex = GetStringRight(sElem, 2);
@@ -1343,8 +1343,7 @@ void main()
jSpells = JsonArraySet(jSpells, 2, jWidget);
jAIData = JsonArraySet(jAIData, 10, jSpells);
ai_SetAssociateDbJson(oPC, sAssociateType, "aidata", jAIData);
DelayCommand(0.0, NuiDestroy(oPC, nToken));
DelayCommand(0.1, ai_CreateQuickWidgetSelectionNUI(oPC, oAssociate));
ai_PopulateWidgetList(oPC, oAssociate, nToken, jWidget);
}
}
else if(sEvent == "close")
@@ -1393,23 +1392,22 @@ void main()
int nClass = GetClassByPosition(JsonGetInt(JsonArrayGet(jSpells, 0)), oAssociate);
int nLevel = JsonGetInt(JsonArrayGet(jSpells, 1));
json jSpellArray = JsonArrayGet(jData, 1);
int nSpell = JsonGetInt(JsonArrayGet(jSpellArray, nIndex));
string sClass = GetStringByStrRef(StringToInt(Get2DAString("classes", "Name", nClass)));
string sName = GetStringByStrRef(StringToInt(Get2DAString("spells", "Name", nSpell)));
string sSpellIcon = Get2DAString("spells", "IconResRef", nSpell);
int nSlot;
int nMaxMemorizationSlot = GetMemorizedSpellCountByLevel(oAssociate, nClass, nLevel);
int nSlot, nSpell;
string sSlot;
while(nSlot < nMaxMemorizationSlot)
{
if(GetMemorizedSpellId(oAssociate, nClass, nLevel, nSlot) == -1)
{
nSpell = JsonGetInt(JsonArrayGet(jSpellArray, nIndex));
SetMemorizedSpell(oAssociate, nClass, nLevel, nSlot, nSpell, FALSE);
//NuiDestroy(oPC, nToken);
//ai_CreateSpellMemorizationNUI(oPC, oAssociate);
string sClass = GetStringByStrRef(StringToInt(Get2DAString("classes", "Name", nClass)));
string sName = GetStringByStrRef(StringToInt(Get2DAString("spells", "Name", nSpell)));
string sSpellIcon = Get2DAString("spells", "IconResRef", nSpell);
string sIndex = IntToString(nSlot);
NuiSetBind(oPC, nToken, "btn_memorized_" + sIndex + "_event", JsonBool(TRUE));
NuiSetBind(oPC, nToken, "btn_memorized_" + sIndex + "_image", JsonString(sSpellIcon));
NuiSetBind(oPC, nToken, "btn_memorized_" + sIndex + "_tooltip", JsonString(" " + sName + " (" + sClass + " / " + IntToString(nLevel) + ")"));
sSlot = IntToString(nSlot);
NuiSetBind(oPC, nToken, "btn_memorized_" + sSlot + "_event", JsonBool(TRUE));
NuiSetBind(oPC, nToken, "btn_memorized_" + sSlot + "_image", JsonString(sSpellIcon));
NuiSetBind(oPC, nToken, "btn_memorized_" + sSlot + "_tooltip", JsonString(" " + sName + " (" + sClass + " / " + IntToString(nLevel) + ")"));
return;
}
nSlot++;
@@ -1422,19 +1420,17 @@ void main()
int nSpell = JsonGetInt(JsonArrayGet(jSpellArray, nIndex));
ai_CreateDescriptionNUI(oPC, JsonArray(), nSpell);
}
else if(GetStringLeft(sElem, 14) == "btn_memorized_")
else if(GetStringLeft(sElem, 14) == "btn_memorized_") // Remove memorized spell.
{
json jAIData = ai_GetAssociateDbJson(oPC, sAssociateType, "aidata");
json jSpells = JsonArrayGet(jAIData, 10);
int nClass = GetClassByPosition(JsonGetInt(JsonArrayGet(jSpells, 0)), oAssociate);
int nLevel = JsonGetInt(JsonArrayGet(jSpells, 1));
string sIndex = GetStringRight(sElem, 1);
ClearMemorizedSpell(oAssociate, nClass, nLevel, StringToInt(sIndex));
NuiSetBind(oPC, nToken, "btn_memorized_" + sIndex + "_image", JsonString("ctl_cg_btn_splvl"));
NuiSetBind(oPC, nToken, "btn_memorized_" + sIndex + "_tooltip", JsonString(""));
NuiSetBind(oPC, nToken, "btn_memorized_" + sIndex + "_event", JsonBool(FALSE));
//NuiDestroy(oPC, nToken);
//ai_CreateSpellMemorizationNUI(oPC, oAssociate);
string sSlot = GetStringRight(sElem, 1);
ClearMemorizedSpell(oAssociate, nClass, nLevel, StringToInt(sSlot));
NuiSetBind(oPC, nToken, "btn_memorized_" + sSlot + "_image", JsonString("ctl_cg_btn_splvl"));
NuiSetBind(oPC, nToken, "btn_memorized_" + sSlot + "_tooltip", JsonString(""));
NuiSetBind(oPC, nToken, "btn_memorized_" + sSlot + "_event", JsonBool(FALSE));
}
}
else if(sEvent == "close")
@@ -1500,6 +1496,7 @@ void main()
jKnownList = JsonArray();
}
int nMaxKnownSlots, nSlot;
string sClass, sName, sSpellIcon, sSlot;
string sSpellKnownTable = Get2DAString("classes", "SpellKnownTable", nClass);
if(sSpellKnownTable != "") nMaxKnownSlots = StringToInt(Get2DAString(sSpellKnownTable, "SpellLevel" + sLevel, GetLevelByClass(nClass, oAssociate) - 1));
else nMaxKnownSlots = 20;
@@ -1511,13 +1508,13 @@ void main()
jSpell = GffAddWord(JsonObject(), "Spell", nSpell);
jSpell = JsonObjectSet(jSpell, "__struct_id", JsonInt(3));
jKnownList = JsonArrayInsert(jKnownList, jSpell);
string sClass = GetStringByStrRef(StringToInt(Get2DAString("classes", "Name", nClass)));
string sName = GetStringByStrRef(StringToInt(Get2DAString("spells", "Name", nSpell)));
string sSpellIcon = Get2DAString("spells", "IconResRef", nSpell);
string sIndex = IntToString(nSlot);
NuiSetBind(oPC, nToken, "btn_known_" + sIndex + "_event", JsonBool(TRUE));
NuiSetBind(oPC, nToken, "btn_known_" + sIndex + "_image", JsonString(sSpellIcon));
NuiSetBind(oPC, nToken, "btn_known_" + sIndex + "_tooltip", JsonString(" " + sName + " (" + sClass + " / " + sLevel + ")"));
sClass = GetStringByStrRef(StringToInt(Get2DAString("classes", "Name", nClass)));
sName = GetStringByStrRef(StringToInt(Get2DAString("spells", "Name", nSpell)));
sSpellIcon = Get2DAString("spells", "IconResRef", nSpell);
sSlot = IntToString(nSlot);
NuiSetBind(oPC, nToken, "btn_known_" + sSlot + "_event", JsonBool(TRUE));
NuiSetBind(oPC, nToken, "btn_known_" + sSlot + "_image", JsonString(sSpellIcon));
NuiSetBind(oPC, nToken, "btn_known_" + sSlot + "_tooltip", JsonString(" " + sName + " (" + sClass + " / " + sLevel + ")"));
SetLocalInt(oAssociate, "AI_KNOWN_SPELL_CHANGE", TRUE);
break;
}