Доработка вип меню

asd

Сообщения
151
Реакции
17
Помог
3 раз(а)
Ребята, подскажите как добавить путь к кастомной модели для випки.

Код:
#include <amxmodx>
#include <fun>
#include <hamsandwich>

#define PLUGIN "VipMenu"
#define VERSION "0.1"
#define AUTHOR "asd"

new vip_1[33], vip_2[33], vip_3[33], vip_4[33], vip_5[33], vip_6[33]

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd("vipmenu", "menu")
    
    register_logevent("round_end", 2, "1=Round_End")
}

public menu(id)
{
    new menu = menu_create("\rVipMenu", "menu2")
         menu_additem(menu, "\r[\wВзять 250 HP\r]\r(\yРаз в 2 раунда\r)", "1")
         menu_additem(menu, "\r[\wВзять 400 брони\r]\r(\yРаз в 4 раунда\r)", "2")
         menu_additem(menu, "\r[\wВзять Зомби пукалка\r]\r(\yРаз в 3 раунда\r)", "3")
         menu_additem(menu, "\r[\wВзять Зомби пукалка\r]\r(\yРаз в 6 раунда\r)", "3")
         menu_additem(menu, "\r[\wВзять Зомби пукалка\r]\r(\yРаз в 4 раунда\r)", "3")
    menu_additem(menu, "\r[\wВзять Зомби пукалка\r]\r(\yРаз в 4 раунда\r)", "7")
    
    menu_setprop(menu, MPROP_EXITNAME, "Выход")
    
    menu_display(id, menu, 0)
    
    return PLUGIN_HANDLED;
}

public menu2(id, menu, iten)
{
    if(iten == MENU_EXIT)
         {
            menu_destroy(menu)
            return PLUGIN_HANDLED;
    }       
    
    new data[6], iName[64], access, call_back
    
    menu_item_getinfo(menu, iten, access, data, 5, iName, 63, call_back)
    
    new key = str_to_num(data)
    
    switch(key)
    {
        case 1:
        {
            if(vip_1[id] == 0)
            {
                vip_1[id] = 2
            set_user_health(id, 250)
                 }
            else client_print(id, print_chat, "[VIP] Жди %d раундов", vip_1[id])
             }
        case 2:
        {
            if(vip_2[id] == 0)
            {
                vip_2[id] = 4
            set_user_armor(id, 400)
                 }
            else client_print(id, print_chat, "[VIP] Жди %d раундов", vip_2[id])
             }
        case 3:
        {
            if(vip_3[id] == 0)
            {
                vip_3[id] = 3
            client_cmd(id, "пукалка1" )
                 }
            else client_print(id, print_chat, "[VIP] Жди %d раундов", vip_3[id])
        }
        case 4:
        {
            if(vip_4[id] == 0)
            {
                vip_4[id] = 6
            client_cmd(id, "пукалка2" )
                 }
            else client_print(id, print_chat, "[VIP] Жди %d раундов", vip_4[id])
        }
        case 5:
        {
            if(vip_5[id] == 0)
            {
                vip_5[id] = 4
            client_cmd(id, "пукалка3" )
                 }
            else client_print(id, print_chat, "[VIP] Жди %d раундов", vip_5[id])
        }
        case 6:
        {
            if(vip_6[id] == 0)
            {
                vip_6[id] = 4
            client_cmd(id, "пукалка4" )
                 }
            else client_print(id, print_chat, "[VIP] Жди %d раундов", vip_6[id])
        }
    }
    return PLUGIN_HANDLED;
        
}

public round_end()
{
    for(new id = 0; id <= get_maxplayers(); id++)
    {
         if(vip_1[id] > 0) vip_1[id] =- 1
    if(vip_2[id] > 0) vip_2[id] =- 1
    if(vip_3[id] > 0) vip_3[id] =- 1
    if(vip_4[id] > 0) vip_4[id] =- 1
    if(vip_5[id] > 0) vip_5[id] =- 1
    if(vip_6[id] > 0) vip_6[id] =- 1
         }
}
 
Сообщения
317
Реакции
131
Помог
4 раз(а)
Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define FLAG_ACCESS "s"

new const MODEL_TT[] = "woomen_zm";
new const MODEL_CT[] = "woomen_zm";

new bool:gbAccess[33], gszPlayerModel[33][32];

public plugin_init()
{
    register_plugin("MODELS", "1.0", "DUKKHAZ0R");
    RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
    register_forward(FM_SetClientKeyValue, "FM_SetClientKeyValue_Pre", 0);
}

public plugin_precache()
{
    new szBuffer[128];
    formatex(szBuffer, charsmax(szBuffer), "models/player/%s/%s.mdl", MODEL_CT, MODEL_CT);
    precache_model(szBuffer);
    formatex(szBuffer, charsmax(szBuffer), "models/player/%s/%s.mdl", MODEL_TT, MODEL_TT);
    precache_model(szBuffer);
}

public client_putinserver(id)
    gbAccess[id] = (get_user_flags(id) & read_flags(FLAG_ACCESS)) ? true : false;

public Ham_PlayerSpawn_Post(id)
{
    if(gbAccess[id] && is_user_alive(id))
    {
        switch(get_pdata_int(id, 114))
        {
            case 1: fm_cs_set_user_model(id, MODEL_TT);
            case 2: fm_cs_set_user_model(id, MODEL_CT);
        }
    }
}

public FM_SetClientKeyValue_Pre(id, const szInfobuffer[], const szKey[])
{
    if(gbAccess[id] && equal(szKey, "model"))
    {
        static szCurrentModel[32];
        fm_cs_get_user_model(id, szCurrentModel, charsmax(szCurrentModel));
        if(!equal(szCurrentModel, gszPlayerModel[id])) fm_cs_set_user_model(id, gszPlayerModel[id]);
        return FMRES_SUPERCEDE;
    }
    return FMRES_IGNORED;
}

stock fm_cs_get_user_model(id, szModel[], szLen) engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModel, szLen);
stock fm_cs_set_user_model(id, const szModelName[])
{
    engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModelName);
    copy(gszPlayerModel[id], charsmax(gszPlayerModel[]), szModelName);
}
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу