Raised This Month: $ Target: $400
 0% 

VIP models - weapon replacement plugin


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
gump497
BANNED
Join Date: May 2011
Location: Slovakia
Old 07-03-2012 , 15:06   VIP models - weapon replacement plugin
Reply With Quote #1

Hello,
i tried to change the models of weapons, but in vain. Please, could someone correct me and for everything to be VIP?

Code:

PHP Code:
#define VERSION    "1.3"

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

#define MAX_SOUNDS    50
#define MAX_p_MODELS    50
#define MAX_v_MODELS    50
#define MAX_w_MODELS    50

#define MAP_CONFIGS    1

new Array: vArrayModels;

new 
new_sounds[MAX_SOUNDS][48]
new 
old_sounds[MAX_SOUNDS][48]
new 
sounds_team[MAX_SOUNDS]
new 
soundsnum

new new_p_models[MAX_p_MODELS][48]
new 
old_p_models[MAX_p_MODELS][48]
new 
p_models_team[MAX_p_MODELS]
new 
p_modelsnum

new new_w_models[MAX_w_MODELS][48]
new 
old_w_models[MAX_w_MODELS][48]
new 
w_models_team[MAX_p_MODELS]
new 
w_modelsnum

new maxplayers
new boolbModels33 ];

public 
plugin_init()
{
    
register_plugin("Weapon Model + Sound Replacement",VERSION,"GHW_Chronic & Edited by DarkGL")
    
register_forward(FM_EmitSound,"Sound_Hook")
    
register_forward(FM_SetModel,"W_Model_Hook",1)
    
    
register_event("CurWeapon","Changeweapon_Hook","be","1=1")
    
    
register_logevent("newround",2,"1=Round_Start")
    
    
register_forwardFM_UpdateClientData "fmClientData" );
    
    
maxplayers get_maxplayers()
    
    
register_clcmd"say /models" "modelCommand" );
    
register_clcmd"say_team /models" "modelCommand" );
}

public 
modelCommandid ){
    
bModelsid ]    =    !bModelsid ];
    
    return 
PLUGIN_HANDLED;
}

public 
client_connectid ){
    
bModelsid ]    =    true;
}

public 
plugin_precache()
{
    new 
configfile[200]
    new 
configsdir[200]
    new 
map[32]
    
get_configsdir(configsdir,199)
    
get_mapname(map,31)
    
formatex(configfile,199,"%s/new_weapons_%s.ini",configsdir,map)
    if(
file_exists(configfile))
    {
        
load_models(configfile)
    }
    else
    {
        
formatex(configfile,199,"%s/new_weapons.ini",configsdir)
        
load_models(configfile)
    }
}

public 
load_models(configfile[]){
    
vArrayModels    =    ArrayCreate);
    new 
iArray];
    
    if(
file_exists(configfile))
    {
        new 
read[96], left[48], right[48], right2[32], trashteam
        
for(new i=0;i<file_size(configfile,1);i++)
        {
            
read_file(configfile,i,read,95,trash)
            if(
containi(read,";")!=&& containi(read," ")!=-1)
            {
                
strbreak(read,left,47,right,47)
                
team=0
                
if(containi(right," ")!=-1)
                {
                    
strbreak(right,right,47,right2,31)
                    
replace_all(right2,31,"^"","")
                    if(
                    equali(right2,"
T") ||
                    equali(right2,"
Terrorist") ||
                    equali(right2,"
Terrorists") ||
                    equali(right2,"
Blue") ||
                    equali(right2,"B") ||
                    equali(right2,"
Allies") ||
                    equali(right2,"
1")
                    ) team=1
                    else if(
                    equali(right2,"
CT") ||
                    equali(right2,"
Counter") ||
                    equali(right2,"
Counter-Terrorist") ||
                    equali(right2,"
Counter-Terrorists") ||
                    equali(right2,"
CounterTerrorists") ||
                    equali(right2,"
CounterTerrorist") ||
                    equali(right2,"
Red") ||
                    equali(right2,"
R") ||
                    equali(right2,"
Axis") ||
                    equali(right2,"
2")
                    ) team=2
                    else if(
                    equali(right2,"
Yellow") ||
                    equali(right2,"
Y") ||
                    equali(right2,"
3")
                    ) team=3
                    else if(
                    equali(right2,"
Green") ||
                    equali(right2,"
G") ||
                    equali(right2,"
4")
                    ) team=4
                }
                replace_all(right,47,"
^"","")
                if(
file_exists(right))
                {
                    if(
containi(right,".mdl")==strlen(right)-4)
                    {
                        new 
iPrecache    =    precache_model(right);
                        if(!
iPrecache)
                        {
                            
log_amx("Chyba pri pokuse o precache modelu: ^"%s^" (riadok %d z new_weapons.ini)",right,i+1)
                        }
                        else if(
containi(left,"models/p_")==0)
                        {
                            
formatex(new_p_models[p_modelsnum],47,right)
                            
formatex(old_p_models[p_modelsnum],47,left)
                            
p_models_team[p_modelsnum]=team
                            p_modelsnum
++
                        }
                        else if(
containi(left,"models/v_")==0)
                        {
                            new 
iPrecacheOld    =    precache_modelleft );
                            if( 
iPrecacheOld ){
                                
iArray]    =    iPrecacheOld;
                                
iArray]     =    iPrecache;
                                
iArray]     =    team;
                                
ArrayPushArrayvArrayModels iArray )
                            }
                        }
                        else if(
containi(left,"models/w_")==0)
                        {
                            
formatex(new_w_models[w_modelsnum],47,right)
                            
formatex(old_w_models[w_modelsnum],47,left)
                            
w_models_team[w_modelsnum]=team
                            w_modelsnum
++
                        }
                        else
                        {
                            
log_amx("Model typ (p_ / v_ / w_) neznamy pre model: ^"%s^" (riadok %d z new_weapons.ini)",right,i+1)
                        }
                    }
                    else if(
containi(right,".wav")==strlen(right)-|| containi(right,".mp3")==strlen(right)-4)
                    {
                        
replace(right,47,"sound/","")
                        
replace(left,47,"sound/","")
                        if(!
precache_sound(right))
                        {
                            
log_amx("Chyba pri pokuse o precache zvuk: ^"%s^" (riadok %d z new_weapons.ini)",right,i+1)
                        }
                        else
                        {
                            
formatex(new_sounds[soundsnum],47,right)
                            
formatex(old_sounds[soundsnum],47,left)
                            
sounds_team[soundsnum]=team
                            soundsnum
++
                        }
                    }
                    else
                    {
                        
log_amx("Neplatny subor: ^"%s^" (riadok %d z new_weapons.ini)",right,i+1)
                    }
                }
                else
                {
                    
log_amx("Subor neexistoval: ^"%s^" (riadok %d z new_weapons.ini)",right,i+1)
                }
                
/*if(!file_exists(left))
                {
                    log_amx("Upozornenie: subor neexistoval: ^"%s^" (riadok %d z new_weapons.ini). LEN VAROVANIE. PLUGIN STALE FUNGUJE!!!",left,i+1)
                }*/
            
}
        }
    }
}

public 
fmClientDataidsendweaponscd_handle ){
    if( !
is_user_connectedid ) || !bModelsid ] || get_cdcd_handle CD_ViewModel ) == 0){
        return 
FMRES_IGNORED;
    }
    new 
iArray] ,
        
oldWeapon    =    get_cdcd_handle CD_ViewModel );
        
    for( new 
ArraySizevArrayModels ) ; i++ ){
        
        
ArrayGetArrayvArrayModels iArray );
        
        if( 
iArray]    ==    oldWeapon && ( !iArray] || iArray] == get_user_teamid ) ) ){
            
            
set_cdcd_handle CD_ViewModel iArray] );
            return 
FMRES_HANDLED;
            
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
Changeweapon_Hook(id)
{
    if(!
is_user_alive(id))
    {
        return 
PLUGIN_CONTINUE
    
}
        if(
get_user_flags(id) & ADMIN_LEVEL_H)
        {
    static 
model[32], iteam

    team 
get_user_team(id)

    
pev(id,pev_weaponmodel2,model,31)
    for(
i=0;i<p_modelsnum;i++)
    {
        if(
equali(model,old_p_models[i]))
        {
            if(
p_models_team[i]==team || !p_models_team[i])
            {
                
set_pev(id,pev_weaponmodel2,new_p_models[i])
                break;
            }
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
Sound_Hook(id,channel,sample[])
{
    if(!
is_user_alive(id))
    {
        return 
FMRES_IGNORED
    
}
    if(
channel!=CHAN_WEAPON && channel!=CHAN_ITEM)
    {
        return 
FMRES_IGNORED
    
}
        if(
get_user_flags(id) & ADMIN_LEVEL_H)
        {
    static 
iteam

    team 
get_user_team(id)

    for(
i=0;i<soundsnum;i++)
    {
        if(
equali(sample,old_sounds[i]))
        {
            if(
sounds_team[i]==team || !sounds_team[i])
            {
                
engfunc(EngFunc_EmitSound,id,CHAN_WEAPON,new_sounds[i],1.0,ATTN_NORM,0,PITCH_NORM)
                return 
FMRES_SUPERCEDE
            
}
        }
    }
    return 
FMRES_IGNORED
}

public 
W_Model_Hook(ent,model[])
{
    if(!
pev_valid(ent))
    {
        return 
FMRES_IGNORED
    
}
        if(
get_user_flags(id) & ADMIN_LEVEL_H)
        {
    static 
i
    
for(i=0;i<w_modelsnum;i++)
    {
        if(
equali(model,old_w_models[i]))
        {
            
engfunc(EngFunc_SetModel,ent,new_w_models[i])
            return 
FMRES_SUPERCEDE
        
}
    }
    return 
FMRES_IGNORED
}

public 
newround()
{
    static 
entclassname[8], model[32]
    
ent engfunc(EngFunc_FindEntityInSphere,maxplayers,Float:{0.0,0.0,0.0},4800.0)
    while(
ent)
    {
        if(
pev_valid(ent))
        {
            
pev(ent,pev_classname,classname,7)
            if(
containi(classname,"armoury")!=-1)
            {
                
pev(ent,pev_model,model,31)
                
W_Model_Hook(ent,model)
            }
        }
        
ent engfunc(EngFunc_FindEntityInSphere,ent,Float:{0.0,0.0,0.0},4800.0)
    }

gump497 is offline
Send a message via ICQ to gump497 Send a message via Skype™ to gump497
 


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 15:01.


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