CapabilitiesAdd: Difference between revisions
Jump to navigation
Jump to search
Thesmuggler (talk | contribs) (Created page with "== CapabilitiesAdd() == '''Tested on Source SDK 2013 Singleplayer''' CapabilitiesAdd allows the programmer to add capabilities to npc's if your npc's Spawn function you can...") |
Karl-police (talk | contribs) (Category) |
||
Line 92: | Line 92: | ||
#define bits_CAP_MELEE_ATTACK_GROUP (bits_CAP_WEAPON_MELEE_ATTACK1 | bits_CAP_WEAPON_MELEE_ATTACK2) | #define bits_CAP_MELEE_ATTACK_GROUP (bits_CAP_WEAPON_MELEE_ATTACK1 | bits_CAP_WEAPON_MELEE_ATTACK2) | ||
</pre> | </pre> | ||
[[Category:Scripting]] |
Revision as of 08:31, 14 April 2021
CapabilitiesAdd()
Tested on Source SDK 2013 Singleplayer
CapabilitiesAdd allows the programmer to add capabilities to npc's
if your npc's Spawn function you can add capabilities like so:
void CNPC_YourNPC::Spawn(void){ Precache(); // Runs your npc's Precache function SetModel(STRING(GetModelName())); // Sets the model SetHullType(HULL_HUMAN);// Sets body type SetHullSizeNormal(); // Sets body size SetSolid(SOLID_BBOX); // Set collision type AddSolidFlags(FSOLID_NOT_STANDABLE); SetMoveType(MOVETYPE_STEP); // Sets move type SetBloodColor(BLOOD_COLOR_RED); // Sets blood colour m_flFieldOfView = 0.5; // Unknown, sorry :( m_NPCState = NPC_STATE_NONE; // Sets NPC state // Remove all capabilities so we can add our own CapabilitiesClear(); // Add capabilities CapabilitiesAdd(bits_CAP_MOVE_GROUND); // NPC can walk/run CapabilitiesAdd(bits_CAP_MOVE_JUMP); // NPC can jump/leap CapabilitiesAdd(bits_CAP_MOVE_CLIMB); // NPC can climb ladders CapabilitiesAdd(bits_CAP_MOVE_SHOOT); // NPC can shoot weapon while moving CapabilitiesAdd(bits_CAP_USE); // NPC can open doors/push buttons/pull levers CapabilitiesAdd(bits_CAP_OPEN_DOORS); // NPC can open manual doors CapabilitiesAdd(bits_CAP_AUTO_DOORS); // NPC can trigger auto doors CapabilitiesAdd(bits_CAP_TURN_HEAD); // NPC can turn head, always bone controller 0 CapabilitiesAdd(bits_CAP_USE_WEAPONS); // NPC can use weapons (non-innate attacks) CapabilitiesAdd(bits_CAP_AIM_GUN); // NPC can use arms to aim gun, not just body CapabilitiesAdd(bits_CAP_DUCK); // NPC can cover and reload ducking CapabilitiesAdd(bits_CAP_WEAPON_MELEE_ATTACK1 || bits_CAP_WEAPON_MELEE_ATTACK2); // NPC can do weapon melee attack 1 & 2 CapabilitiesAdd(bits_CAP_INNATE_MELEE_ATTACK1 || bits_CAP_INNATE_MELEE_ATTACK2); // NPC can innate melee attack 1 & 2 CapabilitiesAdd(bits_CAP_WEAPON_RANGE_ATTACK1 || bits_CAP_WEAPON_RANGE_ATTACK2); // NPC can do weapon range attack 1 & 2 CapabilitiesAdd(bits_CAP_INNATE_RANGE_ATTACK1 || bits_CAP_INNATE_RANGE_ATTACK2); // NPC can innate range attack 1 & 2 SetMoveType(MOVETYPE_STEP); // gravity, special edge handling -- monsters use this NPCInit(); }
Here is a list of capabilities in Source SDK 2013
located in basecombatcharacter.h
enum Capability_t { bits_CAP_MOVE_GROUND = 0x00000001, // walk/run bits_CAP_MOVE_JUMP = 0x00000002, // jump/leap bits_CAP_MOVE_FLY = 0x00000004, // can fly, move all around bits_CAP_MOVE_CLIMB = 0x00000008, // climb ladders bits_CAP_MOVE_SWIM = 0x00000010, // navigate in water // UNDONE - not yet implemented bits_CAP_MOVE_CRAWL = 0x00000020, // crawl // UNDONE - not yet implemented bits_CAP_MOVE_SHOOT = 0x00000040, // tries to shoot weapon while moving bits_CAP_SKIP_NAV_GROUND_CHECK = 0x00000080, // optimization - skips ground tests while computing navigation bits_CAP_USE = 0x00000100, // open doors/push buttons/pull levers //bits_CAP_HEAR = 0x00000200, // can hear forced sounds bits_CAP_AUTO_DOORS = 0x00000400, // can trigger auto doors bits_CAP_OPEN_DOORS = 0x00000800, // can open manual doors bits_CAP_TURN_HEAD = 0x00001000, // can turn head, always bone controller 0 bits_CAP_WEAPON_RANGE_ATTACK1 = 0x00002000, // can do a weapon range attack 1 bits_CAP_WEAPON_RANGE_ATTACK2 = 0x00004000, // can do a weapon range attack 2 bits_CAP_WEAPON_MELEE_ATTACK1 = 0x00008000, // can do a weapon melee attack 1 bits_CAP_WEAPON_MELEE_ATTACK2 = 0x00010000, // can do a weapon melee attack 2 bits_CAP_INNATE_RANGE_ATTACK1 = 0x00020000, // can do a innate range attack 1 bits_CAP_INNATE_RANGE_ATTACK2 = 0x00040000, // can do a innate range attack 1 bits_CAP_INNATE_MELEE_ATTACK1 = 0x00080000, // can do a innate melee attack 1 bits_CAP_INNATE_MELEE_ATTACK2 = 0x00100000, // can do a innate melee attack 1 bits_CAP_USE_WEAPONS = 0x00200000, // can use weapons (non-innate attacks) //bits_CAP_STRAFE = 0x00400000, // strafe ( walk/run sideways) bits_CAP_ANIMATEDFACE = 0x00800000, // has animated eyes/face bits_CAP_USE_SHOT_REGULATOR = 0x01000000, // Uses the shot regulator for range attack1 bits_CAP_FRIENDLY_DMG_IMMUNE = 0x02000000, // don't take damage from npc's that are D_LI bits_CAP_SQUAD = 0x04000000, // can form squads bits_CAP_DUCK = 0x08000000, // cover and reload ducking bits_CAP_NO_HIT_PLAYER = 0x10000000, // don't hit players bits_CAP_AIM_GUN = 0x20000000, // Use arms to aim gun, not just body bits_CAP_NO_HIT_SQUADMATES = 0x40000000, // none bits_CAP_SIMPLE_RADIUS_DAMAGE = 0x80000000, // Do not use robust radius damage model on this character. }; #define bits_CAP_DOORS_GROUP (bits_CAP_AUTO_DOORS | bits_CAP_OPEN_DOORS) #define bits_CAP_RANGE_ATTACK_GROUP (bits_CAP_WEAPON_RANGE_ATTACK1 | bits_CAP_WEAPON_RANGE_ATTACK2) #define bits_CAP_MELEE_ATTACK_GROUP (bits_CAP_WEAPON_MELEE_ATTACK1 | bits_CAP_WEAPON_MELEE_ATTACK2)