diff --git a/.github/nativefuncs.json b/.github/nativefuncs.json index 1148d3e58..ca947cea9 100644 --- a/.github/nativefuncs.json +++ b/.github/nativefuncs.json @@ -227,6 +227,12 @@ "helpText":"Returns whether or not a given path leads to a folder.", "returnTypeString":"bool", "argTypes":"string path" + }, + { + "name": "NSIsVanilla", + "helpText": "Checks if the game is currently in vanilla compat mode", + "returnTypeString": "bool", + "argTypes": "" } ], "CLIENT":[ @@ -421,7 +427,13 @@ "helpText":"Returns whether or not a given path leads to a folder.", "returnTypeString":"bool", "argTypes":"string path" - } + }, + { + "name": "NSIsVanilla", + "helpText": "Checks if the game is currently in vanilla compat mode", + "returnTypeString": "bool", + "argTypes": "" + } ], "UI":[ { @@ -736,12 +748,24 @@ "helpText":"Returns whether or not a given path leads to a folder.", "returnTypeString":"bool", "argTypes":"string path" - }, + }, { "name":"NSGetMasterServerAuthResult", "helpText":"", "returnTypeString":"MasterServerAuthResult", "argTypes":"" + }, + { + "name": "NSResetToken", + "helpText": "Resets serverfilter", + "returnTypeString": "void", + "argTypes": "" + }, + { + "name": "NSIsVanilla", + "helpText": "Checks if the game is currently in vanilla compat mode", + "returnTypeString": "bool", + "argTypes": "" } ] } \ No newline at end of file diff --git a/Northstar.Client/mod.json b/Northstar.Client/mod.json index 44937a2b0..328e34f06 100644 --- a/Northstar.Client/mod.json +++ b/Northstar.Client/mod.json @@ -46,6 +46,11 @@ "Name": "modlist_reverse", "DefaultValue": "0", "Flags": "ARCHIVE_PLAYERPROFILE" + }, + { + "Name": "ns_communities_disabled_override", + "DefaultValue": "0", + "Flags": "ARCHIVE_PLAYERPROFILE" } ], "Scripts": [ diff --git a/Northstar.Client/mod/scripts/vscripts/ui/menu_lobby.nut b/Northstar.Client/mod/scripts/vscripts/ui/menu_lobby.nut index 23dae99d5..2f44891ff 100644 --- a/Northstar.Client/mod/scripts/vscripts/ui/menu_lobby.nut +++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_lobby.nut @@ -71,11 +71,13 @@ struct int inboxHeaderIndex var inboxButton + var switchButton int customizeHeaderIndex var pilotButton var titanButton var boostsButton + var progressionButton var storeButton var storeNewReleasesButton var storeBundlesButton @@ -94,6 +96,7 @@ struct array lobbyButtons var playHeader + var nsHeader var customizeHeader var callsignHeader @@ -179,7 +182,6 @@ void function InitLobbyMenu() AddMenuFooterOption( menu, BUTTON_BACK, "#BACK_BUTTON_POSTGAME_REPORT", "#POSTGAME_REPORT", OpenPostGameMenu, IsPostGameMenuValid ) AddMenuFooterOption( menu, BUTTON_TRIGGER_RIGHT, "#R_TRIGGER_CHAT", "", null, IsVoiceChatPushToTalk ) // Client side progression toggle - AddMenuFooterOption( menu, BUTTON_Y, "#Y_BUTTON_TOGGLE_PROGRESSION", "#TOGGLE_PROGRESSION", ShowToggleProgressionDialog ) InitChatroom( menu ) @@ -230,6 +232,9 @@ void function InitLobbyMenu() void function ShowToggleProgressionDialog( var button ) { + if( Hud_IsLocked( button ) ) + return; + bool enabled = Progression_GetPreference() DialogData dialogData @@ -288,21 +293,31 @@ void function SetupComboButtonTest( var menu ) int buttonIndex = 0 file.playHeader = AddComboButtonHeader( comboStruct, headerIndex, "#MENU_HEADER_PLAY" ) - // server browser - file.findGameButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_SERVER_BROWSER" ) + // vanilla + + file.findGameButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_FIND_GAME" ) file.lobbyButtons.append( file.findGameButton ) - Hud_SetLocked( file.findGameButton, true ) - Hud_AddEventHandler( file.findGameButton, UIE_CLICK, OpenServerBrowser ) + Hud_AddEventHandler( file.findGameButton, UIE_CLICK, BigPlayButton1_Activate ) - // private match - file.inviteRoomButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#PRIVATE_MATCH" ) - Hud_AddEventHandler( file.inviteRoomButton, UIE_CLICK, StartPrivateMatch ) + file.inviteRoomButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_INVITE_ROOM" ) + Hud_AddEventHandler( file.inviteRoomButton, UIE_CLICK, DoRoomInviteIfAllowed ) file.inviteFriendsButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_INVITE_FRIENDS" ) Hud_AddEventHandler( file.inviteFriendsButton, UIE_CLICK, InviteFriendsIfAllowed ) - Hud_SetEnabled( file.inviteFriendsButton, false ) - Hud_SetVisible( file.inviteFriendsButton, false ) + // server browser + // file.serverBrowserButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_SERVER_BROWSER" ) + // file.lobbyButtons.append( file.serverBrowserButton ) + // Hud_SetLocked( file.serverBrowserButton, true ) + // Hud_AddEventHandler( file.serverBrowserButton, UIE_CLICK, OpenServerBrowser ) + + // private match + // file.privateMatchButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#PRIVATE_MATCH" ) + // Hud_AddEventHandler( file.privateMatchButton, UIE_CLICK, StartPrivateMatch ) + + + // Hud_SetEnabled( file.inviteFriendsButton, false ) + // Hud_SetVisible( file.inviteFriendsButton, false ) // file.toggleMenuModeButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_LOBBY_SWITCH_FD" ) // Hud_AddEventHandler( file.toggleMenuModeButton, UIE_CLICK, ToggleLobbyMode ) @@ -320,6 +335,8 @@ void function SetupComboButtonTest( var menu ) Hud_AddEventHandler( titanButton, UIE_CLICK, AdvanceMenuEventHandler( GetMenu( "EditTitanLoadoutsMenu" ) ) ) file.boostsButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_BOOSTS" ) Hud_AddEventHandler( file.boostsButton, UIE_CLICK, AdvanceMenuEventHandler( GetMenu( "BurnCardMenu" ) ) ) + // file.progressionButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#TOGGLE_PROGRESSION" ) + // Hud_AddEventHandler( file.progressionButton, UIE_CLICK, ShowToggleProgressionDialog ) headerIndex++ buttonIndex = 0 @@ -343,17 +360,18 @@ void function SetupComboButtonTest( var menu ) var networksInbox = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_INBOX" ) file.inboxButton = networksInbox file.lobbyButtons.append( networksInbox ) - Hud_AddEventHandler( networksInbox, UIE_CLICK, OnInboxButton_Activate ) + Hud_AddEventHandler( networksInbox, UIE_CLICK, _OnInboxButton_Activate ) var switchButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#COMMUNITY_SWITCHCOMMUNITY" ) - Hud_AddEventHandler( switchButton, UIE_CLICK, OnSwitchButton_Activate ) + file.switchButton = switchButton + Hud_AddEventHandler( switchButton, UIE_CLICK, _OnSwitchButton_Activate ) var browseButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#COMMUNITY_BROWSE_NETWORKS" ) file.lobbyButtons.append( browseButton ) - Hud_AddEventHandler( browseButton, UIE_CLICK, OnBrowseNetworksButton_Activate ) + Hud_AddEventHandler( browseButton, UIE_CLICK, _OnBrowseNetworksButton_Activate ) file.browseNetworkButton = browseButton #if NETWORK_INVITE file.inviteFriendsToNetworkButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#INVITE_FRIENDS" ) file.lobbyButtons.append( file.inviteFriendsToNetworkButton ) - Hud_AddEventHandler( file.inviteFriendsToNetworkButton, UIE_CLICK, OnInviteFriendsToNetworkButton_Activate ) + Hud_AddEventHandler( file.inviteFriendsToNetworkButton, UIE_CLICK, _OnInviteFriendsToNetworkButton_Activate ) #endif headerIndex++ @@ -392,6 +410,38 @@ void function SetupComboButtonTest( var menu ) ComboButtons_Finalize( comboStruct ) } +void function _OnInviteFriendsToNetworkButton_Activate( var button ) +{ + if ( Hud_IsLocked( button ) ) + return + + OnInviteFriendsToNetworkButton_Activate( button ) +} + +void function _OnInboxButton_Activate( var button ) +{ + if ( Hud_IsLocked( button ) ) + return + + OnInboxButton_Activate( button) +} + +void function _OnSwitchButton_Activate( var button ) +{ + if ( Hud_IsLocked( button ) ) + return + + OnSwitchButton_Activate( button) +} + +void function _OnBrowseNetworksButton_Activate( var button ) +{ + if ( Hud_IsLocked( button ) ) + return + + OnBrowseNetworksButton_Activate( button) +} + bool function MatchResultsExist() { return true // TODO @@ -410,22 +460,27 @@ void function DoRoomInviteIfAllowed( var button ) if ( Hud_IsLocked( button ) ) return - if ( !DoesCurrentCommunitySupportInvites() ) + if ( !NSIsVanilla() ) + StartPrivateMatch( button ) + else { - OnBrowseNetworksButton_Activate( button ) - return - } + if ( !DoesCurrentCommunitySupportInvites() ) + { + OnBrowseNetworksButton_Activate( button ) + return + } - entity player = GetUIPlayer() + entity player = GetUIPlayer() - if ( IsValid( player ) && Player_NextAvailableMatchmakingTime( player ) > 0 ) - { - DisplayMatchmakingPenaltyDialog( player ) - return - } + if ( IsValid( player ) && Player_NextAvailableMatchmakingTime( player ) > 0 ) + { + DisplayMatchmakingPenaltyDialog( player ) + return + } - SendOpenInvite( true ) - OpenSelectedPlaylistMenu() + SendOpenInvite( true ) + OpenSelectedPlaylistMenu() + } } void function DisplayMatchmakingPenaltyDialog( entity player ) @@ -492,6 +547,9 @@ void function InviteFriendsIfAllowed( var button ) if ( Hud_IsLocked( button ) ) return + if ( !NSIsVanilla() ) + ShowToggleProgressionDialog( button ) + entity player = GetUIPlayer() if ( IsValid( player ) && Player_NextAvailableMatchmakingTime( player ) > 0 ) { @@ -578,6 +636,8 @@ void function OnLobbyMenu_Open() // code will start loading DLC info from first party unless already done InitDLCStore() + DoNSButtonState() + thread UpdateCachedNewItems() if ( file.putPlayerInMatchmakingAfterDelay ) { @@ -683,6 +743,43 @@ void function OnLobbyMenu_Open() } } +void function DoNSButtonState() +{ + if ( NSIsVanilla() ) + { + ComboButton_SetText( file.findGameButton, "#MENU_TITLE_FIND_GAME" ) + ComboButton_SetText( file.inviteRoomButton, "#MENU_TITLE_INVITE_ROOM" ) + ComboButton_SetText( file.inviteFriendsButton, "#MENU_TITLE_INVITE_FRIENDS" ) + + Hud_SetLocked( file.inboxButton, false ) + Hud_SetLocked( file.browseNetworkButton, false ) + Hud_SetLocked( file.switchButton, false ) + Hud_SetLocked( file.inviteFriendsToNetworkButton, false ) + + Hud_SetLocked( file.storeButton, false ) + Hud_SetLocked( file.storeNewReleasesButton, false ) + Hud_SetLocked( file.storeBundlesButton, false ) + + } + else + { + ClientCommand( "loadPlaylists" ) // reload playlists only on northstar so server-browser works + + ComboButton_SetText( file.findGameButton, "#MENU_TITLE_SERVER_BROWSER" ) + ComboButton_SetText( file.inviteRoomButton, "#PRIVATE_MATCH" ) + ComboButton_SetText( file.inviteFriendsButton, "#TOGGLE_PROGRESSION" ) + + Hud_SetLocked( file.inboxButton, true ) + Hud_SetLocked( file.browseNetworkButton, true ) + Hud_SetLocked( file.switchButton, true ) + Hud_SetLocked( file.inviteFriendsToNetworkButton, true ) + + Hud_SetLocked( file.storeButton, true ) + Hud_SetLocked( file.storeNewReleasesButton, true ) + Hud_SetLocked( file.storeBundlesButton, true ) + } +} + bool function DLCStoreShouldBeMarkedAsNew() { if ( !IsFullyConnected() ) @@ -703,9 +800,12 @@ void function LobbyMenuUpdate( var menu ) while ( GetTopNonDialogMenu() == menu ) { bool inPendingOpenInvite = InPendingOpenInvite() - Hud_SetLocked( file.findGameButton, !IsPartyLeader() || inPendingOpenInvite ) - Hud_SetLocked( file.inviteRoomButton, IsOpenInviteVisible() || GetPartySize() > 1 || inPendingOpenInvite ) - Hud_SetLocked( file.inviteFriendsButton, inPendingOpenInvite ) + if( NSIsVanilla() ) + { + Hud_SetLocked( file.findGameButton, !IsPartyLeader() || inPendingOpenInvite ) + Hud_SetLocked( file.inviteRoomButton, IsOpenInviteVisible() || GetPartySize() > 1 || inPendingOpenInvite ) + Hud_SetLocked( file.inviteFriendsButton, inPendingOpenInvite ) + } bool canGenUp = false if ( GetUIPlayer() ) @@ -1230,8 +1330,13 @@ void function BigPlayButton1_Activate( var button ) if ( Hud_IsLocked( button ) ) return - SendOpenInvite( false ) - OpenSelectedPlaylistMenu() + if ( !NSIsVanilla() ) + OpenServerBrowser( button ) + else + { + SendOpenInvite( false ) + OpenSelectedPlaylistMenu() + } } function EnableButton( button ) @@ -1516,6 +1621,11 @@ void function MatchmakingSetCountdownTimer( float time, bool useServerTime = tru void function OnLobbyLevelInit() { + if( NSIsVanilla() && ( !GetConVarBool( "ns_communities_disabled_override" ) ) ) + SetConVarBool( "communities_enabled", true) + else + SetConVarBool( "communities_enabled", false) + UpdateCallsignElement( file.callsignCard ) RefreshCreditsAvailable() } @@ -1562,17 +1672,26 @@ void function SetPutPlayerInMatchmakingAfterDelay( bool value ) void function OnStoreButton_Activate( var button ) { + if( Hud_IsLocked( button ) ) + return + LaunchGamePurchaseOrDLCStore() } void function OnStoreNewReleasesButton_Activate( var button ) { + if( Hud_IsLocked( button ) ) + return + //LaunchGamePurchaseOrDLCStore( [ "StoreMenu", "StoreMenu_NewReleases" ] ) LaunchGamePurchaseOrDLCStore( [ "StoreMenu", "StoreMenu_WeaponSkins" ] ) } void function OnStoreBundlesButton_Activate( var button ) { + if( Hud_IsLocked( button ) ) + return + LaunchGamePurchaseOrDLCStore( [ "StoreMenu", "StoreMenu_Sales" ] ) } diff --git a/Northstar.Client/mod/scripts/vscripts/ui/menu_main.nut b/Northstar.Client/mod/scripts/vscripts/ui/menu_main.nut index d75bbb5d6..db3b0a30e 100644 --- a/Northstar.Client/mod/scripts/vscripts/ui/menu_main.nut +++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_main.nut @@ -73,7 +73,7 @@ void function OnMainMenu_Open() Signal( uiGlobal.signalDummy, "EndOnMainMenu_Open" ) EndSignal( uiGlobal.signalDummy, "EndOnMainMenu_Open" ) - SetConVarString( "communities_hostname", "" ) // disable communities due to crash exploits that are still possible through it + // SetConVarString( "communities_hostname", "" ) // disable communities due to crash exploits that are still possible through it UpdatePromoData() // On script restarts this gives us the last data until the new request is complete RequestMainMenuPromos() // This will be ignored if there was a recent request. "infoblock_requestInterval" @@ -297,6 +297,7 @@ void function LaunchSPTrialMission() void function LaunchMP() { + NSResetToken() uiGlobal.launching = eLaunching.MULTIPLAYER LaunchGame() } diff --git a/Northstar.Client/mod/scripts/vscripts/ui/menu_mode_select.nut b/Northstar.Client/mod/scripts/vscripts/ui/menu_mode_select.nut index 605af3832..5f548910e 100644 --- a/Northstar.Client/mod/scripts/vscripts/ui/menu_mode_select.nut +++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_mode_select.nut @@ -2,6 +2,23 @@ global function InitModesMenu struct { int currentModePage + array modes = [ // default modes in vanilla + "aitdm", + "tdm", + "cp", + "at", + "ctf", + "lts", + "ps", + "speedball", + "mfd", + "ttdm", + "fd_easy", + "fd_normal", + "fd_hard", + "fd_master", + "fd_insane" + ] } file const int MODES_PER_PAGE = 15 @@ -39,24 +56,30 @@ void function UpdateVisibleModes() Hud_SetEnabled( button, false ) Hud_SetVisible( button, false ) } - + array modesArray = GetPrivateMatchModes() + for ( int i = 0; i < MODES_PER_PAGE; i++ ) { if ( i + ( file.currentModePage * MODES_PER_PAGE ) >= modesArray.len() ) break - + int modeIndex = i + ( file.currentModePage * MODES_PER_PAGE ) SetButtonRuiText( buttons[ i ], GetGameModeDisplayName( modesArray[ modeIndex ] ) ) Hud_SetEnabled( buttons[ i ], true ) Hud_SetVisible( buttons[ i ], true ) - + // This check is refactored in the new mode menu so we can just ignore this atrocity if ( !ModeSettings_RequiresAI( modesArray[ modeIndex ] ) || modesArray[ modeIndex ] == "aitdm" || modesArray[ modeIndex ] == "at" ) Hud_SetLocked( buttons[ i ], false ) else Hud_SetLocked( buttons[ i ], true ) + + if ( !file.modes.contains( modesArray[ modeIndex ] ) && NSIsVanilla() ) + { + Hud_SetLocked( buttons[ i ], true ) + } } } diff --git a/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_custom_match_settings.nut b/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_custom_match_settings.nut index 34ad4f77f..20de27a34 100644 --- a/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_custom_match_settings.nut +++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_custom_match_settings.nut @@ -120,6 +120,13 @@ void function OnSettingButtonPressed( var button ) file.enumRealValues[ int( Hud_GetScriptID( button ) ) ] = enumVal Hud_SetText( textPanel, setting.enumNames[ enumVal ] ) + + string str = PrivateMatch_GetSelectedMode() + int gamemodeIdx = GetPrivateMatchModeIndex( str ) + Hud_SetGamemodeIdx( button, gamemodeIdx ) + Hud_SetPlaylistVarName( button, setting.playlistVar ) + + // you'll get booted for this right now because the playlist native crap is fucked ClientCommand( "PrivateMatchSetPlaylistVarOverride " + setting.playlistVar + " " + setting.enumValues[ enumVal ] ) } else diff --git a/Northstar.Client/mod/scripts/vscripts/ui/menu_private_match.nut b/Northstar.Client/mod/scripts/vscripts/ui/menu_private_match.nut index e3c1f268e..b1283255a 100644 --- a/Northstar.Client/mod/scripts/vscripts/ui/menu_private_match.nut +++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_private_match.nut @@ -41,6 +41,8 @@ struct var titanButton var boostsButton var storeButton + var storeNewReleasesButton + var storeBundlesButton var factionButton var bannerButton var patchButton @@ -247,7 +249,10 @@ void function OnSelectMatchSettings_Activate( var button ) if ( Hud_IsLocked( button ) ) return - AdvanceMenu( GetMenu( "CustomMatchSettingsCategoryMenu" ) ) + if(NSIsVanilla()) + AdvanceMenu( GetMenu( "MatchSettingsMenu" ) ) + else + AdvanceMenu( GetMenu( "CustomMatchSettingsCategoryMenu" ) ) } void function SetupComboButtons( var menu, var navUpButton, var navDownButton ) @@ -271,6 +276,10 @@ void function SetupComboButtons( var menu, var navUpButton, var navDownButton ) file.matchSettingsButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_MATCH_SETTINGS" ) Hud_AddEventHandler( file.matchSettingsButton, UIE_CLICK, OnSelectMatchSettings_Activate ) + var friendsButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_INVITE_FRIENDS" ) + file.inviteFriendsButton = friendsButton + Hud_AddEventHandler( friendsButton, UIE_CLICK, InviteFriendsIfAllowed ) + headerIndex++ buttonIndex = 0 file.customizeHeader = AddComboButtonHeader( comboStruct, headerIndex, "#MENU_HEADER_LOADOUTS" ) @@ -306,10 +315,10 @@ void function SetupComboButtons( var menu, var navUpButton, var navDownButton ) file.storeHeader = AddComboButtonHeader( comboStruct, headerIndex, "#MENU_HEADER_STORE" ) file.storeButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_STORE_BROWSE" ) Hud_AddEventHandler( file.storeButton, UIE_CLICK, OnStoreButton_Activate ) - var storeNewReleasesButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_STORE_NEW_RELEASES" ) - Hud_AddEventHandler( storeNewReleasesButton, UIE_CLICK, OnStoreNewReleasesButton_Activate ) - var storeBundlesButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_STORE_BUNDLES" ) - Hud_AddEventHandler( storeBundlesButton, UIE_CLICK, OnStoreBundlesButton_Activate ) + file.storeNewReleasesButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_STORE_NEW_RELEASES" ) + Hud_AddEventHandler( file.storeNewReleasesButton, UIE_CLICK, OnStoreNewReleasesButton_Activate ) + file.storeBundlesButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_TITLE_STORE_BUNDLES" ) + Hud_AddEventHandler( file.storeBundlesButton, UIE_CLICK, OnStoreBundlesButton_Activate ) headerIndex++ buttonIndex = 0 @@ -559,18 +568,22 @@ function UpdatePrivateMatchButtons() { var menu = file.menu + UpdateStoreButtons() + if ( level.ui.privatematch_starting == ePrivateMatchStartState.STARTING ) { RHud_SetText( file.startMatchButton, "#STOP_MATCH" ) Hud_SetLocked( file.selectMapButton, true ) Hud_SetLocked( file.selectModeButton, true ) Hud_SetLocked( file.matchSettingsButton, true ) + Hud_SetLocked( file.inviteFriendsButton, true ) } else { RHud_SetText( file.startMatchButton, "#START_MATCH" ) Hud_SetLocked( file.selectMapButton, false ) Hud_SetLocked( file.selectModeButton, false ) + Hud_SetLocked( file.inviteFriendsButton, false ) string modeName = PrivateMatch_GetSelectedMode() bool settingsLocked = IsFDMode( modeName ) @@ -582,6 +595,22 @@ function UpdatePrivateMatchButtons() } } +function UpdateStoreButtons() +{ + if ( NSIsVanilla() ) + { + Hud_SetLocked( file.storeButton, false ) + Hud_SetLocked( file.storeNewReleasesButton, false ) + Hud_SetLocked( file.storeBundlesButton, false ) + } + else + { + Hud_SetLocked( file.storeButton, true ) + Hud_SetLocked( file.storeNewReleasesButton, true ) + Hud_SetLocked( file.storeBundlesButton, true ) + } +} + function UpdateLobbyUI() { if ( uiGlobal.updatingLobbyUI ) @@ -815,6 +844,7 @@ function UpdatePlayerInfo() void function OnPrivateMatchMenu_Open() { + ClientCommand( "loadPlaylists" ) // reload playlists so the modes menu has the all the stuff to lock Lobby_SetFDMode( false ) OnLobbyMenu_Open() } \ No newline at end of file diff --git a/Northstar.Client/mod/scripts/vscripts/ui/openinvites.nut b/Northstar.Client/mod/scripts/vscripts/ui/openinvites.nut index f91231b6b..2a1804cb3 100644 --- a/Northstar.Client/mod/scripts/vscripts/ui/openinvites.nut +++ b/Northstar.Client/mod/scripts/vscripts/ui/openinvites.nut @@ -202,8 +202,9 @@ void function UpdateOpenInvite_Thread() void function UICodeCallback_OpenInviteUpdated() { - // don't support on northstar - return + // openinvites not supported on northstar + if( !NSIsVanilla() ) + return if ( file.openInviteVisible ) return diff --git a/Northstar.Client/mod/scripts/vscripts/ui/panel_mainmenu.nut b/Northstar.Client/mod/scripts/vscripts/ui/panel_mainmenu.nut index 2f1bcf025..ef5109d0c 100644 --- a/Northstar.Client/mod/scripts/vscripts/ui/panel_mainmenu.nut +++ b/Northstar.Client/mod/scripts/vscripts/ui/panel_mainmenu.nut @@ -82,8 +82,8 @@ void function InitMainMenuPanel() buttonIndex = 0 var multiplayerHeader = AddComboButtonHeader( comboStruct, headerIndex, "#MULTIPLAYER_ALLCAPS" ) // "Launch Multiplayer" button removed because we don't support vanilla yet :clueless: - //file.mpButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MULTIPLAYER_LAUNCH" ) - //Hud_AddEventHandler( file.mpButton, UIE_CLICK, OnPlayMPButton_Activate ) + file.mpButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MULTIPLAYER_LAUNCH" ) + Hud_AddEventHandler( file.mpButton, UIE_CLICK, OnPlayMPButton_Activate ) file.fdButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MENU_LAUNCH_NORTHSTAR" ) Hud_AddEventHandler( file.fdButton, UIE_CLICK, OnPlayFDButton_Activate ) Hud_SetLocked( file.fdButton, true ) @@ -102,7 +102,7 @@ void function InitMainMenuPanel() var videoButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#VIDEO" ) Hud_AddEventHandler( videoButton, UIE_CLICK, AdvanceMenuEventHandler( GetMenu( "VideoMenu" ) ) ) #endif - + // MOD SETTINGS var modSettingsButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#MOD_SETTINGS" ) Hud_AddEventHandler( modSettingsButton, UIE_CLICK, AdvanceMenuEventHandler( GetMenu( "ModSettings" ) ) ) @@ -145,6 +145,7 @@ void function OnShowMainMenuPanel() Signal( uiGlobal.signalDummy, "EndShowMainMenuPanel" ) EndSignal( uiGlobal.signalDummy, "EndShowMainMenuPanel" ) + foreach ( button in file.menuButtons ) { int buttonID = int( Hud_GetScriptID( button ) ) @@ -171,7 +172,7 @@ void function OnShowMainMenuPanel() UpdateSPButtons() // dont try and update the launch multiplayer button, because it doesn't exist - //thread UpdatePlayButton( file.mpButton ) + thread UpdatePlayButton( file.mpButton ) thread UpdatePlayButton( file.fdButton ) thread MonitorTrialVersionChange() @@ -397,6 +398,8 @@ void function UpdatePlayButton( var button ) { printt( "isOriginConnected:", isOriginConnected ) printt( "isStryderAuthenticated:", isStryderAuthenticated ) + printt( "isMPAllowed:", isMPAllowed ) + printt( "hasLatestPatch:", hasLatestPatch ) } buttonText = "#MULTIPLAYER_LAUNCH" @@ -415,7 +418,7 @@ void function UpdatePlayButton( var button ) else if ( button == file.mpButton && !isMPAllowed ) { message = "#MULTIPLAYER_NOT_AVAILABLE" - file.mpButtonActivateFunc = null + // file.mpButtonActivateFunc = null } else if ( button == file.mpButton && !hasLatestPatch ) { @@ -427,31 +430,19 @@ void function UpdatePlayButton( var button ) message = "#AUTHENTICATIONAGREEMENT_NO" file.mpButtonActivateFunc = null } + else if ( button == file.mpButton && GetConVarBool( "ns_skip_vanilla_integrity_check") ) + { + file.mpButtonActivateFunc = null + } else if ( button == file.mpButton ) { - // restrict non-vanilla players from accessing official servers - bool hasNonVanillaMods = false - foreach ( string modName in NSGetModNames() ) - { - if ( NSIsModEnabled( modName ) && NSIsModRequiredOnClient( modName ) ) - { - hasNonVanillaMods = true - break - } - } - - if ( hasNonVanillaMods ) - file.mpButtonActivateFunc = null - else - file.mpButtonActivateFunc = LaunchMP + file.mpButtonActivateFunc = LaunchMP } isLocked = file.mpButtonActivateFunc == null ? true : false - if( button == file.fdButton ) - thread TryUnlockNorthstarButton() - else - Hud_SetLocked( button, isLocked ) - #endif + Hud_SetLocked( button, isLocked ) + thread TryUnlockNorthstarButton() + #endif if ( Script_IsRunningTrialVersion() && !IsTrialPeriodActive() && file.mpButtonActivateFunc != LaunchGamePurchase ) { @@ -462,7 +453,7 @@ void function UpdatePlayButton( var button ) } // dont try and update the launch multiplayer button, because it doesn't exist - //ComboButton_SetText( file.mpButton, buttonText ) + ComboButton_SetText( file.mpButton, buttonText ) ComboButton_SetText( file.fdButton, "#MENU_LAUNCH_NORTHSTAR" ) //Hud_SetEnabled( file.fdButton, false ) @@ -534,7 +525,6 @@ void function OnPlayFDButton_Activate( var button ) // repurposed for launching { if ( !Hud_IsLocked( button ) ) { - SetConVarString( "communities_hostname", "" ) // disable communities due to crash exploits that are still possible through it NSTryAuthWithLocalServer() thread TryAuthWithLocalServer() } @@ -562,7 +552,7 @@ void function TryAuthWithLocalServer() WaitFrame() } - if ( NSWasAuthSuccessful() ) + if ( NSWasAuthSuccessful() || GetConVarBool( "ns_auth_allow_insecure" ) ) { NSCompleteAuthWithLocalServer() if ( GetConVarString( "mp_gamemode" ) == "solo" ) @@ -573,7 +563,7 @@ void function TryAuthWithLocalServer() ClientCommand( "setplaylist tdm" ) ClientCommand( "map mp_lobby" ) } - else + else { CloseAllDialogs() diff --git a/Northstar.Client/mod/scripts/vscripts/ui/ui_utility.gnut b/Northstar.Client/mod/scripts/vscripts/ui/ui_utility.gnut index d6a7a29a9..02d77795a 100644 --- a/Northstar.Client/mod/scripts/vscripts/ui/ui_utility.gnut +++ b/Northstar.Client/mod/scripts/vscripts/ui/ui_utility.gnut @@ -631,4 +631,4 @@ void function Hud_SetNavUp( var buttonFrom, var buttonTo ) void function Hud_SetNavDown( var buttonFrom, var buttonTo ) { buttonFrom.SetNavDown( buttonTo ) -} +} \ No newline at end of file diff --git a/Northstar.Custom/keyvalues/scripts/weapons/mp_weapon_softball.txt b/Northstar.Custom/keyvalues/scripts/weapons/mp_weapon_softball.txt deleted file mode 100644 index 5da9357f0..000000000 --- a/Northstar.Custom/keyvalues/scripts/weapons/mp_weapon_softball.txt +++ /dev/null @@ -1,14 +0,0 @@ -WeaponData -{ - Mods - { - sns - { - explosion_damage "50" - damage_near_value "50" - damage_far_value "50" - ammo_clip_size "1" - projectile_launch_speed "7500" - } - } -} diff --git a/Northstar.Custom/keyvalues/scripts/weapons/mp_weapon_wingman.txt b/Northstar.Custom/keyvalues/scripts/weapons/mp_weapon_wingman.txt deleted file mode 100644 index 8255df15b..000000000 --- a/Northstar.Custom/keyvalues/scripts/weapons/mp_weapon_wingman.txt +++ /dev/null @@ -1,11 +0,0 @@ -WeaponData -{ - Mods - { - one_in_the_chamber - { - damage_near_value "9999" - damage_far_value "9999" - } - } -} \ No newline at end of file diff --git a/Northstar.Custom/keyvalues/scripts/weapons/mp_weapon_wingman_n.txt b/Northstar.Custom/keyvalues/scripts/weapons/mp_weapon_wingman_n.txt deleted file mode 100644 index da0c26012..000000000 --- a/Northstar.Custom/keyvalues/scripts/weapons/mp_weapon_wingman_n.txt +++ /dev/null @@ -1,28 +0,0 @@ -WeaponData -{ - Mods - { - one_in_the_chamber - { - damage_near_value "9999" - damage_far_value "9999" - damage_very_far_value "9999" - } - sns - { - damage_near_value "9999" - damage_far_value "9999" - damage_very_far_value "9999" - ammo_clip_size "1" - reload_time "*0.5" - reload_time_late1 "*0.5" - reloadempty_time "*0.5" - reloadempty_time_late1 "*0.5" - bolt_bounce_frac "0.7" - projectile_damage_reduction_per_bounce "0.0" - projectile_damages_owner "0" - projectile_ricochet_max_count "3" - ads_move_speed_scale "1" - } - } -} \ No newline at end of file diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_chamber.nut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_chamber.nut index 5768dcfaf..2391589ed 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_chamber.nut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_chamber.nut @@ -86,7 +86,7 @@ void function UpdateLoadout( entity player ) player.TakeWeaponNow( weapon.GetWeaponClassName() ) array mods = ["one_in_the_chamber"] - player.GiveWeapon( (GetChamberWingmanN() ? "mp_weapon_wingman_n" : "mp_weapon_wingman"), mods) + player.GiveWeapon( (GetChamberWingmanN() ? "mp_weapon_ns_wingman_n" : "mp_weapon_ns_wingman"), mods) player.GiveOffhandWeapon( "melee_pilot_kunai", OFFHAND_MELEE ) thread SetAmmo( player ) diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sns.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sns.gnut index 812c21ee6..8de583c5c 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sns.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sns.gnut @@ -135,10 +135,10 @@ void function OnPlayerRespawned( entity player ) player.TakeWeaponNow( weapon.GetWeaponClassName() ) array mods = ["sns", "pas_fast_ads", "tactical_cdr_on_kill", "pas_run_and_gun", "pas_fast_swap"] - player.GiveWeapon( "mp_weapon_wingman_n", mods) + player.GiveWeapon( "mp_weapon_ns_wingman_n", mods) if (file.softball_enabled) { mods.append("jump_kit") // the funny - player.GiveWeapon( "mp_weapon_softball", mods) + player.GiveWeapon( "mp_weapon_ns_softball", mods) } player.GiveOffhandWeapon( "melee_pilot_emptyhanded", OFFHAND_MELEE ) player.GiveOffhandWeapon( file.offhand_weapon, OFFHAND_RIGHT ) diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_arena.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_arena.gnut index b634f1d38..7967d903a 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_arena.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_arena.gnut @@ -37,13 +37,13 @@ void function ArenaRegisterNetworkVars() return // boost store stuff - Remote_RegisterFunction( "ServerCallback_OpenBoostStore" ) - Remote_RegisterFunction( "ServerCallback_UpdateMoney" ) - Remote_RegisterFunction( "ServerCallback_UpdateTeamReserve" ) - Remote_RegisterFunction( "ServerCallback_UpdatePlayerHasBattery" ) - Remote_RegisterFunction( "ServerCallback_UpdateAmpedWeaponState" ) - Remote_RegisterFunction( "ServerCallback_BoostStoreTitanHint" ) - Remote_RegisterFunction( "ServerCallback_UpdateTurretCount" ) + NSRemote_RegisterFunction( "ServerCallback_OpenBoostStore" ) + NSRemote_RegisterFunction( "ServerCallback_UpdateMoney" ) + NSRemote_RegisterFunction( "ServerCallback_UpdateTeamReserve" ) + NSRemote_RegisterFunction( "ServerCallback_UpdatePlayerHasBattery" ) + NSRemote_RegisterFunction( "ServerCallback_UpdateAmpedWeaponState" ) + NSRemote_RegisterFunction( "ServerCallback_BoostStoreTitanHint" ) + NSRemote_RegisterFunction( "ServerCallback_UpdateTurretCount" ) RegisterNetworkedVariable( "boostStoreOpen", SNDC_GLOBAL, SNVT_BOOL, false ) RegisterNetworkedVariable( "FD_money", SNDC_PLAYER_GLOBAL, SNVT_UNSIGNED_INT, 0 ) @@ -54,5 +54,5 @@ void function ArenaRegisterNetworkVars() RegisterNetworkedVariable( "FD_waveActive", SNDC_GLOBAL, SNVT_BOOL, false ) // arena-exclusive stuff - Remote_RegisterFunction( "ServerCallback_CreateMoneyParticles" ) + NSRemote_RegisterFunction( "ServerCallback_CreateMoneyParticles" ) } \ No newline at end of file diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_ctf_comp.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_ctf_comp.gnut index 1a1ce6451..febd4f968 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_ctf_comp.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_ctf_comp.gnut @@ -64,9 +64,9 @@ void function CTFCompRegisterNetworkVars() RegisterNetworkedVariable( "flagReturnProgress", SNDC_GLOBAL, SNVT_FLOAT_RANGE_OVER_TIME, 0.0, 0.0, 1.0 ) RegisterNetworkedVariable( "returningFlag", SNDC_PLAYER_EXCLUSIVE, SNVT_BOOL, false ) - Remote_RegisterFunction( "ServerCallback_CTF_PlayMatchNearEndMusic" ) - Remote_RegisterFunction( "ServerCallback_CTF_StartReturnFlagProgressBar" ) - Remote_RegisterFunction( "ServerCallback_CTF_StopReturnFlagProgressBar" ) + NSRemote_RegisterFunction( "ServerCallback_CTF_PlayMatchNearEndMusic" ) + NSRemote_RegisterFunction( "ServerCallback_CTF_StartReturnFlagProgressBar" ) + NSRemote_RegisterFunction( "ServerCallback_CTF_StopReturnFlagProgressBar" ) #if CLIENT CLCaptureTheFlag_RegisterNetworkFunctions() diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_fastball.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_fastball.gnut index 2462d5376..5cbdbfbc3 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_fastball.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_fastball.gnut @@ -41,7 +41,7 @@ void function FastballRegisterNetworkVars() if ( GAMETYPE != GAMEMODE_FASTBALL ) return - Remote_RegisterFunction( "ServerCallback_FastballUpdatePanelRui" ) - Remote_RegisterFunction( "ServerCallback_FastballPanelHacked" ) - Remote_RegisterFunction( "ServerCallback_FastballRespawnPlayer" ) + NSRemote_RegisterFunction( "ServerCallback_FastballUpdatePanelRui" ) + NSRemote_RegisterFunction( "ServerCallback_FastballPanelHacked" ) + NSRemote_RegisterFunction( "ServerCallback_FastballRespawnPlayer" ) } \ No newline at end of file diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_fw_custom.nut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_fw_custom.nut index c295d596d..b7f7fbf69 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_fw_custom.nut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_fw_custom.nut @@ -79,7 +79,7 @@ void function FWOnRegisteringNetworkVars() if ( GAMETYPE != FORT_WAR ) return - Remote_RegisterFunction( "ServerCallback_FW_NotifyNeedsEnterEnemyArea" ) + NSRemote_RegisterFunction( "ServerCallback_FW_NotifyNeedsEnterEnemyArea" ) RegisterNetworkedVariable( "turretSite1", SNDC_GLOBAL, SNVT_ENTITY ) RegisterNetworkedVariable( "turretSite2", SNDC_GLOBAL, SNVT_ENTITY ) diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_hidden.nut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_hidden.nut index 78357d200..f4ae84644 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_hidden.nut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_hidden.nut @@ -39,6 +39,6 @@ void function HiddenRegisterNetworkVars() if ( GAMETYPE != GAMEMODE_HIDDEN ) return - Remote_RegisterFunction( "ServerCallback_YouAreHidden" ) - Remote_RegisterFunction( "ServerCallback_AnnounceHidden" ) + NSRemote_RegisterFunction( "ServerCallback_YouAreHidden" ) + NSRemote_RegisterFunction( "ServerCallback_AnnounceHidden" ) } diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_hs.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_hs.gnut index f4269ac42..016dee3f4 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_hs.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_hs.gnut @@ -40,8 +40,8 @@ void function HideAndSeekRegisterNetworkVars() if ( GAMETYPE != GAMEMODE_HIDEANDSEEK ) return - Remote_RegisterFunction( "ServerCallback_ShowHideAndSeekCountdown" ) - Remote_RegisterFunction( "ServerCallback_SeekersIncoming" ) - Remote_RegisterFunction( "ServerCallback_LastHiderAlive" ) - Remote_RegisterFunction( "ServerCallback_AnnounceHideAndSeekRole" ) + NSRemote_RegisterFunction( "ServerCallback_ShowHideAndSeekCountdown" ) + NSRemote_RegisterFunction( "ServerCallback_SeekersIncoming" ) + NSRemote_RegisterFunction( "ServerCallback_LastHiderAlive" ) + NSRemote_RegisterFunction( "ServerCallback_AnnounceHideAndSeekRole" ) } \ No newline at end of file diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_inf.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_inf.gnut index bcd863786..676e4f9a2 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_inf.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_inf.gnut @@ -40,9 +40,9 @@ void function InfectionRegisterNetworkVars() if ( GAMETYPE != GAMEMODE_INFECTION ) return - Remote_RegisterFunction( "ServerCallback_YouAreInfected" ) - Remote_RegisterFunction( "ServerCallback_AnnounceFirstInfected" ) - Remote_RegisterFunction( "ServerCallback_AnnounceLastSurvivor" ) + NSRemote_RegisterFunction( "ServerCallback_YouAreInfected" ) + NSRemote_RegisterFunction( "ServerCallback_AnnounceFirstInfected" ) + NSRemote_RegisterFunction( "ServerCallback_AnnounceLastSurvivor" ) } int function CompareAssaultScoreAndInfection( entity a, entity b ) diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_kr.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_kr.gnut index 7cd91de9d..fe43ffa17 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_kr.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_kr.gnut @@ -43,9 +43,9 @@ void function KRRegisterNetworkVars() if ( GAMETYPE != GAMEMODE_KR ) return - Remote_RegisterFunction( "ServerCallback_FlagSpawnIncoming" ) - Remote_RegisterFunction( "ServerCallback_NewKillRacer" ) - Remote_RegisterFunction( "ServerCallback_EndKillrace" ) + NSRemote_RegisterFunction( "ServerCallback_FlagSpawnIncoming" ) + NSRemote_RegisterFunction( "ServerCallback_NewKillRacer" ) + NSRemote_RegisterFunction( "ServerCallback_EndKillrace" ) RegisterNetworkedVariable( "killRaceTime", SNDC_PLAYER_EXCLUSIVE, SNVT_TIME, 0.0 ) diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sns.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sns.gnut index df3368673..d98eeae55 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sns.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sns.gnut @@ -54,6 +54,7 @@ void function SNSRegisterNetworkVars() { if ( GAMETYPE != GAMEMODE_SNS ) return - Remote_RegisterFunction( "ServerCallback_AnnounceBankrupt" ) - Remote_RegisterFunction( "ServerCallback_AnnounceKillLeaderBankrupt" ) + + NSRemote_RegisterFunction( "ServerCallback_AnnounceBankrupt" ) + NSRemote_RegisterFunction( "ServerCallback_AnnounceKillLeaderBankrupt" ) } \ No newline at end of file diff --git a/Northstar.Custom/mod/scripts/vscripts/sh_3psequence_to_1p_hacks.gnut b/Northstar.Custom/mod/scripts/vscripts/sh_3psequence_to_1p_hacks.gnut index 4d4d27440..eb3ebcb6e 100644 --- a/Northstar.Custom/mod/scripts/vscripts/sh_3psequence_to_1p_hacks.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/sh_3psequence_to_1p_hacks.gnut @@ -40,7 +40,7 @@ void function FirstPersonSequenceForce1P_InitPlaylistVars() void function FirstPersonSequenceForce1P_RegisterCustomNetworkFunctions() { - Remote_RegisterFunction( "ServerCallback_HideHudForFPHackAnim" ) + NSRemote_RegisterFunction( "ServerCallback_HideHudForFPHackAnim" ) } #if SERVER diff --git a/Northstar.Custom/mod/scripts/vscripts/sh_bleedout_damage.gnut b/Northstar.Custom/mod/scripts/vscripts/sh_bleedout_damage.gnut index d7373a9ba..4b6873207 100644 --- a/Northstar.Custom/mod/scripts/vscripts/sh_bleedout_damage.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/sh_bleedout_damage.gnut @@ -22,10 +22,10 @@ void function BleedoutDamage_PreInit() void function Bleedout_RegisterRemoteFunctions() { - Remote_RegisterFunction( "ServerCallback_BLEEDOUT_StartFirstAidProgressBar" ) - Remote_RegisterFunction( "ServerCallback_BLEEDOUT_StopFirstAidProgressBar" ) - Remote_RegisterFunction( "ServerCallback_BLEEDOUT_ShowWoundedMarker" ) - Remote_RegisterFunction( "ServerCallback_BLEEDOUT_HideWoundedMarker" ) + NSRemote_RegisterFunction( "ServerCallback_BLEEDOUT_StartFirstAidProgressBar" ) + NSRemote_RegisterFunction( "ServerCallback_BLEEDOUT_StopFirstAidProgressBar" ) + NSRemote_RegisterFunction( "ServerCallback_BLEEDOUT_ShowWoundedMarker" ) + NSRemote_RegisterFunction( "ServerCallback_BLEEDOUT_HideWoundedMarker" ) } // copied from sh_bleedout diff --git a/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut b/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut index b8d4b1ba2..e9d54c2f4 100644 --- a/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut @@ -6,6 +6,9 @@ void function NorthstarCustomPrecache() PrecacheWeapon( "mp_titanweapon_triplethreat" ) PrecacheWeapon( "mp_titanweapon_arc_cannon" ) PrecacheWeapon( "melee_pilot_kunai" ) + PrecacheWeapon( "mp_weapon_ns_wingman" ) + PrecacheWeapon( "mp_weapon_ns_wingman_n" ) + PrecacheWeapon( "mp_weapon_ns_softball" ) RegisterWeaponDamageSources( { diff --git a/Northstar.Custom/mod/scripts/weapons/mp_weapon_ns_softball.txt b/Northstar.Custom/mod/scripts/weapons/mp_weapon_ns_softball.txt new file mode 100644 index 000000000..372c18dc3 --- /dev/null +++ b/Northstar.Custom/mod/scripts/weapons/mp_weapon_ns_softball.txt @@ -0,0 +1,554 @@ +WeaponData +{ + // General + "printname" "#WPN_SOFTBALL" + "shortprintname" "#WPN_SOFTBALL_SHORT" + "description" "#WPN_SOFTBALL_DESC" + "longdesc" "#WPN_SOFTBALL_LONGDESC" + + "menu_icon" "r2_ui/menus/loadout_icons/primary_weapon/primary_softball" + "hud_icon" "r2_ui/menus/loadout_icons/primary_weapon/primary_softball" + + "weaponClass" "human" + "body_type" "heavy" + "fire_mode" "semi-auto" + "pickup_hold_prompt" "Hold [USE] [WEAPONNAME]" + "pickup_press_prompt" "[USE] [WEAPONNAME]" + "minimap_reveal_distance" "32000" + "leveled_pickup" "1" + + "OnClientAnimEvent" "GlobalClientEventHandler" + "OnWeaponPrimaryAttack" "OnWeaponPrimaryAttack_weapon_softball" + "OnWeaponNpcPrimaryAttack" "OnWeaponNpcPrimaryAttack_weapon_softball" + "OnProjectileCollision" "OnProjectileCollision_weapon_softball" + + // Menu + "menu_category" "special" + "menu_anim_class" "medium" + "stat_damage" "71" + "stat_range" "66" + "stat_accuracy" "65" + "stat_rof" "19" + + // Models + "viewmodel" "models/weapons/softball_at/ptpov_softball_at.mdl" + "playermodel" "models/weapons/softball_at/w_softball_at.mdl" + "projectilemodel" "models/weapons/bullets/mgl_grenade.mdl" + + // Effects + "tracer_effect" "weapon_tracers_xo16" + "impact_effect_table" "exp_softball_grenade" + "projectile_trail_effect_0" "wpn_grenade_frag_softball" + "vortex_absorb_effect" "wpn_vortex_projectile_frag_FP" + "vortex_absorb_effect_third_person" "wpn_vortex_projectile_frag" + "vortex_absorb_sound" "Vortex_Shield_AbsorbBulletLarge" + "vortex_absorb_sound_1p_vs_3p" "Vortex_Shield_AbsorbBulletLarge_1P_VS_3P" + "vortex_drain" "0.0" + "projectile_adjust_to_gun_barrel" "1" + + "sound_zoom_in" "Weapon_Softball_ADS_In" + "sound_zoom_out" "Weapon_Softball_ADS_Out" + "sound_pickup" "wpn_pickup_MG_1P" + "fire_sound_1_player_1p" "Weapon_Softball_Fire_1P" + "fire_sound_1_player_3p" "Weapon_Softball_Fire_3P" + "fire_sound_1_npc" "Weapon_Softball_Fire_NPC" + + "low_ammo_sound_name_1" "Softball_LowAmmo_Shot1" + "low_ammo_sound_name_2" "Softball_LowAmmo_Shot2" + "low_ammo_sound_name_3" "Softball_LowAmmo_Shot3" + + "fx_muzzle_flash_view" "P_wpn_muzzleflash_mgl_FP_FULL" + "fx_muzzle_flash_world" "P_wpn_muzzleflash_mgl_FULL" + "fx_muzzle_flash_attach" "muzzle_flash" + + "show_grenade_indicator" "1" + + "damage_type" "burn" + + "npc_self_explosion_safety" "0" + + "explosion_inner_radius" "50" + "explosionradius" "150" + "impulse_force" "7000" + + "critical_hit" "0" + "critical_hit_damage_scale" "1.5" + + // Ammo + "ammo_clip_size" "6" + "ammo_size_segmented_reload" "1" + + //"projectile_killreplay_enabled" "1" + + MP_BASE + { + "ammo_default_total" "60" + "ammo_stockpile_max" "60" + "ammo_no_remove_from_clip" "0" + "ammo_no_remove_from_stockpile" "1" + + + // Damage - When Used by Players + "damage_near_value" "10" + "damage_far_value" "10" + "damage_near_value_titanarmor" "0" + "damage_far_value_titanarmor" "0" + "explosion_damage" "90" + "explosion_damage_heavy_armor" "330" + "damage_near_distance" "100" + "damage_far_distance" "1500" + + "red_crosshair_range" "2000" + + // Damage - When Used by NPCs + "npc_damage_near_value" "0" + "npc_damage_far_value" "0" + "npc_damage_near_value_titanarmor" "0" + "npc_damage_far_value_titanarmor" "0" + + // NPC + "npc_min_engage_range" "100" + "npc_max_engage_range" "2000" + "npc_min_engage_range_heavy_armor" "500" + "npc_max_engage_range_heavy_armor" "3500" + "npc_min_range" "0" + "npc_max_range" "8000" + + "npc_min_burst" "1" + "npc_max_burst" "1" + "npc_rest_time_between_bursts_min" "0.5" + "npc_rest_time_between_bursts_max" "1" + + "enable_highlight_networking_on_creation" "" + + "damage_heavyarmor_nontitan_scale" "0.5" + } + + SP_BASE + { + "ammo_default_total" "48" + "ammo_stockpile_max" "48" + "ammo_no_remove_from_clip" "0" + "ammo_no_remove_from_stockpile" "0" + + + // Damage - When Used by Players + "damage_near_value" "45" + "damage_far_value" "45" + "damage_near_value_titanarmor" "45" + "damage_far_value_titanarmor" "45" + "explosion_damage" "80" + "explosion_damage_heavy_armor" "170" + "damage_near_distance" "100" + "damage_far_distance" "2000" + + "red_crosshair_range" "2000" + + // Damage - When Used by NPCs + "npc_damage_near_value" "20" + "npc_damage_far_value" "20" + "npc_damage_near_value_titanarmor" "20" + "npc_damage_far_value_titanarmor" "20" + + // NPC + "npc_min_engage_range" "100" + "npc_max_engage_range" "2000" + "npc_min_engage_range_heavy_armor" "500" + "npc_max_engage_range_heavy_armor" "3500" + "npc_min_range" "0" + "npc_max_range" "8000" + + "npc_min_burst" "1" + "npc_max_burst" "1" + "npc_rest_time_between_bursts_min" "0.5" + "npc_rest_time_between_bursts_max" "1" + + "enable_highlight_networking_on_creation" "1" + + "damage_heavyarmor_nontitan_scale" "1" + } + + "proficiency_poor_spreadscale" "10.0" + "proficiency_average_spreadscale" "10.0" + "proficiency_good_spreadscale" "3.3" + "proficiency_very_good_spreadscale" "3.3" + + "dof_zoom_nearDepthStart" "2.000" + "dof_zoom_nearDepthEnd" "8.500" + "dof_nearDepthStart" "1.683" + "dof_nearDepthEnd" "5.652" + + // Behavior + "fire_rate" "2" + "zoom_time_in" "0.2" + "zoom_time_out" "0.15" + "zoom_fov" "45" + "reload_time" "0.95" + "reloadsegment_time_loop" "0.82" + "reloadsegment_time_end" "0.57" + "reloadsegmentempty_time_end" "0.57" + "reloadempty_time" "0.95" + "holster_time" "0.5" + "deploy_time" "0.63" + "lower_time" "0.25" + "raise_time" "0.3" + "vortex_refire_behavior" "grenade" + "allow_empty_fire" "0" + "reload_enabled" "1" + "reload_is_segmented" "1" + "allow_empty_click" "1" + "empty_reload_only" "0" + "trigger_snipercam" "1" + "allow_headshots" "0" + "grenade_bounce_vel_frac_shallow" "0.47" + "grenade_bounce_vel_frac_sharp" "0.28" + "grenade_bounce_vel_frac_along_normal" "0.5" + "grenade_bounce_randomness" "0.2" + "grenade_bounce_extra_vertical_randomness" "0.2" + "grenade_roll_vel_frac_per_second" "0.1" + "projectile_launch_speed" "2500" + "projectile_first_person_offset_fraction" "2" + + "projectile_inherit_owner_velocity_scale" "1" + + "sprint_fractional_anims" "0" + + "aimassist_disable_hipfire" "0" + "aimassist_disable_ads" "0" + "aimassist_disable_hipfire_humansonly" "0" + "aimassist_disable_ads_humansonly" "0" + + // Spread + "spread_stand_hip" "0.25" + "spread_stand_hip_run" "0.25" + "spread_stand_ads" "0.35" + "spread_stand_hip_sprint" "0.25" + "spread_crouch_hip" "0.25" + "spread_crouch_ads" "0.35" + "spread_air_hip" "0.25" + "spread_air_ads" "0.35" + + "spread_kick_on_fire_stand_hip" "0.1" + "spread_kick_on_fire_stand_ads" ".075" + "spread_kick_on_fire_crouch_hip" "0.1" + "spread_kick_on_fire_crouch_ads" ".05" + "spread_kick_on_fire_air_hip" ".1" + "spread_kick_on_fire_air_ads" ".1" + + "spread_max_kick_stand_hip" "2.0" + "spread_max_kick_stand_ads" "0.0" + "spread_max_kick_crouch_hip" "1.0" + "spread_max_kick_crouch_ads" "0.0" + "spread_max_kick_air_hip" "5.0" + "spread_max_kick_air_ads" "0.0" + + "spread_decay_rate" "5" + "spread_decay_delay" ".1" + + "ammo_suck_behavior" "primary_weapons" + + // View Kick + "viewkick_spring" "launcher" + + "viewkick_pitch_base" "-0.3" + "viewkick_pitch_random" "0.1" + "viewkick_pitch_softScale" "1.2" + "viewkick_pitch_hardScale" "6.75" + + "viewkick_yaw_base" "0.0" + "viewkick_yaw_random" "0.15" + "viewkick_yaw_softScale" "1.3" + "viewkick_yaw_hardScale" "1.0" + + "viewkick_roll_base" "0.0" + "viewkick_roll_randomMin" "0.5" + "viewkick_roll_randomMax" "0.7" + "viewkick_roll_softScale" "0.2" + "viewkick_roll_hardScale" "1.7" + + "viewkick_hipfire_weaponFraction" "0.8" + "viewkick_hipfire_weaponFraction_vmScale" "1.0" + "viewkick_ads_weaponFraction" "0.3" + "viewkick_ads_weaponFraction_vmScale" "0.5" + + "viewkick_perm_pitch_base" "0.0" + "viewkick_perm_pitch_random" "0.3" + "viewkick_perm_yaw_base" "0.0" + "viewkick_perm_yaw_random" "0.2" + + "viewpunch_multiplier" "1.25" + + // Bob + "bob_cycle_time" "0.4" + "bob_vert_dist" "0.19" + "bob_horz_dist" "0.1" + "bob_max_speed" "150" + "bob_pitch" "0.75" + "bob_yaw" "-1.7" + "bob_roll" "1.2" + + // Bob zoomed + "bob_cycle_time_zoomed" "0.4" + "bob_vert_dist_zoomed" "0.19" + "bob_horz_dist_zoomed" "0.1" + "bob_max_speed_zoomed" "150" + "bob_pitch_zoomed" "0.75" + "bob_yaw_zoomed" "-1.7" + "bob_roll_zoomed" "1.2" + + // Rumble + "fire_rumble" "rumble_grenadier" + + // Sway + "sway_rotate_attach" "SWAY_ROTATE" + "sway_min_x" "-0.5" + "sway_min_y" "-0.5" + "sway_min_z" "-0.6" + "sway_max_x" "0.5" + "sway_max_y" "0.5" + "sway_max_z" "0.6" + "sway_min_pitch" "-3" + "sway_min_yaw" "-2.5" + "sway_min_roll" "-4" + "sway_max_pitch" "3" + "sway_max_yaw" "2.5" + "sway_max_roll" "4" + "sway_translate_gain" "2.5" + "sway_rotate_gain" "7" + "sway_move_forward_translate_x" "-0.1" + "sway_move_forward_translate_z" "-0.5" + "sway_move_back_translate_x" "0.2" + "sway_move_back_translate_z" "-0.2" + "sway_move_left_translate_y" "-1" + "sway_move_left_translate_z" "-0.5" + "sway_move_left_rotate_roll" "-4" + "sway_move_right_translate_y" "1" + "sway_move_right_translate_z" "-0.5" + "sway_move_right_rotate_roll" "4" + "sway_move_up_translate_z" "-1" + "sway_move_down_translate_z" "1" + "sway_turn_left_rotate_yaw" "-2.5" + "sway_turn_right_rotate_yaw" "2.5" + + "sway_turn_left_translate_y" ".5" + "sway_turn_right_translate_y" "-.5" + "sway_turn_up_translate_z" ".2" + "sway_turn_down_translate_z" "-.2" + "sway_turn_up_translate_x" ".1" + "sway_turn_down_translate_x" "-.1" + + "sway_turn_left_rotate_roll" "4" + "sway_turn_right_rotate_roll" "-4" + "sway_turn_up_rotate_pitch" "3" + "sway_turn_down_rotate_pitch" "-3" + "sway_turn_up_rotate_roll" "-0.8" + "sway_turn_down_rotate_roll" "0.8" + + // Zoomed Sway + "sway_rotate_attach_zoomed" "SWAY_ROTATE" + "sway_min_x_zoomed" "-0.5" + "sway_min_y_zoomed" "-0.5" + "sway_min_z_zoomed" "-0.6" + "sway_max_x_zoomed" "0.5" + "sway_max_y_zoomed" "0.5" + "sway_max_z_zoomed" "0.6" + "sway_min_pitch_zoomed" "-3" + "sway_min_yaw_zoomed" "-2.5" + "sway_min_roll_zoomed" "-4" + "sway_max_pitch_zoomed" "3" + "sway_max_yaw_zoomed" "2.5" + "sway_max_roll_zoomed" "4" + "sway_translate_gain_zoomed" "2.5" + "sway_rotate_gain_zoomed" "7" + "sway_move_forward_translate_x_zoomed" "-0.1" + "sway_move_forward_translate_z_zoomed" "-0.5" + "sway_move_back_translate_x_zoomed" "0.2" + "sway_move_back_translate_z_zoomed" "-0.2" + "sway_move_left_translate_y_zoomed" "-1" + "sway_move_left_translate_z_zoomed" "-0.5" + "sway_move_left_rotate_roll_zoomed" "-4" + "sway_move_right_translate_y_zoomed" "1" + "sway_move_right_translate_z_zoomed" "-0.5" + "sway_move_right_rotate_roll_zoomed" "4" + "sway_move_up_translate_z_zoomed" "-1" + "sway_move_down_translate_z_zoomed" "1" + "sway_turn_left_rotate_yaw_zoomed" "-2.5" + "sway_turn_right_rotate_yaw_zoomed" "2.5" + + "sway_turn_left_translate_y_zoomed" ".5" + "sway_turn_right_translate_y_zoomed" "-.5" + "sway_turn_up_translate_z_zoomed" ".2" + "sway_turn_down_translate_z_zoomed" "-.2" + "sway_turn_up_translate_x_zoomed" ".1" + "sway_turn_down_translate_x_zoomed" "-.1" + + "sway_turn_left_rotate_roll_zoomed" "4" + "sway_turn_right_rotate_roll_zoomed" "-4" + "sway_turn_up_rotate_pitch_zoomed" "3" + "sway_turn_down_rotate_pitch_zoomed" "-3" + "sway_turn_up_rotate_roll_zoomed" "-0.8" + "sway_turn_down_rotate_roll_zoomed" "0.8" + + // WeaponED Unhandled Key/Values and custom script Key/Values + "viewdrift_hipfire_stand_scale_pitch" "0.325" + "viewdrift_hipfire_crouch_scale_pitch" "0.275" + "viewdrift_hipfire_air_scale_pitch" "0.5" + "viewdrift_hipfire_stand_scale_yaw" "0.12" + "viewdrift_hipfire_crouch_scale_yaw" "0.10" + "viewdrift_hipfire_air_scale_yaw" "0.22" + "viewdrift_hipfire_speed_pitch" "0.6" + "viewdrift_hipfire_speed_yaw" "1.22" + "viewdrift_ads_speed_pitch" "0.63" + "viewdrift_ads_speed_yaw" "0.6" + "sprintcycle_time" ".55" + + // Bodygroups: + "bodygroup5_name" "proscreen" + "bodygroup5_set" "0" + + "clip_bodygroup" "softball_at_cylinder" + "clip_bodygroup_index_shown" "0" + "clip_bodygroup_index_hidden" "1" + "clip_bodygroup_show_for_milestone_0" "1" + "clip_bodygroup_show_for_milestone_1" "1" + "clip_bodygroup_show_for_milestone_2" "0" + "clip_bodygroup_show_for_milestone_3" "1" + "clip_bodygroup_show_for_milestone_4" "0" + + "grenade_arc_indicator_effect" "P_grenade_arc_proto" + "grenade_arc_impact_indicator_effect" "grenade_arc_impact_proto" + "grenade_arc_indicator_show_from_hip" "0" + + Mods + { + sns + { + explosion_damage "50" + damage_near_value "50" + damage_far_value "50" + ammo_clip_size "1" + projectile_launch_speed "7500" + } + + ar_trajectory + { + "grenade_arc_indicator_effect" "P_grenade_arc_proto" + "grenade_arc_impact_indicator_effect" "grenade_arc_impact_proto" + "grenade_arc_indicator_show_from_hip" "1" + } + + extended_ammo + { + "ammo_stockpile_max" "120" + "ammo_clip_size" "8" + "ammo_default_total" "120" + } + pro_screen + { + "ui8_enable" "1" + "bodygroup5_set" "1" + } + + pro_screenextended_ammo + { + } + pas_fast_ads + { + //Fast ADS + "zoom_time_in" "*0.5" + "zoom_time_out" "*0.6" + } + pas_fast_swap + { + //Fast Swap + "fast_swap_to" "1" + } + jump_kit + { + "impulse_force" "7000" + "impulse_force_explosions" "65000" + } + + pas_fast_reload + { + "reload_time" "*0.7" + "reload_time_late1" "*0.7" + "reloadempty_time" "*0.7" + "reloadempty_time_late1" "*0.7" + "reloadsegment_time_loop" "*0.7" + "reloadsegment_time_end" "*0.7" + "reloadsegmentempty_time_end" "*0.7" + } + + burn_mod_softball + { + + //FX + "projectile_trail_effect_0" "wpn_grenade_frag_softball_burn" + + "is_burn_mod" "1" + + "explosion_damage" "150" + "explosion_damage_heavy_armor" "530" + } + tactical_cdr_on_kill + { + + } + pas_run_and_gun + { + "primary_fire_does_not_block_sprint" "1" + "crosshair_force_sprint_fade_disabled" "1" + } + } + + "ui1_enable" "1" + UiData1 + { + "ui" "ui/softball_ammo_counter" + "mesh" "models/weapons/attachments/softball_rui_upper" + Args + { + vis player_zoomfrac + ammo weapon_ammo + clipSize weapon_clipSize + } + } + + "ui8_enable" "0" + UiData8 + { + "ui" "ui/pro_screen_panel" + "mesh" "models/weapons/attachments/pro_screen_rui_upper" + Args + { + proValue proscreen_int0 + proOwnedByPlayer proscreen_owner_is_player + } + } + + RUI_CrosshairData + { + DefaultArgs + { + adjustedSpread weapon_spread + adsFrac player_zoomFrac + isSprinting player_is_sprinting + isReloading weapon_is_reloading + teamColor crosshair_team_color + isAmped weapon_is_amped + crosshairMovementX crosshair_movement_x + crosshairMovementY crosshair_movement_y + } + + Crosshair_1 + { + "ui" "ui/crosshair_grenade_launcher2" + "base_spread" "1.0" + Args + { + isFiring weapon_is_firing + } + } + } +} \ No newline at end of file diff --git a/Northstar.Custom/mod/scripts/weapons/mp_weapon_ns_wingman.txt b/Northstar.Custom/mod/scripts/weapons/mp_weapon_ns_wingman.txt new file mode 100644 index 000000000..5f29a594c --- /dev/null +++ b/Northstar.Custom/mod/scripts/weapons/mp_weapon_ns_wingman.txt @@ -0,0 +1,582 @@ +WeaponData +{ + // General + "printname" "#WPN_WINGMAN" + "shortprintname" "#WPN_WINGMAN_SHORT" + "description" "#WPN_WINGMAN_DESC" + "longdesc" "#WPN_WINGMAN_LONGDESC" + + "fast_swap_to" "1" + + "menu_icon" "r2_ui/menus/loadout_icons/primary_weapon/primary_wingman_m" + "hud_icon" "r2_ui/menus/loadout_icons/primary_weapon/primary_wingman_m" + + "weaponClass" "human" + "weaponSubClass" "sidearm" + "body_type" "light" + "fire_mode" "semi-auto" + "pickup_hold_prompt" "Hold [USE] [WEAPONNAME]" + "pickup_press_prompt" "[USE] [WEAPONNAME]" + "minimap_reveal_distance" "32000" + "leveled_pickup" "1" + + "damage_flags" "DF_BULLET | DF_KNOCK_BACK | DF_DISMEMBERMENT" + + // Menu + "menu_category" "pistol" + "menu_anim_class" "small" + "stat_damage" "88" + "stat_range" "40" + "stat_accuracy" "36" + "stat_rof" "27" + + // Models + "viewmodel" "models/weapons/b3wing/ptpov_b3wing.mdl" + "playermodel" "models/weapons/b3wing/w_b3wing.mdl" + + // Effects + "tracer_effect_first_person" "P_wpn_tracer" + "tracer_effect" "P_wpn_tracer" + "vortex_absorb_effect" "wpn_vortex_projectile_rifle_FP" + "vortex_absorb_effect_third_person" "wpn_vortex_projectile_rifle" + "vortex_absorb_sound" "Vortex_Shield_AbsorbBulletSmall" + "vortex_absorb_sound_1P_VS_3P" "Vortex_Shield_AbsorbBulletSmall_1P_VS_3P" + "projectile_adjust_to_gun_barrel" "1" + + //"fx_shell_eject_view" "wpn_shelleject_pistol_FP" + //"fx_shell_eject_world" "wpn_shelleject_pistol" + //"fx_shell_eject_attach" "shell" + + "fx_muzzle_flash_view" "wpn_muzzleflash_pistol_FP" + "fx_muzzle_flash_world" "wpn_muzzleflash_pistol" + "fx_muzzle_flash_attach" "muzzle_flash" + + // Sounds + "sound_dryfire" "pistol_dryfire" + "sound_pickup" "wpn_pickup_Pistol_1P" + "fire_sound_1" "Weapon_bulletCasings.Bounce" + "fire_sound_2_player_1p" "Weapon_Wingman_Fire_1P" + "fire_sound_2_player_3p" "Weapon_Wingman_Fire_3P" + "fire_sound_2_npc" "Weapon_Wingman_Fire_NPC" + "sound_zoom_in" "Weapon_Wingman_ADS_In" + "sound_zoom_out" "Weapon_Wingman_ADS_Out" + + "low_ammo_sound_name_1" "Wingman_LowAmmo_Shot1" + "low_ammo_sound_name_2" "Wingman_LowAmmo_Shot2" + "low_ammo_sound_name_3" "Wingman_LowAmmo_Shot3" + + // Network + "net_optimize" "1" + + "damage_type" "bullet" + + "critical_hit_damage_scale" "1" + + "ammo_clip_size" "6" + "titanarmor_critical_hit_required" "1" + + dof_zoom_focusArea_horizontal 0.06 + dof_zoom_focusArea_top 0.070 + dof_zoom_focusArea_bottom -0.011 + + MP_BASE + { + "ammo_default_total" "160" + "ammo_stockpile_max" "160" + "ammo_no_remove_from_stockpile" "1" + "ammo_min_to_fire" "1" + + "aimassist_adspull_weaponclass" "precise" + + "critical_hit" "1" + + // Damage - When Used by Players + "damage_near_value" "40" + "damage_far_value" "40" + "damage_near_distance" "1000" + "damage_far_distance" "1500" + "damage_near_value_titanarmor" "250" + "damage_far_value_titanarmor" "200" + "damage_rodeo" "350" + + "damage_very_far_value" "30" + "damage_very_far_distance" "2500" + + "damage_headshot_scale" "2.0" + + "red_crosshair_range" "1000" + + // Damage - When Used by NPCs + "npc_damage_near_value" "10" + "npc_damage_far_value" "8" + "npc_damage_near_distance" "1000" + "npc_damage_far_distance" "1200" + + // NPC + "npc_min_engage_range" "0" + "npc_max_engage_range" "1000" + "npc_min_engage_range_heavy_armor" "200" + "npc_max_engage_range_heavy_armor" "2000" + "npc_min_range" "0" + "npc_max_range" "8000" + + "npc_min_burst" "1" + "npc_max_burst" "3" + "npc_rest_time_between_bursts_min" "0.3" + "npc_rest_time_between_bursts_max" "0.6" + + "enable_highlight_networking_on_creation" "" + + "damage_heavyarmor_nontitan_scale" "0.35" + + + } + + SP_BASE + { + "ammo_default_total" "18" + "ammo_stockpile_max" "18" + "ammo_no_remove_from_stockpile" "0" + "ammo_min_to_fire" "1" + + "aimassist_adspull_weaponclass" "precise_sp" + + "critical_hit" "0" + + // Damage - When Used by Players + "damage_near_value" "90" + "damage_far_value" "45" + "damage_near_distance" "750" // match to search distance and red crosshair range + "damage_far_distance" "850" + "damage_near_value_titanarmor" "125" + "damage_far_value_titanarmor" "125" + "damage_rodeo" "350" + + "damage_headshot_scale" "2" + + "red_crosshair_range" "750" + + // Damage - When Used by NPCs + "npc_damage_near_value" "10" + "npc_damage_far_value" "8" + "npc_damage_near_distance" "1000" + "npc_damage_far_distance" "1200" + + // NPC + + "npc_min_engage_range" "0" + "npc_max_engage_range" "1000" + "npc_min_engage_range_heavy_armor" "200" + "npc_max_engage_range_heavy_armor" "2000" + "npc_min_range" "0" + "npc_max_range" "8000" + + "npc_min_burst" "1" + "npc_max_burst" "1" + "npc_rest_time_between_bursts_min" "0.25" + "npc_rest_time_between_bursts_max" "0.6" + + "enable_highlight_networking_on_creation" "1" + + "damage_heavyarmor_nontitan_scale" "1" + + "damage_very_far_value" "" + "damage_very_far_distance" "" + } + + "proficiency_poor_spreadscale" "5.0" + "proficiency_average_spreadscale" "5.0" + "proficiency_good_spreadscale" "1.66667" + "proficiency_very_good_spreadscale" "1.66667" + + "viewmodel_offset_ads" "0 0 0" + "dof_zoom_nearDepthStart" "4.750" + "dof_zoom_nearDepthEnd" "11.000" + "dof_nearDepthStart" "3.683" + "dof_nearDepthEnd" "6.652" + + // Behavior + "fire_rate" "2.6" + "zoom_time_in" "0.2" + "zoom_time_out" "0.15" + "zoom_fov" "55" + "reload_time" "2.1" + "reload_time_late1" "1.75" + "reload_time_late2" "0.60" + "reloadempty_time" "2.1" + "reloadempty_time_late1" "1.75" + "reloadempty_time_late2" "0.65" + "holster_time" "0.5" + "deploy_time" "0.4" + "lower_time" "0.2" + "raise_time" "0.2" + "vortex_refire_behavior" "bullet" + "allow_empty_fire" "0" + "reload_enabled" "1" + "allow_empty_click" "1" + "empty_reload_only" "0" + "trigger_snipercam" "0" + "allow_headshots" "1" + "headshot_distance" "1400" + "primary_fire_does_not_block_sprint" "0" + "ads_move_speed_scale" "0.75" + "aimassist_disable_hipfire" "0" + "aimassist_disable_ads" "0" + "aimassist_disable_hipfire_titansonly" "0" + "aimassist_disable_ads_titansonly" "0" + + "sprint_fractional_anims" "0" + + "impulse_force" "3000" + "ammo_suck_behavior" "primary_weapons" + + // View Kick + "viewkick_spring" "magnum" + + "viewkick_pitch_base" "-2.5" + "viewkick_pitch_random" "1" + "viewkick_pitch_softScale" "0.4" + "viewkick_pitch_hardScale" "2.0" + + "viewkick_yaw_base" "-0.5" + "viewkick_yaw_random" "-1.0" + "viewkick_yaw_softScale" "0.5" + "viewkick_yaw_hardScale" "1.5" + + "viewkick_roll_base" "0" + "viewkick_roll_randomMin" "0.2" + "viewkick_roll_randomMax" "0.4" + "viewkick_roll_softScale" "0.2" + "viewkick_roll_hardScale" "2.25" + + "viewkick_hipfire_weaponFraction" "0.25" + "viewkick_hipfire_weaponFraction_vmScale" "0.0" + "viewkick_ads_weaponFraction" "0.35" + "viewkick_ads_weaponFraction_vmScale" "0.0" + + "viewkick_perm_pitch_base" "0.0" + "viewkick_perm_pitch_random" "1.0" + "viewkick_perm_yaw_base" "0.1" + "viewkick_perm_yaw_random" "1.0" + + // + "viewmodel_shake_forward" "0.5" + "viewmodel_shake_up" "0.2" + "viewmodel_shake_right" "0.0" + + // Bob + "bob_cycle_time" "0.4" + "bob_vert_dist" "0.19" + "bob_horz_dist" "0.1" + "bob_max_speed" "150" + "bob_pitch" "0.75" + "bob_yaw" "-1.7" + "bob_roll" "1.2" + + // Bob_Zoomed + "bob_cycle_time_zoomed" "0.4" + "bob_vert_dist_zoomed" "0.01" + "bob_horz_dist_zoomed" "0.01" + "bob_max_speed_zoomed" "150" + //"bob_pitch_zoomed" "0.002" + //"bob_yaw_zoomed" "-.002" + //"bob_roll_zoomed" ".002" + + // Rumble + "fire_rumble" "rumble_pistol_heavy" + + // Sway + "sway_rotate_attach" "SWAY_ROTATE" + "sway_min_x" "-0.5" + "sway_min_y" "-0.5" + "sway_min_z" "-0.6" + "sway_max_x" "0.5" + "sway_max_y" "0.5" + "sway_max_z" "0.6" + "sway_min_pitch" "-3" + "sway_min_yaw" "-2.5" + "sway_min_roll" "-4" + "sway_max_pitch" "3" + "sway_max_yaw" "2.5" + "sway_max_roll" "4" + "sway_translate_gain" "2.5" + "sway_rotate_gain" "7" + "sway_move_forward_translate_x" "-0.1" + "sway_move_forward_translate_z" "-0.5" + "sway_move_back_translate_x" "0.2" + "sway_move_back_translate_z" "-0.2" + "sway_move_left_translate_y" "-1" + "sway_move_left_translate_z" "-0.5" + "sway_move_left_rotate_roll" "-4" + "sway_move_right_translate_y" "1" + "sway_move_right_translate_z" "-0.5" + "sway_move_right_rotate_roll" "4" + "sway_move_up_translate_z" "-1" + "sway_move_down_translate_z" "1" + "sway_turn_left_rotate_yaw" "-2.5" + "sway_turn_right_rotate_yaw" "2.5" + + "sway_turn_left_translate_y" ".5" + "sway_turn_right_translate_y" "-.5" + "sway_turn_up_translate_z" ".2" + "sway_turn_down_translate_z" "-.2" + "sway_turn_up_translate_x" ".1" + "sway_turn_down_translate_x" "-.1" + + "sway_turn_left_rotate_roll" "4" + "sway_turn_right_rotate_roll" "-4" + "sway_turn_up_rotate_pitch" "3" + "sway_turn_down_rotate_pitch" "-3" + "sway_turn_up_rotate_roll" "-0.8" + "sway_turn_down_rotate_roll" "0.8" + + // Zoomed Sway + "sway_rotate_attach_zoomed" "SWAY_ROTATE_ZOOMED" + "sway_rotate_attach_blend_time_zoomed" "0.2" + "sway_rotate_gain_zoomed" "5" + + "sway_min_yaw_zoomed" "-0.04" + "sway_max_yaw_zoomed" "0.04" + "sway_turn_left_rotate_yaw_zoomed" "-0.085" + "sway_turn_right_rotate_yaw_zoomed" "0.085" + + "sway_min_roll_zoomed" "-1" + "sway_max_roll_zoomed" "1" + "sway_turn_left_rotate_roll_zoomed" "-1" + "sway_turn_right_rotate_roll_zoomed" "1" + + "sway_move_right_rotate_roll_zoomed" "0.2" + "sway_move_left_rotate_roll_zoomed" "-0.2" + + "sway_min_pitch_zoomed" "-0.03" + "sway_max_pitch_zoomed" "0.04" + "sway_turn_up_rotate_pitch_zoomed" "0.07" + "sway_turn_down_rotate_pitch_zoomed" "-0.07" + + // Spread + "spread_stand_hip" "1.0" + "spread_stand_hip_run" "3.0" + "spread_stand_hip_sprint" "4.0" + "spread_crouch_hip" "0.5" + "spread_air_hip" "6.0" + "spread_stand_ads" "0.0" //"0.15" + "spread_crouch_ads" "0.0" //"0.1" + "spread_air_ads" "0.0" //"0.25" + + "spread_kick_on_fire_stand_hip" "2.5" + "spread_kick_on_fire_crouch_hip" "2.0" + "spread_kick_on_fire_air_hip" "3.0" + "spread_kick_on_fire_stand_ads" ".025" + "spread_kick_on_fire_crouch_ads" ".015" + "spread_kick_on_fire_air_ads" ".05" + + "spread_max_kick_stand_hip" "4.5" + "spread_max_kick_crouch_hip" "3.0" + "spread_max_kick_air_hip" "4.5" + "spread_max_kick_stand_ads" "0.0" + "spread_max_kick_crouch_ads" "0.0" + "spread_max_kick_air_ads" "0.0" + + "spread_decay_rate" "11.0" + "spread_decay_delay" ".21" + + // WeaponED Unhandled Key/Values and custom script Key/Values + "sprintcycle_time" "0.55" + "deployfirst_time" "1.25" + "activitymodifier" "pistol" + "holster_type" "pistol" + + // Bodygroups: + "bodygroup1_name" "suppressor_cyl_sm" + "bodygroup1_set" "0" + "bodygroup2_name" "suppressor_sq_sm" + "bodygroup2_set" "0" + "bodygroup3_name" "sight_cqh" + "bodygroup3_set" "0" + "bodygroup4_name" "sight_acgs" + "bodygroup4_set" "0" + "bodygroup5_name" "sight_cro" + "bodygroup5_set" "0" + "bodygroup6_name" "proscreen" + "bodygroup6_set" "0" + + + "clip_bodygroup" "b3wing_magazine" + "clip_bodygroup_index_shown" "0" + "clip_bodygroup_index_hidden" "1" + "clip_bodygroup_show_for_milestone_0" "1" + "clip_bodygroup_show_for_milestone_1" "0" + "clip_bodygroup_show_for_milestone_2" "1" + "clip_bodygroup_show_for_milestone_3" "1" + + Mods + { + one_in_the_chamber + { + damage_near_value "9999" + damage_far_value "9999" + } + iron_sights + { + } + extended_ammo + { + "ammo_stockpile_max" "120" + "ammo_clip_size" "8" + "ammo_default_total" "120" + } + silencer //HACK JFS: Doesn't get applied on amped weapons. See bug 170460 + { + "silenced" "1" + "fire_sound_2_player_1p" "Weapon_Wingman_FireSuppressed_1P" + "fire_sound_2_player_3p" "Weapon_Wingman_FireSuppressed_3P" + "fire_sound_2_npc" "Weapon_Wingman_FireSuppressed_NPC" + "damage_near_value" "--10" + "damage_far_value" "--10" + "damage_very_far_value" "--5" + "bodygroup2_set" "1" + + //"rumble" "4" + "tracer_effect" "P_wpn_tracer_pistol" + "minimap_reveal_distance" "1" + + "fx_muzzle_flash_view" "wpn_muzzleflash_pistol_sup_FP" + "fx_muzzle_flash_world" "wpn_muzzleflash_pistol_sup" + "fx_muzzle_flash_attach" "muzzle_flash_suppressor_sq" + } + hcog + { + "bodygroup3_set" "1" + "bodygroup4_set" "0" + "bodygroup5_set" "0" + "viewmodel_offset_ads" "0 -6.7 -0.75" + "zoom_fov" "35" + "anim_alt_idleAttack" "1" + + "dof_zoom_nearDepthStart" "6.161" + "dof_zoom_nearDepthEnd" "9.204" + } + redline_sight + { + "bodygroup3_set" "0" + "bodygroup4_set" "1" + "bodygroup5_set" "0" + "viewmodel_offset_ads" "0 -9 -0.78" + "dof_zoom_nearDepthStart" "4.491" + "dof_zoom_nearDepthEnd" "5.545" + } + threat_scope + { + "bodygroup3_set" "0" + "bodygroup4_set" "0" + "bodygroup5_set" "1" + "threat_scope_enabled" "1" + "threat_scope_bounds_tagname1" "SCR_TR_CRO" + "threat_scope_bounds_tagname2" "SCR_BL_CRO" + "viewmodel_offset_ads" "0 -9 -0.78" + "dof_zoom_nearDepthStart" "4.491" + "dof_zoom_nearDepthEnd" "5.545" + } + pro_screen + { + "ui8_enable" "1" + "bodygroup6_set" "1" + } + tactical_cdr_on_kill + { + + } + pas_fast_reload + { + "reload_time" "*0.7" + "reload_time_late1" "*0.7" + "reloadempty_time" "*0.7" + "reloadempty_time_late1" "*0.7" + } + pas_run_and_gun + { + "primary_fire_does_not_block_sprint" "1" + "crosshair_force_sprint_fade_disabled" "1" + } + pas_fast_ads + { + //Fast ADS + "zoom_time_in" "*0.5" + "zoom_time_out" "*0.6" + } + pas_fast_swap + { + //Fast Swap + "fast_swap_to" "1" + } + burn_mod_wingman + { + //FX + "tracer_effect" "P_wpn_tracer_BC" + "tracer_effect_first_person" "P_wpn_tracer_BC" + "fx_muzzle_flash_view" "wpn_muzzleflash_pistol_elec_FP" + "fx_muzzle_flash_world" "wpn_muzzleflash_pistol_elec" + + "is_burn_mod" "1" + + "damage_near_value" "++10" + "damage_far_value" "++15" + "damage_very_far_value" "++10" + "damage_near_value_titanarmor" "++100" + "damage_far_value_titanarmor" "++100" + } + } + + "ui1_enable" "1" + UiData1 + { + "ui" "ui/b3wing_ammo_counter" + "mesh" "models/weapons/attachments/b3wing_rui_lower" + Args + { + vis player_zoomfrac + ammo weapon_ammo + clipSize weapon_clipSize + } + } + + "ui8_enable" "0" + UiData8 + { + "ui" "ui/pro_screen_panel" + "mesh" "models/weapons/attachments/pro_screen_rui_upper" + Args + { + proValue proscreen_int0 + proOwnedByPlayer proscreen_owner_is_player + } + } + + active_crosshair_count "1" + rui_crosshair_index "0" + + RUI_CrosshairData + { + DefaultArgs + { + adjustedSpread weapon_spread + adsFrac player_zoomFrac + isSprinting player_is_sprinting + isReloading weapon_is_reloading + teamColor crosshair_team_color + isAmped weapon_is_amped + crosshairMovementX crosshair_movement_x + crosshairMovementY crosshair_movement_y + } + + Crosshair_1 + { + "ui" "ui/crosshair_wingman" + "base_spread" "-0.25" + Args + { + isFiring weapon_is_firing + } + } + } +} \ No newline at end of file diff --git a/Northstar.Custom/mod/scripts/weapons/mp_weapon_ns_wingman_n.txt b/Northstar.Custom/mod/scripts/weapons/mp_weapon_ns_wingman_n.txt new file mode 100644 index 000000000..deb93fd4d --- /dev/null +++ b/Northstar.Custom/mod/scripts/weapons/mp_weapon_ns_wingman_n.txt @@ -0,0 +1,593 @@ +WeaponData +{ + // General + "printname" "#WPN_WINGMAN_N" + "shortprintname" "#WPN_WINGMAN_N_SHORT" + "description" "#WPN_WINGMAN_N_DESC" + "longdesc" "#WPN_WINGMAN_N_LONGDESC" + + "fast_swap_to" "1" + + "menu_icon" "r2_ui/menus/loadout_icons/primary_weapon/primary_wingman_elite" + "hud_icon" "r2_ui/menus/loadout_icons/primary_weapon/primary_wingman_elite" + + "weaponClass" "human" + "weaponSubClass" "sidearm" + "body_type" "light" + "fire_mode" "semi-auto" + "pickup_hold_prompt" "Hold [USE] [WEAPONNAME]" + "pickup_press_prompt" "[USE] [WEAPONNAME]" + "minimap_reveal_distance" "32000" + "leveled_pickup" "1" + + "OnWeaponPrimaryAttack" "OnWeaponPrimaryAttack_weapon_sniper" + + "damage_flags" "DF_BULLET | DF_KNOCK_BACK | DF_DISMEMBERMENT" + + // Menu + "menu_category" "handgun" + "menu_anim_class" "small" + "stat_damage" "91" + "stat_range" "60" + "stat_accuracy" "25" + "stat_rof" "27" + + // Models + "viewmodel" "models/weapons/wingman_elite/ptpov_wingman_elite.mdl" + "playermodel" "models/weapons/wingman_elite/w_wingman_elite.mdl" + "projectilemodel" "models/weapons/bullets/projectile_20mm.mdl" + + // Effects +// "tracer_effect_first_person" "P_wpn_tracer" +// "tracer_effect" "P_wpn_tracer" + "impact_effect_table" "wingman_elite" + "vortex_absorb_effect" "wpn_vortex_projectile_rifle_FP" + "vortex_absorb_effect_third_person" "wpn_vortex_projectile_rifle" + "vortex_absorb_sound" "Vortex_Shield_AbsorbBulletSmall" + "vortex_absorb_sound_1P_VS_3P" "Vortex_Shield_AbsorbBulletSmall_1P_VS_3P" + "projectile_adjust_to_gun_barrel" "1" + + "projectile_trail_effect_0" "weapon_kraber_projectile" + "projectile_do_predict_impact_effects" "1"//0" + + + //"fx_shell_eject_view" "wpn_shelleject_pistol_FP" + //"fx_shell_eject_world" "wpn_shelleject_pistol" + //"fx_shell_eject_attach" "shell" + + "fx_muzzle_flash_view" "wpn_muzzleflash_pistol_FP" + "fx_muzzle_flash_world" "wpn_muzzleflash_pistol" + "fx_muzzle_flash_attach" "muzzle_flash" + + // Sounds + "sound_dryfire" "pistol_dryfire" + "sound_pickup" "wpn_pickup_Pistol_1P" + "fire_sound_1" "Weapon_bulletCasings.Bounce" + "fire_sound_2_player_1p" "Weapon_Wingman_Elite_Fire_1P" + "fire_sound_2_player_3p" "Weapon_Wingman_Elite_Fire_3P" + "fire_sound_2_npc" "Weapon_Wingman_Fire_NPC" + "sound_zoom_in" "Weapon_Wingman_ADS_In" + "sound_zoom_out" "Weapon_Wingman_ADS_Out" + + "low_ammo_sound_name_1" "Wingman_LowAmmo_Shot1" + "low_ammo_sound_name_2" "Wingman_LowAmmo_Shot2" + "low_ammo_sound_name_3" "Wingman_LowAmmo_Shot3" + + // Network + "net_optimize" "0" + + "damage_type" "bullet" + + "critical_hit_damage_scale" "1" + + "ammo_clip_size" "6" + "titanarmor_critical_hit_required" "1" + + dof_zoom_focusArea_horizontal 0.06 + dof_zoom_focusArea_top 0.070 + dof_zoom_focusArea_bottom -0.011 + + + "ammo_default_total" "160" + "ammo_stockpile_max" "160" + "ammo_no_remove_from_stockpile" "1" + "ammo_min_to_fire" "1" + + "aimassist_adspull_weaponclass" "precise" + + "critical_hit" "1" + + // Bolt info + "bolt_hitsize" "0.0" + "bolt_hitsize_grow1_time" "0.035" + "bolt_hitsize_grow1_size" "0.5" + "bolt_hitsize_grow2_time" "0.08" + "bolt_hitsize_grow2_size" "1.0" + "bolt_hitsize_growfinal_lerptime" "0.18" + "bolt_hitsize_growfinal_size" "2.0" + + "bolt_gravity_enabled" "1" + "bolt_gravity_amount" "0.2500"//0.500" + + "bolt_bounce_frac" "0.000" + "projectile_damage_reduction_per_bounce" "0.0" + "projectile_damages_owner" "0" + "projectile_ricochet_max_count" "0" + + "pass_through_depth" "32" + "pass_through_damage_preserved_scale" "1" + + "bolt_speed" "12000" + + // Damage - When Used by Players + "damage_near_value" "75" + "damage_far_value" "55" + "damage_near_distance" "1500" + "damage_far_distance" "2000" + "damage_near_value_titanarmor" "300" + "damage_far_value_titanarmor" "250" + "damage_rodeo" "350" + + "damage_very_far_value" "35" + "damage_very_far_distance" "3500" + + "damage_headshot_scale" "2" + + "red_crosshair_range" "1500" + + // Damage - When Used by NPCs + "npc_damage_near_value" "10" + "npc_damage_far_value" "8" + "npc_damage_near_distance" "1000" + "npc_damage_far_distance" "1200" + + // NPC + "npc_min_engage_range" "0" + "npc_max_engage_range" "1000" + "npc_min_engage_range_heavy_armor" "200" + "npc_max_engage_range_heavy_armor" "2000" + "npc_min_range" "0" + "npc_max_range" "8000" + + "npc_min_burst" "1" + "npc_max_burst" "3" + "npc_rest_time_between_bursts_min" "0.3" + "npc_rest_time_between_bursts_max" "0.6" + + "damage_heavyarmor_nontitan_scale" "0.35" + + "proficiency_poor_spreadscale" "5.0" + "proficiency_average_spreadscale" "5.0" + "proficiency_good_spreadscale" "1.66667" + "proficiency_very_good_spreadscale" "1.66667" + + "viewmodel_offset_ads" "0 0 0" + "dof_zoom_nearDepthStart" "4.750" + "dof_zoom_nearDepthEnd" "11.000" + "dof_nearDepthStart" "3.683" + "dof_nearDepthEnd" "6.652" + + // Behavior + "fire_rate" "2.6" + + "zoom_time_in" "0.2" + "zoom_time_out" "0.15" + "zoom_fov" "35" + "reload_time" "2.1" + "reload_time_late1" "1.75" + "reload_time_late2" "0.60" + "reloadempty_time" "2.1" + "reloadempty_time_late1" "1.75" + "reloadempty_time_late2" "0.65" + "holster_time" "0.5" + "deploy_time" "0.4" + "lower_time" "0.2" + "raise_time" "0.2" + "vortex_refire_behavior" "bullet" + "allow_empty_fire" "0" + "reload_enabled" "1" + "allow_empty_click" "1" + "empty_reload_only" "0" + "trigger_snipercam" "0" + "allow_headshots" "1" +// "headshot_distance" "1400" + "primary_fire_does_not_block_sprint" "0" + "ads_move_speed_scale" "0.75" + "aimassist_disable_hipfire" "0" + "aimassist_disable_ads" "0" + "aimassist_disable_hipfire_titansonly" "0" + "aimassist_disable_ads_titansonly" "0" + + "sprint_fractional_anims" "0" + + "impulse_force" "10" + "ammo_suck_behavior" "primary_weapons" + + // View Kick + "viewkick_spring" "magnum" + + "viewkick_pitch_base" "-0.5" + "viewkick_pitch_random" ".2" + "viewkick_pitch_softScale" "0.4" + "viewkick_pitch_hardScale" "2.0" + + "viewkick_yaw_base" "0.05" + "viewkick_yaw_random" "0.0" + "viewkick_yaw_softScale" "0.5" + "viewkick_yaw_hardScale" "1.5" + + "viewkick_roll_base" "0" + "viewkick_roll_randomMin" "0.2" + "viewkick_roll_randomMax" "0.4" + "viewkick_roll_softScale" "0.2" + "viewkick_roll_hardScale" "2.25" + + "viewkick_hipfire_weaponFraction" "0.25" + "viewkick_hipfire_weaponFraction_vmScale" "0.0" + "viewkick_ads_weaponFraction" "0.35" + "viewkick_ads_weaponFraction_vmScale" "0.0" + + "viewkick_perm_pitch_base" "0.0" + "viewkick_perm_pitch_random" "0.0" + "viewkick_perm_yaw_base" "0.0" + "viewkick_perm_yaw_random" "0.0" + + // + "viewmodel_shake_forward" "0.5" + "viewmodel_shake_up" "0.2" + "viewmodel_shake_right" "0.0" + + // Bob + "bob_cycle_time" "0.4" + "bob_vert_dist" "0.19" + "bob_horz_dist" "0.1" + "bob_max_speed" "150" + "bob_pitch" "0.75" + "bob_yaw" "-1.7" + "bob_roll" "1.2" + + // Bob_Zoomed + "bob_cycle_time_zoomed" "0.4" + "bob_vert_dist_zoomed" "0.01" + "bob_horz_dist_zoomed" "0.01" + "bob_max_speed_zoomed" "150" + //"bob_pitch_zoomed" "0.002" + //"bob_yaw_zoomed" "-.002" + //"bob_roll_zoomed" ".002" + + // Rumble + "fire_rumble" "rumble_pistol_heavy" + + // Sway + "sway_rotate_attach" "SWAY_ROTATE" + "sway_min_x" "-0.5" + "sway_min_y" "-0.5" + "sway_min_z" "-0.6" + "sway_max_x" "0.5" + "sway_max_y" "0.5" + "sway_max_z" "0.6" + "sway_min_pitch" "-3" + "sway_min_yaw" "-2.5" + "sway_min_roll" "-4" + "sway_max_pitch" "3" + "sway_max_yaw" "2.5" + "sway_max_roll" "4" + "sway_translate_gain" "2.5" + "sway_rotate_gain" "7" + "sway_move_forward_translate_x" "-0.1" + "sway_move_forward_translate_z" "-0.5" + "sway_move_back_translate_x" "0.2" + "sway_move_back_translate_z" "-0.2" + "sway_move_left_translate_y" "-1" + "sway_move_left_translate_z" "-0.5" + "sway_move_left_rotate_roll" "-4" + "sway_move_right_translate_y" "1" + "sway_move_right_translate_z" "-0.5" + "sway_move_right_rotate_roll" "4" + "sway_move_up_translate_z" "-1" + "sway_move_down_translate_z" "1" + "sway_turn_left_rotate_yaw" "-2.5" + "sway_turn_right_rotate_yaw" "2.5" + + "sway_turn_left_translate_y" ".5" + "sway_turn_right_translate_y" "-.5" + "sway_turn_up_translate_z" ".2" + "sway_turn_down_translate_z" "-.2" + "sway_turn_up_translate_x" ".1" + "sway_turn_down_translate_x" "-.1" + + "sway_turn_left_rotate_roll" "4" + "sway_turn_right_rotate_roll" "-4" + "sway_turn_up_rotate_pitch" "3" + "sway_turn_down_rotate_pitch" "-3" + "sway_turn_up_rotate_roll" "-0.8" + "sway_turn_down_rotate_roll" "0.8" + + // Zoomed Sway + "sway_rotate_attach_zoomed" "SWAY_ROTATE_ZOOMED" + "sway_rotate_attach_blend_time_zoomed" "0.2" + "sway_rotate_gain_zoomed" "5" + + "sway_min_yaw_zoomed" "-0.04" + "sway_max_yaw_zoomed" "0.04" + "sway_turn_left_rotate_yaw_zoomed" "-0.085" + "sway_turn_right_rotate_yaw_zoomed" "0.085" + + "sway_min_roll_zoomed" "-1" + "sway_max_roll_zoomed" "1" + "sway_turn_left_rotate_roll_zoomed" "-1" + "sway_turn_right_rotate_roll_zoomed" "1" + + "sway_move_right_rotate_roll_zoomed" "0.2" + "sway_move_left_rotate_roll_zoomed" "-0.2" + + "sway_min_pitch_zoomed" "-0.03" + "sway_max_pitch_zoomed" "0.04" + "sway_turn_up_rotate_pitch_zoomed" "0.07" + "sway_turn_down_rotate_pitch_zoomed" "-0.07" + + // Spread + "spread_stand_hip" "0" + "spread_stand_hip_run" "0" + "spread_stand_hip_sprint" "0" + "spread_crouch_hip" "0" + "spread_air_hip" "0" + "spread_stand_ads" "0" //"0.15" + "spread_crouch_ads" "0" //"0.1" + "spread_air_ads" "0" //"0.25" + + "spread_kick_on_fire_stand_hip" "0" + "spread_kick_on_fire_crouch_hip" "0" + "spread_kick_on_fire_air_hip" "0" + "spread_kick_on_fire_stand_ads" "0" + "spread_kick_on_fire_crouch_ads" "0" + "spread_kick_on_fire_air_ads" "0" + + "spread_max_kick_stand_hip" "0" + "spread_max_kick_crouch_hip" "0" + "spread_max_kick_air_hip" "0" + "spread_max_kick_stand_ads" "0" + "spread_max_kick_crouch_ads" "0" + "spread_max_kick_air_ads" "0" + + "spread_decay_rate" "11.0" + "spread_decay_delay" ".21" + + // WeaponED Unhandled Key/Values and custom script Key/Values + "sprintcycle_time" "0.55" + "deployfirst_time" "1.25" + "activitymodifier" "pistol" + "holster_type" "pistol" + + // Bodygroups: + "bodygroup1_name" "suppressor_cyl_sm" + "bodygroup1_set" "0" + "bodygroup2_name" "suppressor_sq_sm" + "bodygroup2_set" "0" + "bodygroup3_name" "sight_cqh" + "bodygroup3_set" "0" + "bodygroup4_name" "sight_acgs" + "bodygroup4_set" "0" + "bodygroup5_name" "sight_cro" + "bodygroup5_set" "0" + "bodygroup6_name" "proscreen" + "bodygroup6_set" "0" + + + "clip_bodygroup" "b3wing_magazine" + "clip_bodygroup_index_shown" "0" + "clip_bodygroup_index_hidden" "1" + "clip_bodygroup_show_for_milestone_0" "1" + "clip_bodygroup_show_for_milestone_1" "0" + "clip_bodygroup_show_for_milestone_2" "1" + "clip_bodygroup_show_for_milestone_3" "1" + + Mods + { + one_in_the_chamber + { + damage_near_value "9999" + damage_far_value "9999" + damage_very_far_value "9999" + } + sns + { + damage_near_value "9999" + damage_far_value "9999" + damage_very_far_value "9999" + ammo_clip_size "1" + reload_time "*0.5" + reload_time_late1 "*0.5" + reloadempty_time "*0.5" + reloadempty_time_late1 "*0.5" + bolt_bounce_frac "0.7" + projectile_damage_reduction_per_bounce "0.0" + projectile_damages_owner "0" + projectile_ricochet_max_count "3" + ads_move_speed_scale "1" + } + iron_sights + { + } + extended_ammo + { + "ammo_stockpile_max" "160" + "ammo_clip_size" "8" + "ammo_default_total" "160" + } + silencer //HACK JFS: Doesn't get applied on amped weapons. See bug 170460 + { + "silenced" "1" + "fire_sound_2_player_1p" "Weapon_Wingman_FireSuppressed_1P" + "fire_sound_2_player_3p" "Weapon_Wingman_FireSuppressed_3P" + "fire_sound_2_npc" "Weapon_Wingman_FireSuppressed_NPC" + "damage_near_value" "--10" + "damage_far_value" "--10" + "damage_very_far_value" "--10" + "bodygroup2_set" "1" + + //"rumble" "4" + "tracer_effect" "P_wpn_tracer_pistol" + "minimap_reveal_distance" "1" + + "fx_muzzle_flash_view" "wpn_muzzleflash_pistol_sup_FP" + "fx_muzzle_flash_world" "wpn_muzzleflash_pistol_sup" + "fx_muzzle_flash_attach" "muzzle_flash_suppressor_sq" + } + hcog + { + "bodygroup3_set" "1" + "bodygroup4_set" "0" + "bodygroup5_set" "0" + "viewmodel_offset_ads" "0 -6.7 -0.75" + "zoom_fov" "35" + "anim_alt_idleAttack" "1" + + "dof_zoom_nearDepthStart" "6.161" + "dof_zoom_nearDepthEnd" "9.204" + } + redline_sight + { + "bodygroup3_set" "0" + "bodygroup4_set" "1" + "bodygroup5_set" "0" + "viewmodel_offset_ads" "0 -9 -0.78" + "dof_zoom_nearDepthStart" "4.491" + "dof_zoom_nearDepthEnd" "5.545" + } + threat_scope + { + "bodygroup3_set" "0" + "bodygroup4_set" "0" + "bodygroup5_set" "1" + "threat_scope_enabled" "1" + "threat_scope_bounds_tagname1" "SCR_TR_CRO" + "threat_scope_bounds_tagname2" "SCR_BL_CRO" + "viewmodel_offset_ads" "0 -9 -0.78" + "dof_zoom_nearDepthStart" "4.491" + "dof_zoom_nearDepthEnd" "5.545" + } + pro_screen + { + "ui8_enable" "1" + "bodygroup6_set" "1" + } + tactical_cdr_on_kill + { + + } + pas_fast_reload + { + "reload_time" "*0.7" + "reload_time_late1" "*0.7" + "reloadempty_time" "*0.7" + "reloadempty_time_late1" "*0.7" + } + pas_run_and_gun + { + "primary_fire_does_not_block_sprint" "1" + "crosshair_force_sprint_fade_disabled" "1" + } + pas_fast_ads + { + //Fast ADS + "zoom_time_in" "*0.5" + "zoom_time_out" "*0.6" + } + pas_fast_swap + { + //Fast Swap + "fast_swap_to" "1" + } + ricochet + { + "bolt_bounce_frac" "0.7" + "projectile_damage_reduction_per_bounce" "0.0" + "projectile_damages_owner" "0" + "projectile_ricochet_max_count" "2" + } + burn_mod_wingman_n + { + //FX + "tracer_effect" "P_wpn_tracer_BC" + "tracer_effect_first_person" "P_wpn_tracer_BC" + "fx_muzzle_flash_view" "wpn_muzzleflash_pistol_elec_FP" + "fx_muzzle_flash_world" "wpn_muzzleflash_pistol_elec" + "projectile_trail_effect_0" "weapon_kraber_projectile_burn" + "impact_effect_table" "titan_bullet_elec" + + "is_burn_mod" "1" + + "damage_near_value" "++20" + "damage_far_value" "++20" + "damage_very_far_value" "++20" + "damage_near_value_titanarmor" "450" + "damage_far_value_titanarmor" "400" + } + } + + "ui1_enable" "1" + UiData1 + { + "ui" "ui/b3wing_ammo_counter" + "mesh" "models/weapons/attachments/b3wing_rui_lower" + Args + { + vis player_zoomfrac + ammo weapon_ammo + clipSize weapon_clipSize + } + } + + "ui6_enable" "1" + "ui6_draw_cloaked" "1" + UiData6 + { + "ui" "ui/r97_reticle" + "mesh" "models/weapons/attachments/r97_rui_upper" + Args + { + vis player_zoomfrac + } + } + + "ui8_enable" "0" + UiData8 + { + "ui" "ui/pro_screen_panel" + "mesh" "models/weapons/attachments/pro_screen_rui_upper" + Args + { + proValue proscreen_int0 + proOwnedByPlayer proscreen_owner_is_player + } + } + + active_crosshair_count "1" + rui_crosshair_index "0" + + RUI_CrosshairData + { + DefaultArgs + { + adjustedSpread weapon_spread + adsFrac player_zoomFrac + isSprinting player_is_sprinting + isReloading weapon_is_reloading + teamColor crosshair_team_color + isAmped weapon_is_amped + crosshairMovementX crosshair_movement_x + crosshairMovementY crosshair_movement_y + } + + Crosshair_1 + { + "ui" "ui/crosshair_wingman_n" + "base_spread" "0" + Args + { + isFiring weapon_is_firing + } + } + } +} \ No newline at end of file diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_items.nut b/Northstar.CustomServers/mod/scripts/vscripts/_items.nut index 96623086c..f7bf6c731 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/_items.nut +++ b/Northstar.CustomServers/mod/scripts/vscripts/_items.nut @@ -10094,7 +10094,10 @@ void function InitUnlockAsEntitlement( string itemRef, string parentRef, int ent unlock = file.entitlementUnlocks[fullRef] } - unlock.entitlementIds.append( 1 ) // Using `1` here instead of the huge DLC check I did previously. Having the `1` seems to keep all paid cosmetics unlocked with progression enabled. + if( !NSIsVanilla() ) + unlock.entitlementIds.append( 1 ) // Using `1` here instead of the huge DLC check I did previously. Having the `1` seems to keep all paid cosmetics unlocked with progression enabled. + else + unlock.entitlementIds.append( entitlementId ) } array function GetEntitlementIds( string itemRef, string parentRef = "" ) diff --git a/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_lobby.gnut b/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_lobby.gnut index 9744bb64d..6af9995ec 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_lobby.gnut +++ b/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_lobby.gnut @@ -16,8 +16,8 @@ global struct CustomMatchSettingContainer struct { array modes = [ // default modes in vanilla - "tdm", "aitdm", + "tdm", "cp", "at", "ctf", diff --git a/Northstar.CustomServers/mod/scripts/vscripts/sh_progression.nut b/Northstar.CustomServers/mod/scripts/vscripts/sh_progression.nut index 3297643ec..c7d353a1e 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/sh_progression.nut +++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_progression.nut @@ -169,8 +169,14 @@ void function UpdateCachedLoadouts_Threaded() // below here is just making all the menu models update properly and such #if UI - uiGlobal.pilotSpawnLoadoutIndex = GetPersistentSpawnLoadoutIndex( GetUIPlayer(), "pilot" ) - uiGlobal.titanSpawnLoadoutIndex = GetPersistentSpawnLoadoutIndex( GetUIPlayer(), "titan" ) + + // ui player can sometimes be invalid + if( IsValid( GetUIPlayer() ) ) + { + uiGlobal.pilotSpawnLoadoutIndex = GetPersistentSpawnLoadoutIndex( GetUIPlayer(), "pilot" ) + uiGlobal.titanSpawnLoadoutIndex = GetPersistentSpawnLoadoutIndex( GetUIPlayer(), "titan" ) + } + #endif #if CLIENT diff --git a/Northstar.CustomServers/mod/scripts/vscripts/sh_remote_functions_mp_custom.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sh_remote_functions_mp_custom.gnut index c1e49e765..0777b353f 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/sh_remote_functions_mp_custom.gnut +++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_remote_functions_mp_custom.gnut @@ -1,6 +1,7 @@ untyped global function InitCustomNetworkVars global function AddCallback_OnRegisteringCustomNetworkVars +global function NSRemote_RegisterFunction struct { array onRegisteringCustomNetworkVarsCallbacks @@ -17,4 +18,10 @@ void function InitCustomNetworkVars() void function AddCallback_OnRegisteringCustomNetworkVars( void functionref() callback ) { file.onRegisteringCustomNetworkVarsCallbacks.append( callback ) +} + +void function NSRemote_RegisterFunction( string name ) +{ + if( !NSIsVanilla() || GetConVarBool( "ns_skip_vanilla_integrity_check" ) ) + Remote_RegisterFunction( name ); } \ No newline at end of file