1387 lines
		
	
	
		
			84 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1387 lines
		
	
	
		
			84 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*//////////////////////////////////////////////////////////////////////////////
 | |
| // Script Name: 0i_menus_dm
 | |
| ////////////////////////////////////////////////////////////////////////////////
 | |
|  Include script for handling NUI menus for DMs.
 | |
| *///////////////////////////////////////////////////////////////////////////////
 | |
| #include "0i_nui"
 | |
| #include "0i_associates"
 | |
| string ai_GetRandomDMTip()
 | |
| {
 | |
|     int nRoll = Random(44);
 | |
|     return Get2DAString("ai_messages", "Text", nRoll);
 | |
| }
 | |
| void ai_SetDMWidgetButton(object oPlayer, int nButton, int bOn = TRUE)
 | |
| {
 | |
|     int nWidgetButtons = GetLocalInt(oPlayer, sDMWidgetButtonVarname);
 | |
|     string sName = ai_RemoveIllegalCharacters(GetName(oPlayer));
 | |
|     json jButtons = ai_GetCampaignDbJson("buttons", sName, AI_DM_TABLE);
 | |
|     if(nWidgetButtons == 0) nWidgetButtons = JsonGetInt(JsonArrayGet(jButtons, 0));
 | |
|     if(bOn) nWidgetButtons = nWidgetButtons | nButton;
 | |
|     else nWidgetButtons = nWidgetButtons & ~nButton;
 | |
|     SetLocalInt(oPlayer, sDMWidgetButtonVarname, nWidgetButtons);
 | |
|     jButtons = JsonArraySet(jButtons, 0, JsonInt(nWidgetButtons));
 | |
|     ai_SetCampaignDbJson("buttons", jButtons, sName, AI_DM_TABLE);
 | |
| }
 | |
| int ai_GetDMWidgetButton(object oPlayer, int nButton)
 | |
| {
 | |
|     int nWidgetButtons = GetLocalInt(oPlayer, sDMWidgetButtonVarname);
 | |
|     if(nWidgetButtons == 0)
 | |
|     {
 | |
|         string sName = ai_RemoveIllegalCharacters(GetName(oPlayer));
 | |
|         json jButtons = ai_GetCampaignDbJson("buttons", sName, AI_DM_TABLE);
 | |
|         nWidgetButtons = JsonGetInt(JsonArrayGet(jButtons, 0));
 | |
|     }
 | |
|     return nWidgetButtons & nButton;
 | |
| }
 | |
| void ai_CreateDMWidgetNUI(object oPC)
 | |
| {
 | |
|     // Set window to not save until it has been created.
 | |
|     SetLocalInt(oPC, AI_NO_NUI_SAVE, TRUE);
 | |
|     DelayCommand(0.5f, DeleteLocalInt (oPC, AI_NO_NUI_SAVE));
 | |
|     int bAIWidgetLock = ai_GetDMWidgetButton(oPC, BTN_DM_WIDGET_LOCK);
 | |
|     int bCmdGroup1 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP1);
 | |
|     int bCmdGroup2 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP2);
 | |
|     int bCmdGroup3 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP3);
 | |
|     int bCmdGroup4 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP4);
 | |
|     int bCmdGroup5 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP5);
 | |
|     int bCmdGroup6 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP6);
 | |
|     int bCmdCamera = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_CAMERA);
 | |
|     int bCmdInventory = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_INVENTORY);
 | |
|     // Get which buttons are activated.
 | |
|     float fHeight = 92.0f;
 | |
|     if(bAIWidgetLock) fHeight = 59.0f;
 | |
|     float fButtons, fWidth = 86.0f;
 | |
|     // ************************************************************************* Width / Height
 | |
|     // Row 1 (buttons)**********************************************************
 | |
|     // Setup the main associate button to use their portrait.
 | |
|     json jButton = NuiEnabled(NuiId (NuiButtonImage(NuiBind("btn_open_main_image")), "btn_open_main"), NuiBind("btn_open_main_event"));
 | |
|     jButton = NuiWidth(jButton, 35.0);
 | |
|     jButton = NuiHeight(jButton, 35.0);
 | |
|     jButton = NuiMargin(jButton, 0.0);
 | |
|     jButton = NuiTooltip(jButton, NuiBind ("btn_open_main_tooltip"));
 | |
|     jButton = NuiImageRegion(jButton, NuiRect(0.0, 0.0, 32.0, 35.0));
 | |
|     json jRow = JsonArrayInsert(JsonArray(), jButton);
 | |
|     if(bCmdGroup1)
 | |
|     {
 | |
|         jRow = CreateButtonImage(jRow, "ir_level1", "btn_cmd_group1", 35.0f, 35.0f, 0.0, "btn_cmd_group1_tooltip");
 | |
|         fButtons += 1.0;
 | |
|     }
 | |
|     if(bCmdGroup2)
 | |
|     {
 | |
|         jRow = CreateButtonImage(jRow, "ir_level2", "btn_cmd_group2", 35.0f, 35.0f, 0.0, "btn_cmd_group2_tooltip");
 | |
|         fButtons += 1.0;
 | |
|     }
 | |
|     if(bCmdGroup3)
 | |
|     {
 | |
|         jRow = CreateButtonImage(jRow, "ir_level3", "btn_cmd_group3", 35.0f, 35.0f, 0.0, "btn_cmd_group3_tooltip");
 | |
|         fButtons += 1.0;
 | |
|     }
 | |
|     if(bCmdGroup4)
 | |
|     {
 | |
|         jRow = CreateButtonImage(jRow, "ir_level4", "btn_cmd_group4", 35.0f, 35.0f, 0.0, "btn_cmd_group4_tooltip");
 | |
|         fButtons += 1.0;
 | |
|     }
 | |
|     if(bCmdGroup5)
 | |
|     {
 | |
|         jRow = CreateButtonImage(jRow, "ir_level5", "btn_cmd_group5", 35.0f, 35.0f, 0.0, "btn_cmd_group5_tooltip");
 | |
|         fButtons += 1.0;
 | |
|     }
 | |
|     if(bCmdGroup6)
 | |
|     {
 | |
|         jRow = CreateButtonImage(jRow, "ir_level6", "btn_cmd_group6", 35.0f, 35.0f, 0.0, "btn_cmd_group6_tooltip");
 | |
|         fButtons += 1.0;
 | |
|     }
 | |
|     if(bCmdCamera)
 | |
|     {
 | |
|         jRow = CreateButtonImage(jRow, "ir_examine", "btn_camera", 35.0f, 35.0f, 0.0, "btn_camera_tooltip");
 | |
|         fButtons += 1.0;
 | |
|     }
 | |
|     if(bCmdInventory)
 | |
|     {
 | |
|         jRow = CreateButtonImage(jRow, "ir_pickup", "btn_inventory", 35.0f, 35.0f, 0.0, "btn_inventory_tooltip");
 | |
|         fButtons += 1.0;
 | |
|     }
 | |
|     // Plug in buttons *********************************************************
 | |
|     int nIndex, bWidget;
 | |
|     string sButton, sIcon;
 | |
|     json jPlugins = ai_UpdatePluginsForDM(oPC);
 | |
|     json jPlugin = JsonArrayGet(jPlugins, nIndex);
 | |
|     while(JsonGetType(jPlugin) != JSON_TYPE_NULL)
 | |
|     {
 | |
|         bWidget = JsonGetInt(JsonArrayGet(jPlugin, 1));
 | |
|         if(bWidget)
 | |
|         {
 | |
|             sIcon = JsonGetString(JsonArrayGet(jPlugin, 3));
 | |
|             sButton = IntToString(nIndex);
 | |
|             jRow = CreateButtonImage(jRow, sIcon, "btn_exe_plugin_" + sButton, 35.0f, 35.0f, 0.0, "btn_exe_plugin_" + sButton + "_tooltip");
 | |
|             fButtons += 1.0;
 | |
|         }
 | |
|         jPlugin = JsonArrayGet(jPlugins, ++nIndex);
 | |
|     }
 | |
|     if(fButtons > 1.0f) fWidth = fWidth + ((fButtons - 1.0) * 39.0f);
 | |
|     // Add the row to the column.
 | |
|     json jCol = JsonArrayInsert(JsonArray(), NuiRow(jRow));
 | |
|     // Get the window location to restore it from the database.
 | |
|     string sName = ai_RemoveIllegalCharacters(GetName(oPC));
 | |
|     json jLocations = ai_GetCampaignDbJson("locations", sName, AI_DM_TABLE);
 | |
|     jLocations = JsonObjectGet(jLocations, "dm" + AI_WIDGET_NUI);
 | |
|     float fX = JsonGetFloat(JsonObjectGet(jLocations, "x"));
 | |
|     float fY = JsonGetFloat(JsonObjectGet(jLocations, "y"));
 | |
|     if(bAIWidgetLock)
 | |
|     {
 | |
|         fX = fX + 4.0f;
 | |
|         fY = fY + 37.0f;
 | |
|     }
 | |
|     // Set the layout of the window.
 | |
|     json jLayout = NuiCol(jCol);
 | |
|     int nToken;
 | |
|     string sHeal, sText, sRange;
 | |
|     string sDisplayName = GetName(oPC);
 | |
|     if(GetStringRight(sDisplayName, 1) == "s") sDisplayName = sDisplayName + "'";
 | |
|     else sDisplayName = sDisplayName + "'s";
 | |
|     if(bAIWidgetLock) nToken = SetWindow(oPC, jLayout, "dm" + AI_WIDGET_NUI, sDisplayName + " Widget", fX, fY, fWidth + 8.0f, fHeight, FALSE, FALSE, FALSE, TRUE, FALSE, "0e_nui_dm");
 | |
|     else nToken = SetWindow(oPC, jLayout, "dm" + AI_WIDGET_NUI, sDisplayName + " Widget", fX, fY, fWidth + 12.0f, fHeight, FALSE, FALSE, FALSE, TRUE, TRUE, "0e_nui_dm");
 | |
|     // Set event watches for window inspector and save window location.
 | |
|     NuiSetBindWatch(oPC, nToken, "window_geometry", TRUE);
 | |
|     // Set the buttons to show events.
 | |
|     NuiSetBind(oPC, nToken, "btn_open_main_image", JsonString(GetPortraitResRef(oPC) + "s"));
 | |
|     NuiSetBind(oPC, nToken, "btn_open_main_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_open_main_tooltip", JsonString("  " + sDisplayName + " widget menu"));
 | |
|     string sUUID, sText2, sSpeed;
 | |
|     string sAction = " (Left Action/Right Add)";
 | |
|     if(bCmdGroup1)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group1_event", JsonBool(TRUE));
 | |
|         json jGroup = GetLocalJson(oPC, "DM_GROUP1");
 | |
|         if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|         else sSpeed = " [Run]";
 | |
|         string sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|         if(sUUID == "") { sText = "Group 1"; sText2 = sAction; }
 | |
|         else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sSpeed; }
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group1_tooltip", JsonString("  " + sText + sText2));
 | |
|     }
 | |
|     if(bCmdGroup2)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group2_event", JsonBool(TRUE));
 | |
|         json jGroup = GetLocalJson(oPC, "DM_GROUP2");
 | |
|         if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|         else sSpeed = " [Run]";
 | |
|         string sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|         if(sUUID == "") { sText = "Group 2"; sText2 = sAction; }
 | |
|         else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sSpeed; }
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group2_tooltip", JsonString("  " + sText + sText2));
 | |
|     }
 | |
|     if(bCmdGroup3)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group3_event", JsonBool(TRUE));
 | |
|         json jGroup = GetLocalJson(oPC, "DM_GROUP3");
 | |
|         if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|         else sSpeed = " [Run]";
 | |
|         string sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|         if(sUUID == "") { sText = "Group 3"; sText2 = sAction; }
 | |
|         else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sSpeed; }
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group3_tooltip", JsonString("  " + sText + sText2));
 | |
|     }
 | |
|     if(bCmdGroup4)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group4_event", JsonBool(TRUE));
 | |
|         json jGroup = GetLocalJson(oPC, "DM_GROUP4");
 | |
|         if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|         else sSpeed = " [Run]";
 | |
|         string sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|         if(sUUID == "") { sText = "Group 4"; sText2 = sAction; }
 | |
|         else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sSpeed; }
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group4_tooltip", JsonString("  " + sText + sText2));
 | |
|     }
 | |
|     if(bCmdGroup5)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group5_event", JsonBool(TRUE));
 | |
|         json jGroup = GetLocalJson(oPC, "DM_GROUP5");
 | |
|         if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|         else sSpeed = " [Run]";
 | |
|         string sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|         if(sUUID == "") { sText = "Group 5"; sText2 = sAction; }
 | |
|         else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sSpeed; }
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group5_tooltip", JsonString("  " + sText + sText2));
 | |
|     }
 | |
|     if(bCmdGroup6)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group6_event", JsonBool(TRUE));
 | |
|         json jGroup = GetLocalJson(oPC, "DM_GROUP6");
 | |
|         if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|         else sSpeed = " [Run]";
 | |
|         string sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|         if(sUUID == "") { sText = "Group 6"; sText2 = sAction; }
 | |
|         else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sSpeed; }
 | |
|         NuiSetBind(oPC, nToken, "btn_cmd_group6_tooltip", JsonString("  " + sText + sText2));
 | |
|     }
 | |
|     if(bCmdCamera)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "btn_camera_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "btn_camera_tooltip", JsonString("  Select new object to have the camera view."));
 | |
|     }
 | |
|     if(bCmdInventory)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "btn_inventory_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "btn_inventory_tooltip", JsonString("  Open selected creatures inventory."));
 | |
|     }
 | |
|     /*if(bSearch)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "btn_search_event", JsonBool(TRUE));
 | |
|         if(ai_GetAIMode(oAssociate, AI_MODE_AGGRESSIVE_SEARCH)) sText = "  Search On";
 | |
|         else sText = "  Search Off";
 | |
|         NuiSetBind(oPC, nToken, "btn_search_tooltip", JsonString(sText));
 | |
|     }
 | |
|     if(bStealth)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "btn_stealth_event", JsonBool(TRUE));
 | |
|         if(ai_GetAIMode(oAssociate, AI_MODE_AGGRESSIVE_STEALTH)) sText = "  Stealth On";
 | |
|         else sText = "  Stealth Off";
 | |
|         NuiSetBind(oPC, nToken, "btn_stealth_tooltip", JsonString(sText));
 | |
|     } */
 | |
|     nIndex = 0;
 | |
|     string sScript;
 | |
|     jPlugin = JsonArrayGet(jPlugins, nIndex);
 | |
|     while(JsonGetType(jPlugin) != JSON_TYPE_NULL)
 | |
|     {
 | |
|         bWidget = JsonGetInt(JsonArrayGet(jPlugin, 1));
 | |
|         if(bWidget)
 | |
|         {
 | |
|             sButton = IntToString(nIndex);
 | |
|             sScript = JsonGetString(JsonArrayGet(jPlugin, 0));
 | |
|             if(ResManGetAliasFor(sScript, RESTYPE_NCS) == "")
 | |
|             {
 | |
|                 sText = "  " + sScript + " not found by ResMan!";
 | |
|             }
 | |
|             else sName = "  " + JsonGetString(JsonArrayGet(jPlugin, 2));
 | |
|             NuiSetBind(oPC, nToken, "btn_exe_plugin_" + sButton + "_event", JsonBool (TRUE));
 | |
|             NuiSetBind(oPC, nToken, "btn_exe_plugin_" + sButton + "_tooltip", JsonString(sName));
 | |
|         }
 | |
|         jPlugin = JsonArrayGet(jPlugins, ++nIndex);
 | |
|     }
 | |
| }
 | |
| void ai_CreateDMOptionsNUI(object oPC)
 | |
| {
 | |
|     // Set window to not save until it has been created.
 | |
|     SetLocalInt (oPC, AI_NO_NUI_SAVE, TRUE);
 | |
|     DelayCommand (2.0, DeleteLocalInt (oPC, AI_NO_NUI_SAVE));
 | |
|     int nMonsterAI = (ResManGetAliasFor("ai_default", RESTYPE_NCS) != "");
 | |
|     int nAssociateAI = (ResManGetAliasFor("ai_a_default", RESTYPE_NCS) != "");
 | |
|     string sText = " [Single player]";
 | |
|     if(AI_SERVER) sText = " [Server]";
 | |
|     // ************************************************************************* Width / Height
 | |
|     // Row 1 ******************************************************************* 500 / 73
 | |
|     json jRow = JsonArrayInsert(JsonArray(), NuiSpacer());
 | |
|     jRow = CreateLabel(jRow, PHILOS_VERSION  + sText, "lbl_version ", 510.0f, 20.0f, NUI_HALIGN_CENTER);
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     // Add row to the column.
 | |
|     json jCol = JsonArrayInsert(JsonArray(), NuiRow(jRow));
 | |
|     // Row 2 ******************************************************************* 500 / 101
 | |
|     jRow = CreateLabel(JsonArray(), "", "lbl_ai_info", 510.0f, 20.0f, NUI_HALIGN_CENTER);
 | |
|     // Add row to the column.
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Row 3 ******************************************************************* 500 / 129
 | |
|     jRow = CreateButton(JsonArray(), "Plugin Manager", "btn_plugin_manager", 160.0f, 20.0f, -1.0, "btn_plugin_manager_tooltip");
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "Widget Manager", "btn_widget_manager", 160.0f, 20.0f, -1.0, "btn_widget_manager_tooltip");
 | |
|     // Add row to the column.
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Row 4 ******************************************************************* 500 / 157
 | |
|     jRow = JsonArrayInsert(JsonArray(), NuiSpacer());
 | |
|     jRow = CreateLabel(jRow, "SERVER RULES", "lbl_ai_rules", 100.0f, 20.0f, NUI_HALIGN_CENTER);
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     // Add row to the column.
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     float fHeight = 112.0;
 | |
|     // Row 5 ******************************************************************* 500 / --- (28)
 | |
|     // Make the AI options a Group.
 | |
|     json jGroupRow = CreateTextEditBox(JsonArray(), "sPlaceHolder", "txt_max_henchman", 2, FALSE, 30.0f, 20.0f, "txt_max_henchman_tooltip");
 | |
|     jGroupRow = CreateLabel(jGroupRow, "Max number of henchmen that is allowed in your party.", "lbl_max_hench", 416.0f, 20.0f, NUI_HALIGN_LEFT, 0, -1.0, "txt_max_henchman_tooltip");
 | |
|     json jGroupCol = JsonArrayInsert(JsonArray(), NuiRow(jGroupRow));
 | |
|     jGroupRow = CreateTextEditBox(JsonArray(), "sPlaceHolder", "txt_xp_scale", 3, FALSE, 40.0f, 20.0f, "txt_xp_scale_tooltip");
 | |
|     jGroupRow = CreateLabel(jGroupRow, "Modules experience scale.", "lbl_xp_scale", 175.0f, 20.0f, NUI_HALIGN_LEFT, 0, -1.0, "txt_xp_scale_tooltip");
 | |
|     jGroupRow = CreateCheckBox(jGroupRow, " scale to party.", "chbx_party_scale", 130.0, 20.0, "chbx_party_scale_tooltip");
 | |
|     jGroupRow = CreateButton(jGroupRow, "Default", "btn_default_xp", 70.0f, 20.0f, -1.0, "btn_default_xp_tooltip");
 | |
|     jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|     fHeight += 112.0;
 | |
|     if(nMonsterAI || nAssociateAI)
 | |
|     {
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Creatures will use advanced combat movement.", "chbx_advanced_movement", 450.0, 20.0);
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Use item level restrictions for creatures [Default is off].", "chbx_ilr", 450.0, 20.0);
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Creatures can use the skill Use Magic Device.", "chbx_umd", 450.0, 20.0);
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Creatures can use Healing kits.", "chbx_use_healingkits", 450.0, 20.0);
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Moral checks, wounded creatures may flee during combat.", "chbx_moral", 450.0, 20.0);
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateLabel(JsonArray(), " Spells the AI will not use:", "lbl_restrict_spells", 190.0, 20.0, NUI_HALIGN_LEFT);
 | |
|         jGroupRow = CreateCheckBox(jGroupRow, " Darkness", "chbx_darkness", 90.0, 20.0, "chbx_darkness_tooltip");
 | |
|         jGroupRow = CreateCheckBox(jGroupRow, " Dispels", "chbx_dispels", 90.0, 20.0, "chbx_dispels_tooltip");
 | |
|         jGroupRow = CreateCheckBox(jGroupRow, " Time Stop", "chbx_timestop", 90.0, 20.0, "chbx_timestop_tooltip");
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         fHeight += 168.0;
 | |
|     }
 | |
|     if(nMonsterAI)
 | |
|     {
 | |
|         jGroupRow = CreateTextEditBox(JsonArray(), "sPlaceHolder", "txt_ai_difficulty", 3, FALSE, 40.0f, 20.0f, "txt_ai_difficulty_tooltip");
 | |
|         jGroupRow = CreateLabel(jGroupRow, "% chance monsters will attack the weakest target.", "lbl_ai_difficulty", 406.0f, 20.0f, NUI_HALIGN_LEFT, 0, -1.0, "txt_ai_difficulty_tooltip");
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateTextEditBox(JsonArray(), "sPlaceHolder", "txt_perception_distance", 2, FALSE, 35.0f, 20.0f, "txt_perception_distance_tooltip");
 | |
|         jGroupRow = CreateLabel(jGroupRow, "meters is the distance a monster can respond to allies.", "lbl_perception_distance", 411.0f, 20.0f, NUI_HALIGN_LEFT, 0, 0.0, "txt_perception_distance_tooltip");
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Monsters can prebuff before combat starts.", "chbx_buff_monsters", 450.0, 20.0);
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Monsters can use summons before combat starts.", "chbx_buff_summons", 450.0, 20.0);
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Monsters can use tactics (ambush, defensive, flanker, etc).", "chbx_ambush_monsters", 450.0, 20.0);
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateLabel(JsonArray(), "Add ", "lbl_inc_enc", 30.0, 20.0, NUI_HALIGN_LEFT, 0, -1.0);
 | |
|         jGroupRow = CreateTextEditBox(jGroupRow, "sPlaceHolder", "txt_inc_enc", 4, FALSE, 55.0f, 20.0f, "txt_inc_enc_tooltip");
 | |
|         jGroupRow = CreateLabel(jGroupRow, "monsters per spawned encounter monster.", "lbl_inc_enc", 357.0, 20.0, NUI_HALIGN_LEFT, NUI_VALIGN_MIDDLE, 0.0, "txt_inc_enc_tooltip");
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateTextEditBox(JsonArray(), "sPlaceHolder", "txt_inc_hp", 3, FALSE, 40.0f, 20.0f, "txt_inc_hp_tooltip");
 | |
|         jGroupRow = CreateLabel(jGroupRow, "% increase in all monster's hitpoints.", "lbl_inc_hp", 406.0, 20.0, NUI_HALIGN_LEFT);
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateLabel(JsonArray(), "***** WARNING! The options below may break the module! *****", "lbl_warning", 450.0f, 20.0f, NUI_HALIGN_LEFT, 0, 0.0, "chbx_warning_tooltip");
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Monsters can wander upto ", "chbx_wander", 220.0, 20.0, "chbx_warning_tooltip");
 | |
|         jGroupRow = CreateTextEditBox(jGroupRow, "sPlaceHolder", "txt_wander_distance", 2, FALSE, 35.0f, 20.0f, "chbx_warning_tooltip");
 | |
|         jGroupRow = CreateLabel(jGroupRow, "meters and ", "lbl_wander_distance", 80.0f, 20.0f, NUI_HALIGN_LEFT, NUI_VALIGN_MIDDLE, 0.0, "chbx_warning_tooltip");
 | |
|         jGroupRow = CreateCheckBox(jGroupRow, "open doors.", "chbx_open_doors", 100.0, 20.0, "chbx_warning_tooltip");
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Monsters can summon companions.", "chbx_companions", 450.0, 20.0, "chbx_warning_tooltip");
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Summoned associates to remain after masters death.", "chbx_perm_assoc", 450.0, 20.0, "chbx_warning_tooltip");
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateCheckBox(JsonArray(), " Make enemy corpses remain.", "chbx_corpses_stay", 450.0, 20.0, "chbx_warning_tooltip");
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         jGroupRow = CreateLabel(JsonArray(), "", "lbl_perc_dist", 450.0f, 20.0f, NUI_HALIGN_LEFT, 0, 0.0, "lbl_perc_dist_tooltip");
 | |
|         jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
 | |
|         fHeight += 364.0;
 | |
|     }
 | |
|     jRow = JsonArrayInsert(JsonArray(), NuiGroup(NuiCol(jGroupCol)));
 | |
|     // Add row to the column.
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Get the window location to restore it from the database.
 | |
|     string sName = ai_RemoveIllegalCharacters(GetName(oPC));
 | |
|     json jLocations = ai_GetCampaignDbJson("locations", sName, AI_DM_TABLE);
 | |
|     jLocations = JsonObjectGet(jLocations, "dm" + AI_MAIN_NUI);
 | |
|     float fX = JsonGetFloat(JsonObjectGet(jLocations, "x"));
 | |
|     float fY = JsonGetFloat(JsonObjectGet(jLocations, "y"));
 | |
|     // Set the Layout of the window.
 | |
|     json jLayout = NuiCol(jCol);
 | |
|     sName = GetName(oPC);
 | |
|     if(GetStringRight(sName, 1) == "s") sName = sName + "'";
 | |
|     else sName = sName + "'s";
 | |
|     int nToken = SetWindow(oPC, jLayout, "dm" + AI_MAIN_NUI, sName + " PEPS Main Menu",
 | |
|                              fX, fY, 534.0f, fHeight, FALSE, FALSE, TRUE, FALSE, TRUE, "0e_nui_dm");
 | |
|     // Save the associate to the nui for use in 0e_nui
 | |
|     json jData = JsonArrayInsert(JsonArray(), JsonString(ObjectToString(oPC)));
 | |
|     NuiSetUserData(oPC, nToken, jData);
 | |
|     object oModule = GetModule();
 | |
|     // Set event watches for save window location.
 | |
|     NuiSetBindWatch(oPC, nToken, "window_geometry", TRUE);
 | |
|     // Set all binds, events, and watches.
 | |
|     // Row 1 - Version label.
 | |
|     // Row 2
 | |
|     int nUsing;
 | |
|     // Check the monster AI.
 | |
|     string sLocation = ResManGetAliasFor("ai_default", RESTYPE_NCS);
 | |
|     if(sLocation != "")
 | |
|     {
 | |
|         nUsing = TRUE;
 | |
|         string sLocation = ResManGetAliasFor("nw_c2_default1", RESTYPE_NCS);
 | |
|         if(sLocation != "OVERRIDE:" && sLocation != "PATCH:peps" && sLocation != "DEVELOPMENT:") nUsing = FALSE;
 | |
|         if(nUsing) sText = "Monster AI working";
 | |
|         else sText = "Monster AI not working";
 | |
|     }
 | |
|     else sText = "Monster AI not loaded";
 | |
|     // Check the associate AI.
 | |
|     sLocation = ResManGetAliasFor("ai_a_default", RESTYPE_NCS);
 | |
|     if(sLocation != "")
 | |
|     {
 | |
|         nUsing = TRUE;
 | |
|         string sLocation = ResManGetAliasFor("nw_ch_ac1", RESTYPE_NCS);
 | |
|         if(sLocation != "OVERRIDE:" && sLocation != "PATCH:peps" && sLocation != "DEVELOPMENT:") nUsing = FALSE;
 | |
|         if(nUsing) sText += ", Associate AI working";
 | |
|         else sText += ", Associate AI not working";
 | |
|     }
 | |
|     else sText += ", Associate AI not loaded";
 | |
|     // Check for PRC.
 | |
|     sLocation = ResManGetAliasFor("prc_ai_fam_percp", RESTYPE_NCS);
 | |
|     if(sLocation != "") sText += ", PRC loaded.";
 | |
|     else
 | |
|     {
 | |
|         // Check the player AI.
 | |
|         sLocation = ResManGetAliasFor("xx_pc_1_hb", RESTYPE_NCS);
 | |
|         if(sLocation != "") sText += ", Player AI loaded.";
 | |
|         else sText += ", Player AI not loaded.";
 | |
|     }
 | |
|     NuiSetBind(oPC, nToken, "lbl_ai_info_label", JsonString(sText));
 | |
|     // Row 3
 | |
|     NuiSetBind(oPC, nToken, "btn_plugin_manager_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_plugin_manager_tooltip", JsonString("  Manages external executable scripts."));
 | |
|     NuiSetBind(oPC, nToken, "btn_widget_manager_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_widget_manager_tooltip", JsonString("  Manages widgets the players have access to."));
 | |
|     // Row 3 Label for AI RULES
 | |
|     // Row 4
 | |
