Custom Models /TOP15

Статус
В этой теме нельзя размещать новые ответы.

polki

Пользователь
Регистрация
22 Сен 2017
Сообщения
20
Симпатии
0
Друзья, возможно добавить ключ к Custom Models для игроков находящихся в топ 15.
Мотивирую работу деньгами, плагин отдам на общее пользование.
 

To be or not to be

Пользователь
Регистрация
9 Июн 2017
Сообщения
1.215
Симпатии
304
polki, я могу сделать

vk.com/metladetected
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
polki, Какая статистика считает ТОП?
 

polki

Пользователь
Регистрация
22 Сен 2017
Сообщения
20
Симпатии
0
Admin Chat 1.8.3-Re AMXX Dev Team adminchat.amxx running
Anti Flood 1.8.3-Re AMXX Dev Team antiflood.amxx running
Admin Votes 1.8.3-Re AMXX Dev Team adminvote.amxx running
NextMap 1.8.3-Re AMXX Dev Team nextmap.amxx stopped
Map Manager 2.5.61 Mistrick mapmanager.amxx running
Pause Plugins 1.8.3-Re AMXX Dev Team pausecfg.amxx running
Stats Configurati 1.8.3-Re AMXX Dev Team statscfg.amxx running
StatsX 1.8.3-Re AMXX Dev Team statsx.amxx running
CS Stats Logging 1.8.3-Re AMXX Dev Team stats_logging.a running
Re GunGame 1.5.2 gyxoBka re_gungame.amxx running

Вот список. Я дал ответ?
 

To be or not to be

Пользователь
Регистрация
9 Июн 2017
Сообщения
1.215
Симпатии
304

To be or not to be

Пользователь
Регистрация
9 Июн 2017
Сообщения
1.215
Симпатии
304
polki, скидывай)
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
Код:
; 6 - ТОП игрокам    (ключ "p")
"p"          "topplayert"     "topplayerct"

new topLimit = 15;    //Верхняя граница позиции в ТОПе для выдачи модели
 

Вложения

polki

Пользователь
Регистрация
22 Сен 2017
Сообщения
20
Симпатии
0
To be or not to be,
Admin Base 1.8.3-Re AMXX Dev Team admin.amxx running
Admin Commands 1.8.3-Re AMXX Dev Team admincmd.amxx running
Slots Reservation 1.8.3-Re AMXX Dev Team adminslots.amxx running
Menus Front-End 1.8.3-Re AMXX Dev Team menufront.amxx running
Commands Menu 1.8.3-Re AMXX Dev Team cmdmenu.amxx running
Players Menu 1.8.3-Re AMXX Dev Team plmenu.amxx running
Teleport Menu 1.8.3-Re AMXX Dev Team telemenu.amxx running
Maps Menu 1.8.3-Re AMXX Dev Team mapsmenu.amxx running
Plugin Menu 1.8.3-Re AMXX Dev Team pluginmenu.amxx running
Admin Chat 1.8.3-Re AMXX Dev Team adminchat.amxx running
Anti Flood 1.8.3-Re AMXX Dev Team antiflood.amxx running
Admin Votes 1.8.3-Re AMXX Dev Team adminvote.amxx running
NextMap 1.8.3-Re AMXX Dev Team nextmap.amxx stopped
Map Manager 2.5.61 Mistrick mapmanager.amxx running
Pause Plugins 1.8.3-Re AMXX Dev Team pausecfg.amxx running
Stats Configurati 1.8.3-Re AMXX Dev Team statscfg.amxx running
StatsX 1.8.3-Re AMXX Dev Team statsx.amxx running
CS Stats Logging 1.8.3-Re AMXX Dev Team stats_logging.a running
Re GunGame 1.5.2 gyxoBka re_gungame.amxx running
RE Vampire 1.0.4 MakapoH, AcE re_vampire.amxx running
[ReAPI] Custom Mo 1.6.1 neugomon custom_models.a running
ADV. QUAKE SOUNDS 5.0 HATTRICK (HTTRCK QuakeSounds.amx running
No Shoot Through 0.0.2 hornet & the_hun no_walls.amxx running
VOTEBAN_BY_SLIMSH 3.0 SLIMSHADY_MOD voteban_by_slim running
ReAimDetector API 0.2.0 ReHLDS Team reaimdetector.a running
 

To be or not to be

Пользователь
Регистрация
9 Июн 2017
Сообщения
1.215
Симпатии
304
polki, тебе выше вариант скинули)
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
Ему пофиг.. через 5 минут удалю
 

To be or not to be

Пользователь
Регистрация
9 Июн 2017
Сообщения
1.215
Симпатии
304
georgeml, он будто не увидел даже :DDD
 

polki

Пользователь
Регистрация
22 Сен 2017
Сообщения
20
Симпатии
0
Я уже пробую. правда не заработал пока. сервер нужно перегружать?
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
Модели залить
Быть в топ15
 

polki

Пользователь
Регистрация
22 Сен 2017
Сообщения
20
Симпатии
0
Плагин скомплимировал на сервере. Поменял в папке plugins.
;;; Конфигурационный файл для плагина Custom Models by Neugomon ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Модели можно назначить на:
; 1 - IP
; 2 - STEAMID
; 3 - Флаг доступа
; 4 - Steam игрокам (ключ "#")
; 5 - Всем остальным (ключ "*")
; 6 - ТОП игрокам (ключ "p")

;; Примеры

"*" "terror" "gign"
"p" "leet" "vip"
Перезапустил сервер.
Может я что то упустил?
(Я в топ 15)
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
Что хотели увидеть?
"*" "terror" "gign"
Всем игрокам выдали модели

6- это вариант присвоения модели, а не позиция.
Поставьте "p" "leet" "vip" выше
 

hyrik

Пользователь
Регистрация
18 Июл 2017
Сообщения
165
Симпатии
41
Пол
Мужской

To be or not to be

Пользователь
Регистрация
9 Июн 2017
Сообщения
1.215
Симпатии
304
hyrik,
Код:
// *************************************************************************************//
// Плагин загружен с  www.neugomon.ru                                                   //
// Автор: Neygomon  [ https://neugomon.ru/members/1/ ]                                  //
// Официальная тема поддержки: https://neugomon.ru/threads/2370/                        //
// При копировании материала ссылка на сайт www.neugomon.ru ОБЯЗАТЕЛЬНА!                //
// *************************************************************************************//

#include <amxmodx>
#include <reapi>

enum _:MDL
{
    ACCESS[32],
    MDL_T[64],
    MDL_CT[64]
}    // ip, steam, flag, #, *. # - steam; * - всем

new stats[8],bodyhits[8];
new topLimit = 15;    //Верхняя граница позиции в ТОПе для выдачи модели

new g_szPlayerModel[33][TeamName][64];
new Array:g_aModels, g_MdlInfo[MDL];

public plugin_precache()
{
    new szPath[64];
    get_localinfo("amxx_configsdir", szPath, charsmax(szPath));
    add(szPath, charsmax(szPath), "/custom_models.ini");
    
    new fp = fopen(szPath, "rt");
    if(!fp)
    {
    #if AMXX_VERSION_NUM < 183
        new szError[96];
        formatex(szError, charsmax(szError), "File '%s' not found!", szPath);
        set_fail_state(szError);
    #else
        set_fail_state("File '%s' not found!", szPath);
    #endif
    }
    g_aModels = ArrayCreate(MDL);
    
    new buff[190], t, ct, str[64];
    while(!feof(fp))
    {
        fgets(fp, buff, charsmax(buff)); trim(buff);
        if(!buff[0] || buff[0] == ';')
            continue;
        if(parse(buff,
            g_MdlInfo[ACCESS], charsmax(g_MdlInfo[ACCESS]),
            g_MdlInfo[MDL_T], charsmax(g_MdlInfo[MDL_T]),
            g_MdlInfo[MDL_CT], charsmax(g_MdlInfo[MDL_CT])) == 3
        )
        {
            formatex(str, charsmax(str), "models/player/%s/%s.mdl", g_MdlInfo[MDL_T], g_MdlInfo[MDL_T]);
            t = file_exists(str);
            if(t)     precache_model(str);
            else    log_amx("[WARNING] Model '%s' not found.", str);
            
            formatex(str, charsmax(str), "models/player/%s/%s.mdl", g_MdlInfo[MDL_CT], g_MdlInfo[MDL_CT]);
            ct = file_exists(str);
            if(ct)     precache_model(str);
            else    log_amx("[WARNING] Model '%s' not found.", str);
            
            if(t || ct) ArrayPushArray(g_aModels, g_MdlInfo);
        }
    }
    fclose(fp);
    if(!ArraySize(g_aModels))
    {
    #if AMXX_VERSION_NUM < 183
        new szError[96];
        formatex(szError, charsmax(szError), "File '%s' incorrect!", szPath);
        set_fail_state(szError);
    #else
        set_fail_state("File '%s' incorrect!", szPath);
    #endif
    }
}

public plugin_init()
{
    register_plugin("[ReAPI] Custom Models", "1.6.1", "neugomon");
    RegisterHookChain(RG_CBasePlayer_Spawn, "fwdPlayerSpawn_Post", true);
    RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel, "fwdSetClientUserInfoModel_Pre", false);
}

public client_putinserver(id)
{
    new szIP[16];      get_user_ip(id, szIP, charsmax(szIP), 1);
    new szAuthid[25];get_user_authid(id, szAuthid, charsmax(szAuthid));

    g_szPlayerModel[id][TEAM_TERRORIST][0] = EOS;
    g_szPlayerModel[id][TEAM_CT][0] = EOS;
    
    for(new i, flags = get_user_flags(id), aSize = ArraySize(g_aModels); i < aSize; i++)
    {
        ArrayGetArray(g_aModels, i, g_MdlInfo);
        
        switch(g_MdlInfo[ACCESS][0])
        {
            case 'p':
            {
                if(get_user_stats(id, stats, bodyhits) <= topLimit)
                {
                    CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                    break;
                }
            }
            case '#':
            {
                if(REU_GetAuthtype(id) == CA_TYPE_STEAM)
                {
                    CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                    break;
                }   
            }
            case '*':
            {
                CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                break;
            }
            case 'S', 'V':
            {
                if(strcmp(g_MdlInfo[ACCESS], szAuthid) == 0)
                {
                    CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                    break;
                }
            }
            default:
            {
                if(isdigit(g_MdlInfo[ACCESS][0]))
                {
                    if(strcmp(g_MdlInfo[ACCESS], szIP) == 0)
                    {
                        CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                        break;
                    }
                }
                else if(flags & read_flags(g_MdlInfo[ACCESS]))
                {
                    CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                    break;
                }
            }
        }
    }
}

public fwdPlayerSpawn_Post(id)
{
    if(!is_user_alive(id))
        return;
        
    switch(TeamName:get_member(id, m_iTeam))
    {
        case TEAM_TERRORIST:
            if(g_szPlayerModel[id][TEAM_TERRORIST][0]) rg_set_user_model(id, g_szPlayerModel[id][TEAM_TERRORIST]);
        case TEAM_CT:
            if(g_szPlayerModel[id][TEAM_CT][0]) rg_set_user_model(id, g_szPlayerModel[id][TEAM_CT]);
    }
}

public fwdSetClientUserInfoModel_Pre(const id, infobuffer[], szNewModel[])
{
    new TeamName:iTeam = get_member(id, m_iTeam);
    if(iTeam == TEAM_TERRORIST || iTeam == TEAM_CT)
    {
        if(g_szPlayerModel[id][iTeam][0] && strcmp(szNewModel, g_szPlayerModel[id][iTeam]) != 0)
            SetHookChainArg(3, ATYPE_STRING, g_szPlayerModel[id][iTeam]);
    }       
    return HC_CONTINUE;
}

stock CopyModel(index, modelT[], modelCT[])
{
    copy(g_szPlayerModel[index][TEAM_TERRORIST], charsmax(g_szPlayerModel[][]), modelT);
    copy(g_szPlayerModel[index][TEAM_CT], charsmax(g_szPlayerModel[][]), modelCT);
}
 

hyrik

Пользователь
Регистрация
18 Июл 2017
Сообщения
165
Симпатии
41
Пол
Мужской
hyrik,
Код:
// *************************************************************************************//
// Плагин загружен с  www.neugomon.ru                                                   //
// Автор: Neygomon  [ https://neugomon.ru/members/1/ ]                                  //
// Официальная тема поддержки: https://neugomon.ru/threads/2370/                        //
// При копировании материала ссылка на сайт www.neugomon.ru ОБЯЗАТЕЛЬНА!                //
// *************************************************************************************//

#include <amxmodx>
#include <reapi>

enum _:MDL
{
    ACCESS[32],
    MDL_T[64],
    MDL_CT[64]
}    // ip, steam, flag, #, *. # - steam; * - всем

new stats[8],bodyhits[8];
new topLimit = 15;    //Верхняя граница позиции в ТОПе для выдачи модели

new g_szPlayerModel[33][TeamName][64];
new Array:g_aModels, g_MdlInfo[MDL];

public plugin_precache()
{
    new szPath[64];
    get_localinfo("amxx_configsdir", szPath, charsmax(szPath));
    add(szPath, charsmax(szPath), "/custom_models.ini");
   
    new fp = fopen(szPath, "rt");
    if(!fp)
    {
    #if AMXX_VERSION_NUM < 183
        new szError[96];
        formatex(szError, charsmax(szError), "File '%s' not found!", szPath);
        set_fail_state(szError);
    #else
        set_fail_state("File '%s' not found!", szPath);
    #endif
    }
    g_aModels = ArrayCreate(MDL);
   
    new buff[190], t, ct, str[64];
    while(!feof(fp))
    {
        fgets(fp, buff, charsmax(buff)); trim(buff);
        if(!buff[0] || buff[0] == ';')
            continue;
        if(parse(buff,
            g_MdlInfo[ACCESS], charsmax(g_MdlInfo[ACCESS]),
            g_MdlInfo[MDL_T], charsmax(g_MdlInfo[MDL_T]),
            g_MdlInfo[MDL_CT], charsmax(g_MdlInfo[MDL_CT])) == 3
        )
        {
            formatex(str, charsmax(str), "models/player/%s/%s.mdl", g_MdlInfo[MDL_T], g_MdlInfo[MDL_T]);
            t = file_exists(str);
            if(t)     precache_model(str);
            else    log_amx("[WARNING] Model '%s' not found.", str);
           
            formatex(str, charsmax(str), "models/player/%s/%s.mdl", g_MdlInfo[MDL_CT], g_MdlInfo[MDL_CT]);
            ct = file_exists(str);
            if(ct)     precache_model(str);
            else    log_amx("[WARNING] Model '%s' not found.", str);
           
            if(t || ct) ArrayPushArray(g_aModels, g_MdlInfo);
        }
    }
    fclose(fp);
    if(!ArraySize(g_aModels))
    {
    #if AMXX_VERSION_NUM < 183
        new szError[96];
        formatex(szError, charsmax(szError), "File '%s' incorrect!", szPath);
        set_fail_state(szError);
    #else
        set_fail_state("File '%s' incorrect!", szPath);
    #endif
    }
}

public plugin_init()
{
    register_plugin("[ReAPI] Custom Models", "1.6.1", "neugomon");
    RegisterHookChain(RG_CBasePlayer_Spawn, "fwdPlayerSpawn_Post", true);
    RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel, "fwdSetClientUserInfoModel_Pre", false);
}

public client_putinserver(id)
{
    new szIP[16];      get_user_ip(id, szIP, charsmax(szIP), 1);
    new szAuthid[25];get_user_authid(id, szAuthid, charsmax(szAuthid));

    g_szPlayerModel[id][TEAM_TERRORIST][0] = EOS;
    g_szPlayerModel[id][TEAM_CT][0] = EOS;
   
    for(new i, flags = get_user_flags(id), aSize = ArraySize(g_aModels); i < aSize; i++)
    {
        ArrayGetArray(g_aModels, i, g_MdlInfo);
       
        switch(g_MdlInfo[ACCESS][0])
        {
            case 'p':
            {
                if(get_user_stats(id, stats, bodyhits) <= topLimit)
                {
                    CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                    break;
                }
            }
            case '#':
            {
                if(REU_GetAuthtype(id) == CA_TYPE_STEAM)
                {
                    CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                    break;
                }  
            }
            case '*':
            {
                CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                break;
            }
            case 'S', 'V':
            {
                if(strcmp(g_MdlInfo[ACCESS], szAuthid) == 0)
                {
                    CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                    break;
                }
            }
            default:
            {
                if(isdigit(g_MdlInfo[ACCESS][0]))
                {
                    if(strcmp(g_MdlInfo[ACCESS], szIP) == 0)
                    {
                        CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                        break;
                    }
                }
                else if(flags & read_flags(g_MdlInfo[ACCESS]))
                {
                    CopyModel(id, g_MdlInfo[MDL_T], g_MdlInfo[MDL_CT]);
                    break;
                }
            }
        }
    }
}

public fwdPlayerSpawn_Post(id)
{
    if(!is_user_alive(id))
        return;
       
    switch(TeamName:get_member(id, m_iTeam))
    {
        case TEAM_TERRORIST:
            if(g_szPlayerModel[id][TEAM_TERRORIST][0]) rg_set_user_model(id, g_szPlayerModel[id][TEAM_TERRORIST]);
        case TEAM_CT:
            if(g_szPlayerModel[id][TEAM_CT][0]) rg_set_user_model(id, g_szPlayerModel[id][TEAM_CT]);
    }
}

public fwdSetClientUserInfoModel_Pre(const id, infobuffer[], szNewModel[])
{
    new TeamName:iTeam = get_member(id, m_iTeam);
    if(iTeam == TEAM_TERRORIST || iTeam == TEAM_CT)
    {
        if(g_szPlayerModel[id][iTeam][0] && strcmp(szNewModel, g_szPlayerModel[id][iTeam]) != 0)
            SetHookChainArg(3, ATYPE_STRING, g_szPlayerModel[id][iTeam]);
    }      
    return HC_CONTINUE;
}

stock CopyModel(index, modelT[], modelCT[])
{
    copy(g_szPlayerModel[index][TEAM_TERRORIST], charsmax(g_szPlayerModel[][]), modelT);
    copy(g_szPlayerModel[index][TEAM_CT], charsmax(g_szPlayerModel[][]), modelCT);
}
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// custom_models.sma
//
// F:\╧╨╬├╨└╠╠█\╩╤\Compiler amxmodx 1.8.3\custom_models.sma(104) : error 017: undefined symbol "get_user_stats"
//
// 1 Error.
// Could not locate output file compiled\custom_models.amx (compile failed).
//
// Compilation Time: 0,76 sec
// ----------------------------------------

Press enter to exit ...
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу