L4D2 Vscript Helpers

From Valve Developer Community
Revision as of 10:32, 19 March 2022 by Eyal282 (talk | contribs) (Created page with "Sometimes an idea for a function is not immediately available in the List of VScript Functions. This function library was built to help you get more functions for your code....")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Sometimes an idea for a function is not immediately available in the List of VScript Functions.

This function library was built to help you get more functions for your code.

[code] /**

* Checks whether or not an entity is in the starting safe room
* 
* @param entity     Entity to check
* @return           true if entity is in start safe room, false otherwise.
* @notes			 This works for the safe area on the first chapter of a campaign.
*/

function IsEntityInStartSafeRoom(entity) { local origin = entity.GetOrigin();

local navArea = NavMesh.GetNearestNavArea(origin, 2048, true, true);

if(navArea != null) { // https://developer.valvesoftware.com/wiki/List_of_L4D_Series_Nav_Mesh_Attributes if(navArea.HasSpawnAttributes(2048) && GetFlowPercentForPosition(origin, false) <= 50.0) { return true; }

}

return false; }

/**

* Checks whether or not an entity is in the ending safe room
* 
* @param entity     Entity to check
* @return           true if entity is in end safe room, false otherwise.
* @notes			 It is unknown whether or not this works for rescue vehicles.
*/

function IsEntityInEndSafeRoom(entity) { local origin = entity.GetOrigin();

local navArea = NavMesh.GetNearestNavArea(origin, 2048, true, true);

if(navArea != null) { // https://developer.valvesoftware.com/wiki/List_of_L4D_Series_Nav_Mesh_Attributes if(navArea.HasSpawnAttributes(2048) && GetFlowPercentForPosition(origin, false) >= 50.0) { return true; }

}

return false; }


/**

* Checks whether or not an player owns a weapon by its classname
* 
* @param player     player to check
* @param classname  classname string to check
* @return           true if player has the weapon in inventory, false otherwise
*/

function DoesPlayerHaveWeapon(player, classname) { local ent = null;

while ( ent = Entities.FindByClassname( ent, classname ) ) { if(ent.GetOwnerEntity() == player) { return true; } }

return false; } [/code]