Raised This Month: $51 Target: $400
 12% 

Model changer


Post New Thread Reply   
 
Thread Tools Display Modes
DjSoftero
Veteran Member
Join Date: Nov 2014
Location: Lithuania
Old 08-24-2017 , 15:36   Re: Model changer
Reply With Quote #21

function replace_weapon_models() doesnt have a method of seting back default models.
__________________
retired chump
DjSoftero is offline
jakub1411
Member
Join Date: Jul 2012
Old 08-24-2017 , 17:17   Re: Model changer
Reply With Quote #22

Know about some method please? I dont know how to do it.

//E

Already solved. Here is my finally code. If someone know about better optimized method can help me yet.
Thanks all for help me in this topic!

PHP Code:
#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#include <engine>

#define ASSERT(%0,%1) if (!(%0)) abort(AMX_ERR_GENERAL, "Assertion `%s' failed", %1)

new const WEAPONENTNAMES[][] = { """weapon_p228""""weapon_scout""weapon_hegrenade""weapon_xm1014""weapon_c4""weapon_mac10",
            
"weapon_aug""weapon_smokegrenade""weapon_elite""weapon_fiveseven""weapon_ump45""weapon_sg550",
            
"weapon_galil""weapon_famas""weapon_usp""weapon_glock18""weapon_awp""weapon_mp5navy""weapon_m249",
            
"weapon_m3""weapon_m4a1""weapon_tmp""weapon_g3sg1""weapon_flashbang""weapon_deagle""weapon_sg552",
            
"weapon_ak47""weapon_knife""weapon_p90" }

new 
bool:g_bSkins[33]

public 
plugin_init()
{
    
register_plugin("Custom Weapon Models""1.0""Crazy")
    
register_clcmd("say /skins""Open_Setting")

    new 
index
    
for (index 0index sizeof WEAPONENTNAMESindex++)
        if (
WEAPONENTNAMES[index][0]) RegisterHam(Ham_Item_DeployWEAPONENTNAMES[index], "fw_Item_Deploy_Post"1)
}

public 
client_putinserver(id)
{
    
g_bSkins[id] = false
}

public 
plugin_precache()
{
    
precache_model("models/newskins/v_m4a1.mdl")
    
precache_model("models/newskins/v_ak47.mdl")
    
precache_model("models/newskins/v_deagle.mdl")
}

public 
fw_Item_Deploy_Post(ent)
{
    new 
id fm_cs_get_weapon_ent_owner(ent)

    
ASSERT(is_valid_ent(ent), "This is expected to be valid");

    new 
weaponid cs_get_weapon_id(ent)

    
ASSERT(is_user_alive(id), "Weapon owner is expected to be alive");
    
    
replace_weapon_models(idweaponid)
}

replace_weapon_models(idweaponid)
{
    if(
g_bSkins[id])
    {
        switch(
weaponid)
        {
            case 
CSW_M4A1:
            {
                
set_pev(idpev_viewmodel2"models/newskins/v_m4a1.mdl")
            }
            case 
CSW_AK47:
            {
                
set_pev(idpev_viewmodel2"models/newskins/v_ak47.mdl")
            }
            case 
CSW_DEAGLE:
            {
                
set_pev(idpev_viewmodel2"models/newskins/v_deagle.mdl")
            }
        }
    }
    else
    {
        switch(
weaponid)
        {
            case 
CSW_M4A1:
            {
                
set_pev(idpev_viewmodel2"models/v_m4a1.mdl")
            }
            case 
CSW_AK47:
            {
                
set_pev(idpev_viewmodel2"models/v_ak47.mdl")
            }
            case 
CSW_DEAGLE:
            {
                
set_pev(idpev_viewmodel2"models/v_deagle.mdl")
            }
        }
    }
}

public 
Open_Setting(id)
{
        static 
item[64]
        
        new 
menu menu_create("\rModels""settings_handler")
        
        if(
g_bSkins[id])
        {
            
formatex(itemcharsmax(item), "\yON")
            
menu_additem(menuitem"1"0)
        }
        else
        {
            
formatex(itemcharsmax(item), "\rOFF")
            
menu_additem(menuitem"1"0)
        }
        
        
menu_setprop(menuMPROP_EXITMEXIT_ALL)
        
menu_setprop(menuMPROP_NUMBER_COLOR"\r")
        
menu_display(idmenu0)
}

public 
settings_handler(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
data[6], iName[64]
    new 
accesscallback
    menu_item_getinfo
(menuitemaccessdata5iName63callback)
    
    new 
key str_to_num(data)
    
    switch(
key)
    {
        case 
1:
        {
            if(
g_bSkins[id])
            {
                
g_bSkins[id] = false
                            
new ent fm_cs_get_current_weapon_ent(id)
                            if(
pev_valid(ent))
                                
replace_weapon_models(idcs_get_weapon_id(ent))
            }
            else
            {
                
g_bSkins[id] = true
                            
new ent fm_cs_get_current_weapon_ent(id)
                            if(
pev_valid(ent))
                                
replace_weapon_models(idcs_get_weapon_id(ent))
            }
        }
    }
    
Open_Setting(id)
    return 
PLUGIN_HANDLED
}

stock fm_cs_get_weapon_ent_owner(ent)
{
    if(
pev_valid(ent) != 2)
        return -
1
    
    
return get_pdata_cbase(ent414)
}

stock fm_cs_get_current_weapon_ent(id)
{
    if(
pev_valid(id) != 2)
        return -
1
    
    
return get_pdata_cbase(id3735)


Last edited by jakub1411; 08-24-2017 at 21:18.
jakub1411 is offline
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 08-24-2017 , 18:15   Re: Model changer
Reply With Quote #23

Code:
#include <amxmodx> #include <cstrike> #include <hamsandwich> #include <fakemeta> #include <engine> #define PDATA_SAFE 2 #define ASSERT(%0,%1) if (!(%0)) abort(AMX_ERR_GENERAL, "Assertion `%s' failed", %1) new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",             "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",             "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",             "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",             "weapon_ak47", "weapon_knife", "weapon_p90" } new bool:g_bSkins[33] public plugin_init() {     register_plugin("Custom Weapon Models", "1.0", "Crazy")     register_clcmd("say /skins", "Open_Setting")     new index     for (index = 0; index < sizeof WEAPONENTNAMES; index++)         if (WEAPONENTNAMES[index][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[index], "fw_Item_Deploy_Post", 1) } public client_putinserver(id) {     g_bSkins[id] = false } public plugin_precache() {     precache_model("models/newskins/v_m4a1.mdl")     precache_model("models/newskins/v_ak47.mdl")     precache_model("models/newskins/v_deagle.mdl") } public fw_Item_Deploy_Post(ent) {     new id = fm_cs_get_weapon_ent_owner(ent)     ASSERT(is_valid_ent(entity), "This is expected to be valid");     new weaponid = cs_get_weapon_id(ent)     ASSERT(is_user_alive(id), "Weapon owner is expected to be alive");         replace_weapon_models(id, weaponid) } replace_weapon_models(id, weaponid) {     if(g_bSkins[id])     {         switch(weaponid)         {             case CSW_M4A1:             {                 set_pev(id, pev_viewmodel2, "models/newskins/v_m4a1.mdl")             }             case CSW_AK47:             {                 set_pev(id, pev_viewmodel2, "models/newskins/v_ak47.mdl")             }             case CSW_DEAGLE:             {                 set_pev(id, pev_viewmodel2, "models/newskins/v_deagle.mdl")             }         }     }     else     {         switch(weaponid)         {             case CSW_M4A1:             {                 set_pev(id, pev_viewmodel2, "models/v_m4a1.mdl")             }             case CSW_AK47:             {                 set_pev(id, pev_viewmodel2, "models/v_ak47.mdl")             }             case CSW_DEAGLE:             {                 set_pev(id, pev_viewmodel2, "models/v_deagle.mdl")             }         }     } } public Open_Setting(id) {         new item[64]                 new menu = menu_create("\rModels", "settings_handler")                 formatex(item, charsmax(item), g_bSkins[id] ? "\yON" : "\rOFF")         menu_additem(menu, item, "1", 0)           menu_setprop(menu, MPROP_NUMBER_COLOR, "\r")         menu_display(id, menu, 0) } public settings_handler(id, menu, item) {     if(item == MENU_EXIT)     {         menu_destroy(menu)         return PLUGIN_HANDLED     }         new data[6], iName[64]     new access, callback     menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)         new key = str_to_num(data)         switch(key)     {         case 1:         {             g_bSkins[id] = !(g_bSkins[id])                         new ent = fm_cs_get_current_weapon_ent(id)                         if(pev_valid(ent))                 fw_Item_Deploy_Post(ent)         }     }         Open_Setting(id)     return PLUGIN_HANDLED } stock fm_cs_get_weapon_ent_owner(ent) {     if(pev_valid(ent) != PDATA_SAFE)         return -1         return get_pdata_cbase(ent, 41, 4) } stock fm_cs_get_current_weapon_ent(id) {     if(pev_valid(id) != PDATA_SAFE)         return -1         return get_pdata_cbase(id, 373, 5) }
__________________









Last edited by CrazY.; 08-25-2017 at 18:29. Reason: PRoSToTeM@ xD
CrazY. is offline
jakub1411
Member
Join Date: Jul 2012
Old 08-24-2017 , 19:22   Re: Model changer
Reply With Quote #24

Thank you CrazY.
jakub1411 is offline
PRoSToTeM@
Veteran Member
Join Date: Jan 2010
Location: Russia, Ivanovo
Old 08-24-2017 , 20:36   Re: Model changer
Reply With Quote #25

@CrazY. your code makes infinite recursion.
__________________
PRoSToTeM@ is offline
Send a message via ICQ to PRoSToTeM@ Send a message via Skype™ to PRoSToTeM@
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 08-25-2017 , 18:29   Re: Model changer
Reply With Quote #26

Oh, only now I see the problem
__________________









Last edited by CrazY.; 08-25-2017 at 18:29.
CrazY. is offline
Reply



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 08:05.


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