Оптимизировать плагин моделей.

Тема в разделе "Программирование / Скриптинг", создана пользователем pokypka20, 24 окт 2014.

  1. pokypka20

    pokypka20

    Сообщения:
    250
    Симпатии:
    30
    Использую плагин от ws player classes. Тоесть каждому классу присваивается свой скин, но у меня часто падает сервер и посстоянная ошибка в консоле
    PHP:
    ERRORTried to SetParentAttachment for entity info_particle_system (CSSParticle), but it has no attachment
    Как можно максимально оптимизировать код в этом плагине, или в чем может быть причина вывода такой ошибки (лог чистый, только консоль спамит)

    PHP:
    #pragma semicolon 1
    #include <sdktools_functions>
    #include <sdktools_stringtables>

    new String:wS_ModeL[9][250], Handle:wS_Cvar[9], bool:g_Enabled false;

    #define PATH_SIZE 512
    #define FILE_SIZE 256

    public OnPluginStart()
    {
        
    RegServerCmd("dl"add_to_download);
        
        
    wS_Cvar[1] = CreateConVar("model_phoenix",        "");
        
    wS_Cvar[2] = CreateConVar("model_leet",            "");
        
    wS_Cvar[3] = CreateConVar("model_arctic",        "");
        
    wS_Cvar[4] = CreateConVar("model_guerilla",        "");
        
    wS_Cvar[5] = CreateConVar("model_seal_team",    "");
        
    wS_Cvar[6] = CreateConVar("model_gsg9",            "");
        
    wS_Cvar[7] = CreateConVar("model_sas",            "");
        
    wS_Cvar[8] = CreateConVar("model_gign",            "");

        
    AutoExecConfig(true"player_class_model",        "sourcemod");
        
    HookEvent("player_spawn",    player_spawn);
    }

    public 
    OnMapStart()
    {
        
    ServerCommand("exec downloads.cfg");
    }

    public 
    Action:add_to_download(args)
    {
        if (
    args != 1)
            return 
    Plugin_Handled;

        
    decl String:info[PATH_SIZE];
        if (
    GetCmdArg(1infoPATH_SIZE) < || TrimString(info) < 4)
            return 
    Plugin_Handled;

        
    ReplaceString(infoPATH_SIZE"\\""/");

        
    /////////
        
    new Handle:dir OpenDirectory(info);
        if (
    dir == INVALID_HANDLE)
        {
            
    AddFileToDownloadsTable(info);
            return 
    Plugin_Handled;
        }

        new 
    dir_strlen strlen(info);
        if (
    info[dir_strlen-1] == '/'info[dir_strlen-1] = '\0';

        
    decl String:file[PATH_SIZE], FileType:type;
        while (
    ReadDirEntry(dirfileFILE_SIZEtype))
        {
            if (
    type == FileType_File && strlen(file) > && StrContains(file".ztmp"false) == -1)
            {
                
    Format(filePATH_SIZE"%s/%s"infofile);
                
    AddFileToDownloadsTable(file);
            }
        }
        
    CloseHandle(dir);
        
    /////////

        
    return Plugin_Handled;
    }

    public 
    OnConfigsExecuted()
    {
        
    g_Enabled false;
        for (new class = 
    1; class < 9; class++)
        {
            
    GetConVarString(wS_Cvar[class], wS_ModeL[class], 250);
            if (
    wS_ModeL[class][0] == 'm' && FileExists(wS_ModeL[class]))
            {
                
    PrecacheModel(wS_ModeL[class], true);
                
    g_Enabled true;
            }
            else
                
    wS_ModeL[class][0] = '\0';
        }
    }

    public 
    player_spawn(Handle:event, const String:name[], bool:silent)
    {
        if (!
    g_Enabled)
            return;

        new 
    client GetClientOfUserId(GetEventInt(event"userid"));
        new 
    xclass GetEntProp(clientProp_Send"m_iClass");
        if (
    xclass && wS_ModeL[xclass][0] == 'm'SetEntityModel(clientwS_ModeL[xclass]);
    }
    Забыл добавить это 2 совмещенных плагина add_to_download и player_classes при удалении плагина всё норм, помогите максимально оптимизировать плагин, или устранить ошибку.
     
  2. gibs

    gibs Фитиль народного волненья

    Сообщения:
    541
    Симпатии:
    138
    Что-то мне подсказывает, что или ошибка не от этого плагина, или на скилете не все аттачменты присутствуют. Хотя партиклы к моделе игрока не прикрепляются как бы. У тебя есть какой-нибудь плагин эффектов? Или плагин с эффектами.