Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Place this file in [Steam directory]\PAYDAY 2\lib\Lua\exclude_characters and call it exclude_characters.lua
- -- http://gaming.stackexchange.com/a/191627/4797?exclude_characters_PAYDAY_2
- 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",
- }
- if RequiredScript == "lib/network/networkgame" and (#EXCLUDED_CHARACTERS <= 6) 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 <= 6) then
- function CriminalsManager:get_free_character_name()
- local available = {}
- for id, data in pairs(self._characters) do
- local taken = data.taken
- if not taken then
- for _, member in pairs(managers.network:game():all_members()) do
- if member._assigned_name == data.name then
- taken = true
- break
- end
- end
- end
- if not taken 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement