Raised This Month: $138 Target: $400
 34% 

[L4D & L4D2] Tank Rock Destroyer Announce [v1.0.1 | 08-June-2019]


Post New Thread Reply   
 
Thread Tools Display Modes
Author
Marttt
Senior Member
Join Date: Jan 2019
Plugin ID:
6540
Plugin Version:
1.0.1
Plugin Category:
Gameplay
Plugin Game:
Left 4 Dead
Plugin Dependencies:
    Servers with this Plugin:
     
    Plugin Description:
    Announces which player destroyed the rock thrown by the Tank.
    Old 04-26-2019 , 05:45   [L4D & L4D2] Tank Rock Destroyer Announce [v1.0.1 | 08-June-2019]
    Reply With Quote #1

    About

    I made this plugin due to a request from a friend who asked me to find out which player destroyed the Tank rock, so people won't self-credit anymore.

    Description

    This plugin will announce which player destroyed the Tank rock (final hit).

    Preview



    Cvars

    A configuration file named "l4d_tank_rock_destroyer_announce.cfg" will automatically be created for you upon the first run in the "\cfg\sourcemod\" folder.

    PHP Code:
    // Alternative display mode for the chat, in case the client has the chat HUD hidden.
    // Known values: 0 = OFF, 2 = HINT, 4 = CENTER, 8 = CONSOLE, 16 = INSTRUCTOR.
    // Add numbers greater than 0 for multiple options.
    // -
    // Default: "16"
    // Minimum: "0.000000"
    // Maximum: "31.000000"
    l4d_tank_rock_destroyer_announce_altdisplay_hiddenchathud "16"

    // Alternative display mode for the hint, in case the client has the hint HUD hidden.
    // Known values: 0 = OFF, 1 = CHAT, 4 = CENTER, 8 = CONSOLE, 16 = INSTRUCTOR.
    // Add numbers greater than 0 for multiple options.
    // -
    // Default: "4"
    // Minimum: "0.000000"
    // Maximum: "29.000000"
    l4d_tank_rock_destroyer_announce_altdisplay_hiddenhinthud "4"

    // Alternative display mode for the instructor hint (L4D2 only), in case the client has it disabled.
    // Known values: 0 = OFF, 1 = CHAT, 2 = HINT, 4 = CENTER, 8 = CONSOLE.
    // Add numbers greater than 0 for multiple options.
    // -
    // Default: "2"
    // Minimum: "0.000000"
    // Maximum: "31.000000"
    l4d_tank_rock_destroyer_announce_altdisplay_instructorhintdisabled "2"

    // Enables/Disables the plugin behavior on bots. 0 = OFF, 1 = ON.
    // -
    // Default: "1"
    // Minimum: "0.000000"
    // Maximum: "1.000000"
    l4d_tank_rock_destroyer_announce_bots "1"

    // Which kind of players should the message be applied to.
    // Known values: 0 = NONE, 1 = ATTACKER, 2 = SURVIVOR, 4 = INFECTED, 8 = SPECTATOR.
    // Add numbers greater than 0 for multiple options.
    // -
    // Default: "3"
    // Minimum: "0.000000"
    // Maximum: "15.000000"
    l4d_tank_rock_destroyer_announce_displayto "3"

    // Enables/Disables the plugin. 0 = Plugin OFF, 1 = Plugin ON.
    // -
    // Default: "1"
    // Minimum: "0.000000"
    // Maximum: "1.000000"
    l4d_tank_rock_destroyer_announce_enabled "1"

    // Turn off the plugin in these game modes, separate by commas (no spaces). Empty = none.
    // Known values: coop,realism,versus,survival,scavenge,teamversus,teamscavenge,
    // mutation[1-20],community[1-6],gunbrain,l4d1coop,l4d1vs,holdout,dash,shootzones.
    // -
    // Default: ""
    l4d_tank_rock_destroyer_announce_gamemodes_off ""

    // Turn on the plugin in these game modes, separate by commas (no spaces). Empty = all.
    // Known values: coop,realism,versus,survival,scavenge,teamversus,teamscavenge,
    // mutation[1-20],community[1-6],gunbrain,l4d1coop,l4d1vs,holdout,dash,shootzones.
    // -
    // Default: ""
    l4d_tank_rock_destroyer_announce_gamemodes_on ""

    // Turn on the plugin in these game modes.
    // Known values: 0 = all, 1 = coop, 2 = survival, 4 = versus, 8 = scavenge.
    // Add numbers greater than 0 for multiple options.
    // Example: "3", enables for "coop" (1) and "survival" (2).
    // -
    // Default: "0"
    // Minimum: "0.000000"
    // Maximum: "15.000000"
    l4d_tank_rock_destroyer_announce_gamemodes_toggle "0"

    // Displays a message to the client when a Tank rock is destroyed by a client.
    // Known values: 0 = OFF, 1 = CHAT, 2 = HINT, 4 = CENTER, 8 = CONSOLE, 16 = INSTRUCTOR.
    // Add numbers greater than 0 for multiple options.
    // -
    // Default: "1"
    // Minimum: "0.000000"
    // Maximum: "31.000000"
    l4d_tank_rock_destroyer_announce_msgdisplay "1"

    // Adds the plugin tag to the displayed messages.
    // Known values: 0 = OFF, 1 = CHAT, 2 = HINT, 4 = CENTER, 8 = CONSOLE, 16 = INSTRUCTOR.
    // Add numbers greater than 0 for multiple options.
    // -
    // Default: "0"
    // Minimum: "0.000000"
    // Maximum: "31.000000"
    l4d_tank_rock_destroyer_announce_tagdisplay "0"

    // Which teams should activate the message.
    // Known values: 0 = NONE, 1 = SURVIVOR, 2 = INFECTED, 4 = SPECTATOR.
    // Add numbers greater than 0 for multiple options.
    // -
    // Default: "1"
    // Minimum: "0.000000"
    // Maximum: "15.000000"
    l4d_tank_rock_destroyer_announce_team "1" 
    Admin Commands

    PHP Code:
    sm_l4d_tank_rock_destroyer_announce_print_cvars // Prints the plugin related cvars and their respective values to the console. (needs "z" flag). 
    Change Log

    Spoiler


    Current Translations
    • en - English
    • es - Spanish
    • pt - Brazilian Portuguese

    Notes
    • TRDA stands for Tank Rock Destroyer Announce.
    • Instructor Hints do not display when the client is dead.
    • There is no INSTRUCTOR value for L4D1 on cvars, because Instructor Hints entity does not exist on L4D1.
    • HINT mode blinks when the HUD is hidden with the HIDEHUD_ALL (4) or HIDEHUD_MISCSTATUS (64) flag.

    To Do
    • Create a configuration to customize the instructor hint.

    Thank you!

    Related Plugins

    Post Reply
    • Any feedbacks, bug reports, fixes, improvements, translations or suggestions for the plugin are welcome.

    Installation
    • Put the "l4d_tank_rock_destroyer_announce_phrases.txt" file in your "\addons\sourcemod\translations\" folder.
    • Put the "l4d_tank_rock_destroyer_announce.smx" file (click Get Plugin) in your "\addons\sourcemod\plugins\" folder.
    Attached Files
    File Type: txt l4d_tank_rock_destroyer_announce.phrases.txt (3.4 KB, 240 views)
    File Type: sp Get Plugin or Get Source (l4d_tank_rock_destroyer_announce.sp - 128 views - 40.1 KB)
    __________________

    Last edited by Marttt; 07-13-2019 at 22:37. Reason: v1.0.1
    Marttt is offline
    Lux
    Veteran Member
    Join Date: Jan 2015
    Location: Brexit
    Old 04-26-2019 , 06:50   Re: [L4D & L4D2] Tank Rock Destroyer Announce [v1.0.0 | 26-April-2019]
    Reply With Quote #2

    Should use Post hook incase another plugin messes with the damage.
    PHP Code:
    public void OnEntityCreated(int entity, const char[] classname)
    {
        if (
    StrEqual(classname"tank_rock"false))
        {
            
    SDKHook(entitySDKHook_OnTakeDamagePostOnTakeDamage);
        }

    Else good plugin nice config options
    __________________
    Lux is offline
    Marttt
    Senior Member
    Join Date: Jan 2019
    Old 04-29-2019 , 11:29   Re: [L4D & L4D2] Tank Rock Destroyer Announce [v1.0.0 | 26-April-2019]
    Reply With Quote #3

    Lux, thanks for the feedback.

    I tried to change the hook to SDKHook_OnTakeDamagePost, but it does not work well.

    Spoiler


    The "attacker" and "inflictor" parameters return an invalid value.

    If anyone has the problem mentioned above, let me know.
    __________________

    Last edited by Marttt; 04-29-2019 at 11:48.
    Marttt is offline
    Dragokas
    Veteran Member
    Join Date: Nov 2017
    Location: Ukraine
    Old 04-29-2019 , 12:35   Re: [L4D & L4D2] Tank Rock Destroyer Announce [v1.0.0 | 26-April-2019]
    Reply With Quote #4

    You probably could hook both Pre and Post.
    In "pre", save attacker and inflictor to a global array. In "post" extract from previously saved global.
    __________________
    Expert of CMD/VBS/VB6. Malware analyst.
    [My plugins] [My tools] [GitHub]
    Dragokas is offline
    Lux
    Veteran Member
    Join Date: Jan 2015
    Location: Brexit
    Old 04-29-2019 , 21:46   Re: [L4D & L4D2] Tank Rock Destroyer Announce [v1.0.0 | 26-April-2019]
    Reply With Quote #5

    Quote:
    Originally Posted by Marttt View Post
    Lux, thanks for the feedback.

    I tried to change the hook to SDKHook_OnTakeDamagePost, but it does not work well.

    Spoiler


    The "attacker" and "inflictor" parameters return an invalid value.

    If anyone has the problem mentioned above, let me know.
    An invalid attacker is normal can happen if the attackers change from prehook to post hook probs some plugin doing stuff maybe, but OnTakeDamagePost is usually reliable in all the use cases i'v done.
    __________________
    Lux is offline
    Reply


    Thread Tools
    Display Modes

    Posting Rules
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is On
    Smilies are On
    [IMG] code is On
    HTML code is Off

    Forum Jump


    All times are GMT -4. The time now is 01:25.


    Powered by vBulletin®
    Copyright ©2000 - 2019, vBulletin Solutions, Inc.
    Theme made by Freecode