Не одевается шапка

SAM

Сообщения
47
Реакции
-29
Помог
3 раз(а)
Код:
#include <amxmodx> 
#include <amxmisc> 
#include <fakemeta> 

new g_bwEnt[33] 
new SayText

#define PLUG_NAME "VIP" 
#define PLUG_AUTH "SgtBane" 
#define PLUG_VERS "0.2" 
#define PLUG_TAG "VIP" 

#define menusize     220 

new HatFile[64] 
new MenuPages, TotalHats 
new CurrentMenu[33] 

#define MAX_HATS 64 
new HATMDL[MAX_HATS][41] 
new HATNAME[MAX_HATS][41] 

public plugin_init() 
{ 
    register_plugin(PLUG_NAME, PLUG_VERS, PLUG_AUTH) 
 //   register_concmd("amx_givehat", "Give_Hat", ADMIN_RCON, "<nick> <mdl #>") 
  //  register_concmd("amx_removehats", "Remove_Hat", ADMIN_RCON, " - Removes hats from everyone.") 
    register_menucmd(register_menuid("\yМеню шапок: [Страница"),(1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9),"MenuCommand") 
 //   register_clcmd("say /hats",        "ShowMenu2", -1, "Shows Knife menu")
    SayText = get_user_msgid("SayText")
} 

public plugin_natives() {
    register_native("hats_admin", "ShowMenu2", 1)
}

public ShowMenu2(id) 
{ 

      CurrentMenu[id] = 1 
       ShowHats(id) 
        return PLUGIN_HANDLED 
} 

public ShowHats(id) 
{ 
    new keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9) 

    new szMenuBody[menusize + 1], WpnID 
    new nLen = format(szMenuBody, menusize, "\yСписок доступных шапочек [ %i | %i ]^n",CurrentMenu[id],MenuPages) 
    

    // Get Hat Names And Add Them To The List 

    for (new hatid=0; hatid < 8; hatid++) { 
        WpnID = ((CurrentMenu[id] * 8) + hatid - 8) 
        if (WpnID < TotalHats) { 
            nLen += format(szMenuBody[nLen], menusize-nLen, "^n\r %i.  \w%s",hatid + 1,HATNAME[WpnID]) 
        } 
    }
      
    // Next Page And Previous/Close 
    if (CurrentMenu[id] == MenuPages) { 
        nLen += format(szMenuBody[nLen], menusize-nLen, "^n^n\d9. Далее") 
    } else { 
        nLen += format(szMenuBody[nLen], menusize-nLen, "^n^n\r9. \wДалее") 
    } 
      
    if (CurrentMenu[id] > 1) { 
        nLen += format(szMenuBody[nLen], menusize-nLen, "^n\r0. \wНазад") 
    } else { 
        nLen += format(szMenuBody[nLen], menusize-nLen, "^n\r0. \wВыход") 
    } 
    show_menu(id, keys, szMenuBody, -1) 
    return PLUGIN_HANDLED 
} 
public MenuCommand(id, key)   
{ 
    switch(key) 
    { 
        case 8:        //9 - [Next Page] 
        { 
            if (CurrentMenu[id] < MenuPages) CurrentMenu[id]++ 
            ShowHats(id) 
            return PLUGIN_HANDLED 
        } 
        case 9:        //0 - [Close] 
        { 
            CurrentMenu[id]-- 
            if (CurrentMenu[id] > 0) ShowHats(id) 
            return PLUGIN_HANDLED 
        } 
        default: 
        { 
            new HatID = ((CurrentMenu[id] * 8) + key - 8) 
            if (HatID < TotalHats) { 
                Set_Hat(id,HatID,id) 
            } 
        } 
    } 
    return PLUGIN_HANDLED 
} 

public plugin_precache() 
{ 
    new cfgDir[32] 
    get_configsdir(cfgDir,31) 
    formatex(HatFile,63,"%s/HatList2.ini",cfgDir) 
    command_load() 
      
    for (new i = 1; i < TotalHats; ++i) { 
        if (file_exists (HATMDL[i])) { 
            precache_model(HATMDL[i]) 
            server_print("[%s] Precached %s",PLUG_TAG,HATMDL[i]) 
        } else { 
            server_print("[%s] Failed to precache %s",PLUG_TAG,HATMDL[i]) 
        } 
    } 
} 

public client_connect(id) 
{ 
    if(g_bwEnt[id] > 0) engfunc(EngFunc_RemoveEntity,g_bwEnt[id]) 
    g_bwEnt[id] = 0 
} 

public client_disconnect(id) 
{ 
    if(g_bwEnt[id] > 0) engfunc(EngFunc_RemoveEntity,g_bwEnt[id]) 
    g_bwEnt[id] = 0 
} 

public Give_Hat(id) 
{ 
    new smodelnum[5], name[32] 
    read_argv(1,name,31) 
    read_argv(2,smodelnum,4) 
      
    new player = cmd_target(id,name,2) 
    if (!player) { 
        client_print(id,print_chat,"[%s] Player With That Name Does Not Exist.",PLUG_TAG) 
        return PLUGIN_HANDLED 
    } 
      
    new imodelnum = (str_to_num(smodelnum)) 
    if (imodelnum > MAX_HATS) return PLUGIN_HANDLED 
      
    Set_Hat(player,imodelnum,id) 

    return PLUGIN_CONTINUE 
} 

public Remove_Hat(id) 
{ 
    for (new i = 0; i < get_maxplayers(); ++i) { 
        if (is_user_connected(i) && g_bwEnt[i] > 0) { 
            engfunc(EngFunc_RemoveEntity,g_bwEnt[i]) 
            g_bwEnt[i] = 0 
        } 
    } 
    client_print(id,print_chat,"[%s] Removed hats from everyone.",PLUG_TAG) 
    return PLUGIN_CONTINUE 
} 

public Set_Hat(player,imodelnum,targeter) 
{ 
    if (imodelnum == 0) { 
        if(g_bwEnt[player] > 0) engfunc(EngFunc_RemoveEntity,g_bwEnt[player]) 
        g_bwEnt[player] = 0 
        print_col_chat(player, "!g•!y Вы сняли с себя шапку") 
    } else if (file_exists(HATMDL[imodelnum])) { 
        if(g_bwEnt[player] < 1) { 
            g_bwEnt[player] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")) 
            if(g_bwEnt[player] > 0)   
            { 
                set_pev(g_bwEnt[player], pev_movetype, MOVETYPE_FOLLOW) 
                set_pev(g_bwEnt[player], pev_aiment, player) 
                set_pev(g_bwEnt[player], pev_rendermode, kRenderNormal) 
                set_pev(g_bwEnt[player], pev_renderamt, 0.0) 
                engfunc(EngFunc_SetModel, g_bwEnt[player], HATMDL[imodelnum]) 
            } 
        } else { 
            engfunc(EngFunc_SetModel, g_bwEnt[player], HATMDL[imodelnum]) 
        } 
        print_col_chat(player, "!g•!y Вы выбрали шапочку !t%s", HATNAME[imodelnum])
    } 
} 

public command_load() 
{ 
    if(file_exists(HatFile)) { 
        HATMDL[0] = "" 
        HATNAME[0] = "Снять" 
        TotalHats = 1 
        new sfLineData[128] 
        new file = fopen(HatFile,"rt") 
        while(file && !feof(file)) { 
            fgets(file,sfLineData,127) 
              
            // Skip Comment and Empty Lines 
            if (containi(sfLineData,";") > -1) continue 
              
            // BREAK IT UP! 
            parse(sfLineData, HATMDL[TotalHats],40,HATNAME[TotalHats],40) 
              
            TotalHats += 1 
            if(TotalHats >= MAX_HATS) { 
                server_print("[%s] Reached hat limit",PLUG_TAG) 
                break 
            } 
        } 
        if(file) fclose(file) 
    } 
    MenuPages = floatround((TotalHats / 8.0), floatround_ceil) 
    server_print("[%s] Loaded %i hats, Generated %i pages)",PLUG_TAG,TotalHats,MenuPages) 
} 
stock print_col_chat(const id, const input[], any:...)
{
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
    replace_all(msg, 190, "!g", "^4"); // Green Color
    replace_all(msg, 190, "!y", "^1"); // Default Color (у©®  湫)
    replace_all(msg, 190, "!t", "^3"); // Team Color
    if (id) players[0] = id; else get_players(players, count, "ch");
    {
        for ( new i = 0; i < count; i++ )
        {
            if ( is_user_connected(players[i]) )
            {
                message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i]);
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
} 
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/

В консоле показывает, что модель загрузилась, в меню отображается, но не доходит до того момента, чтоб шапочка оделась на игрока.
Не понимаю, что здесь не так. Подскажите, пожалуйста.
12 Ноя 2018
Код:
        default: 
        { 
            new HatID = ((CurrentMenu[id] * 8) + key - 8) 
            if (HatID < TotalHats) { 
                Set_Hat(id,HatID,id) 
                client_print(id, print_chat, "%d", HatID)
            } 
        }
сделал вывод, но ниче не выводит.
 

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

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