Преработка на WeaponNewSkin

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1319
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 245 пъти
Получена благодарност: 43 пъти

Преработка на WeaponNewSkin

Мнение от cgozzie » 04 Авг 2018, 13:22

Здравейте искам този плъгин да го промените така че,да не е само за админи да си променят оръжията в игра а да е за всички в сървъра.

Код за потвърждение: Избери целия код

/*================================================================================
    Библиотеки
=================================================================================*/

    #include <amxmodx>
    #include <amxmisc>
    #include <hamsandwich>
    #include <fakemeta>
    #include <fakemeta_util>

/*================================================================================
    Данные о плагине
=================================================================================*/

    #define PLUGIN 		"Скин Меню Оружия"
    #define VERSION 	"1.0"
    #define AUTHOR 		"Mi-Ki"

/*================================================================================
    Биты
=================================================================================*/

    #define bit_set(%0,%1) 	    (%1 |=  (1<<%0))
    #define bit_zero(%0,%1) 	(%1 &= ~(1<<%0))
    #define bit_valid(%0,%1)	(%1  &  (1<<%0))

/*================================================================================
    Настройка флага
=================================================================================*/

    #define ACCESS_FLAG ADMIN_IMMUNITY

/*================================================================================
    Константы/Массивы и остальное
=================================================================================*/
    // Offsets
    const m_iId = 43
    const XO_WEAPON = 4

    enum skin
    {
	    s_wpnid,
	    s_p[64],
	    s_v[64]
    }

    const skinsmax = 3;
    new g_Models[skinsmax][skin]

    new g_EnableSkin;

/*==========================================
        Инициализация плагина
===========================================*/
    public plugin_init()
    {
        //Регистрация плагина
	    register_plugin(PLUGIN, VERSION, AUTHOR)
	
	    //Регистрация команды
	    register_clcmd("say /skin", "cmd_skin")
	
	    static weapon_name[33], i;
	    for(i = CSW_P228; i <= CSW_P90; ++i)
	    {
		    if(get_weaponname(i, weapon_name, 32))
		    {
			    RegisterHam(Ham_Item_Deploy, weapon_name, "ham_item_deploy_post", 1);
		    }
	    }
    }

    public plugin_precache()
    {	
        static path[255]; get_localinfo("amxx_configsdir", path, 254);
        add(path, 254, "/weapon_skin.ini")
        if( !file_exists(path))
		set_fail_state( "[System Skin Menu] Cfg file not loaded." );
        
        static f; f = fopen(path, "rt")
        static str[255], x = 0;
        while (!feof(f))
        {
            fgets(f, str, 254)
            parse(str, g_Models[x][s_p], 63, g_Models[x][s_v], 63)
            precache_model(g_Models[x][s_p])
            precache_model(g_Models[x][s_v])
            if (++x > skinsmax) break;		
        }
        fclose(f)
    }

    public menu_skin_handler(id, menu, item)
    {
	    if (item <= MENU_EXIT || item > 1)	
	    {
		    menu_destroy(menu)
		    return PLUGIN_HANDLED
	    }
	
	    switch (item)
	    {
		    case 0: bit_set(id, g_EnableSkin)
		    case 1: bit_zero(id, g_EnableSkin)
	    }
	    ExecuteHamB(Ham_Item_Deploy, fm_get_user_weapon_entity(id))
	    cmd_skin(id)
	    menu_destroy(menu)
	    return PLUGIN_HANDLED
    }

    public cmd_skin(id)
    {
	    if (~get_user_flags(id) & ACCESS_FLAG)
	    {
		    client_print(id, print_chat, "You do not have access to use this command.")
		    return PLUGIN_HANDLED
	    }
	    static str[128]; formatex(str, charsmax(str), "\w[\ySystem \rSkin \yМеню\w]^n^n\yOption: \w[\r%s\w]", bit_valid(id, g_EnableSkin) ? "Enable" : "Switch off")
	    static menu; menu = menu_create(str, "menu_skin_handler")
	    menu_additem(menu, "Enable")
	    menu_additem(menu, "Switch off")
	    menu_setprop(menu, MPROP_EXITNAME, "\y[\wExit\y]")
	
	    menu_display(id, menu)
	    return PLUGIN_HANDLED
    }

    public ham_item_deploy_post(ent)
    {
	    if (!pev_valid(ent)) return HAM_IGNORED;
	    static id; id = get_pdata_cbase(ent, 41, 4)
	    if (!bit_valid(id, g_EnableSkin)) return HAM_IGNORED;
	    static wpnid; wpnid = get_pdata_int(ent, m_iId, XO_WEAPON);
	    static sk;
	    switch (wpnid)
	    {
		    case CSW_AK47: sk = 1;
		    case CSW_M4A1: sk = 2;
		    case CSW_AWP: sk = 3;
		    default: sk = 0;
	    }
	
	    if (sk)
	    {
		    --sk
		    set_pev(id, pev_viewmodel, engfunc(EngFunc_AllocString, g_Models[sk][s_v]));
		    set_pev(id, pev_weaponmodel, engfunc(EngFunc_AllocString, g_Models[sk][s_p]));
	    }
	
	    return HAM_HANDLED
    }
