Page 2 of 2

Re: Cerere plugin /skinuri

Posted: 08 Feb 2019, 21:55
by ForWWarD
Nu este cum vreau eu, eu vreau cand apesi /skin sa apara un meniu sa pui 5 skin-uri numele si modele le aleg eu dupa, doar sa fie 5 sloturi mai exact pentru skin-uri, si sa fie doar pe un flag cum vreau eu , un exemplu admin_level_h [T]

Re: Cerere plugin /skinuri

Posted: 09 Feb 2019, 01:48
by LondoN eXtream
ForWWarD wrote:Vreau si eu plugin acesta dar sa fie cu urmatoarele: /skin doar la un flag anume, si sa aiba in meniu 5 skin-uri sa puna pe arma,
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fvault>

#define is_user_valid(%1) (1 <= %1 <= get_maxplayers())

#define VAULT_NAME	"arme_5"

new g_Models[][] = {
	"models/5skinuri/1.mdl",
	"models/5skinuri/2.mdl",
	"models/5skinuri/3.mdl",
	"models/5skinuri/4.mdl",
	"models/5skinuri/5.mdl"
};

new g_SkinID[33];

public plugin_precache()
{
	for(new i = 0; i < sizeof(g_Models); i++)
		engfunc(EngFunc_PrecacheModel, g_Models);
}

public plugin_init()
{
	register_plugin("5 Skinuri", "1.0", "LondoN eXtream");
	register_event("CurWeapon", "event_curweapon", "be");
	register_clcmd("say /skin", "MenuSkin", ADMIN_LEVEL_H);
}

public MenuSkin(Player)
{
	new menu = menu_create("\w[\rVIP Skins\w] \yAlegeti un \rSkin \y!", "menu_handler");

	menu_additem(menu, "\wSkin \rDeagle");
	menu_additem(menu, "\wSkin \rAWP");
	menu_additem(menu, "\wSkin \rM4A1-S");
	menu_additem(menu, "\wSkin \rAK47");
	menu_additem(menu, "\wSkin \rKNIFE");

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(Player, menu, 0);

	return;
}	

public menu_handler(Player, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}

	new w = get_user_weapon(Player);

	g_SkinID[Player] = item;

	switch(item)
	{
		case 0:	if(w == CSW_DEAGLE)	set_pev(Player, pev_viewmodel2, g_Models[0]);
		case 1:	if(w == CSW_AWP)	set_pev(Player, pev_viewmodel2, g_Models[1]);
		case 2:	if(w == CSW_M4A1)	set_pev(Player, pev_viewmodel2, g_Models[2]);
		case 3:	if(w == CSW_AK47)	set_pev(Player, pev_viewmodel2, g_Models[3]);
		case 4:	if(w == CSW_KNIFE)	set_pev(Player, pev_viewmodel2, g_Models[4]);
	}
}

public client_connect(Player)
{
	if(is_user_bot(Player) || is_user_hltv(Player))
		return;

	new name[32], data[16];
	get_user_name(Player, name, charsmax(name));
	if(fvault_get_data(VAULT_NAME, name, data, charsmax(data)))
		g_SkinID[Player] = str_to_num(data);
}

public client_disconnect(Player)
{
	if(is_user_bot(Player) || is_user_hltv(Player))
		return;

	new name[32];
	get_user_name(Player, name, charsmax(name));
	fvault_set_data(VAULT_NAME, name, g_SkinID[Player]);
}

public event_curweapon(Player)
{
	if(!is_user_valid(Player))
		return;

	new w = get_user_weapon(Player);

	if(w == CSW_DEAGLE)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_AWP)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_M4A1)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_AK47)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_KNIFE)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
}


Skinurile se si salveaza..gen daca ai skin pe ak si intri peste o ora iti pune iar skinul de pe ak..

Re: Cerere plugin /skinuri

Posted: 09 Feb 2019, 19:54
by ForWWarD
LondoN eXtream wrote:
ForWWarD wrote:Vreau si eu plugin acesta dar sa fie cu urmatoarele: /skin doar la un flag anume, si sa aiba in meniu 5 skin-uri sa puna pe arma,
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fvault>

#define is_user_valid(%1) (1 <= %1 <= get_maxplayers())

#define VAULT_NAME	"arme_5"

