[L4D2] Realism Flashlight 1.2.4 [Nov-19-2023]
3 Attachment(s)
About:
@Mr.Zero's plugin is having issues on my server, players can still sometimes turn on the flashlight when holding a *not allowed item*. I have long wanted to fix his plugin, and have been trying to understand the source code of the "[L4D2] Block Flashlight (1.2, 18/10-2011)" plugin, maybe the bug with this plugin is caused by something extra(Turn off the flashlight when on a ladder or ...). But this plugin is so old I actually started writing my own plugin after learning how to set the Flashlight state. I just need "can turn on flashlight when holding a firearm". And When I was testing on the server, some players asked me: Why not add a battery system to the flashlight? (the server's map lighting style is very dark, and the player's flashlight is disabled until this plugin is complete :D). So... This plugin can optionally activate the battery system. Also, the flashlight will flash at different frequencies depending on the battery level. Feature list: - The player can only turn on the flashlight while holding a gun. - Optionally turn on the battery system and set the flashing frequency of the lights. - Optionally limit survivor bots' flashlights and set how fast they drain battery power. - Optionally allows the player to recharge the battery, Otherwise, only replenished at the start of the campaign. This plugin is designed for 4 player realism, but maybe it will work on 8 player servers (without repeating characters, but not tested), on more than 8 player servers, this addon will not work properly. Credit: [email protected] ([L4D2] Block Flashlight (1.2, 18/10-2011)) First idea to learn how to control a flashlight light, something I've always wanted. --@Silvers ([L4D2] Swap Character (1.2) [21-Mar-2020]) Learn how to get a client's character and check them. --@ConnerRia. Fork. by Dragokas & KoMiKoZa ([L4D2] Saferoom Naps: Spawn Next Map With 50 HP) Learn how to use the "map_transition" event. --@All the players who helped me with the test Natives:
Spoiler
Console commands: Requires the "z" flag. Code:
sm_rfl_view [character] [Any] //View the flashlight status of the specified characte.
Spoiler
Changelog: Code:
1.2.4 (Nov-19-2023) Related plugins: Version 1.2.2: For the "Dynamic Light" and "glare" plugins, it is recommended to use my version, this will avoid the dynamic light created by these two plugins to appear when *flashlight is disabled* Dynamic Light glare [L4D & L4D2] Dynamic Light (1.10) [07-Feb-2022] I suggest @Toranks' version [L4D & L4D2] Dynamic Muzzle Flash [L4D & L4D2] Glare (2.14) [28-Aug-2022] [L4D & L4D2] Weather Control (1.15) [05-Jul-2022] Dynamic lights/muzzle flashes may cause map textures to flicker(After installing the "Weather Control" plugin). This problem has nothing to do with my plugin. Install: For versions prior to 1.2.4, please delete the "l4d2_RealismFlashlight" file and let the plugin regenerate it, or manually add new cvars. 1.Click "Get Plugins" and put the "l4d2_RealismFlashlight.smx" file in "../left4dead2/addons/sourcemod/plugins/". 2.Download the "l4d2_RealismFlashlight.cfg" file and put it in "../left4dead2/cfg/sourcemod/". You may need to tweak the "l4d2_RealismFlashlight.cfg" file. |
Re: [L4D2] Realism Flashligh 1.0 [25-Dec-2022]
Thanks for the release!
Suggestions: - "Require_L4D2" should be replaced with checking game type in "AskPluginLoad2" with "GetEngineVersion", you can view any of my L4D2 specific plugins for example. - You could replace using "OnGameFrame" with "OnPlayerRunCmd" and detect impulse 100 when the flashlight is turned on/off. Or to detect the state like "Dynamic Light" or "Glare" plugins. - You are using timers with "client" as the optional arg but you should be using the clients userid and verifying that in the callback otherwise you're likely to affect the wrong client. You could view any of my plugins that pass a client index to timers to see how it should be done. - "public" can be removed from all custom named callbacks, only required for those from SM or 3rd party plugins. - In this case you don't need strncmp for the compare, strcmp would cover it just fine. - I think the "SetEntData" and "GetEntData" stuff should be replaced with "GetEntProp" / "SetEntProp" for "m_fEffects" the Prop_Send is not 1 byte length, this is an error in the code. It's 10 bits according to the netprops dump. - The "round_start", "round_end", "map_transition" and "finale_win" hooks could be "EventHookMode_PostNoCopy", there is no need for "EventHookMode_Pre" this is not the reason for using those hook types. - You're constantly calling FindConVar("sv_minupdaterate"); when a client connects, there is no need for this, you're not retrieving the value but simply finding the cvar handle. This should only be done in "OnPluginStart". If you want the value, add a changehook to the cvar and retrieve it's value, you can store that in a variable to use instead of calling GetConVarInt everytime you need it. That would optimize the plugin a bunch. You could do the same for all the cvars to store their value in a variable. - I've only skimmed through the plugin, so I don't know exactly why you have g_iflashlightState set to 8. Looks like you're only accounting for 8 players with flashlights. There are servers with more players. I think g_iflashlightState should be set to MAXPLAYERS + 1 and you should account for all possible clients. Then you can dispense with storing the client index in that array. |
Re: [L4D2] Realism Flashligh 1.0 [25-Dec-2022]
Quote:
I have done a check on the client index before creating the timer. Maybe the timer doesn't work like I thought it would? - For "OnGameFrame" I didn't know that "OnPlayerRunCmd" could work like "OnGameFrame" when I wrote this plugin, until I looked at the source code of "Dynamic Light" plugin, I will try to rewrite this plugin in a later version.(Because I need some way to fix the compatibility of this plugin with other related plugins) - For "g_ifashlightState" I bind the relevant values to the player's character, not the client index/id, for servers with more players, maybe try binding their "Steam id".(I don't want the player to be able to reinitialize his battery in any way) Thanks for all your suggestions! |
[L4D2] Realism Flashlight 1.1.1 [26-Dec-2022]
2 Attachment(s)
Changes 1.1.1 [26-Dec-2022]:
PHP Code:
|
Re: [L4D2] Realism Flashligh 1.1 [26-Dec-2022]
PHP Code:
PHP Code:
|
Re: [L4D2] Realism Flashligh 1.1 [26-Dec-2022]
Silvers, fixed and reuploaded
|
Re: [L4D2] Realism Flashligh 1.1 [26-Dec-2022]
Maybe add a cvar to allow it to recharge over time when its not active?
|
Re: [L4D2] Realism Flashligh 1.1 [26-Dec-2022]
Quote:
|
Re: [L4D2] Realism Flashligh 1.1 [26-Dec-2022]
Quote:
|
Re: [L4D2] Realism Flashligh 1.1 [26-Dec-2022]
Quote:
|
All times are GMT -4. The time now is 13:56. |
Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.