Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Пропадают модели игроков

Статус пользователя Somon007
сообщение 3.9.2023, 19:14
Сообщение #1
Стаж: 2 года 10 месяцев

Сообщений: 6
Благодарностей: 1
Полезность: 0

Доброго времени суток уважаемые коллеги!
Имеется сервер, на котором установлен плагин ChangeModels который меняет скины игрокам по нику/ip/steam.

Проблема заключается в том что если на сервере играют два игрока которые имеют скин у того кто первым зашел после захода второго у которого есть скин пропадает скин в целом. И ещё скин появляется после 2-3 убийств и иногда пропадает у игрока.
Amx Mod X - 1.9.0.5271

Билд

Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.11.0.767-dev
Build date: 03:14:15 Oct 25 2021 (2753)
Build from: https://github.com/dreamstalker/rehlds/commit/471158b


Версия Metamod

Metamod-r v1.3.0.131, API (5:13)
Metamod-r build: 18:51:28 Jul 11 2022
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/adc9414

Исходной код

Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#pragma semicolon 1

#define PLUGIN "ChangeModel (free) for amx-x.ru"
#define VERSION "1.0"
#define AUTHOR "Pain96"

#define CS_TEAM_T 1
#define CS_TEAM_CT 2

//                                путь/имя конфигурационного файла; префикс в качестве ключа для setinfo, содержащий пароль; причина кика, если пароль не совпадает
new const g_Library[][] = {"", "/addons/amxmodx/configs/models.ini", "_pw", "Неверный пароль"};

new szInfoPlayerModelCt[33], szInfoPlayerModelTt[33],
szAccessUser[33];

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_event("ResetHUD", "ChangeModel", "b");
}

public plugin_precache()
{
    new szInfo[256], szInfoPrecache[128],
    szInfoUser[32], szInfoUserPassword[32],
    szInfoModelCt[64], szInfoModelTt[64],
    iNum;
    
    for(new iLine = 0; read_file(g_Library[1], iLine, szInfo, charsmax(szInfo), iNum); iLine++)
    {
        if(iNum && szInfo[0] != ';')
        {
            parse(szInfo, szInfoUser, charsmax( szInfoUser ),
            szInfoUserPassword, charsmax(szInfoUserPassword),
            szInfoModelCt, charsmax(szInfoModelCt),
            szInfoModelTt, charsmax(szInfoModelTt)
            );
            
            formatex(szInfoPrecache, charsmax(szInfoPrecache), "models/player/%s/%s.mdl", szInfoModelCt, szInfoModelCt);
            precache_model(szInfoPrecache);
            formatex(szInfoPrecache, charsmax(szInfoPrecache), "models/player/%s/%s.mdl", szInfoModelTt, szInfoModelTt);
            precache_model(szInfoPrecache);
        }
    }
}

public client_connect(id)
{
    set_task(0.5, "CheckPlayerInfo", id);
    szAccessUser[id] = false;
    szInfoPlayerModelCt[id] = false;
    szInfoPlayerModelTt[id] = false;
}

public client_infochanged(id)
{
    set_task(0.5, "CheckPlayerInfo", id);
    szAccessUser[id] = false;
    szInfoPlayerModelCt[id] = false;
    szInfoPlayerModelTt[id] = false;
}

public CheckPlayerInfo(id)
{    
    new szInfo[256], szName[32],
    szSteam[32], szIP[32],
    szPassword[32], szInfoUser[32],
    szInfoUserPassword[32], szInfoModelCt[64],
    szInfoModelTt[64], iNum;
    
    if (!is_user_connected(id))
        return 0;
        
    get_user_name(id, szName, charsmax(szName));
    get_user_authid(id, szSteam, charsmax(szSteam));
    get_user_ip(id, szIP, charsmax(szIP), 1);
    
    for(new iLine = 0; read_file(g_Library[1], iLine, szInfo, charsmax(szInfo), iNum); iLine++)
    {
        if(iNum && szInfo[0] != ';')
        {
            parse(szInfo, szInfoUser, charsmax( szInfoUser ),
            szInfoUserPassword, charsmax(szInfoUserPassword),
            szInfoModelCt, charsmax(szInfoModelCt),
            szInfoModelTt, charsmax(szInfoModelTt)
            );

            if (equal(szName, szInfoUser))
            {
                get_user_info(id, g_Library[2], szPassword, charsmax(szPassword));
                
                if(!equal(szInfoUserPassword, szPassword))
                    return server_cmd("kick %s ^"%s^"", szName, g_Library[3]);
                
                copy(szInfoPlayerModelCt[id], charsmax(szInfoPlayerModelCt), szInfoModelCt);
                copy(szInfoPlayerModelTt[id], charsmax(szInfoPlayerModelTt), szInfoModelTt);
                szAccessUser[id] = true;
                break;
            }
            else if (equal(szSteam, szInfoUser))
            {                
                copy(szInfoPlayerModelCt[id], charsmax(szInfoPlayerModelCt), szInfoModelCt);
                copy(szInfoPlayerModelTt[id], charsmax(szInfoPlayerModelTt), szInfoModelTt);
                szAccessUser[id] = true;
                break;
            }
            else if (equal(szIP, szInfoUser))
            {
                copy(szInfoPlayerModelCt[id], charsmax(szInfoPlayerModelCt), szInfoModelCt);
                copy(szInfoPlayerModelTt[id], charsmax(szInfoPlayerModelTt), szInfoModelTt);
                szAccessUser[id] = true;
                break;
            }
        }
    }
    return 1;
}

public ChangeModel(id, level, cid)
{
    if (szAccessUser[id])
    {
        new iTeam = get_user_team(id);
        switch(iTeam)
        {
            case CS_TEAM_T: cs_set_user_model(id, szInfoPlayerModelTt[id]);
            case CS_TEAM_CT: cs_set_user_model(id, szInfoPlayerModelCt[id]);

            default: cs_reset_user_model(id);
        }
    }
    return 0;
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Forwardleo
сообщение 4.9.2023, 15:29
Сообщение #2


Стаж: 10 лет

Сообщений: 547
Благодарностей: 318
Полезность: 385

Проблема может быть как в самом плагине, так и в моделях игроков (что чаще бывает). Попробую сначала поменять плагин (к примеру на этот), если не поможет, то модели игроков на другие. Тестируй.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Somon007
сообщение 4.9.2023, 20:13
Сообщение #3
Стаж: 2 года 10 месяцев

Сообщений: 6
Благодарностей: 1
Полезность: 0

Можете закрыть тему. В соседнем форуме уже решили.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 5.9.2023, 1:47
Сообщение #4


Иконка группы

Стаж: 13 лет

Сообщений: 2458
Благодарностей: 1482
Полезность: 772

HostGame.cf
Хорошо бы сюда решение скопировать. А то "соседний форум" понятие растяжимое, а ссылки на него могут быть восприняты как реклама ресурса-конкурента. А люди то будут искать.


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Forwardleo
сообщение 5.9.2023, 15:09
Сообщение #5


Стаж: 10 лет

Сообщений: 547
Благодарностей: 318
Полезность: 385

Somon007, так напиши решение сюда, конечно. Мало ли кто из гугла будет искать и с таким столкнётся.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fullserver
сообщение 5.9.2023, 15:58
Сообщение #6


Иконка группы

Стаж: 11 лет

Сообщений: 5122
Благодарностей: 2100
Полезность: 1394

Ему просто другой код скинули. https://dev-cs.ru/threads/33062/#post-159125
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Somon007
сообщение 9.9.2023, 21:48
Сообщение #7
Стаж: 2 года 10 месяцев

Сообщений: 6
Благодарностей: 1
Полезность: 0

Решение в переписание некоторых моментов которые сделал BlackSignature из dev-cs
Прикрепленные файлы:
Прикрепленный файл  ChangeModels.sma ( 3,69 килобайт ) Кол-во скачиваний: 10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: