Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 15 additions & 19 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,29 @@
#Enhanced Fast.Net
####Payday 2 Server Browser
# Enhanced Fast.Net
#### Payday 2 Server Browser
This mod is a visually upgraded Version of Lastbullet_Big Bushy Beard's 'Fast.Net Standalone'.

This mod is a visually upgraded Version of Lastbullet_Big Bushy Beard's 'Fast.Net Standalone'.
It started with the background panels, because the list was very hard to read with the blue default background.
~~(Maybe my Monitor is just crap? :P )~~
### Screenshot
![Screenshot Preview](http://pre10.deviantart.net/8d1c/th/pre/f/2017/052/c/2/c255ffd7c8e8a4016a97a7f01d4b93d7-dazxhjn.jpg)

![Screenshot Preview](http://www.imghost.eu/images/2016/02/18/EnhancedFast.Net.jpg)

###Installation:
### Installation
Simply drag and drop the Contents of the downloaded archive into your mods-folder, and you are good to go.
__(You need the [BLT Hook](http://paydaymods.com/download/) for this mod to work)__

###Included Mods:
### Included Mods
- __[FastNet Standalone](http://paydaymods.com/mods/79/fastnetstand)__, made by _Big Bushy Beard_, modified by me
- Removed filters from the Serverlist
- Added Background panels to different parts of the UI
- Added background panels to different parts of the UI
- Made labels on the left side permanent
- Created a button panel in the bottom left for Filters, Sidejobs, Brooker, etc.
- Created a button panel in the bottom left for Filters, Sidejobs, Offshore Casino, etc.
- Added working keyboard shortcut support for Filters
- Added marking of friends lobbies in the serverlist
- Added advanced difficulty filters, for Hard+ to Overkill+
- Added option to display 50 servers at once
- Added marking of friends and mutated lobbies in the serverlist
- Added option to display 10-70 servers at once
- __[Persistent Filter Settings](https://steamcommunity.com/app/218620/discussions/15/46476691291148659/)__, made by _Seven_
- Updated to load advanced filter settings correctly
- __[Reconnect to Server](http://forums.lastbullet.net/mydownloads.php?action=view_down&did=13546)__, made by _Luffy_
- __[Stale Lobby Fix](http://paydaymods.com/mods/277/stalelobbycontractfix)__, made by _Snh20_

###TODO:
- ~~Add aditional filter options~~ DONE!
- ~~Remove crimenet Map from the importet crimenet UIs~~
- Probably not worth it, given I would need to detect, wether the UI was called through CrimeNet or FastNet and replace the fullscreen_ws in 'lib/managers/menu/...' for the second case
- ~~Restructure the way, the reconnect script is implemented~~ DONE!
### Update (2017-02-20) by FlamingFox
- Removed some difficulty filters (ie Pro Jobs, since they no longer exist).
- Fixed Filters Popping up when already in a server when hitting 'F'.
- Help Descriptions reapplied.
4 changes: 2 additions & 2 deletions lua/ExtendedFilters.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ if requiredScript == "lib/managers/menumanager" then
local modify_filter_node_actual = MenuCrimeNetFiltersInitiator.modify_node
local clbk_choice_difficulty_filter = MenuCallbackHandler.choice_difficulty_filter
local server_count = {10, 20, 30, 40, 50, 60, 70}
local difficulties = {"menu_all", "menu_difficulty_normal", "menu_difficulty_hard", "menu_difficulty_very_hard", "menu_difficulty_overkill", "menu_difficulty_easy_wish", "menu_difficulty_apocalypse", "menu_difficulty_sm_wish", "menu_difficulty_hard", "menu_difficulty_very_hard", "menu_difficulty_overkill", "menu_difficulty_easy_wish", "menu_difficulty_apocalypse"}
local difficulties = {"menu_all", "menu_difficulty_normal", "menu_difficulty_hard", "menu_difficulty_very_hard", "menu_difficulty_overkill", "menu_difficulty_easy_wish", "menu_difficulty_apocalypse", "menu_difficulty_sm_wish"}

function MenuCrimeNetFiltersInitiator:modify_node(original_node, ...)
local res = modify_filter_node_actual(self, original_node, ...)
Expand All @@ -32,7 +32,7 @@ if requiredScript == "lib/managers/menumanager" then
for k, v in ipairs(difficulties) do
diff_filter:add_option(CoreMenuItemOption.ItemOption:new({
_meta = "option",
text_id = managers.localization:text(v) .. (k > 8 and " +" or ""),
text_id = managers.localization:text(v),
value = k,
localize = false
}))
Expand Down
46 changes: 11 additions & 35 deletions lua/FastNet.lua
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ if requiredScript == "lib/managers/menumanager" then
local params = {
name = "fast_net_friends",
text_id = "fast_net_friends_title",
--help_id = "fast_net_help",
help_id = "fast_net_help",
callback = "find_online_games_with_friends",
next_node = FastNet.fastnetmenu,
}
Expand All @@ -60,7 +60,7 @@ if requiredScript == "lib/managers/menumanager" then
local params = {
name = "fast_net",
text_id = "fast_net_title",
--help_id = "fast_net_help",
help_id = "fast_net_help",
callback = "play_online_game find_online_games",
next_node = FastNet.fastnetmenu,
}
Expand Down Expand Up @@ -145,7 +145,6 @@ if requiredScript == "lib/managers/menumanager" then
local job_id = tweak_data.narrative:get_job_name_from_index(math.floor(job_index))
local job_name = job_id and tweak_data.narrative.jobs[job_id] and managers.localization:text(tweak_data.narrative.jobs[job_id].name_id) or "CONTRACTLESS"
local job_days = job_id and (tweak_data.narrative.jobs[job_id].job_wrapper and table.maxn(tweak_data.narrative.jobs[tweak_data.narrative.jobs[job_id].job_wrapper[1]].chain) or table.maxn(tweak_data.narrative.jobs[job_id].chain)) or 1
local is_pro = job_id and (tweak_data.narrative.jobs[job_id].professional and tweak_data.narrative.jobs[job_id].professional or false) or false
local difficulty_num = attributes_numbers[2]
local difficulty = tweak_data:index_to_difficulty(difficulty_num) or "error"
local state_string_id = tweak_data:index_to_server_state(attributes_numbers[4])
Expand Down Expand Up @@ -178,7 +177,6 @@ if requiredScript == "lib/managers/menumanager" then
tostring(num_plrs) .. "/4 ",
(job_plan == 1 and utf8.char(57364) or job_plan == 2 and utf8.char(57363) or "")
},
pro = is_pro,
days = job_days,
level_name = job_id,
real_level_name = display_job,
Expand Down Expand Up @@ -275,8 +273,6 @@ elseif requiredScript == "lib/managers/menu/menunodegui" then
for i, gui in ipairs(row_item.gui_columns) do
if i == 1 and item_params.friend then
gui:set_color(tweak_data.screen_colors.friend_color)
elseif i == 2 and item_params.pro then
gui:set_color(tweak_data.screen_colors.pro_color)
else
gui:set_color(item_params.mutators and tweak_data.screen_colors.mutators_color_text or row_item.color)
end
Expand All @@ -300,8 +296,6 @@ elseif requiredScript == "lib/managers/menu/menunodegui" then
for i, gui in ipairs(row_item.gui_columns) do
if i == 1 and item_params.friend then
gui:set_color(tweak_data.screen_colors.friend_color)
elseif i == 2 and item_params.pro then
gui:set_color(tweak_data.screen_colors.pro_color)
else
gui:set_color(item_params.mutators and tweak_data.screen_colors.mutators_color or row_item.color)
end
Expand Down Expand Up @@ -434,7 +428,7 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
local font_size = tweak_data.menu.pd2_small_font_size
self._server_title = self.safe_rect_panel:text({
name = "server_title",
text = managers.localization:to_upper_text("menu_lobby_server_title"):sub(0, -2) .. ": ",
text = managers.localization:to_upper_text("menu_lobby_server_title"):sub(0, -2) .. " ",
font = tweak_data.menu.pd2_small_font,
font_size = font_size,
align = "left",
Expand All @@ -445,7 +439,7 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
})
self._server_info_title = self.safe_rect_panel:text({
name = "server_info_title",
text = managers.localization:to_upper_text("menu_lobby_server_state_title") .. " ",
text = managers.localization:to_upper_text("menu_lobby_server_state_title"),
font = self.font,
font_size = font_size,
align = "left",
Expand All @@ -456,7 +450,7 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
})
self._level_title = self.safe_rect_panel:text({
name = "level_title",
text = managers.localization:to_upper_text("menu_lobby_campaign_title") .. " ",
text = managers.localization:to_upper_text("menu_lobby_campaign_title"),
font = tweak_data.menu.pd2_small_font,
font_size = font_size,
align = "left",
Expand All @@ -467,7 +461,7 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
})
self._difficulty_title = self.safe_rect_panel:text({
name = "difficulty_title",
text = managers.localization:to_upper_text("menu_lobby_difficulty_title") .. " ",
text = managers.localization:to_upper_text("menu_lobby_difficulty_title"),
font = tweak_data.menu.pd2_small_font,
font_size = font_size,
align = "left",
Expand All @@ -489,7 +483,7 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
})
self._days_title = self.safe_rect_panel:text({
name = "days_title",
text = managers.localization:to_upper_text("cn_menu_contract_length"):sub(10, -1) .. ": ",
text = managers.localization:to_upper_text("cn_menu_contract_length"):sub(10, -1) .. ": ",
font = tweak_data.menu.pd2_small_font,
font_size = font_size,
align = "left",
Expand All @@ -500,7 +494,7 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
})
self._kick_title = self.safe_rect_panel:text({
name = "kick_title",
text = managers.localization:to_upper_text("menu_kicking_allowed_option") .. ": ",
text = managers.localization:to_upper_text("menu_kicking_allowed_option") .. ": ",
font = tweak_data.menu.pd2_small_font,
font_size = font_size,
align = "left",
Expand Down Expand Up @@ -556,7 +550,6 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
h = self.safe_rect_panel:h() - self._info_bg_rect:h()
})


self._mini_info_text = self._button_panel:text({
name = "players_online_text",
x = self._button_panel:w() - tweak_data.menu.info_padding * 12,
Expand Down Expand Up @@ -751,8 +744,6 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
local color = row_item.color
if i == 1 and row_item.item:parameters().friend then
color = tweak_data.screen_colors.friend_color
elseif i == 2 and row_item.item:parameters().pro then
color = tweak_data.screen_colors.pro_color
elseif row_item.item:parameters().mutators then
color = tweak_data.screen_colors.mutators_color
end
Expand Down Expand Up @@ -927,19 +918,6 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
layer = 1
})

row_item.level_pro_text = row_item.gui_info_panel:text({
name = "level_pro_text",
text = utf8.to_upper(row_item.item:parameters().pro and "PRO JOB" or ""),
font = tweak_data.menu.pd2_small_font,
color = tweak_data.screen_colors.pro_color,
font_size = font_size,
align = "left",
vertical = "center",
w = 256,
h = font_size,
layer = 1
})

row_item.difficulty_text = row_item.gui_info_panel:text({
name = "difficulty_text",
text = managers.localization:to_upper_text(tweak_data.difficulty_name_ids[row_item.item:parameters().difficulty]),
Expand Down Expand Up @@ -1060,10 +1038,6 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
row_item.level_text:set_w(w)
row_item.level_text:set_position(math.round(row_item.level_text:x()), math.round(row_item.level_text:y()))

row_item.level_pro_text:set_lefttop(row_item.level_text:righttop())
row_item.level_pro_text:set_w(row_item.gui_info_panel:w())
row_item.level_pro_text:set_position(math.round(row_item.level_pro_text:x()), math.round(row_item.level_pro_text:y()))

row_item.days_text:set_lefttop(self._days_title:righttop())
row_item.days_text:set_w(row_item.gui_info_panel:w())
row_item.days_text:set_position(math.round(row_item.days_text:x()), math.round(row_item.days_text:y()))
Expand Down Expand Up @@ -1154,7 +1128,9 @@ elseif requiredScript == "lib/managers/menu/renderers/menunodetablegui" then
end

function MenuNodeTableGui:key_press(o, k)
if managers.network and managers.network:session() and not Network:is_server() then return end
if managers.network and managers.network:session() then
if Network:is_client() or Network:is_server() then return end
end
if managers.menu_component and managers.menu_component.crimenet_enabled and not managers.menu_component:crimenet_enabled() then return end

local reconnect_key = LuaModManager:GetPlayerKeybind("Reconnect_key") or "f1"
Expand Down
59 changes: 43 additions & 16 deletions mod.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,45 @@
{
"name" : "Fast.net Enhanced",
"description" : "Enhanced version, based on LASTBULLET_GREAT BIG BUSHY BEARD's FastNet Standalone. \nIt also includes Luffy's Reconnect to server Skript and Stale Lobby Fix made by Shn20.",
"author" : "Kamikaze94",
"contact" : "https://github.com/Kamikaze94/Enhanced-Fast.Net",
"version" : "2.00",
"hooks" : [
{ "hook_id" : "lib/managers/menumanager", "script_path" : "Core.lua" },
{ "hook_id" : "lib/managers/menu/renderers/menunodetablegui", "script_path" : "Core.lua" },
{ "hook_id" : "lib/managers/menu/nodes/menunodeserverlist", "script_path" : "Core.lua" },
{ "hook_id" : "lib/managers/menu/menunodegui", "script_path" : "Core.lua" },
{ "hook_id" : "lib/network/matchmaking/networkmatchmakingsteam", "script_path" : "Core.lua" },
{ "hook_id" : "lib/managers/crimenetmanager", "script_path" : "Core.lua" },
{ "hook_id" : "lib/managers/menu/menucomponentmanager", "script_path" : "Core.lua" },
{ "hook_id" : "lib/network/base/hostnetworksession", "script_path" : "Core.lua" },
{ "hook_id" : "lib/managers/menu/crimenetfiltersgui", "script_path" : "Core.lua" }
]
"name":"Fast.net Enhanced",
"description":"Enhanced version, based on LASTBULLET_GREAT BIG BUSHY BEARD's FastNet Standalone. \nIt also includes Luffy's Reconnect to server Skript and Stale Lobby Fix made by Shn20.",
"author":"Kamikaze94",
"contact":"https://github.com/Kamikaze94/Enhanced-Fast.Net",
"version":"3.00",
"hooks":[
{
"hook_id":"lib/managers/menumanager",
"script_path":"Core.lua"
},
{
"hook_id":"lib/managers/menu/renderers/menunodetablegui",
"script_path":"Core.lua"
},
{
"hook_id":"lib/managers/menu/nodes/menunodeserverlist",
"script_path":"Core.lua"
},
{
"hook_id":"lib/managers/menu/menunodegui",
"script_path":"Core.lua"
},
{
"hook_id":"lib/network/matchmaking/networkmatchmakingsteam",
"script_path":"Core.lua"
},
{
"hook_id":"lib/managers/crimenetmanager",
"script_path":"Core.lua"
},
{
"hook_id":"lib/managers/menu/menucomponentmanager",
"script_path":"Core.lua"
},
{
"hook_id":"lib/network/base/hostnetworksession",
"script_path":"Core.lua"
},
{
"hook_id":"lib/managers/menu/crimenetfiltersgui",
"script_path":"Core.lua"
}
]
}