Kingdom Come: Deliverance
0 of 0

File information

Last updated

Original upload

Created by

Sireyn

Uploaded by

Sireyn

Virus scan

Safe to use

About this mod

Adds several unique, bindable keys to the settings menu: Draw Torch, Pickpocket, Lockpick, Steal, Dog Attack, Dog Return, and Abort/Exit. These functions are separated from any key they were originally attached to.

Permissions and credits
Changelogs
Donations
The steal key only works when picking up objects and opening containers that don't belong to you. It does not work when taking an item from a container, though I am seeking a solution.

Pickpocket
Default : F

Lockpick
Default : F

Steal
Default : F

Draw Torch
Default : 3

Command dog to return
Default : 4

Command dog to attack
Default : 5

Abort/Exit
Default : Mouse Right Click
Default : Backspace
Default : Escape

Installation
Extract the contents of the .zip into the \KingdomComeDeliverance\Mods folder

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

I've given up trying to decipher the decompiled hud.gfx to correct the mod's bugs. If anyone wants to take a crack at it, here is where you should start.

KingdomComeDeliverance\Data > GameData.pak > Libs\UI\hud.gfx

This is apparently the bit of ActionScript that handles how the hints are shown.
Spoiler:  
Show
function fc_showActionHint(ActionId, Control, Text, Type, Name)
{
   var _loc3_ = null;
   var _loc4_ = Control.split("|");
   if(_loc4_.length == 0)
   {
      return undefined;
   }
   var _loc5_ = new Array();
   var _loc2_ = 0;
   while(_loc2_ < _loc4_.length)
   {
      if(_loc4_[_loc2_].charAt(0) == "@")
      {
         _loc5_[_loc2_] = getControlName(_loc4_[_loc2_]);
      }
      else
      {
         _loc5_[_loc2_] = _loc4_[_loc2_];
      }
      _loc2_ = _loc2_ + 1;
   }
   _loc2_ = 0;
   while(_loc2_ < hintsArr.length)
   {
      if(ActionId == hintsArr[_loc2_][0])
      {
         if(Text != hintsArr[_loc2_][1].tfHintText.tField.text)
         {
            _loc3_ = hintsArr[_loc2_][1];
            break;
         }
      }
      _loc2_ = _loc2_ + 1;
   }
   if(_loc3_ == null)
   {
      _loc3_ = _root.br.mc_HintsEle.attachMovie("mc_Hint","hint" + ActionId,_root.br.mc_HintsEle.getNextHighestDepth());
      if((Type & E_Flag_Codex) != 0)
      {
         hintsArr.unshift([ActionId,_loc3_,true]);
         _loc3_._y = -1080 - br.mc_HintsEle._y + 55 + tr.mc_TutorialMessage.inside.Background._height + tr.mc_TutorialMessage._y;
      }
      else
      {
         hintsArr.push([ActionId,_loc3_]);
         _loc3_._y = hintsArr.length * -55;
         if(hintsArr[0][2] == true)
         {
            _loc3_._y += 55;
         }
      }
   }
   if((Type & E_Flag_Dog) != 0)
   {
      _loc3_.ornament.gotoAndStop(2);
   }
   else
   {
      _loc3_.ornament.gotoAndStop(1);
   }
   _loc3_.tfText.text = Text;
   var _loc12_ = _loc3_.tfText.text;
   _loc2_ = 0;
   while(_loc2_ < _loc4_.length)
   {
      _loc3_["mc_HintIcon" + _loc2_].gotoAndStop(_loc5_[_loc2_]);
      if(_loc2_ > 0)
      {
         var _loc6_ = - br.mc_HintsEle._x - _loc3_["mc_HintIcon" + _loc2_]._width;
         _loc3_["mc_HintIcon" + _loc2_]._x = Math.min(_loc3_["mc_HintIcon" + (_loc2_ - 1)]._x + _loc3_["mc_HintIcon" + (_loc2_ - 1)]._width + 5,_loc6_);
      }
      if(_loc4_[_loc2_].charAt(0) == "@")
      {
         _loc3_["mc_HintIcon" + _loc2_].tField.text = _loc4_[_loc2_];
      }
      else
      {
         _loc3_["mc_HintIcon" + _loc2_].tField.text = "";
      }
      if((Type & E_Flag_Hold) != 0)
      {
         _loc3_["mc_HintIcon" + _loc2_].mc_holdIcon._visible = true;
      }
      else
      {
         _loc3_["mc_HintIcon" + _loc2_].mc_holdIcon._visible = false;
      }
      _loc2_ = _loc2_ + 1;
   }
   if((Type & E_Flag_Disable) != 0)
   {
      _loc3_._alpha = 40;
   }
   else
   {
      _loc3_._alpha = 100;
   }
   _loc3_.tfText.text = _loc12_;
   _loc3_.ornament._x = - _loc3_.tfText.getLineMetrics(0).width - 30;
   if(Name && Name != "" && Name != "@")
   {
      if(_root.br.mc_HintsEle.npcName == undefined)
      {
         var _loc11_ = _root.br.mc_HintsEle.attachMovie("mc_NpcName","npcName",_root.br.mc_HintsEle.getNextHighestDepth());
         _loc11_.tfName.text = Name;
         _loc11_.ActionId = ActionId;
      }
   }
   if(_root.br.mc_HintsEle.npcName)
   {
      _root.br.mc_HintsEle.npcName._y = hintsArr[hintsArr.length - 1][1]._y - 55;
   }
}





function fc_hideActionHint(ActionId)
{
   if(hintsArr.length == 0)
   {
      return undefined;
   }
   var _loc1_ = undefined;
   _loc1_ = 0;
   while(_loc1_ < hintsArr.length)
   {
      if(ActionId == hintsArr[_loc1_][0])
      {
         break;
      }
      if(_loc1_ == hintsArr.length - 1)
      {
         return undefined;
      }
      _loc1_ = _loc1_ + 1;
   }
   hintsArr[_loc1_][1].removeMovieClip();
   var _loc2_ = _loc1_ + 1;
   while(_loc2_ < hintsArr.length)
   {
      hintsArr[_loc2_][1]._y -= -55;
      _loc2_ = _loc2_ + 1;
   }
   hintsArr.splice(_loc1_,1);
}





function fc_showNpcName(Name)
{
   if(Name && Name != "" && Name != "@")
   {
      if(_root.br.mc_HintsEle.npcName == undefined)
      {
         var _loc3_ = _root.br.mc_HintsEle.attachMovie("mc_NpcName","npcName",_root.br.mc_HintsEle.getNextHighestDepth());
      }
      _loc3_.tfName.text = Name;
   }
   if(_root.br.mc_HintsEle.npcName)
   {
      if(hintsArr.length != 0 && !(hintsArr.length == 1 && hintsArr[0][2]))
      {
         _root.br.mc_HintsEle.npcName._y = hintsArr[hintsArr.length - 1][1]._y - 55;
      }
      else
      {
         _root.br.mc_HintsEle.npcName._y = -55;
      }
   }





}
function fc_hideNpcName()
{
   if(_root.br.mc_HintsEle.npcName)
   {
      _root.br.mc_HintsEle.npcName.removeMovieClip();
   }
}





function fc_resetActionsHints()
{
   var _loc1_ = 0;
   while(_loc1_ < hintsArr.length)
   {
      hintsArr[_loc1_][1].removeMovieClip();
      _loc1_ = _loc1_ + 1;
   }
   hintsArr.length = 0;
}