📄 gameweapons.h
字号:
#ifndef __GAMEWEAPONS_H__
#define __GAMEWEAPONS_H__
#include "Weapon.h"
#include "GameProjectiles.h"
#include "ClientLightningSFX.h"
#include "ClientLaserBeamSFX.h"
//*****************************************************************************//
class CBeretta : public CWeapon
{
public:
CBeretta() : CWeapon(WEAP_BERETTA)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
m_bMultiDamageBoost = DTRUE;
}
};
//*****************************************************************************//
#define BARREL_1 1
#define BARREL_2 2
//*****************************************************************************//
class CShotgun : public CWeapon
{
public:
CShotgun() : CWeapon(WEAP_SHOTGUN)
{
m_nOrigFireAnim = (DDWORD)-1;
m_dwCurBarrel = BARREL_1;
m_bPlayImpactSound = DTRUE;
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
}
DDWORD Fire();
private:
char* m_szShotgunShellFilename;
DDWORD m_nOrigFireAnim;
DDWORD m_dwCurBarrel;
DBOOL m_bPlayImpactSound;
};
//*****************************************************************************//
#ifdef _ADD_ON
class CCombatShotgun : public CWeapon
{
public:
CCombatShotgun() : CWeapon(WEAP_COMBATSHOTGUN)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
m_bMultiDamageBoost = DTRUE;
}
// Alt fire for Assault Rifle is a grenade launcher.
DBYTE GetAmmoType(DBOOL bAltFire = DFALSE)
{
if (!bAltFire) return m_nAmmoType;
else return AMMO_DIEBUGDIE;
}
private:
};
#endif
//*****************************************************************************//
class CSniperRifle : public CWeapon
{
public:
CSniperRifle() : CWeapon(WEAP_SNIPERRIFLE)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
}
};
//*****************************************************************************//
class CAssaultRifle : public CWeapon
{
public:
CAssaultRifle() : CWeapon(WEAP_ASSAULTRIFLE)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
m_bMultiDamageBoost = DTRUE;
}
// Alt fire for Assault Rifle is a grenade launcher.
DBYTE GetAmmoType(DBOOL bAltFire = DFALSE)
{
if (!bAltFire) return m_nAmmoType;
else return AMMO_DIEBUGDIE;
}
};
//*****************************************************************************//
class CSubMachineGun : public CWeapon
{
public:
CSubMachineGun() : CWeapon(WEAP_SUBMACHINEGUN)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
m_bMultiDamageBoost = DTRUE;
}
};
//*****************************************************************************//
class CFlareGun : public CWeapon
{
public:
CFlareGun() : CWeapon(WEAP_FLAREGUN)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
}
void FireSpread(Spread *spread, DDWORD shots, DFLOAT range, DBOOL bAltFire, DVector *rDir);
};
//*****************************************************************************//
class CHowitzer : public CWeapon
{
public:
CHowitzer() : CWeapon(WEAP_HOWITZER)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
}
};
//*****************************************************************************//
class CBugSpray : public CWeapon
{
public:
CBugSpray() : CWeapon(WEAP_BUGSPRAY)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
}
};
//*****************************************************************************//
class CNapalmCannon : public CWeapon
{
public:
CNapalmCannon() : CWeapon(WEAP_NAPALMCANNON)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
}
protected:
CProjectile* FireProjectile(DVector *vFire, DFLOAT dist, DBOOL bAltFire);
};
//*****************************************************************************//
class CMiniGun : public CWeapon
{
public:
CMiniGun() : CWeapon(WEAP_MINIGUN)
{
m_bEjectShell = DFALSE;
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
// m_bMultiDamageBoost = DTRUE;
}
protected:
// Stub function so minigun doesn't make impact sprites.
void AddImpact(DVector vPos, DVector vFire, DVector vNormal) {}
};
//*****************************************************************************//
#define VOODOO_WONKY_DIST 3000.0f
#define VOODOO_WONKY_FOV 0.65f
#define VOODOO_PRIMARY_FOV 0.9f
//*****************************************************************************//
class CVoodooDoll : public CWeapon
{
public:
CVoodooDoll() : CWeapon(WEAP_VOODOO)
{
m_nHitType = 0;
m_nHitFX = 0;
}
DBOOL FireVector(DVector *vFire, DFLOAT dist, DBOOL bTracer);
void SetSpecialData(DDWORD dwSpecial, DFLOAT fSpecial)
{ m_nHitFX = dwSpecial; }
private:
DBOOL SendDamageMsg(HOBJECT firedTo, DVector vPoint, int nNode, DVector *vFire, DFLOAT m_nDamage);
DBOOL DamageClosestInFOV();
DBOOL WonkyThemAll(DFLOAT fWonkyTime);
int m_nHitType;
int m_nHitFX;
};
//*****************************************************************************//
class COrb : public CWeapon
{
public:
COrb() : CWeapon(WEAP_ORB)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
};
private:
};
//*****************************************************************************//
#define DEATHRAY_BEAM_DIST 250.0f
#define DEATHRAY_DAMAGE_DELAY 0.5f
#define DEATHRAY_BEAM_FOV 0.9f
//*****************************************************************************//
class CDeathRay : public CWeapon
{
public:
CDeathRay();
~CDeathRay();
DDWORD Fire();
private:
void DamageObjectsInFOV(DFLOAT fRange, DFLOAT fFOV);
DFLOAT m_fLastDamageTime;
BaseClass *m_pRotModel;
};
//*****************************************************************************//
class CLifeLeech : public CWeapon
{
public:
CLifeLeech() : CWeapon(WEAP_LIFELEECH) {}
};
//*****************************************************************************//
#ifdef _ADD_ON
class CFlayer : public CWeapon
{
public:
CFlayer() : CWeapon(WEAP_FLAYER)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
}
CProjectile* FireProjectile(DVector *vFire, DFLOAT dist, DBOOL bAltFire);
};
#endif
//*****************************************************************************//
class CTeslaCannon : public CWeapon
{
public:
CTeslaCannon() : CWeapon(WEAP_TESLACANNON)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
}
void SetSpecialData(DDWORD dwSpecial, DFLOAT fSpecial)
{ numAltFires = dwSpecial; }
DDWORD Fire();
CProjectile* FireProjectile(DVector *vFire, DFLOAT dist, DBOOL bAltFire);
protected:
DDWORD numAltFires;
};
//*****************************************************************************//
class CSingularity : public CWeapon
{
public:
CSingularity() : CWeapon(WEAP_SINGULARITY)
{
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
}
CProjectile* FireProjectile(DVector *vFire, DFLOAT dist, DBOOL bAltFire);
private:
};
//*****************************************************************************//
class CMelee : public CWeapon
{
public:
CMelee() : CWeapon(WEAP_MELEE)
{
m_nDamageType = DAMAGE_TYPE_MELEE;
m_nFlags = FLAG_ENVIRONMENTMAP;
m_fChromeValue = 0.05f;
}
};
//*****************************************************************************//
// CREATURE WEAPONS
//*****************************************************************************//
class CShikariClaw : public CWeapon
{
public:
CShikariClaw() : CWeapon(WEAP_SHIKARI_CLAW) { m_nDamageType = DAMAGE_TYPE_MELEE; }
DDWORD Fire();
};
//*****************************************************************************//
class CShikariSpit : public CWeapon
{
public:
CShikariSpit() : CWeapon(WEAP_SHIKARI_SPIT) { m_nDamageType = DAMAGE_TYPE_ACID; };
DDWORD Fire();
CProjectile* FireProjectile(DVector *vFire, DFLOAT dist, DBOOL bAltFire);
};
//*****************************************************************************//
class CSoulCrowbar : public CWeapon
{
public:
CSoulCrowbar() : CWeapon(WEAP_SOUL_CROWBAR) { m_nDamageType = DAMAGE_TYPE_MELEE; }
DDWORD Fire();
};
//*****************************************************************************//
class CSoulAxe : public CWeapon
{
public:
CSoulAxe() : CWeapon(WEAP_SOUL_AXE) { m_nDamageType = DAMAGE_TYPE_MELEE; }
DDWORD Fire();
};
//*****************************************************************************//
class CSoulPipe : public CWeapon
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -