8 votes

Évitez d'être John Wick

Le Crimefest d'octobre a permis d'ajouter deux personnages jouables supplémentaires dans le jeu, à savoir Hoxton et le terriblement joué John Wick.

Dans le jeu, vous pouvez définir votre personnage préféré comme vous le souhaitez et, tant que personne dans le lobby ne le possède, vous serez défini comme ce personnage. Malheureusement, si vous rejoignez un serveur et que quelqu'un a déjà votre personnage, celui-ci est attribué par défaut à l'un des autres... par malchance, je me retrouve avec John Wick.

Y a-t-il un moyen d'éviter que le personnage de John Wick ne me soit attribué par défaut ?

7voto

Jon Norton Points 2048

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").

3voto

Zoey Mertes Points 164

Malheureusement non, il n'y a aucun moyen d'empêcher d'être un personnage spécifique.

Desde el Fichiers Lua de Payday 2 :

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
    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

Si votre personnage préféré n'est pas disponible, il en choisit un au hasard. La seule vraie solution est de jouer avec des amis, et de s'assurer que vous avez tous le personnage que vous voulez.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X