Weapon models not saving

Сообщения
36
Реакции
0
Hello! This is my first post in this forum, i hope i am in the right section. I am using one plugin that when u write a command in the chat it shows a menu where u can buy weapon models with my shop plugin, it should be saving the guns on name but sometimes it's saving and sometimes not. I think i am missing something.
Код:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta >
#include <nvault>

#if defined client_disconnected
    #define client_disconnect client_disconnected
#endif

#define ADM_RESTART ADMIN_RCON

native bm_get_user_points(id)
native bm_set_user_points(client, points);

new g_iVault

enum _: cldeagle
{
deagleName[100],
deagleFoolder[64],
deaglePFoolder[64],
deaglePrice
}

new const deagleskin[][cldeagle] =  // Deagle
{
    // Name           Folder         //price//
    {"Normal Deagle","models/v_deagle.mdl","models/p_deagle.mdl",0},
    {"Gold Deagle","models/v_deagle_gold.mdl","models/p_deagle_gold.mdl",1000},
    {"Flames Deagle","models/v_deagle_flames.mdl","models/p_deagle_flames.mdl",1000},
}
enum _: clmthree
{
mthreeName[100],
mthreeFoolder[64],
mthreePFoolder[64],
mthreePrice
}
new const mthreeskin[][clmthree] =  //Shotgun
{
    // Name           Folder         //price//
    {"Normal Shotgun","models/v_m3.mdl","models/p_m3.mdl",0},
    {"Shark Shotgun","models/v_m3_shark.mdl","models/p_m3_shark.mdl",1000},
    {"Basillisk Shotgun","models/v_m3_basilisk.mdl","models/p_m3_basilisk.mdl",1000},
}
enum _: clawp
{
awpName[100],
awpFoolder[64],
awpPFoolder[64],
awpPrice
}
new const awpskin[][clawp] =  //AWP
{
    // Name           Folder(v_mdl)      Folder(p_mdl)     //price//
    {"Normal AWP","models/v_awp.mdl", "models/p_awp.mdl",0},
    {"Dream AWP","models/v_awp_fever2.mdl","models/p_awp_fever2.mdl",1000},
    {"Boom AWP","models/v_awp_cylex.mdl","models/p_awp_cylex.mdl",1000},
}

new Prefix[] = "Blabla-Gaming"

new choose[33];

new DeagleOwned[33];
new DeagleUse[33];

new ShotgunOwned[33];
new ShotgunUse[33];

new AWPOwned[33];
new AWPUse[33];


new betselaction = 1

public plugin_init() {
    register_plugin("skin menu", "1.0", "CyTwe") //do not change credit please///

    register_clcmd("say /guns","skinmenu")
    register_event("CurWeapon", "Event_CurWeapon", "be","1=1")
    register_clcmd("amx_reset_weaponskins", "restart_allweapon")
    set_task(60.0, "CheckS",_,_,_, "b")
    g_iVault = nvault_open("GunShop")

}

public restart_allweapon(id)
{
    if(!(get_user_flags(id) & ADM_RESTART))
    return PLUGIN_HANDLED

    static name[33]
    get_user_name(id,name,charsmax(name))


    ColorChat(0,"^4[Weapons]^1 %s ^4restarted all ^1weapon skins!",name);
    nvault_prune(g_iVault , 0, 0)
    return PLUGIN_HANDLED
}

public plugin_precache()
{
    for (new g = 0; g < sizeof deagleskin; g++)
    {
        precache_model(deagleskin[g][deagleFoolder] );
        precache_model(deagleskin[g][deaglePFoolder] );
    }
    for (new e = 0; e < sizeof mthreeskin; e++)
    {
        precache_model(mthreeskin[e][mthreeFoolder]);
        precache_model(mthreeskin[e][mthreePFoolder]);
    }
    for (new i = 0; i < sizeof awpskin; i++)
    {
        precache_model(awpskin[i][awpFoolder]);
        precache_model(awpskin[i][awpPFoolder]);
    }
}

public Event_CurWeapon(id)
{
    weapon_player(id)

    return 1;
}

public CheckS()
{
   ColorChat(0,"Write ^4/guns^1 to ^3change^1 your weapon skins.");
}


public client_putinserver( client )
{

    UseVault(client, 1)
}

public client_disconnect( client )
{
    if(is_user_connected(client)) {
        UseVault(client, 0)
    }
}


public skinmenu( id )
{
    static Menuz[100],Item[200];

    formatex(Menuz,charsmax(Menuz),"\w[\r%s\w]\w Gun Shop^n\rYour BM Credits:\y %i",Prefix,bm_get_user_points(id));
    new Smenu = menu_create(Menuz, "SubskinmenuMenu");

    formatex(Item, charsmax(Item),"\wDeagle Skins");
    menu_additem(Smenu, Item)
    formatex(Item, charsmax(Item),"\wM3 Skins");
    menu_additem(Smenu, Item)
    formatex(Item, charsmax(Item),"\wAWP Skins");
    menu_additem(Smenu, Item)

    menu_display(id, Smenu, 0)

    return 1;

}
public SubskinmenuMenu(id, Smenu, item)
{
    if(item == MENU_EXIT)
    {
        return 1;
    }
    switch (item)
    {
        case 0: DeagleMenu( id );
        case 1: ShotGunMenu( id );
        case 2: AWPmenu( id );
    }
    return 1;
}

public  DeagleMenu(id)
{
    new Menuz[100]
    formatex(Menuz,charsmax(Menuz),"\r[\w%s\r]\w Deagle Skin Menu^n\rYour BM Credits:\y %i",Prefix,bm_get_user_points(id));
    new iMenu = menu_create(Menuz, "DeagleMenuHandler");

    new szItem[64];
    for( new i; i < sizeof deagleskin; i++)
    {
        if(DeagleOwned[id] < i)
        formatex(szItem, charsmax(szItem),"\w%s (\r%i \wBM credits\w)",deagleskin[i][deagleName],deagleskin[i][deaglePrice]);
        else
        formatex(szItem, charsmax(szItem),"\w%s %s",deagleskin[i][deagleName],i == DeagleUse[id] ? "(\yUsing\w)" : "\dOwned");
        menu_additem(iMenu, szItem)
    }

    menu_setprop( iMenu, MPROP_NUMBER_COLOR, "\r");
    menu_setprop( iMenu, MPROP_EXIT, MEXIT_ALL)

    menu_display(id, iMenu)

    return 1;

}
public DeagleMenuHandler(id, iMenu, item)
{
    if(item == MENU_EXIT)
    {
        skinmenu( id )
        menu_destroy (iMenu)

        return 1;
    }
    choose[id] =  item

    new ifcanbought = choose[id] - DeagleOwned[id]


    if(DeagleOwned[id] >= choose[id])
    {
        DeagleUse[id] = choose[id]
        static Clip, Ammo, Weapon;
        Weapon = get_user_weapon( id, Clip, Ammo );
        if( Weapon == CSW_DEAGLE )
        {
            entity_set_string(id,EV_SZ_viewmodel,deagleskin[DeagleUse[id]][deagleFoolder]);
        }
        ColorChat(id,"You are currently using ^4%s^1",deagleskin[DeagleUse[id]][deagleName])
        DeagleMenu(id)
        return 1;
    }
    else if(ifcanbought > betselaction)
    {
        ColorChat(id,"You ^3cannot^1 buy ^4%s^1 because you ^3need^1 to buy ^4%s^1 first",deagleskin[choose[id]][deagleName],deagleskin[choose[id] - 1][deagleName])
        DeagleMenu(id)
        return 1;
    }

    else if(DeagleOwned[id] >= choose[id])
    {
        ColorChat(id,"You ^3already^1 have bought ^4%s^1",deagleskin[choose[id]][deagleName])
        DeagleMenu(id)
        return 1;
    }
    if(bm_get_user_points(id) < deagleskin[choose[id]][deaglePrice])
    {

        ColorChat(id,"You need ^3%i^1 more points to buy ^4%s^1",(deagleskin[choose[id]][deaglePrice] - bm_get_user_points(id)),deagleskin[choose[id]][deagleName])
        DeagleMenu(id)
        return 1;
    }

    bm_set_user_points( id, bm_get_user_points(id) - deagleskin[choose[id]][deaglePrice]);

    DeagleOwned[id] = choose[id]
    DeagleUse[id] = choose[id]


    ColorChat(0,"^4%s^1 just bought ^3%s^1 for ^4%i^1 points",szName(id),deagleskin[choose[id]][deagleName],deagleskin[choose[id]][deaglePrice])

    static Clip, Ammo, Weapon;
    Weapon = get_user_weapon( id, Clip, Ammo );
    if( Weapon == CSW_DEAGLE )
    {
        entity_set_string(id,EV_SZ_viewmodel,deagleskin[DeagleUse[id]][deagleFoolder]);
    }


    menu_destroy (iMenu);
    DeagleMenu(id)
    return 1;
}

public  ShotGunMenu(id)
{
    new Menuz[100]
    formatex(Menuz,charsmax(Menuz),"\r[\w%s\r]\w M3 Skin Menu^n\rYour BM Credits:\y %i",Prefix,bm_get_user_points(id));
    new iMenu = menu_create(Menuz, "ShotGunMenuHandler");

    new szItem[64];
    for( new i; i < sizeof mthreeskin; i++)
    {
        if(ShotgunOwned[id] < i)
        formatex(szItem, charsmax(szItem),"\w%s (\r%i \wBM credits\w)",mthreeskin[i][mthreeName],mthreeskin[i][mthreePrice]);
        else
        formatex(szItem, charsmax(szItem),"\w%s %s",mthreeskin[i][mthreeName],i == ShotgunUse[id] ? "(\yUsing\w)" : "\dOwned");
        menu_additem(iMenu, szItem)
    }

    menu_setprop( iMenu, MPROP_NUMBER_COLOR, "\r");
    menu_setprop( iMenu, MPROP_EXIT, MEXIT_ALL)

    menu_display(id, iMenu)

    return 1;

}
public ShotGunMenuHandler(id, iMenu, item)
{
    if(item == MENU_EXIT)
    {
        skinmenu( id )
        menu_destroy (iMenu)

        return 1;
    }
    choose[id] =  item

    new ifcanbought = choose[id] - ShotgunOwned[id]

    if(ShotgunOwned[id] >= choose[id])
    {
        ShotgunUse[id] = choose[id]
        static Clip, Ammo, Weapon;
        Weapon = get_user_weapon( id, Clip, Ammo );
        if( Weapon == CSW_M3 )
        {
            entity_set_string(id,EV_SZ_viewmodel,mthreeskin[ShotgunUse[id]][mthreeFoolder]);
        }
        ColorChat(id,"You are currently using ^4%s^1",mthreeskin[ShotgunUse[id]][mthreeName])
        ShotGunMenu(id)
        return 1;
    }
    else if(ifcanbought > betselaction)
    {
        ColorChat(id,"You ^3cannot^1 buy ^4%s^1 because you ^3need^1 to buy ^4%s^1 first",mthreeskin[choose[id]][mthreeName],mthreeskin[choose[id] - 1][mthreeName])
        ShotGunMenu(id)
        return 1;
    }

    if(ShotgunOwned[id] >= choose[id])
    {
        ColorChat(id,"You ^3already^1 have bought ^4%s^1",mthreeskin[choose[id]][mthreeName])
        ShotGunMenu(id)
        return 1;
    }
    if(bm_get_user_points(id) < mthreeskin[choose[id]][mthreePrice])
    {

        ColorChat(id,"You need ^3%i^1 more points to buy ^4%s^1",(mthreeskin[choose[id]][mthreePrice] - bm_get_user_points(id)),mthreeskin[choose[id]][mthreeName])
        ShotGunMenu(id)
        return 1;
    }

    bm_set_user_points( id, bm_get_user_points(id) - mthreeskin[choose[id]][mthreePrice]);

    ShotgunOwned[id] = choose[id]
    ShotgunUse[id] = choose[id]


    ColorChat(0,"^4%s^1 just bought ^3%s^1 for ^4%i^1 points",szName(id),mthreeskin[choose[id]][mthreeName],mthreeskin[choose[id]][mthreePrice])

    static Clip, Ammo, Weapon;
    Weapon = get_user_weapon( id, Clip, Ammo );
    if( Weapon == CSW_M3 )
    {
        entity_set_string(id,EV_SZ_viewmodel,mthreeskin[ShotgunUse[id]][mthreeFoolder]);
    }


    menu_destroy (iMenu);
    ShotGunMenu(id)
    return 1;
}
public  AWPmenu(id)
{
    new Menuz[100]
    formatex(Menuz,charsmax(Menuz),"\r[\w%s\r]\w AWP Skin Menu^n\rYour BM Credits:\y %i",Prefix,bm_get_user_points(id));
    new iMenu = menu_create(Menuz, "AWPmenuHandler");

    new szItem[64];
    for( new i; i < sizeof awpskin; i++)
    {
        if(AWPOwned[id] < i)
        formatex(szItem, charsmax(szItem),"\w%s (\r%i \wBM credits\w)",awpskin[i][awpName],awpskin[i][awpPrice]);
        else
        formatex(szItem, charsmax(szItem),"\w%s %s",awpskin[i][awpName],i == AWPUse[id] ? "(\yUsing\w)" : "\dOwned");
        menu_additem(iMenu, szItem)
    }

    menu_setprop( iMenu, MPROP_NUMBER_COLOR, "\r");
    menu_setprop( iMenu, MPROP_EXIT, MEXIT_ALL)

    menu_display(id, iMenu)

    return 1;

}
public AWPmenuHandler(id, iMenu, item)
{
    if(item == MENU_EXIT)
    {
        skinmenu( id )
        menu_destroy (iMenu)

        return 1;
    }
    choose[id] =  item

    new ifcanbought = choose[id] - AWPOwned[id]


    if(AWPOwned[id] >= choose[id])
    {
        AWPUse[id] = choose[id]
        static Clip, Ammo, Weapon;
        Weapon = get_user_weapon( id, Clip, Ammo );
        if( Weapon == CSW_AWP )
        {
            entity_set_string(id,EV_SZ_viewmodel,awpskin[AWPUse[id]][awpFoolder]);
        }
        ColorChat(id,"You are currently using ^4%s^1",awpskin[AWPUse[id]][awpName])
        AWPmenu(id)
        return 1;
    }
    else if(ifcanbought > betselaction)
    {
        ColorChat(id,"You ^3cannot^1 buy ^4%s^1 because you ^3need^1 to buy ^4%s^1 first",awpskin[choose[id]][awpName],awpskin[choose[id] - 1][awpName])
        AWPmenu(id)
        return 1;
    }

    if(AWPOwned[id] >= choose[id])
    {
        ColorChat(id,"You ^3already^1 have bought ^4%s^1",awpskin[choose[id]][awpName])
        AWPmenu(id)
        return 1;
    }
    else if(bm_get_user_points(id) < awpskin[choose[id]][awpPrice])
    {

        ColorChat(id,"You need ^3%i^1 more points to buy ^4%s^1",(awpskin[choose[id]][awpPrice] - bm_get_user_points(id)),awpskin[choose[id]][awpName])
        AWPmenu(id)
        return 1;
    }

    bm_set_user_points( id, bm_get_user_points(id) - awpskin[choose[id]][awpPrice]);

    AWPOwned[id] = choose[id]
    AWPUse[id] = choose[id]


    ColorChat(0,"^4%s^1 just bought ^3%s^1 for ^4%i^1 points",szName(id),awpskin[choose[id]][awpName],awpskin[choose[id]][awpPrice])

    static Clip, Ammo, Weapon;
    Weapon = get_user_weapon( id, Clip, Ammo );
    if( Weapon == CSW_AWP )
    {
        entity_set_string(id,EV_SZ_viewmodel,awpskin[AWPUse[id]][awpFoolder]);
    }


    menu_destroy (iMenu);
    AWPmenu(id)
    return 1;
}

UseVault(id, iType)
{
    new szNameZZ[32], szData[31]
    get_user_name(id, szNameZZ, charsmax(szNameZZ))

    switch(iType)
    {
        case 0:
        {
        formatex(szData, charsmax(szData), "%i %i %i %i %i %i", DeagleUse[id], DeagleOwned[id], AWPOwned[id],
        AWPUse[id], ShotgunUse[id], ShotgunOwned[id])
        nvault_set(g_iVault, szNameZZ, szData)
        }
        case 1:
        {
        nvault_get(g_iVault, szNameZZ, szData, charsmax(szData))
        new szArg[3][20]
        parse(szData, szArg[0], charsmax(szArg[]), szArg[1], charsmax(szArg[]), szArg[2], charsmax(szArg[]))
        DeagleUse[id] = str_to_num(szArg[0])
        DeagleOwned[id] = str_to_num(szArg[0])
        AWPOwned[id] = str_to_num(szArg[1])
        AWPUse[id] = str_to_num(szArg[1])
        ShotgunUse[id] = str_to_num(szArg[2])
        ShotgunOwned[id] = str_to_num(szArg[2])
        }
    }
}

stock szName( const index )
{
    static Name[ 128 ];

    get_user_name( index, Name, charsmax( Name ) );

    return Name;
}

