Added CCOH and missing areas Changed some areas to be craftable, Fixed some on death issues, Fixed the Gaurd
1557 lines
52 KiB
Plaintext
1557 lines
52 KiB
Plaintext
#include "mk_inc_generic"
|
|
#include "mk_inc_debug"
|
|
#include "mk_inc_states"
|
|
#include "mk_inc_math"
|
|
#include "mk_inc_delimiter"
|
|
#include "mk_inc_itm_disp"
|
|
#include "mk_inc_2da_disp"
|
|
#include "mk_inc_cheats"
|
|
|
|
//const int MK_CHEATS_DEBUG = FALSE;
|
|
|
|
const string MK_CHEATS_LEVEL_XP = "MK_CHEATS_LEVEL_XP";
|
|
const string MK_CHEATS_GOLD_AMOUNT = "MK_CHEATS_GOLD_AMOUNT";
|
|
const string MK_CHEATS_ALIGNMENT_GOODEVIL = "MK_CHEATS_ALIGNMENT_GOODEVIL";
|
|
const string MK_CHEATS_ALIGNMENT_LAWCHAOS = "MK_CHEATS_ALIGNMENT_LAWCHAOS";
|
|
|
|
/*
|
|
void MK_CHEATS_DEBUG_TRACE(string sMessage)
|
|
{
|
|
if (MK_ITM_DISPLAY_DEBUG)
|
|
{
|
|
MK_DEBUG_TRACE(sMessage);
|
|
}
|
|
}
|
|
*/
|
|
|
|
string MK_CHEATS_GetCheatEnabledDisableVarName(int nState, int bEnabled)
|
|
{
|
|
return "MK_CHEATS_" + IntToString(nState) + "_" + (bEnabled ? "ENABLED" : "DISABLED");
|
|
}
|
|
|
|
int MK_CHEATS_GetIsCheatEnabled(int nState)
|
|
{
|
|
string sVarName = MK_CHEATS_GetCheatEnabledDisableVarName(nState, TRUE);
|
|
int nReturn = GetLocalInt(OBJECT_SELF, sVarName);
|
|
MK_CHEATS_DEBUG_TRACE("MK_CHEATS_GetIsCheatEnabled("+IntToString(nState)+"): GetLocalInt("+sVarName+")="+IntToString(nReturn));
|
|
return nReturn;
|
|
}
|
|
|
|
int MK_CHEATS_GetIsCheatDisabled(int nState)
|
|
{
|
|
string sVarName = MK_CHEATS_GetCheatEnabledDisableVarName(nState, FALSE);
|
|
int nReturn = GetLocalInt(OBJECT_SELF, sVarName);
|
|
MK_CHEATS_DEBUG_TRACE("MK_CHEATS_GetIsCheatDisabled("+IntToString(nState)+"): GetLocalInt("+sVarName+")="+IntToString(nReturn));
|
|
return nReturn;
|
|
}
|
|
|
|
void MK_CHEATS_DisableCheat(int nState, int bDisable=TRUE)
|
|
{
|
|
SetLocalInt(OBJECT_SELF, MK_CHEATS_GetCheatEnabledDisableVarName(nState, FALSE), bDisable);
|
|
MK_CHEATS_DEBUG_TRACE("MK_CHEATS_DisableCheat("+IntToString(nState)+", "+IntToString(bDisable)+"): "
|
|
+"GetLocalInt("+MK_CHEATS_GetCheatEnabledDisableVarName(nState, FALSE)+")="
|
|
+ IntToString(GetLocalInt(OBJECT_SELF, MK_CHEATS_GetCheatEnabledDisableVarName(nState, FALSE))));
|
|
}
|
|
|
|
int MK_CHEATS_GetItemFlagDefaultMode(int nState)
|
|
{
|
|
int nMode = 0;
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_CHEATS_PLOTFLAG:
|
|
nMode = MK_ITM_DISP_ALL | MK_ITM_DISP_HIDDENSLOTS;
|
|
break;
|
|
default:
|
|
nMode = MK_ITM_DISP_ALL;
|
|
break;
|
|
}
|
|
return nMode;
|
|
}
|
|
|
|
string MK_CHEATS_GetCheatDisabledMessage(int nState)
|
|
{
|
|
string sReturn = "";
|
|
if (!MK_CHEATS_GetIsCheatEnabled(nState))
|
|
{
|
|
sReturn = MK_TLK_GetStringByStrRef(-466);
|
|
}
|
|
else if (MK_CHEATS_GetIsCheatDisabled(nState))
|
|
{
|
|
sReturn = MK_TLK_GetStringByStrRef(-485);
|
|
}
|
|
else
|
|
{
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_CHEATS_CURSEDFLAG:
|
|
case MK_STATE_CHEATS_PLOTFLAG:
|
|
case MK_STATE_CHEATS_STOLENFLAG:
|
|
case MK_STATE_CHEATS_NOTIDENTIFIED:
|
|
{
|
|
int nStateQ = MK_GenericDialog_SetState(nState);
|
|
MK_ITM_DISPLAY_Initialize(BASE_ITEM_INVALID, MK_CHEATS_GetItemFlagDefaultMode(nState), MK_ITM_DISP_MAX_PAGE_LENGTH, "mk_cb_iflag_chk");
|
|
MK_CHEATS_DEBUG_TRACE("MK_CHEATS_GetCheatDisabledMessage("+IntToString(nState)+"): nItemCount = "+IntToString(MK_ITM_DISPLAY_GetItemCount()));
|
|
MK_GenericDialog_SetState(nStateQ);
|
|
if (MK_ITM_DISPLAY_GetItemCount()==0)
|
|
{
|
|
sReturn = MK_TLK_GetStringByStrRef(-467);
|
|
}
|
|
MK_ITM_DISPLAY_Cleanup();
|
|
break;
|
|
}
|
|
case MK_STATE_CHEATS_FEATS:
|
|
case MK_STATE_CHEATS_SKILLPOINTS:
|
|
if (!GetIsObjectValid(GetItemInSlot(INVENTORY_SLOT_CARMOUR, OBJECT_SELF)))
|
|
{
|
|
sReturn = MK_TLK_GetStringByStrRef(-465);
|
|
}
|
|
break;
|
|
// case MK_STATE_CHEATS_CHARGES:
|
|
// sReturn = MK_TLK_GetStringByStrRef(-473);
|
|
// break;
|
|
}
|
|
}
|
|
return sReturn;
|
|
}
|
|
|
|
int MK_CHEATS_GetCheatEnabled(int nState)
|
|
{
|
|
return (MK_CHEATS_GetCheatDisabledMessage(nState)=="");
|
|
}
|
|
|
|
void MK_CHEATS_SetCustomTokens()
|
|
{
|
|
string sDisabledOptionsColor = GetLocalString(OBJECT_SELF, "MK_DISABLED_OPTIONS_COLOR");
|
|
string sCloseColor = (sDisabledOptionsColor!="" ? "</c>" : "");
|
|
string sMessage="";
|
|
int nToken1,nToken2;
|
|
int nCondition;
|
|
|
|
int iState;
|
|
for (iState = MK_STATE_CHEATS+1; iState<=MK_STATE_CHEATS_SWAPITEMPROPS; iState++)
|
|
{
|
|
sMessage = MK_CHEATS_GetCheatDisabledMessage(iState);
|
|
switch (iState)
|
|
{
|
|
case MK_STATE_CHEATS_LEVEL:
|
|
nToken1 = 14460; nToken2 = nToken1+10;
|
|
nCondition = 31;
|
|
break;
|
|
case MK_STATE_CHEATS_GOLD:
|
|
nToken1 = 14461; nToken2 = nToken1+10;
|
|
nCondition = 32;
|
|
break;
|
|
case MK_STATE_CHEATS_ALIGNMENT:
|
|
nToken1 = 14462; nToken2 = nToken1+10;
|
|
nCondition = 33;
|
|
break;
|
|
case MK_STATE_CHEATS_FEATS:
|
|
nToken1 = 14463; nToken2 = nToken1+10;
|
|
nCondition = 34;
|
|
break;
|
|
case MK_STATE_CHEATS_SKILLPOINTS:
|
|
nToken1 = 14464; nToken2 = nToken1+10;
|
|
nCondition = 37;
|
|
break;
|
|
case MK_STATE_CHEATS_ITEMPROPS:
|
|
nToken1 = 14465; nToken2 = nToken1+10;
|
|
nCondition = 38;
|
|
break;
|
|
case MK_STATE_CHEATS_CURSEDFLAG:
|
|
nToken1 = 14466; nToken2 = nToken1+10;
|
|
nCondition = 35;
|
|
break;
|
|
case MK_STATE_CHEATS_OPENSTORE:
|
|
nToken1 = 14467; nToken2 = nToken1+10;
|
|
nCondition = 36;
|
|
break;
|
|
case MK_STATE_CHEATS_CHARGES:
|
|
nToken1 = 14468; nToken2 = nToken1+10;
|
|
nCondition = 39;
|
|
break;
|
|
case MK_STATE_CHEATS_PLOTFLAG:
|
|
nToken1 = 14469; nToken2 = nToken1+10;
|
|
nCondition = 30;
|
|
break;
|
|
case MK_STATE_CHEATS_STOLENFLAG:
|
|
nToken1 = 14449; nToken2 = nToken1+10;
|
|
nCondition = 29;
|
|
break;
|
|
case MK_STATE_CHEATS_NOTIDENTIFIED:
|
|
nToken1 = 14448; nToken2 = nToken1+10;
|
|
nCondition = 28;
|
|
break;
|
|
case MK_STATE_CHEATS_SWAPITEMPROPS:
|
|
nToken1 = 14447; nToken2 = nToken1+10;
|
|
nCondition = 27;
|
|
break;
|
|
}
|
|
int bEnable = (sMessage=="");
|
|
SetCustomToken(nToken1, (!bEnable ? sDisabledOptionsColor : ""));
|
|
SetCustomToken(nToken2, (!bEnable ? sMessage+sCloseColor : ""));
|
|
MK_GenericDialog_SetCondition(nCondition, bEnable);
|
|
}
|
|
}
|
|
|
|
|
|
int MK_CHEATS_GetLevel(object oPC)
|
|
{
|
|
int nCurrentXP = GetXP(oPC);
|
|
int nCurrentLevel = FloatToInt(0.5 + sqrt((125.0+nCurrentXP)/500.0));
|
|
// 1/2+WURZEL((125+D11)/500)
|
|
return nCurrentLevel;
|
|
}
|
|
|
|
int _max(int n1, int n2)
|
|
{
|
|
return (n1>n2 ? n1 : n2);
|
|
}
|
|
|
|
int _min(int n1, int n2)
|
|
{
|
|
return (n1<n2 ? n1 : n2);
|
|
}
|
|
|
|
int MK_CHEATS_GetMaxLevel(object oPC)
|
|
{
|
|
int nMaxLevel = GetLocalInt(oPC, "MK_CHEATS_MAX_LEVEL");
|
|
if (nMaxLevel==0) nMaxLevel=40;
|
|
return nMaxLevel;
|
|
}
|
|
|
|
void MK_CHEATS_LevelPC(object oPC, int nLevels)
|
|
{
|
|
int nCurrentXP = GetXP(oPC);
|
|
int nCurrentLevel = MK_CHEATS_GetLevel(oPC);
|
|
|
|
|
|
int nDesiredLevel = _min(_max(nCurrentLevel + nLevels, 1), MK_CHEATS_GetMaxLevel(oPC));
|
|
if (nDesiredLevel!=nCurrentLevel)
|
|
{
|
|
// int nRequiredXP = (nDesiredLevel-1) * nDesiredLevel * 500;
|
|
int nRequiredXP = MK_Get2DAInt("exptable", "XP", (nDesiredLevel-1), -1);
|
|
if (nRequiredXP>=0)
|
|
{
|
|
int nXP = GetLocalInt(oPC, MK_CHEATS_LEVEL_XP);
|
|
SetXP(oPC, nRequiredXP);
|
|
SetLocalInt(oPC, MK_CHEATS_LEVEL_XP, nXP + (nRequiredXP - nCurrentXP));
|
|
}
|
|
}
|
|
}
|
|
|
|
void MK_CHEATS_GiveGold(object oPC, int nGold)
|
|
{
|
|
int nCurrentGold = GetGold(oPC);
|
|
int nGoldGiven = GetLocalInt(oPC, MK_CHEATS_GOLD_AMOUNT);
|
|
if (nGold>0)
|
|
{
|
|
GiveGoldToCreature(oPC, nGold);
|
|
}
|
|
else if (nGold<0)
|
|
{
|
|
TakeGoldFromCreature(-nGold, oPC, TRUE);
|
|
}
|
|
SetLocalInt(oPC, MK_CHEATS_GOLD_AMOUNT, nGoldGiven + GetGold(oPC) - nCurrentGold);
|
|
}
|
|
|
|
void MK_CHEATS_AdjustAlignment(object oPC, int nAlignment, int nShift)
|
|
{
|
|
int nCurrentAlignment=-1;
|
|
int nAlignmentShifted=-1;
|
|
switch (nAlignment)
|
|
{
|
|
case ALIGNMENT_CHAOTIC:
|
|
nAlignment = ALIGNMENT_LAWFUL;
|
|
nShift*=-1;
|
|
case ALIGNMENT_LAWFUL:
|
|
nCurrentAlignment = GetLawChaosValue(oPC);
|
|
nAlignmentShifted = GetLocalInt(oPC, MK_CHEATS_ALIGNMENT_LAWCHAOS);
|
|
break;
|
|
break;
|
|
case ALIGNMENT_EVIL:
|
|
nAlignment = ALIGNMENT_GOOD;
|
|
nShift*=-1;
|
|
case ALIGNMENT_GOOD:
|
|
nCurrentAlignment = GetGoodEvilValue(oPC);
|
|
nAlignmentShifted = GetLocalInt(oPC, MK_CHEATS_ALIGNMENT_GOODEVIL);
|
|
break;
|
|
}
|
|
MK_CHEATS_DEBUG_TRACE("MK_CHEATS_AdjustAlignment: nAlignment="+IntToString(nAlignment)
|
|
+", nShift="+IntToString(nShift)+", nCurrentAlignment="+IntToString(nCurrentAlignment));
|
|
|
|
AdjustAlignment(oPC, nAlignment, nShift, FALSE);
|
|
|
|
int nNewAlignment=-1;
|
|
|
|
switch (nAlignment)
|
|
{
|
|
case ALIGNMENT_LAWFUL:
|
|
nNewAlignment = GetLawChaosValue(oPC);
|
|
break;
|
|
case ALIGNMENT_GOOD:
|
|
nNewAlignment = GetGoodEvilValue(oPC);
|
|
break;
|
|
}
|
|
|
|
int nCurrentShift = nNewAlignment - nCurrentAlignment;
|
|
|
|
MK_CHEATS_DEBUG_TRACE(" > nNewAlignment="+IntToString(nNewAlignment)
|
|
+ ", nNewAlignment-nOldAlignment="+IntToString(nNewAlignment-nCurrentAlignment)
|
|
+ ", desired="+IntToString(nShift));
|
|
|
|
if ((nCurrentShift != nShift) && (nNewAlignment!=0) && (nNewAlignment!=100))
|
|
{
|
|
int nAdjustment = -(nCurrentShift - nShift);
|
|
MK_CHEATS_DEBUG_TRACE(" > adjustment required: adjustment="+IntToString(nAdjustment));
|
|
AdjustAlignment(oPC, nAlignment, nAdjustment, FALSE);
|
|
}
|
|
|
|
switch (nAlignment)
|
|
{
|
|
case ALIGNMENT_LAWFUL:
|
|
nNewAlignment = GetLawChaosValue(oPC);
|
|
SetLocalInt(oPC, MK_CHEATS_ALIGNMENT_LAWCHAOS, nAlignmentShifted + (nNewAlignment-nCurrentAlignment));
|
|
break;
|
|
case ALIGNMENT_GOOD:
|
|
nNewAlignment = GetGoodEvilValue(oPC);
|
|
SetLocalInt(oPC, MK_CHEATS_ALIGNMENT_GOODEVIL, nAlignmentShifted + (nNewAlignment-nCurrentAlignment));
|
|
break;
|
|
}
|
|
}
|
|
|
|
void MK_CHEATS_RestoreAlignment(object oPC)
|
|
{
|
|
int nShift;
|
|
nShift = GetLocalInt(oPC, MK_CHEATS_ALIGNMENT_LAWCHAOS);
|
|
if (nShift>0)
|
|
{
|
|
MK_CHEATS_AdjustAlignment(oPC, ALIGNMENT_CHAOTIC, nShift);
|
|
}
|
|
else if (nShift<0)
|
|
{
|
|
MK_CHEATS_AdjustAlignment(oPC, ALIGNMENT_LAWFUL, -nShift);
|
|
}
|
|
nShift = GetLocalInt(oPC, MK_CHEATS_ALIGNMENT_GOODEVIL);
|
|
if (nShift>0)
|
|
{
|
|
MK_CHEATS_AdjustAlignment(oPC, ALIGNMENT_EVIL, nShift);
|
|
}
|
|
else if (nShift<0)
|
|
{
|
|
MK_CHEATS_AdjustAlignment(oPC, ALIGNMENT_GOOD, -nShift);
|
|
}
|
|
}
|
|
|
|
void _SetAlignmentToken(int nToken, string sAlignmentText, int nAlignmentValue, int nShifted)
|
|
{
|
|
string s = sAlignmentText + " (" + IntToString(nAlignmentValue) +
|
|
(nShifted!=0 ? " / " + (nShifted>0 ? "+" : "") + IntToString(nShifted) : "") + ")";
|
|
SetCustomToken(nToken, s);
|
|
}
|
|
|
|
void MK_CHEATS_SetAlignmentToken(object oPC, int nTokenLawChaos, int nTokenGoodEvil)
|
|
{
|
|
int nStrRef=-1;
|
|
switch (GetAlignmentGoodEvil(oPC))
|
|
{
|
|
case ALIGNMENT_GOOD:
|
|
nStrRef = 265;
|
|
break;
|
|
case ALIGNMENT_EVIL:
|
|
nStrRef = 266;
|
|
break;
|
|
case ALIGNMENT_NEUTRAL:
|
|
nStrRef = 264;
|
|
break;
|
|
default:
|
|
nStrRef=-1;
|
|
break;
|
|
}
|
|
string sAlignmentGoodEvilText = (nStrRef!=-1 ? GetStringByStrRef(nStrRef) : "");
|
|
|
|
switch (GetAlignmentLawChaos(oPC))
|
|
{
|
|
case ALIGNMENT_LAWFUL:
|
|
nStrRef = 268;
|
|
break;
|
|
case ALIGNMENT_CHAOTIC:
|
|
nStrRef = 267;
|
|
break;
|
|
case ALIGNMENT_NEUTRAL:
|
|
nStrRef = 264;
|
|
break;
|
|
default:
|
|
nStrRef=-1;
|
|
break;
|
|
}
|
|
string sAlignmentLawChaosText = (nStrRef!=-1 ? GetStringByStrRef(nStrRef) : "");
|
|
|
|
int nCurrentAlignmentGoodEvil = GetGoodEvilValue(oPC);
|
|
int nCurrentAlignmentLawChaos = GetLawChaosValue(oPC);
|
|
|
|
int nShiftedGoodEvil = GetLocalInt(oPC, MK_CHEATS_ALIGNMENT_GOODEVIL);
|
|
int nShiftedLawChaos = GetLocalInt(oPC, MK_CHEATS_ALIGNMENT_LAWCHAOS);
|
|
|
|
_SetAlignmentToken(nTokenGoodEvil, sAlignmentGoodEvilText, nCurrentAlignmentGoodEvil, nShiftedGoodEvil);
|
|
_SetAlignmentToken(nTokenLawChaos, sAlignmentLawChaosText, nCurrentAlignmentLawChaos, nShiftedLawChaos);
|
|
|
|
// SetCustomToken(nTokenGoodEvil, sAlignmentGoodEvilText + " (" + IntToString(nCurrentAlignmentGoodEvil)
|
|
// + "[" + ( nShiftedGoodEvil > 0 ? "+" : "" ) + IntToString(nShiftedGoodEvil) + "])");
|
|
// SetCustomToken(nTokenLawChaos, sAlignmentLawChaosText + " (" + IntToString(nCurrentAlignmentLawChaos)
|
|
// + "[" + ( nShiftedLawChaos > 0 ? "+" : "" ) + IntToString(nShiftedLawChaos) + "])");
|
|
}
|
|
|
|
void MK_CHEATS_ToggleFeat(int nFeat)
|
|
{
|
|
object oItem = GetItemInSlot(INVENTORY_SLOT_CARMOUR, OBJECT_SELF);
|
|
if (!GetIsObjectValid(oItem))
|
|
{
|
|
return;
|
|
}
|
|
itemproperty iProp = MK_IPRP_GetItemProperty(oItem, ITEM_PROPERTY_BONUS_FEAT, nFeat);
|
|
if (GetIsItemPropertyValid(iProp))
|
|
{
|
|
RemoveItemProperty(oItem, iProp);
|
|
}
|
|
else
|
|
{
|
|
// iProp = TagItemProperty(ItemPropertyBonusFeat(nFeat), MK_CHEATS_CreateItemPropertyTag(ITEM_PROPERTY_BONUS_FEAT, nFeat));
|
|
iProp = ItemPropertyBonusFeat(nFeat);
|
|
AddItemProperty(DURATION_TYPE_PERMANENT, iProp, oItem);
|
|
}
|
|
}
|
|
|
|
int MK_CHEATS_GetCurrentSkillBonus(int bRemoveProperties=FALSE)
|
|
{
|
|
int nSkillBonus = 0;
|
|
object oItem = GetItemInSlot(INVENTORY_SLOT_CARMOUR, OBJECT_SELF);
|
|
if (GetIsObjectValid(oItem))
|
|
{
|
|
int nSkill = MK_CHEATS_GetCurrentSkill();
|
|
if (nSkill!=-1)
|
|
{
|
|
nSkillBonus = MK_IPRP_GetSkillBonus(oItem, nSkill, bRemoveProperties);
|
|
}
|
|
}
|
|
return nSkillBonus;
|
|
}
|
|
|
|
int MK_CHEATS_GetHasModifiedSkill()
|
|
{
|
|
object oItem = GetItemInSlot(INVENTORY_SLOT_CARMOUR, OBJECT_SELF);
|
|
int iSkill;
|
|
for (iSkill=0; iSkill<MK_CHEATS_GetSkillCount(); iSkill++)
|
|
{
|
|
if (MK_IPRP_GetSkillBonus(oItem, iSkill, FALSE)!=0)
|
|
{
|
|
return TRUE;
|
|
}
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
int MK_CHEATS_GetCanSetSkillBonus(int nSkillBonus)
|
|
{
|
|
return (Get2DAString("iprp_skillcost", "Label", abs(nSkillBonus))!="");
|
|
}
|
|
|
|
void MK_CHEATS_SetSkillsToken()
|
|
{
|
|
int nSkill = MK_CHEATS_GetCurrentSkill();
|
|
int nGender = GetGender(OBJECT_SELF);
|
|
string sDisabledOptionsColor = GetLocalString(OBJECT_SELF, "MK_DISABLED_OPTIONS_COLOR");
|
|
int bDisableIncrease=TRUE, bDisableDecrease=TRUE;
|
|
int nSkillBonus=0;
|
|
int bHasModifiedSkills = MK_CHEATS_GetHasModifiedSkill();
|
|
if (nSkill == -1)
|
|
{
|
|
SetCustomToken(14422, MK_TLK_GetStringByStrRef(-464, nGender));
|
|
SetCustomToken(14423, "");
|
|
}
|
|
else
|
|
{
|
|
int nStrRef = MK_Get2DAInt("skills", "Name", nSkill, 0);
|
|
SetCustomToken(14422, MK_TLK_GetStringByStrRef(nStrRef, nGender));
|
|
nSkillBonus = MK_CHEATS_GetCurrentSkillBonus();
|
|
SetCustomToken(14423," ("+IntToString(nSkillBonus)+")");
|
|
|
|
int bCanSetSkillBonus = MK_CHEATS_GetCanSetSkillBonus(abs(nSkillBonus)+1);
|
|
bDisableIncrease = (nSkillBonus>=0) && (!bCanSetSkillBonus);
|
|
bDisableDecrease = (nSkillBonus<=0) && (!bCanSetSkillBonus);
|
|
}
|
|
|
|
SetCustomToken(14471, (bDisableIncrease ? sDisabledOptionsColor : ""));
|
|
SetCustomToken(14472, (bDisableIncrease ? "</c>" : ""));
|
|
SetCustomToken(14473, (bDisableDecrease ? sDisabledOptionsColor : ""));
|
|
SetCustomToken(14474, (bDisableDecrease ? "</c>" : ""));
|
|
SetCustomToken(14475, (nSkillBonus==0 ? sDisabledOptionsColor : ""));
|
|
SetCustomToken(14476, (nSkillBonus==0 ? "</c>" : ""));
|
|
SetCustomToken(14477, (!bHasModifiedSkills ? sDisabledOptionsColor : ""));
|
|
SetCustomToken(14478, (!bHasModifiedSkills ? "</c>" : ""));
|
|
}
|
|
|
|
void MK_CHEATS_AdjustCurrentSkill(int nValue)
|
|
{
|
|
int nSkill = MK_CHEATS_GetCurrentSkill();
|
|
if (nSkill == -1)
|
|
{
|
|
return;
|
|
}
|
|
object oItem = GetItemInSlot(INVENTORY_SLOT_CARMOUR, OBJECT_SELF);
|
|
if (!GetIsObjectValid(oItem))
|
|
{
|
|
return;
|
|
}
|
|
if (!MK_CHEATS_GetCanSetSkillBonus(MK_CHEATS_GetCurrentSkillBonus(FALSE) + nValue))
|
|
{
|
|
return;
|
|
}
|
|
|
|
int nSkillBonus = MK_CHEATS_GetCurrentSkillBonus(TRUE) + nValue;
|
|
|
|
if (nSkillBonus!=0)
|
|
{
|
|
itemproperty iProp;
|
|
string sTag;
|
|
if (nSkillBonus>0)
|
|
{
|
|
iProp = ItemPropertySkillBonus(nSkill, nSkillBonus);
|
|
// sTag = MK_CHEATS_CreateItemPropertyTag(ITEM_PROPERTY_SKILL_BONUS, nSkill);
|
|
}
|
|
else
|
|
{
|
|
iProp = ItemPropertyDecreaseSkill(nSkill, -nSkillBonus);
|
|
// sTag = MK_CHEATS_CreateItemPropertyTag(ITEM_PROPERTY_DECREASED_SKILL_MODIFIER, nSkill);
|
|
}
|
|
if (GetIsItemPropertyValid(iProp))
|
|
{
|
|
// iProp = TagItemProperty(iProp, sTag);
|
|
AddItemProperty(DURATION_TYPE_PERMANENT, iProp, oItem);
|
|
}
|
|
}
|
|
}
|
|
|
|
void MK_CHEATS_ResetCurrentSkill()
|
|
{
|
|
MK_CHEATS_GetCurrentSkillBonus(TRUE);
|
|
}
|
|
|
|
void MK_CHEATS_ResetAllSkills()
|
|
{
|
|
object oItem = GetItemInSlot(INVENTORY_SLOT_CARMOUR, OBJECT_SELF);
|
|
int iSkill;
|
|
for (iSkill=0; iSkill<MK_CHEATS_GetSkillCount(); iSkill++)
|
|
{
|
|
MK_IPRP_GetSkillBonus(oItem, iSkill, TRUE);
|
|
}
|
|
}
|
|
|
|
const int MK_CHEATS_MIN_CHARGES = 1;
|
|
|
|
void MK_CHEATS_AdjustItemCharges(int nAdjustBy)
|
|
{
|
|
object oItem = MK_CHEATS_GetCurrentItem();
|
|
if (GetIsObjectValid(oItem))
|
|
{
|
|
int nCharges = GetItemCharges(oItem);
|
|
if ((nCharges>=MK_CHEATS_MIN_CHARGES) || (nAdjustBy>0))
|
|
{
|
|
SetItemCharges(oItem, MK_MATH_MaxInt(MK_CHEATS_MIN_CHARGES, nCharges + nAdjustBy));
|
|
}
|
|
}
|
|
}
|
|
|
|
int MK_CHEATS_FinishChangeCharges()
|
|
{
|
|
int nState = MK_GenericDialog_GetState();
|
|
object oItem = MK_CHEATS_GetCurrentItem();
|
|
if (MK_CHEATS_FinishModifyItem())
|
|
{
|
|
MK_CHEATS_SetCurrentItem(oItem);
|
|
// MK_ITM_DISPLAY_Cleanup();
|
|
// MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
}
|
|
return nState;
|
|
}
|
|
|
|
int MK_CHEATS_CancelChangeCharges()
|
|
{
|
|
MK_CHEATS_DEBUG_TRACE("MK_CHEATS_CancelChangeCharges() *start*");
|
|
|
|
int nState = MK_GenericDialog_GetState();
|
|
|
|
MK_CHEATS_CancelModifyItem();
|
|
|
|
MK_ITM_DISPLAY_Cleanup();
|
|
MK_ITM_DISPLAY_Initialize(BASE_ITEM_INVALID, MK_ITM_DISP_ALL, 10, "mk_cb_ichrg_chk");
|
|
|
|
// MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
|
|
MK_CHEATS_DEBUG_TRACE("MK_CHEATS_CancelChangeCharges(): *terminate*");
|
|
return nState;
|
|
}
|
|
|
|
|
|
int MK_CHEATS_OpenCurrentStore()
|
|
{
|
|
int bReturn = TRUE;
|
|
int nStoreID = MK_CHEATS_GetCurrentStore();
|
|
if (nStoreID!=-1)
|
|
{
|
|
object oPC = GetPCSpeaker();
|
|
object oStore = MK_CHEATS_SearchCurrentStore();
|
|
if (!GetIsObjectValid(oStore))
|
|
{
|
|
MK_DEBUG_TRACE("MK_CHEATS_OpenCurrentStore: store with tag '"+MK_CHEATS_GetCurrentStoreTag()+"' not found!");
|
|
oStore = CreateObject(OBJECT_TYPE_STORE, MK_CHEATS_GetCurrentStoreResRef(),
|
|
GetLocation(oPC));
|
|
}
|
|
if (GetIsObjectValid(oStore))
|
|
{
|
|
MK_DEBUG_TRACE("MK_CHEATS_OpenCurrentStore: sResRef ='"+MK_CHEATS_GetCurrentStoreResRef()+"', sTag = '"+GetTag(oStore)+"'");
|
|
object oStoreQ = GetObjectByTag(MK_CHEATS_GetCurrentStoreTag());
|
|
if (!GetIsObjectValid(oStoreQ))
|
|
{
|
|
MK_DEBUG_TRACE(" > store sill not found?");
|
|
}
|
|
int nMarkUp = 0, nMarkDown=0;
|
|
if (MK_Get2DAInt("mk_cheat_stores", "ADJUST_PRICES", nStoreID, 0))
|
|
{
|
|
nMarkUp = FloatToInt(100*GetLocalFloat(oPC, "MK_CHEATS_ITEM_BUY") - 100);
|
|
nMarkDown = FloatToInt(100*GetLocalFloat(oPC, "MK_CHEATS_ITEM_SELL") - 100);
|
|
int nStoreMarkUp = MK_Get2DAInt("mk_cheat_stores", "SELL", nStoreID, -1);
|
|
int nStoreMarkDown = MK_Get2DAInt("mk_cheat_stores", "BUY", nStoreID, -1);
|
|
if (nStoreMarkUp!=-1)
|
|
{
|
|
nMarkUp += (100-nStoreMarkUp);
|
|
}
|
|
if (nStoreMarkDown!=-1)
|
|
{
|
|
nMarkDown += (100-nStoreMarkDown);
|
|
}
|
|
}
|
|
MK_DEBUG_TRACE("OpenStore('"+GetName(oStore)+"', '"+GetName(oPC)+"', nMarkup="+IntToString(nMarkUp)+", "+IntToString(nMarkDown)+")");
|
|
OpenStore(oStore, oPC, nMarkUp, nMarkDown);
|
|
bReturn = !GetLocalInt(OBJECT_SELF, "MK_CHEATS_EXTITDLGONOPENSTORE");
|
|
MK_DEBUG_TRACE("MK_CHEATS_OpenCurrentStore(): "+GetTag(oStore)+" opened!");
|
|
}
|
|
}
|
|
MK_CHEATS_DEBUG_TRACE("MK_CHEATS_OpenCurrentStore()="+IntToString(bReturn));
|
|
return bReturn;
|
|
}
|
|
|
|
int MK_CHEATS_PrepareDisablingCurrentCheat()
|
|
{
|
|
int nState = MK_GenericDialog_GetState();
|
|
int nToken = 0;
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_CHEATS_LEVEL:
|
|
nToken = -475;
|
|
break;
|
|
case MK_STATE_CHEATS_GOLD:
|
|
nToken = -476;
|
|
break;
|
|
case MK_STATE_CHEATS_ALIGNMENT:
|
|
nToken = -477;
|
|
break;
|
|
case MK_STATE_CHEATS_FEATS:
|
|
nToken = -478;
|
|
break;
|
|
case MK_STATE_CHEATS_CURSEDFLAG:
|
|
nToken = -481;
|
|
break;
|
|
case MK_STATE_CHEATS_OPENSTORE:
|
|
nToken = -483;
|
|
break;
|
|
case MK_STATE_CHEATS_SKILLPOINTS:
|
|
nToken = -479;
|
|
break;
|
|
case MK_STATE_CHEATS_ITEMPROPS:
|
|
nToken = -480;
|
|
break;
|
|
case MK_STATE_CHEATS_CHARGES:
|
|
nToken = -482;
|
|
break;
|
|
case MK_STATE_CHEATS_PLOTFLAG:
|
|
nToken = -489;
|
|
break;
|
|
case MK_STATE_CHEATS_STOLENFLAG:
|
|
nToken = -493;
|
|
break;
|
|
case MK_STATE_CHEATS_NOTIDENTIFIED:
|
|
nToken = -494;
|
|
break;
|
|
default:
|
|
nToken = -484;
|
|
break;
|
|
}
|
|
SetCustomToken(14422, MK_TLK_GetStringByStrRef(nToken));
|
|
SetLocalInt(OBJECT_SELF, "MK_CHEATS_DISABLE_CHEAT", nState);
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_DISABLE);
|
|
return nState;
|
|
}
|
|
|
|
int MK_CHEATS_DisableCurrentCheat()
|
|
{
|
|
int nCheat = GetLocalInt(OBJECT_SELF, "MK_CHEATS_DISABLE_CHEAT");
|
|
MK_CHEATS_DisableCheat(nCheat, TRUE);
|
|
int nState = MK_STATE_CHEATS;
|
|
MK_GenericDialog_SetState(nState);
|
|
return nState;
|
|
}
|
|
|
|
int MK_CHEATS_ToggleFlag(object oItem, int nState)
|
|
{
|
|
int nFlag;
|
|
string sVarName = "MK_CHEATS_FLAG_"+IntToString(nState);
|
|
int nMarked = GetLocalInt(oItem, sVarName);
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_CHEATS_CURSEDFLAG:
|
|
SetItemCursedFlag(oItem, nFlag = !GetItemCursedFlag(oItem));
|
|
break;
|
|
case MK_STATE_CHEATS_PLOTFLAG:
|
|
SetPlotFlag(oItem, nFlag = !GetPlotFlag(oItem));
|
|
break;
|
|
case MK_STATE_CHEATS_STOLENFLAG:
|
|
SetStolenFlag(oItem, nFlag = !GetStolenFlag(oItem));
|
|
break;
|
|
case MK_STATE_CHEATS_NOTIDENTIFIED:
|
|
{
|
|
int nIdentified = GetIdentified(oItem);
|
|
int nGold = GetLocalInt(OBJECT_SELF, "MK_CHEATS_ITEM_IDENTIFY");
|
|
if ((!nIdentified) && (!nMarked))
|
|
{
|
|
int nGold = GetLocalInt(OBJECT_SELF, "MK_CHEATS_ITEM_IDENTIFY");
|
|
if (GetGold() >= nGold)
|
|
{
|
|
SetIdentified(oItem, TRUE);
|
|
nFlag = FALSE;
|
|
if (nGold>0)
|
|
{
|
|
TakeGoldFromCreature(nGold, OBJECT_SELF, TRUE);
|
|
SendMessageToPC(OBJECT_SELF, "Item identified: name is "+MK_IPRP_GetItemName(oItem)+"!");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// we haven't done anything so we make sure that
|
|
// the local int doesn't get changed later
|
|
nMarked = !nMarked;
|
|
nFlag = TRUE;
|
|
SendMessageToPC(OBJECT_SELF, "Failed to identify "+MK_IPRP_GetItemName(oItem)+": not enough gold!");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((nIdentified) && (nMarked) && (nGold>0))
|
|
{
|
|
GiveGoldToCreature(OBJECT_SELF, nGold);
|
|
SendMessageToPC(OBJECT_SELF, "Previously identified item made unidentified again. Gold is returned!");
|
|
}
|
|
SetIdentified(oItem, !nIdentified);
|
|
nFlag = nIdentified;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
// Mark Uncursed/Unplot/Unstolen/Identified items or remove mark
|
|
// when items are recursed, re-plot, re-stolen or re-unidentified
|
|
// or mark items, when they are cursed, plot, stolen or unidentified
|
|
// and remove mark, when they are uncursed, unplot, unstolen or identified.
|
|
// This looks confusing but the idea is, that marked items are modified
|
|
// by CCOH
|
|
SetLocalInt(oItem, sVarName, !nMarked);
|
|
|
|
return nFlag;
|
|
}
|
|
|
|
void MK_CHEATS_SetToggleFlagToken(int nState)
|
|
{
|
|
// MK_DEBUG_TRACE("MK_CHEATS_SetToggleFlagToken("+IntToString(nState)+")");
|
|
object oPC = OBJECT_SELF;
|
|
int nStrRef1, nStrRef2, nStrRef3, nStrRefS;
|
|
string sText1, sText2, sText3, sTextS;
|
|
int bText3Colored=TRUE;
|
|
string sColorToken;
|
|
string sTokenEnd = "</c>";
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_CHEATS_CURSEDFLAG:
|
|
nStrRef1 = -486; nStrRef2 = -487; nStrRef3 = -488; nStrRefS = 111874;
|
|
break;
|
|
case MK_STATE_CHEATS_PLOTFLAG:
|
|
nStrRef1 = -490; nStrRef2 = -491; nStrRef3 = -492; nStrRefS = 6808;
|
|
break;
|
|
case MK_STATE_CHEATS_STOLENFLAG:
|
|
nStrRef1 = -495; nStrRef2 = -496; nStrRef3 = -497; nStrRefS = 7102;
|
|
break;
|
|
case MK_STATE_CHEATS_NOTIDENTIFIED:
|
|
nStrRef1 = -498; nStrRef2 = 0; nStrRef3 = 0; nStrRefS = 5548;
|
|
sColorToken = GetLocalString(oPC, "MK_GOLD_COLOR");
|
|
sText2 = "\n"+GetStringByStrRef(65759)+": "+sColorToken+IntToString(GetGold(oPC))+sTokenEnd;
|
|
sText3 = "\n"+GetStringByStrRef(84370)+": "+sColorToken+IntToString(GetLocalInt(oPC, "MK_CHEATS_ITEM_IDENTIFY"))+sTokenEnd;
|
|
bText3Colored=FALSE;
|
|
break;
|
|
}
|
|
int nGender = GetGender(OBJECT_SELF);
|
|
|
|
if (nStrRef1!=0) sText1 = MK_TLK_GetStringByStrRef(nStrRef1, nGender);
|
|
if (nStrRef2!=0) sText2 = MK_TLK_GetStringByStrRef(nStrRef2, nGender);
|
|
if (nStrRef3!=0) sText3 = MK_TLK_GetStringByStrRef(nStrRef3, nGender);
|
|
if (nStrRefS!=0) sTextS = MK_TLK_GetStringByStrRef(nStrRefS, nGender);
|
|
|
|
if (bText3Colored)
|
|
{
|
|
string sColorToken = GetLocalString(oPC, "MK_WARNING_COLOR");
|
|
if (sColorToken!="")
|
|
{
|
|
sText3 = sColorToken+sText3+sTokenEnd;
|
|
}
|
|
}
|
|
|
|
SetCustomToken(14422, sText1);
|
|
SetCustomToken(14423, sText2);
|
|
SetCustomToken(14424, sText3);
|
|
SetCustomToken(14425, sTextS);
|
|
}
|
|
|
|
void MK_CHEATS_UnsetCurrentFlagForAllItems()
|
|
{
|
|
object oPC = GetPCSpeaker();
|
|
int nState = MK_GenericDialog_GetState();
|
|
int nFlag;
|
|
string sVarName = "MK_CHEATS_FLAG_"+IntToString(nState);
|
|
int nMarked;
|
|
int nCount = MK_ITM_DISPLAY_GetItemCount();
|
|
int iItem;
|
|
for (iItem=0; iItem<nCount; iItem++)
|
|
{
|
|
object oItem = MK_ITM_DISPLAY_GetItem(iItem);
|
|
if (GetIsObjectValid(oItem))
|
|
{
|
|
nMarked = GetLocalInt(oItem, sVarName);
|
|
if (!nMarked)
|
|
{
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_CHEATS_CURSEDFLAG:
|
|
if (nFlag = GetItemCursedFlag(oItem))
|
|
{
|
|
SetItemCursedFlag(oItem, !nFlag);
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_PLOTFLAG:
|
|
if (nFlag = GetPlotFlag(oItem))
|
|
{
|
|
SetPlotFlag(oItem, !nFlag);
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_STOLENFLAG:
|
|
if (nFlag = GetStolenFlag(oItem))
|
|
{
|
|
SetStolenFlag(oItem, !nFlag);
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_NOTIDENTIFIED:
|
|
if (nFlag = !GetIdentified(oItem))
|
|
{
|
|
int nGold = GetGold(oPC);
|
|
int nGoldRequired = GetLocalInt(oPC, "MK_CHEATS_ITEM_IDENTIFY");
|
|
if (nGold>=nGoldRequired)
|
|
{
|
|
SetIdentified(oItem, nFlag);
|
|
TakeGoldFromCreature(nGoldRequired, oPC, TRUE);
|
|
}
|
|
else
|
|
{
|
|
nFlag = FALSE;
|
|
SendMessageToPC(oPC, "Failed to identify "+MK_IPRP_GetItemName(oItem)+": not enough gold!");
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
if (nFlag)
|
|
{
|
|
SetLocalInt(oItem, sVarName, TRUE);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void MK_CHEATS_RestoreCurrentFlagForAllItems()
|
|
{
|
|
object oPC = GetPCSpeaker();
|
|
int nState = MK_GenericDialog_GetState();
|
|
int nFlag;
|
|
string sVarName = "MK_CHEATS_FLAG_"+IntToString(nState);
|
|
int nMarked;
|
|
int nCount = MK_ITM_DISPLAY_GetItemCount();
|
|
int iItem;
|
|
for (iItem=0; iItem<nCount; iItem++)
|
|
{
|
|
object oItem = MK_ITM_DISPLAY_GetItem(iItem);
|
|
if (GetIsObjectValid(oItem))
|
|
{
|
|
nMarked = GetLocalInt(oItem, sVarName);
|
|
if (nMarked)
|
|
{
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_CHEATS_CURSEDFLAG:
|
|
if (!(nFlag = GetItemCursedFlag(oItem)))
|
|
{
|
|
SetItemCursedFlag(oItem, !nFlag);
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_PLOTFLAG:
|
|
if (!(nFlag = GetPlotFlag(oItem)))
|
|
{
|
|
SetPlotFlag(oItem, !nFlag);
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_STOLENFLAG:
|
|
if (!(nFlag = GetStolenFlag(oItem)))
|
|
{
|
|
SetStolenFlag(oItem, !nFlag);
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_NOTIDENTIFIED:
|
|
if (!(nFlag = !GetIdentified(oItem)))
|
|
{
|
|
SetIdentified(oItem, nFlag);
|
|
int nGoldRequired = GetLocalInt(oPC, "MK_CHEATS_ITEM_IDENTIFY");
|
|
GiveGoldToCreature(oPC, nGoldRequired);
|
|
}
|
|
break;
|
|
}
|
|
if (!nFlag)
|
|
{
|
|
DeleteLocalInt(oItem, sVarName);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
int StartingConditional()
|
|
{
|
|
int bReturn = TRUE;
|
|
object oPC = GetPCSpeaker();
|
|
|
|
int nState = MK_GenericDialog_GetState();
|
|
int nAction = MK_GenericDialog_GetAction();
|
|
|
|
MK_DEBUG_TRACE("mk_pre_cheats: nState="+IntToString(nState)+", nAction="+IntToString(nAction));
|
|
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_INIT:
|
|
switch (nAction)
|
|
{
|
|
case 40:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS:
|
|
switch (nAction)
|
|
{
|
|
case 28:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_NOTIDENTIFIED);
|
|
MK_ITM_DISPLAY_Initialize(BASE_ITEM_INVALID, MK_ITM_DISP_ALL, 10, "mk_cb_iflag_chk");
|
|
break;
|
|
case 29:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_STOLENFLAG);
|
|
MK_ITM_DISPLAY_Initialize(BASE_ITEM_INVALID, MK_ITM_DISP_ALL, 10, "mk_cb_iflag_chk");
|
|
break;
|
|
case 30:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_PLOTFLAG);
|
|
MK_ITM_DISPLAY_Initialize(BASE_ITEM_INVALID, MK_ITM_DISP_ALL | MK_ITM_DISP_HIDDENSLOTS, 10, "mk_cb_iflag_chk");
|
|
break;
|
|
case 31:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_LEVEL);
|
|
break;
|
|
case 32:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_GOLD);
|
|
break;
|
|
case 33:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_ALIGNMENT);
|
|
break;
|
|
case 34:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_FEATS);
|
|
MK_2DA_DISPLAY_Initialize("iprp_feats", "", "Label", "Name", "FeatIndex", 10, "mk_cb_iprp_ftchk");
|
|
MK_2DA_DISPLAY_SetPageLength(10);
|
|
break;
|
|
case 35:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_CURSEDFLAG);
|
|
MK_ITM_DISPLAY_Initialize(BASE_ITEM_INVALID, MK_ITM_DISP_ALL, 10, "mk_cb_iflag_chk");
|
|
break;
|
|
case 36:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_OPENSTORE);
|
|
MK_2DA_DISPLAY_Initialize("mk_cheat_stores", "", "STRREF", "Name", "RESREF", 50, "");
|
|
MK_2DA_DISPLAY_SetPageLength(10);
|
|
MK_CHEATS_SetCurrentStore(-1);
|
|
break;
|
|
case 37:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_SKILLPOINTS);
|
|
MK_2DA_DISPLAY_Initialize("skills", "", "Label", "Name", "Label", 1, "");
|
|
MK_2DA_DISPLAY_SetPageLength(10);
|
|
MK_CHEATS_SetCurrentSkill(-1);
|
|
break;
|
|
// case 38:
|
|
// MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_ITEMPROPS);
|
|
// break;
|
|
case 39:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS_CHARGES);
|
|
MK_ITM_DISPLAY_Initialize(BASE_ITEM_INVALID, MK_ITM_DISP_ALL | MK_ITM_DISP_DISALLOW_UNIDENTIFIED | MK_ITM_DISP_DISALLOW_PLOTITEMS, 10, "mk_cb_ichrg_chk");
|
|
MK_CHEATS_SetCurrentItem(OBJECT_INVALID);
|
|
break;
|
|
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_DISABLE:
|
|
switch (nAction)
|
|
{
|
|
case 100:
|
|
MK_CHEATS_DisableCurrentCheat();
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
case 101:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_LEVEL:
|
|
{
|
|
int nXP = GetLocalInt(oPC, MK_CHEATS_LEVEL_XP);
|
|
int nLevel = GetHitDice(oPC);
|
|
switch (nAction)
|
|
{
|
|
case 28:
|
|
MK_CHEATS_LevelPC(oPC, 10);
|
|
break;
|
|
case 29:
|
|
MK_CHEATS_LevelPC(oPC, 1);
|
|
break;
|
|
case 30:
|
|
MK_CHEATS_LevelPC(oPC, -1);
|
|
break;
|
|
case 31:
|
|
MK_CHEATS_LevelPC(oPC, -10);
|
|
break;
|
|
case 38:
|
|
SetXP(oPC, GetXP(oPC)-nXP);
|
|
SetLocalInt(oPC, MK_CHEATS_LEVEL_XP, 0);
|
|
break;
|
|
case 39:
|
|
SetLocalInt(oPC, MK_CHEATS_LEVEL_XP, 0);
|
|
break;
|
|
case 127:
|
|
nState = MK_CHEATS_PrepareDisablingCurrentCheat();
|
|
break;
|
|
case 255:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
};
|
|
break;
|
|
}
|
|
case MK_STATE_CHEATS_GOLD:
|
|
{
|
|
switch (nAction)
|
|
{
|
|
case 25:
|
|
MK_CHEATS_GiveGold(oPC, 10000);
|
|
break;
|
|
case 26:
|
|
MK_CHEATS_GiveGold(oPC, 1000);
|
|
break;
|
|
case 27:
|
|
MK_CHEATS_GiveGold(oPC, 100);
|
|
break;
|
|
case 28:
|
|
MK_CHEATS_GiveGold(oPC, 10);
|
|
break;
|
|
case 29:
|
|
MK_CHEATS_GiveGold(oPC, 1);
|
|
break;
|
|
case 30:
|
|
MK_CHEATS_GiveGold(oPC, -1);
|
|
break;
|
|
case 31:
|
|
MK_CHEATS_GiveGold(oPC, -10);
|
|
break;
|
|
case 32:
|
|
MK_CHEATS_GiveGold(oPC, -100);
|
|
break;
|
|
case 33:
|
|
MK_CHEATS_GiveGold(oPC, -1000);
|
|
break;
|
|
case 34:
|
|
MK_CHEATS_GiveGold(oPC, -10000);
|
|
break;
|
|
case 38:
|
|
MK_CHEATS_GiveGold(oPC, -GetLocalInt(oPC, MK_CHEATS_GOLD_AMOUNT));
|
|
break;
|
|
case 39:
|
|
SetLocalInt(oPC, MK_CHEATS_GOLD_AMOUNT, 0);
|
|
break;
|
|
case 127:
|
|
nState = MK_CHEATS_PrepareDisablingCurrentCheat();
|
|
break;
|
|
case 255:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
case MK_STATE_CHEATS_ALIGNMENT:
|
|
switch (nAction)
|
|
{
|
|
case 31:
|
|
MK_CHEATS_AdjustAlignment(oPC, ALIGNMENT_GOOD, 1);
|
|
break;
|
|
case 32:
|
|
MK_CHEATS_AdjustAlignment(oPC, ALIGNMENT_EVIL, 1);
|
|
break;
|
|
case 33:
|
|
MK_CHEATS_AdjustAlignment(oPC, ALIGNMENT_LAWFUL, 1);
|
|
break;
|
|
case 34:
|
|
MK_CHEATS_AdjustAlignment(oPC, ALIGNMENT_CHAOTIC, 1);
|
|
break;
|
|
case 35:
|
|
MK_CHEATS_RestoreAlignment(oPC);
|
|
break;
|
|
case 36:
|
|
SetLocalInt(oPC, MK_CHEATS_ALIGNMENT_LAWCHAOS, 0);
|
|
SetLocalInt(oPC, MK_CHEATS_ALIGNMENT_GOODEVIL, 0);
|
|
break;
|
|
case 127:
|
|
nState = MK_CHEATS_PrepareDisablingCurrentCheat();
|
|
break;
|
|
case 255:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_FEATS:
|
|
switch (nAction)
|
|
{
|
|
case 250: // First page
|
|
case 251: // previous page
|
|
case 252: // next page
|
|
case 253: // last page
|
|
MK_2DA_DISPLAY_UpdatePage(nAction);
|
|
break;
|
|
case 255:
|
|
MK_2DA_DISPLAY_Cleanup();
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
case 127:
|
|
MK_2DA_DISPLAY_Cleanup();
|
|
nState = MK_CHEATS_PrepareDisablingCurrentCheat();
|
|
break;
|
|
default:
|
|
if ((nAction>=0) && (nAction<MK_2DA_DISPLAY_GetPageLength()))
|
|
{
|
|
int nFeat = MK_2DA_DISPLAY_GetValueAsInt(nAction);
|
|
MK_DEBUG_TRACE("Selected feat is "+IntToString(nFeat));
|
|
MK_CHEATS_ToggleFeat(nFeat);
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_CURSEDFLAG:
|
|
case MK_STATE_CHEATS_PLOTFLAG:
|
|
case MK_STATE_CHEATS_STOLENFLAG:
|
|
case MK_STATE_CHEATS_NOTIDENTIFIED:
|
|
switch (nAction)
|
|
{
|
|
case 250: // First page
|
|
case 251: // previous page
|
|
case 252: // next page
|
|
case 253: // last page
|
|
MK_ITM_DISPLAY_UpdatePage(nAction);
|
|
break;
|
|
case 255:
|
|
MK_ITM_DISPLAY_Cleanup();
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
case 127:
|
|
MK_ITM_DISPLAY_Cleanup();
|
|
nState = MK_CHEATS_PrepareDisablingCurrentCheat();
|
|
break;
|
|
case 30:
|
|
// change all
|
|
MK_CHEATS_UnsetCurrentFlagForAllItems();
|
|
break;
|
|
case 31:
|
|
// undo all changes
|
|
MK_CHEATS_RestoreCurrentFlagForAllItems();
|
|
break;
|
|
case 38:
|
|
case 39:
|
|
SetLocalInt(oPC,"MK_CHEATS_SHOWALLITEMS", !GetLocalInt(oPC, "MK_CHEATS_SHOWALLITEMS"));
|
|
MK_ITM_DISPLAY_Initialize(BASE_ITEM_INVALID, MK_CHEATS_GetItemFlagDefaultMode(nState), 10, "mk_cb_iflag_chk");
|
|
break;
|
|
default:
|
|
if ((nAction>=0) && (nAction<MK_ITM_DISPLAY_GetPageLength()))
|
|
{
|
|
object oItem = MK_ITM_DISPLAY_GetSelectedItem(nAction);
|
|
MK_DEBUG_TRACE("Selected item is '"+GetName(oItem)+"'");
|
|
MK_CHEATS_ToggleFlag(oItem, nState);
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_CHARGES:
|
|
switch (nAction)
|
|
{
|
|
case 30:
|
|
MK_CHEATS_AdjustItemCharges(10);
|
|
break;
|
|
case 31:
|
|
MK_CHEATS_AdjustItemCharges(1);
|
|
break;
|
|
case 32:
|
|
MK_CHEATS_AdjustItemCharges(-1);
|
|
break;
|
|
case 33:
|
|
MK_CHEATS_AdjustItemCharges(-10);
|
|
break;
|
|
case 38:
|
|
case 39:
|
|
SetLocalInt(oPC,"MK_CHEATS_SHOWALLITEMS", !GetLocalInt(oPC, "MK_CHEATS_SHOWALLITEMS"));
|
|
MK_ITM_DISPLAY_Initialize(BASE_ITEM_INVALID, MK_ITM_DISP_ALL, 10, "mk_cb_ichrg_chk");
|
|
break;
|
|
case 250: // First page
|
|
case 251: // previous page
|
|
case 252: // next page
|
|
case 253: // last page
|
|
MK_ITM_DISPLAY_UpdatePage(nAction);
|
|
break;
|
|
case 254:
|
|
nState = MK_CHEATS_FinishChangeCharges();
|
|
break;
|
|
case 255:
|
|
MK_CHEATS_SetCurrentItem(OBJECT_INVALID);
|
|
MK_ITM_DISPLAY_Cleanup();
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
case 257:
|
|
nState = MK_CHEATS_CancelChangeCharges();
|
|
break;
|
|
case 127:
|
|
MK_ITM_DISPLAY_Cleanup();
|
|
nState = MK_CHEATS_PrepareDisablingCurrentCheat();
|
|
break;
|
|
default:
|
|
if ((nAction>=0) && (nAction<MK_ITM_DISPLAY_GetPageLength()))
|
|
{
|
|
object oItem = MK_ITM_DISPLAY_GetSelectedItem(nAction);
|
|
MK_DEBUG_TRACE("Selected item is '"+GetName(oItem)+"'");
|
|
MK_CHEATS_SetCurrentItem(oItem);
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_SKILLPOINTS:
|
|
switch (nAction)
|
|
{
|
|
case 30:
|
|
MK_CHEATS_AdjustCurrentSkill(1);
|
|
break;
|
|
case 31:
|
|
MK_CHEATS_AdjustCurrentSkill(-1);
|
|
break;
|
|
case 32:
|
|
MK_CHEATS_ResetCurrentSkill();
|
|
break;
|
|
case 33:
|
|
MK_CHEATS_ResetAllSkills();
|
|
case 250: // First page
|
|
case 251: // previous page
|
|
case 252: // next page
|
|
case 253: // last page
|
|
MK_2DA_DISPLAY_UpdatePage(nAction);
|
|
break;
|
|
case 255:
|
|
MK_2DA_DISPLAY_Cleanup();
|
|
MK_CHEATS_SetCurrentStore(0);
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
case 127:
|
|
MK_2DA_DISPLAY_Cleanup();
|
|
MK_CHEATS_SetCurrentStore(0);
|
|
nState = MK_CHEATS_PrepareDisablingCurrentCheat();
|
|
break;
|
|
default:
|
|
if ((nAction>=0) && (nAction<MK_2DA_DISPLAY_GetPageLength()))
|
|
{
|
|
int nSkill = MK_2DA_DISPLAY_GetValueAsInt(nAction);
|
|
if (nSkill == MK_CHEATS_GetCurrentSkill())
|
|
{
|
|
MK_CHEATS_AdjustCurrentSkill(1);
|
|
}
|
|
else
|
|
{
|
|
MK_CHEATS_SetCurrentSkill(nSkill);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_ITEMPROPS:
|
|
MK_ITM_DISPLAY_Cleanup();
|
|
switch (nAction)
|
|
{
|
|
case 127:
|
|
nState = MK_CHEATS_PrepareDisablingCurrentCheat();
|
|
break;
|
|
default:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_SWAPITEMPROPS:
|
|
MK_ITM_DISPLAY_Cleanup();
|
|
switch (nAction)
|
|
{
|
|
case 127:
|
|
nState = MK_CHEATS_PrepareDisablingCurrentCheat();
|
|
break;
|
|
default:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
}
|
|
break;
|
|
case MK_STATE_CHEATS_OPENSTORE:
|
|
switch (nAction)
|
|
{
|
|
case 250: // First page
|
|
case 251: // previous page
|
|
case 252: // next page
|
|
case 253: // last page
|
|
MK_2DA_DISPLAY_UpdatePage(nAction);
|
|
break;
|
|
case 255:
|
|
MK_2DA_DISPLAY_Cleanup();
|
|
MK_GenericDialog_SetState(nState = MK_STATE_CHEATS);
|
|
break;
|
|
case 30:
|
|
bReturn = MK_CHEATS_OpenCurrentStore();
|
|
break;
|
|
case 127:
|
|
MK_2DA_DISPLAY_Cleanup();
|
|
nState = MK_CHEATS_PrepareDisablingCurrentCheat();
|
|
break;
|
|
default:
|
|
if ((nAction>=0) && (nAction<MK_2DA_DISPLAY_GetPageLength()))
|
|
{
|
|
int nStoreID = MK_2DA_DISPLAY_GetValueAsInt(nAction);
|
|
int nCurrentStore = MK_CHEATS_GetCurrentStore();
|
|
if (nStoreID!=nCurrentStore)
|
|
{
|
|
MK_CHEATS_SetCurrentStore(nStoreID);
|
|
}
|
|
else
|
|
{
|
|
bReturn = MK_CHEATS_OpenCurrentStore();
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
|
|
MK_DEBUG_TRACE("mk_pre_cheats: nState="+IntToString(nState));
|
|
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_CHEATS:
|
|
{
|
|
MK_CHEATS_SetCustomTokens();
|
|
break;
|
|
}
|
|
case MK_STATE_CHEATS_LEVEL:
|
|
{
|
|
int nLevel = MK_CHEATS_GetLevel(oPC);
|
|
int bMinLevel = (nLevel==1);
|
|
int bMaxLevel = (nLevel==MK_CHEATS_GetMaxLevel(oPC));
|
|
SetCustomToken(14471, (bMinLevel ? GetLocalString(OBJECT_SELF, MK_DISABLED_OPTIONS_COLOR) : ""));
|
|
SetCustomToken(14472, (bMinLevel ? "</c>" : ""));
|
|
SetCustomToken(14473, (bMaxLevel ? GetLocalString(OBJECT_SELF, MK_DISABLED_OPTIONS_COLOR) : ""));
|
|
SetCustomToken(14474, (bMaxLevel ? "</c>" : ""));
|
|
int nXP = GetLocalInt(oPC, MK_CHEATS_LEVEL_XP);
|
|
MK_GenericDialog_SetConditionRange(28, 31, TRUE);
|
|
MK_GenericDialog_SetCondition(38, nXP!=0);
|
|
MK_GenericDialog_SetCondition(39, nXP!=0);
|
|
SetCustomToken(14421, IntToString(nLevel));
|
|
SetCustomToken(14422, IntToString(GetXP(oPC)));
|
|
SetCustomToken(14423, IntToString(nXP));
|
|
MK_GenericDialog_SetCondition(127, TRUE);
|
|
break;
|
|
}
|
|
case MK_STATE_CHEATS_GOLD:
|
|
{
|
|
int nCurrentGold = GetGold(oPC);
|
|
int nGoldGiven = GetLocalInt(oPC, MK_CHEATS_GOLD_AMOUNT);
|
|
SetCustomToken(14471, (nCurrentGold==0 ? GetLocalString(OBJECT_SELF, MK_DISABLED_OPTIONS_COLOR) : ""));
|
|
SetCustomToken(14472, (nCurrentGold==0 ? "</c>" : ""));
|
|
MK_GenericDialog_SetConditionRange(25, 34, TRUE);
|
|
MK_GenericDialog_SetCondition(38, nGoldGiven!=0);
|
|
MK_GenericDialog_SetCondition(39, nGoldGiven!=0);
|
|
SetCustomToken(14422, IntToString(nCurrentGold));
|
|
SetCustomToken(14423, (nGoldGiven>0 ? "+" : "") + IntToString(nGoldGiven));
|
|
MK_GenericDialog_SetCondition(127, TRUE);
|
|
break;
|
|
}
|
|
case MK_STATE_CHEATS_ALIGNMENT:
|
|
{
|
|
MK_CHEATS_SetAlignmentToken(oPC, 14422, 14424);
|
|
// SetCustomToken(14422, IntToString(nAlignmentGoodEvil));
|
|
// int nAlignmentShiftGoodEvil = GetLocalInt(oPC, MK_CHEATS_ALIGNMENT_GOODEVIL);
|
|
// SetCustomToken(14423, (nAlignmentShiftGoodEvil>0 ? "+" : "") + IntToString(nAlignmentShiftGoodEvil));
|
|
|
|
// SetCustomToken(14424, IntToString(nAlignmentLawChaos));
|
|
// int nAlignmentShiftLawChaos = GetLocalInt(oPC, MK_CHEATS_ALIGNMENT_LAWCHAOS);
|
|
// SetCustomToken(14425, (nAlignmentShiftLawChaos>0 ? "+" : "") + IntToString(nAlignmentShiftLawChaos));
|
|
|
|
int bAlignmentShifted = (GetLocalInt(oPC, MK_CHEATS_ALIGNMENT_GOODEVIL)!=0)
|
|
|| (GetLocalInt(oPC, MK_CHEATS_ALIGNMENT_LAWCHAOS)!=0);
|
|
MK_GenericDialog_SetConditionRange(31, 34, TRUE);
|
|
MK_GenericDialog_SetCondition(35, bAlignmentShifted);
|
|
MK_GenericDialog_SetCondition(36, bAlignmentShifted);
|
|
|
|
string sDisabledColor = GetLocalString(OBJECT_SELF, MK_DISABLED_OPTIONS_COLOR);
|
|
string sEndColor = "</c>";
|
|
int nAlignmentGoodEvil = GetGoodEvilValue(oPC);
|
|
int nAlignmentLawChaos = GetLawChaosValue(oPC);
|
|
SetCustomToken(14471, (nAlignmentGoodEvil==100 ? sDisabledColor : ""));
|
|
SetCustomToken(14472, (nAlignmentGoodEvil==100 ? sEndColor : ""));
|
|
SetCustomToken(14473, (nAlignmentGoodEvil==0 ? sDisabledColor : ""));
|
|
SetCustomToken(14474, (nAlignmentGoodEvil==0 ? sEndColor : ""));
|
|
SetCustomToken(14475, (nAlignmentLawChaos==100 ? sDisabledColor : ""));
|
|
SetCustomToken(14476, (nAlignmentLawChaos==100 ? sEndColor : ""));
|
|
SetCustomToken(14477, (nAlignmentLawChaos==0 ? sDisabledColor : ""));
|
|
SetCustomToken(14478, (nAlignmentLawChaos==0 ? sEndColor : ""));
|
|
|
|
MK_GenericDialog_SetCondition(127, TRUE);
|
|
break;
|
|
}
|
|
case MK_STATE_CHEATS_FEATS:
|
|
MK_2DA_DISPLAY_DisplayPage(MK_2DA_DISPLAY_GetCurrentPage(), -1, "mk_cb_iprp_ftlbl", TRUE);
|
|
MK_GenericDialog_SetCondition(127, TRUE);
|
|
break;
|
|
case MK_STATE_CHEATS_CURSEDFLAG:
|
|
case MK_STATE_CHEATS_PLOTFLAG:
|
|
case MK_STATE_CHEATS_STOLENFLAG:
|
|
case MK_STATE_CHEATS_NOTIDENTIFIED:
|
|
{
|
|
MK_ITM_DISPLAY_DisplayPage(MK_ITM_DISPLAY_GetCurrentPage(), "mk_cb_iflag_lbl");
|
|
MK_GenericDialog_SetCondition(127, TRUE);
|
|
MK_CHEATS_SetToggleFlagToken(nState);
|
|
int bShowAll = GetLocalInt(oPC, "MK_CHEATS_SHOWALLITEMS");
|
|
MK_GenericDialog_SetCondition(39, !bShowAll);
|
|
MK_GenericDialog_SetCondition(38, bShowAll);
|
|
MK_GenericDialog_SetConditionRange(30, 31, TRUE);
|
|
break;
|
|
}
|
|
case MK_STATE_CHEATS_CHARGES:
|
|
{
|
|
object oItem = MK_CHEATS_GetCurrentItem();
|
|
int bIsValid = GetIsObjectValid(oItem);
|
|
|
|
MK_CHEATS_SetCustomToken();
|
|
|
|
MK_GenericDialog_SetConditionRange(30, 33, bIsValid);
|
|
|
|
if (GetIsObjectValid(oItem))
|
|
{
|
|
int nCharges = GetItemCharges(oItem);
|
|
SetCustomToken(14461, (!GetIsObjectValid(oItem) ? GetLocalString(OBJECT_SELF, MK_DISABLED_OPTIONS_COLOR) : ""));
|
|
SetCustomToken(14462, (!GetIsObjectValid(oItem) || (nCharges<=MK_CHEATS_MIN_CHARGES) ? GetLocalString(OBJECT_SELF, MK_DISABLED_OPTIONS_COLOR) : ""));
|
|
SetCustomToken(14471, (!GetIsObjectValid(oItem) ? "</c>" : ""));
|
|
SetCustomToken(14472, (!GetIsObjectValid(oItem) || (nCharges<=MK_CHEATS_MIN_CHARGES) ? "</c>" : ""));
|
|
|
|
SetCustomToken(14424, IntToString(GetItemCharges(oItem)));
|
|
MK_ITM_DISPLAY_HidePage();
|
|
MK_GenericDialog_SetConditionRange(38,39, FALSE);
|
|
MK_GenericDialog_SetCondition(127, FALSE);
|
|
}
|
|
else
|
|
{
|
|
SetCustomToken(14424, "-");
|
|
MK_ITM_DISPLAY_DisplayPage(MK_ITM_DISPLAY_GetCurrentPage(), "mk_cb_ichrg_lbl");
|
|
int bShowAll = GetLocalInt(oPC, "MK_CHEATS_SHOWALLITEMS");
|
|
MK_GenericDialog_SetCondition(39, !bShowAll);
|
|
MK_GenericDialog_SetCondition(38, bShowAll);
|
|
// MK_GenericDialog_SetCondition(37, TRUE);
|
|
MK_GenericDialog_SetCondition(127, TRUE);
|
|
}
|
|
|
|
int bModified = MK_CHEATS_GetIsCurrentItemModified();
|
|
MK_GenericDialog_SetCondition(254, bModified);
|
|
MK_GenericDialog_SetCondition(255, !bModified);
|
|
MK_GenericDialog_SetCondition(257, bModified);
|
|
|
|
break;
|
|
}
|
|
case MK_STATE_CHEATS_SKILLPOINTS:
|
|
MK_CHEATS_SetSkillsToken();
|
|
MK_2DA_DISPLAY_DisplayPage(MK_2DA_DISPLAY_GetCurrentPage(), MK_CHEATS_GetCurrentSkill(), "mk_cb_iprp_sklbl", FALSE);
|
|
MK_GenericDialog_SetConditionRange(30, 34, TRUE);
|
|
MK_GenericDialog_SetCondition(127, TRUE);
|
|
break;
|
|
case MK_STATE_CHEATS_OPENSTORE:
|
|
{
|
|
MK_2DA_DISPLAY_DisplayPage(MK_2DA_DISPLAY_GetCurrentPage(), MK_CHEATS_GetCurrentStore(), "mk_cb_store_lbl", TRUE);
|
|
SetCustomToken(14422, MK_CHEATS_GetCurrentStoreName());
|
|
|
|
SetCustomToken(14460, "");
|
|
SetCustomToken(14470, "");
|
|
object oStore = MK_CHEATS_SearchCurrentStore();
|
|
int nStoreID = MK_CHEATS_GetCurrentStore();
|
|
if (GetIsObjectValid(oStore))
|
|
{
|
|
object oArea = GetArea(oStore);
|
|
SetCustomToken(14424, GetName(oArea));
|
|
}
|
|
else if (nStoreID!=-1)
|
|
{
|
|
int nStrRef = MK_Get2DAInt("mk_cheat_stores", "LOCATION", nStoreID, 7221);
|
|
SetCustomToken(14424, MK_TLK_GetStringByStrRef(nStrRef, GetGender(oPC)));
|
|
}
|
|
else
|
|
{
|
|
SetCustomToken(14460, GetLocalString(OBJECT_SELF, "MK_DISABLED_OPTIONS_COLOR"));
|
|
SetCustomToken(14470, " *no store selected*</c>");
|
|
SetCustomToken(14424, "");
|
|
}
|
|
MK_GenericDialog_SetCondition(30, TRUE);
|
|
MK_GenericDialog_SetCondition(127, TRUE);
|
|
break;
|
|
}
|
|
case MK_STATE_CHEATS_DISABLE:
|
|
// custom token set in MK_CHEATS_PrepareDisablingCurrentCheat()
|
|
break;
|
|
}
|
|
|
|
MK_DEBUG_TRACE("mk_pre_cheats: bReturn="+IntToString(bReturn));
|
|
|
|
if (bReturn)
|
|
{
|
|
MK_DELIMITER_Initialize();
|
|
}
|
|
else
|
|
{
|
|
ExecuteScript("mk_im_cancel");
|
|
}
|
|
|
|
MK_GenericDialog_SetCondition(256, FALSE);
|
|
|
|
return bReturn;
|
|
}
|