new g_Models[][] = {
	"models/5skinuri/1.mdl",
	"models/5skinuri/2.mdl",
	"models/5skinuri/3.mdl",
	"models/5skinuri/4.mdl",
	"models/5skinuri/5.mdl"
};

new g_SkinID[33];

public plugin_precache()
{
	for(new i = 0; i < sizeof(g_Models); i++)
		engfunc(EngFunc_PrecacheModel, g_Models);
}

public plugin_init()
{
	register_plugin("5 Skinuri", "1.0", "LondoN eXtream");
	register_event("CurWeapon", "event_curweapon", "be");
	register_clcmd("say /skin", "MenuSkin", ADMIN_LEVEL_H);
}

public MenuSkin(Player)
{
	new menu = menu_create("\w[\rVIP Skins\w] \yAlegeti un \rSkin \y!", "menu_handler");

	menu_additem(menu, "\wSkin \rDeagle");
	menu_additem(menu, "\wSkin \rAWP");
	menu_additem(menu, "\wSkin \rM4A1-S");
	menu_additem(menu, "\wSkin \rAK47");
	menu_additem(menu, "\wSkin \rKNIFE");

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(Player, menu, 0);

	return;
}	

public menu_handler(Player, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}

	new w = get_user_weapon(Player);

	g_SkinID[Player] = item;

	switch(item)
	{
		case 0:	if(w == CSW_DEAGLE)	set_pev(Player, pev_viewmodel2, g_Models[0]);
		case 1:	if(w == CSW_AWP)	set_pev(Player, pev_viewmodel2, g_Models[1]);
		case 2:	if(w == CSW_M4A1)	set_pev(Player, pev_viewmodel2, g_Models[2]);
		case 3:	if(w == CSW_AK47)	set_pev(Player, pev_viewmodel2, g_Models[3]);
		case 4:	if(w == CSW_KNIFE)	set_pev(Player, pev_viewmodel2, g_Models[4]);
	}
}

public client_connect(Player)
{
	if(is_user_bot(Player) || is_user_hltv(Player))
		return;

	new name[32], data[16];
	get_user_name(Player, name, charsmax(name));
	if(fvault_get_data(VAULT_NAME, name, data, charsmax(data)))
		g_SkinID[Player] = str_to_num(data);
}

public client_disconnect(Player)
{
	if(is_user_bot(Player) || is_user_hltv(Player))
		return;

	new name[32];
	get_user_name(Player, name, charsmax(name));
	fvault_set_data(VAULT_NAME, name, g_SkinID[Player]);
}

public event_curweapon(Player)
{
	if(!is_user_valid(Player))
		return;

	new w = get_user_weapon(Player);

	if(w == CSW_DEAGLE)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_AWP)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_M4A1)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_AK47)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_KNIFE)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
}


Skinurile se si salveaza..gen daca ai skin pe ak si intri peste o ora iti pune iar skinul de pe ak..

Nu e ok... adica daca intru fara sa am nimic, imi arata awp la knife gen si ak47 la usp. si daca aleg o arma cum ar fi ak47 atunci se pune skinu peste tot usp etc.. testeaza te rog si revin-o cu edit mersi.

Re: Cerere plugin /skinuri

Posted: 11 Feb 2019, 16:43
by ForWWarD
ForWWarD wrote:
LondoN eXtream wrote:
ForWWarD wrote:Vreau si eu plugin acesta dar sa fie cu urmatoarele: /skin doar la un flag anume, si sa aiba in meniu 5 skin-uri sa puna pe arma,
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fvault>

#define is_user_valid(%1) (1 <= %1 <= get_maxplayers())

#define VAULT_NAME	"arme_5"

new g_Models[][] = {
	"models/5skinuri/1.mdl",
	"models/5skinuri/2.mdl",
	"models/5skinuri/3.mdl",
	"models/5skinuri/4.mdl",
	"models/5skinuri/5.mdl"
};

new g_SkinID[33];

public plugin_precache()
{
	for(new i = 0; i < sizeof(g_Models); i++)
		engfunc(EngFunc_PrecacheModel, g_Models);
}

public plugin_init()
{
	register_plugin("5 Skinuri", "1.0", "LondoN eXtream");
	register_event("CurWeapon", "event_curweapon", "be");
	register_clcmd("say /skin", "MenuSkin", ADMIN_LEVEL_H);
}