stock szAuth( const index )
{
    static Auth[ 35 ];

    get_user_authid( index, Auth, charsmax( Auth ) );

    return Auth;
}

stock ColorChat(const id, const string[], {Float, Sql, Resul,_}:...) {
    new msg[191], players[32], count = 1;
    static len; len = formatex(msg, charsmax(msg), "^3[^1^4%s^1^3]^1 ",Prefix);
    vformat(msg[len], charsmax(msg) - len, string, 3);

    if(id)  players[0] = id;
    else    get_players(players,count,"ch");

    for (new i = 0; i < count; i++)
    {
        if(is_user_connected(players[i]))
        {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"),_, players[i]);
            write_byte(players[i]);
            write_string(msg);
            message_end();
        }
    }
    return 1;
}
stock weapon_player(id)
{
    static weapon;
    weapon = get_user_weapon(id)

    switch(weapon)
    {
        case CSW_DEAGLE:
        {
            entity_set_string(id,EV_SZ_viewmodel,deagleskin[DeagleUse[id]][deagleFoolder]);
            entity_set_string(id,EV_SZ_weaponmodel,deagleskin[DeagleUse[id]][deaglePFoolder]);
        }
        case CSW_AWP:
        {
            entity_set_string(id,EV_SZ_viewmodel,awpskin[AWPUse[id]][awpFoolder]);
            entity_set_string(id,EV_SZ_weaponmodel,awpskin[AWPUse[id]][awpPFoolder]);
        }
        case CSW_M3:
        {
            entity_set_string(id,EV_SZ_viewmodel,mthreeskin[ShotgunUse[id]][mthreeFoolder]);
            entity_set_string(id,EV_SZ_weaponmodel,mthreeskin[ShotgunUse[id]][mthreePFoolder]);
        }
    }
}
 
Сообщения
273
Реакции
424
Помог
5 раз(а)
tom1kHF, Try to save the data in menuhandler after chose skin.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу