Raised This Month: $ Target: $400
 0% 

get_user_wstats() doesn't work in AMX X or something?


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Downtown1
Veteran Member
Join Date: Mar 2004
Old 06-25-2004 , 19:49   get_user_wstats() doesn't work in AMX X or something?
Reply With Quote #1

Hello, having trouble with the ucstats_cstrike.sma, trying to run it under AMX X . It works fine in AMX, however it does not in AMXX:

Code:
/* *   AMXMOD script. *   (ucstats_cstrike.sma) *   by mike_cao <[email protected]> *   This file is provided as is (no warranties). * */ #include <amxmodx> #include <amxmisc> #include <csstats> #include <ucstats> // Admin access level #define ACCESS_LEVEL ADMIN_LEVEL_A // Globals new gPlayerStats[MAX_PLAYERS+1][PLAYER_INDEX] new gMoneyIndex[MAX_PLAYERS+1] new gFirstKill = 0 new gPlanter = 0 /************************************************************ * LOG FUNCTIONS ************************************************************/ log_trigger(id,trigger[]) {     new iUserid = get_user_userid(id)     new sTeam[MAX_NAME_LENGTH]     new sName[MAX_NAME_LENGTH]     new sAuthid[MAX_NAME_LENGTH]     get_user_name(id,sName,MAX_NAME_LENGTH)     get_user_authid(id,sAuthid,MAX_NAME_LENGTH)     get_user_team(id,sTeam,MAX_NAME_LENGTH)     log_message("^"%s<%d><%s><%s>^" triggered ^"%s^"",sName,iUserid,sAuthid,sTeam,trigger) } log_weapon_stats(id) {     new iStats[8]     new iBodyHits[8]     new iUserid = get_user_userid(id)     new sTeam[MAX_NAME_LENGTH]     new sName[MAX_NAME_LENGTH]     new sAuthid[MAX_NAME_LENGTH]     new sWeapon[MAX_NAME_LENGTH]     get_user_name(id,sName,MAX_NAME_LENGTH)     get_user_authid(id,sAuthid,MAX_NAME_LENGTH)     get_user_team(id,sTeam,MAX_NAME_LENGTH)     for (new i = 1; i < MAX_WEAPONS; ++i) {         if (get_user_wstats(id,i,iStats,iBodyHits)) {             get_weaponname(i,sWeapon,MAX_NAME_LENGTH)             if ((iStats[0]+iStats[1]+iStats[2]+iStats[3]+iStats[4]+iStats[5]+iStats[6]) > 0) {                 // "Weapon_Stats" (weapon "kills,deaths,headshots,teamkills,shots,hits,damage")                 log_message("^"%s<%d><%s><%s>^" triggered ^"Weapon_Stats^" (%s ^"%i,%i,%i,%i,%i,%i,%i^")",                     sName,                     iUserid,                     sAuthid,                     sTeam,                     sWeapon,                     iStats[0],                     iStats[1],                     iStats[2],                     iStats[3],                     iStats[4],                     iStats[5],                     iStats[6]                 )             }             if ((iBodyHits[0]+iBodyHits[1]+iBodyHits[2]+iBodyHits[3]+iBodyHits[4]+iBodyHits[5]+iBodyHits[6]+iBodyHits[7]) > 0) {                 // "Weapon_Hits" (weapon "generic,head,chest,stomach,leftarm,rightarm,leftleg,rightleg")                 log_message("^"%s<%d><%s><%s>^" triggered ^"Weapon_Hits^" (%s ^"%i,%i,%i,%i,%i,%i,%i,%i^")",                     sName,                     iUserid,                     sAuthid,                     sTeam,                     sWeapon,                     iBodyHits[0],                     iBodyHits[1],                     iBodyHits[2],                     iBodyHits[3],                     iBodyHits[4],                     iBodyHits[5],                     iBodyHits[6],                     iBodyHits[7]                 )             }         }     } } log_player_stats(id) {     new iUserid = get_user_userid(id)     new sTeam[MAX_NAME_LENGTH]     new sName[MAX_NAME_LENGTH]     new sAuthid[MAX_NAME_LENGTH]     new sMap[MAX_NAME_LENGTH]     get_user_name(id,sName,MAX_NAME_LENGTH)     get_user_authid(id,sAuthid,MAX_NAME_LENGTH)     get_user_team(id,sTeam,MAX_NAME_LENGTH)     get_mapname(sMap,MAX_NAME_LENGTH)     if ((gPlayerStats[id][PLAYER_KILLS]+gPlayerStats[id][PLAYER_DEATHS]) > 0) {         // "Player_Stats" (map "kills,deaths,killstreak,rounds_survived,rounds_played,playing_time,misc")         log_message("^"%s<%d><%s><%s>^" triggered ^"Player_Stats^" (%s ^"%i,%i,%i,%i,%i,%i^")",             sName,             iUserid,             sAuthid,             sTeam,             sMap,             gPlayerStats[id][PLAYER_KILLS],             gPlayerStats[id][PLAYER_DEATHS],             gPlayerStats[id][PLAYER_KILLSTREAK],             gPlayerStats[id][PLAYER_SURVIVE],             gPlayerStats[id][PLAYER_ROUNDS],             floatround(get_gametime())-gPlayerStats[id][PLAYER_TIME]         )     } } /************************************************************ * EVENT FUNCTIONS ************************************************************/ public event_death() {     new iKiller = read_data(1)     new iVictim = read_data(2)     new iHeadshot = read_data(3)     gPlayerStats[iKiller][PLAYER_KILLS] += 1     gPlayerStats[iVictim][PLAYER_DEATHS] += 1         if (iKiller != iVictim && iKiller != 0) {         if (!gFirstKill) {             log_trigger(iKiller,"First_Kill")             gFirstKill = 1         }         if (iHeadshot) {             log_trigger(iKiller,"Head_Shot")         }         gPlayerStats[iKiller][PLAYER_KILLCOUNT] += 1         gPlayerStats[iVictim][PLAYER_KILLCOUNT] = 0                 // New streak         if (gPlayerStats[iKiller][PLAYER_KILLCOUNT] > gPlayerStats[iKiller][PLAYER_KILLSTREAK]) {             gPlayerStats[iKiller][PLAYER_KILLSTREAK] = gPlayerStats[iKiller][PLAYER_KILLCOUNT]         }     }         return PLUGIN_CONTINUE } public event_world_action() {     new sAction[MAX_NAME_LENGTH]     read_logargv(1,sAction,MAX_VAR_LENGTH)      if (equal(sAction,"Round_Start")) {         gFirstKill = 0         gPlanter = 0     }     else if (equal(sAction,"Round_End")) {         new iPlayer, iPlayers[MAX_PLAYERS], iNumPlayers         get_players(iPlayers,iNumPlayers)         for (new i = 0; i < iNumPlayers; i++) {             iPlayer = iPlayers[i]             // If not spectator             if (get_user_team(iPlayer)==1 || get_user_team(iPlayer)==2) {                 // Add round survived                 if (is_user_alive(iPlayer)) {                     gPlayerStats[iPlayer][PLAYER_SURVIVE] += 1                 }                 // Add round played                 gPlayerStats[iPlayer][PLAYER_ROUNDS] += 1             }         }     }         return PLUGIN_CONTINUE } public event_player_action() {     new iUserId, iPlayer     new sArg[MAX_VAR_LENGTH]     new sName[MAX_NAME_LENGTH]     new sAction[MAX_NAME_LENGTH]         read_logargv(0,sArg,MAX_VAR_LENGTH)     read_logargv(2,sAction,MAX_VAR_LENGTH)     parse_loguser(sArg,sName,MAX_NAME_LENGTH,iUserId)         if (equal(sAction,"Planted_The_Bomb")) {         iPlayer = find_player("k",iUserId)         if (iPlayer) {             gPlanter = iPlayer         }     }         return PLUGIN_CONTINUE } public event_bomb_explode() {     if (gPlanter) {         log_trigger(gPlanter,"Bomb_Exploded")     }     return PLUGIN_CONTINUE } public event_money(id) {         new iMoney = read_data(1)         new iPrevMoney = gMoneyIndex[id]     if (iMoney < iPrevMoney) {         gPlayerStats[id][PLAYER_MISC] += iPrevMoney - iMoney     }         gMoneyIndex[id] = iMoney         return PLUGIN_CONTINUE } public event_reset_stats(id) {     for (new i = 0; i < PLAYER_INDEX; i++) {         gPlayerStats[id][i] = 0     }     gPlayerStats[id][PLAYER_TIME] = floatround(get_gametime())     return PLUGIN_CONTINUE } /************************************************************ * PLUGIN FUNCTIONS ************************************************************/ public client_connect(id) {     event_reset_stats(id)     return PLUGIN_CONTINUE } public client_disconnect(id) {     log_player_stats(id)     log_weapon_stats(id)     event_reset_stats(id)     return PLUGIN_CONTINUE } public client_infochanged(id) {     new sName[MAX_TEXT_LENGTH], sNewName[MAX_TEXT_LENGTH]     get_user_name(id,sName,MAX_TEXT_LENGTH)     get_user_info(id,"name",sNewName,MAX_TEXT_LENGTH)     if (!equal(sName,sNewName) && !equal(sName,"")) {         // Log old name's stats         if (get_user_time(id) > MIN_PLAYTIME) {             log_player_stats(id)             log_weapon_stats(id)         }         // Reset stats for new name         reset_user_wstats(id)         event_reset_stats(id)     }     return PLUGIN_CONTINUE } public plugin_init() {     register_plugin("UCStats CSTRIKE","1.1","mike_cao")     register_event("DeathMsg","event_death","a")     register_event("Money","event_money","b")         register_logevent("event_player_action",3,"1=triggered")     register_logevent("event_bomb_explode",6,"2=triggered","3=Target_Bombed")     register_logevent("event_world_action",2,"0=World triggered")         server_print("[UCStats] CSTRIKE: Logging initialized successfully.")         return PLUGIN_CONTINUE }

At the end of a map, it logs all the user weapon stats (only at the end of a map). However in AMXX I get this error several times just before a map changes:

Code:
[AMX] Run time error 10 on line 58 (plugin "ucstats_cstrike.amx")
Line 58 points to:
Code:
        if (get_user_wstats(id,i,iStats,iBodyHits)) {

I checked out csstats.inc and all the parameters being passed just fine (it's the same exact function as for amxmod), so my question is this.. is the function just broken or what?

I'm also using the .SO file from the latest news, the "fixed" cstrike module incase anyone is wondering.

Thanks for anyone who can help me out here.
Downtown1 is offline
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 14:39.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode