Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Skinchanger.h"
- #include "KitParser.h"
- #include <sstream>
- #include <cereal/archives/json.hpp>
- static CreateClientClassFn GetWearableCreateFn()
- {
- auto clazz = g_CHLClient->GetAllClasses();
- while (strcmp(clazz->m_pNetworkName, "CEconWearable"))
- clazz = clazz->m_pNext;
- return clazz->m_pCreateFn;
- }
- void Skinchanger::Run()
- {
- // Skin config
- static auto ConfigCreated = false;
- if (!ConfigCreated)
- {
- InitSkins();
- ConfigCreated = true;
- }
- // Only run in-game
- if (!g_EngineClient->IsInGame()) return;
- // g_LocalPlayer is nulled during this FSN stage, so have to do this.
- auto* pLocal = static_cast<C_BasePlayer*>(g_EntityList->GetClientEntity(g_EngineClient->GetLocalPlayer()));
- if (!pLocal) return;
- // Populate player info struct for XUID ids
- player_info_t player_info;
- if (!g_EngineClient->GetPlayerInfo(pLocal->EntIndex(), &player_info)) return;
- // Glove stuff
- {
- auto wearables = pLocal->m_hMyWearables();
- static CBaseHandle glove_handle = 0;
- auto glove = reinterpret_cast<C_BaseAttributableItem*>(g_EntityList->GetClientEntityFromHandle(wearables[0]));
- if (!glove)
- {
- auto our_glove = reinterpret_cast<C_BaseAttributableItem*>(g_EntityList->GetClientEntityFromHandle(glove_handle));
- if (our_glove)
- {
- wearables[0] = glove_handle;
- glove = our_glove;
- }
- }
- if (!pLocal->IsAlive())
- {
- auto glove = static_cast<C_BaseAttributableItem*>(g_EntityList->GetClientEntityFromHandle(*pLocal->m_hMyWearables()));
- if (!glove)
- return;
- glove->GetClientNetworkable()->SetDestroyedOnRecreateEntities();
- glove->GetClientNetworkable()->Release();
- return;
- }
- if (!glove)
- {
- static auto create_wearable_fn = GetWearableCreateFn();
- auto entry = g_EntityList->GetHighestEntityIndex() + 1;
- auto serial = rand() % 0x1000;
- //glove = static_cast<C_BaseAttributableItem*>(create_wearable_fn(entry, serial));
- create_wearable_fn(entry, serial);
- glove = reinterpret_cast<C_BaseAttributableItem*>(g_EntityList->GetClientEntity(entry));
- {
- static auto set_abs_origin_fn = reinterpret_cast<void(__thiscall*)(void*, const Vector&)>
- (Utilities::PatternScan(GetModuleHandle("client.dll"), "55 8B EC 83 E4 F8 51 53 56 57 8B F1"));
- static const Vector new_pos = { 10000.f, 10000.f, 10000.f };
- set_abs_origin_fn(glove, new_pos);
- }
- wearables[0] = entry | serial << 16;
- glove_handle = wearables[0];
- }
- *reinterpret_cast<int*>(uintptr_t(glove) + 0x64) = -1;
- ApplyGlove(glove);
- }
- const auto weapons = pLocal->m_hMyWeapons();
- for (size_t i = 0; weapons[i].IsValid(); i++)
- {
- auto pWeapon = static_cast<C_BaseAttributableItem*>(g_EntityList->GetClientEntityFromHandle(weapons[i]));
- if (!pWeapon) continue;
- int nWeaponIndex = pWeapon->m_nModelIndex();
- const auto nOriginalKnifeCT = g_ModelInfo->GetModelIndex("models/weapons/v_knife_default_ct.mdl");
- const auto nOriginalKnifeT = g_ModelInfo->GetModelIndex("models/weapons/v_knife_default_t.mdl");
- if (nWeaponIndex == nOriginalKnifeCT || nWeaponIndex == nOriginalKnifeT)
- pWeapon->m_nModelIndex() = g_ModelInfo->GetModelIndex(ItemDefinitions::WeaponInfo.at(KnifeCfg.iItemDefinitionIndex).model);
- ApplyModel(pLocal, pWeapon);
- ApplySkin(pWeapon, player_info);
- ApplyStickerHooks(pWeapon);
- }
- }
- void Skinchanger::Dump()
- {
- try
- {
- if (CreateDirectory("C:\\black_panties\\dump", NULL) ||
- ERROR_ALREADY_EXISTS == GetLastError())
- {
- KitParser::Get().Dump();
- } else
- {
- g_Warning("Couldn't create folder\n");
- Utilities::ConsolePrint("Couldn't create folder");
- }
- } catch (const std::exception& ex)
- {
- g_Warning(ex.what());
- g_Msg("\n");
- Utilities::ConsolePrint(ex.what());
- }
- }
- void Skinchanger::LoadSkins()
- {
- InitSkins();
- try
- {
- if (CreateDirectory("C:\\black_panties", NULL) ||
- ERROR_ALREADY_EXISTS == GetLastError())
- {
- std::ifstream is("C:\\black_panties\\skins.json");
- if (is.good())
- {
- cereal::JSONInputArchive iarchive(is);
- iarchive(cereal::make_nvp("weapons", WeaponCfg),
- cereal::make_nvp("knife", KnifeCfg),
- cereal::make_nvp("gloves", GloveCfg));
- } else
- {
- g_Warning("skins.json not found, creating...\n");
- std::ofstream os("C:\\black_panties\\skins.json");
- cereal::JSONOutputArchive oarchive(os, cereal::JSONOutputArchive::Options::Options(3));
- oarchive(cereal::make_nvp("weapons", WeaponCfg),
- cereal::make_nvp("knife", KnifeCfg),
- cereal::make_nvp("gloves", GloveCfg));
- }
- } else
- {
- g_Warning("Couldn't create folder\n");
- Utilities::ConsolePrint("Couldn't create folder");
- }
- } catch (const std::exception& ex)
- {
- g_Warning(ex.what());
- g_Msg("\n");
- Utilities::ConsolePrint(ex.what());
- }
- g_ClientState->ForceFullUpdate();
- }
- const char* Skinchanger::GetIconOverride(const std::string & original)
- {
- if (original == "knife_default_ct" || original == "knife_t") return ItemDefinitions::WeaponInfo.at(KnifeCfg.iItemDefinitionIndex).icon;
- return nullptr;
- }
- void Skinchanger::ApplySkin(C_BaseAttributableItem* pWeapon, player_info_t pInfo)
- {
- auto& nWeaponIndex = pWeapon->m_Item().m_iItemDefinitionIndex();
- if (nWeaponIndex == WEAPON_KNIFE || nWeaponIndex == WEAPON_KNIFE_T || nWeaponIndex == KnifeCfg.iItemDefinitionIndex)
- {
- pWeapon->m_iItemDefinitionIndex() = KnifeCfg.iItemDefinitionIndex;
- pWeapon->m_Item().m_nFallbackPaintKit() = KnifeCfg.nFallbackPaintKit;
- pWeapon->m_Item().m_iEntityQuality() = KnifeCfg.iEntityQuality;
- pWeapon->m_Item().m_nFallbackSeed() = KnifeCfg.nFallbackSeed;
- pWeapon->m_Item().m_nFallbackStatTrak() = KnifeCfg.nFallbackStatTrak;
- pWeapon->m_Item().m_flFallbackWear() = std::max(0.01f, KnifeCfg.flFallbackWear);
- strcpy(&pWeapon->m_Item().m_szCustomName(), KnifeCfg.szCustomName.c_str());
- pWeapon->m_Item().m_iAccountID() = pInfo.xuid_low;
- pWeapon->m_Item().m_iItemIDHigh() = -1;
- } else if (WeaponCfg.find(nWeaponIndex) == WeaponCfg.end()) return;
- else
- {
- const auto cfg = WeaponCfg[nWeaponIndex];
- pWeapon->m_Item().m_nFallbackPaintKit() = cfg.nFallbackPaintKit;
- pWeapon->m_Item().m_iEntityQuality() = cfg.iEntityQuality;
- pWeapon->m_Item().m_nFallbackSeed() = cfg.nFallbackSeed;
- pWeapon->m_Item().m_nFallbackStatTrak() = cfg.nFallbackStatTrak;
- pWeapon->m_Item().m_flFallbackWear() = std::max(0.01f, cfg.flFallbackWear);
- strcpy(&pWeapon->m_Item().m_szCustomName(), cfg.szCustomName.c_str());
- pWeapon->m_Item().m_iAccountID() = pInfo.xuid_low;
- pWeapon->m_Item().m_iItemIDHigh() = -1;
- }
- }
- void Skinchanger::ApplyModel(C_BasePlayer* pLocal, C_BaseAttributableItem* pWeapon)
- {
- auto pViewModel = pLocal->m_hViewModel();
- if (!pViewModel) return;
- auto hViewModelWeapon = pViewModel->m_hWeapon();
- auto pViewModelWeapon = static_cast<C_BaseAttributableItem*>(g_EntityList->GetClientEntityFromHandle(hViewModelWeapon));
- if (pViewModelWeapon != pWeapon) return;
- int nViewModelIndex = pViewModel->m_nModelIndex();
- const auto nOriginalKnifeCT = g_ModelInfo->GetModelIndex("models/weapons/v_knife_default_ct.mdl");
- const auto nOriginalKnifeT = g_ModelInfo->GetModelIndex("models/weapons/v_knife_default_t.mdl");
- if (nViewModelIndex == nOriginalKnifeCT || nViewModelIndex == nOriginalKnifeT)
- pViewModel->m_nModelIndex() = g_ModelInfo->GetModelIndex(ItemDefinitions::WeaponInfo.at(KnifeCfg.iItemDefinitionIndex).model);
- }
- void Skinchanger::ApplyGlove(C_BaseAttributableItem* pGlove)
- {
- pGlove->m_iItemDefinitionIndex() = GloveCfg.iItemDefinitionIndex;
- pGlove->m_Item().m_nFallbackPaintKit() = GloveCfg.nFallbackPaintKit;
- pGlove->m_Item().m_nFallbackSeed() = GloveCfg.nFallbackSeed;
- pGlove->m_Item().m_flFallbackWear() = std::max(0.01f, GloveCfg.flFallbackWear);
- pGlove->m_Item().m_iItemIDHigh() = -1;
- pGlove->m_Item().m_nModelIndex() = g_ModelInfo->GetModelIndex(ItemDefinitions::WeaponInfo.at(GloveCfg.iItemDefinitionIndex).model);
- pGlove->m_Item().PreDataUpdate(0);
- }
- void Skinchanger::InitSkins()
- {
- WeaponCfg[WEAPON_DEAGLE].nFallbackPaintKit = 37; //deagle skin
- WeaponCfg[WEAPON_DEAGLE].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_DEAGLE].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_DEAGLE].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_DEAGLE].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_GLOCK].nFallbackPaintKit = 3; //glock skin
- WeaponCfg[WEAPON_GLOCK].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_GLOCK].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_GLOCK].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_GLOCK].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_P250].nFallbackPaintKit = 404; //p250 skin
- WeaponCfg[WEAPON_P250].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_P250].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_P250].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_P250].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_TEC9].nFallbackPaintKit = 216; //tec9 skin
- WeaponCfg[WEAPON_TEC9].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_TEC9].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_TEC9].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_TEC9].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_USP_SILENCER].nFallbackPaintKit = 313; //usp skin
- WeaponCfg[WEAPON_USP_SILENCER].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_USP_SILENCER].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_USP_SILENCER].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_USP_SILENCER].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_AK47].nFallbackPaintKit = 180; //ak skin
- WeaponCfg[WEAPON_AK47].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_AK47].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_AK47].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_AK47].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_AWP].nFallbackPaintKit = 344; //awp skin
- WeaponCfg[WEAPON_AWP].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_AWP].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_AWP].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_AWP].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_M4A1_SILENCER].nFallbackPaintKit = 321; //m4a1-s skin
- WeaponCfg[WEAPON_M4A1_SILENCER].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_M4A1_SILENCER].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_M4A1_SILENCER].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_M4A1_SILENCER].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_M4A1].nFallbackPaintKit = 309; //m4a4 skin
- WeaponCfg[WEAPON_M4A1].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_M4A1].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_M4A1].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_M4A1].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_SSG08].nFallbackPaintKit = 624; //ssg08 skin
- WeaponCfg[WEAPON_SSG08].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_SSG08].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_SSG08].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_SSG08].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_UMP45].nFallbackPaintKit = 37; //ump45 skin
- WeaponCfg[WEAPON_UMP45].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_UMP45].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_UMP45].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_UMP45].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_CZ75A].nFallbackPaintKit = 476; //cz skin
- WeaponCfg[WEAPON_CZ75A].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_CZ75A].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_CZ75A].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_CZ75A].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_MP9].nFallbackPaintKit = 448; //mp9 skin
- WeaponCfg[WEAPON_MP9].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_MP9].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_MP9].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_MP9].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_SCAR20].nFallbackPaintKit = 597; //scar20 skin
- WeaponCfg[WEAPON_SCAR20].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_SCAR20].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_SCAR20].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_SCAR20].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_HKP2000].nFallbackPaintKit = 389; //p2000 skin
- WeaponCfg[WEAPON_HKP2000].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_HKP2000].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_HKP2000].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_HKP2000].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_AUG].nFallbackPaintKit = 455; //aug skin
- WeaponCfg[WEAPON_AUG].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_AUG].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_AUG].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_AUG].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_REVOLVER].nFallbackPaintKit = 12; //revolver skin
- WeaponCfg[WEAPON_REVOLVER].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_REVOLVER].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_REVOLVER].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_REVOLVER].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_FIVESEVEN].nFallbackPaintKit = 3; //five7 skin
- WeaponCfg[WEAPON_FIVESEVEN].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_FIVESEVEN].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_FIVESEVEN].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_FIVESEVEN].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_FAMAS].nFallbackPaintKit = 260; //famas skin
- WeaponCfg[WEAPON_FAMAS].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_FAMAS].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_FAMAS].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_FAMAS].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_GALILAR].nFallbackPaintKit = 228; //galil skin
- WeaponCfg[WEAPON_GALILAR].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_GALILAR].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_GALILAR].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_GALILAR].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_SG556].nFallbackPaintKit = 260; //ssg556 skin
- WeaponCfg[WEAPON_SG556].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_SG556].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_SG556].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_SG556].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_MAC10].nFallbackPaintKit = 433; //mac skin
- WeaponCfg[WEAPON_MAC10].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_MAC10].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_MAC10].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_MAC10].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_BIZON].nFallbackPaintKit = 349; //bizon skin
- WeaponCfg[WEAPON_BIZON].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_BIZON].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_BIZON].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_BIZON].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_MP7].nFallbackPaintKit = 423; //mp7 skin
- WeaponCfg[WEAPON_MP7].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_MP7].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_MP7].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_MP7].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_P90].nFallbackPaintKit = 156; //p90 skin
- WeaponCfg[WEAPON_P90].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_P90].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_P90].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_P90].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_ELITE].nFallbackPaintKit = 249; //duals skin
- WeaponCfg[WEAPON_ELITE].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_ELITE].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_ELITE].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_ELITE].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_NEGEV].nFallbackPaintKit = 514; //negev skin
- WeaponCfg[WEAPON_NEGEV].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_NEGEV].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_NEGEV].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_NEGEV].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_SAWEDOFF].nFallbackPaintKit = 596; //sawedoff skin
- WeaponCfg[WEAPON_SAWEDOFF].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_SAWEDOFF].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_SAWEDOFF].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_SAWEDOFF].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_XM1014].nFallbackPaintKit = 654; //xm skin
- WeaponCfg[WEAPON_XM1014].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_XM1014].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_XM1014].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_XM1014].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_NOVA].nFallbackPaintKit = 3; //nova skin
- WeaponCfg[WEAPON_NOVA].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_NOVA].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_NOVA].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_NOVA].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_M249].nFallbackPaintKit = 496; //m249 skin
- WeaponCfg[WEAPON_M249].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_M249].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_M249].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_M249].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_MAG7].nFallbackPaintKit = 499; //mag7 skin
- WeaponCfg[WEAPON_MAG7].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_MAG7].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_MAG7].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_MAG7].stickers[3].nIndex = 76;
- WeaponCfg[WEAPON_G3SG1].nFallbackPaintKit = 511; //mg3sg1 skin
- WeaponCfg[WEAPON_G3SG1].stickers[0].nIndex = 76;
- WeaponCfg[WEAPON_G3SG1].stickers[1].nIndex = 76;
- WeaponCfg[WEAPON_G3SG1].stickers[2].nIndex = 76;
- WeaponCfg[WEAPON_G3SG1].stickers[3].nIndex = 76;
- KnifeCfg.iItemDefinitionIndex = WEAPON_KNIFE_KARAMBIT;
- KnifeCfg.nFallbackPaintKit = 561;
- GloveCfg.iItemDefinitionIndex = GLOVE_STUDDED_BLOODHOUND;
- GloveCfg.nFallbackPaintKit = 10037;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement