AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Help with this script pls (https://forums.alliedmods.net/showthread.php?t=334468)

TheGoldenKiller 09-26-2021 13:24

Help with this script pls
 
hello,
so this is a part that will be implemanted in a bigger code and i wanted to test it before using
I really dont have much experience with dynamic arrays or tries so I had founded in a plugin that uses this methode so i trieded but with no luck
I know I still lack some variable here but its irrelevant for the moment what I think is happening is either the array isn't pushed or getting it


Code:

; the code should read from the file like this
; "flag" "auth" "team" "model" "body" "skin"
"n" "TheGoldenKiller" "TT" "vip" "0" "0"
"n" "TheGoldenKiller" "CT" "terror" "0" "0"


PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>


#define MAX_PLAYERS 32
enum _:PLAYER_MODEL
{
    
FLAG[5],
    
AUTH[128],
    
TEAM[5],
    
MODEL[128],
    
BODY[5],
    
SKIN[5]
}

new Array:
g_iArrayPlayerModelg_szPlayerModel[PLAYER_MODEL], g_szPlayerData[PLAYER_MODEL], bool:g_bHasCustomModel[MAX_PLAYERS 1], g_iSkin[MAX_PLAYERS 1],
g_iBody[MAX_PLAYERS 1], g_szModelCt[MAX_PLAYERS 1][64], g_szModelT[MAX_PLAYERS 1][64], g_szName[MAX_PLAYERS 1][64], bool:g_arraypushed

load_customization_from_files
()
{
    
    new 
szBuffer[64], path[64], linedata[64]
    
get_localinfo("amxx_configsdir"pathcharsmax(path));
    
formatex(pathcharsmax(path), "%s/player_models.ini"path);
    new 
file fopen(path"rt");
    while (
file && !feof(file))
        {
            
// Read one line at a time
            
fgets(filelinedatacharsmax(linedata))
            
            
// Replace newlines with a null character to prevent headaches
            
replace(linedatacharsmax(linedata), "^n""")
            
            
// Blank line or comment
            
if (!linedata[0] || linedata[0] == ';') continue;
            
            
parse(linedatag_szPlayerModel[FLAG], charsmaxg_szPlayerModel[FLAG] ),
            
g_szPlayerModel[AUTH], charsmaxg_szPlayerModel[AUTH] ),
            
g_szPlayerModel[TEAM], charsmaxg_szPlayerModel[TEAM] ),
            
g_szPlayerModel[MODEL], charsmaxg_szPlayerModel[MODEL]),
            
g_szPlayerModel[BODY], charsmaxg_szPlayerModel[BODY]),
            
g_szPlayerModel[SKIN], charsmaxg_szPlayerModel[SKIN]))
            
formatex(szBuffercharsmax(szBuffer), "models/player/%s/%s.mdl"g_szPlayerModel[MODEL], g_szPlayerModel[MODEL])
            
engfunc(EngFunc_PrecacheModelszBuffer)
            
pushed ArrayPushArray (g_iArrayPlayerModelg_szPlayerModel);
        }
    if(
file)
        
fclose(file)
}
    

public 
plugin_init()
{
    
register_plugin("AMX Admin Model""1.1.1""whitemike")
    
register_event("ResetHUD""resetModel""b")
    
g_iArrayPlayerModel ArrayCreate(PLAYER_MODEL)
}

public 
plugin_precache() 
{
    
load_customization_from_files()
}

public 
client_putinserver(id)
{
    new 
szAuth[64],szIp[64],szname[64]
    for(new 
iArraySize(g_iArrayPlayerModel); i++)
    {
        
ArrayGetArray(g_iArrayPlayerModelig_szPlayerData)
        if(
equal(g_szPlayerData[FLAG],"f"))
        {
            if(
has_flag(idg_szPlayerData[AUTH]))
            {
                
g_bHasCustomModel[id]= true;    
                if(
equal(g_szPlayerData[TEAM], "CT") || equal(g_szPlayerData[TEAM], "ct") || equal(g_szPlayerData[TEAM], "Ct") || equal(g_szPlayerData[TEAM], "cT"))
                    
copy(g_szModelCt[id], charsmax(g_szModelCt[]), g_szPlayerData[MODEL]);
                else if(
equal(g_szPlayerData[TEAM], "TT") || equal(g_szPlayerData[TEAM], "tt") || equal(g_szPlayerData[TEAM], "Tt") || equal(g_szPlayerData[TEAM], "tT"))
                    
copy(g_szModelT[id], charsmax(g_szModelT[]), g_szPlayerData[MODEL]);
                
g_iBody[id] = str_to_num(g_szPlayerData[BODY]);
                
g_iSkin[id] = str_to_num(g_szPlayerData[SKIN]);

            }
        }
        else if(
equal(g_szPlayerData[FLAG],"s"))
        {
            
get_user_authid(id,szAuth ,charsmax(szAuth));
            if(
equal(g_szPlayerData[AUTH],szAuth))
            {
                
g_bHasCustomModel[id]= true;
            
                
                if(
equal(g_szPlayerData[TEAM], "CT") || equal(g_szPlayerData[TEAM], "ct") || equal(g_szPlayerData[TEAM], "Ct") || equal(g_szPlayerData[TEAM], "cT"))
                    
copy(g_szModelCt[id], charsmax(g_szModelCt[]), g_szPlayerData[MODEL]);
                if(
equal(g_szPlayerData[TEAM], "TT") || equal(g_szPlayerData[TEAM], "tt") || equal(g_szPlayerData[TEAM], "Tt") || equal(g_szPlayerData[TEAM], "tT"))
                    
copy(g_szModelT[id], charsmax(g_szModelT[]), g_szPlayerData[MODEL]);
                
g_iBody[id] = str_to_num(g_szPlayerData[BODY]);
                
g_iSkin[id] = str_to_num(g_szPlayerData[SKIN]);
                
g_array true
            
}
        }
        else if(
equal(g_szPlayerData[FLAG],"i"))
        {
            
get_user_ip(idszIpcharsmax(szIp));
            if(
equal(g_szPlayerData[AUTH],szIp))
            {
                
g_bHasCustomModel[id]= true;
            
                
                if(
equal(g_szPlayerData[TEAM], "CT") || equal(g_szPlayerData[TEAM], "ct") || equal(g_szPlayerData[TEAM], "Ct") || equal(g_szPlayerData[TEAM], "cT"))
                    
copy(g_szModelCt[id], charsmax(g_szModelCt[]), g_szPlayerData[MODEL]);
                if(
equal(g_szPlayerData[TEAM], "TT") || equal(g_szPlayerData[TEAM], "tt") || equal(g_szPlayerData[TEAM], "Tt") || equal(g_szPlayerData[TEAM], "tT"))
                    
copy(g_szModelT[id], charsmax(g_szModelT[]), g_szPlayerData[MODEL]);
                
g_iBody[id] = str_to_num(g_szPlayerData[BODY]);
                
g_iSkin[id] = str_to_num(g_szPlayerData[SKIN]);
                
g_array true

            
}
        }
        else if(
equal(g_szPlayerData[FLAG],"n"))
        {
            
get_user_name(idsznamecharsmax(szname));
            if(
equal(g_szPlayerData[AUTH],szname))
            {
                
g_bHasCustomModel[id]= true;
                
copy(g_szName[id], 64g_szPlayerData[AUTH]);
                
                if(
equal(g_szPlayerData[TEAM], "CT") || equal(g_szPlayerData[TEAM], "ct") || equal(g_szPlayerData[TEAM], "Ct") || equal(g_szPlayerData[TEAM], "cT"))
                    
copy(g_szModelCt[id], 64g_szPlayerData[MODEL]);
                else if(
equal(g_szPlayerData[TEAM], "TT") || equal(g_szPlayerData[TEAM], "tt") || equal(g_szPlayerData[TEAM], "Tt") || equal(g_szPlayerData[TEAM], "tT"))
                    
copy(g_szModelT[id], 64g_szPlayerData[MODEL]);
                
g_iBody[id] = str_to_num(g_szPlayerData[BODY]);
                
g_iSkin[id] = str_to_num(g_szPlayerData[SKIN]);
                
g_array true
            
}
        }
        else
            {
                
g_bHasCustomModel[id]= false
                g_array 
false
            
}
    }
    return 
PLUGIN_HANDLED
}

public 
resetModel(id
{    
    new 
CsTeams:userTeam cs_get_user_team(id)
    if(
g_bHasCustomModel[id])
    {
        if(
userTeam == CS_TEAM_T)
        {
            
cs_set_user_model(idg_szModelT[id])
            
set_pev(idpev_bodyg_iBody[id])
            
set_pev(idpev_sking_iSkin[id])            
        }
        else if(
userTeam == CS_TEAM_CT)
        {
            
cs_set_user_model(idg_szModelCt[id])
            
set_pev(idpev_bodyg_iBody[id])
            
set_pev(idpev_sking_iSkin[id])
        }    
    }
    return 
PLUGIN_HANDLED




All times are GMT -4. The time now is 11:34.

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