Major update

Created top hak for crafting dialog.  Moved Bioware creature abilities to top hak.  Fixed DMFI wand handouts.  Added DMFI language handouts.  Added CCOH 6.  Disabled PC corpse system.  Modified new player startup system.  Full compile.  Updated release archive.
This commit is contained in:
Jaysyn904
2024-09-17 13:24:57 -04:00
parent 5d27edafba
commit 903f023230
626 changed files with 57291 additions and 9788 deletions

View File

@@ -0,0 +1,74 @@
#include "mk_inc_craft"
#include "mk_inc_debug"
#include "mk_inc_version"
void MK_SetEventScript(object oObject, int nHandler, string sScript)
{
SetEventScript(oObject, nHandler, sScript);
}
string MK_GetEventScript(object oObject, int nHandler)
{
return GetEventScript(oObject, nHandler);
}
void main()
{
MK_DEBUG_TRACE("mk_onplayertargt...");
MK_RestorePlayerTargetScript();
object oPC = GetLastPlayerToSelectTarget();
object oTargetOld = MK_GetCurrentTarget(oPC);
object oTargetNew = GetTargetingModeSelectedObject();
int nEnableTarget = GetLocalInt(oPC, "MK_ENABLE_SELECT_TARGET");
MK_DEBUG_TRACE(" > oPC="+GetName(oPC));
MK_DEBUG_TRACE(" > oTargetOld="+GetName(oTargetOld));
MK_DEBUG_TRACE(" > oTargetNew="+GetName(oTargetNew));
if (GetIsObjectValid(oTargetNew))
{
if (GetIsPC(oTargetNew) && (oTargetNew != oPC)) // no PCs allowed
{
SendMessageToPC(oPC, "Invalid target! You can't modify other PCs!");
oTargetNew = oTargetOld;
}
else if (nEnableTarget==1) // henchmen only
{
if (!MK_GetIsHenchman(oTargetNew, oPC))
{
SendMessageToPC(oPC, "Invalid target! Only your own henchmen are allowed!");
oTargetNew = oTargetOld;
}
}
if (oTargetNew!=oTargetOld)
{
MK_SetCurrentTarget(oPC, oTargetNew);
if (oTargetNew!=oPC)
{
AssignCommand(oPC, ActionForceMoveToObject(oTargetNew, FALSE, 1.0f, 5.0f));
if (MK_VERSION_GetIsVersionGreaterEqual_1_74(oPC))
{
string sOnConversationScript = MK_GetEventScript(oTargetNew, EVENT_SCRIPT_CREATURE_ON_DIALOGUE);
if (sOnConversationScript!="")
{
SetLocalString(oTargetNew, "MK_CCOH_ON_DIALOG_SCRIPT", sOnConversationScript);
SetEventScript(oTargetNew, EVENT_SCRIPT_CREATURE_ON_DIALOGUE, "");
// safety belt: if dialog does not start for some reason then this will restore the OnConversation script
DelayCommand(10.0f, MK_SetEventScript(oTargetNew, EVENT_SCRIPT_CREATURE_ON_DIALOGUE, sOnConversationScript));
}
}
}
}
}
else
{
oTargetNew = oTargetOld;
}
AssignCommand(oPC, ActionStartConversation(oTargetNew, "x0_skill_ctrap", TRUE, FALSE));
}