Написание плагинов

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@alexmy, скорее в консоли клиента: я не видел аналогичного сообщения в консоли сервера, но зато в консоли клиента - не раз.
 

alexmy

Участник
Сообщения
284
Реакции
13
@alexmy, скорее в консоли клиента: я не видел аналогичного сообщения в консоли сервера, но зато в консоли клиента - не раз.
Да точно, я перепутал :D. Можешь написать. чтоб например как при кике или бане игрока вылазила табличка о не соответствии версии клиента его?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@alexmy, плагины не обрабатывают эту раннюю стадию соединения. Если и возможно, то только через расширения и детоуры.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@alexmy, я не уверен даже смогу ли я определить версию клиента подключающегося игрока
 

NotToday

Участник
Сообщения
79
Реакции
2
Всем доброго времени суток.
Нужен простой плагин баланса для CSGO.
Описание: надо чтобы было 1 террорист на 3 кт. Но вообще желательно, чтобы это было редактируемым.
 

Truyn

King of clowns
Сообщения
1,591
Реакции
749
@Grey83 можешь зависимость удалить от influx и сделать чтобы он по дефолту включался как там просил.Знаю звучит слишком нагло но был бы очень признателен тебе :congratulate:

C-подобный:
#include <sourcemod>

#include <influx/core>
#include <influx/hud>


//#define DEBUG


int g_iLastShot[INF_MAXPLAYERS];

bool g_bIsGO;


public Plugin myinfo =
{
    author = INF_AUTHOR,
    url = INF_URL,
    name = INF_NAME..." - Hide Players | Weapon Sounds",
    description = "Disable weapon sounds also.",
    version = INF_VERSION
};

public void OnPluginStart()
{
    g_bIsGO = GetEngineVersion() == Engine_CSGO;
    
    
    AddTempEntHook( "Shotgun Shot", E_ShotgunShot );
}

public void OnClientPutInServer( int client )
{
    g_iLastShot[client] = 0;
}

public Action E_ShotgunShot( const char[] te_name, const int[] Players, int numClients, float delay )
{
    // Apparently it's not the index. For some weird reason.
    int player = TE_ReadNum( "m_iPlayer" ) + 1;
    
    if ( !IS_ENT_PLAYER( player ) ) return Plugin_Continue;
    
    if ( !IsClientInGame( player ) ) return Plugin_Continue;
    
    
    // We've already processed this shot!
    if ( g_iLastShot[player] == GetGameTickCount() )
    {
        return Plugin_Continue;
    }
    
#if defined DEBUG
    PrintToServer( INF_DEBUG_PRE..."Shots fired by %i! (tick: %i)", player, GetGameTickCount() );
#endif
    
    g_iLastShot[player] = GetGameTickCount();
    
    
    // What flag to check against.
    int flag = IsFakeClient( player ) ? HIDEFLAG_HIDE_BOTS : HIDEFLAG_HIDE_PLAYERS;
    
    
    int nClients = 0;
    int[] clients = new int[MaxClients];
    
    for ( int i = 1; i <= MaxClients; i++ )
    {
        if ( !IsClientInGame( i ) ) continue;
        
        if ( IsFakeClient( i ) ) continue;
        
        // Would play the sound twice.
        if ( i == player ) continue;
        
        
        
        if ((!IsPlayerAlive( i ) && GetClientObserverTarget( i ) == player) // That's our spectator target!
        ||  !(Influx_GetClientHideFlags( i ) & flag)) // We don't want to hide!
        {
            clients[nClients++] = i;
        }
    }
    
    // Nothing changed.
    if ( nClients == numClients ) return Plugin_Continue;
    
    
    if ( nClients )
    {
        decl Float:temp[3];
        
        TE_Start( "Shotgun Shot" );
        
        TE_ReadVector( "m_vecOrigin", temp );
        TE_WriteVector( "m_vecOrigin", temp );
        TE_WriteFloat( "m_vecAngles[0]", TE_ReadFloat( "m_vecAngles[0]" ) );
        TE_WriteFloat( "m_vecAngles[1]", TE_ReadFloat( "m_vecAngles[1]" ) );
        
        if ( g_bIsGO )
            TE_WriteNum( "m_weapon", TE_ReadNum( "m_weapon" ) ); // Thanks Valve...
        else
            TE_WriteNum( "m_iWeaponID", TE_ReadNum( "m_iWeaponID" ) );
        
        TE_WriteNum( "m_iMode", TE_ReadNum( "m_iMode" ) );
        TE_WriteNum( "m_iSeed", TE_ReadNum( "m_iSeed" ) );
        TE_WriteNum( "m_iPlayer", player - 1 );
        TE_WriteFloat( "m_fInaccuracy", TE_ReadFloat( "m_fInaccuracy" ) );
        TE_WriteFloat( "m_fSpread", TE_ReadFloat( "m_fSpread" ) );
        
        TE_Send( clients, nClients, delay );
    }
    
    return Plugin_Stop;
}
 
Последнее редактирование:

Dobro777

Участник
Сообщения
45
Реакции
5
Приветствую ребят, если такое возможно то пожалуйста сделайте, сервер cs:go нужно чтобы в "первом" раунде выдавалось определенная сумма игровой валюты, а точнее 1 000$, во всех остальных по 10 000$, на сервере и стоит mp_maxmoney 10000, но как бы сделать именно в 1м раунде 1000$, чтобы могли в 1м раунде закупить только пистолеты.
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
@Dobro777, mp_startmoney 1000
Все гениальное просто, друг мой.
 

HenryTownshand

Чел ты
Сообщения
255
Реакции
140
@Oligarx1488, вроде ты просил
upload_2019-2-20_16-2-25.png

в Discord.cfg добавить:
"ServerInfo" "WebHook канала"
 

Вложения

  • DiscordMapNotifications.smx
    4.6 КБ · Просмотры: 3
  • DiscordMapNotifications.sp
    1.2 КБ · Просмотры: 12
Последнее редактирование:
Сверху Снизу