Jump to content

I Need Help with My Screamer


scm1893

Recommended Posts

https://steamcommunity.com/sharedfiles/filedetails/?id=2066221089

 

My skill level is cut and paste. Borrowing heavily from Snufkin, Robeloto, Guppycur, JaxTeller718, KhaineGB and War3zuk, I modded the screamer.

 

Basic Screamer - transparent - flies - scream has AoE

Feral Screamer - add electric energy to appearance - add shock buff to melee attack

Radiated Screamer - add electrical projectile attack

 

However crude the code is, most of it works. She looks good. She flies. She screams and her AoE works but...

 

She won't target me unless I injure her. She never uses the projectile attack. And, when spawned from the heat map, her scream isn't calling any zombies.

 

Here's some (rough) code to look at. Any help or pointers to clean up the code will be appreciated.

 

==== entities =====

 

 

<entity_class name="zombieScreamer" extends="zombieTemplateMale">

<property name="Tags" value="entity,zombie,walker"/>

<property name="Mesh" value="Zombies/zombieStandardScreamerRagdoll"/>

<!-- change appearance -->

<property name="ReplaceMaterial0" value="particleeffects/models/materials/p_glass"/>

<!-- add ability to fly -->

<property name="Class" value="EntityVulture"/>

<property name="SoundRandom" value="Enemies/Base_Zombie_Female/zombiefemalescoutroam"/>

<property name="SoundAlert" value="Enemies/Scout_Zombie/zombiefemalescoutalert"/>

<property name="SoundAttack" value="Enemies/Base_Zombie_Female/zombiefemalescoutattack"/>

<property name="SoundHurt" value="Enemies/Base_Zombie_Female/zombiefemalescoutpain"/>

<property name="SoundDeath" value="Enemies/Base_Zombie_Female/zombiefemalescoutdeath"/>

<property name="SoundSense" value="Enemies/Base_Zombie_Female/zombiefemalescoutsense"/>

<property name="AvatarController" value="AvatarZombie01Controller"/>

<!-- alter hit box to compensate for insubstantiality of body -->

<property name="Mass" value="50"/>

<property name="ModelType" value="Standard"/>

<property name="SizeScale" value=".6"/>

<!-- remove walk type -->

<property name="RootMotion" value="true"/>

<property name="HasDeathAnim" value="true"/>

<property name="AIPathCostScale" value=".5, .6"/>

 

<!-- Gameplay -->

<property name="HandItem" value="meleeHandZombieScreamer"/>

<!-- change movement speed -->

<property name="MaxTurnSpeed" value="150"/>

<property name="MoveSpeed" value=".7"/>

<property name="MoveSpeedAggro" value="1, 1.5"/>

<property name="MoveSpeedPanic" value="1.5"/>

<property name="CanClimbLadders" value="false"/>

<property name="JumpMaxDistance" value="0"/>

<property name="ExperienceGain" value="2000"/>

<effect_group name="Base Effects">

<passive_effect name="HealthMax" operation="base_set" value="125"/>

<passive_effect name="HealthMax" operation="perc_set" value="1"/> <!-- Zombie HP scale -->

<!-- add AoE buff -->

<triggered_effect trigger="onSelfFirstSpawn" action="AddBuff" target="self" buff="buffBansheeScream"/>

</effect_group>

</entity_class>

 

<entity_class name="zombieScreamerFeral" extends="zombieScreamer">

<property name="Tags" value="entity,zombie,walker,feral"/>

 

<!-- Gameplay -->

<property name="DismemberMultiplierHead" value=".7"/><property name="DismemberMultiplierArms" value=".7"/><property name="DismemberMultiplierLegs" value=".7"/><!-- Feral -->

<property name="PainResistPerHit" value=".25"/><!-- Feral -->

<property name="MoveSpeedAggro" value="1.5, 1.75"/>

<!-- add shock buff to attack -->

<property name="HandItem" value="meleeHandZombieFeral"/>

 

<property name="ExperienceGain" value="2750"/> <!-- XP grunt feral -->

<property name="LootDropProb" value=".03"/> <!-- Feral -->

<effect_group name="Base Effects">

<passive_effect name="HealthMax" operation="base_set" value="190"/>

<passive_effect name="HealthMax" operation="perc_set" value="1"/> <!-- Zombie HP scale -->

<passive_effect name="EntityDamage" operation="perc_add" value="0"/> <!-- Feral damage -->

<!-- add electric energy to appearance -->

<triggered_effect trigger="onSelfFirstSpawn" action="AddBuff" target="self" buff="buffIsFeralScreamer"/>

</effect_group>

</entity_class>

 

<entity_class name="zombieScreamerRadiated" extends="zombieScreamerFeral">

