Added PEPS AI. Updated module name. Set all henchmen to have a random race &/or class based name using a custom version of Markshire's Nomeclature scripts, as well as appearance. Set Constructs, Undead, Outsiders & Elementals to not require food or drink. Full compile.
718 lines
40 KiB
Plaintext
718 lines
40 KiB
Plaintext
/*//////////////////////////////////////////////////////////////////////////////
|
|
// Script Name: pi_crafting
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
Executable plug in script for Philos Module Extentions
|
|
|
|
Crafting UI for players items.
|
|
*///////////////////////////////////////////////////////////////////////////////
|
|
#include "0i_nui"
|
|
#include "0i_items"
|
|
#include "nw_inc_gff"
|
|
const string CRAFT_JSON = "CRAFT_JSON";
|
|
const string CRAFT_COOL_DOWN = "CRAFT_COOL_DOWN";
|
|
const string CRAFT_ITEM_SELECTION = "CRAFT_ITEM_SELECTION";
|
|
const string CRAFT_MATERIAL_SELECTION = "CRAFT_MATERIAL_SELECTION";
|
|
const string CRAFT_MODEL_SELECTION = "CRAFT_MODEL_SELECTION";
|
|
const string CRAFT_COLOR_PALLET = "CRAFT_COLOR_PALLET";
|
|
const string CRAFT_LEFT_PART_COLOR = "CRAFT_LEFT_PART_COLOR";
|
|
const string CRAFT_ALL_COLOR = "CRAFT_ALL_COLOR";
|
|
const string CRAFT_RIGHT_PART_COLOR = "CRAFT_RIGHT_PART_COLOR";
|
|
const string CRAFT_TARGET = "CRAFT_TARGET";
|
|
// Tag used in lighting effects.
|
|
const string CRAFT_HIGHLIGHT = "CRAFT_HIGHLIGHT";
|
|
const string CRAFT_ULTRALIGHT = "CRAFT_ULTRALIGHT";
|
|
|
|
json CreateItemCombo(object oPC, json jRow, string sComboBind);
|
|
json CreateModelCombo(object oPC, object oTarget, json jRow, string sComboBind);
|
|
json CreateMaterialCombo(object oPC, json jRow, string sComboBind);
|
|
// Sets the material buttons for use.
|
|
// nMaterial 0,1 Cloth 2,3 Leather 4,5 Metal -1 None.
|
|
void SetMaterialButtons(object oPC, int nToken, int nMaterial);
|
|
// Returns the correct item based on the crafting menu selected item.
|
|
object GetSelectedItem(object oTarget, int nItemSelected);
|
|
int GetArmorModelSelected(object oPC);
|
|
// Returns True if oItem, nPart has a per part color for sSide.
|
|
int GetHasPartColor(object oItem, int nPart, string sSide);
|
|
// Does startup check if the game has just been loaded.
|
|
int StartingUp(object oPC);
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
object oTarget = GetLocalObject(oPC, CRAFT_TARGET);
|
|
if(oTarget == OBJECT_INVALID) oTarget = oPC;
|
|
if(StartingUp(oPC)) return;
|
|
json jCraft = GetLocalJson(oPC, CRAFT_JSON);
|
|
// Row 1 (Object Name)****************************************************** 508 / 83
|
|
json jRow = CreateTextEditBox(JsonArray(), "plc_hold_bind", "txt_item_name", 50, FALSE, 486.0f, 30.0f); // 419
|
|
json jCol = JsonArrayInsert(JsonArray(), NuiRow(jRow));
|
|
// Row 2 (Object Name)****************************************************** 508 / 121
|
|
jRow = JsonArray();
|
|
if(!AI_SERVER) jRow = CreateButton(jRow, "Information", "btn_info", 160.0f, 30.0f, -1.0, "btn_info_tooltip");
|
|
else
|
|
{
|
|
if(GetIsDM(oTarget))
|
|
{
|
|
jRow = CreateButton(jRow, "Information", "btn_info", 160.0f, 30.0f, -1.0, "btn_info_tooltip");
|
|
}
|
|
else jRow = JsonArrayInsert(jRow, NuiSpacer());
|
|
}
|
|
jRow = CreateButton(jRow, "Wardrobe", "btn_wardrobe", 158.0f, 30.0f, -1.0, "btn_wardrobe_tooltip");
|
|
jRow = CreateButtonSelect(jRow, "Add Light", "btn_highlight", 160.0f, 30.0f, "btn_highlight_tooltip");
|
|
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
|
|
// Row 3 (Object Name)****************************************************** 508 / 159
|
|
jRow = CreateButton(JsonArray(), "Save", "btn_save", 160.0f, 30.0f, -1.0, "btn_save_tooltip");
|
|
jRow = CreateButton(jRow, "Select Target", "btn_select_target", 158.0f, 30.0f);
|
|
jRow = CreateButton(jRow, "", "btn_cancel", 160.0f, 30.0f, -1.0, "btn_cancel_tooltip");
|
|
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
|
|
// Row 4 (labels)*********************************************************** 508 / 177
|
|
jRow = CreateLabel(JsonArray(), "Model", "module_title", 143.0f, 10.0f);
|
|
jRow = CreateLabel(jRow, "Color", "color_title", 339.0f, 10.0f);
|
|
jRow = JsonArrayInsert(jCol, NuiRow(jRow));
|
|
// Row 5 (groups)
|
|
// Row 51 (title)*********************************************************** 508 / 195 / 18
|
|
json jGroupRow = CreateLabel(JsonArray(), "Item", "item__cmb_title", 128.0f, 10.0f);
|
|
json jGroupCol = JsonArrayInsert(JsonArray(), NuiRow(jGroupRow));
|
|
// Row 52 (combo)*********************************************************** 508 / 233 / 56
|
|
jGroupRow = CreateItemCombo(oPC, JsonArray(), "item_combo");
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 53 (title)*********************************************************** 508 / 251 / 74
|
|
jGroupRow = CreateLabel(JsonArray(), "Model", "model_cmb_title",128.0f, 10.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 54 (combo)*********************************************************** 508 / 289 / 112
|
|
jGroupRow = CreateModelCombo(oPC, oTarget, JsonArray(), "model_combo");
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 55 (title)*********************************************************** 508 / 307 / 120
|
|
jGroupRow = CreateLabel(JsonArray(), "", "top_title",128.0f, 10.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 56 (top)************************************************************* 508 / 355 / 168
|
|
jGroupRow = CreateButtonImage(JsonArray(), "nui_shld_left", "btn_prev_t", 40.0f, 40.0f);
|
|
// Removed TextEditBox for mobile
|
|
jGroupRow = CreateTextEditBox(jGroupRow, "place_holder", "txt_model_number_t", 3, FALSE, 40.0, 40.0);
|
|
//CreateLabel(jGroupRow, "", "txt_model_number_t", 40.0, 40.0);
|
|
jGroupRow = CreateButtonImage(jGroupRow, "nui_shld_right", "btn_next_t", 40.0f, 40.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 57 (title)*********************************************************** 508 / 373 / 186
|
|
jGroupRow = CreateLabel(JsonArray(), "", "middle_title",128.0f, 10.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 58 (middle)********************************************************** 508 / 421 /234
|
|
jGroupRow = CreateButtonImage(JsonArray(), "nui_shld_left", "btn_prev_m", 40.0f, 40.0f);
|
|
// Removed TextEditBox for mobile
|
|
jGroupRow = CreateTextEditBox(jGroupRow, "place_holder", "txt_model_number_m", 3, FALSE, 40.0, 40.0);
|
|
//CreateLabel(jGroupRow, "", "txt_model_number_m", 40.0, 40.0);
|
|
jGroupRow = CreateButtonImage(jGroupRow, "nui_shld_right", "btn_next_m", 40.0f, 40.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 59 (title)*********************************************************** 508 / 439 / 252
|
|
jGroupRow = CreateLabel(JsonArray(), "", "bottom_title",128.0f, 10.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 510 (bottom)********************************************************* 508 / 487 /300
|
|
jGroupRow = CreateButtonImage(JsonArray(), "nui_shld_left", "btn_prev_b", 40.0f, 40.0f);
|
|
// Removed TextEditBox for mobile
|
|
jGroupRow = CreateTextEditBox(jGroupRow, "place_holder", "txt_model_number_b", 3, FALSE, 40.0, 40.0);
|
|
//CreateLabel(jGroupRow, "", "txt_model_number_b", 40.0, 40.0);
|
|
jGroupRow = CreateButtonImage(jGroupRow, "nui_shld_right", "btn_next_b", 40.0f, 40.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 511 (blank spacer)
|
|
jGroupRow = CreateLabel(JsonArray(), "", "blank_space",128.0f, 20.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 512 (light)********************************************************** 508 / 487 /300
|
|
jGroupRow = CreateButtonSelect(JsonArray(), "Randomize", "btn_randomize", 128.0f, 30.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiSpacer());
|
|
jRow = JsonArrayInsert(JsonArray(), NuiHeight(NuiWidth(NuiGroup(NuiCol(jGroupCol)), 143.0), 442.0));
|
|
// Make the Color Group.
|
|
// Row 550 (groups)********************************************************* 508 / 361 / 184
|
|
json jImage = NuiEnabled(NuiId(NuiImage(NuiBind("color_pallet_image"), JsonInt(0), JsonInt(0), JsonInt(1)), "color_pallet"), NuiBind("color_pallet_event"));
|
|
jImage = NuiWidth(jImage, 320.0); // 256 + 64
|
|
jImage = NuiHeight(jImage, 220.0); // 176 + 44
|
|
jImage = NuiTooltip(jImage, NuiBind("color_pallet_tooltip"));
|
|
json jIndicator = JsonArrayInsert(JsonArray(), NuiDrawListRect(JsonBool(TRUE), NuiColor(255,255,255), JsonBool(FALSE), JsonFloat(2.0), NuiBind("color_pallet_pointer")));
|
|
jImage = NuiDrawList(jImage, JsonBool(FALSE), jIndicator);
|
|
jGroupRow = JsonArrayInsert(JsonArray(), jImage);
|
|
jGroupCol = JsonArrayInsert(JsonArray(), NuiRow(jGroupRow));
|
|
// Row 551 (groups)********************************************************* 508 / 379 /202
|
|
jGroupRow = CreateLabel(JsonArray(), "Part To Color", "lbl_color_parts", 320.0f, 10.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 552 (groups)********************************************************* 508 / 417 /240
|
|
jGroupRow = CreateButtonSelect(JsonArray(), "Right", "btn_right_part_color", 98.0, 30.0, "btn_right_part_color_tooltip");
|
|
jGroupRow = JsonArrayInsert(jGroupRow, NuiSpacer());
|
|
jGroupRow = CreateButtonSelect(jGroupRow, "All", "btn_all_color", 98.0, 30.0, "btn_all_color_tooltip");
|
|
jGroupRow = JsonArrayInsert(jGroupRow, NuiSpacer());
|
|
jGroupRow = CreateButtonSelect(jGroupRow, "Left", "btn_left_part_color", 98.0, 30.0, "btn_left_part_color_tooltip");
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 553 (groups)********************************************************* 508 / 435 / 258
|
|
jGroupRow = CreateLabel(JsonArray(), "Part Color To Reset", "lbl_reset_parts", 320.0f, 10.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 554 (groups)********************************************************* 508 / 473 /296
|
|
jGroupRow = CreateButton(JsonArray(), "Right", "btn_right_part_reset", 98.0, 30.0, -1.0, "btn_right_part_reset_tooltip");
|
|
jGroupRow = JsonArrayInsert(jGroupRow, NuiSpacer());
|
|
jGroupRow = CreateButton(jGroupRow, "All", "btn_all_reset", 50.0, 30.0, -1.0, "btn_all_reset_tooltip");
|
|
jGroupRow = JsonArrayInsert(jGroupRow, NuiSpacer());
|
|
jGroupRow = CreateButton(jGroupRow, "Left", "btn_left_part_reset", 98.0, 30.0, -1.0, "btn_left_part_reset_tooltip");
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 555 (groups)********************************************************* 508 / 491 / 314
|
|
jGroupRow = CreateLabel(JsonArray(), "Material to Color", "lbl_material_color", 320.0f, 10.0f);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 556 (groups)********************************************************* 508 / 529 /352
|
|
jGroupRow = CreateButtonSelect(JsonArray(), "Cloth 1", "btn_material_0", 98.0, 30.0);
|
|
jGroupRow = JsonArrayInsert(jGroupRow, NuiSpacer());
|
|
jGroupRow = CreateButtonSelect(jGroupRow, "Leather 1", "btn_material_2", 98.0, 30.0);
|
|
jGroupRow = JsonArrayInsert(jGroupRow, NuiSpacer());
|
|
jGroupRow = CreateButtonSelect(jGroupRow, "Metal 1", "btn_material_4", 98.0, 30.0);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
// Row 557 (groups)********************************************************* 508 / 567 / 390
|
|
jGroupRow = CreateButtonSelect(JsonArray(), "Cloth 2", "btn_material_1", 98.0, 30.0);
|
|
jGroupRow = JsonArrayInsert(jGroupRow, NuiSpacer());
|
|
jGroupRow = CreateButtonSelect(jGroupRow, "Leather 2", "btn_material_3", 98.0, 30.0);
|
|
jGroupRow = JsonArrayInsert(jGroupRow, NuiSpacer());
|
|
jGroupRow = CreateButtonSelect(jGroupRow, "Metal 2", "btn_material_5", 98.0, 30.0);
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiRow(jGroupRow));
|
|
jGroupCol = JsonArrayInsert(jGroupCol, NuiSpacer());
|
|
jRow = JsonArrayInsert(jRow, NuiHeight(NuiWidth(NuiGroup(NuiCol(jGroupCol)), 339.0), 442.0)); // 275 398
|
|
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
|
|
json jLayout = NuiCol(jCol);
|
|
// Get the window location to restore it from the database.
|
|
json jGeometry = JsonObjectGet(jCraft, "CRAFT_MENU");
|
|
float fX = JsonGetFloat(JsonObjectGet(jGeometry, "x"));
|
|
float fY = JsonGetFloat(JsonObjectGet(jGeometry, "y"));
|
|
string sPCWindow;
|
|
int nToken = SetWindow(oPC, jLayout, "crafting_nui", "Crafting",
|
|
fX, fY, 508.0, 700.0, FALSE, FALSE, FALSE, FALSE, TRUE, "pe_crafting"); // 444 645
|
|
// Set all binds, events, and watches.
|
|
NuiSetBindWatch (oPC, nToken, "window_geometry", TRUE);
|
|
int nItem = JsonGetInt(JsonObjectGet(jCraft, CRAFT_ITEM_SELECTION));
|
|
object oItem = GetSelectedItem(oTarget, nItem);
|
|
// Row 1
|
|
NuiSetBind(oPC, nToken, "txt_item_name", JsonString(GetName(oItem)));
|
|
NuiSetBind(oPC, nToken, "txt_item_name_event", JsonBool(TRUE));
|
|
NuiSetBindWatch(oPC, nToken, "txt_item_name", TRUE);
|
|
// Row 2
|
|
NuiSetBind(oPC, nToken, "btn_info_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_info_tooltip", JsonString(" Look at and change item information"));
|
|
NuiSetBind(oPC, nToken, "btn_wardrobe_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_wardrobe_tooltip", JsonString(" Use your wardrobe to save/load item appearances"));
|
|
int nLight = GetLocalInt(oPC, CRAFT_HIGHLIGHT) + GetLocalInt(oPC, CRAFT_ULTRALIGHT);
|
|
NuiSetBind(oPC, nToken, "btn_highlight", JsonBool(nLight));
|
|
NuiSetBind(oPC, nToken, "btn_highlight_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_highlight_tooltip", JsonString(" Left click for White light, Right click for Ultravision"));
|
|
// Row 3
|
|
NuiSetBind(oPC, nToken, "btn_save_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_save_tooltip", JsonString(" Save current changes"));
|
|
NuiSetBind(oPC, nToken, "btn_select_target_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_cancel_label", JsonString("Exit"));
|
|
NuiSetBind(oPC, nToken, "btn_cancel_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_cancel_tooltip", JsonString(" Exit the crafting menu"));
|
|
// Row 4 Labels.
|
|
// Row 5 Groups.
|
|
// Row 51 title.
|
|
// Row 52
|
|
NuiSetBind(oPC, nToken, "item_combo_selected", JsonInt(nItem));
|
|
NuiSetBind(oPC, nToken, "item_combo_event", JsonBool(TRUE));
|
|
NuiSetBindWatch(oPC, nToken, "item_combo_selected", TRUE);
|
|
// Row 53 title.
|
|
// Row 54
|
|
int nSelected = JsonGetInt(JsonObjectGet(jCraft, CRAFT_MODEL_SELECTION));
|
|
if(nItem == 1 || nItem == 2 || nItem == 4)
|
|
{
|
|
if(GetHiddenWhenEquipped(oItem)) nSelected = 1;
|
|
else nSelected = 0;
|
|
}
|
|
NuiSetBind(oPC, nToken, "model_combo_selected", JsonInt (nSelected));
|
|
NuiSetBind(oPC, nToken, "model_combo_event", JsonBool (TRUE));
|
|
NuiSetBindWatch(oPC, nToken, "model_combo_selected", TRUE);
|
|
// Row 55, 56, 57 titles
|
|
// Row 58 top, 59 middle, 510 bottom
|
|
string sModelTop, sModelMiddle, sModelBottom;
|
|
// Model Group
|
|
if(ai_GetIsWeapon(oItem))
|
|
{
|
|
int nModel = GetItemAppearance(oItem, ITEM_APPR_TYPE_WEAPON_MODEL, 0);
|
|
int nColor = GetItemAppearance(oItem, ITEM_APPR_TYPE_WEAPON_COLOR, 0);
|
|
int nModelNumber = (nModel * 10) + nColor;
|
|
sModelTop = IntToString(nModelNumber);
|
|
nModel = GetItemAppearance(oItem, ITEM_APPR_TYPE_WEAPON_MODEL, 1);
|
|
nColor = GetItemAppearance(oItem, ITEM_APPR_TYPE_WEAPON_COLOR, 1);
|
|
nModelNumber = (nModel * 10) + nColor;
|
|
sModelMiddle = IntToString(nModelNumber);
|
|
nModel = GetItemAppearance(oItem, ITEM_APPR_TYPE_WEAPON_MODEL, 2);
|
|
nColor = GetItemAppearance(oItem, ITEM_APPR_TYPE_WEAPON_COLOR, 2);
|
|
nModelNumber = (nModel * 10) + nColor;
|
|
sModelBottom = IntToString(nModelNumber);
|
|
// Row 55
|
|
NuiSetBind(oPC, nToken, "top_title_label", JsonString("Top"));
|
|
// Row 56
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_t_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_t", JsonString(sModelTop));
|
|
NuiSetBind(oPC, nToken, "btn_prev_t_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_next_t_event", JsonBool(TRUE));
|
|
// Row 57
|
|
NuiSetBind(oPC, nToken, "middle_title_label", JsonString("Middle"));
|
|
// Row 58
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_m_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_m", JsonString(sModelMiddle));
|
|
NuiSetBind(oPC, nToken, "btn_prev_m_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_next_m_event", JsonBool(TRUE));
|
|
// Row 59
|
|
NuiSetBind(oPC, nToken, "bottom_title_label", JsonString("Bottom"));
|
|
// Row 510
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_b_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_b", JsonString(sModelBottom));
|
|
NuiSetBind(oPC, nToken, "btn_prev_b_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_next_b_event", JsonBool(TRUE));
|
|
// Row 511
|
|
NuiSetBind(oPC, nToken, "btn_randomize_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_randomize_tooltip", JsonString(" Randomize the selected weapon"));
|
|
}
|
|
// Armor and clothing
|
|
else if(nItem == 0)
|
|
{
|
|
nSelected = GetArmorModelSelected(oPC);
|
|
// These models only have one side so make sure we are not linked.
|
|
if (nSelected == ITEM_APPR_ARMOR_MODEL_NECK ||
|
|
nSelected == ITEM_APPR_ARMOR_MODEL_TORSO ||
|
|
nSelected == ITEM_APPR_ARMOR_MODEL_BELT ||
|
|
nSelected == ITEM_APPR_ARMOR_MODEL_PELVIS ||
|
|
nSelected == ITEM_APPR_ARMOR_MODEL_ROBE)
|
|
{
|
|
sModelMiddle = IntToString(GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, nSelected));
|
|
// Row 55
|
|
NuiSetBind(oPC, nToken, "top_title_label", JsonString(""));
|
|
// Row 56
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_t_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "txt_model_name_t", JsonString(""));
|
|
NuiSetBind(oPC, nToken, "btn_prev_t_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_next_t_event", JsonBool(FALSE));
|
|
// Row 57
|
|
NuiSetBind(oPC, nToken, "middle_title_label", JsonString("Model"));
|
|
// Row 58
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_m_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_m", JsonString(sModelMiddle));
|
|
NuiSetBind(oPC, nToken, "btn_prev_m_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_next_m_event", JsonBool(TRUE));
|
|
// Row 59
|
|
NuiSetBind(oPC, nToken, "bottom_title_label", JsonString(""));
|
|
// Row 510
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_b_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_b", JsonString(""));
|
|
NuiSetBind(oPC, nToken, "btn_prev_b_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_next_b_event", JsonBool(FALSE));
|
|
}
|
|
else
|
|
{
|
|
sModelTop = IntToString(GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, nSelected));
|
|
if(nSelected == ITEM_APPR_ARMOR_MODEL_RTHIGH) nSelected--;
|
|
else nSelected++;
|
|
sModelBottom = IntToString(GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, nSelected));
|
|
// Row 55
|
|
NuiSetBind(oPC, nToken, "top_title_label", JsonString("Right"));
|
|
// Row 56
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_t_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_t", JsonString(sModelTop));
|
|
NuiSetBind(oPC, nToken, "btn_prev_t_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_next_t_event", JsonBool(TRUE));
|
|
// Row 57
|
|
NuiSetBind(oPC, nToken, "middle_title_label", JsonString("Right & Left"));
|
|
// Row 58
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_m_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_m", JsonString(sModelTop));
|
|
NuiSetBind(oPC, nToken, "btn_prev_m_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_next_m_event", JsonBool(TRUE));
|
|
// Row 59
|
|
NuiSetBind(oPC, nToken, "bottom_title_label", JsonString("Left"));
|
|
// Row 510
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_b_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_b", JsonString(sModelBottom));
|
|
NuiSetBind(oPC, nToken, "btn_prev_b_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_next_b_event", JsonBool(TRUE));
|
|
}
|
|
// Row 511
|
|
NuiSetBind(oPC, nToken, "btn_randomize_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_randomize_tooltip", JsonString(" Randomize the selected armor"));
|
|
}
|
|
// Shields, Cloaks, and Helmets.
|
|
else
|
|
{
|
|
sModelMiddle = IntToString(GetItemAppearance(oItem, ITEM_APPR_TYPE_SIMPLE_MODEL, 0));
|
|
// Row 55
|
|
NuiSetBind(oPC, nToken, "top_title_label", JsonString(""));
|
|
// Row 56
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_t_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_t", JsonString(""));
|
|
NuiSetBind(oPC, nToken, "btn_prev_t_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_next_t_event", JsonBool(FALSE));
|
|
// Row 57
|
|
NuiSetBind(oPC, nToken, "middle_title_label", JsonString("Model"));
|
|
// Row 58
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_m_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_m", JsonString(sModelMiddle));
|
|
NuiSetBind(oPC, nToken, "btn_prev_m_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_next_m_event", JsonBool(TRUE));
|
|
// Row 59
|
|
NuiSetBind(oPC, nToken, "bottom_title_label", JsonString(""));
|
|
// Row 510
|
|
//NuiSetBind(oPC, nToken, "txt_model_number_b_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "txt_model_number_b", JsonString(""));
|
|
NuiSetBind(oPC, nToken, "btn_prev_b_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_next_b_event", JsonBool(FALSE));
|
|
// Row 511
|
|
NuiSetBind(oPC, nToken, "btn_randomize_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_randomize_tooltip", JsonString(" Randomize the selected item"));
|
|
}
|
|
// Color Group
|
|
if(ai_GetIsWeapon(oItem) || ai_GetIsShield(oItem))
|
|
{
|
|
// Need to disable the color widgets.
|
|
// Row 511
|
|
NuiSetBind(oPC, nToken, "color_pallet_image", JsonString("gui_pal_tattoo"));
|
|
NuiSetBind(oPC, nToken, "color_pallet_image_event", JsonBool(FALSE));
|
|
// Row 512 - Label Part to Color
|
|
// Row 5l3
|
|
NuiSetBind(oPC, nToken, "btn_right_part_color_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_all_color_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_color_event", JsonBool(FALSE));
|
|
// Row 514 - Label Part Color to Reset
|
|
// Row 515
|
|
NuiSetBind(oPC, nToken, "btn_right_part_reset_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_all_reset_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_reset_event", JsonBool(FALSE));
|
|
// Row 516 - Label Material to Color
|
|
// Row 517
|
|
NuiSetBind(oPC, nToken, "btn_material_0", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_material_2", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_material_4", JsonBool(FALSE));
|
|
// Row 518
|
|
NuiSetBind(oPC, nToken, "btn_material_1", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_material_3", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_material_5", JsonBool(FALSE));
|
|
SetMaterialButtons(oPC, nToken, -1);
|
|
}
|
|
// Armor and clothing
|
|
else if(nItem == 0)
|
|
{
|
|
// Row 511
|
|
string sColorPallet = GetLocalString(oPC, CRAFT_COLOR_PALLET);
|
|
if(sColorPallet == "") sColorPallet = "gui_pal_tattoo";
|
|
int nMaterialSelected = JsonGetInt(JsonObjectGet(jCraft, CRAFT_MATERIAL_SELECTION));
|
|
int nModelSelected = GetArmorModelSelected(oPC);
|
|
// Row 511
|
|
NuiSetBind(oPC, nToken, "color_pallet_image", JsonString(sColorPallet));
|
|
NuiSetBind(oPC, nToken, "color_pallet_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "color_pallet_tooltip", JsonString(" Select a color or use the mouse wheel"));
|
|
int nSelectedRight, nSelectedAll, nSelectedLeft;
|
|
string sColorAll = IntToString(GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_COLOR, nMaterialSelected));
|
|
// These models only have one side so make sure we are not linked.
|
|
if (nModelSelected == ITEM_APPR_ARMOR_MODEL_NECK ||
|
|
nModelSelected == ITEM_APPR_ARMOR_MODEL_TORSO ||
|
|
nModelSelected == ITEM_APPR_ARMOR_MODEL_BELT ||
|
|
nModelSelected == ITEM_APPR_ARMOR_MODEL_PELVIS ||
|
|
nModelSelected == ITEM_APPR_ARMOR_MODEL_ROBE)
|
|
{
|
|
// Row 512 - Label Part to Color
|
|
// Row 5l3
|
|
int nPartColor = GetHasPartColor(oItem, nModelSelected, "Right");
|
|
nSelectedRight = JsonGetInt(JsonObjectGet(jCraft, CRAFT_RIGHT_PART_COLOR));
|
|
if(!nSelectedRight && nPartColor)
|
|
{
|
|
nSelectedRight = TRUE;
|
|
nSelectedLeft = FALSE;
|
|
}
|
|
nSelectedAll = !nSelectedRight;
|
|
jCraft = JsonObjectSet(jCraft, CRAFT_ALL_COLOR, JsonBool(nSelectedAll));
|
|
jCraft = JsonObjectSet(jCraft, CRAFT_RIGHT_PART_COLOR, JsonBool(nSelectedRight));
|
|
NuiSetBind(oPC, nToken, "btn_right_part_color", JsonBool(nSelectedRight));
|
|
NuiSetBind(oPC, nToken, "btn_right_part_color_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_all_color", JsonBool(nSelectedAll));
|
|
NuiSetBind(oPC, nToken, "btn_all_color_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_color", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_color_event", JsonBool(FALSE));
|
|
// Row 514 - Label Part Color to Reset
|
|
// Row 5l5
|
|
nSelectedRight = GetHasPartColor(oItem, nModelSelected, "Right");
|
|
nSelectedAll = nSelectedRight;
|
|
NuiSetBind(oPC, nToken, "btn_right_part_reset_event", JsonBool(nSelectedRight));
|
|
NuiSetBind(oPC, nToken, "btn_all_reset_event", JsonBool(nSelectedAll));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_reset_event", JsonBool(FALSE));
|
|
}
|
|
else
|
|
{
|
|
// Row 512 - Label Part to Color
|
|
// Row 5l3
|
|
int nPartColor = GetHasPartColor(oItem, nModelSelected, "Right");
|
|
nSelectedRight = JsonGetInt(JsonObjectGet(jCraft, CRAFT_RIGHT_PART_COLOR));
|
|
if(!nSelectedRight && nPartColor)
|
|
{
|
|
nSelectedRight = TRUE;
|
|
nSelectedLeft = FALSE;
|
|
}
|
|
else
|
|
{
|
|
nPartColor = GetHasPartColor(oItem, nModelSelected, "Left");
|
|
nSelectedLeft = JsonGetInt(JsonObjectGet(jCraft, CRAFT_LEFT_PART_COLOR));
|
|
if(!nSelectedLeft && nPartColor)
|
|
{
|
|
nSelectedLeft = TRUE;
|
|
nSelectedRight = FALSE;
|
|
}
|
|
}
|
|
nSelectedAll = !nSelectedRight && !nSelectedLeft;
|
|
jCraft = JsonObjectSet(jCraft, CRAFT_LEFT_PART_COLOR, JsonBool(nSelectedLeft));
|
|
jCraft = JsonObjectSet(jCraft, CRAFT_ALL_COLOR, JsonBool(nSelectedAll));
|
|
jCraft = JsonObjectSet(jCraft, CRAFT_RIGHT_PART_COLOR, JsonBool(nSelectedRight));
|
|
NuiSetBind(oPC, nToken, "btn_right_part_color", JsonBool(nSelectedRight));
|
|
NuiSetBind(oPC, nToken, "btn_right_part_color_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_all_color", JsonBool(nSelectedAll));
|
|
NuiSetBind(oPC, nToken, "btn_all_color_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_color", JsonBool(nSelectedLeft));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_color_event", JsonBool(TRUE));
|
|
// Row 514 - Label Part Color to Reset
|
|
// Row 5l5
|
|
nSelectedRight = GetHasPartColor(oItem, nModelSelected, "Right");
|
|
nSelectedLeft = GetHasPartColor(oItem, nModelSelected, "Left");
|
|
nSelectedAll = nSelectedRight || nSelectedLeft;
|
|
NuiSetBind(oPC, nToken, "btn_right_part_reset_event", JsonBool(nSelectedRight));
|
|
NuiSetBind(oPC, nToken, "btn_all_reset_event", JsonBool(nSelectedAll));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_reset_event", JsonBool(nSelectedLeft));
|
|
}
|
|
int nColor;
|
|
if(!JsonGetInt(NuiGetBind(oPC, nToken, "btn_all_color")))
|
|
{
|
|
int nModelSelected = GetArmorModelSelected(oPC);
|
|
if(!JsonGetInt(JsonObjectGet(jCraft, CRAFT_RIGHT_PART_COLOR)))
|
|
{
|
|
// Note: Right Thigh and Left Thigh are backwards so this fixes that!
|
|
if (nModelSelected == ITEM_APPR_ARMOR_MODEL_RTHIGH) nModelSelected--;
|
|
else nModelSelected++;
|
|
}
|
|
int nIndex = ITEM_APPR_ARMOR_NUM_COLORS + (nModelSelected * ITEM_APPR_ARMOR_NUM_COLORS) + nMaterialSelected;
|
|
nColor = GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_COLOR, nIndex);
|
|
}
|
|
else nColor = 255;
|
|
if(nColor == 255) nColor = GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_COLOR, nMaterialSelected);
|
|
float fPointX = IntToFloat((nColor - ((nColor / 16) * 16)) * 20);
|
|
float fPointY = IntToFloat((nColor / 16) * 20);
|
|
NuiSetBind(oPC, nToken, "color_pallet_pointer", NuiRect(fPointX, fPointY, 20.0, 20.0));
|
|
// Row 516 - Label Material to Color
|
|
// Row 517 & 518
|
|
NuiSetBind(oPC, nToken, "btn_right_part_color_tooltip", JsonString(" Select the right part to be uniquely colored"));
|
|
NuiSetBind(oPC, nToken, "btn_all_color_tooltip", JsonString(" Select all parts to be colored"));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_color_tooltip", JsonString(" Select the left part to be uniquely colored"));
|
|
NuiSetBind(oPC, nToken, "btn_right_part_reset_tooltip", JsonString(" Clears the right part's unique color"));
|
|
NuiSetBind(oPC, nToken, "btn_all_reset_tooltip", JsonString(" Clears all parts unique colors"));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_reset_tooltip", JsonString(" Clears the left part's unique color"));
|
|
nSelected = JsonGetInt(JsonObjectGet(jCraft, CRAFT_MATERIAL_SELECTION));
|
|
SetMaterialButtons(oPC, nToken, nSelected);
|
|
SetLocalJson(oPC, CRAFT_JSON, jCraft);
|
|
}
|
|
// Cloaks and Helmets.
|
|
else
|
|
{
|
|
// Row 511
|
|
string sColorPallet = GetLocalString(oPC, CRAFT_COLOR_PALLET);
|
|
if(sColorPallet == "") sColorPallet = "gui_pal_tattoo";
|
|
int nMaterialSelected = JsonGetInt(JsonObjectGet(jCraft, CRAFT_MATERIAL_SELECTION));
|
|
int nModelSelected = JsonGetInt(JsonObjectGet(jCraft, CRAFT_MODEL_SELECTION));
|
|
int nColor = GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_COLOR, nMaterialSelected);
|
|
float fPointX = IntToFloat((nColor - ((nColor / 16) * 16)) * 20);
|
|
float fPointY = IntToFloat((nColor / 16) * 20);
|
|
NuiSetBind(oPC, nToken, "color_pallet_pointer", NuiRect(fPointX, fPointY, 20.0, 20.0));
|
|
NuiSetBind(oPC, nToken, "color_pallet_image", JsonString(sColorPallet));
|
|
NuiSetBind(oPC, nToken, "color_pallet_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "color_pallet_tooltip", JsonString(" Select a color or use the mouse wheel"));
|
|
// Row 512 - Label Part to Color
|
|
// Row 5l3
|
|
NuiSetBind(oPC, nToken, "btn_right_part_color_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_right_part_color_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_all_color_event", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_all_color", JsonBool(TRUE));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_color_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_color", JsonBool(FALSE));
|
|
// Row 514 - Label Part Color to Reset
|
|
// Row 5l5
|
|
NuiSetBind(oPC, nToken, "btn_right_part_reset_event", JsonBool(FALSE));
|
|
//NuiSetBind(oPC, nToken, "btn_all_reset_event", JsonBool(FALSE));
|
|
NuiSetBind(oPC, nToken, "btn_left_part_reset_event", JsonBool(FALSE));
|
|
// Row 516 - Label Material to Color
|
|
// Row 517 & 518
|
|
nSelected = JsonGetInt(JsonObjectGet(jCraft, CRAFT_MATERIAL_SELECTION));
|
|
SetMaterialButtons(oPC, nToken, nSelected);
|
|
}
|
|
// Lets make sure we clean up any cool down variables.
|
|
//DeleteLocalInt(oPC, CRAFT_COOL_DOWN);
|
|
}
|
|
json CreateItemCombo(object oPC, json jRow, string sComboBind)
|
|
{
|
|
int nCnt;
|
|
// Create the list.
|
|
json jCombo = JsonArrayInsert(JsonArray(), NuiComboEntry("Armor", 0));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Cloak", 1));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Headgear", 2));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Right hand", 3));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Left hand", 4));
|
|
return CreateCombo(jRow, jCombo, sComboBind, 128.0, 40.0);
|
|
}
|
|
json CreateModelCombo(object oPC, object oTarget, json jRow, string sComboBind)
|
|
{
|
|
float fFacing = GetFacing(oTarget);
|
|
json jCombo, jCraft = GetLocalJson(oPC, CRAFT_JSON);
|
|
int nSelected = JsonGetInt(JsonObjectGet(jCraft, CRAFT_ITEM_SELECTION));
|
|
// Create the list.
|
|
// Armor.
|
|
if(nSelected == 0)
|
|
{
|
|
fFacing += 180.0f;
|
|
if (fFacing > 359.0) fFacing -=359.0;
|
|
AssignCommand(oPC, SetCameraFacing(fFacing, 4.5f, 75.0, CAMERA_TRANSITION_TYPE_VERY_FAST));
|
|
jCombo = JsonArrayInsert(JsonArray(), NuiComboEntry("Neck", 0));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Shoulder", 1));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Bicep", 2));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Forearm", 3));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Hand", 4));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Torso", 5));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Belt", 6));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Pelvis", 7));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Thigh", 8));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Shin", 9));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Foot", 10));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Robe", 11));
|
|
}
|
|
// Cloak.
|
|
else if(nSelected == 1)
|
|
{
|
|
if(fFacing > 359.0) fFacing -=359.0;
|
|
AssignCommand (oPC, SetCameraFacing(fFacing, 4.5f, 75.0, CAMERA_TRANSITION_TYPE_VERY_FAST));
|
|
jCombo = JsonArrayInsert(JsonArray(), NuiComboEntry("Cloak", 0));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Invisible", 1));
|
|
}
|
|
// Headgear.
|
|
else if (nSelected == 2)
|
|
{
|
|
fFacing += 180.0f;
|
|
if(fFacing > 359.0) fFacing -=359.0;
|
|
AssignCommand(oPC, SetCameraFacing(fFacing, 2.5f, 75.0, CAMERA_TRANSITION_TYPE_VERY_FAST));
|
|
jCombo = JsonArrayInsert(JsonArray(), NuiComboEntry("Headgear", 0));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Invisible", 1));
|
|
}
|
|
// Weapon.
|
|
else if (nSelected == 3)
|
|
{
|
|
// If they are changing a bow then face the opposite side.
|
|
object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
|
|
int nBaseItemType = GetBaseItemType(oItem);
|
|
if(nBaseItemType == BASE_ITEM_LONGBOW || nBaseItemType == BASE_ITEM_SHORTBOW) fFacing -= 90.00;
|
|
// This will make the camera face a melee weapon.
|
|
else fFacing += 90.0;
|
|
if(fFacing > 359.0) fFacing -=359.0;
|
|
AssignCommand(oPC, SetCameraFacing(fFacing, 3.5f, 75.0, CAMERA_TRANSITION_TYPE_VERY_FAST));
|
|
jCombo = JsonArrayInsert(JsonArray(), NuiComboEntry("Weapon", 0));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Acidic", 1));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Frost", 2));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Electric", 3));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Unholy", 4));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Flaming", 5));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Holy", 6));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Sonic", 7));
|
|
}
|
|
// Weapon/Shield.
|
|
else if(nSelected == 4)
|
|
{
|
|
fFacing += 270.0f;
|
|
if(fFacing > 359.0) fFacing -=359.0;
|
|
AssignCommand(oPC, SetCameraFacing(fFacing, 3.5f, 75.0, CAMERA_TRANSITION_TYPE_VERY_FAST));
|
|
object oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
|
|
if(ai_GetIsShield(oItem))
|
|
{
|
|
jCombo = JsonArrayInsert(JsonArray(), NuiComboEntry("Shield", 0));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Invisible", 1));
|
|
}
|
|
else
|
|
{
|
|
jCombo = JsonArrayInsert(JsonArray(), NuiComboEntry("Weapon", 0));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Acidic", 1));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Frost", 2));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Electric", 3));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Unholy", 4));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Flaming", 5));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Holy", 6));
|
|
jCombo = JsonArrayInsert(jCombo, NuiComboEntry("Sonic", 7));
|
|
}
|
|
}
|
|
return CreateCombo(jRow, jCombo, sComboBind, 128.0, 40.0);
|
|
}
|
|
void SetMaterialButtons(object oPC, int nToken, int nMaterial)
|
|
{
|
|
int nIndex, bBool, bUseable;
|
|
string sIndex;
|
|
if(nMaterial > -1) bUseable = TRUE;
|
|
for(nIndex = 0;nIndex < 6;nIndex++)
|
|
{
|
|
if(nIndex == nMaterial) bBool = TRUE;
|
|
else bBool = FALSE;
|
|
sIndex = IntToString(nIndex);
|
|
NuiSetBind(oPC, nToken, "btn_material_" + sIndex + "_event", JsonBool(bUseable));
|
|
NuiSetBind(oPC, nToken, "btn_material_" + sIndex, JsonBool(bBool));
|
|
}
|
|
}
|
|
object GetSelectedItem(object oTarget, int nItemSelected)
|
|
{
|
|
if(nItemSelected == 0) return GetItemInSlot(INVENTORY_SLOT_CHEST, oTarget);
|
|
else if(nItemSelected == 1) return GetItemInSlot(INVENTORY_SLOT_CLOAK, oTarget);
|
|
else if(nItemSelected == 2) return GetItemInSlot(INVENTORY_SLOT_HEAD, oTarget);
|
|
else if(nItemSelected == 3) return GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oTarget);
|
|
else if(nItemSelected == 4) return GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oTarget);
|
|
return OBJECT_INVALID;
|
|
}
|
|
int GetArmorModelSelected(object oPC)
|
|
{
|
|
json jCraft = GetLocalJson(oPC, CRAFT_JSON);
|
|
int nModelSelected = JsonGetInt(JsonObjectGet(jCraft, CRAFT_MODEL_SELECTION));
|
|
if(nModelSelected == 0) return ITEM_APPR_ARMOR_MODEL_NECK;
|
|
if(nModelSelected == 1) return ITEM_APPR_ARMOR_MODEL_RSHOULDER;
|
|
if(nModelSelected == 2) return ITEM_APPR_ARMOR_MODEL_RBICEP;
|
|
if(nModelSelected == 3) return ITEM_APPR_ARMOR_MODEL_RFOREARM;
|
|
if(nModelSelected == 4) return ITEM_APPR_ARMOR_MODEL_RHAND;
|
|
if(nModelSelected == 5) return ITEM_APPR_ARMOR_MODEL_TORSO;
|
|
if(nModelSelected == 6) return ITEM_APPR_ARMOR_MODEL_BELT;
|
|
if(nModelSelected == 7) return ITEM_APPR_ARMOR_MODEL_PELVIS;
|
|
if(nModelSelected == 8) return ITEM_APPR_ARMOR_MODEL_RTHIGH;
|
|
if(nModelSelected == 9) return ITEM_APPR_ARMOR_MODEL_RSHIN;
|
|
if(nModelSelected == 10) return ITEM_APPR_ARMOR_MODEL_RFOOT;
|
|
return ITEM_APPR_ARMOR_MODEL_ROBE;
|
|
}
|
|
int GetHasPartColor(object oItem, int nPart, string sSide)
|
|
{
|
|
json jItem = ObjectToJson(oItem);
|
|
string sPartName = "APart_";
|
|
if(sSide == "Left")
|
|
{
|
|
// Note: Right Thigh and Left Thigh are backwards so this fixes that!
|
|
if (nPart == ITEM_APPR_ARMOR_MODEL_RTHIGH) nPart--;
|
|
else nPart++;
|
|
}
|
|
sPartName += IntToString(nPart) + "_Col_";
|
|
int nPartColor = JsonGetInt(GffGetByte(jItem, sPartName + "0"));
|
|
nPartColor += JsonGetInt(GffGetByte(jItem, sPartName + "1"));
|
|
nPartColor += JsonGetInt(GffGetByte(jItem, sPartName + "2"));
|
|
nPartColor += JsonGetInt(GffGetByte(jItem, sPartName + "3"));
|
|
nPartColor += JsonGetInt(GffGetByte(jItem, sPartName + "4"));
|
|
nPartColor += JsonGetInt(GffGetByte(jItem, sPartName + "5"));
|
|
return nPartColor;
|
|
}
|
|
int StartingUp(object oPC)
|
|
{
|
|
if(GetLocalInt(oPC, AI_ADD_PLUGIN))
|
|
{
|
|
json jPlugin = JsonArray();
|
|
jPlugin = JsonArrayInsert(jPlugin, JsonString("pi_crafting"));
|
|
jPlugin = JsonArrayInsert(jPlugin, JsonInt(FALSE));
|
|
jPlugin = JsonArrayInsert(jPlugin, JsonString("Item Crafting"));
|
|
jPlugin = JsonArrayInsert(jPlugin, JsonString("isk_x2cweap"));
|
|
json jPlugins = GetLocalJson(oPC, AI_JSON_PLUGINS);
|
|
jPlugins = JsonArrayInsert(jPlugins, jPlugin);
|
|
SetLocalJson(oPC, AI_JSON_PLUGINS, jPlugin);
|
|
SetLocalInt(oPC, AI_PLUGIN_SET, TRUE);
|
|
return TRUE;
|
|
}
|
|
if(!GetLocalInt(oPC, AI_STARTING_UP)) return FALSE;
|
|
return TRUE;
|
|
}
|
|
|