|
Senior Member
|

12-11-2015
, 07:02
One skin disappears, the other doesn't problem
|
#1
|
what can be the problem? I have a modpack where you can choose skins for a gun. Some guns are bugged and they make other gun skins disappear. For examle: I chosed a skin for M4A1, knife(they don't disappear), when I choose a glock skin, the M4A1 skin disappears(it shows a default skin), but the knife skin doesn't. If I choose M4A1, knife and USP skins, they don't disappear, all 3 are visible. The same problem is with P90, fiveseven and a few other guns. If you don't understand me, I can make a video.
Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#define MAX 50
#define PointsMin 3
#define PointsMax 8
#define Drop 10
#define MarkMin 25
new WeaponNames[MAX][32], WeaponMdls[MAX][48], Weapons[MAX], WeaponDrop[MAX], AllWeapon;
new UsingWeapon[3][33], uWeapon[MAX][33], Chest[33], pKey[33], Points[33], Rang[33], Kills[33],
aThing[33], aTarget[33], aPoints[33], Prefix[32];
new Folder[48], SkinFile[48], SaveFile[48], RegisterFile[48], DefaultSkinFile[48], RangFile[48], MenuMod[33], SayText;
new WeaponinMarket[33], inMarket[33], MarketPoints[33], Choosen[33];
new SavedPassword[33][32], bool:Loged[33], Password[33][32];
new DefaultSkin[31][32], NeedKills[30], Rangs[30][32];
new const eWeapon[][] =
{
"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"
};
public plugin_precache() {
new Line[128], Data[4][48], Len;
AllWeapon++;
get_configsdir(Folder, 47);
format(SkinFile, 47, "%s/csgo/skins.cfg", Folder);
format(SaveFile, 47, "%s/csgo/save.ini", Folder);
format(RangFile, 47, "%s/csgo/rangs.cfg", Folder);
format(RegisterFile, 47, "%s/csgo/reg.ini", Folder);
format(DefaultSkinFile, 47, "%s/csgo/dskins.cfg", Folder);
format(Prefix, 31, "[Global Offensive]");
if(file_exists(RangFile))
{
for(new i; i < file_size(RangFile, 1); i++)
{
read_file(RangFile, i, Line, 127, Len);
parse(Line, Data[0], 31, Data[1], 31);
copy(Rangs[i], 31, Data[0]);
NeedKills[i] = str_to_num(Data[1]);
}
}
if(file_exists(SkinFile))
{
for(new i; i < file_size(SkinFile, 1); i++)
{
read_file(SkinFile, i, Line, 127, Len);
if(strlen(Line) < 5 || Line[0] == ';')
continue;
parse(Line, Data[0], 31, Data[1], 31, Data[2], 47, Data[3], 31);
Weapons[AllWeapon] = str_to_num(Data[0]);
copy(WeaponNames[AllWeapon], 31, Data[1]);
if(ValidMdl(Data[2])) {
precache_model(Data[2]);
copy(WeaponMdls[AllWeapon], 47, Data[2]);
}
WeaponDrop[AllWeapon] = str_to_num(Data[3]);
AllWeapon++;
}
}
if(file_exists(DefaultSkinFile))
{
for(new i; i < file_size(DefaultSkinFile, 1); i++)
{
read_file(DefaultSkinFile, i, Line, 127, Len);
if(strlen(Line) < 5 || Line[0] == ';')
continue;
parse(Line, Data[0], 31, Data[1], 47);
if(ValidMdl(Data[1])) {
precache_model(Data[1]);
copy(DefaultSkin[str_to_num(Data[0])], 47, Data[1]);
}
}
}
}
public plugin_init() {
register_dictionary("globaloffensive.txt");
register_plugin(PLUGIN, VERSION, AUTHOR);
register_cvar(PLUGIN, VERSION, FCVAR_SERVER);
register_clcmd("say /menu", "MenuOpen");
register_clcmd("say /reg", "RegMenu");
register_concmd("Cost", "MarketCost");
register_concmd("Gift", "GiftPoint");
register_concmd("UserPassword", "PlayerPassword");
SayText = get_user_msgid("SayText");
register_message(get_user_msgid("SayText"),"handleSayText");
register_forward(FM_ClientUserInfoChanged, "NameChange");
for(new i; i < sizeof(eWeapon); i++)
{
RegisterHam(Ham_Item_Deploy, eWeapon[i], "WeaponSwitch", 1);
}
register_clcmd("say", "hundleSayText");
register_clcmd("say_team", "hundleSayText");
set_task(67.3, "Message", 7217, _, _, "b");
}
public handleSayText(msgId, msgDest, msgEnt){
new id = get_msg_arg_int(1);
if(is_user_connected(id)){
new szTmp[256],
szTmp2[256];
get_msg_arg_string(2, szTmp, charsmax(szTmp));
new szPrefix[64]
formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",Rangs[Rang[id]]);
if(!equal(szTmp, "#Cstrike_Chat_All")){
add(szTmp2, charsmax(szTmp2), szPrefix);
add(szTmp2, charsmax(szTmp2), " ");
add(szTmp2, charsmax(szTmp2), szTmp);
}
else{
add(szTmp2, charsmax(szTmp2), szPrefix);
add(szTmp2, charsmax(szTmp2), "^x03 %s1^x01 : %s2");
}
set_msg_arg_string(2, szTmp2);
}
return PLUGIN_CONTINUE;
}
public MenuOpen(id)
{
if(!Loged[id])
{
RegMenu(id);
return;
}
MenuMod[id] = 0;
Menu(id);
}
public client_death(Killer, Victim)
{
if(Killer == Victim)
{
return PLUGIN_HANDLED;
}
Kills[Killer]++;
if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 1))
{
if(Kills[Killer] >= NeedKills[Rang[Killer]])
Rang[Killer]++;
}
new pPont, Name[32];
pPont += random_num(PointsMin, PointsMax);
Points[Killer] += pPont;
set_hudmessage(160, 160, 160, -1.0, 0.15, 2, 0.1, 1);
show_hudmessage(Killer, "%L", LANG_SERVER, "POINT", pPont);
if(Drop >= random_num(1, 100))
{
get_user_name(Killer, Name, 31);
new x = random_num(1, 2);
if(x == 1)
{
pKey[Killer]++;
print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDKEY", Name);
}
if(x == 2)
{
Chest[Killer]++;
print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDCHEST", Name);
}
}
Save(Killer);
return PLUGIN_CONTINUE;
}
public MarketCost(id)
{
if(inMarket[id] || !Loged[id])
return PLUGIN_HANDLED;
new Data[32], Cost;
read_args(Data, 31);
remove_quotes(Data);
Cost = str_to_num(Data);
if(Cost < 0)
{
client_cmd(id, "messagemode Cost");
return PLUGIN_HANDLED;
}
else if(MarkMin >= Cost)
{
print_color(id, "%s %L", Prefix, LANG_SERVER, "NOTENOUGHTMARKET", MarkMin);
client_cmd(id, "messagemode Cost");
return PLUGIN_HANDLED;
}
else
{
MarketPoints[id] = Cost;
Menu(id);
MenuMod[id] = 3;
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public GiftPoint(id)
{
if(inMarket[id] || !Loged[id])
return PLUGIN_HANDLED;
new Data[32], Cost;
read_args(Data, 31);
remove_quotes(Data);
Cost = str_to_num(Data);
if(Cost < 0 || Points[id] < Cost)
{
client_cmd(id, "messagemode Gift");
return PLUGIN_HANDLED;
}
else
{
aPoints[id] = Cost;
Menu(id);
MenuMod[id] = 5;
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public WeaponSwitch(Weapon) {
new id = get_pdata_cbase(Weapon, 41, 4);
new wid = cs_get_weapon_id(Weapon);
if(id > 32 || id < 1)
{
return HAM_SUPERCEDE;
}
for(new i = 1; i < AllWeapon; i++)
{
if(i == UsingWeapon[0][id])
{
if(wid == Weapons[i])
{
set_pev(id, pev_viewmodel2, WeaponMdls[i]);
return HAM_SUPERCEDE;
}
}
else if(i == UsingWeapon[1][id])
{
if(wid == Weapons[i])
{
set_pev(id, pev_viewmodel2, WeaponMdls[i]);
return HAM_SUPERCEDE;
}
}
else if(i == UsingWeapon[2][id])
{
if(wid == Weapons[i])
{
set_pev(id, pev_viewmodel2, WeaponMdls[i]);
return HAM_SUPERCEDE;
}
}
}
if(ValidMdl(DefaultSkin[wid]))
{
set_pev(id, pev_viewmodel2, DefaultSkin[wid]);
}
return HAM_IGNORED;
}
|
|