fixed null weapon problems in get_user_astats

This commit is contained in:
Lukasz Wlasinksi 2004-09-12 18:00:53 +00:00
parent 1a2ef38588
commit 8589f0bcf5
5 changed files with 17 additions and 26 deletions

View File

@ -130,7 +130,7 @@ void RankSystem::clear(){
bool RankSystem::loadCalc(const char* filename, char* error) bool RankSystem::loadCalc(const char* filename, char* error)
{ {
if ((MF_LoadAmxScript(&calc.amx,&calc.code,filename,error,0)!=AMX_ERR_NONE)|| if ((MF_LoadAmxScript(&calc.amx,&calc.code,filename,error)!=AMX_ERR_NONE)||
(MF_AmxAllot(&calc.amx, 8 , &calc.amxAddr1, &calc.physAddr1)!=AMX_ERR_NONE)|| (MF_AmxAllot(&calc.amx, 8 , &calc.amxAddr1, &calc.physAddr1)!=AMX_ERR_NONE)||
(MF_AmxAllot(&calc.amx, 8 , &calc.amxAddr2, &calc.physAddr2)!=AMX_ERR_NONE)|| (MF_AmxAllot(&calc.amx, 8 , &calc.amxAddr2, &calc.physAddr2)!=AMX_ERR_NONE)||
(MF_AmxFindPublic(&calc.amx,"get_score",&calc.func)!=AMX_ERR_NONE)){ (MF_AmxFindPublic(&calc.amx,"get_score",&calc.func)!=AMX_ERR_NONE)){
@ -306,4 +306,3 @@ void RankSystem::saveRank( const char* filename )
fclose(bfp); fclose(bfp);
} }

View File

@ -120,4 +120,3 @@ public:
#endif #endif

View File

@ -26,7 +26,6 @@ bool rankBots;
int gmsgCurWeapon; int gmsgCurWeapon;
int gmsgDeathMsg; int gmsgDeathMsg;
int gmsgDamage; int gmsgDamage;
int gmsgDamageEnd;
int gmsgWeaponList; int gmsgWeaponList;
int gmsgResetHUD; int gmsgResetHUD;
int gmsgAmmoX; int gmsgAmmoX;
@ -57,7 +56,6 @@ struct sUserMsg {
} g_user_msg[] = { } g_user_msg[] = {
{ "CurWeapon" , &gmsgCurWeapon , Client_CurWeapon, false }, { "CurWeapon" , &gmsgCurWeapon , Client_CurWeapon, false },
{ "Damage" , &gmsgDamage,Client_Damage, false }, { "Damage" , &gmsgDamage,Client_Damage, false },
{ "Damage" , &gmsgDamageEnd, Client_Damage_End, true },
{ "WeaponList" , &gmsgWeaponList, Client_WeaponList, false }, { "WeaponList" , &gmsgWeaponList, Client_WeaponList, false },
{ "ResetHUD" , &gmsgResetHUD,Client_ResetHUD, true }, { "ResetHUD" , &gmsgResetHUD,Client_ResetHUD, true },
{ "AmmoX" , &gmsgAmmoX, Client_AmmoX , false }, { "AmmoX" , &gmsgAmmoX, Client_AmmoX , false },
@ -289,7 +287,7 @@ void OnMetaAttach() {
void OnAmxxAttach(){ void OnAmxxAttach(){
MF_AddNatives(stats_Natives); MF_AddNatives(stats_Natives);
const char* path = get_localinfo("csstats_score","addons/amxmodx/data/csstats.amxx"); const char* path = get_localinfo("csstats_score");
if ( path && *path ) if ( path && *path )
{ {
char error[128]; char error[128];
@ -299,7 +297,7 @@ void OnAmxxAttach(){
if ( !g_rank.begin() ) if ( !g_rank.begin() )
{ {
g_rank.loadRank( MF_BuildPathname("%s", g_rank.loadRank( MF_BuildPathname("%s",
get_localinfo("csstats","addons/amxmodx/data/csstats.dat") ) ); get_localinfo("csstats") ) );
} }
} }

View File

@ -52,7 +52,6 @@ extern int mPlayerIndex;
extern int mState; extern int mState;
extern int gmsgCurWeapon; extern int gmsgCurWeapon;
extern int gmsgDamageEnd;
extern int gmsgDamage; extern int gmsgDamage;
extern int gmsgWeaponList; extern int gmsgWeaponList;
extern int gmsgResetHUD; extern int gmsgResetHUD;
@ -69,7 +68,6 @@ void Client_CurWeapon(void*);
void Client_Damage(void*); void Client_Damage(void*);
void Client_WeaponList(void*); void Client_WeaponList(void*);
void Client_AmmoPickup(void*); void Client_AmmoPickup(void*);
void Client_Damage_End(void*);
void Client_ScoreInfo(void*); void Client_ScoreInfo(void*);
void Client_ResetHUD(void*); void Client_ResetHUD(void*);

View File

@ -5,12 +5,6 @@
weaponsVault weaponData[MAX_WEAPONS]; weaponsVault weaponData[MAX_WEAPONS];
int damage;
int TK;
int weapon;
int aim;
CPlayer *pAttacker;
int g_Planter; int g_Planter;
int g_Defuser; int g_Defuser;
@ -52,6 +46,12 @@ void Client_WeaponList(void* mValue){
void Client_Damage(void* mValue){ void Client_Damage(void* mValue){
static int bits; static int bits;
static int damage;
static int TK;
static int weapon;
static int aim;
static CPlayer *pAttacker;
switch (mState++) { switch (mState++) {
case 1: case 1:
damage = *(int*)mValue; damage = *(int*)mValue;
@ -79,19 +79,16 @@ void Client_Damage(void* mValue){
} }
if( g_grenades.find(enemy , &pAttacker , &weapon ) ) if( g_grenades.find(enemy , &pAttacker , &weapon ) )
pAttacker->saveHit( mPlayer , weapon , damage, aim ); pAttacker->saveHit( mPlayer , weapon , damage, aim );
} break;
} case 4:
void Client_Damage_End(void* mValue){
if ( !mPlayer || !damage || mPlayer->IsAlive() )
return;
if ( !pAttacker ) if ( !pAttacker )
pAttacker = mPlayer; pAttacker = mPlayer;
TK = 0; TK = 0;
if ( (mPlayer->teamId == pAttacker->teamId) && (mPlayer != pAttacker) ) if ( (mPlayer->teamId == pAttacker->teamId) && (mPlayer != pAttacker) )
TK = 1; TK = 1;
pAttacker->saveKill(mPlayer,weapon,( aim == 1 ) ? 1:0 ,TK); pAttacker->saveKill(mPlayer,weapon,( aim == 1 ) ? 1:0 ,TK);
break;
}
} }
void Client_CurWeapon(void* mValue){ void Client_CurWeapon(void* mValue){