|     NuiSetBind(oPC, nToken, "txt_max_henchman_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "txt_max_henchman", JsonString(IntToString(GetLocalInt(oModule, AI_RULE_MAX_HENCHMAN))));
 | |
|     NuiSetBindWatch (oPC, nToken, "txt_max_henchman", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "txt_max_henchman_tooltip", JsonString("  Set max number of henchman allowed (1-12)."));
 | |
|     NuiSetBind(oPC, nToken, "txt_xp_scale_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "txt_xp_scale", JsonString(IntToString(GetModuleXPScale())));
 | |
|     NuiSetBindWatch (oPC, nToken, "txt_xp_scale", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "txt_xp_scale_tooltip", JsonString("  Set the modules XP scale (0 - 200) Normal D&D is 10."));
 | |
|     NuiSetBind(oPC, nToken, "chbx_party_scale_check", JsonBool(GetLocalInt(oModule, AI_RULE_PARTY_SCALE)));
 | |
|     NuiSetBindWatch(oPC, nToken, "chbx_party_scale_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_party_scale_event", JsonBool(TRUE));
 | |
|     sText = IntToString(GetLocalInt(oModule, AI_BASE_PARTY_SCALE_XP));
 | |
|     NuiSetBind(oPC, nToken, "chbx_party_scale_tooltip", JsonString("  PEPS adjusts your XP based on party size from (" + sText + ")."));
 | |
|     NuiSetBind(oPC, nToken, "btn_default_xp_event", JsonBool(TRUE));
 | |
|     sText = IntToString(GetLocalInt(oModule, AI_RULE_DEFAULT_XP_SCALE));
 | |
|     NuiSetBind(oPC, nToken, "btn_default_xp_tooltip", JsonString("  Reset the Modules XP to (" + sText + ")."));
 | |
|     if(nMonsterAI)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "txt_ai_difficulty_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "txt_ai_difficulty", JsonString(IntToString(GetLocalInt(oModule, AI_RULE_AI_DIFFICULTY))));
 | |
|         NuiSetBindWatch(oPC, nToken, "txt_ai_difficulty", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_buff_monsters_check", JsonBool(GetLocalInt(oModule, AI_RULE_BUFF_MONSTERS)));
 | |
|         NuiSetBindWatch(oPC, nToken, "chbx_buff_monsters_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_buff_monsters_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_buff_summons_check", JsonBool(GetLocalInt(oModule, AI_RULE_PRESUMMON)));
 | |
|         NuiSetBindWatch(oPC, nToken, "chbx_buff_summons_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_buff_summons_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_ambush_monsters_check", JsonBool(GetLocalInt(oModule, AI_RULE_AMBUSH)));
 | |
|         NuiSetBindWatch(oPC, nToken, "chbx_ambush_monsters_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_ambush_monsters_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_companions_check", JsonBool(GetLocalInt(oModule, AI_RULE_SUMMON_COMPANIONS)));
 | |
|         NuiSetBindWatch(oPC, nToken, "chbx_companions_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_companions_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_companions_tooltip", JsonString("  ** This will break some modules! ** See Readme for issues!"));
 | |
|         NuiSetBind(oPC, nToken, "chbx_perm_assoc_check", JsonBool(GetLocalInt(oModule, AI_RULE_PERM_ASSOC)));
 | |
|         NuiSetBindWatch(oPC, nToken, "chbx_perm_assoc_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_perm_assoc_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_corpses_stay_check", JsonBool(GetLocalInt(oModule, AI_RULE_CORPSES_STAY)));
 | |
|         NuiSetBindWatch(oPC, nToken, "chbx_corpses_stay_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_corpses_stay_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_corpses_stay_tooltip", JsonString("  ** This will break some modules! ** See Readme for issues!"));
 | |
|         NuiSetBind(oPC, nToken, "txt_perception_distance_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "txt_perception_distance", JsonString(FloatToString(GetLocalFloat(oModule, AI_RULE_PERCEPTION_DISTANCE), 0, 0)));
 | |
|         NuiSetBindWatch(oPC, nToken, "txt_perception_distance", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "txt_perception_distance_tooltip", JsonString("  Range [10 to 60 meters] from the player."));
 | |
|         NuiSetBindWatch(oPC, nToken, "lbl_perc_dist", TRUE);
 | |
|         int nPercDist = GetLocalInt(oModule, AI_RULE_MON_PERC_DISTANCE);
 | |
|         if(nPercDist < 8 || nPercDist > 11)
 | |
|         {
 | |
|             nPercDist = 11;
 | |
|             SetLocalInt(oModule, AI_RULE_MON_PERC_DISTANCE, 11);
 | |
|         }
 | |
|         if(nPercDist == 8) sText = " Monster perception: Short [10 Sight / 10 Listen]";
 | |
|         else if(nPercDist == 9) sText = " Monster perception: Medium [20 Sight / 20 Listen]";
 | |
|         else if(nPercDist == 10) sText = " Monster perception: Long [35 Sight / 20 Listen]";
 | |
|         else sText = " Monster perception: Default [Monster's default values]";
 | |
|         NuiSetBind(oPC, nToken, "lbl_perc_dist_label", JsonString(sText));
 | |
|         NuiSetBind(oPC, nToken, "lbl_perc_dist_tooltip", JsonString("  Use the mouse wheel to change values."));
 | |
|         int bWander = GetLocalInt(oModule, AI_RULE_WANDER);
 | |
|         NuiSetBind(oPC, nToken, "chbx_wander_check", JsonBool(bWander));
 | |
|         NuiSetBindWatch(oPC, nToken, "chbx_wander_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_wander_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "txt_wander_distance_event", JsonBool(bWander));
 | |
|         NuiSetBind(oPC, nToken, "txt_wander_distance", JsonString(FloatToString(GetLocalFloat(oModule, AI_RULE_WANDER_DISTANCE), 0, 0)));
 | |
|         NuiSetBindWatch(oPC, nToken, "txt_wander_distance", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_wander_tooltip", JsonString("  ** This will break some modules! ** See Readme for issues!"));
 | |
|         NuiSetBind(oPC, nToken, "chbx_open_doors_check", JsonBool(GetLocalInt(oModule, AI_RULE_OPEN_DOORS)));
 | |
|         NuiSetBindWatch(oPC, nToken, "chbx_open_doors_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_open_doors_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_open_doors_tooltip", JsonString("  This allows monsters to open doors to hunt you down!"));
 | |
|         NuiSetBind(oPC, nToken, "txt_inc_enc_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "txt_inc_enc_tooltip", JsonString("  Spawns one extra monster per counter above 1. Adds value to counter per encounter monster spawned."));
 | |
|         NuiSetBind(oPC, nToken, "txt_inc_enc", JsonString(FloatToString(GetLocalFloat(oModule, AI_INCREASE_ENC_MONSTERS), 0, 2)));
 | |
|         NuiSetBindWatch(oPC, nToken, "txt_inc_enc", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "txt_inc_hp_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "txt_inc_hp", JsonString(IntToString(GetLocalInt(oModule, AI_INCREASE_MONSTERS_HP))));
 | |
|         NuiSetBindWatch(oPC, nToken, "txt_inc_hp", TRUE);
 | |
|     }
 | |
|     if(nMonsterAI || nAssociateAI)
 | |
|     {
 | |
|         NuiSetBind(oPC, nToken, "chbx_moral_check", JsonBool(GetLocalInt(oModule, AI_RULE_MORAL_CHECKS)));
 | |
|         NuiSetBindWatch (oPC, nToken, "chbx_moral_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_moral_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_advanced_movement_check", JsonBool(GetLocalInt(oModule, AI_RULE_ADVANCED_MOVEMENT)));
 | |
|         NuiSetBindWatch (oPC, nToken, "chbx_advanced_movement_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_advanced_movement_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_ilr_check", JsonBool(GetLocalInt(oModule, AI_RULE_ILR)));
 | |
|         NuiSetBindWatch (oPC, nToken, "chbx_ilr_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_ilr_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_umd_check", JsonBool(GetLocalInt(oModule, AI_RULE_ALLOW_UMD)));
 | |
|         NuiSetBindWatch (oPC, nToken, "chbx_umd_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_umd_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_use_healingkits_check", JsonBool(GetLocalInt(oModule, AI_RULE_HEALERSKITS)));
 | |
|         NuiSetBindWatch (oPC, nToken, "chbx_use_healingkits_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_use_healingkits_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_darkness_check", JsonBool(ai_SpellRestricted(SPELL_DARKNESS)));
 | |
|         NuiSetBindWatch (oPC, nToken, "chbx_darkness_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_darkness_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_darkness_tooltip", JsonString("  AI will not use the Darkness spell in combat."));
 | |
|         NuiSetBind(oPC, nToken, "chbx_dispels_check", JsonBool(ai_SpellRestricted(SPELL_DISPEL_MAGIC)));
 | |
|         NuiSetBindWatch (oPC, nToken, "chbx_dispels_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_dispels_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_dispels_tooltip", JsonString("  AI will not use any of the Dispel spells in combat."));
 | |
|         NuiSetBind(oPC, nToken, "chbx_timestop_check", JsonBool(ai_SpellRestricted(SPELL_TIME_STOP)));
 | |
|         NuiSetBindWatch (oPC, nToken, "chbx_timestop_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_timestop_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "chbx_timestop_tooltip", JsonString("  AI will not use the Time Stop spell in combat."));
 | |
|     }
 | |
| }
 | |
| void ai_CreateDMCommandNUI(object oPC)
 | |
| {
 | |
|     SetLocalInt(oPC, AI_NO_NUI_SAVE, TRUE);
 | |
|     DelayCommand(0.5f, DeleteLocalInt (oPC, AI_NO_NUI_SAVE));
 | |
|     // ************************************************************************* Width / Height
 | |
|     // Row 1 ******************************************************************* 500 / 73
 | |
|     json jRow = CreateButtonSelect(JsonArray(), "Lock Widget", "btn_widget_lock", 200.0, 20.0, "btn_widget_lock_tooltip");
 | |
|     jRow = CreateLabel(jRow, "", "blank_label_1", 25.0, 20.0);
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "Main Menu", "btn_main_menu", 200.0, 20.0, -1.0, "btn_main_menu_tooltip");
 | |
|     jRow = CreateLabel(jRow, "", "blank_label_2", 25.0, 20.0);
 | |
|     json jCol = JsonArrayInsert(JsonArray(), NuiRow(jRow));
 | |
|     // Row 2 ******************************************************************* 500 / 101
 | |
|     jRow = CreateButton(JsonArray(), "", "btn_cmd_group1", 200.0, 20.0, -1.0, "btn_cmd_group1_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_group1", 25.0, 20.0);
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "", "btn_cmd_group2", 200.0, 20.0, -1.0, "btn_cmd_group2_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_group2", 25.0, 20.0);
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Row 3 ******************************************************************* 500 / 129
 | |
|     jRow = CreateButton(JsonArray(), "", "btn_cmd_group3", 200.0, 20.0, -1.0, "btn_cmd_group3_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_group3", 25.0, 20.0);
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "", "btn_cmd_group4", 200.0, 20.0, -1.0, "btn_cmd_group4_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_group4", 25.0, 20.0);
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Row 4 ******************************************************************* 500 / 157
 | |
|     jRow = CreateButton(JsonArray(), "", "btn_cmd_group5", 200.0, 20.0, -1.0, "btn_cmd_group5_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_group5", 25.0, 20.0);
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "", "btn_cmd_group6", 200.0, 20.0, -1.0, "btn_cmd_group6_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_group6", 25.0, 20.0);
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     float fHeight = 157.0;
 | |
|     // Row 5 ******************************************************************* 500 / ---
 | |
|     jRow = CreateButton(JsonArray(), "Toggle Camera Focus", "btn_camera", 200.0, 20.0, -1.0, "btn_camera_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_camera", 25.0, 20.0);
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "Open/Close Inventory", "btn_inventory", 200.0, 20.0, -1.0, "btn_inventory_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_inventory", 25.0, 20.0);
 | |
|     // Add row to the column.
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     fHeight = fHeight + 28.0;
 | |
|     // Row 6+ ****************************************************************** 500 / ---
 | |
|     json jDMPlugins = ai_UpdatePluginsForDM(oPC);
 | |
|     // Set the plugins the dm can use.
 | |
|     int nIndex;
 | |
|     string sButton, sName;
 | |
|     json jPlugin = JsonArrayGet(jDMPlugins, nIndex);
 | |
|     while(JsonGetType(jPlugin) != JSON_TYPE_NULL)
 | |
|     {
 | |
|         sButton = IntToString(nIndex);
 | |
|         sName = JsonGetString(JsonArrayGet(jPlugin, 2));
 | |
|         jRow = CreateButton(JsonArray(), sName, "btn_plugin_" + sButton, 200.0f, 20.0f, -1.0, "btn_plugin_" + sButton + "_tooltip");
 | |
|         jRow = CreateCheckBox(jRow, "", "chbx_plugin_" + sButton, 25.0, 20.0, "chbx_plugin_tooltip");
 | |
|         jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|         jPlugin = JsonArrayGet(jDMPlugins, ++nIndex);
 | |
|         if(JsonGetType(jPlugin) != JSON_TYPE_NULL)
 | |
|         {
 | |
|             sButton = IntToString(nIndex);
 | |
|             sName = JsonGetString(JsonArrayGet(jPlugin, 2));
 | |
|             jRow = CreateButton(jRow, sName, "btn_plugin_" + sButton, 200.0f, 20.0f, -1.0, "btn_plugin_" + sButton + "_tooltip");
 | |
|             jRow = CreateCheckBox(jRow, "", "chbx_plugin_" + sButton, 25.0, 20.0, "chbx_plugin_tooltip");
 | |
|             // Add row to the column.
 | |
|             jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|             fHeight += 28.0;
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|             // Add row to the column.
 | |
|             jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|             fHeight += 28.0;
 | |
|             break;
 | |
|         }
 | |
|         jPlugin = JsonArrayGet(jDMPlugins, ++nIndex);
 | |
|     }
 | |
|     // Row 7 ****************************************************************** 500 / ---
 | |
|     jRow = JsonArrayInsert(JsonArray(), NuiSpacer());
 | |
|     jRow = CreateLabel(jRow, "", "lbl_info_1", 475.0, 20.0, NUI_HALIGN_CENTER);
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     fHeight = fHeight + 28.0;
 | |
|     // Get the window location to restore it from the database.
 | |
|     sName = ai_RemoveIllegalCharacters(GetName(oPC));
 | |
|     json jLocations = ai_GetCampaignDbJson("locations", sName, AI_DM_TABLE);
 | |
|     jLocations = JsonObjectGet(jLocations, "dm" + AI_COMMAND_NUI);
 | |
|     float fX = JsonGetFloat(JsonObjectGet(jLocations, "x"));
 | |
|     float fY = JsonGetFloat(JsonObjectGet(jLocations, "y"));
 | |
|     // Set the Layout of the window.
 | |
|     json jLayout = NuiCol(jCol);
 | |
|     string sDMName = GetName(oPC);
 | |
|     if(GetStringRight(sDMName, 1) == "s") sDMName = sDMName + "'";
 | |
|     else sDMName = sDMName + "'s";
 | |
|     int nToken = SetWindow(oPC, jLayout, "dm" + AI_COMMAND_NUI, sDMName + " Command Menu",
 | |
|                            fX, fY, 500.0, fHeight + 12.0, FALSE, FALSE, TRUE, FALSE, TRUE, "0e_nui_dm");
 | |
|     // Get which buttons are activated.
 | |
|     int bAIWidgetLock = ai_GetDMWidgetButton(oPC, BTN_DM_WIDGET_LOCK);
 | |
|     int bCmdGroup1 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP1);
 | |
|     int bCmdGroup2 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP2);
 | |
|     int bCmdGroup3 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP3);
 | |
|     int bCmdGroup4 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP4);
 | |
|     int bCmdGroup5 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP5);
 | |
|     int bCmdGroup6 = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_GROUP6);
 | |
|     int bCmdCamera = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_CAMERA);
 | |
|     int bCmdInventory = ai_GetDMWidgetButton(oPC, BTN_DM_CMD_INVENTORY);
 | |
|     // Set event watches for save window location.
 | |
|     NuiSetBindWatch(oPC, nToken, "window_geometry", TRUE);
 | |
|     // Set all binds, events, and watches.
 | |
|     // Row 1
 | |
|     NuiSetBind(oPC, nToken, "btn_widget_lock_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_widget_lock", JsonBool(bAIWidgetLock));
 | |
|     NuiSetBind(oPC, nToken, "btn_widget_lock_tooltip", JsonString(
 | |
|                "  Locks widget to the current location."));
 | |
|     NuiSetBind(oPC, nToken, "btn_main_menu_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_main_menu", JsonInt(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_main_menu_tooltip", JsonString("  Server menu options"));
 | |
|     NuiSetBind(oPC, nToken, "btn_group_options_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_group_options", JsonInt(TRUE));
 | |
|     //NuiSetBind(oPC, nToken, "btn_empty_button_event", JsonBool (TRUE));
 | |
|     //NuiSetBind(oPC, nToken, "btn_empty_button", JsonInt(TRUE));
 | |
|     //sText = "  Copy AI and command settings for one creature to others.";
 | |
|     //NuiSetBind(oPC, nToken, "btn_empty_button_tooltip", JsonString(sText));
 | |
|     // Row 2
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group1_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group1_check", JsonBool (bCmdGroup1));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_group1_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group1_event", JsonBool (TRUE));
 | |
|     string sText, sText2, sSpeed;
 | |
|     string sAction = " (Left Action/Right Add)";
 | |
|     json jGroup = GetLocalJson(oPC, "DM_GROUP1");
 | |
|     if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|     else sSpeed = " [Run]";
 | |
|     string sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|     if(sUUID == "") { sText = "Group 1"; sText2 = sText + sAction; }
 | |
|     else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sText + sSpeed; }
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group1_label", JsonString(sText));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group1_tooltip", JsonString("  " + sText2));
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group2_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group2_check", JsonBool (bCmdGroup2));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_group2_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group2_event", JsonBool (TRUE));
 | |
|     jGroup = GetLocalJson(oPC, "DM_GROUP2");
 | |
|     if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|     else sSpeed = " [Run]";
 | |
|     sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|     if(sUUID == "") { sText = "Group 2"; sText2 = sText + sAction; }
 | |
|     else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sText + sSpeed; }
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group2_label", JsonString(sText));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group2_tooltip", JsonString("  " + sText2));
 | |
|     // Row 3
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group3_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group3_check", JsonBool (bCmdGroup3));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_group3_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group3_event", JsonBool (TRUE));
 | |
|     jGroup = GetLocalJson(oPC, "DM_GROUP3");
 | |
|     if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|     else sSpeed = " [Run]";
 | |
|     sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|     if(sUUID == "") { sText = "Group 3"; sText2 = sText + sAction; }
 | |
|     else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sText + sSpeed; }
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group3_label", JsonString(sText));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group3_tooltip", JsonString("  " + sText2));
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group4_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group4_check", JsonBool (bCmdGroup4));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_group4_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group4_event", JsonBool (TRUE));
 | |
|     jGroup = GetLocalJson(oPC, "DM_GROUP4");
 | |
|     if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|     else sSpeed = " [Run]";
 | |
|     sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|     if(sUUID == "") { sText = "Group 4"; sText2 = sText + sAction; }
 | |
|     else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sText + sSpeed; }
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group4_label", JsonString(sText));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group4_tooltip", JsonString("  " + sText2));
 | |
|     // Row 4
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group5_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group5_check", JsonBool (bCmdGroup5));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_group5_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group5_event", JsonBool (TRUE));
 | |
|     jGroup = GetLocalJson(oPC, "DM_GROUP5");
 | |
|     if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|     else sSpeed = " [Run]";
 | |
|     sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|     if(sUUID == "") { sText = "Group 5"; sText2 = sText + sAction; }
 | |
|     else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sText + sSpeed; }
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group5_label", JsonString(sText));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group5_tooltip", JsonString("  " + sText2));
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group6_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_group6_check", JsonBool (bCmdGroup6));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_group6_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group6_event", JsonBool (TRUE));
 | |
|     jGroup = GetLocalJson(oPC, "DM_GROUP6");
 | |
|     if(JsonGetInt(JsonArrayGet(jGroup, 0)) == 0) sSpeed = " [Walk]";
 | |
|     else sSpeed = " [Run]";
 | |
|     sUUID = JsonGetString(JsonArrayGet(jGroup, 1));
 | |
|     if(sUUID == "") { sText = "Group 6"; sText2 = sText + sAction; }
 | |
|     else { sText = GetName(GetObjectByUUID(sUUID)) + "'s group"; sText2 = sText + sSpeed; }
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group6_label", JsonString(sText));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_group6_tooltip", JsonString("  " + sText2));
 | |
|     // Row 5
 | |
|     NuiSetBind(oPC, nToken, "chbx_camera_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "chbx_camera_check", JsonBool (bCmdCamera));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_camera_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "btn_camera_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_camera_tooltip", JsonString (
 | |
|                "  Toggle camera view for " + sDMName));
 | |
|     NuiSetBind(oPC, nToken, "chbx_inventory_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "chbx_inventory_check", JsonBool (bCmdInventory));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_inventory_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "btn_inventory_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_inventory_tooltip", JsonString (
 | |
|                "  Open " + sDMName + " inventory"));
 | |
|     // Row 6+
 | |
|     nIndex = 0;
 | |
|     int bWidget;
 | |
|     jPlugin = JsonArrayGet(jDMPlugins, nIndex);
 | |
|     while(JsonGetType(jPlugin) != JSON_TYPE_NULL)
 | |
|     {
 | |
|         sButton = IntToString(nIndex);
 | |
|         NuiSetBind(oPC, nToken, "btn_plugin_" + sButton + "_event", JsonBool(TRUE));
 | |
|         bWidget = JsonGetInt(JsonArrayGet(jPlugin, 1));
 | |
|         NuiSetBind(oPC, nToken, "chbx_plugin_" + sButton + "_check", JsonBool(bWidget));
 | |
|         NuiSetBindWatch (oPC, nToken, "chbx_plugin_" + sButton + "_check", TRUE);
 | |
|         NuiSetBind(oPC, nToken, "chbx_plugin_" + sButton + "_event", JsonBool(TRUE));
 | |
|         sText = "  " + JsonGetString(JsonArrayGet(jPlugin, 2));
 | |
|         NuiSetBind(oPC, nToken, "btn_plugin_" + sButton + "_tooltip", JsonString(sText));
 | |
|         jPlugin = JsonArrayGet(jDMPlugins, ++nIndex);
 | |
|     }
 | |
|     NuiSetBind(oPC, nToken, "chbx_plugin_tooltip", JsonString("  Adds the plugin to your widget."));
 | |
|     // Row 7
 | |
|     sText = ai_GetRandomDMTip();
 | |
|     NuiSetBind(oPC, nToken, "lbl_info_1_label", JsonString(sText));
 | |
| }
 | |
| void ai_CreateDMPluginManagerNUI(object oPC)
 | |
| {
 | |
|     SetLocalInt(oPC, AI_NO_NUI_SAVE, TRUE);
 | |
|     DelayCommand(0.5f, DeleteLocalInt (oPC, AI_NO_NUI_SAVE));
 | |
|     // Row 1 ******************************************************************* 500 / 73
 | |
|     json jRow = JsonArrayInsert(JsonArray(), NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "Load All Plugins", "btn_load_plugins", 150.0f, 20.0f, -1.0, "btn_load_plugins_tooltip");
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "Check All", "btn_check_plugins", 150.0f, 20.0f, -1.0, "btn_check_plugins_tooltip");
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "Clear All", "btn_clear_plugins", 150.0f, 20.0f, -1.0, "btn_clear_plugins_tooltip");
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     // Add row to the column.
 | |
|     json jCol = JsonArrayInsert(JsonArray(), NuiRow(jRow));
 | |
|     // Row 2 ******************************************************************* 500 / 101
 | |
|     jRow = JsonArrayInsert(JsonArray(), NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "Add Plugin", "btn_add_plugin", 150.0f, 20.0f);
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jRow = CreateTextEditBox(jRow, "sPlaceHolder", "txt_plugin", 16, FALSE, 310.0f, 20.0f, "txt_plugin_tooltip");
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     // Add row to the column.
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     float fHeight = 101.0;
 | |
|     // Row 3+ ****************************************************************** 500 / ---
 | |
|     json jPlugins = ai_GetCampaignDbJson("plugins");
 | |
|     int nIndex = 0;
 | |
