AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   fix my plugin...crashes server. PLEASE! (https://forums.alliedmods.net/showthread.php?t=19287)

scriptyboy 10-13-2005 08:59

fix my plugin...crashes server. PLEASE!
 
Ok...i have tried alot of things, but my plugin seems to still crash the server...Heres the code.

Code:
#include <amxmodx>       #include <amxmisc>       #include <cstrike>     #define MAX_STUFF  64       /* / How it works       g_szInfo[i][0] = AuthID       g_szInfo[i][1] = Model       / */       new g_szInfo[MAX_STUFF][2][65]       new g_iCount = 0       public plugin_init()       {           register_plugin("playermodel", "0.2", "scriptyboy")           register_event("ResetHUD", "resetModel", "b")             ReadFile()       }       public ReadFile()       {           new szFile[66]           get_configsdir( szFile , 65 )           format(szFile , 65 , "%s/models.ini",szFile)           if(!file_exists(szFile))       {               log_amx("[ChickenSuit] File ^"%s^" does not exist.",szFile)             return PLUGIN_HANDLED       }           new szLine[101] , line = 0, len = 0           while(read_file(szFile, line++ , szLine , 100 , len) && (g_iCount < MAX_STUFF) )           {               if(szLine[0] == ';' || !len) continue               strbreak(szLine, g_szInfo[g_iCount][0] , 63 , g_szInfo[g_iCount][1] , 63)               g_iCount++           }           return PLUGIN_CONTINUE       }     public plugin_precache() {             for(new i = 0; i < g_iCount; i++)           {              precache_model(g_szInfo[i][1])     }       }         public resetModel(id, level, cid) {                 new authid[50]                 get_user_authid(id,authid,49)                 for(new i = 0; i < g_iCount; i++)               {                    if(equali(authid,g_szInfo[i][0])) {                            new CsTeams:userTeam = cs_get_user_team(id)                            if (userTeam == CS_TEAM_T) {                                    cs_set_user_model(id, "model" )                    }                            else if(userTeam == CS_TEAM_CT) {                                    cs_set_user_model(id, "model" )                    }                            else {                                    cs_reset_user_model(id)                            }                       }               }                 return PLUGIN_CONTINUE         }

scriptyboy 10-13-2005 12:55

BUMP

Zenith77 10-13-2005 13:12

Code:
cs_set_user_model(id, "model" )

Probably because your trying to change it to a model that doesnt exist.


Code:
cs_set_user_model(id, g_szInfo[id][0] )


p.s. system looks screwed up to me.

[ --<-@ ] Black Rose 10-13-2005 13:54

it IS

XxAvalanchexX 10-13-2005 15:20

a) You set the model to "model" as previously pointed out.

b) plugin_precache is called before plugin_init, so the g_szInfo array will be empty and nothing will get precached. try putting ReadFile() at the start of plugin_precache instead of the end of plugin_init?

c) it's possible that there could be something wrong with your while() statement that reads the file which is causing an infinite loop, but I'm not sure, only try messing with that if nothing else works.

scriptyboy 10-14-2005 12:22

2 Attachment(s)
Does this look right and can someone test it for me??

Code:
#include <amxmodx>       #include <amxmisc>       #include <cstrike>       #define MAX_STUFF  64       /* / How it works       g_szInfo[i][0] = AuthID       g_szInfo[i][1] = Model       / */       new g_szInfo[MAX_STUFF][2][65]       new g_iCount = 0       public plugin_init()       {           register_plugin("playermodel", "0.2", "scriptyboy")             register_event("ResetHUD", "resetModel", "b")       }       public ReadFile()       {           new szFile[66]           get_configsdir( szFile , 65 )           format(szFile , 65 , "%s/models.ini",szFile)           if(!file_exists(szFile))         {                 log_amx("[ChickenSuit] File ^"%s^" does not exist.",szFile)               return PLUGIN_HANDLED         }           new szLine[101] , line = 0, len = 0           while(read_file(szFile, line++ , szLine , 100 , len) && (g_iCount < MAX_STUFF) )           {               if(szLine[0] == ';' || !len) continue               strbreak(szLine, g_szInfo[g_iCount][0] , 63 , g_szInfo[g_iCount][1] , 63)               g_iCount++             }             return PLUGIN_CONTINUE       }       public plugin_precache() {             ReadFile()     for(new i = 0; i < g_iCount; i++)           {              precache_model(g_szInfo[i][1])     }       }           public resetModel(id, level, cid) {                 new authid[50]                   get_user_authid(id,authid,49)                   for(new i = 0; i < g_iCount; i++)               {                    if(equali(authid,g_szInfo[i][0])) {                              new CsTeams:userTeam = cs_get_user_team(id)                            if (userTeam == CS_TEAM_T) {                                    cs_set_user_model(id, g_szInfo[id][0] )                      }                            else if(userTeam == CS_TEAM_CT) {                                    cs_set_user_model(id, g_szInfo[id][0] )                      }                            else {                                    cs_reset_user_model(id)                            }                       }               }                 return PLUGIN_CONTINUE         }

scriptyboy 10-18-2005 12:30

oh...another thing...is there a way to make it load the model on thie first round instead of it loading after the first round ends?


All times are GMT -4. The time now is 23:59.

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