Całkiem niedawno opatentowałem coś takiego:
func void DisableCommand (var string command)
{
if (Hlp_StrCmp (STR_SubStr (MEM_ReadString (MEM_ReadInt (ESP+4)), 0, STR_Len (command)), command))
{
MEM_WriteString (MEM_ReadInt (ESP+4), "");
};
};
func void DisableKey (var int key)
{
if (MEM_ReadInt (ESP+4) == key)
{
MEM_WriteInt (ESP+4, -1);
};
};
func void DisableKey_Hook ()
{
DisableKey (KEY_F8);
DisableKey (KEY_K);
};
func void DisableComnand_Hook ()
{
DisableCommand ("CHEAT GOD");
DisableCommand ("CHEAT FULL");
};
Init_Global:
HookEngineF (7882848, 7, DisableComnand_Hook);
HookEngineF (7329120, 6, DisableKey_Hook);
Dzięki temu można zablokować dowolną komendę oraz klawisz w trybie Marvin. Można to bardziej rozpisać, by np. klawisz F8 mógłby być używany tylko do ożywienia npc potrzebnego do zadania. Możliwości są spore.