Skip to content

v2.14.0

Compare
Choose a tag to compare
@DrVrej DrVrej released this 25 Jan 18:40
· 422 commits to master since this release

New

  • New AI Updates:
    • Can now hear other NPCs! They now react to sounds created by other NPCs! (Works the same way as it did with players)
    • Attacks are now seeded!
    • Attacks with multiple repetitions now support different animation speeds! (Playback rate)
    • Humans no longer back away if the enemy is defenseless - Ex: Civilian, passive animal (Tied to behavior VJ_BEHAVIOR_PASSIVE)
    • They no longer target Combine Turrets that are self-destructing
    • When humans are firing a secondary weapon attack, they now fire at the last hidden position
    • FIXED humans occasionally standing in place for 15-18 seconds after an interruption from their covered position!
    • Fixed when NPCs move back to open a door, they continue playing footstep sounds even though they are not moving
    • Fixed NPCs with leap attacks not properly aiming for the center of the enemy
    • Fixed humans not performing a diamond formation when moving to a hurt allies position
    • Fixed timer-based attacks not always properly stopping the attack when cut off by another animation
    • Fixed sometimes when an attack is cut off, the NPC is unable to preform that type of attack again
  • New Menu Changes:
    • Developer Menu Additions: print number of NPCs in the map, reload sounds, reload materials, reload textures, reload models, reload spawn menu
    • Redid the information menu, it now gives much better and important info and it's now properly organized
    • All clean up buttons are now controlled by a single command (vj_cleanup) and work much better in dedicated servers
    • Removed convars: vj_cleanup_all, vj_cleanup_snpcscorpse, vj_cleanup_snpcs, vj_cleanup_s_npcs, vj_cleanup_vjgibs, vj_cleanup_spawners, vj_cleanup_groundweapons, vj_cleanup_props, vj_cleanup_decals, vj_cleanup_playerammo, vj_cleanup_playerweapon

General Changes & Improvements

  • Updated muzzle flash particles for all weapons
  • Updated trail and explosion particles for RPG rocket, tank shell and grenade
  • Many optimizations were applied throughout the base and many old code has been cleaned up!
  • Number of Lua files has decreased by almost a dozen!
  • Updated and shortened the welcome message
  • VJ Test NPC is now admin only

General Fixes

  • Fixed weapons by default having secondary ammo, causing HUDs to think there is a secondary attack
  • Fixed tank NPCs missing a "running over" sound
  • Fixed a rare error appearing in multiplayer when a VJ NPC dies

Notable Developer Changes

  • New NPC State: VJ_STATE_ONLY_ANIMATION_NOATTACK
  • New NPC Weapon State: VJ_WEP_STATE_HOLSTERED
  • Removed the parameters stoplatestsound, sounddsp and added customFunc to VJ_CreateSound
  • Deglobalized NPC Functions (Now only exist for VJ NPCs): self:VJ_DecideSoundPitch(), self:DecideAttackTimer(), self:VJ_PlaySequence(), self:FaceCertainPosition(), self:FaceCertainEntity(), self:VJ_SetSchedule(), self:VJ_CheckAllFourSides(), self:VJ_ForwardIsHidingZone()
  • SNPC Bases:
    • Common functions are now inside a new folder lua/vj_base
    • New: self:GetSightDirection(), self.CurAttackSeed
    • New (Humans): self:CustomOnGrenadeAttack_ThrowVelocity(grEnt, grTargetPos), self:CustomOnGrenadeAttack_SpawnPosition(), self:CustomOn_PoseParameterLookingCode(pitch, yaw, roll)
    • New (Creatures): self.LeapAttackAngleRadius, self.AlreadyDoneLeapAttackJump
    • New client function: self:MatFootStepQCEvent(data)
    • Revamped self:CreateGibEntity() and self:CreateExtraDeathCorpse()
    • All AA move type functions have been renamed!
    • self:DoAddExtraAttackTimers(name, time, func) has been completely remade
    • All the *_BeforeStartTimer and *_AfterStartTimer attack functions now have a seed parameter
    • self.LeapAttackAnimationFaceEnemy can now accept 2 which sets it to face the enemy until it jumps and is now set by default!
    • self:CustomOnLeapAttackVelocityCode() can now accept true as a return to override the default velocity code
    • Renamed self:VJ_GetAllPoseParameters() to self:GetPoseParameters()
    • Renamed self:VJ_ReturnAngle() to self:GetFaceAngle()
    • Renamed self:DoFormation_Diamond() to self:DoGroupFormation(formType, ent, it, spacing)
    • Renamed self:CustomOnGrenadeAttack_BeforeThrowTime() to self:CustomOnGrenadeAttack_BeforeStartTimer()
    • Renamed self.UsesBoneAngle to self.DeathCorpseSetBoneAngles
    • Merged self.ExtraMeleeSoundPitch1 and self.ExtraMeleeSoundPitch2 to self.ExtraMeleeSoundPitch
    • Merged self.NextSoundTime_Alert1 and self.NextSoundTime_Alert2 to self.NextSoundTime_Alert
    • Merged self.NextSoundTime_Idle1 and self.NextSoundTime_Idle2 to self.NextSoundTime_Idle
    • Merged self.NextThrowGrenadeTime1 and self.NextThrowGrenadeTime2 to self.NextThrowGrenadeTime
    • Removed self.HasMeleeAttackDSPSound, just set self.MeleeAttackDSPSoundType to false to disable it
    • Removed: self:AlertSoundCode(), self:DeathSoundCode(), self:BeforeRangeAttackSoundCode(), self:VJ_HasActiveWeapon(), self.LeapAttackUseCustomVelocity, self.DoneLastHiddenZone_CanWander, self.GrenadeAttackVelUp1, self.GrenadeAttackVelUp2, self.GrenadeAttackVelForward1, self.GrenadeAttackVelForward2, self.GrenadeAttackVelRight1, self.GrenadeAttackVelRight2
  • Projectile Base:
    • Merged self.NextSoundTime_Idle1 and self.NextSoundTime_Idle2 to `self.NextSoundTime_Idle
    • Merged self.StartupSoundPitch1 and self.StartupSoundPitch2 to `self.StartupSoundPitch
    • Merged self.IdleSoundPitch1 and self.IdleSoundPitch2 to `self.IdleSoundPitch
    • Merged self.OnCollideSoundPitch1 and self.OnCollideSoundPitch2 to `self.OnCollideSoundPitch
    • Merged self.OnRemoveSoundPitch1 and self.OnRemoveSoundPitch2 to `self.OnRemoveSoundPitch
    • Renamed self.ShakeWorldOnDeathtDuration to self.ShakeWorldOnDeathDuration
  • Spawner Base:
    • Merged self.IdleSoundPitch1 and self.IdleSoundPitch2 to `self.IdleSoundPitch
    • Merged self.SpawnEntitySoundPitch1 and self.SpawnEntitySoundPitch2 to `self.SpawnEntitySoundPitch
    • Merged self.NextSoundTime_Idle1 and self.NextSoundTime_Idle2 to `self.NextSoundTime_Idle
  • Weapon Base:
    • Added self.NPC_SecondaryFireEnt
    • Merged self.DryFireSoundPitch1 and self.DryFireSoundPitch2 to self.DryFireSoundPitch
    • Merged self.Primary.DistantSoundPitch1 and self.Primary.DistantSoundPitch2 to self.Primary.DistantSoundPitch