<property name="Tags" value="entity,zombie,walker,feral,radiated"/>

 

<!-- Gameplay -->

<property name="DismemberMultiplierHead" value=".4"/><property name="DismemberMultiplierArms" value=".4"/><property name="DismemberMultiplierLegs" value=".4"/><!-- Radiated -->

<property name="PainResistPerHit" value=".5"/><!-- Radiated -->

<property name="MoveSpeedAggro" value="2, 2"/>

<!-- add projectile attack -->

<property name="HandItem" value="meleeHandZombieScreamerRadiated"/>

 

<property name="ExperienceGain" value="3500"/> <!-- XP grunt radiated -->

<property name="LootDropProb" value=".03"/> <!-- Radiated -->

<effect_group name="Base Effects">

<passive_effect name="HealthMax" operation="base_set" value="270"/>

<passive_effect name="HealthMax" operation="perc_set" value="1"/> <!-- Zombie HP scale -->

<passive_effect name="EntityDamage" operation="perc_add" value="0"/> <!-- Feral damage -->

<triggered_effect trigger="onOtherDamagedSelf" action="ModifyCVar" target="self" cvar="RadiatedRegenAmount" operation="set" value="2.5"/>

<triggered_effect trigger="onOtherDamagedSelf" action="AddBuff" target="self" buff="buffRadiatedRegen"/>

</effect_group>

</entity_class>

 

 

 

==== items =====

 

 

<!-- not intended to be a brawler - her forte is hindering the player until the other zombies arrive -->

<item name="meleeHandZombieScreamer">

<property name="Extends" value="meleeHandMaster"/>

<property name="CreativeMode" value="None"/>

<property name="Degradation" value="99999" param1="true"/>

<property class="Action0">

<property name="Range" value="0.85"/>

<property name="DamageEntity" value="8"/>

<property name="DamageBlock" value="5"/>

<property name="Buff" value="buffInjuryBleedingZombie,buffInfectionCatch ,buffInjuryStunned01"/>

<property name="Buff_chance" value=".2,.2,.25"/>

</property>

<effect_group name="meleeHandZombieScreamer" tiered="false">

<triggered_effect trigger="onSelfDamagedOther" action="ModifyCVar" target="other" cvar="infectionZombieHit" operation="set" value="30"/><!--InfectionRegular-->

</effect_group>

</item>

 

<item name="meleeHandZombieScreamerFeral">

<property name="Extends" value="meleeHandZombieScreamer"/>

<property name="CreativeMode" value="None"/>

<property name="Degradation" value="99999" param1="true"/>

<property class="Action0">

<property name="Range" value="0.9"/>

<property name="DamageEntity" value="12"/>

<property name="DamageBlock" value="6"/>

<!-- add shock buff - replaced buffStunned -->

<property name="Buff" value="buffInjuryBleedingZombie,buffInfectionCatch ,buffShocked"/>

<property name="Buff_chance" value=".3,.3,.65"/>

</property>

<effect_group name="meleeHandZombieScreamer" tiered="false">

<triggered_effect trigger="onSelfDamagedOther" action="ModifyCVar" target="other" cvar="infectionZombieHit" operation="set" value="30"/><!--InfectionRegular-->

</effect_group>

</item>

<item name="meleeHandZombieScreamerRadiated">

<property name="Extends" value="meleeHandZombieScreamerFeral"/>

<property name="CreativeMode" value="None"/>

<property class="Action0">

<property name="Delay" value=".7"/>

<!-- obsolete if rounds per minute exists -->

<property name="DamageEntity" value="18"/>

<property name="DamageBlock" value="8"/>

</property>

<!-- add projectile attack -->

<property class="Action1">

<property name="Class" value="Vomit"/>

<property name="Hitmask_override" value="Arrow"/>

<property name="Delay" value=".5"/>

<property name="Infinite_ammo" value="true"/>

<property name="Magazine_items" value="ammoProjectileScreamerRadiated"/>

<property name="Sound_warning" value=""/>

<property name="Sound_start" value=""/>

<property name="Sound_repeat" value=""/>

<property name="Sound_end" value=""/>

<property name="Sound_empty" value=""/>

<property name="Sound_reload" value=""/>

<property name="Buff" value="buffShocked"/></property>

<effect_group name="meleeHandZombieScreamer" tiered="false">

<passive_effect name="ModSlots" operation="base_set" value="0"/>

<!--<passive_effect name="AttacksPerMinute" operation="base_set" value="55"/> A16 .7, 50=1.2 -->

<passive_effect name="MagazineSize" operation="base_set" value="1"/>

<passive_effect name="BurstRoundCount" operation="base_set" value="6"/>

