The_Great_Sephiroth Posted July 30, 2023 Share Posted July 30, 2023 I am working on a mod and I want a custom electrical/shocking buff to apply under certain situations. I copied the shock buff from the games Buffs.xml file to the mods Buffs.xml file. Below is the stock shocking buff. <buff name="buffShocked" description_key="buffShockedDesc" tooltip_key="buffShockedTooltip" icon="ui_game_symbol_electric_power" name_key="buffShockedName" icon_color="255,0,0"> <damage_type value="electrical"/> <stack_type value="duration"/> <duration value="4"/> <update_rate value="1"/> <display_value value="$buffShockedDisplay"/> <display_value_format value="time"/> <effect_group> <!-- Blinks the display --> <passive_effect name="BuffBlink" operation="base_set" value="2" duration="0,3" tags="buffShocked"/> <triggered_effect trigger="onSelfBuffStart" action="GetBuffDuration" reference="$shockDurationMax"/> <triggered_effect trigger="onSelfBuffStart" action="GetBuffDuration" reference="$buffShockedDisplay"/> <triggered_effect trigger="onSelfBuffStart" action="ModifyCVar" cvar="$buffShockedDisplay" operation="set" value="4"> <requirement name="CVarCompare" cvar="$buffShockedDisplay" operation="LTE" value="0"/> </triggered_effect> <triggered_effect trigger="onSelfBuffStack" action="GetBuffDuration" reference="$buffShockedDisplay"/> <passive_effect name="HealthChangeOT" operation="base_add" value="-6"/> <triggered_effect trigger="onSelfBuffUpdate" action="ModifyCVar" cvar="$buffShockedDisplay" operation="add" value="-1"/> <triggered_effect trigger="onSelfBuffRemove" action="ModifyCVar" cvar="$buffShockedDisplay" operation="set" value="0"/> <triggered_effect trigger="onSelfBuffStart" action="AttachParticleEffectToEntity" particle="p_electric_shock" parent_transform="Spine1" local_offset="0,-.2,0"/> <triggered_effect trigger="onSelfEnteredGame" action="AttachParticleEffectToEntity" particle="p_electric_shock" parent_transform="Spine1" local_offset="0,-.2,0"/> <triggered_effect trigger="onSelfDied" action="RemoveParticleEffectFromEntity" particle="p_electric_shock"/> <triggered_effect trigger="onSelfBuffRemove" action="RemoveParticleEffectFromEntity" particle="p_electric_shock"/> <triggered_effect trigger="onSelfBuffFinish" action="RemoveParticleEffectFromEntity" particle="p_electric_shock"/> <triggered_effect trigger="onSelfBuffRemove" action="RemoveParticleEffectFromEntity" particle="p_electric_shock"/> <triggered_effect trigger="onSelfBuffRemove" action="ModifyCVar" cvar="ETrapHit" operation="set" value="0"/> <triggered_effect trigger="onSelfLeaveGame" action="RemoveParticleEffectFromEntity" particle="p_electric_shock"/> <triggered_effect trigger="onSelfBuffStart" action="PlaySound" sound="electric_fence_impact"/> <triggered_effect trigger="onSelfBuffRemove" action="FadeOutSound" sound="electric_fence_impact"/> <triggered_effect trigger="onSelfLeaveGame" action="StopSound" sound="electric_fence_impact"/> </effect_group> <effect_group> <requirement name="CVarCompare" cvar="$shockDurationMax" operation="GTE" value="4"/> <passive_effect name="RunSpeed" operation="perc_subtract" value=".9,.05" duration="0,4"/> <passive_effect name="WalkSpeed" operation="perc_subtract" value=".9,.05" duration="0,4"/> <passive_effect name="CrouchSpeed" operation="perc_subtract" value=".9,.05" duration="0,4"/> <passive_effect name="JumpStrength" operation="perc_subtract" value=".9,.05" duration="0,4"/> </effect_group> <effect_group> <requirement name="CVarCompare" cvar="$shockDurationMax" operation="GTE" value="5"/> <passive_effect name="RunSpeed" operation="perc_subtract" value=".9,.05" duration="0,5"/> <passive_effect name="WalkSpeed" operation="perc_subtract" value=".9,.05" duration="0,5"/> <passive_effect name="CrouchSpeed" operation="perc_subtract" value=".9,.05" duration="0,5"/> <passive_effect name="JumpStrength" operation="perc_subtract" value=".9,.05" duration="0,5"/> </effect_group> <effect_group> <requirement name="CVarCompare" cvar="$shockDurationMax" operation="GTE" value="6"/> <passive_effect name="RunSpeed" operation="perc_subtract" value=".9,.05" duration="0,6"/> <passive_effect name="WalkSpeed" operation="perc_subtract" value=".9,.05" duration="0,6"/> <passive_effect name="CrouchSpeed" operation="perc_subtract" value=".9,.05" duration="0,6"/> <passive_effect name="JumpStrength" operation="perc_subtract" value=".9,.05" duration="0,6"/> </effect_group> <effect_group> <requirement name="CVarCompare" cvar="$shockDurationMax" operation="GTE" value="7"/> <passive_effect name="RunSpeed" operation="perc_subtract" value=".9,.05" duration="0,7"/> <passive_effect name="WalkSpeed" operation="perc_subtract" value=".9,.05" duration="0,7"/> <passive_effect name="CrouchSpeed" operation="perc_subtract" value=".9,.05" duration="0,7"/> <passive_effect name="JumpStrength" operation="perc_subtract" value=".9,.05" duration="0,7"/> </effect_group> <effect_group> <requirement name="CVarCompare" cvar="$shockDurationMax" operation="GTE" value="8"/> <passive_effect name="RunSpeed" operation="perc_subtract" value=".9,.05" duration="0,8"/> <passive_effect name="WalkSpeed" operation="perc_subtract" value=".9,.05" duration="0,8"/> <passive_effect name="CrouchSpeed" operation="perc_subtract" value=".9,.05" duration="0,8"/> <passive_effect name="JumpStrength" operation="perc_subtract" value=".9,.05" duration="0,8"/> </effect_group> <effect_group> <requirement name="CVarCompare" cvar="$shockDurationMax" operation="GTE" value="9"/> <passive_effect name="RunSpeed" operation="perc_subtract" value=".9,.05" duration="0,9"/> <passive_effect name="WalkSpeed" operation="perc_subtract" value=".9,.05" duration="0,9"/> <passive_effect name="CrouchSpeed" operation="perc_subtract" value=".9,.05" duration="0,9"/> <passive_effect name="JumpStrength" operation="perc_subtract" value=".9,.05" duration="0,9"/> </effect_group> </buff> I believe I can figure most of it out, but why so many effect groups? Is this for a situation where a player or zed sits on an electric fence and the damage becomes stronger the longer he/it sits there? What about these cvars? Are these variables in the game code itself that we are accessing or are these defined here in the XML and used in the XML? I can't seem to find any documentation on this and I would like to understand it better. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now