2025/07/21 Update
Updated PEPS AI. Full compile.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user