<passive_effect name="SpreadDegreesVertical" operation="base_set" value="6"/>

<passive_effect name="SpreadDegreesHorizontal" operation="base_set" value="15"/>

<passive_effect name="SpreadMultiplierIdle" operation="base_set" value="1"/>

<passive_effect name="DamageFalloffRange" operation="base_set" value="50"/>

<passive_effect name="MaxRange" operation="base_set" value="50"/>

</effect_group>

</item>

 

<item name="ammoProjectileScreamerRadiated">

<property name="Meshfile" value="particleeffects/p_electric_shock"/>

<property name="Material" value="Morganic"/>

<property name="CreativeMode" value="None"/>

<property class="Action1">

<property name="Class" value="Projectile"/>

<property name="DamageEntity" value="15"/>

<property name="DamageBlock" value="12"/>

<property name="Explosion.ParticleIndex" value="12"/>

<property name="Explosion.RadiusEntities" value="2"/> <!-- damage radius for entities -->

<property name="Velocity" value="13"/>

<property name="FlyTime" value="6"/>

<property name="LifeTime" value="8"/>

<property name="CollisionRadius" value=".5"/>

<property name="Buff" value="buffShocked"/>

</property>

<effect_group name="ammoProjectileScreamerRadiated" tiered="false">

<passive_effect name="DamageModifier" operation="perc_set" value="0" tags="earth"/>

<passive_effect name="DamageModifier" operation="perc_set" value="0.5" tags="stone"/>

<passive_effect name="DamageModifier" operation="perc_add" value="1.2" tags="metal"/>

<passive_effect name="BuffProcChance" operation="base_set" value=".20" tags="buffInfectionCatch"/>

<passive_effect name="BuffProcChance" operation="base_set" value="0.90" tags="buffShocked"/>

<triggered_effect trigger="onSelfDamagedOther" action="ModifyCVar" target="other" cvar="infectionZombieHit" operation="set" value="60"/><!--InfectionRadiated-->

</effect_group>

</item>

 

 

 

==== buffs =====

 

 

<buff name="buffIsFeralScreamer" name_key="buffRadiatedRegenDesc" description_key="buffRadiatedRegenDesc" tooltip_key="buffRadiatedRegenDesc" icon="ui_game_symbol_radiation" icon_color="255,0,0">

<stack_type value="ignore"/>

<duration value="2000000000"/>

<update_rate value="2.5"/>

 

<effect_group>

<passive_effect name="BuffResistance" operation="base_add" value="1" tags="buffShocked,buffInjuryShocked01,"/>

<triggered_effect trigger="onSelfBuffStart" action="AttachParticleEffectToEntity" particle="p_electric_shock" local_offset="0,0.75,0"/>

<triggered_effect trigger="onSelfBuffUpdate" action="AttachParticleEffectToEntity" particle="p_electric_shock" local_offset="0,0.75,0"/>

<triggered_effect trigger="onSelfDied" action="RemoveParticleEffectFromEntity" particle="p_electric_shock"/>

</effect_group>

</buff>

<buff name="buffBansheeScream" hidden="true">

<update_rate value="12"/>

<effect_group>

<triggered_effect trigger="onSelfBuffUpdate" action="PlaySound" sound="bansheebuff0"/>

<triggered_effect trigger="onSelfBuffUpdate" action="AddBuff" target="positionAOE" range="12" buff="buffBanshee"/>

</effect_group>

</buff>

<buff name="buffBanshee" hidden="true">

<stack_type value="replace"/>

<duration value="6"/>

<effect_group>

<passive_effect name="RunSpeed" operation="perc_subtract" value="0.8,.2" duration="0,4">

<requirement name="EntityTagCompare" tags="player"/>

</passive_effect>

<passive_effect name="WalkSpeed" operation="perc_subtract" value="0.8,.2" duration="0,4">

<requirement name="EntityTagCompare" tags="player"/>

</passive_effect>

<passive_effect name="CrouchSpeed" operation="perc_subtract" value="0.8,.2" duration="0,4">

<requirement name="EntityTagCompare" tags="player"/>

</passive_effect>

<passive_effect name="JumpStrength" operation="perc_subtract" value="0.8,.2" duration="0,4">

<requirement name="EntityTagCompare" tags="player"/>

</passive_effect>

<triggered_effect trigger="onSelfBuffStart" action="ModifyScreenEffect" intensity="2" fade="1" effect_name="Blur"/>

<triggered_effect trigger="onSelfBuffStart" action="ModifyScreenEffect" intensity=".5" fade="1" effect_name="Radiation" />

<triggered_effect trigger="onSelfBuffStart" action="ModifyScreenEffect" intensity="1" effect_name="Drunk" fade="1"/>