|     json jPlugin = JsonArrayGet(jPlugins, nIndex);
 | |
|     string sName, sButton;
 | |
|     while(JsonGetType(jPlugin) != JSON_TYPE_NULL)
 | |
|     {
 | |
|         sButton = IntToString(nIndex);
 | |
|         jRow = JsonArrayInsert(JsonArray(), NuiSpacer());
 | |
|         jRow = CreateButton(jRow, "Remove Plugin", "btn_remove_plugin_" + sButton, 150.0f, 20.0f);
 | |
|         jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|         sName = JsonGetString(JsonArrayGet(jPlugin, 2));
 | |
|         jRow = CreateButton(jRow, sName, "btn_plugin_" + sButton, 290.0f, 20.0f, -1.0, "btn_plugin_" + sButton + "_tooltip");
 | |
|         jRow = CreateCheckBox(jRow, "", "chbx_plugin_" + sButton, 25.0, 20.0);
 | |
|         jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|         // Add row to the column.
 | |
|         jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|         fHeight += 28.0;
 | |
|         jPlugin = JsonArrayGet(jPlugins, ++nIndex);
 | |
|     }
 | |
|     // Get the window location to restore it from the database.
 | |
|     sName = ai_RemoveIllegalCharacters(GetName(oPC));
 | |
|     json jLocations = ai_GetCampaignDbJson("locations", sName, AI_DM_TABLE);
 | |
|     jLocations = JsonObjectGet(jLocations, "dm" + AI_PLUGIN_NUI);
 | |
|     float fX = JsonGetFloat(JsonObjectGet(jLocations, "x"));
 | |
|     float fY = JsonGetFloat(JsonObjectGet(jLocations, "y"));
 | |
|     // Set the Layout of the window.
 | |
|     json jLayout = NuiCol(jCol);
 | |
|     sName = GetName(oPC);
 | |
|     if(GetStringRight(sName, 1) == "s") sName = sName + "'";
 | |
|     else sName = sName + "'s";
 | |
|     int nToken = SetWindow(oPC, jLayout, "dm" + AI_PLUGIN_NUI, sName + " PEPS Plugin Manager",
 | |
|                              fX, fY, 500.0f, fHeight + 12.0f, FALSE, FALSE, TRUE, FALSE, TRUE, "0e_nui_dm");
 | |
|     // Set event watches for save window location.
 | |
|     NuiSetBindWatch(oPC, nToken, "window_geometry", TRUE);
 | |
|     // Row 1
 | |
|     NuiSetBind(oPC, nToken, "btn_load_plugins_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_load_plugins_tooltip", JsonString("  Load all known PEPS plugins that are in the game files."));
 | |
|     NuiSetBind(oPC, nToken, "btn_check_plugins_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_check_plugins_tooltip", JsonString("  Add all plugins to the players widget."));
 | |
|     NuiSetBind(oPC, nToken, "btn_clear_plugins_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_clear_plugins_tooltip", JsonString("  Remove all plugins from the players widget."));
 | |
|     // Row 2
 | |
|     NuiSetBind(oPC, nToken, "btn_add_plugin_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "txt_plugin_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "txt_plugin_tooltip", JsonString("  Enter an executable script name."));
 | |
|     // Row 3+
 | |
|     nIndex = 0;
 | |
|     int bCheck;
 | |
|     string sText;
 | |
|     jPlugin = JsonArrayGet(jPlugins, nIndex);
 | |
|     while(JsonGetType(jPlugin) != JSON_TYPE_NULL)
 | |
|     {
 | |
|         sButton = IntToString(nIndex);
 | |
|         NuiSetBind(oPC, nToken, "btn_remove_plugin_" + sButton + "_event", JsonBool(TRUE));
 | |
|         NuiSetBind(oPC, nToken, "btn_plugin_" + sButton + "_event", JsonBool(TRUE));
 | |
|         bCheck = JsonGetInt(JsonArrayGet(jPlugin, 1));
 | |
|         NuiSetBind(oPC, nToken, "chbx_plugin_" + sButton + "_check", JsonBool(bCheck));
 | |
|         NuiSetBind(oPC, nToken, "chbx_plugin_" + sButton + "_event", JsonBool(TRUE));
 | |
|         NuiSetBindWatch (oPC, nToken, "chbx_plugin_" + sButton + "_check", TRUE);
 | |
|         sText = "  " + JsonGetString(JsonArrayGet(jPlugin, 2));
 | |
|         NuiSetBind(oPC, nToken, "btn_plugin_" + sButton + "_tooltip", JsonString(sText));
 | |
|         jPlugin = JsonArrayGet(jPlugins, ++nIndex);
 | |
|     }
 | |
|     NuiSetBind(oPC, nToken, "chbx_plugin_tooltip", JsonString("  Allows players to use this plugin."));
 | |
| }
 | |
| void ai_CreateDMWidgetManagerNUI(object oPC)
 | |
| {
 | |
|     SetLocalInt(oPC, AI_NO_NUI_SAVE, TRUE);
 | |
|     DelayCommand(0.5f, DeleteLocalInt (oPC, AI_NO_NUI_SAVE));
 | |
|     // Row 1 ******************************************************************* 575 / 73
 | |
|     json jRow = JsonArrayInsert(JsonArray(), NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "Check All", "btn_check_buttons", 150.0f, 20.0f, -1.0, "btn_check_buttons_tooltip");
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     jRow = CreateButton(jRow, "Clear All", "btn_clear_buttons", 150.0f, 20.0f, -1.0, "btn_clear_buttons_tooltip");
 | |
|     jRow = JsonArrayInsert(jRow, NuiSpacer());
 | |
|     json jCol = JsonArrayInsert(JsonArray(), NuiRow(jRow));
 | |
|     // Row 2 ******************************************************************* 575 / 96
 | |
|     jRow = CreateLabel(JsonArray(), "This menu manages the PEPS buttons a player may have access to.", "lbl_info1", 636.0, 15.0);
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Row 3 ******************************************************************* 575 / 119
 | |
|     jRow = CreateLabel(JsonArray(), "Having a check next to a button will remove that button from the players menus.", "lbl_info2", 636.0, 15.0);
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Row 4 ******************************************************************* 575 / 162
 | |
|     jRow = CreateButtonImage(JsonArray(), "ir_action", "btn_cmd_action", 35.0f, 35.0f, 0.0, "btn_cmd_action_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_action", 25.0, 20.0, "btn_cmd_action_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_guard", "btn_cmd_guard", 35.0f, 35.0f, 0.0, "btn_cmd_guard_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_guard", 25.0, 20.0, "btn_cmd_guard_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_standground", "btn_cmd_hold", 35.0f, 35.0f, 0.0, "btn_cmd_hold_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_hold", 25.0, 20.0, "btn_cmd_hold_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_attacknearest", "btn_cmd_attack", 35.0f, 35.0f, 0.0, "btn_cmd_attack_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_attack", 25.0, 20.0, "btn_cmd_attack_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_follow", "btn_cmd_follow", 35.0f, 35.0f, 0.0, "btn_cmd_follow_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_follow", 25.0, 20.0, "btn_cmd_follow_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_dmchat", "btn_follow_target", 35.0f, 35.0f, 0.0, "btn_follow_target_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_follow_target", 25.0, 20.0, "btn_follow_target_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ife_foc_search", "btn_cmd_search", 35.0f, 35.0f, 0.0, "btn_cmd_search_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_search", 25.0, 20.0, "btn_cmd_search_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ife_foc_hide", "btn_cmd_stealth", 35.0f, 35.0f, 0.0, "btn_cmd_stealth_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_stealth", 25.0, 20.0, "btn_cmd_stealth_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_scommand", "btn_cmd_ai_script", 35.0f, 35.0f, 0.0, "btn_cmd_ai_script_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_ai_script", 25.0, 20.0, "btn_cmd_ai_script_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "isk_settrap", "btn_cmd_place_trap", 35.0f, 35.0f, 0.0, "btn_cmd_place_trap_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cmd_place_trap", 25.0, 20.0, "btn_cmd_place_trap_tooltip");
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Row 5 ******************************************************************* 575 / 205
 | |
|     jRow = CreateButtonImage(JsonArray(), "isk_spellcraft", "btn_quick_widget", 35.0f, 35.0f, 0.0, "btn_quick_widget_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_quick_widget", 25.0, 20.0, "btn_quick_widget_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "isk_lore", "btn_spell_memorize", 35.0f, 35.0f, 0.0, "btn_spell_memorize_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_spell_memorize", 25.0, 20.0, "btn_spell_memorize_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_cantrips", "btn_buff_short", 35.0f, 35.0f, 0.0, "btn_buff_short_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_buff_short", 25.0, 20.0, "btn_buff_short_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_cast", "btn_buff_long", 35.0f, 35.0f, 0.0, "btn_buff_long_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_buff_long", 25.0, 20.0, "btn_buff_long_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_level789", "btn_buff_all", 35.0f, 35.0f, 0.0, "btn_buff_all_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_buff_all", 25.0, 20.0, "btn_buff_all_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_rest", "btn_buff_rest", 35.0f, 35.0f, 0.0, "btn_buff_rest_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_buff_rest", 25.0, 20.0, "btn_buff_rest_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "dm_jump", "btn_jump_to", 35.0f, 35.0f, 0.0, "btn_jump_to_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_jump_to", 25.0, 20.0, "btn_jump_to_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "dm_limbo", "btn_ghost_mode", 35.0f, 35.0f, 0.0, "btn_ghost_mode_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_ghost_mode", 25.0, 20.0, "btn_ghost_mode_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_examine", "btn_camera", 35.0f, 35.0f, 0.0, "btn_camera_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_camera", 25.0, 20.0, "btn_camera_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_pickup", "btn_inventory", 35.0f, 35.0f, 0.0, "btn_inventory_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_inventory", 25.0, 20.0, "btn_inventory_tooltip");
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Row 6 ******************************************************************* 575 / 248
 | |
| 
 | |
|     jRow = CreateButtonImage(JsonArray(), "ife_familiar", "btn_familiar", 35.0f, 35.0f, 0.0, "btn_familiar_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_familiar", 25.0, 20.0, "btn_familiar_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ife_animal", "btn_companion", 35.0f, 35.0f, 0.0, "btn_companion_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_companion", 25.0, 20.0, "btn_companion_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "dm_ai", "btn_ai", 35.0f, 35.0f, 0.0, "btn_ai_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_ai", 25.0, 20.0, "btn_companion_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "isk_movsilent", "btn_quiet", 35.0f, 35.0f, 0.0, "btn_quiet_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_quiet", 25.0, 20.0, "btn_quiet_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_archer", "btn_ranged", 35.0f, 35.0f, 0.0, "btn_ranged_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_ranged", 25.0, 20.0, "btn_ranged_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "dm_takeitem", "btn_equip_weapon", 35.0f, 35.0f, 0.0, "btn_equip_weapon_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_equip_weapon", 25.0, 20.0, "btn_equip_weapon_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "isk_search", "btn_search", 35.0f, 35.0f, 0.0, "btn_search_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_search", 25.0, 20.0, "btn_search_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "isk_hide", "btn_stealth", 35.0f, 35.0f, 0.0, "btn_stealth_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_stealth", 25.0, 20.0, "btn_stealth_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_open", "btn_open_door", 35.0f, 35.0f, 0.0, "btn_open_door_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_open_door", 25.0, 20.0, "btn_open_door_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "isk_distrap", "btn_traps", 35.0f, 35.0f, 0.0, "btn_traps_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_traps", 25.0, 20.0, "btn_traps_tooltip");
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Row 7 ******************************************************************* 575 / 291
 | |
| 
 | |
|     jRow = CreateButtonImage(JsonArray(), "isk_olock", "btn_pick_locks", 35.0f, 35.0f, 0.0, "btn_pick_locks_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_pick_locks", 25.0, 20.0, "btn_pick_locks_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_bash", "btn_bash_locks", 35.0f, 35.0f, 0.0, "btn_bash_locks_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_bash_locks", 25.0, 20.0, "btn_bash_locks_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "dm_control", "btn_magic_level", 35.0f, 35.0f, 0.0, "btn_magic_level_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_magic_level", 25.0, 20.0, "btn_magic_level_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_xability", "btn_spontaneous", 35.0f, 35.0f, 0.0, "btn_spontaneous_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_spontaneous", 25.0, 20.0, "btn_spontaneous_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_cntrspell", "btn_magic", 35.0f, 35.0f, 0.0, "btn_magic_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_magic", 25.0, 20.0, "btn_magic_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_moreattacks", "btn_magic_items", 35.0f, 35.0f, 0.0, "btn_magic_items_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_magic_items", 25.0, 20.0, "btn_magic_items_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_orisons", "btn_def_magic", 35.0f, 35.0f, 0.0, "btn_def_magic_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_def_magic", 25.0, 20.0, "btn_def_magic_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_metamagic", "btn_off_magic", 35.0f, 35.0f, 0.0, "btn_off_magic_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_off_magic", 25.0, 20.0, "btn_off_magic_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "isk_heal", "btn_heal_out", 35.0f, 35.0f, 0.0, "btn_heal_out_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_heal_out", 25.0, 20.0, "btn_heal_out_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "dm_heal", "btn_heal_in", 35.0f, 35.0f, 0.0, "btn_heal_in_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_heal_in", 25.0, 20.0, "btn_heal_in_tooltip");
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     // Row 8 ******************************************************************* 575 / 334
 | |
|     jRow = CreateButtonImage(JsonArray(), "ir_heal", "btn_heals_onoff", 35.0f, 35.0f, 0.0, "btn_heals_onoff_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_heals_onoff", 25.0, 20.0, "btn_heals_onoff_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_party", "btn_healp_onoff", 35.0f, 35.0f, 0.0, "btn_healp_onoff_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_healp_onoff", 25.0, 20.0, "btn_healp_onoff_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_accept", "btn_cure_onoff", 35.0f, 35.0f, 0.0, "btn_cure_onoff_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_cure_onoff", 25.0, 20.0, "btn_cure_onoff_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_barter", "btn_loot", 35.0f, 35.0f, 0.0, "btn_loot_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_loot", 25.0, 20.0, "btn_loot_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_ignore", "btn_ignore_assoc", 35.0f, 35.0f, 0.0, "btn_ignore_assoc_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_ignore_assoc", 25.0, 20.0, "btn_ignore_assoc_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_abort", "btn_ignore_traps", 35.0f, 35.0f, 0.0, "btn_ignore_traps_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_ignore_traps", 25.0, 20.0, "btn_ignore_traps_tooltip");
 | |
| 
 | |
|     jRow = CreateButtonImage(jRow, "ir_dmchat", "btn_perc_range", 35.0f, 35.0f, 0.0, "btn_perc_range_tooltip");
 | |
|     jRow = CreateCheckBox(jRow, "", "chbx_perc_range", 25.0, 20.0, "btn_perc_range_tooltip");
 | |
| 
 | |
|     // Add row to the column.
 | |
|     jCol = JsonArrayInsert(jCol, NuiRow(jRow));
 | |
|     float fHeight = 334.0;
 | |
|     // Get the window location to restore it from the database.
 | |
|     string sName = ai_RemoveIllegalCharacters(GetName(oPC));
 | |
|     json jLocations = ai_GetCampaignDbJson("locations", sName, AI_DM_TABLE);
 | |
|     jLocations = JsonObjectGet(jLocations, "dm_widget_manager_nui");
 | |
|     float fX = JsonGetFloat(JsonObjectGet(jLocations, "x"));
 | |
|     float fY = JsonGetFloat(JsonObjectGet(jLocations, "y"));
 | |
|     // Set the Layout of the window.
 | |
|     json jLayout = NuiCol(jCol);
 | |
|     sName = GetName(oPC);
 | |
|     if(GetStringRight(sName, 1) == "s") sName = sName + "'";
 | |
|     else sName = sName + "'s";
 | |
|     int nToken = SetWindow(oPC, jLayout, "dm_widget_manager_nui", sName + " PEPS DM Widget Manager",
 | |
|                              fX, fY, 660.0f, fHeight + 12.0f, FALSE, FALSE, TRUE, FALSE, TRUE, "0e_nui_dm");
 | |
|     // Set event watches for save window location.
 | |
|     NuiSetBindWatch(oPC, nToken, "window_geometry", TRUE);
 | |
|     // Row 1
 | |
|     NuiSetBind(oPC, nToken, "btn_check_buttons_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_check_buttons_tooltip", JsonString("  Check all buttons, removing them for all players."));
 | |
|     NuiSetBind(oPC, nToken, "btn_clear_buttons_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_clear_buttons_tooltip", JsonString("  Clear all buttons, allowing use for all players."));
 | |
|     // Row 2 & 3 Labels.
 | |
|     // Load all the buttons states.
 | |
|     //int bAIWidgetLock = ai_GetDMWAccessButton(BTN_WIDGET_LOCK);
 | |
|     int bCmdAction = ai_GetDMWAccessButton(BTN_CMD_ACTION);
 | |
|     int bCmdGuard = ai_GetDMWAccessButton(BTN_CMD_GUARD);
 | |
|     int bCmdHold = ai_GetDMWAccessButton(BTN_CMD_HOLD);
 | |
|     int bCmdSearch = ai_GetDMWAccessButton(BTN_CMD_SEARCH);
 | |
|     int bCmdStealth = ai_GetDMWAccessButton(BTN_CMD_STEALTH);
 | |
|     int bCmdAttack = ai_GetDMWAccessButton(BTN_CMD_ATTACK);
 | |
|     int bCmdFollow = ai_GetDMWAccessButton(BTN_CMD_FOLLOW);
 | |
|     int bCmdAIScript = ai_GetDMWAccessButton(BTN_CMD_AI_SCRIPT);
 | |
|     int bCmdPlacetrap = ai_GetDMWAccessButton(BTN_CMD_PLACE_TRAP);
 | |
|     int bSpellWidget = ai_GetDMWAccessButton(BTN_CMD_SPELL_WIDGET);
 | |
|     int bMemorizeSpells = ai_GetDMWAccessButton(BTN_DM_CMD_MEMORIZE);
 | |
|     int bBuffShort = ai_GetDMWAccessButton(BTN_BUFF_SHORT);
 | |
|     int bBuffLong = ai_GetDMWAccessButton(BTN_BUFF_LONG);
 | |
|     int bBuffAll = ai_GetDMWAccessButton(BTN_BUFF_ALL);
 | |
|     int bBuffRest = ai_GetDMWAccessButton(BTN_BUFF_REST);
 | |
|     int bJumpTo = ai_GetDMWAccessButton(BTN_CMD_JUMP_TO);
 | |
|     int bGhostMode = ai_GetDMWAccessButton(BTN_CMD_GHOST_MODE);
 | |
|     int bCamera = ai_GetDMWAccessButton(BTN_CMD_CAMERA);
 | |
|     int bInventory = ai_GetDMWAccessButton(BTN_CMD_INVENTORY);
 | |
|     int bFamiliar = ai_GetDMWAccessButton(BTN_CMD_FAMILIAR);
 | |
|     int bCompanion = ai_GetDMWAccessButton(BTN_CMD_COMPANION);
 | |
|     int bFollowTarget = ai_GetDMAIAccessButton(BTN_AI_FOLLOW_TARGET);
 | |
|     int bAI = ai_GetDMAIAccessButton(BTN_AI_FOR_PC);
 | |
|     int bReduceSpeech = ai_GetDMAIAccessButton(BTN_AI_REDUCE_SPEECH);
 | |
|     int bRanged = ai_GetDMAIAccessButton(BTN_AI_USE_RANGED);
 | |
|     int bEquipWeapons = ai_GetDMAIAccessButton(BTN_AI_STOP_WEAPON_EQUIP);
 | |
|     int bSearch = ai_GetDMAIAccessButton(BTN_AI_USE_SEARCH);
 | |
|     int bStealth = ai_GetDMAIAccessButton(BTN_AI_USE_STEALTH);
 | |
|     int bOpenDoors = ai_GetDMAIAccessButton(BTN_AI_OPEN_DOORS);
 | |
|     int bTraps = ai_GetDMAIAccessButton(BTN_AI_REMOVE_TRAPS);
 | |
|     int bPickLocks = ai_GetDMAIAccessButton(BTN_AI_PICK_LOCKS);
 | |
|     int bBashLocks = ai_GetDMAIAccessButton(BTN_AI_BASH_LOCKS);
 | |
|     int bMagicLevel = ai_GetDMAIAccessButton(BTN_AI_MAGIC_LEVEL);
 | |
|     int bSpontaneous = ai_GetDMAIAccessButton(BTN_AI_NO_SPONTANEOUS);
 | |
|     int bNoMagic = ai_GetDMAIAccessButton(BTN_AI_NO_MAGIC_USE);
 | |
|     int bNoMagicItems = ai_GetDMAIAccessButton(BTN_AI_NO_MAGIC_ITEM_USE);
 | |
|     int bDefMagic = ai_GetDMAIAccessButton(BTN_AI_DEF_MAGIC_USE);
 | |
|     int bOffMagic = ai_GetDMAIAccessButton(BTN_AI_OFF_MAGIC_USE);
 | |
|     int bHealOut = ai_GetDMAIAccessButton(BTN_AI_HEAL_OUT);
 | |
|     int bHealIn = ai_GetDMAIAccessButton(BTN_AI_HEAL_IN);
 | |
|     int bSelfHealOnOff = ai_GetDMAIAccessButton(BTN_AI_STOP_SELF_HEALING);
 | |
|     int bPartyHealOnOff = ai_GetDMAIAccessButton(BTN_AI_STOP_PARTY_HEALING);
 | |
|     int bCureOnOff = ai_GetDMAIAccessButton(BTN_AI_STOP_CURE_SPELLS);
 | |
|     int bLoot = ai_GetDMAIAccessButton(BTN_AI_LOOT);
 | |
|     int bIgnoreAssociates = ai_GetDMAIAccessButton(BTN_AI_IGNORE_ASSOCIATES);
 | |
|     int bIgnoreTraps = ai_GetDMAIAccessButton(BTN_AI_IGNORE_TRAPS);
 | |
|     int bPercRange = ai_GetDMAIAccessButton(BTN_AI_PERC_RANGE);
 | |
|     int bBtnFamiliar = ai_GetDMWAccessButton(BTN_CMD_FAMILIAR);
 | |
|     int bBtnCompanion = ai_GetDMWAccessButton(BTN_CMD_COMPANION);
 | |
|     SetLocalInt(oPC, "CHBX_SKIP", TRUE);
 | |
|     DelayCommand(2.0, DeleteLocalInt(oPC, "CHBX_SKIP"));
 | |
|     // Row 4
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_action_check", JsonBool (bCmdAction));
 | |
|     NuiSetBindWatch(oPC, nToken, "chbx_cmd_action_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_action_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_action_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_action_tooltip", JsonString("  Action button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_guard_check", JsonBool (bCmdGuard));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_guard_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_guard_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_guard_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_guard_tooltip", JsonString("  Guard button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_hold_check", JsonBool (bCmdHold));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_hold_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_hold_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_hold_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_hold_tooltip", JsonString("  Hold button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_attack_check", JsonBool (bCmdAttack));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_attack_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_attack_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_attack_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_attack_tooltip", JsonString("  Attack button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_follow_check", JsonBool (bCmdFollow));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_follow_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_follow_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_follow_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_follow_tooltip", JsonString("  Follow button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_follow_target_check", JsonBool (bFollowTarget));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_follow_target_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_follow_target_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_follow_target_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_follow_target_tooltip", JsonString("  Follow Target button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_search_check", JsonBool (bCmdSearch));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_search_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_search_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_search_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_search_tooltip", JsonString("  Search All button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_stealth_check", JsonBool (bCmdStealth));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_stealth_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_stealth_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_stealth_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_stealth_tooltip", JsonString("  Stealth All button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_ai_script_check", JsonBool (bCmdAIScript));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_ai_script_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_ai_script_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_ai_script_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_ai_script_tooltip", JsonString("  Combat Tactics button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_place_trap_check", JsonBool (bCmdPlacetrap));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cmd_place_trap_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_cmd_place_trap_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_place_trap_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cmd_place_trap_tooltip", JsonString ("  Place Trap button"));
 | |
|     // Row 5
 | |
|     NuiSetBind(oPC, nToken, "chbx_quick_widget_check", JsonBool (bSpellWidget));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_quick_widget_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_quick_widget_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_quick_widget_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_quick_widget_tooltip", JsonString("  Quick Use button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_spell_memorize_check", JsonBool (bMemorizeSpells));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_spell_memorize_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_spell_memorize_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_spell_memorize_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_spell_memorize_tooltip", JsonString("  Memorize Spells button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_buff_short_check", JsonBool (bBuffShort));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_buff_short_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_buff_short_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_buff_short_event", JsonBool (TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_buff_short_tooltip", JsonString("  Short Buffing button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_buff_long_check", JsonBool (bBuffLong));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_buff_long_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_buff_long_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_buff_long_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_buff_long_tooltip", JsonString("  Long Buffing button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_buff_all_check", JsonBool (bBuffAll));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_buff_all_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_buff_all_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_buff_all_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_buff_all_tooltip", JsonString("  All Buffing button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_buff_rest_check", JsonBool (bBuffRest));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_buff_rest_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_buff_rest_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_buff_rest_event", JsonBool (TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_buff_rest_tooltip", JsonString("  Rest Buffing button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_jump_to_check", JsonBool(bJumpTo));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_jump_to_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_jump_to_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_jump_to_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_jump_to_tooltip", JsonString("  Jump Associates button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_ghost_mode_check", JsonBool (bGhostMode));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_ghost_mode_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_ghost_mode_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_ghost_mode_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_ghost_mode_tooltip", JsonString("  Ghost mode button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_camera_check", JsonBool (bCamera));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_camera_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_camera_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_camera_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_camera_tooltip", JsonString("  Change Camera button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_inventory_check", JsonBool (bInventory));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_inventory_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_inventory_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_inventory_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_inventory_tooltip", JsonString("  Open Inventory button"));
 | |
|     // Row 6
 | |
|     NuiSetBind(oPC, nToken, "chbx_familiar_check", JsonBool(bBtnFamiliar));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_familiar_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_familiar_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_familiar_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_familiar_tooltip", JsonString("  Change Familiar buttons"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_companion_check", JsonBool(bBtnCompanion));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_companion_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_companion_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_companion_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_companion_tooltip", JsonString("  Change Animal Companion buttons"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_ai_check", JsonBool(bAI));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_ai_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_ai_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_ai_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_ai_tooltip", JsonString("  Player AI button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_quiet_check", JsonBool(bReduceSpeech));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_quiet_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_quiet_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_quiet_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_quiet_tooltip", JsonString("  Reduce Speech button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_ranged_check", JsonBool(bRanged));
 | |
|     NuiSetBindWatch(oPC, nToken, "chbx_ranged_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_ranged_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_ranged_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_ranged_tooltip", JsonString("  Ranged button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_equip_weapon_check", JsonBool(bEquipWeapons));
 | |
|     NuiSetBindWatch(oPC, nToken, "chbx_equip_weapon_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_equip_weapon_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_equip_weapon_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_equip_weapon_tooltip", JsonString("  Auto Equip Weapons button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_search_check", JsonBool(bSearch));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_search_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_search_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_search_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_search_tooltip", JsonString("  Search button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_stealth_check", JsonBool(bStealth));
 | |
|     NuiSetBindWatch(oPC, nToken, "chbx_stealth_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_stealth_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_stealth_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_stealth_tooltip", JsonString("  Stealth button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_open_door_check", JsonBool(bOpenDoors));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_open_door_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_open_door_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_open_door_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_open_door_tooltip", JsonString("  Open Door button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_traps_check", JsonBool(bTraps));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_traps_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_traps_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_traps_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_traps_tooltip", JsonString("  Disable Traps button"));
 | |
|     // Row 7
 | |
|     NuiSetBind(oPC, nToken, "chbx_pick_locks_check", JsonBool(bPickLocks));
 | |
|     NuiSetBindWatch(oPC, nToken, "chbx_pick_locks_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_pick_locks_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_pick_locks_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_pick_locks_tooltip", JsonString("  Pick Locks button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_bash_locks_check", JsonBool(bBashLocks));
 | |
|     NuiSetBindWatch(oPC, nToken, "chbx_bash_locks_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_bash_locks_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_bash_locks_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_bash_locks_tooltip", JsonString("  Bash button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_magic_level_check", JsonBool(bMagicLevel));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_magic_level_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_magic_level_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_magic_level_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_magic_level_tooltip", JsonString("  Magic Level button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_spontaneous_check", JsonBool(bSpontaneous));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_spontaneous_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_spontaneous_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_spontaneous_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_spontaneous_tooltip", JsonString("  Spontaneous Spells button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_magic_check", JsonBool(bNoMagic));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_magic_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_magic_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_magic_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_magic_tooltip", JsonString("  Use Magic button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_magic_items_check", JsonBool(bNoMagicItems));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_magic_items_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_magic_items_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_magic_items_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_magic_items_tooltip", JsonString("  Use Magic Items button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_def_magic_check", JsonBool (bDefMagic));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_def_magic_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_def_magic_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_def_magic_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_def_magic_tooltip", JsonString("  Use Defensive Magic button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_off_magic_check", JsonBool(bOffMagic));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_off_magic_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_off_magic_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_off_magic_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_off_magic_tooltip", JsonString("  Use Offensive Magic button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_heal_out_check", JsonBool(bHealOut));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_heal_out_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_heal_out_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_heal_out_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_heal_out_tooltip", JsonString("  Heal Out of Combat button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_heal_in_check", JsonBool(bHealIn));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_heal_in_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_heal_in_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_heal_in_event", JsonBool (TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_heal_in_tooltip", JsonString("  Heal In Combat button"));
 | |
|     // Row 8
 | |
|     NuiSetBind(oPC, nToken, "chbx_heals_onoff_check", JsonBool(bSelfHealOnOff));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_heals_onoff_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_heals_onoff_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_heals_onoff_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_heals_onoff_tooltip", JsonString("  Heal Self On/Off button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_healp_onoff_check", JsonBool(bPartyHealOnOff));
 | |
|     NuiSetBind(oPC, nToken, "chbx_healp_onoff_event", JsonBool(TRUE));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_healp_onoff_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "btn_healp_onoff_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_healp_onoff_tooltip", JsonString("  Heal Party On/Off button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_cure_onoff_check", JsonBool(bCureOnOff));
 | |
|     NuiSetBind(oPC, nToken, "chbx_cure_onoff_event", JsonBool(TRUE));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_cure_onoff_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "btn_cure_onoff_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_cure_onoff_tooltip", JsonString("  Cure Spells On/Off button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_loot_check", JsonBool(bLoot));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_loot_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_loot_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_loot_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_loot_tooltip", JsonString("  Auto Looting button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_ignore_assoc_check", JsonBool(bIgnoreAssociates));
 | |
|     NuiSetBindWatch(oPC, nToken, "chbx_ignore_assoc_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_ignore_assoc_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_ignore_assoc_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_ignore_assoc_tooltip", JsonString("  Ignore Associates On/Off button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_ignore_traps_check", JsonBool(bIgnoreTraps));
 | |
|     NuiSetBindWatch(oPC, nToken, "chbx_ignore_traps_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_ignore_traps_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_ignore_traps_event", JsonBool(TRUE));
 | |
|     NuiSetBind (oPC, nToken, "btn_ignore_traps_tooltip", JsonString("  Ignore Floor Traps On/Off button"));
 | |
| 
 | |
|     NuiSetBind(oPC, nToken, "chbx_perc_range_check", JsonBool(bPercRange));
 | |
|     NuiSetBindWatch (oPC, nToken, "chbx_perc_range_check", TRUE);
 | |
|     NuiSetBind(oPC, nToken, "chbx_perc_range_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_perc_range_event", JsonBool(TRUE));
 | |
|     NuiSetBind(oPC, nToken, "btn_perc_range_tooltip", JsonString("  Perception Range button"));
 | |
| }
 | |
| 
 |