From 45dcae630da457ee3951d6c4482530ddb8e7e297 Mon Sep 17 00:00:00 2001 From: Steven Howard Date: Thu, 11 Oct 2018 14:35:21 +0100 Subject: [PATCH] puching all hitsound configuration into one --- .../irresistible/cnr/features/damage_feed.pwn | 54 ++++++++++++++++++- gamemodes/irresistible/cnr/player.pwn | 3 +- gamemodes/sf-cnr.pwn | 46 +--------------- 3 files changed, 56 insertions(+), 47 deletions(-) diff --git a/gamemodes/irresistible/cnr/features/damage_feed.pwn b/gamemodes/irresistible/cnr/features/damage_feed.pwn index 3735e49..28900ad 100644 --- a/gamemodes/irresistible/cnr/features/damage_feed.pwn +++ b/gamemodes/irresistible/cnr/features/damage_feed.pwn @@ -32,6 +32,11 @@ enum E_DAMAGE_FEED E_WEAPON, E_TICK, }; +enum E_HITMARKER_SOUND +{ + E_NAME[ 10 ], E_SOUND_ID, +}; + static stock g_damageGiven [ MAX_PLAYERS ][ MAX_FEED_HEIGHT ][ E_DAMAGE_FEED ], g_damageTaken [ MAX_PLAYERS ][ MAX_FEED_HEIGHT ][ E_DAMAGE_FEED ], @@ -40,6 +45,12 @@ static stock PlayerText: g_damageFeedGivenTD [ MAX_PLAYERS ] = { PlayerText: INVALID_TEXT_DRAW, ... }, PlayerText: p_DamageTD [ MAX_PLAYERS ] = { PlayerText: INVALID_TEXT_DRAW, ... }, + g_HitmarkerSounds [ ][ E_HITMARKER_SOUND ] = + { + { "Bell Ding", 17802 }, { "Soft Beep", 5205 }, { "Low Blip", 1138 }, { "Med Blip", 1137 }, + { "High Blip", 1139 }, { "Bling", 5201 } + }, + p_damageFeedTimer [ MAX_PLAYERS ] = { -1, ... }, p_DamageTDTimer [ MAX_PLAYERS ] = { -1, ... }, bool: p_FeedActive [ MAX_PLAYERS char ], @@ -68,6 +79,24 @@ hook OnPlayerConnect( playerid ) return 1; } +hook OnPlayerDisconnect( playerid, reason ) +{ + p_HitmarkerSound{ playerid } = 0; + + return 1; +} + +hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) +{ + if ( dialogid == DIALOG_MODIFY_HITSOUND && response ) + { + p_HitmarkerSound{ playerid } = listitem; + SendClientMessageFormatted( playerid, -1, ""COL_GREY"[SERVER]"COL_WHITE" You have changed your hitmarker sound to "COL_GREY"%s"COL_WHITE".", g_HitmarkerSounds[ listitem ] [ E_NAME ] ); + ShowSoundsMenu( playerid ); + } + + return 1; +} /* ** Functions ** */ function OnHitmarkerHide( playerid ) return PlayerTextDrawHide( playerid, p_DamageTD[ playerid ] ); @@ -428,6 +457,20 @@ stock AddDamageFeedHit( playerid, issuerid, Float: amount, weaponid, type ) } } +stock ShowSoundsMenu( playerid ) +{ + static + szSounds[ 11 * sizeof( g_HitmarkerSounds ) ]; + + if ( szSounds[ 0 ] == '\0' ) + { + for( new i = 0; i < sizeof( g_HitmarkerSounds ); i++ ) + format( szSounds, sizeof( szSounds ), "%s%s\n", szSounds, g_HitmarkerSounds[ i ] [ E_NAME ] ); + } + ShowPlayerDialog( playerid, DIALOG_MODIFY_HITSOUND, DIALOG_STYLE_LIST, ""COL_WHITE"Hitmarker Sound", szSounds, "Select", "Close" ); +} + + /* ** Commands ** */ CMD:feed( playerid, params[ ] ) { @@ -435,4 +478,13 @@ CMD:feed( playerid, params[ ] ) SendServerMessage( playerid, "You have %s the damage feed.", p_FeedActive{ playerid } ? ( "toggled" ) : ( "un-toggled" ) ); return 1; -} \ No newline at end of file +} + +CMD:hitmarker( playerid, params[ ] ) +{ + if ( p_VIPLevel[ playerid ] < 1 ) + return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.sfcnr.com" ); + + ShowSoundsMenu( playerid ); + return 1; +} diff --git a/gamemodes/irresistible/cnr/player.pwn b/gamemodes/irresistible/cnr/player.pwn index 9eff290..16f75f6 100644 --- a/gamemodes/irresistible/cnr/player.pwn +++ b/gamemodes/irresistible/cnr/player.pwn @@ -234,7 +234,8 @@ new p_AimedAtPolice [ MAX_PLAYERS ], bool: p_PassiveModeDisabled [ MAX_PLAYERS char ], p_PassiveModeExpireTimer [ MAX_PLAYERS ] = { -1, ... }, - Text3D: p_PassiveModeLabel [ MAX_PLAYERS ] = { Text3D: INVALID_3DTEXT_ID } + Text3D: p_PassiveModeLabel [ MAX_PLAYERS ] = { Text3D: INVALID_3DTEXT_ID }, + p_HitmarkerSound [ MAX_PLAYERS char ] ; /* ** Getters And Setters** */ diff --git a/gamemodes/sf-cnr.pwn b/gamemodes/sf-cnr.pwn index 118c379..9765282 100644 --- a/gamemodes/sf-cnr.pwn +++ b/gamemodes/sf-cnr.pwn @@ -365,21 +365,6 @@ stock const } ; -/* ** Hitmarker ** */ -enum E_HITMARKER_SOUND -{ - E_NAME[ 10 ], E_SOUND_ID -}; - -new - g_HitmarkerSounds[ ] [ E_HITMARKER_SOUND ] = - { - { "Bell Ding", 17802 }, { "Soft Beep", 5205 }, { "Low Blip", 1138 }, { "Med Blip", 1137 }, - { "High Blip", 1139 }, { "Bling", 5201 } - }, - p_HitmarkerSound [ MAX_PLAYERS char ] -; - /* ** Race System ** */ #define MAX_RACES ( 32 ) @@ -2259,7 +2244,6 @@ public OnPlayerDisconnect( playerid, reason ) p_AddedEmail { playerid } = false; p_TicketTimestamp[ playerid ] = 0; p_ExtraAssetSlots{ playerid } = 0; - p_HitmarkerSound{ playerid } = 0; p_CasinoRewardsPoints[ playerid ] = 0.0; p_OwnedBusinesses[ playerid ] = 0; p_ExplosiveBullets[ playerid ] = 0; @@ -2955,7 +2939,7 @@ public OnPlayerTakePlayerDamage( playerid, issuerid, &Float: amount, weaponid, b amount *= 1.5; } - CallLocalFunction( "OnPlayerTakenDamage", "ddfdd", playerid, issuerid, amount, weapon, bodypart ); + CallLocalFunction( "OnPlayerTakenDamage", "ddfdd", playerid, issuerid, amount, weaponid, bodypart ); return 1; } #endif @@ -4421,15 +4405,6 @@ thread readplayervipnotes( playerid ) return SendError( playerid, "You do not have any V.I.P notes." ); } -CMD:hitmarker( playerid, params[ ] ) -{ - if ( p_VIPLevel[ playerid ] < 1 ) - return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.sfcnr.com" ); - - ShowSoundsMenu( playerid ); - return 1; -} - CMD:t( playerid, params[ ] ) { new @@ -12430,12 +12405,6 @@ public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) } } } - if ( dialogid == DIALOG_MODIFY_HITSOUND && response ) - { - p_HitmarkerSound{ playerid } = listitem; - SendClientMessageFormatted( playerid, -1, ""COL_GREY"[SERVER]"COL_WHITE" You have changed your hitmarker sound to "COL_GREY"%s"COL_WHITE".", g_HitmarkerSounds[ listitem ] [ E_NAME ] ); - ShowSoundsMenu( playerid ); - } if ( dialogid == DIALOG_VIP_NOTE && response ) { SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) is requesting help with their VIP asset(s). (/viewnotes)", ReturnPlayerName( playerid ), playerid ); @@ -16884,19 +16853,6 @@ thread OnListGangMembers( playerid, gangid, page ) return 1; } -stock ShowSoundsMenu( playerid ) -{ - static - szSounds[ 11 * sizeof( g_HitmarkerSounds ) ]; - - if ( szSounds[ 0 ] == '\0' ) - { - for( new i = 0; i < sizeof( g_HitmarkerSounds ); i++ ) - format( szSounds, sizeof( szSounds ), "%s%s\n", szSounds, g_HitmarkerSounds[ i ] [ E_NAME ] ); - } - ShowPlayerDialog( playerid, DIALOG_MODIFY_HITSOUND, DIALOG_STYLE_LIST, ""COL_WHITE"Hitmarker Sound", szSounds, "Select", "Close" ); -} - stock GivePlayerLeoWeapons( playerid ) { GivePlayerWeapon( playerid, 3, 1 ); GivePlayerWeapon( playerid, 22, 250 );