// prevent double include #ifndef __BB_H__ #define __BB_H__ #include "pdata.h" #include "bb_const.h" void UpdateBBHud( long& target); inline float GetUserExp( long& target) { return GetPData(target, BB_PDATA_EXP, 100.0); } inline void SetUserExp( long& target, float& exp) { SetPData(target, BB_PDATA_EXP, exp); } inline float GetUserPoints( long& target) { return GetPData(target, BB_PDATA_POINT, 100.0); } inline void SetUserPoints( long& target, float& points) {SetPData(target, BB_PDATA_POINT, points, true);} inline long GetUserLevel(long& target) { return GetPData(target,BB_PDATA_LEVEL,100); } inline void SetUserLevel(long& target, long& level) { long i; float totalxp = 0.0; for(i=1;i<=level;i++) { totalxp += 150.0 + ((i-1) * 300.0); } SetUserExp( target, totalxp ); MESSAGE_BEGIN(MSG_ONE,120, NULL, MF_GetPlayerEdict( target) ); WRITE_COORD(0); WRITE_BYTE(level); WRITE_BYTE( GetUserPoints(target) ); MESSAGE_END(); MESSAGE_BEGIN(MSG_ALL,81, NULL, MF_GetPlayerEdict( target )); WRITE_BYTE( target ); WRITE_SHORT( MF_GetPlayerFrags( target ) ); WRITE_SHORT( MF_GetPlayerDeaths( target ) ); WRITE_BYTE(level); MESSAGE_END(); SetPData(target,BB_PDATA_LEVEL,level); SetPData(target,BB_PDATA_LEVEL - 1,level); } inline long GetUserSpeed(long& target) { return GetPData(target,BB_PDATA_SPEED,100); } inline void SetUserSpeed(long& target, long& speed) { SetPData(target,BB_PDATA_SPEED,speed, true);} inline long GetUserHitPoints(long& target) { return GetPData(target,BB_PDATA_HITPOINTS,100); } inline void SetUserHitPoints(long& target, long& hitpoints) { SetPData(target,BB_PDATA_HITPOINTS,hitpoints, true); } inline long GetUserSkill(long& target) { return GetPData(target,BB_PDATA_SKILL,100); } inline void SetUserSkill(long& target, long& skill ) { SetPData(target,BB_PDATA_SKILL,skill,true); } inline bool IsUserZombie(long& target) { return ( (MF_GetPlayerEdict( target ))->v.team == 2); } inline void SendProgressBar( long& target, char* message, float& time) { MESSAGE_BEGIN(MSG_ONE, 122, NULL, MF_GetPlayerEdict( target)); WRITE_STRING(message); WRITE_COORD(time); MESSAGE_END(); } inline void SendShowObjective( long& target, char* message) { MESSAGE_BEGIN(MSG_ONE, 122, NULL, MF_GetPlayerEdict( target)); WRITE_COORD(-1); WRITE_BYTE(144); WRITE_STRING(message); MESSAGE_END(); } inline void SendShowMessage( long& target, float& duration, char* message, char* message2) { MESSAGE_BEGIN(MSG_ONE, 122, NULL, MF_GetPlayerEdict( target)); WRITE_COORD(duration); WRITE_BYTE(32); WRITE_STRING(message); WRITE_STRING(message2); MESSAGE_END(); } void UpdateBBHud( long& target) { MESSAGE_BEGIN( MSG_ONE, 113, NULL, MF_GetPlayerEdict( target) ); WRITE_BYTE( GetUserHitPoints(target) ); WRITE_BYTE( GetUserSpeed(target) ); WRITE_BYTE( GetUserSkill(target) ); WRITE_BYTE( GetUserPoints(target) ); MESSAGE_END(); } #endif