Releases: DrVrej/VJ-Base
Releases · DrVrej/VJ-Base
v2.12.5
New
- New AI: Allied SNPCs will now recognize that the player died
- Added a tutorial button for the health modifier tool
- Sub materials can now be applied to the SNPC's corpse (Must be set by the developer)
- Health Modifier tool's regeneration option is now defaulted to 5 seconds rather than 8
- Fixed female Rebel animation set not being able to cover-reload
Notable Developer Changes
- SNPC Bases:
- Added:
self.DeathCorpseSubMaterials, self:CustomOnChangeActivity(newAct)
OnAllyDeath
sound system is now also called when a allied player dies!
- Added:
- Weapon Base:
self:CustomOnPrimaryAttack_BeforeShoot()
can now take a return value, returning true will disable rest of the firing code
v2.12.4
New
- Added a new NPC-only weapon: Crowbar
- Added Melee Weapon System! (It's mostly made for SNPCs!)
- Added a melee weapon slot in the inventory for the human SNPCs (Current enemy is (very close and the NPC is out of ammo) OR (in regular melee attack distance) + must have more than 25% health)
- Added warning messages when using outdated version of Garry's Mod (Especially because of Chromium branch)
- Updated Weapon Translation System:
- Added default translations for hold types melee, melee2, and knife to the combine, metrocop, and rebel animation sets!
- Weapon translations can now accept tables!
General Changes & Improvements
- SSG-08 and RPG can now only be fired if the NPC isn't moving, human SNPCs that are using these weapons will now act more stationary
- SNPCs will no longer open doors that are locked or not supposed to be opened by NPCs (Applies to
func_door
andfunc_door_rotating
)
General Fixes
- Fixed humans being scared of their own grenade or an ally's grenade
- Fixed grenade and melee attacks sometimes cutting off by the weapon firing animation
- Fixed scared human SNPCs attempting to heal an ally while trying to run away
- Fixed humans SNPCs often cutting off their death animation
- Fixed anti-armor weapon changing values for the primary weapon
- Fixed dead players able to control an NPC via the properties menu (C menu)
- Fixed a console error on map startup
Notable Developer Changes
- SNPC Bases:
- Added (Human only):
self.WeaponInventory_Melee, self.WeaponInventory_MeleeList
- Added (Human only):
- Weapon Base:
- Added:
self:CustomOnPrimaryAttack_MeleeHit(argent), self.NPC_StandingOnly, self.IsMeleeWeapon, self.MeleeWeaponDistance, self.MeleeWeaponSound_Hit, self.MeleeWeaponSound_Miss, self.NPC_BeforeFireSound, self.NPC_BeforeFireSoundLevel, self.NPC_BeforeFireSoundPitch
- Added:
v2.12.3
v2.12.1
v2.12.0
New
- Added 2 new NPC weapons: Crossbow and SSG-08 (Sniper)
- Added a search bar in the VJ Base spawn menu, allows you to search for VJ Base SNPCs, weapons and entities at the same time
- Added the ability for developers to set custom icons for their spawn menu category in the VJ Base spawn menu
- Added a new icon for the spawn menu and the "DrVrej" menu
- Added a unique icon for the default category
- Added full playback rate support for SNPCs
- Added new high quality world models for the AK-47, M4A1 and RPG-7
- Added new firing sounds for the M4A1 and RPG-7
- New SNPC AI Changes:
- Added smooth turning to all attacks and animations!
- Added a line-of-sight system for the ranged creatures and humans with guns. If the enemy is unreachable, they will now attempt to find a position that they can fire their weapons (Doesn't work 100%!)
- Can now open more types of doors
- When running to cover to reload weapon, it will now stop if the enemy is close and will either back away or melee the enemy. Once the threat is out of its way, it will then attempt to reload again
- Humans will now attempt to move to cover if they are far away from the object that is covering them
- Humans will now try to not get out of the cover if their weapon sight is blocked by an ally, instead they will wait until an opportunity arises
- Humans are now better at establishing line of sight if the enemy is in an unreachable area
- Passive NPCs will now run away when an ally dies
- Humans that are running to cover will now attempt to stop moving if their cover location is blocked
- Creature SNPCs will now push props even if the enemy is no longer valid (Melee attack)
- Decreased the time that humans wait for the enemy to peak
- If it's already following another player, it will no longer stop following if another player presses USE on it, instead it will give a message stating that it's already following another player
- Will now wait at least a second before wandering after spawning
- Will now turn around if an unknown NPC or a player touches it (Ex: Neutral or player with no target)
- Turning and idle animation transition is now smoother and less cut offs
- Fixed if it flinches while doing an attack, the second attack after flinching breaks
- Fixed medics healing another ally right after they finish healing one
- Fixed sometimes animation breaking when a human picks up a grenade to throw back at the enemy
- Fixed Call for help sometimes failing
- Fixed not turning to look at the player when it's instructed to unfollow the player
- Fixed humans not running back to the enemy after reloading
- Fixed humans not backing away when an enemy comes close
- Fixed getting healed by a medic, they aren't stopping properly
- Fixed humans not playing firing gestures after the first shot in a burst-fire
- Fixed creatures not moving to ally's death location and instead running away
- Fixed sometimes resetting their enemy twice
- Revamped the NPC Guarding System:
- Will now save the guard location and move back to it once its current task is done!
- They will walk or run to the guard position depending on the distance
- A friendly player can reset their guarding position by making them follow. Once the desired location is reached, the player can make them unfollow which will set their new locaation
- Human SNPCs will now move much less when guarding
- When guarding a position, they will no longer move out of the player's way
- No longer call for help to SNPCs that are guarding an area
- Revamped the Weapon Translation System for SNPCs (Animation sets):
- Added unique RPG animations for rebel animations
- Added 50+ different idle, movement, and firing animations for rebel animations!
- Added RPG hold type support for metrocop and combine animations
- Added unique AR2 reloading animation for rebel animations
- Added AR2, shotgun, and crossbow hold type support for metrocop animations!
- Added pistol firing gestures and cover reloading for combine animations
- Added a new type of walk animation for the combine and metrocop animations
- Added support for developers to define their own sets
- Added some new cover animations for the rebel and combine sets
- Rebel animation set can now crouch fire AR2 hold type rifles
- Metrocop animations will now play walking crouch instead of not crouching at all
- Fixed weapon firing animations not changing instantly when the weapon changes
- Fixed combine animation set not playing the proper shotgun walking animation
- Updated NPC Controller:
- Smoother turning when firing a weapon
- Works much better for NPCs that move very fast
- Bullets for weapons now spawn at the same position as they would as if the NPC wasn't being controlled
- Bullet spread is now applied when a human SNPC is being controlled
- Bullet travel direction is now based off of the bullet spawn position rather then the player's aim vector
- It now resets the NPC much better after uncontroling
- Fixed custom idle animations not playing!
- Fixed when controlling a human SNPC, the walk-firing animation bugged out
- Fixed unable to move if a human SNPC is out of ammo
- Updated SNPC Dialogue system:
- Both the conversation initiator and the responder will now wait at least a second after the conversation has finished, this will allow for a new to initiate
- The conversation initiator will no longer walk off after finishing its sentence, it will now wait until its ally has fully responded
- Fixed the responder walking off randomly in mid conversation
- Fixed the responder initiating a conversation with an ally that is already conversing with it
- Fixed conversation initiator trying to talk to
- Fixed the responder talking back when it's dead
- Revamped the Melee Attack Bleeding System (Creature SNPCs):
- Now works in multiplayer!
- Will now attempt to reset once the player dies
- Can take multiple bleeding damages at the same time without bugging out, it will priorities the last attack the entity received
- A single NPC can now properly deal bleeding damage to unlimited number of enemies!
General Changes & Improvements
- RPG-7 now removes the rocket model until the weapon has been reloaded and NPCs can now fire it from much farther distance
- Changed M16A1 to M4A1
- In the VJ Base spawn menu, the name of the category now appears inside its own menu as well
- Major optimizations were done in the SNPC bases (Especially the human base) and the base in general will now perform more efficient
- Changed some of the messages that appear when a player tries to make an SNPC follow them
- Updated Russian translations
- Removed vjbase_spawnnpc command
General Fixes
- Fixed VJ Base tools not appearing in the spawn menu
- Fixed the properties menu (C menu) not always properly killing the NPC when slayed or gibbed
- Fixed barnacles creating 2 corpses when killing a VJ SNPC
- Fixed bunch of issues when using a duplicator on a VJ SNPC
- Fixed bunch of cases where SNPC sounds would overlap
- Fixed RPG SWEP using AR2 hold type instead of RPG hold type
- Fixed reset buttons trying to run non-existent commands
Notable Developer Changes
- Added VJ.AddCategoryInfo(acName, acFeatures) - Allows the ability to customize categories, such as setting a custom icon!
- Added self.User_CanRespawn for the NPC controller
- Renamed VJCorpseTbl to VJ_Corpses
- Removed VJSPAWN_NPC(), VJ_RunActivites, VJ_WalkActivites
- SNPC Bases:
- New: self:CustomOnEntityRelationshipCheck(argent, entisfri, entdist), self:PlaySoundSystem(Set, CustomSd, Type), self:SetState(state, time), self:GetState(), self:DoMedicCode(), self.AnimationPlaybackRate, self.TimeSinceEnemyAcquired
- New (Humans): self:CustomOnSetupWeaponHoldTypeAnims(htype), self:TranslateToWeaponAnim(actname), self:SetWeaponState(state, time), self:GetWeaponState(), self.Weapon_Inv_HasAntiArmor, self.Weapon_Inv_AntiArmorList, self.HasWeaponBackAway
- New (Creatures): self:CustomRangeAttackCode_BeforeProjectileSpawn(TheProjectile)
- VJ_ACT_PLAYACTIVITY has been revamped to be more optimized, now understands playback rate for animations, and added "PlayBackRateCalculated"
- self:CustomOnDoChangeWeapon() now has a third parameter: switchingWep, determines if this was a weapon switch (from inventory)
- self:CustomOnIdleDialogueAnswer() now has a new argument: argent (The entity that just talked to this NPC)
- self.AnimTbl_WeaponAttackFiringGesture is now part of the weapon translation system, which can be set up to translate for different hold types
- When a corpse spawns, it will now call the hook "CreateEntityRagdoll"
- Made all the static tables (Never changing) into local variables, this will provide a minor optimization
- If self.OnPlayerSightOnlyOnce is true then after running the code once, the base will set self.HasOnPlayerSight to false
- If self.AlertSounds_OnlyOnce is true then after running the code once, the base will set self.HasAlertSounds to false
- self.HasWorldShakeOnMove system is now controlled by the footstep system, this will also allow it to be used with model events
- self.CallForHelpAnimationPlayBackRate is now defaulted to 1 instead of 0.5
- Renamed self.RunFromEnemy_Distance to self.WeaponBackAway_Distance
- Deprecated Functions (Do not use!): self:VJ_HasActiveWeapon(), self:AlertSoundCode(), self:DeathSoundCode(), self:BeforeRangeAttackSoundCode(), self:RangeAttackSoundCode()
- Removed: self:VJ_GetEnemy(), self:CanDoWeaponAttack(), self:VJFriendlyCode(), self:CombineFriendlyCode(), self:ZombieFriendlyCode(), self:AntlionFriendlyCode(), self:XenFriendlyCode(), self:PlayerAllies(), self:VJ_ACT_TAKE_COVER(), self:NoCollide_CombineBall(), self:VJ_TranslateWeaponActivity(), self:DeathNotice_PlayerPoints(), self:VJ_DoSelectDifficulty...