#include "0i_menus" // Does startup check if the game has just been loaded. int StartingUp(object oPC); void ai_UpdateAssociateWidget(object oMaster, object oAssociate, int nUIToken) { if(nUIToken) NuiDestroy(oMaster, nUIToken); ai_CreateWidgetNUI(oMaster, oAssociate); if(oMaster != oAssociate) { nUIToken = NuiFindWindow(oMaster, "pc" + AI_WIDGET_NUI); if(nUIToken) { NuiDestroy(oMaster, nUIToken); ai_CreateWidgetNUI(oMaster, oMaster); } } } void main() { object oPC = OBJECT_SELF; if(StartingUp(oPC)) return; ForceRest(oPC); DeleteLocalInt(oPC, "HF_REST_LAST_TIME"); int nIndex; int nMaxHenchman = GetMaxHenchmen(); object oAssociate; for(nIndex = 1;nIndex <= nMaxHenchman; nIndex++) { oAssociate = GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oPC, nIndex); ForceRest(oAssociate); DeleteLocalInt(oAssociate, "HF_REST_LAST_TIME"); if(ai_GetMagicMode(oAssociate, AI_MAGIC_BUFF_AFTER_REST)) { DelayCommand(1.0, ai_HenchmanCastDefensiveSpells(oAssociate, oPC)); } if(AI_HENCHMAN_WIDGET) { // Update widget for spell widget. string sAssociateType = ai_GetAssociateType(oPC, oAssociate); int nUIToken = NuiFindWindow(oPC, sAssociateType + AI_WIDGET_NUI); if(nUIToken) DelayCommand(6.0, ai_UpdateAssociateWidget(oPC, oAssociate, nUIToken)); else { if(!ai_GetWidgetButton(oPC, BTN_WIDGET_OFF, oAssociate, sAssociateType)) { DelayCommand(6.0, ai_UpdateAssociateWidget(oPC, oAssociate, 0)); } } } } } int StartingUp(object oPC) { if(GetLocalInt(oPC, AI_ADD_PLUGIN)) { json jPlugin = JsonArray(); jPlugin = JsonArrayInsert(jPlugin, JsonString("pi_forcerest")); jPlugin = JsonArrayInsert(jPlugin, JsonInt(FALSE)); jPlugin = JsonArrayInsert(jPlugin, JsonString("Force Rest")); jPlugin = JsonArrayInsert(jPlugin, JsonString("ir_rest")); json jPlugins = GetLocalJson(oPC, AI_JSON_PLUGINS); jPlugins = JsonArrayInsert(jPlugins, jPlugin); SetLocalJson(oPC, AI_JSON_PLUGINS, jPlugin); SetLocalInt(oPC, AI_PLUGIN_SET, TRUE); return TRUE; } if(!GetLocalInt(oPC, AI_STARTING_UP)) return FALSE; return TRUE; }