From 1ebbadeeb82b2dc6a77626ec8e80a2fbe5549794 Mon Sep 17 00:00:00 2001 From: Steven Howard Date: Tue, 25 Sep 2018 16:17:34 +0100 Subject: [PATCH] adds /passivelist adds a textdraw quite like "admon on duty" and it's "Passive Mode" --- .../irresistible/cnr/player_settings.pwn | 22 +++++++++++++++++++ gamemodes/irresistible/cnr/textdraws.pwn | 9 ++++++++ gamemodes/sf-cnr.pwn | 6 ++++- 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/gamemodes/irresistible/cnr/player_settings.pwn b/gamemodes/irresistible/cnr/player_settings.pwn index ff2121d..ac855bc 100644 --- a/gamemodes/irresistible/cnr/player_settings.pwn +++ b/gamemodes/irresistible/cnr/player_settings.pwn @@ -160,6 +160,28 @@ CMD:passive( playerid, params[ ] ) return 1; } +CMD:passivelist( playerid, params[ ]) +{ + new + count = 0; + + szBigString[ 0 ] = '\0'; + + foreach ( new i : Player ) + { + if ( IsPlayerPassive( i ) ) + { + format( szBigString, sizeof( szBigString ), "%s%s(%d)\n", szBigString, ReturnPlayerName( i ), i ); + count ++; + } + } + + if ( count == 0 ) + return SendError( playerid, "There is currently no players in passive mode." ); + else + return ShowPlayerDialog(playerid, DIALOG_NULL, DIALOG_STYLE_LIST, ""COL_WHITE"Passive List", szBigString, "Close", "" ), 1; +} + /* ** Functions ** */ stock IsPlayerSettingToggled( playerid, settingid ) { return p_PlayerSettings[ playerid ] { settingid }; diff --git a/gamemodes/irresistible/cnr/textdraws.pwn b/gamemodes/irresistible/cnr/textdraws.pwn index b49e6e6..05f696c 100644 --- a/gamemodes/irresistible/cnr/textdraws.pwn +++ b/gamemodes/irresistible/cnr/textdraws.pwn @@ -25,6 +25,7 @@ new Text: g_AdminLogTD = Text: INVALID_TEXT_DRAW, Text: g_ProgressBoxTD = Text: INVALID_TEXT_DRAW, Text: g_AdminOnDutyTD = Text: INVALID_TEXT_DRAW, + Text: g_PassiveModeTD = Text: INVALID_TEXT_DRAW, Text: g_VehiclePreviewBoxTD = Text: INVALID_TEXT_DRAW, Text: g_VehiclePreviewTxtTD = Text: INVALID_TEXT_DRAW, Text: p_VehiclePreviewCloseTD = Text: INVALID_TEXT_DRAW, @@ -423,6 +424,14 @@ hook OnScriptInit( ) TextDrawSetOutline(g_AdminOnDutyTD, 1); TextDrawSetProportional(g_AdminOnDutyTD, 1); + g_PassiveModeTD = TextDrawCreate(555.000000, 66.500000, "PASSIVE MODE" ); + TextDrawBackgroundColor(g_PassiveModeTD, 255); + TextDrawFont(g_PassiveModeTD, 1); + TextDrawLetterSize(g_PassiveModeTD, 0.180000, 0.899999); + TextDrawColor(g_PassiveModeTD, -65281); + TextDrawSetOutline(g_PassiveModeTD, 1); + TextDrawSetProportional(g_PassiveModeTD, 1); + /* ** Player TextDraws ** */ for(new playerid; playerid != MAX_PLAYERS; playerid ++) { diff --git a/gamemodes/sf-cnr.pwn b/gamemodes/sf-cnr.pwn index 96560d0..5aca845 100644 --- a/gamemodes/sf-cnr.pwn +++ b/gamemodes/sf-cnr.pwn @@ -9389,7 +9389,7 @@ CMD:pm( playerid, params[ ] ) pID, msg[100] ; - if ( sscanf( params, "us[100]", pID, msg ) ) return SendUsage( playerid, "/pm [PLAYER_ID] [MESSAGE]" ); + if ( sscanf( params, "us[128]", pID, msg ) ) return SendUsage( playerid, "/pm [PLAYER_ID] [MESSAGE]" ); else if ( !IsPlayerConnected( pID ) || IsPlayerNPC( pID ) ) return SendError( playerid, "Invalid Player ID." ); else if ( pID == playerid ) return SendError( playerid, "You cannot pm yourself." ); else if ( p_BlockedPM[ pID ] [ playerid ] == true ) return SendError( playerid, "This person has blocked pm's coming from you." ); @@ -25703,6 +25703,7 @@ stock SetPlayerPassiveMode( playerid ) // place label if ( ! IsPlayerInPaintBall( playerid ) && GetPlayerClass( playerid ) != CLASS_POLICE ) { p_PassiveModeLabel[ playerid ] = CreateDynamic3DTextLabel( "Passive Mode", COLOR_GREEN, 0.0, 0.0, -0.6, 15.0, .attachedplayer = playerid ); + TextDrawShowForPlayer( playerid, g_PassiveModeTD ); } return 1; } @@ -25719,12 +25720,15 @@ stock ResetPlayerPassiveMode( playerid, bool: passive_disabled = false ) p_PassiveModeLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; p_PassiveModeExpireTimer[ playerid ] = -1; p_PassiveModeDisabled{ playerid } = passive_disabled; + TextDrawHideForPlayer( playerid, g_PassiveModeTD ); } function PassiveMode_Reset( playerid, time_left ) { if ( p_WantedLevel[ playerid ] > 0 || p_Class[ playerid ] != CLASS_CIVILIAN || -- time_left <= 0 ) { + TextDrawHideForPlayer( playerid, g_PassiveModeTD ); + ResetPlayerPassiveMode( playerid, .passive_disabled = true ); ShowPlayerHelpDialog( playerid, 2000, "Passive mode is ~r~disabled." ); }