#include <amxmodx>
#include <fakemeta>
#define PLUGIN_NAME "Change Weapon Skin (V)"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"
enum _:data
{
player_name[32],
weap_id[3],
skin_name[32]
// add ur code here
}
new Array:skins, total_skins = 0;
new name[33][32];
// aici se afla folderul din models unde se afla skin-urile
new const model_location[] = "skins_csgo";
// from zombie plague mod
// Primary and Secondary Weapon Names
new const WEAPONNAMES[][] = { "", "P228 Compact", "", "Schmidt Scout", "", "XM1014 M4", "", "Ingram MAC-10", "Steyr AUG A1",
"", "Dual Elite Berettas", "FiveseveN", "UMP 45", "SG-550 Auto-Sniper", "IMI Galil", "Famas",
"USP .45 ACP Tactical", "Glock 18C", "AWP Magnum Sniper", "MP5 Navy", "M249 Para Machinegun",
"M3 Super 90", "M4A1 Carbine", "Schmidt TMP", "G3SG1 Auto-Sniper", "", "Desert Eagle .50 AE",
"SG-552 Commando", "AK-47 Kalashnikov", "", "ES P90" };
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
register_event("CurWeapon", "event_curweapon", "be", "1=1");
_read_skins();
}
public _read_skins()
{
new path[64];
get_localinfo("amxx_configsdir", path, charsmax(path));
format(path, charsmax(path), "%s/skins.ini", path);
new file = fopen(path, "r+");
if(!file_exists(path))
{
new format_txt[128];
log_amx("Nu am gasit fisierul '%s'. Il creez acum!", path);
format(format_txt, charsmax(format_txt), "; Aici introduci numele jucatorilor si skin-ul sau (fara .mdl), dupa modelul urmator:");
write_file(path, format_txt);
format(format_txt, charsmax(format_txt), "; ^"NUME JUCATOR^" ^"ID ARMA^" ^"NUME SKIN^"^n");
write_file(path, format_txt);
format(format_txt, charsmax(format_txt), "; Modelele le pui in folderul din 'models/%s/'", model_location);
write_file(path, format_txt);
format(format_txt, charsmax(format_txt), "; ID ARMA disponibile:^n");
write_file(path, format_txt);
for(new i = 1; i <= CSW_P90; i++)
{
if(!equal(WEAPONNAMES, ""))
{
format(format_txt, charsmax(format_txt), ";%d - %s", i, WEAPONNAMES);
write_file(path, format_txt);
}
}
write_file(path, "^n^n^"YONTU^" ^"26^" ^"v_m4a1^" ");
}
if(total_skins)
{
ArrayClear(skins);
total_skins = 0;
}
skins = ArrayCreate(data);
new text[32], player_data[data], data_text[data];
while(!feof(file))
{
fgets(file, text, charsmax(text));
trim(text);
if(text[0] == ';' || !strlen(text))
{
continue;
}
parse(text, player_data[player_name], charsmax(player_data), player_data[weap_id], charsmax(player_data), player_data[skin_name], charsmax(player_data));
copy(data_text[player_name], charsmax(data_text), player_data[player_name]);
copy(data_text[weap_id], charsmax(data_text), player_data[weap_id]);
copy(data_text[skin_name], charsmax(data_text), player_data[skin_name]);
ArrayPushArray(skins, data_text);
total_skins++;
}
fclose(file);
}
public plugin_end()
{
ArrayDestroy(skins);
}
public plugin_precache()
{
new data_text[data], buffer[100];
for(new i = 0; i < total_skins; i++)
{
ArrayGetArray(skins, i, data_text);
format(buffer, charsmax(buffer), "models/%s/%s/%s.mdl", model_location, data_text[skin_name], data_text[skin_name]);
precache_model(buffer);
}
}
public client_putinserver(id)
{
get_user_name(id, name[id], charsmax(name));
}
public event_curweapon(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED;
new weaponid, data_text[data], p_name[32];
weaponid = read_data(2);
get_user_name(id, p_name, charsmax(p_name));
for(new i = 0; i < total_skins; i++)
{
ArrayGetArray(skins, i, data_text);
if(equal(p_name, data_text[player_name]))
{
if(weaponid == str_to_num(data_text[weap_id]))
{
set_pev(id, pev_viewmodel2, data_text[skin_name]);
break;
}
}
}
return PLUGIN_CONTINUE;
}