CSGO загрузка и применение модели к игроку

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

  1. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    Есть ли вариант установки нестандартных моделей для клиента?

    Нашел на просторах alliedmods.net такой код:

    PHP:
    #pragma semicolon 1

    #include <sourcemod>
    #include <cstrike>
    #include <sdkhooks>
    #include <sdktools>

    public Plugin:myinfo =
    {
        
    name "Skins/TR CT - Jail",
        
    author "SoZika",
        
    description "Blehh",
        
    version "1.0",
        
    url "http://insanitybrasil.info"
    };

    InitPrecache()
    {
        
    PrecacheModel("models/player/techknow/prison/leet_p.mdl"true);

        
    AddFileToDownloadsTable("materials/models/player/techknow/prison/leet_p.vmt");
        
    AddFileToDownloadsTable("materials/models/player/techknow/prison/leet_p.vtf");
        
    AddFileToDownloadsTable("materials/models/player/techknow/prison/leet_p_n.vtf");
        
    AddFileToDownloadsTable("models/player/techknow/prison/leet_p.dx80.vtx");
        
    AddFileToDownloadsTable("models/player/techknow/prison/leet_p.dx90.vtx");
        
    AddFileToDownloadsTable("models/player/techknow/prison/leet_p.mdl");
        
    AddFileToDownloadsTable("models/player/techknow/prison/leet_p.phy");
        
    AddFileToDownloadsTable("models/player/techknow/prison/leet_p.sw.vtx");
        
    AddFileToDownloadsTable("models/player/techknow/prison/leet_p.vvd");
    }

    public 
    OnMapStart()
    {
        
    HookEvent("player_spawn"Event_PlayerSpawnEventHookMode_Pre);
        
    InitPrecache();
    }

    public 
    Action:Event_PlayerSpawn(Handle:Event, const String:name[], bool:dontBroadcast)
    {
        new 
    client GetClientOfUserId(GetEventInt(Event"userid"));
        if( 
    IsClientConnected(client) && IsClientInGame(client) && !IsFakeClient(client)){
            if(
    GetClientTeam(client) == 2) {
                
    SetEntityModel(client"models/player/techknow/prison/leet_p.mdl");
            }
        }
    }  

    Он вполне работает на csgo, однако, модели скачиваются не у всех игроков. Это логично, т.к. в настройках у клиента может стоять "Загрузка только звуков" и др.
    У тех, у кого не скачались модели, для тех модель становится полностью прозрачной, остаётся видным только оружие. У остальных работает на ура.

    Есть ли вариант применения модели только тому игроку, который загрузил модель, а кто не загрузил, тому установить стандартную модель?
     
  2. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.590
    Симпатии:
    1.995
    Primo, проверять переменную клиента
    и, если она такова - включать ему стандартную модель.
     
  3. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    Нужна реализация.
     
  4. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.590
    Симпатии:
    1.995
    Пример мною вышесказанного:
    PHP:
    public OnClientAuthorized(client, const String:auth[]) QueryClientConVar(client"cl_allowdownload"ConVarQueryFinished:ClientConVarclient);

    public 
    ClientConVar(QueryCookie:cookieclientConVarQueryResult:result, const String:Name[], const String:Value[])
    {
        if (!
    StrEqual(Value"all") ...//Если не загрузка всего (all), то установить стандартный скин.
    }
    Насчёт "all" - это пример, смотри сам значения квара.
     
    Primo и EPacker2 нравится это.
  5. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    Я вот задумался.
    Ну сможем мы контролировать квар, а как отобразить игроку, который не скачал модели, стандартную модель, а всем остальным изменённую?

    Добавлено через 1 час 19 минут
    В общем. Возникла одна проблема, которую я с моими кривыми руками решить не могу.
    Модели скачиваются и устанавливаются на ура, однако проблема в том, что модель при установке игроку не видна. Т.е. видно только оружие.
    А видны только те модели, которые я, к примеру, скачивал, заходя на другой сервер, и которые, собственно, там работали. Я хз что это такое, кто-нибудь знает? и может, кто знает, как решить проблему?
     
    Последнее редактирование: 6 авг 2014
  6. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    Для большего представления прилагаю скрин.

    Всего поставил 5 моделей, показываю на примере одной из них.
    У кого-то она не отображается, но зато у него может отображаться одна из других.
    У кого-то наоборот эта отображается, еще какая-нибудь, и остальные не отображаются.
    У кого-то вообще все отображаются.
     

    Вложения:

    • screen.jpg
      screen.jpg
      Размер файла:
      20,8 КБ
      Просмотров:
      31
  7. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    Решил провести эксперимент. Удалил все скачанные модели, в итоге загрузились мои, а модели теперь вообще не видно ни 1.
    Логично, что я удалил модели, которые были в других папках, и после удаления модель больше не ставится.

    Добавлено через 20 часов 37 минут
    Может хоть кто-то знает как "правильно" заменять модель игроку?
     
    Последнее редактирование: 7 авг 2014
  8. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    Тема всё еще в силе.
    При сворачивании и последующем разворачивании игры клиент крашится с ошибкой.

    Проблема смены модели игроку всё еще в силе.
    Если кто знает, как правильно менять модель, пишите :3
     

    Вложения:

    • screen.png
      screen.png
      Размер файла:
      4,1 КБ
      Просмотров:
      15