<triggered_effect trigger="onSelfBuffRemove" action="ModifyScreenEffect" intensity="0" fade="1" effect_name="Blur"/>

<triggered_effect trigger="onSelfBuffRemove" action="ModifyScreenEffect" intensity="0" fade="1" effect_name="Radiation" />

<triggered_effect trigger="onSelfBuffRemove" action="ModifyScreenEffect" intensity="0" effect_name="Drunk" fade="1"/>

<triggered_effect trigger="onSelfDied" action="ModifyScreenEffect" intensity="0" fade="1" effect_name="Blur"/>

<triggered_effect trigger="onSelfDied" action="ModifyScreenEffect" intensity="0" fade="1" effect_name="Radiation" />

<triggered_effect trigger="onSelfDied" action="ModifyScreenEffect" intensity="0" effect_name="Drunk" fade="1"/>

<triggered_effect trigger="onSelfBuffStart" action="PlaySound" sound="bansheebuff0" play_in_head="true">

<requirement name="EntityTagCompare" tags="player"/>

</triggered_effect>

<triggered_effect trigger="onSelfBuffStart" action="PlaySound" sound="bansheebuff1" play_in_head="true">

<requirement name="EntityTagCompare" tags="player"/>

</triggered_effect>

</effect_group>

</buff>

 

 

 

==== sounds =====

 

 

 

<SoundDataNode name="bansheescream">

<AudioSource name="Sounds/AudioSource_Screamer"/>

<AudioClip ClipName="Sounds/Enemies/Scout_Zombie/zombiefemalescoutalert3"/>

<Channel name="Mouth"/>

<Priority name="3"/>

<maxVoicesPerEntity value="10"/>

<LowestPitch name="0.95"/>

<HighestPitch name="1.05"/>

<LocalCrouchVolumeScale value="1.0"/>

<CrouchNoiseScale value="0.5"/>

<NoiseScale value="1"/>

<MaxVoices value="10"/>

<MaxRepeatRate value="0.01"/>

</SoundDataNode>

<SoundDataNode name="bansheebuff0">

<AudioSource name="Sounds/AudioSource_Notifications"/>

<AudioClip ClipName="Sounds/Enemies/Scout_Zombie/zombiefemalescoutalert2"/>

<LocalCrouchVolumeScale value="1.0"/>

<CrouchNoiseScale value="0.5"/>

<NoiseScale value="1"/>

<MaxVoices value="10"/>

<MaxRepeatRate value="0.01"/>

</SoundDataNode>

<SoundDataNode name="bansheebuff1">

<AudioSource name="Sounds/AudioSource_Notifications"/>

<AudioClip ClipName="Sounds/Ambient_Oneshots/a_horde_oneshot2"/>

<LocalCrouchVolumeScale value="1.0"/>

<CrouchNoiseScale value="0.5"/>

<NoiseScale value="1"/>

<MaxVoices value="10"/>

<MaxRepeatRate value="0.01"/>

</SoundDataNode>

 

 

Link to comment
Share on other sites

Hi TSBX,

I tried inserting AI tasks/targets from the vulture and other sources I knew were working. I tried eliminating all but the ones that targeted the player/entity but it didn't change.

Lol. It took me a couple of minutes to make the wife connection. I was thinking I'd left a comment about her somewhere in the notes.

Link to comment
Share on other sites

Your using the vulture class on the entity. The vulture class ignores AI tasks. If you want it to fly and attack on sight, use the hornet class.

 

The vulture and hornet classes send parameters to the unity controller embedded in the entity. Not sure what strangeness might happen with a flying class talking to the standard zombie controller.

 

You wont get the screaming generating a horde unless this new creature is in the scoutgroup of entitygroups.

Link to comment
Share on other sites

Thanks xyth,

I'll make the switch. Now, she behaves just like a vulture, flying around the map and screaming once in awhile.

 

The scout group and the entity have the same name, zombieScreamer. I only got her to spawn from the heat map once, for sure. I'll try again.

 

EDIT: hornet class made the difference for targeting. she attacks on site now. she still doesn't use the projectile attack. It looks like she positions herself for it, but nothing happens. I spawned 2 in from the heat map but their screams didn't summon any zombies. But, she is the pest I wanted her to be.

Link to comment
Share on other sites

Cool. The hornet class likely wont support vomiting, as its the parent class of the vulture class and I think that vomit ability is in the vulture class. Since your mixing classes you can expect some things not to work as expected.

Link to comment
Share on other sites

Yeah, one can't have everything. It doesn't look like her scream is calling zombies, anyway. I'm thinking I'll return the screamer to vanilla and change the name on this one. I'm gonna to try and spawn them from cemetery POIs.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...