Il existe une solution, mais elle ne fonctionne que si l'hôte l'a configurée (installation d'un mod de script Lua).
Pour installer ce mod, récupérez une copie de IPHLPAPI.dll à partir de PocoHud ou HoxHud et le placer dans le fichier PAYDAY 2
dossier du jeu. Vous n'avez besoin que de IPHLPAPI.dll (le hook Lua)*, il n'y a donc pas besoin des autres fichiers si vous ne voulez pas installer les mods ci-dessus.
Ouvrez le PAYDAY 2
et, si ces dossiers n'existent pas encore, créez un dossier lib
puis créez un dossier Lua
dans ce dossier. Créez ensuite un fichier texte dans ce dossier et nommez-le register_exclude_characters_mod.lua
. Collez-y ce script à l'aide d'un éditeur de texte et enregistrez le fichier :
-- http://gaming.stackexchange.com/a/191627/4797?exclude_characters_PAYDAY_2
RegisterScript("lib/Lua/exclude_characters/exclude_characters.lua", 2, "lib/network/networkgame")
RegisterScript("lib/Lua/exclude_characters/exclude_characters.lua", 2, "lib/managers/criminalsmanager")
Ensuite, allez sur \PAYDAY 2\lib\Lua\
puis créez un dossier appelé exclude_characters
puis créez un fichier texte dans celui-ci et nommez-le exclude_characters.lua
. Collez-y ce script à l'aide d'un éditeur de texte et enregistrez le fichier :
-- http://gaming.stackexchange.com/a/191627/4797?exclude_characters_PAYDAY_2
-- v2
local EXCLUDED_CHARACTERS = EXCLUDED_CHARACTERS or {
-- "russian", -- Dallas
-- "german", -- Wolf
-- "spanish", -- Chains
-- "american", -- Houston
"jowi", -- Wick
-- "old_hoxton", -- Hoxton
-- "female_1", --Clover
-- "dragan",
-- "jacket",
-- "bonnie",
-- "sokol",
}
if RequiredScript == "lib/network/networkgame" and (#EXCLUDED_CHARACTERS < 8) then
function NetworkGame:check_peer_preferred_character(preferred_character)
local free_characters = clone(CriminalsManager.character_names())
for pid, member in pairs(self._members) do
local character = member:peer():character()
table.delete(free_characters, character)
end
for _, excluded_char in ipairs(EXCLUDED_CHARACTERS) do
table.delete(free_characters, excluded_char)
end
if table.contains(free_characters, preferred_character) then
return preferred_character
end
local character = free_characters[math.random(#free_characters)]
print("Player will be", character, "instead of", preferred_character)
return character
end
elseif RequiredScript == "lib/managers/criminalsmanager" and (#EXCLUDED_CHARACTERS < 8) then
function CriminalsManager:get_free_character_name()
local available = {}
for id, data in pairs(self._characters) do
local taken = data.taken
if not taken and not self:is_character_as_AI_level_blocked(data.name) then
table.insert(available, data.name)
end
end
for _, excluded_char in ipairs(EXCLUDED_CHARACTERS) do
table.delete(available, excluded_char)
end
if #available > 0 then
return available[math.random(#available)]
end
end
end
Pour vérifier si vous l'avez installé correctement, il devrait y avoir un fichier nommé register_exclude_characters_mod.lua
sur \PAYDAY 2\lib\Lua\
et il devrait y avoir un fichier nommé exclude_characters.lua
sur \PAYDAY 2\lib\Lua\exclude_characters\
.
Le script ci-dessus vous permettra d'exclure tout d'être utilisé à la fois par les joueurs humains et les robots de l'équipe IA. (Seul John Wick est exclu par défaut dans le script ci-dessus.) Supprimez la balise --
devant un nom dans le EXCLUDED_CHARACTERS
pour exclure également le caractère. Notez que le script ne s'activera pas si vous ne laissez que 3 personnages ou moins utilisables (car le jeu se plantera si le script le permet).
Le script était à l'origine de la Block Wick (hôte seulement) message dans les forums PAYDAY 2 Steam par l'utilisateur, Seven. Je l'ai modifié pour permettre d'exclure facilement d'autres personnages que Wick, tant chez les humains que chez les robots, et pour ne pas permettre d'exclure trop de personnages.
* Une alternative au crochet Lua original est la fonction TLB : CSE Lua (le script peut être installé de la même manière que celle décrite ci-dessus), ou l'option Crochet BLT (la méthode d'installation des scripts est différente - voir son manuel pour savoir comment enregistrer un script en tant que "post-requis").