Изображение

Аватар
botlike
Извън линия
Потребител
Потребител
Мнения: 96
Регистриран на: 11 Юни 2017, 23:37
Местоположение: София
Получена благодарност: 20 пъти

Преработка на WeaponNewSkin

Мнение от botlike » 04 Авг 2018, 13:26

Код за потвърждение: Избери целия код

#define ACCESS_FLAG ADMIN_IMMUNITY
Да стане на:

Код за потвърждение: Избери целия код

#define ACCESS_FLAG ADMIN_ALL
Целият код:

Код за потвърждение: Избери целия код

/*================================================================================
    Библиотеки
=================================================================================*/

    #include <amxmodx>
    #include <amxmisc>
    #include <hamsandwich>
    #include <fakemeta>
    #include <fakemeta_util>

/*================================================================================
    Данные о плагине
=================================================================================*/

    #define PLUGIN 		"Скин Меню Оружия"
    #define VERSION 	"1.0"
    #define AUTHOR 		"Mi-Ki"

/*================================================================================
    Биты
=================================================================================*/

    #define bit_set(%0,%1) 	    (%1 |=  (1<<%0))
    #define bit_zero(%0,%1) 	(%1 &= ~(1<<%0))
    #define bit_valid(%0,%1)	(%1  &  (1<<%0))

/*================================================================================
    Настройка флага
=================================================================================*/

    #define ACCESS_FLAG ADMIN_ALL

/*================================================================================
    Константы/Массивы и остальное
=================================================================================*/
    // Offsets
    const m_iId = 43
    const XO_WEAPON = 4

    enum skin
    {
	    s_wpnid,
	    s_p[64],
	    s_v[64]
    }

    const skinsmax = 3;
    new g_Models[skinsmax][skin]

    new g_EnableSkin;

/*==========================================
        Инициализация плагина
===========================================*/
    public plugin_init()
    {
        //Регистрация плагина
	    register_plugin(PLUGIN, VERSION, AUTHOR)
	
	    //Регистрация команды
	    register_clcmd("say /skin", "cmd_skin")
	
	    static weapon_name[33], i;
	    for(i = CSW_P228; i <= CSW_P90; ++i)
	    {
		    if(get_weaponname(i, weapon_name, 32))
		    {
			    RegisterHam(Ham_Item_Deploy, weapon_name, "ham_item_deploy_post", 1);
		    }
	    }
    }

    public plugin_precache()
    {	
        static path[255]; get_localinfo("amxx_configsdir", path, 254);
        add(path, 254, "/weapon_skin.ini")
        if( !file_exists(path))
		set_fail_state( "[System Skin Menu] Cfg file not loaded." );
        
        static f; f = fopen(path, "rt")
        static str[255], x = 0;
        while (!feof(f))
        {
            fgets(f, str, 254)
            parse(str, g_Models[x][s_p], 63, g_Models[x][s_v], 63)
            precache_model(g_Models[x][s_p])
            precache_model(g_Models[x][s_v])
            if (++x > skinsmax) break;		
        }
        fclose(f)
    }

    public menu_skin_handler(id, menu, item)
    {
	    if (item <= MENU_EXIT || item > 1)	
	    {
		    menu_destroy(menu)
		    return PLUGIN_HANDLED
	    }
	
	    switch (item)
	    {
		    case 0: bit_set(id, g_EnableSkin)
		    case 1: bit_zero(id, g_EnableSkin)
	    }
	    ExecuteHamB(Ham_Item_Deploy, fm_get_user_weapon_entity(id))
	    cmd_skin(id)
	    menu_destroy(menu)
	    return PLUGIN_HANDLED
    }

    public cmd_skin(id)
    {
	    if (~get_user_flags(id) & ACCESS_FLAG)
	    {
		    client_print(id, print_chat, "You do not have access to use this command.")
		    return PLUGIN_HANDLED
	    }
	    static str[128]; formatex(str, charsmax(str), "\w[\ySystem \rSkin \yМеню\w]^n^n\yOption: \w[\r%s\w]", bit_valid(id, g_EnableSkin) ? "Enable" : "Switch off")
	    static menu; menu = menu_create(str, "menu_skin_handler")
	    menu_additem(menu, "Enable")
	    menu_additem(menu, "Switch off")
	    menu_setprop(menu, MPROP_EXITNAME, "\y[\wExit\y]")
	
	    menu_display(id, menu)
	    return PLUGIN_HANDLED
    }

    public ham_item_deploy_post(ent)
    {
	    if (!pev_valid(ent)) return HAM_IGNORED;
	    static id; id = get_pdata_cbase(ent, 41, 4)
	    if (!bit_valid(id, g_EnableSkin)) return HAM_IGNORED;
	    static wpnid; wpnid = get_pdata_int(ent, m_iId, XO_WEAPON);
	    static sk;
	    switch (wpnid)
	    {
		    case CSW_AK47: sk = 1;
		    case CSW_M4A1: sk = 2;
		    case CSW_AWP: sk = 3;
		    default: sk = 0;
	    }
	
	    if (sk)
	    {
		    --sk
		    set_pev(id, pev_viewmodel, engfunc(EngFunc_AllocString, g_Models[sk][s_v]));
		    set_pev(id, pev_weaponmodel, engfunc(EngFunc_AllocString, g_Models[sk][s_p]));
	    }
	
	    return HAM_HANDLED
    }
Изображение

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1319
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 245 пъти
Получена благодарност: 43 пъти

Преработка на WeaponNewSkin

Мнение от cgozzie » 04 Авг 2018, 23:30

Така работи да но сега го тествах,и видях в кода че има макс 3 модела.Аз искам да го ползвам за неограничен брой модели и да се теглят всички.+ ако е възможно и да се добави и w_models,ако не не е болка за умиране.

Ако може и това да се премахне щом плъгина ще е фрий за всички.
client_print(id, print_chat, "You do not have access to use this command.")

Добавено преди 3 часа 43 минути 48 секунди:
Някой ще помогне ли с направата на плъгина,в момента само 3 модела ми тегли макар че съм му задал 22.
Изображение

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1809
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 370 пъти
Обратна връзка:

Преработка на WeaponNewSkin

Мнение от illusion » 05 Авг 2018, 00:24

Редактираш този ред на колко ти трябва....
const skinsmax = 3;

Ето ти го без излишни чат съобщения (само за играчи):

Код за потвърждение: Избери целия код

/*================================================================================
    Библиотеки
=================================================================================*/

    #include <amxmodx>
    #include <amxmisc>
    #include <hamsandwich>
    #include <fakemeta>
    #include <fakemeta_util>

/*================================================================================
    Данные о плагине
=================================================================================*/

    #define PLUGIN 		"Скин Меню Оружия"
    #define VERSION 	"1.0"
    #define AUTHOR 		"Mi-Ki"

/*================================================================================
    Биты
=================================================================================*/

    #define bit_set(%0,%1) 	    (%1 |=  (1<<%0))
    #define bit_zero(%0,%1) 	(%1 &= ~(1<<%0))
    #define bit_valid(%0,%1)	(%1  &  (1<<%0))