public MenuSkin(Player)
{
	new menu = menu_create("\w[\rVIP Skins\w] \yAlegeti un \rSkin \y!", "menu_handler");

	menu_additem(menu, "\wSkin \rDeagle");
	menu_additem(menu, "\wSkin \rAWP");
	menu_additem(menu, "\wSkin \rM4A1-S");
	menu_additem(menu, "\wSkin \rAK47");
	menu_additem(menu, "\wSkin \rKNIFE");

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(Player, menu, 0);

	return;
}	

public menu_handler(Player, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}

	new w = get_user_weapon(Player);

	g_SkinID[Player] = item;

	switch(item)
	{
		case 0:	if(w == CSW_DEAGLE)	set_pev(Player, pev_viewmodel2, g_Models[0]);
		case 1:	if(w == CSW_AWP)	set_pev(Player, pev_viewmodel2, g_Models[1]);
		case 2:	if(w == CSW_M4A1)	set_pev(Player, pev_viewmodel2, g_Models[2]);
		case 3:	if(w == CSW_AK47)	set_pev(Player, pev_viewmodel2, g_Models[3]);
		case 4:	if(w == CSW_KNIFE)	set_pev(Player, pev_viewmodel2, g_Models[4]);
	}
}

public client_connect(Player)
{
	if(is_user_bot(Player) || is_user_hltv(Player))
		return;

	new name[32], data[16];
	get_user_name(Player, name, charsmax(name));
	if(fvault_get_data(VAULT_NAME, name, data, charsmax(data)))
		g_SkinID[Player] = str_to_num(data);
}

public client_disconnect(Player)
{
	if(is_user_bot(Player) || is_user_hltv(Player))
		return;

	new name[32];
	get_user_name(Player, name, charsmax(name));
	fvault_set_data(VAULT_NAME, name, g_SkinID[Player]);
}

public event_curweapon(Player)
{
	if(!is_user_valid(Player))
		return;

	new w = get_user_weapon(Player);

	if(w == CSW_DEAGLE)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_AWP)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_M4A1)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_AK47)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_KNIFE)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
}


Skinurile se si salveaza..gen daca ai skin pe ak si intri peste o ora iti pune iar skinul de pe ak..

Nu e ok... adica daca intru fara sa am nimic, imi arata awp la knife gen si ak47 la usp. si daca aleg o arma cum ar fi ak47 atunci se pune skinu peste tot usp etc.. testeaza te rog si revin-o cu edit mersi.
Bump

Re: Cerere plugin /skinuri

Posted: 12 Feb 2019, 21:55
by ForWWarD
ForWWarD wrote:
ForWWarD wrote:
LondoN eXtream wrote:
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fvault>

#define is_user_valid(%1) (1 <= %1 <= get_maxplayers())

#define VAULT_NAME	"arme_5"

new g_Models[][] = {
	"models/5skinuri/1.mdl",
	"models/5skinuri/2.mdl",
	"models/5skinuri/3.mdl",
	"models/5skinuri/4.mdl",
	"models/5skinuri/5.mdl"
};

new g_SkinID[33];

public plugin_precache()
{
	for(new i = 0; i < sizeof(g_Models); i++)
		engfunc(EngFunc_PrecacheModel, g_Models);
}

public plugin_init()
{
	register_plugin("5 Skinuri", "1.0", "LondoN eXtream");
	register_event("CurWeapon", "event_curweapon", "be");
	register_clcmd("say /skin", "MenuSkin", ADMIN_LEVEL_H);
}

public MenuSkin(Player)
{
	new menu = menu_create("\w[\rVIP Skins\w] \yAlegeti un \rSkin \y!", "menu_handler");

	menu_additem(menu, "\wSkin \rDeagle");
	menu_additem(menu, "\wSkin \rAWP");
	menu_additem(menu, "\wSkin \rM4A1-S");
	menu_additem(menu, "\wSkin \rAK47");
	menu_additem(menu, "\wSkin \rKNIFE");

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(Player, menu, 0);

	return;
}	

public menu_handler(Player, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}

	new w = get_user_weapon(Player);

	g_SkinID[Player] = item;

	switch(item)
	{
		case 0:	if(w == CSW_DEAGLE)	set_pev(Player, pev_viewmodel2, g_Models[0]);
		case 1:	if(w == CSW_AWP)	set_pev(Player, pev_viewmodel2, g_Models[1]);
		case 2:	if(w == CSW_M4A1)	set_pev(Player, pev_viewmodel2, g_Models[2]);
		case 3:	if(w == CSW_AK47)	set_pev(Player, pev_viewmodel2, g_Models[3]);
		case 4:	if(w == CSW_KNIFE)	set_pev(Player, pev_viewmodel2, g_Models[4]);
	}
}

public client_connect(Player)
{
	if(is_user_bot(Player) || is_user_hltv(Player))
		return;

	new name[32], data[16];
	get_user_name(Player, name, charsmax(name));
	if(fvault_get_data(VAULT_NAME, name, data, charsmax(data)))
		g_SkinID[Player] = str_to_num(data);
}

public client_disconnect(Player)
{
	if(is_user_bot(Player) || is_user_hltv(Player))
		return;

	new name[32];
	get_user_name(Player, name, charsmax(name));
	fvault_set_data(VAULT_NAME, name, g_SkinID[Player]);
}

public event_curweapon(Player)
{
	if(!is_user_valid(Player))
		return;

	new w = get_user_weapon(Player);

	if(w == CSW_DEAGLE)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_AWP)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_M4A1)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_AK47)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
	if(w == CSW_KNIFE)	set_pev(Player, pev_viewmodel2, g_Models[g_SkinID[Player]]);
}


Skinurile se si salveaza..gen daca ai skin pe ak si intri peste o ora iti pune iar skinul de pe ak..

Nu e ok... adica daca intru fara sa am nimic, imi arata awp la knife gen si ak47 la usp. si daca aleg o arma cum ar fi ak47 atunci se pune skinu peste tot usp etc.. testeaza te rog si revin-o cu edit mersi.
Bump

Re: Cerere plugin /skinuri

Posted: 13 Feb 2019, 21:32
by GoGuT112
Nu mai este extreamcs ce a fost odata :) nu te mai ajuta nimeni aici in ziua de azi csz dai T/C ca nici in ziua de azi nu am primit ajutor la faza cu html-ul !

Re: Cerere plugin /skinuri

Posted: 14 Feb 2019, 01:10
by lycanian
GoGuT112 wrote:Nu mai este extreamcs ce a fost odata :) nu te mai ajuta nimeni aici in ziua de azi csz dai T/C ca nici in ziua de azi nu am primit ajutor la faza cu html-ul !
Ti-am raspuns si eu cu o varianta, ti s-au mai dat si vre-o 2 variante cum sa faci.

Re: Cerere plugin /skinuri

Posted: 14 Feb 2019, 18:02
by YONTU
Daca dorești, iti pot face in asa fel incat sa iti afişeze toate skin-urile dintr un fisier, datoria ta e sa treci in fisier numele skin-urilor, iar printr o comanda in chat sa ti le afiseze intr un meniu acele skin-uri.
Dupa cum ai cerut tu, tre sa faci un fisier html in care sa iti pui manual acele skin-uri.

Re: Cerere plugin /skinuri

Posted: 14 Feb 2019, 20:03
by ForWWarD
YONTU wrote:Daca dorești, iti pot face in asa fel incat sa iti afişeze toate skin-urile dintr un fisier, datoria ta e sa treci in fisier numele skin-urilor, iar printr o comanda in chat sa ti le afiseze intr un meniu acele skin-uri.
Dupa cum ai cerut tu, tre sa faci un fisier html in care sa iti pui manual acele skin-uri.
Pe mine m-ai putea ajuta in felul urmator daca te rog si ai timp, deci. sa fie un fisier.ini in configs. si acolo sa trec numele si skin-ul care-l doresc sa aiba persoana respectiva. gen. ca la vip
deschid fisierul si trec. axinte m4a1cyrex intelegi? si sa fie pe m4a1 etc. daca te rog.

Re: Cerere plugin /skinuri

Posted: 14 Feb 2019, 22:16
by GoGuT112
YONTU wrote:Daca dorești, iti pot face in asa fel incat sa iti afişeze toate skin-urile dintr un fisier, datoria ta e sa treci in fisier numele skin-urilor, iar printr o comanda in chat sa ti le afiseze intr un meniu acele skin-uri.
Dupa cum ai cerut tu, tre sa faci un fisier html in care sa iti pui manual acele skin-uri.
Incearca poate reusesti :D !

Re: Cerere plugin /skinuri

Posted: 15 Feb 2019, 11:02
by YONTU
GoGuT112 wrote:
YONTU wrote:Daca dorești, iti pot face in asa fel incat sa iti afişeze toate skin-urile dintr un fisier, datoria ta e sa treci in fisier numele skin-urilor, iar printr o comanda in chat sa ti le afiseze intr un meniu acele skin-uri.
Dupa cum ai cerut tu, tre sa faci un fisier html in care sa iti pui manual acele skin-uri.
Incearca poate reusesti :D !
skins_info.sma | Afiseaza codul
[code=php]#include <amxmodx>

#define PLUGIN_NAME "citeste fisier"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"

enum _:data
{
    skin_name[32]
    // add ur code here
}
new Array:skins, total_skins = 0, cvar_hostname, hostname[64], menu_title[128];

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

    register_clcmd("say skins", "cmd_show_skins");
    register_clcmd("say_team skins", "cmd_show_skins");
    register_clcmd("say /skins", "cmd_show_skins");
    register_clcmd("say_team /skins", "cmd_show_skins");

    cvar_hostname = get_cvar_pointer("hostname");

    _read_skins();
}

public plugin_cfg()
{
    get_pcvar_string(cvar_hostname, hostname, charsmax(hostname));
    formatex(menu_title, charsmax(menu_title), "\rS K I N S   I N F O^n\wSkin-urile disponibile pe serverul^n\y%s", hostname);
}

_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 skin-urile, dupa modelul urmator:^n");
        write_file(path, format_txt);
        format(format_txt, charsmax(format_txt), "; ^"NUME SKIN^"^n^n");
        write_file(path, format_txt);
        write_file(path, "^"M4A1 Dragon^"^n^"AK-47 preferata mea .....^"");
    }
    
    if(total_skins)
    {
        ArrayClear(skins);
        total_skins = 0;
    }
    
    skins = ArrayCreate(data);

    new text[32], data_text[data];
    while(!feof(file))
    {
        fgets(file, text, charsmax(text));
        trim(text);
        
        if(text[0] == ';' || !strlen(text)) 
        {
            continue; 
        }
        
        parse(text, text, charsmax(text));
        copy(data_text[skin_name], charsmax(data_text), text);
        ArrayPushArray(skins, data_text);
        total_skins++;
    }
    
    fclose(file);
}

public plugin_end()
{
    ArrayDestroy(skins);
}

public cmd_show_skins(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;

    new data_text[data], info[2], i, menu;
    menu = menu_create(menu_title, "skins_handler");
    
    for(i = 0; i < total_skins; i++)
    {
        ArrayGetArray(skins, i, data_text);

        info[0] = i;
        info[1] = 0;
        menu_additem(menu, data_text[skin_name], info);
    }
    menu_display(id, menu);
    return PLUGIN_CONTINUE;
}

public skins_handler(id, menu, item)
{
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}[/code]
Testeaza si revino cu replay. N-am testat.
Pluginul iti creeaza automat un fisier in configs numit skins.ini
Acolo o sa gasesti un model de adaugare al skin-urilor. Poti adauga cate vrei tu
Meniul se deschide prin comanda in chat skins sau /skins
Daca vrei sa ii mau adaug ceva, spre exemplu costul, descriere, etc pe fiecare skin in parte, imi spui

Re: Cerere plugin /skinuri

Posted: 15 Feb 2019, 19:24
by YONTU
ForWWarD wrote:
YONTU wrote:Daca dorești, iti pot face in asa fel incat sa iti afişeze toate skin-urile dintr un fisier, datoria ta e sa treci in fisier numele skin-urilor, iar printr o comanda in chat sa ti le afiseze intr un meniu acele skin-uri.
Dupa cum ai cerut tu, tre sa faci un fisier html in care sa iti pui manual acele skin-uri.
Pe mine m-ai putea ajuta in felul urmator daca te rog si ai timp, deci. sa fie un fisier.ini in configs. si acolo sa trec numele si skin-ul care-l doresc sa aiba persoana respectiva. gen. ca la vip
deschid fisierul si trec. axinte m4a1cyrex intelegi? si sa fie pe m4a1 etc. daca te rog.
change_wp_skin.sma | Afiseaza codul
#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;
}


Testeaza. Se creeaza automat un fisier in configs numit skins.ini. Acolo ai model de adaugare a skin-urilor pentru jucatori. Poti seta mi-a multe cate un skin pentru o singura arma. Am facut doar pentru v_.mdl. Daca vrei si pentru p_.mdl zici in topic