Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Sublime AMXX Editor v2.2 */
- #include <amxmodx>
- #include <cstrike>
- #include <fakemeta>
- #include <hamsandwich>
- #include <nvault>
- new const g_szVault[] = "WepPak";
- new g_hVault;
- #define MAX_WEP_PER_PAK 5
- #define MAX_PAKS 3
- enum (<<= 1)
- {
- PAK_NONE = 0,
- PAK1 = 1,
- PAK2,
- PAK3
- }
- enum _:ddata
- {
- wepname[32],
- wepcode
- }
- new const g_iPakCost[MAX_PAKS] = {
- 150000,
- 200000,
- 250000
- };
- new const g_aData[MAX_WEP_PER_PAK][ddata] = {
- { "weapon_m4a1", CSW_M4A1 },
- { "weapon_ak47", CSW_AK47 },
- { "weapon_usp", CSW_USP },
- { "weapon_glock", CSW_GLOCK18 },
- { "weapon_fiveseven", CSW_FIVESEVEN }
- };
- new const g_szFirstPackage[MAX_WEP_PER_PAK][] = {
- "models/newmodels/package1/v_m4a1.mdl",
- "models/newmodels/package1/v_ak47.mdl",
- "models/newmodels/package1/v_usp.mdl",
- "models/newmodels/package1/v_glock.mdl",
- "models/newmodels/package1/v_fiveseven.mdl"
- };
- new const g_szSecondPackage[MAX_WEP_PER_PAK][] = {
- "models/newmodels/package2/v_m4a1.mdl",
- "models/newmodels/package2/v_ak47.mdl",
- "models/newmodels/package2/v_usp.mdl",
- "models/newmodels/package2/v_glock.mdl",
- "models/newmodels/package2/v_fiveseven.mdl"
- };
- new const g_szThirdPackage[MAX_WEP_PER_PAK][] = {
- "models/newmodels/package3/v_m4a1.mdl",
- "models/newmodels/package3/v_ak47.mdl",
- "models/newmodels/package3/v_usp.mdl",
- "models/newmodels/package3/v_glock.mdl",
- "models/newmodels/package3/v_fiveseven.mdl"
- };
- // from data/gamedata/common.games/entities.games/cstrike/offsets-cbaseplayeritem.txt
- new const m_pPlayer = 164;
- new const XO_LINUXOFFSETDIFF = 16;
- new const XO_MACOFFSETDIFF = 16;
- new g_iClientCurrentPak[MAX_PLAYERS + 1];
- new g_iClientPaks[MAX_PLAYERS + 1];
- native get_user_cash(client);
- native set_user_cash(client, amount);
- public plugin_init() {
- register_plugin("Weapon skin packs","v1.0","Hyuna");
- register_clcmd("say /buy","cmdBuy");
- for (new i = 0; i < MAX_WEP_PER_PAK; i++)
- RegisterHam(Ham_Item_Deploy,g_aData[i][wepname],"fwdOnItemDeployPost",1,false);
- g_hVault = nvault_open(g_szVault);
- if (g_hVault == INVALID_HANDLE)
- set_fail_state("Failed to open nVault ^"%s^".",g_szVault);
- }
- public plugin_precache() {
- for (new i = 0; i < MAX_WEP_PER_PAK; i++)
- {
- if (!file_exists(g_szFirstPackage[i],false))
- set_fail_state("Failed to load model ^"%s^".",g_szFirstPackage[i]);
- if (!file_exists(g_szSecondPackage[i],false))
- set_fail_state("Failed to load model ^"%s^".",g_szSecondPackage[i]);
- if (!file_exists(g_szThirdPackage[i],false))
- set_fail_state("Failed to load model ^"%s^".",g_szThirdPackage[i]);
- precache_model(g_szFirstPackage[i]);
- precache_model(g_szSecondPackage[i]);
- precache_model(g_szThirdPackage[i]);
- }
- }
- public client_putinserver(client) {
- static szAuthID[32],szData[4],t;
- get_user_authid(client,szAuthID,charsmax(szAuthID));
- if(nvault_lookup(g_hVault,szAuthID,szData,charsmax(szData),t))
- g_iClientPaks[client] = str_to_num(szData);
- else
- g_iClientPaks[client] = 0;
- g_iClientCurrentPak[client] = 0;
- }
- public client_disconnected(client, bool:drop, message[], maxlen) {
- static szAuthID[32],szData[4];
- get_user_authid(client,szAuthID,charsmax(szAuthID));
- num_to_str(g_iClientPaks[client],szData,charsmax(szData));
- nvault_set(g_hVault,szAuthID,szData);
- }
- public cmdBuy(client) {
- static m,cb,some[128];
- formatex(some,charsmax(some),"[ JailBreak ] Weapon Models Packages^nYour cash: %d",get_user_cash(client));
- m = menu_create(some,"mHandler");
- cb = menu_makecallback("mCallback");
- if (g_iClientPaks[client] & PAK1)
- menu_additem(m,"Weapon Package #1 \d[ \yOwned \d]",.callback=cb);
- else if (g_iClientCurrentPak[client] == 1)
- menu_additem(m,"Weapon Package #1 \d[ \yCurrent Package \d]",.callback=cb);
- else
- {
- formatex(some,charsmax(some),"Weapon Package #1 \d[ \yCost: %d \d]",g_iPakCost[0]);
- menu_additem(m,some,.callback=cb);
- }
- if (g_iClientPaks[client] & PAK2)
- menu_additem(m,"Weapon Package #2 \d[ \yOwned \d]",.callback=cb);
- else if (g_iClientCurrentPak[client] == 2)
- menu_additem(m,"Weapon Package #2\d[ \yCurrent Package \d]",.callback=cb);
- else
- {
- formatex(some,charsmax(some),"Weapon Package #2 \d[ \yCost: %d \d]",g_iPakCost[1]);
- menu_additem(m,some,.callback=cb);
- }
- if (g_iClientPaks[client] & PAK3)
- menu_additem(m,"Weapon Package #3 \d[ \yOwned \d]");
- else if (g_iClientCurrentPak[client] == 3)
- menu_additem(m,"Weapon Package #3 \d[ \yCurrent Package \d]",.callback=cb);
- else
- {
- formatex(some,charsmax(some),"Weapon Package #3 \d[ \yCost: %d \d]",g_iPakCost[2]);
- menu_additem(m,some,.callback=cb);
- }
- menu_display(client,m);
- return PLUGIN_HANDLED;
- }
- public mCallback(client, menu, item) {
- return ((get_user_cash(client) < g_iPakCost[item]) || (g_iClientCurrentPak[client] == (item+1)) ? ITEM_DISABLED:ITEM_ENABLED);
- }
- public mHandler(client, menu, item) {
- if (item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- if (g_iClientPaks[client] & (1<<item))
- {
- if (g_iClientCurrentPak[client] == (item + 1))
- client_print(client,print_chat,"[AMXX] You already activate that package!");
- else
- {
- g_iClientCurrentPak[client] = (item + 1);
- change_client_model_pak(client);
- }
- }
- else
- {
- if (get_user_cash(client) < g_iPakCost[item])
- client_print(client,print_chat,"[AMXX] You don't have enought cahs to buy that package!");
- else
- {
- client_print(client,print_chat,"[AMXX] You bought yourself package %d for %d cash!",(item + 1),g_iPakCost[item]);
- set_user_cash(client,(get_user_cash(client) - g_iPakCost[item]));
- g_iClientPaks[client] &= (1<<item);
- g_iClientCurrentPak[client] = (item + 1);
- change_client_model_pak(client);
- }
- }
- menu_destroy(menu);
- return cmdBuy(client);
- }
- public fwdOnItemDeployPost(entity) {
- static client;
- if (!pev_valid(entity))
- return;
- client = get_pdata_cbase(entity,m_pPlayer,XO_LINUXOFFSETDIFF,XO_MACOFFSETDIFF);
- if (!is_user_alive(client))
- return;
- if(g_iClientPaks[client] > 0 && g_iClientCurrentPak[client] > 0)
- change_client_model_pak(client);
- }
- change_client_model_pak(client) {
- static wep;
- if (!is_user_alive(client))
- return 0;
- wep = get_user_weapon(client);
- switch(g_iClientCurrentPak[client])
- {
- case 1:
- {
- switch(wep)
- {
- case CSW_M4A1: set_pev(client,pev_viewmodel2,g_szFirstPackage[0]);
- case CSW_AK47: set_pev(client,pev_viewmodel2,g_szFirstPackage[1]);
- case CSW_USP: set_pev(client,pev_viewmodel2,g_szFirstPackage[2]);
- case CSW_GLOCK18: set_pev(client,pev_viewmodel2,g_szFirstPackage[3]);
- case CSW_FIVESEVEN: set_pev(client,pev_viewmodel2,g_szFirstPackage[4]);
- default: return 0;
- }
- }
- case 2:
- {
- switch(wep)
- {
- case CSW_M4A1: set_pev(client,pev_viewmodel2,g_szSecondPackage[0]);
- case CSW_AK47: set_pev(client,pev_viewmodel2,g_szSecondPackage[1]);
- case CSW_USP: set_pev(client,pev_viewmodel2,g_szSecondPackage[2]);
- case CSW_GLOCK18: set_pev(client,pev_viewmodel2,g_szSecondPackage[3]);
- case CSW_FIVESEVEN: set_pev(client,pev_viewmodel2,g_szSecondPackage[4]);
- default: return 0;
- }
- }
- case 3:
- {
- switch(wep)
- {
- case CSW_M4A1: set_pev(client,pev_viewmodel2,g_szThirdPackage[0]);
- case CSW_AK47: set_pev(client,pev_viewmodel2,g_szThirdPackage[1]);
- case CSW_USP: set_pev(client,pev_viewmodel2,g_szThirdPackage[2]);
- case CSW_GLOCK18: set_pev(client,pev_viewmodel2,g_szThirdPackage[3]);
- case CSW_FIVESEVEN: set_pev(client,pev_viewmodel2,g_szThirdPackage[4]);
- default: return 0;
- }
- }
- default: return 0;
- }
- return 1;
- }
Add Comment
Please, Sign In to add comment