/*================================================================================
    Настройка флага
=================================================================================*/

/*================================================================================
    Константы/Массивы и остальное
=================================================================================*/
    // Offsets
    const m_iId = 43
    const XO_WEAPON = 4

    enum skin
    {
	    s_wpnid,
	    s_p[64],
	    s_v[64]
    }

    const skinsmax = 3;
    new g_Models[skinsmax][skin]

    new g_EnableSkin;

/*==========================================
        Инициализация плагина
===========================================*/
    public plugin_init()
    {
        //Регистрация плагина
	    register_plugin(PLUGIN, VERSION, AUTHOR)
	
	    //Регистрация команды
	    register_clcmd("say /skin", "cmd_skin")
	
	    static weapon_name[33], i;
	    for(i = CSW_P228; i <= CSW_P90; ++i)
	    {
		    if(get_weaponname(i, weapon_name, 32))
		    {
			    RegisterHam(Ham_Item_Deploy, weapon_name, "ham_item_deploy_post", 1);
		    }
	    }
    }

    public plugin_precache()
    {	
        static path[255]; get_localinfo("amxx_configsdir", path, 254);
        add(path, 254, "/weapon_skin.ini")
        if( !file_exists(path))
		set_fail_state( "[System Skin Menu] Cfg file not loaded." );
        
        static f; f = fopen(path, "rt")
        static str[255], x = 0;
        while (!feof(f))
        {
            fgets(f, str, 254)
            parse(str, g_Models[x][s_p], 63, g_Models[x][s_v], 63)
            precache_model(g_Models[x][s_p])
            precache_model(g_Models[x][s_v])
            if (++x > skinsmax) break;		
        }
        fclose(f)
    }

    public menu_skin_handler(id, menu, item)
    {
	    if (item <= MENU_EXIT || item > 1)	
	    {
		    menu_destroy(menu)
		    return PLUGIN_HANDLED
	    }
	
	    switch (item)
	    {
		    case 0: bit_set(id, g_EnableSkin)
		    case 1: bit_zero(id, g_EnableSkin)
	    }
	    ExecuteHamB(Ham_Item_Deploy, fm_get_user_weapon_entity(id))
	    cmd_skin(id)
	    menu_destroy(menu)
	    return PLUGIN_HANDLED
    }

    public cmd_skin(id)
    {
	    static str[128]; formatex(str, charsmax(str), "\w[\ySystem \rSkin \yМеню\w]^n^n\yOption: \w[\r%s\w]", bit_valid(id, g_EnableSkin) ? "Enable" : "Switch off")
	    static menu; menu = menu_create(str, "menu_skin_handler")
	    menu_additem(menu, "Enable")
	    menu_additem(menu, "Switch off")
	    menu_setprop(menu, MPROP_EXITNAME, "\y[\wExit\y]")
	
	    menu_display(id, menu)
	    return PLUGIN_HANDLED
    }

    public ham_item_deploy_post(ent)
    {
	    if (!pev_valid(ent)) return HAM_IGNORED;
	    static id; id = get_pdata_cbase(ent, 41, 4)
	    if (!bit_valid(id, g_EnableSkin)) return HAM_IGNORED;
	    static wpnid; wpnid = get_pdata_int(ent, m_iId, XO_WEAPON);
	    static sk;
	    switch (wpnid)
	    {
		    case CSW_AK47: sk = 1;
		    case CSW_M4A1: sk = 2;
		    case CSW_AWP: sk = 3;
		    default: sk = 0;
	    }
	
	    if (sk)
	    {
		    --sk
		    set_pev(id, pev_viewmodel, engfunc(EngFunc_AllocString, g_Models[sk][s_v]));
		    set_pev(id, pev_weaponmodel, engfunc(EngFunc_AllocString, g_Models[sk][s_p]));
	    }
	
	    return HAM_HANDLED
    }

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1319
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 245 пъти
Получена благодарност: 43 пъти

Преработка на WeaponNewSkin

Мнение от cgozzie » 05 Авг 2018, 00:44

Не е само това пробвал съм го и след компилиране пак повече от 3 не дава.
Изображение

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 10 госта