Initial Commit
Initial Commit [v1.32PRC8]
This commit is contained in:
494
_module/nss/inc_examine.nss
Normal file
494
_module/nss/inc_examine.nss
Normal file
@@ -0,0 +1,494 @@
|
||||
/*
|
||||
Examine NUI Windows
|
||||
Created By: Daz
|
||||
*/
|
||||
|
||||
#include "inc_nui"
|
||||
#include "inc_util"
|
||||
|
||||
const string EXAMINE_NUI_WINDOW_ID = "EXAMINEWINDOW";
|
||||
const string EXAMINE_WINDOW_GEOMETRY_JSON = "EXAMINE_WINDOW_GEOMETRY_JSON";
|
||||
const string EXAMINE_GENERIC_WINDOW_JSON = "EXAMINE_GENERIC_WINDOW_JSON";
|
||||
const string EXAMINE_ITEM_WINDOW_JSON = "EXAMINE_ITEM_WINDOW_JSON";
|
||||
|
||||
const string EXAMINE_CURRENT_WINDOW_TYPE = "EXAMINE_CURRENT_WINDOW_TYPE";
|
||||
const string EXAMINE_CURRENT_OBJECT = "EXAMINE_CURRENT_OBJECT";
|
||||
|
||||
const float EXAMINE_GENERIC_WINDOW_WIDTH = 500.0f;
|
||||
const float EXAMINE_GENERIC_WINDOW_HEIGHT = 255.0f;
|
||||
|
||||
const float EXAMINE_ITEM_WINDOW_WIDTH = 500.0f;
|
||||
const float EXAMINE_ITEM_WINDOW_HEIGHT = 400.0f;
|
||||
|
||||
void Examine_DisablePanels(object oPlayer);
|
||||
json Examine_GetWindowJson(int nPanel);
|
||||
json Examine_GetGenericWindowJson();
|
||||
json Examine_GetItemWindowJson();
|
||||
float Examine_GetWindowWidth(int nPanel);
|
||||
float Examine_GetWindowHeight(int nPanel);
|
||||
|
||||
void Examine_HandleGUIEvents(object oPlayer, object oTarget, int nPanel);
|
||||
void Examine_HandleNUIEvents(object oPlayer, int nToken, string sType, string sElement, int nArrayIndex);
|
||||
|
||||
void Examine_SetData(object oPlayer, int nToken, object oTarget, int nPanel);
|
||||
void Examine_SetGenericData(object oPlayer, int nToken, object oTarget, int nPanel);
|
||||
string Examine_GetItemPropertyString(itemproperty ip);
|
||||
void Examine_SetItemData(object oPlayer, int nToken, object oItem);
|
||||
|
||||
|
||||
void Examine_DisablePanels(object oPlayer)
|
||||
{
|
||||
SetGuiPanelDisabled(oPlayer, GUI_PANEL_EXAMINE_CREATURE, TRUE);
|
||||
SetGuiPanelDisabled(oPlayer, GUI_PANEL_EXAMINE_ITEM, TRUE);
|
||||
SetGuiPanelDisabled(oPlayer, GUI_PANEL_EXAMINE_PLACEABLE, TRUE);
|
||||
SetGuiPanelDisabled(oPlayer, GUI_PANEL_EXAMINE_DOOR, TRUE);
|
||||
}
|
||||
|
||||
json Examine_GetWindowJson(int nPanel)
|
||||
{
|
||||
json jWindow;
|
||||
switch (nPanel)
|
||||
{
|
||||
case GUI_PANEL_EXAMINE_CREATURE:
|
||||
case GUI_PANEL_EXAMINE_PLACEABLE:
|
||||
case GUI_PANEL_EXAMINE_DOOR:
|
||||
jWindow = Examine_GetGenericWindowJson();
|
||||
break;
|
||||
case GUI_PANEL_EXAMINE_ITEM:
|
||||
jWindow = Examine_GetItemWindowJson();
|
||||
break;
|
||||
}
|
||||
|
||||
return jWindow;
|
||||
}
|
||||
|
||||
json Examine_GetGenericWindowJson()
|
||||
{
|
||||
json jRoot = GetLocalJson(GetModule(), EXAMINE_GENERIC_WINDOW_JSON);
|
||||
if (jRoot == JsonNull())
|
||||
{
|
||||
json jCol = JsonArray(), jRow;
|
||||
jRow = JsonArray();
|
||||
{
|
||||
json jSubCol, jSubRow;
|
||||
|
||||
jSubCol = JsonArray();
|
||||
// Image
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
json jImage = NuiImage(NuiBind("image_1"), JsonInt(NUI_ASPECT_EXACTSCALED), JsonInt(NUI_HALIGN_CENTER), JsonInt(NUI_VALIGN_TOP));
|
||||
jImage = NuiWidth(jImage, 64.0f);
|
||||
jImage = NuiHeight(jImage, 100.0f);
|
||||
jSubRow = JsonArrayInsert(jSubRow, jImage);
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
|
||||
// Spacer
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
jSubRow = JsonArrayInsert(jSubRow, NuiSpacer());
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
jRow = JsonArrayInsert(jRow, NuiCol(jSubCol));
|
||||
|
||||
jSubCol = JsonArray();
|
||||
// Description Label
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
json jHeader = NuiHeader(JsonString("Description"));
|
||||
jSubRow = JsonArrayInsert(jSubRow, jHeader);
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
|
||||
// Description Text
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
json jDescription = NuiText(NuiBind("description"));
|
||||
jDescription = NuiHeight(jDescription, 160.0f);
|
||||
jSubRow = JsonArrayInsert(jSubRow, jDescription);
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
|
||||
// Spacer
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
jSubRow = JsonArrayInsert(jSubRow, NuiSpacer());
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
jRow = JsonArrayInsert(jRow, NuiCol(jSubCol));
|
||||
}
|
||||
jCol = NuiInsertRow(jCol, jRow);
|
||||
|
||||
jRoot = NuiCol(jCol);
|
||||
SetLocalJson(GetModule(), EXAMINE_GENERIC_WINDOW_JSON, jRoot);
|
||||
}
|
||||
|
||||
return jRoot;
|
||||
}
|
||||
|
||||
json Examine_GetItemWindowJson()
|
||||
{
|
||||
json jRoot = GetLocalJson(GetModule(), EXAMINE_ITEM_WINDOW_JSON);
|
||||
if (jRoot == JsonNull())
|
||||
{
|
||||
json jCol = JsonArray(), jRow;
|
||||
jRow = JsonArray();
|
||||
{
|
||||
json jSubCol, jSubRow;
|
||||
|
||||
jSubCol = JsonArray();
|
||||
// Image
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
json jImage = NuiImage(NuiBind("image_1"), JsonInt(NUI_ASPECT_EXACTSCALED), JsonInt(NUI_HALIGN_CENTER), JsonInt(NUI_VALIGN_TOP));
|
||||
json jRect = NuiRect(0.0f, 0.0f, 64.0f, 192.0f);
|
||||
json jDrawList = JsonArray();
|
||||
jDrawList = JsonArrayInsert(jDrawList, NuiDrawListImage(NuiBind("complex_item"), NuiBind("image_2"), jRect, JsonInt(NUI_ASPECT_EXACTSCALED), JsonInt(NUI_HALIGN_CENTER), JsonInt(NUI_VALIGN_TOP)));
|
||||
jDrawList = JsonArrayInsert(jDrawList, NuiDrawListImage(NuiBind("complex_item"), NuiBind("image_3"), jRect, JsonInt(NUI_ASPECT_EXACTSCALED), JsonInt(NUI_HALIGN_CENTER), JsonInt(NUI_VALIGN_TOP)));
|
||||
jImage = NuiDrawList(jImage, JsonBool(TRUE), jDrawList);
|
||||
jImage = NuiWidth(jImage, 64.0f);
|
||||
jImage = NuiHeight(jImage, 192.0f);
|
||||
jSubRow = JsonArrayInsert(jSubRow, jImage);
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
|
||||
// Button?
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
json jButton = NuiButton(JsonString("Button?"));
|
||||
jButton = NuiId(jButton, "btn_button");
|
||||
jButton = NuiWidth(jButton, 64.0f);
|
||||
jButton = NuiHeight(jButton, 35.0f);
|
||||
jSubRow = JsonArrayInsert(jSubRow, jButton);
|
||||
}
|
||||
//jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
|
||||
// Spacer
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
jSubRow = JsonArrayInsert(jSubRow, NuiSpacer());
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
jRow = JsonArrayInsert(jRow, NuiCol(jSubCol));
|
||||
|
||||
jSubCol = JsonArray();
|
||||
// Description Label
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
json jHeader = NuiHeader(JsonString("Description"));
|
||||
jSubRow = JsonArrayInsert(jSubRow, jHeader);
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
|
||||
// Description Text
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
json jDescription = NuiText(NuiBind("description"));
|
||||
jDescription = NuiHeight(jDescription, 160.0f);
|
||||
jSubRow = JsonArrayInsert(jSubRow, jDescription);
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
|
||||
// Item Properties Label
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
json jHeader = NuiHeader(JsonString("Item Properties"));
|
||||
jSubRow = JsonArrayInsert(jSubRow, jHeader);
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
|
||||
// Item Properties List
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
json jListTemplate = JsonArray();
|
||||
{
|
||||
json jLabel = NuiLabel(NuiBind("property"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE));
|
||||
jLabel = NuiStyleForegroundColor(jLabel, NuiBind("color"));
|
||||
jListTemplate = JsonArrayInsert(jListTemplate, NuiListTemplateCell(jLabel, 0.0f, TRUE));
|
||||
}
|
||||
json jList = NuiList(jListTemplate, NuiBind("property"), 16.0f);
|
||||
jList = NuiHeight(jList, 105.0f);
|
||||
jSubRow = JsonArrayInsert(jSubRow, jList);
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
|
||||
// Spacer
|
||||
jSubRow = JsonArray();
|
||||
{
|
||||
jSubRow = JsonArrayInsert(jSubRow, NuiSpacer());
|
||||
}
|
||||
jSubCol = NuiInsertRow(jSubCol, jSubRow);
|
||||
jRow = JsonArrayInsert(jRow, NuiCol(jSubCol));
|
||||
}
|
||||
jCol = NuiInsertRow(jCol, jRow);
|
||||
|
||||
jRoot = NuiCol(jCol);
|
||||
SetLocalJson(GetModule(), EXAMINE_ITEM_WINDOW_JSON, jRoot);
|
||||
}
|
||||
|
||||
return jRoot;
|
||||
}
|
||||
|
||||
float Examine_GetWindowWidth(int nPanel)
|
||||
{
|
||||
float fWidth;
|
||||
switch (nPanel)
|
||||
{
|
||||
case GUI_PANEL_EXAMINE_CREATURE:
|
||||
case GUI_PANEL_EXAMINE_PLACEABLE:
|
||||
case GUI_PANEL_EXAMINE_DOOR:
|
||||
fWidth = EXAMINE_GENERIC_WINDOW_WIDTH;
|
||||
break;
|
||||
case GUI_PANEL_EXAMINE_ITEM:
|
||||
fWidth = EXAMINE_ITEM_WINDOW_WIDTH;
|
||||
break;
|
||||
}
|
||||
|
||||
return fWidth;
|
||||
}
|
||||
|
||||
float Examine_GetWindowHeight(int nPanel)
|
||||
{
|
||||
float fHeight;
|
||||
switch (nPanel)
|
||||
{
|
||||
case GUI_PANEL_EXAMINE_CREATURE:
|
||||
case GUI_PANEL_EXAMINE_PLACEABLE:
|
||||
case GUI_PANEL_EXAMINE_DOOR:
|
||||
fHeight = EXAMINE_GENERIC_WINDOW_HEIGHT;
|
||||
break;
|
||||
case GUI_PANEL_EXAMINE_ITEM:
|
||||
fHeight = EXAMINE_ITEM_WINDOW_HEIGHT;
|
||||
break;
|
||||
}
|
||||
|
||||
return fHeight;
|
||||
}
|
||||
|
||||
void Examine_HandleGUIEvents(object oPlayer, object oTarget, int nPanel)
|
||||
{
|
||||
json jGeometry = GetLocalJson(oPlayer, EXAMINE_WINDOW_GEOMETRY_JSON);
|
||||
|
||||
int nToken = NuiFindWindow(oPlayer, EXAMINE_NUI_WINDOW_ID);
|
||||
if (nToken)
|
||||
{
|
||||
if (GetLocalObject(oPlayer, EXAMINE_CURRENT_OBJECT) == oTarget)
|
||||
return;
|
||||
|
||||
int bIsItemExamine = nPanel == GUI_PANEL_EXAMINE_ITEM;
|
||||
int nCurrentWindowType = GetLocalInt(oPlayer, EXAMINE_CURRENT_WINDOW_TYPE);
|
||||
|
||||
if (bIsItemExamine && nCurrentWindowType != GUI_PANEL_EXAMINE_ITEM)
|
||||
{
|
||||
NuiSetGroupLayout(oPlayer, nToken, NUI_WINDOW_ROOT_GROUP, Examine_GetWindowJson(nPanel));
|
||||
NuiSetBind(oPlayer, nToken, NUI_WINDOW_GEOMETRY_BIND, NuiSetRectHeight(jGeometry, Examine_GetWindowHeight(nPanel)));
|
||||
}
|
||||
else if (!bIsItemExamine && nCurrentWindowType == GUI_PANEL_EXAMINE_ITEM)
|
||||
{
|
||||
NuiSetGroupLayout(oPlayer, nToken, NUI_WINDOW_ROOT_GROUP, Examine_GetWindowJson(nPanel));
|
||||
NuiSetBind(oPlayer, nToken, NUI_WINDOW_GEOMETRY_BIND, NuiSetRectHeight(jGeometry, Examine_GetWindowHeight(nPanel)));
|
||||
}
|
||||
|
||||
Examine_SetData(oPlayer, nToken, oTarget, nPanel);
|
||||
|
||||
SetLocalInt(oPlayer, EXAMINE_CURRENT_WINDOW_TYPE, nPanel);
|
||||
SetLocalObject(oPlayer, EXAMINE_CURRENT_OBJECT, oTarget);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
json jRoot = Examine_GetWindowJson(nPanel);
|
||||
json jWindow = NuiWindow(jRoot, NuiBind(NUI_WINDOW_TITLE_BIND), NuiBind(NUI_WINDOW_GEOMETRY_BIND), JsonBool(FALSE), JsonNull(), JsonBool(TRUE), JsonBool(FALSE), JsonBool(TRUE));
|
||||
|
||||
float fWidth = Examine_GetWindowWidth(nPanel);
|
||||
float fHeight = Examine_GetWindowHeight(nPanel);
|
||||
|
||||
if (jGeometry == JsonNull())
|
||||
jGeometry = NuiGetCenteredGeometryRect(oPlayer, fWidth, fHeight);
|
||||
else
|
||||
{
|
||||
jGeometry = NuiSetRectWidth(jGeometry, fWidth);
|
||||
jGeometry = NuiSetRectHeight(jGeometry, fHeight);
|
||||
}
|
||||
|
||||
nToken = NuiCreate(oPlayer, jWindow, EXAMINE_NUI_WINDOW_ID);
|
||||
|
||||
NuiSetBindWatch(oPlayer, nToken, NUI_WINDOW_GEOMETRY_BIND, TRUE);
|
||||
NuiSetBind(oPlayer, nToken, NUI_WINDOW_GEOMETRY_BIND, jGeometry);
|
||||
|
||||
Examine_SetData(oPlayer, nToken, oTarget, nPanel);
|
||||
|
||||
SetLocalInt(oPlayer, EXAMINE_CURRENT_WINDOW_TYPE, nPanel);
|
||||
SetLocalObject(oPlayer, EXAMINE_CURRENT_OBJECT, oTarget);
|
||||
}
|
||||
|
||||
void Examine_HandleNUIEvents(object oPlayer, int nToken, string sType, string sElement, int nArrayIndex)
|
||||
{
|
||||
if (sType == NUI_EVENT_CLOSE)
|
||||
{
|
||||
DeleteLocalInt(oPlayer, EXAMINE_CURRENT_WINDOW_TYPE);
|
||||
DeleteLocalObject(oPlayer, EXAMINE_CURRENT_OBJECT);
|
||||
}
|
||||
else if (sType == NUI_EVENT_WATCH)
|
||||
{
|
||||
if (sElement == NUI_WINDOW_GEOMETRY_BIND)
|
||||
{
|
||||
SetLocalJson(oPlayer, EXAMINE_WINDOW_GEOMETRY_JSON, NuiGetBind(oPlayer, nToken, NUI_WINDOW_GEOMETRY_BIND));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int Examine_HandleIdentifyItem(object oPlayer, object oItem)
|
||||
{
|
||||
int bIdentified = GetIdentified(oItem);
|
||||
|
||||
if (!bIdentified)
|
||||
{
|
||||
int nIdentifySkillRank = GetSkillRank(SKILL_LORE, oPlayer);
|
||||
|
||||
if (nIdentifySkillRank < 0)
|
||||
return FALSE;
|
||||
if (nIdentifySkillRank > 55)
|
||||
{
|
||||
SetIdentified(oItem, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int nMaxItemGPValue = StringToInt(Get2DAString("skillvsitemcost", "DeviceCostMax", nIdentifySkillRank));
|
||||
|
||||
SetIdentified(oItem, TRUE);
|
||||
bIdentified = GetGoldPieceValue(oItem) <= nMaxItemGPValue;
|
||||
SetIdentified(oItem, bIdentified);
|
||||
}
|
||||
|
||||
return bIdentified;
|
||||
}
|
||||
|
||||
void Examine_SetData(object oPlayer, int nToken, object oTarget, int nPanel)
|
||||
{
|
||||
Examine_SetGenericData(oPlayer, nToken, oTarget, nPanel);
|
||||
|
||||
if (nPanel == GUI_PANEL_EXAMINE_ITEM)
|
||||
Examine_SetItemData(oPlayer, nToken, oTarget);
|
||||
}
|
||||
|
||||
void Examine_SetGenericData(object oPlayer, int nToken, object oTarget, int nPanel)
|
||||
{
|
||||
string sTitle, sDescription;
|
||||
json jImage1, jImage2, jImage3;
|
||||
int bComplexItem = FALSE;
|
||||
switch (nPanel)
|
||||
{
|
||||
case GUI_PANEL_EXAMINE_CREATURE:
|
||||
case GUI_PANEL_EXAMINE_PLACEABLE:
|
||||
case GUI_PANEL_EXAMINE_DOOR:
|
||||
{
|
||||
sTitle = GetName(oTarget);
|
||||
jImage1 = JsonString(GetPortraitResRef(oTarget) + "m");
|
||||
sDescription = GetDescription(oTarget);
|
||||
break;
|
||||
}
|
||||
|
||||
case GUI_PANEL_EXAMINE_ITEM:
|
||||
{
|
||||
int bIdentified = Examine_HandleIdentifyItem(oPlayer, oTarget);
|
||||
int nBaseItemType = GetBaseItemType(oTarget);
|
||||
sTitle = Util_GetItemName(oTarget, bIdentified);
|
||||
|
||||
json jItem = ObjectToJson(oTarget);
|
||||
json jComplexIconData = Util_GetComplexIconData(jItem, nBaseItemType);
|
||||
|
||||
if (JsonGetType(jComplexIconData))
|
||||
{
|
||||
jImage1 = JsonObjectGet(jComplexIconData, "bottom");
|
||||
jImage2 = JsonObjectGet(jComplexIconData, "middle");
|
||||
jImage3 = JsonObjectGet(jComplexIconData, "top");
|
||||
bComplexItem = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
jImage1 = JsonString(Util_GetIconResref(oTarget, jItem, nBaseItemType));
|
||||
}
|
||||
|
||||
sDescription = GetDescription(oTarget, FALSE, bIdentified);
|
||||
|
||||
int nStatsStrRef = StringToInt(Get2DAString("baseitems", "BaseItemStatRef", nBaseItemType));
|
||||
if (nStatsStrRef)
|
||||
{
|
||||
sDescription += "\n\n" + GetStringByStrRef(nStatsStrRef);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
NuiSetBind(oPlayer, nToken, NUI_WINDOW_TITLE_BIND, JsonString(sTitle));
|
||||
NuiSetBind(oPlayer, nToken, "image_1", jImage1);
|
||||
|
||||
if (bComplexItem)
|
||||
{
|
||||
NuiSetBind(oPlayer, nToken, "image_2", jImage2);
|
||||
NuiSetBind(oPlayer, nToken, "image_3", jImage3);
|
||||
}
|
||||
|
||||
NuiSetBind(oPlayer, nToken, "complex_item", JsonBool(bComplexItem));
|
||||
NuiSetBind(oPlayer, nToken, "description", JsonString(sDescription));
|
||||
}
|
||||
|
||||
string Examine_GetItemPropertyString(itemproperty ip)
|
||||
{
|
||||
int nType = GetItemPropertyType(ip);
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DAString("itempropdef", "GameStrRef", nType)));
|
||||
|
||||
int nSubType = GetItemPropertySubType(ip);
|
||||
if(nSubType != -1)
|
||||
{
|
||||
string sSubTypeResRef = Get2DAString("itempropdef", "SubTypeResRef", nType);
|
||||
int nStrRef = StringToInt(Get2DAString(sSubTypeResRef, "Name", nSubType));
|
||||
if(nStrRef)
|
||||
sName += " " + GetStringByStrRef(nStrRef);
|
||||
}
|
||||
|
||||
int nParam1 = GetItemPropertyParam1(ip);
|
||||
if(nParam1 != -1)
|
||||
{
|
||||
string sParamResRef = Get2DAString("iprp_paramtable", "TableResRef", nParam1);
|
||||
string sSubTypeResRef = Get2DAString("itempropdef", "SubTypeResRef", nType);
|
||||
string sTableResRef = Get2DAString(sSubTypeResRef, "TableResRef", nParam1);
|
||||
int nStrRef = StringToInt(Get2DAString(sParamResRef, "Name", GetItemPropertyParam1Value(ip)));
|
||||
if(nStrRef)
|
||||
sName += " " + GetStringByStrRef(nStrRef);
|
||||
}
|
||||
|
||||
int nCostTable = GetItemPropertyCostTable(ip);
|
||||
if(nCostTable != -1)
|
||||
{
|
||||
string sCostTableResRef = Get2DAString("iprp_costtable", "Name", nCostTable);
|
||||
int nStrRef = StringToInt(Get2DAString(sCostTableResRef, "Name", GetItemPropertyCostTableValue(ip)));
|
||||
if(nStrRef)
|
||||
sName += " " + GetStringByStrRef(nStrRef);
|
||||
}
|
||||
|
||||
return sName;
|
||||
}
|
||||
|
||||
void Examine_SetItemData(object oPlayer, int nToken, object oItem)
|
||||
{
|
||||
int bIdentified = GetIdentified(oItem);
|
||||
json jProperties = JsonArray();
|
||||
json jColors = JsonArray();
|
||||
|
||||
if (bIdentified)
|
||||
{
|
||||
itemproperty ip = GetFirstItemProperty(oItem);
|
||||
while (GetIsItemPropertyValid(ip))
|
||||
{
|
||||
jProperties = JsonArrayInsert(jProperties, JsonString(Examine_GetItemPropertyString(ip)));
|
||||
jColors = JsonArrayInsert(jColors, GetItemPropertyDurationType(ip) == DURATION_TYPE_TEMPORARY ? NuiColor(0, 0, 255) : NuiColor(255, 255, 255));
|
||||
ip = GetNextItemProperty(oItem);
|
||||
}
|
||||
}
|
||||
|
||||
NuiSetBind(oPlayer, nToken, "property", jProperties);
|
||||
NuiSetBind(oPlayer, nToken, "color", jColors);
|
||||
}
|
||||
|
Reference in New Issue
Block a user