D i 5 7 i n c T's Grenade Fire / Molotov / Napalm
Highly customizable fire grenade(molotov/napalm) with realistic player burning effects.
Runs on any GoldSource(Half-Life 1) engine game.
Supports Counter-Strike: Condition Zero bots.
Compatible with Zombie Plague Mod.
Short videos:
CVar list(they are self explanatory):
PHP:
// D7 Grenade Fire configuration file
// ----------------------------------
// 1 - default/implicita(HE)
// 2 - napalm(HE)
// 4 - molotov(HE)
// 8 - default/implicita(SG)
// 16 - napalm(SG)
// 32 - molotov(SG)
// 64 - default/implicita(FB)
// 128 - napalm(FB)
// 256 - molotov(FB)
// Grenade types available. Add up to use multiple.
// Example: default(HE)(1) + molotov(HE)(4) = 5, etc.
// Tipuri de grenazi disponibile. Adauga pentru a folosii mai multe.
// Exemplu: implicita(HE)(1) + molotov(HE)(4) = 5, etc.
D7GrenadeFireModes 32 //1 2 4
// Allow the default explosion of the grenade
// Permite explozia implicita a grenazii
D7GrenadeFireExplosionDefault 0 //ZP 0
// Delay after which the molotov explodes after thrown if it doesn't break in the meantime
// Durata dupa care molotovul explodeaza dupa ce este aruncat daca nu se sparge intre timp
D7GrenadeFireMolotovExplosionDelay 1.5 //CS & CZ HE default 1.5 | CSGO molotov & incendiary ~2.1
// Maximum angle of an object in degrees on which the molotov can break(0[flat] to 90[vertical] supported for now)
// Unghiul maxim al unui obiect in grade pe care molotovul se poate sparge(0[drept] pana la 90[vertical] suportat deocamdata)
D7GrenadeFireMolotovExplosionAngle 65.0 //65.0
// Maximum height from the ground at which the molotov fire field can ignite
// Inaltimea maxima de la pamant la care campul de foc al molotovului se poate aprinde
D7GrenadeFireMolotovExplosionHeight 72.0
// Napalm/Molotov grenade explosion radius
// Raza de explozie a grenazii Napalm/Molotov
D7GrenadeFireExplosionRadius 125.0 //ZP 240.0
// Player burn duration in seconds from grenade explosion radius
// Durata arderii jucatorului in secunde din cauza razei de explozie a grenazii
D7GrenadeFireBurnDuration 0 //ZP 10
// Amount of time the player needs to be exposed to the fire field in order to start burning(0 - instantly)
// Cat timp trebuie sa fie expus jucatorul campului de foc pentru a incepe sa arda(0 - instant)
D7GrenadeFireBurnExposureTime 0.0
// Player burn duration in seconds after being exposed
// Durata arderii jucatorului in secunde dupa ce a fost expus
D7GrenadeFireBurnDurationExposed 0
// Amount of damage a player takes every 0.2 seconds while burning
// Cantitatea de daune pe care le primeste un jucator la fiecare 0.2 secunde cat timp arde
D7GrenadeFireBurnDamage 6 //ZP 5 CSGO 32->64 | 40/s(8) | ~3.2s(no & full armor[31.25 dmg/s(use 6.2)]), ~3.0s(vest[33.33 dmg/s(use 6.6)]) dead
// a - ATTACK/ATAC
// b - JUMP/SARITURA
// c - DUCK/GHEMUIRE
// d - MOVE FORWARD/MERS IN FATA
// e - MOVE FORWARD/MERS IN SPATE
// f - USE/FOLOSIRE
// g - CANCEL/ANULARE
// h - TURN LEFT/INTOARCERE LA STANGA
// i - TURN RIGHT/INTOARCERE LA DREAPTA
// j - MOVE LEFT/MERS IN STANGA
// k - MOVE RIGHT/MERS IN DREAPTA
// l - ATTACK2/ATAC2
// m - WALK/MERS
// n - RELOAD/REINCARCARE
// o - ALT1
// p - SCOREBOARD/TABEL DE SCORURI
// Buttons the player won't be able to press while burning
// Butoane pe care jucatorul nu va fi capabil sa le apese cat timp arde
D7GrenadeFireBurnButtonsRemove ""
// Player velocity multiplier while burning
// Multiplicator velocitate jucator cat timp arde
D7GrenadeFireBurnVelocityMultiplier 1.0 //ZP 0.5
// Show fire HUD icon to player while burning
// Arata icon de foc in HUD jucatorului cat timp arde
D7GrenadeFireBurnHUDIcon 1 //ZP 1
// Burning visual effects interval per player
// Interval efecte vizuale ardere per jucator
D7GrenadeFireBurnEffectsIntervalMin 0.12
D7GrenadeFireBurnEffectsIntervalMax 0.1275
// Burning light radius multiplier. Use 0 or less to disable.
// Multiplicator de raza de iluminare al arderii. Foloseste 0 sau mai putin pentru a dezactiva.
D7GrenadeFireBurnRadiusMultiplierLightD 0.0 //0.0
D7GrenadeFireBurnRadiusMultiplierLightE 2.0 //3.0
// Death message to show when dying from burning. Leave empty("") to disable.
// First character determines if the kill is a headshot(1) or not(0). Rest is weapon name.
// Mesaj Death de aratat cand mori din cauza arderii. Lasa gol("") pentru a dezactiva.
// Primul caracter determina daca fragul este headshot(1) sau nu(0). Restul este numele armei.
D7GrenadeFireBurnMessageKill "0flashbang" //0grenade
// Molotov fire field life while in air or on the ground after explosion
// Durata de viata a campului de foc molotov in aer sau pe pamant dupa explozie
D7GrenadeFireFieldLife 7.0
// Molotov fire field life while in water after explosion
// Durata de viata a campului de foc molotov in apa dupa explozie
D7GrenadeFireFieldLifeWater 1.0
// Molotov fire field radius from the center
// Raza campului de foc molotov de la centru
D7GrenadeFireFieldRadius 125.0
// Number of molotov fire field sprites
// Numarul de sprite'uri ale campului de foc molotov
D7GrenadeFireFieldFlames 17
// LightD - lights up map and models(may cause fps drops for some players)
// LightE - lights up models only + dynamic shadows
// LightD - lumineaza harta si modelele(poate provoca scaderi de fps pentru unii jucatori)
// LightE - lumineaza doar modelele + umbre dinamice
// Fire field light radius multiplier. Use 0 or less to disable.
// Multiplicator de raza de iluminare al campului de foc. Foloseste 0 sau mai putin pentru a dezactiva.
D7GrenadeFireFieldRadiusMultiplierLightD 0.0 //3.0
D7GrenadeFireFieldRadiusMultiplierLightE 3.5 //0.0
// RRRGGGBBB color for molotov glow, trail and light(field, burn)
// Culoare RRRGGGBBB pentru molotov glow, trail si lumina(camp, ardere)
D7GrenadeFireColorMolotovAndField 255128000 //255128000
// RRRGGGBBB color for napalm glow, trail and explosion
// Culoare RRRGGGBBB pentru napalm glow, trail si explozie
D7GrenadeFireColorNapalm 255000000 //255000000
// Damage done by the fire field to an object or to a player
// Daune provocate de campul de foc unui obiect sau jucator
D7GrenadeFireFieldDamage 5 //3.229
// Fire field damage interval
// Interval de daune a campului de foc
D7GrenadeFireFieldDamageInterval 0.1
// Player velocity multiplier while inside a fire field
// Multiplicator velocitate jucator cat timp este in campul de foc
D7GrenadeFireFieldVelocityMultiplier 1.0
// 0 - ATTACK/ATAC
// 1 - JUMP/SARITURA
// 2 - DUCK/GHEMUIRE
// 3 - MOVE FORWARD/MERS IN FATA
// 4 - MOVE FORWARD/MERS IN SPATE
// 5 - USE/FOLOSIRE
// 6 - CANCEL/ANULARE
// 7 - TURN LEFT/INTOARCERE LA STANGA
// 8 - TURN RIGHT/INTOARCERE LA DREAPTA
// 9 - MOVE LEFT/MERS IN STANGA
// 10 - MOVE RIGHT/MERS IN DREAPTA
// 11 - ATTACK2/ATAC2
// 12 - WALK/MERS
// 13 - RELOAD/REINCARCARE
// 14 - ALT1
// 15 - SCOREBOARD/TABEL DE SCORURI
// Button to press for switching grenade types.
// Butonul de apasat pentru a schimba tipurile de grenada.
D7GrenadeFireButtonsSwitchType 13
// Contact ad showing interval in seconds. Set to 0 or less to disable.
// Interval afisare a reclamei de contact in secunde. Seteaza pe 0 sau mai putin pentru a dezactiva.
D7GrenadeFireAdInterval 300.0
D7GrenadeFire.txt
This plug-in is free for anyone that is running a server in our LastCS.RO community(hosted or not here). Contact us to have your server added.
For anyone else, a license can be bought based on server IP or DNS.
Extract everything from the zip file in the server's cstrike folder.
dorin2oo7 - For his images I used to style up my post.
NiHiLaNTh, schmurgel1983, KliPPy, meTaLiCroSS, Hedgehog Fog - For being true friends and always helping and teaching me new stuff.
Code:
T = needs testing
X = done
- = cancelled
[X] fix water burn duration
[X] separate body burning sounds from fire burning sounds
[X] p_ and w_ model support
[X] remove hardcoded stuff
[X] remove fun module and (g/s)et health with fakemeta num instead
[X] fix think task
[X] fix viewmodel animation bug
[X] make sure duration when already on fire is properly added for both modes
[X] fix multiple explosion(model set or ham think nade fault?)
[X] see why render isn't copying right from one entity to another
[X] fix fire field smoke puff always going off at the last exploded grenade's origin
[X] first fire field flame always in the middle
[X] ability to kill with fire
[X] fix no damage if it is higher or equal to the player health and kill not enabled
[X] custom death message for kill with fire
[X] fix zombies being able to switch between fire and molotov
[X] fix water entity removal(and re-check code)
[X] fix sounds not stopping after entity removal(SND_STOP needs same sound)
[X] add molotov burn out sounds
[X] separate sounds for water
[X] fix bottle bounce sound playing after it explodes
[X] fix molotov exploding on oblique surfaces
[X] fix molotov not exploding on map entities with id != 0
[X] see why the vertical origin difference is present with different explode cvar values and while in air
[X] fix molotov still bouncing if it explodes in air
[X] make molotov invisible manually if explode is 0
[X] try CHAN_BODY on nade fire emit sound
[X] optimize code in think function
[X] move up molotov explosion sprite by 50 units
[X] fix flames hanging in the air for a short period of time?
[X] fix break sound stopping on removal?
[X] add roll animation on throw
[X] separate configuration file
[X] separate resources for all grenade types
[X] separate molotov from player fire and smoke sprites
[X] cache array sizes
[X] update inc file with data
[X] see if set_pev viewmodel is needed on nade type change
[X] emit voice burn sound on burn start
[X] fix corrupt string on w models
[X] destroy string arrays after cells are done?
[X] custom bounce sounds(+others) for napalm too?
[X] don't remove the nade on end round think but rather just stop it from thinking
[X] optimize fwFmEmitSoundPre code
[X] remove MOVETYPE_TOSS set from touch and force instant think instead
[X] add molotov fire ignite sounds
[X] ELIGHT on fire field?
[X] cvar
[X] ELIGHT on player body while burning?
[X] cvar
[X] give DLIGHT a shot
[X] cvars
NOTE: its radius depends on the texture resolution it's lighting
[X] fix effects being done if player burning time is < 1
[X] fix flames being positioned in double the radius of the flame field(apparently?)
[X] fix them still being positioned in a larger radius than specified(apparently?)
[X] try MSG_PVS or MSG_PAS for the DLIGHT and ELIGHT since we're spamming them
[X] fix molotov still burning for a bit even if life is 0
[X] turn each flame into smoke with velocity at the end of the molotov life instead of sending a TE_SMOKE message
[X] manually remove all grenade entities on round start
[X] fix fire field flames being created multiple times
[X] don't do the while when creating the fire flames since we already position them on creation
[X] forcefully remove all the flames on round start
[X] rethink fwEventHltvRoundStart grenade removal code
[X] check if fwEventLogRoundEnd is triggering(it is)
[X] substract the vertical position added at the flame spawn from the radius in the fwEgThinkMolotovFlame
[X] for smoke too
[X] nodraw instead of invisible molotov
[X] optimize fwEgThinkMolotovFlame
[X] divide the light messages by 10 to have real values
[X] bot support for nade type
[X] client messages instead of flame entities
[X] if burn duration is 0, don't set the player on fire
[X] support teams with and without ZP
[X] random sound play + delay task for player burn voice and other future neccesities
[X] fix molotov fire ignite and burn sounds playing even if life is 0
[X] increase light radius to make it look more realistic
[X] non-zp depeandant
[X] position burning entity fire sprites at a random position depending on its size
[X] make sure fwEventTextMsgGameRestart triggers
[X] fix sound(s) not looping
[X] fix other default gameplay sounds stopping too when stopping the loop sounds(CHAN_STREAM solves it)
[-] store currently playing sound in a pev
[X] save the array id and position instead
[X] fix small time gap between stopping and re-emiting sound(sfile_get_duration returning values a bit wrong)
[X] adjust break angles to 0.722222(65 degrees) instead of 0.5(45 degrees)?
[-] optimize code(trace may not be needed since we have entity id from touch and we can directly get its angle)
[X] fix: 1.0 is horizontal, 0.0 is vertical. so it's 0.277778, not 0.722222 for 65 degrees
[X] make it possible for the nade to explode on vertical walls
[X] cvar?
[ ] support 180->360 values
[X] make the molotov flames move
[X] vertical velocity
[ ] make it optional
[ ] customizable
[X] add fade(in/out)
[ ] make it optional
[ ] add dependency on sprite frame number(so we can make it look more realistic with good sprites)
[ ] optional
[ ] vertical end position for flames
[T] reset frame number when moving the flame back to the bottom
[ ] calculate time for flame next think based on its velocity and vertical end position?
[-] change horizontal position on every think
[X] change horizontal position once they have reached the top of our fire field radius
[X] don't change the horizontal position of the middle flame
[ ] flame positioning only in think
[ ] all the above shit for player flames too
[ ] make sure the flames which are doing their last vertical velocity don't transfer to a new molotov entity with the same id as the previous one
[ ] drop the flames as low as they can be while in radius?
[ ] fix wrong start and end positions?
[ ] fix flames not finding an upper position
[X] fix flames and sound repeat task not removing
[-] entity valid check(temporary fix)
[X] fire field flame think
[T] fix only 10 frames per second on engine fire field flame think
[ ] try ham or fm think
[-] fix hp/dmg(problem from zp50 class survivor)
[-] cvar choose whether or not molotov should explode when touching a wall/ground
[-] fix molotov explode sound not playing(sound's fault)
[-] scale up molotov explosion sprite
[-] fix molotov explode sound playing for wrong nade
[-] fix molotov still bouncing after exploded when explode cvar is 1 without movetype change
[-] block last think(removal) of nade instead of creating a new entity when explode is 1
[-] see why molotov velocity is set to 0 when it explodes in air(probably engine fault)
[-] try to block next think in post instead of setting dmgtime to -1
[-] try different movetype rather than TOSS?
[-] remove xs and simply multiply velocity with 0.5 while on ground?
[-] invert attacker id with duration on fire set native(leave it like that for compatibility reasons)
[-] ZP 4.3 compatibility
[-] don't remove the nade and create another entity if explode is 0, but rather simply stop it from thinking
[-] only change g_iConstPevNadeTypeMolotov when ZP43 compatibility is on
[-] adjust all the sprites' properties
[-] don't manually emit sound in fwFmEmitSoundPre but rather try to modify sound string and return handled
[T] make natives and forwards
[T] add parameters to natives and forwards
[T] fire stop forward
[T] fire start post forward
[T] different message parameter values depending on nade type
[T] only randomize models on spawn/cure
[T] make sure we have all the info every time the burning stops
[T] make sure we don't get any run time errors when a burning player disconnects
[T] find the perfect color for the fire
[T] optimize ftFindEntityInSphere
[T] empty or commented resource line in ini file means don't use related functions
[X] disable zp 4 & 5 fire nades cvars to avoid problems
[T] float health in fwTaskPlayerBurn
[T] rethink the ftEntEmitSound, ftEntSetModel and other functions' parameters
[T] update default resources
[X] gar_flameoff1 not working and possibly some other sounds too(wrong folder specified)
[X] lv_bottle or winebottle as default world model for molotov
[T] check into the crash and client datagram overflow when over 125 visible entities are displayed
[ ] optional
[ ] optimize
[T] less gravity and velocity after molotov exploded
[X] slow the entity down on all velocity vectors or else it looks weird
[ ] customizable by cvar?
v0.9.7
[T] ability to switch to default grenade?
[T] enable/disable cvar for nade types
v1.0.0
[T] MSG_PAS instead of MSG_PVS for some cases to make sure the sprites don't pop out of nowhere
v1.0.1
[X] get_uc instead of pev_(old)buttons?
[T] make sure flame sprite messages don't transfer from a molotov to another(check entity rendermode)
[X] trace the flame position vertically so they properly drop to the ground
[T] decrease both water and normal life as long as they're > 0
[T] use fm disconnect post instead of client_disconnect
[T] reset nade mode on client putinserver
[X] molotov first flame sprite always plays instantly
v1.0.8
[X] more uniform flame sprite positioning
[T] optimize flame positioning code so we don't have it multiple times globally
[T] fix molotov flames being placed out of range?
[T] place molotov flames in a circle shape instead of square
v1.1.2
[X] weaponlist message with default resources for molotov
v1.1.3
[T] get rid of those annoying tag mismatch warnings if possible
[T] fix 32 bot slot msg_one or msg_one_unreliable error(avoid sending them to bots)
v1.1.5
[T] emessage death since we're blocking the original one
[T] center molotov flame always on the same level as the entity
[T] fix molotov not lighting owner on fire after he turns into a zombie
v1.1.8
[T] fix molotov hud remaining for zombies and reset it when turning back to human
[T] fix players being marked as humans on spawn when they already are a zombie
v1.2.0
[T] fix unknown command showing up when selecting the molotov
[T] modify the deathmsg instead of blocking the original and sending a fake one
v1.2.2
[X] add napalm explosion sprite
[X] specify if explosion is sprite or cylinder in names
[X] gibs for exploding napalm and molotov
[X] add damage message to the player if using health set
v1.2.6
[T] set custom w_ models in model set post instead of pre
[T] static -> new and opposite optimization(not all)
[T] don't send molotov flame message if the number of animation frames will take longer than the life left to play
[T] exception for the center flame
[T] additional checks and optimization in fwTaskRepeatSprite
[T] alive check in fwFmCmdStart
[T] remove attack2 button when switching nade types
[T] display information about switching between grenade types if enabled on pickup
[T] cache player alive status
[T] cover all disconnect cases for amxx 182 and lower
[T] cache connected player state
[T] auto execute own config file
[T] cache message ids globally instead of static inside a function
[T] correct velocity cvar check to be != 1.0 instead of > 0.0
[T] support for fire field to damage entities
[T] cvar damage while staying inside the fire field
[T] cvar slowdown while staying inside the fire field
[X] more random fire field flames (dis)appearance time
[T] chat commands to buy grenade
v1.4.5
[T] fix native set returning invalid player when attacker id is 0
v1.4.6
[X] fix config file not executing when zp is running
v1.4.7
[T] use reload button to switch between grenade types instead of attack2
v1.4.8
[X] cvar for nade type switch button
[X] multilang
[T] sound string length check in ftEntEmitSound
v1.5.1
[T] cvar ability to use all nades as default, napalm, molotov
[T] fix bots not switching weapon models along with nade type?
v2.0.0
[-] support for any mod death message?
[-] implement the rpg team change detection code(not needed since it's a cs/cz based plugin?)
[-] relocate the molotov flames that aren't in a (visible) hull when velocity is 0
[-] fix fire field destroying breakables which shouldn't be destroyed like bomb site crates, etc?
[T] cvar how long player should stay in fire field before starting to burn
[T] better slow system for field and burn which will also slow jumping
[T] minor variable usage optimization in ftPlayerBurn
[T] cvar different burn duration from exposure time
[X] switch nade type only if bpammo is > 0
v2.0.5
[X] do nade damage to team if friendly fire is 1?
[T] modify dmg message or block it on taking field damage so it won't be sent twice
[X] fix double ftFindEntityInSphere on molotov explosion(when forcing first molotov think)
[T] cvar button removal when burning
[T] rework exposure time system
[T] optimize ftEntityExplode
[T] optimize ftFindEntityInSphere
v2.1.2
[X] fix new fake molotov grenade entity not having proper pev_waterlevel
[X] fix chat commands not working
[T] cvar to find servers running the plugin
[T] remove the need for saving the original grenade player model
v2.1.6
[T] fix burn voice not removing on player spawn or humanize
[T] add check for connected players in fwTaskRepeatSound
v2.1.8
[T] add different ini properties for first flame
[-] szTempModel[0] = amx_load_setting_int_arr instead of ArraySize
[T] fix incompatibility with nademodes' print_center
[T] fix exposure burn not triggering if exposure cvar is 0
[T] make exploded molotov entity non solid to avoid other grenades bouncing off it and other issues
v2.2.2
[T] use CsTeams for g_iTeam
v2.2.3
[T] task ad chat
v2.2.4
[T] cvar for ad showing interval
v2.2.5
[X] smoke explosion to extinguish molotov fire
[X] better nade spawn detection
v2.2.7
[T] fix grenade type not being identified correctly on linux?
[T] fix grenade type not being identified correctly depending on amxx version
v2.2.9
[-] find an alternative damage type for field since DMG_BLAST can be partially blocked by armor
[X] set armor to 0 instead and block hud message?
[X] smoke reduce molotov health on radius intercept to 3 seconds
[T] smoke instant explode when inside molotov field
[X] slash independent chat commands
[X] find_sphere_class
[X] fix fwClCmdSay when using messagemode
[X] test molotov triggers idle smoke
[T] molotov instant extinguish when exploding in smoke field
v2.3.6
[T] fix molotov colision with custom smoke grenades causing crash or hang
v2.3.7
[T] support for zp nemesis and assassin
[T] support for zp zombie madness
v2.3.9
[T] only get player flags in burning task if g_iBurnDuration > 0 & stop burning zombie which buys madness
v2.4.0
[X] fix explosion rings
[X] fix ftPlayerBurn with iDuration 0
[X] implement new burn effect
v2.4.3
[X] light effects decay
[T] fix deathmsg showing twice (seems to be from exposure)
[X] fix burn durations
[T] full decay on last light effect to have a nice fade out
v2.4.7
[T] optional cs_ham_bots_api
v2.4.8
[X] add support for mod downloads, addon and hd folders for soundinfo
[T] fix GetGrenadeType PDATA_SAFE crash ?
[-] fix pdata wrong linux weapon offsets
v2.5.0
[X] use grenade type identify by model again instead of GetGrenadeType to prevent crash
[X] use g_iConstPevNadeType to identify smoke
v2.5.2
[X] cvar max height from ground explosion
v2.5.3
[T] improve burn sprite positioning and default values in ini
v2.5.4
[T] fix g_iBurnDuration not decreasing if ftPlayerBurn is blocked by forward
[T] g_iIDFwBurnStart now also reports iDuration2 instead of g_iBurnDuration and still triggers even if block occurs in g_iIDFwBurnStartPre
v2.5.6
[T] fix custom smoke grenades that use pev_flTimeStepSound being overwritten
v2.5.7
[ ] make everything customizable and limitless
[ ] sub-model support?
[ ] separate the player burning system from the grenades
[ ] fix emit_sound audio stop bugs(probably because of zone-based channels like stream)
[ ] rewards for doing fire damage
[ ] ability to choose between real damage or simple health set
[ ] add health and do damage anyway so it will be registered if keeping health set
[ ] make sure we don't send the damage message twice in this case
[ ] cvar how long player should stay in fire field before starting to take damage
[ ] block default nade damage to self if friendly fire is 0?
[ ] don't do any additional (molotov) explosion effects if explode is 1?
[ ] make the nade not hang for a bit on oblique walls
[ ] find a way to change the attacker id after burning duration from previous attacker ends
[ ] burn voice exception for nemesis
[ ] separate molotov explosion range
[ ] don't place the flames through walls horizontally
[ ] and vertically?
[ ] make the elight message not spam but instead be sent separately for newly connected players
[ ] angle velocity instead of animation on world model?
[ ] separate fire field radius width and height
[ ] separate explosion radius width and height
[ ] CVars for self damage
[ ] CVars for team damage?
[ ] fix molotov velocity sometimes not being correct
[ ] fix wrong colors being calculated in some cases
[ ] different player burn voice sounds for each team
[ ] only block fire or nades from working after round end if ZP is running AND kill is enabled
[ ] cache static one time getting function information globally instead
[ ] make sure flame sprite messages don't transfer from a molotov to another(use arrays and store their ids in iuser fields?)
[ ] ability to have a fully independent grenade without replacing any other
[ ] auto switch to the available nade mode when cvar changed
[ ] implement schmurgel's zp running detection
[ ] add option for TE_SMOKE molotov flames
[ ] have separate molotov ignite, burn, fade flames?
[ ] add molotov explosion cylinder
[ ] full check and optimization
[ ] fix weaponlist message showing clip and bp ammo when actively switching nade types
[ ] check if user is alive before sending weaponlist message?
[ ] support for custom weaponlist messages
[ ] any damage blocking(make sub-plugins?)
[ ] fix player not taking fire damage sometimes when it's set to 1(use integer health instead of float)
[ ] support for burn entities
[ ] fix multiple fire fields only dealing damage to a player once when damage interval cvar is > entity thinking frequency
[ ] fix incompatibility with nademodes
[ ] custom damage sound when taking damage from fire
[ ] different model for each grenade type
[ ] different sounds for each grenade type
[ ] different sprites for each grenade type
[ ] per-team access to grenade types?
[ ] fix not switching back to previous weapon after attacking and changing nade type
[-] read weapon animation instead and only allow switch if it is idle(0)
[ ] don't switch nade type if next attack > gametime
[ ] call Ham_Item_Deploy when actively switching nade types to add next attack delay
[ ] fix it not delaying attack possibility when switching to napalm and molotov
[ ] try Ham_Secondary_Attack
[ ] burn voice parameter for forwards and natives
[ ] auto calculate best distance between field flames
[ ] auto check and unrestrict grenades used for molotov?
[ ] remove the flame tasks from inside smoke field
[ ] don't do field damage to players inside smoke field
[ ] auto switch to nade type on chat commands
[ ] fix molotov life missing 1 think
[ ] fix already exploded molotov inside already exploded smoke
[ ] field life reduction on nearby smoke explode depending on distance
[ ] zp version detection in both plugin_init and plugin_cfg
[ ] check if damage to ents on napalm explode is normal
[ ] multiple default resources
[ ] move zp support to external
[ ] native and forwards name compatibility with zp50
[ ] add frost grenade code
[ ] make all sprites framerates multipliers in ini file
[ ] separate cfg file for zp?
[ ] combine pre and post forwards in a single one with post parameter
[ ] custom smoke grenades support or integrate in the plugin
[ ] rework zp detection
[ ] rework burn duration
[ ] fix p_ model with shield