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

Palonez

бб братки
Сообщения
3,035
Реакции
1,837

DarkerZ

Участник
Сообщения
395
Реакции
175
@Palonez, @Palonez,
@Limbo,
C++:
int
    time[MAXPLAYERS + 1],
    user_id[MAXPLAYERS + 1];
 
Database g_hDatabase;

public void OnPluginStart()
{
    Database.Connect(ConnectCallBack, "gamecms");
    HookEvent("player_spawn", Event_PlayerSpawn, EventHookMode_Post);
}

public void ConnectCallBack(Database hDatabase, const char[] sError, any data)
{
    if (hDatabase == null) {
        SetFailState("Database failure: %s", sError);
        return;
    }

    g_hDatabase = hDatabase;
}

public void OnClientPostAdminCheck(int client)
{
    static char szQuery[256], szAuth[64];
    if(0 < client && !IsFakeClient(client)) {
        GetClientAuthId(client, AuthId_Steam2, szAuth, sizeof(szAuth), true);
        FormatEx(szQuery, sizeof(szQuery), "SELECT `id` FROM `users` WHERE `steam_id` = '%s';", szAuth);
        g_hDatabase.Query(SQL_Callback_SelectClient, szQuery, GetClientUserId(client));

        time[client] = GetTime();
    }
}

public void SQL_Callback_SelectClient(Database hDatabase, DBResultSet hResults, const char[] sError, any iUserID)
{
    if(sError[0]) {
        LogError("SQL_Callback_SelectClient: %s", sError);
        return;
    }
 
    int client = GetClientOfUserId(iUserID);
    if(client) {
        if(hResults.FetchRow())    {
            user_id[client] = hResults.FetchInt(0);
        }
    }
}

public void Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    if(!client) return;

    OnClientDisconnected(client);
}

public void OnClientDisconnected(int client)
{
    if(0 < client && !IsFakeClient(client) && user_id[client] > 0)
    {
        char szQuery[256], sAuth[64];
        time[client] = GetTime() - time[client];
        GetClientAuthId(client, AuthId_Steam2, sAuth, sizeof(sAuth));

        FormatEx(szQuery, sizeof(szQuery),  "UPDATE `users` SET `game_time` = `game_time` + '%d' WHERE `id` = '%d'", time[client], user_id[client]);
        g_hDatabase.Query(SQL_Callback_SaveClient, szQuery, GetClientUserId(client));
    }
}

public void SQL_Callback_SaveClient(Database hDatabase, DBResultSet results, const char[] szError, any data)
{
    if(szError[0]) LogError("SQL_Callback_Save: %s", szError);
}

возможно так
А разве в переменную time[client] после использования OnClientDisconnected ты не должен снова записывать gettime(), иначе у тебя вместо временной метки будет время нахождения на сервере после захода, а далее вообще не пойми что
 

Vanooo123

Участник
Сообщения
206
Реакции
64
как уменьшить гравитацию только для пропов, оружия, рекдол трупов, но не игроков
 

SteelSeries

Участник
Сообщения
44
Реакции
2
Здравствуйте, нужен плагин, который ограничит оружие в начале раунда по типу "Ограничение оружия" (1.2.0) by Phoenix (˙·٠●Феникс●٠·˙), данный плагин крашит сервер, а аналоги по типу restrictdeagle работают некорректно.
Описание: плагин должен ограничит выдачу desert eagle в начале раунда и убрать если он выпал из игрока, но при этом в таких плагинах как дуэль duel by drumanid чтобы выдача desert eagle была.
Готов купить плагин, если сможете его разработать.
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
Здравствуйте, прошу помощи в написание простенького плагина (можно на мат основе)
Требуется плагин который бы записывал игровое время проведённое на сервере., серверов 3.
И записывал бы в секундах все это в бд от gamecms в Таблица: users
Посмотреть вложение 110173

Игры cs go и tf2
могу взяться, если оставите запрос в разделе "Требуется"
 

Мотыга

сила в силе духа ☠️☠️☠️
Сообщения
84
Реакции
49
Может кто помочь исправить плагин для css?
1 - В начале каждого нового раунда берется нож а пистолет выбрасывает
2 - У терористов всегда берется дефуза
Проблема только в css steam а в cs:go таких проблем нет
 

Вложения

  • custom_ManifestCommandLibrary.sp
    148.8 КБ · Просмотры: 15

Frook

Участник
Сообщения
84
Реакции
2
Привет всем, нужен плагин на необычные оружья которые будут падать с неба как дроп. Например оружие лазеры, огнеметы, гранатометы у которых будет большой урон
 

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513
Привет всем, нужен плагин на необычные оружья которые будут падать с неба как дроп. Например оружие лазеры, огнеметы, гранатометы у которых будет большой урон
Только писать в приват за хорошее вознаграждение
 

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Может кто помочь исправить плагин для css?
1 - В начале каждого нового раунда берется нож а пистолет выбрасывает
2 - У терористов всегда берется дефуза
Проблема только в css steam а в cs:go таких проблем нет
А что разработчик? Или не поддерживает?
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Всем привет, есть значение: g_iItemsValues[iCaseID][iItemID].sName, подскажите пожалуйста как получить его предыдущее значение (То что только что прошло) и следующее (То что будет следующее). Значение берется с конфига и по порядку выводится
Код:
Action ProccesItem(Handle hTimer, ArrayList hArray)
{
    int iClient, iCaseID, iEntity;

    iEntity = hArray.Get(0);

    for (int i = 1; i < MaxClients; i++)
    {
        if (IsClientInGame(i) && iTrashData[0][i] == iEntity)
        {
            iClient = i;
            iCaseID = iTrashData[1][i];
        }
    }

    if (iClient)
    {
        int iItemID = hArray.Get(g_iCounter[iClient]);
        hArray.Erase(g_iCounter[iClient]);


        if (2 > g_iCounter[iClient])
        {
            g_iPlayerInfo[iCaseID][iClient].iCasesAmount--;
            if (g_iCasesValues[iCaseID].bNeedKey)
            {
                !g_bKeysType[iClient] ? g_iUniverKeysAmount[iClient]--:g_iPlayerInfo[iCaseID][iClient].iKeysAmount--;
            }
            g_iPlayerInfo[iCaseID][iClient].iClientCaseCD = g_iCasesValues[iCaseID].iCaseCD+GetTime();

            if (iTrashData[2][iClient] == iCaseID && iTrashData[3][iClient] != -1)
            {
                iItemID = iTrashData[3][iClient];
                iTrashData[2][iClient] = iTrashData[3][iClient] = -1;
            }

            iTrashData[0][iClient] = iTrashData[1][iClient] = 0;
            g_bIsOpening[iClient] = false;

            OnClientOpenCase(iClient, iCaseID, g_iItemsValues[iCaseID][iItemID].sTrigger, g_iItemsValues[iCaseID][iItemID].sOutCome);
            SaveData(iClient);
            

            if (g_bFreezePlayer)
            {
                SetEntityMoveType(iClient, MOVETYPE_WALK);
            }

            if (g_bGodMode)
            {
                SetEntProp(iClient, Prop_Data, "m_takedamage", 2, 1);
            }
            
            else
            {
                PrintHintText(iClient, "▷ ► %s ◄ ◁", g_iItemsValues[iCaseID][iItemID].sName);
            }

            EmitSoundToClient(iClient, g_iRarityValues[g_iItemsValues[iCaseID][iItemID].iRarityID].sRaritySounds, _, 0, _, _, fVolume);

            if (g_bUserMsg) PerformFade(iClient, g_iRarityValues[g_iItemsValues[iCaseID][iItemID].iRarityID].iRGBA);

            RemoveEntityEx(EntRefToEntIndex(iEntity), "FadeAndKill");

            if (g_bChatAll)
            {
                char sCM[256], sOld[256];
                FormatEx(sCM, sizeof(sCM), "%t", "CM_Player_Dropped_Item", iClient, g_iRarityValues[g_iItemsValues[iCaseID][iItemID].iRarityID].sRarityChatColors_CM, g_iItemsValues[iCaseID][iItemID].sName, g_iCasesValues[iCaseID].sCaseName);
                MC_PrintToChatAll("%s %s", sChatColors_CM, sCM);
                
                FormatEx(sOld, sizeof(sOld), "%t", "Player_Dropped_Item", iClient, g_iItemsValues[iCaseID][iItemID].sName, g_iCasesValues[iCaseID].sCaseName);
                C_PrintToChatAll("%s %s", sChatColors, sOld);
            }
            
            delete hArray;
        }
        else
        {
            EmitSoundToClient(iClient, sSoundsScroll, _, 0, _, _, fVolume);
            
            PrintHintText(iClient, "▷ ► %s ◄ ◁", g_iItemsValues[iCaseID][iItemID].sName);
            CreateTimer(g_iCounter[iClient] < 3 ? 0.7:0.3, ProccesItem, hArray);
        }
    
        g_iCounter[iClient]--;
    }
}
 

Туник

Участник
Сообщения
1,281
Реакции
263
Вопрос, может есть у кого плагин для 10 патронов в обойме AWP поделитесь - Нашёл только этот модуль, [VIP] AWP Manager но вип я не использую.
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465

Вложения

  • awp_manager.sp
    4 КБ · Просмотры: 9
  • awp_manager.smx
    9.2 КБ · Просмотры: 4

Туник

Участник
Сообщения
1,281
Реакции
263
Вот, попробуй, убрал оттуда вип (компилил на см 1.11)
L 03/18/2023 - 10:05:53: SourceMod error session started
L 03/18/2023 - 10:05:53: Info (map "awp_lego_tower_2") (file "/home/server60106/game/csgo/addons/sourcemod/logs/errors_20230318.log")
L 03/18/2023 - 10:05:53: [SM] Error parsing gameconfig file "/home/server60106/game/csgo/addons/sourcemod/gamedata/ammomanager.gamedata.txt":
L 03/18/2023 - 10:05:53: [SM] Error 1 on line 0, col 0: Stream failed to open
L 03/18/2023 - 10:05:53: [SM] Exception reported: Unable to open ammomanager.gamedata: File could not be opened: No such file or directory
L 03/18/2023 - 10:05:53: [SM] Blaming: awp_manager.smx
L 03/18/2023 - 10:05:53: [SM] Call stack trace:
L 03/18/2023 - 10:05:53: [SM] [0] LoadGameConfigFile
L 03/18/2023 - 10:05:53: [SM] [1] Line 30, D:\Desktop\CSGO Compiler\awp_manager.sp::OnPluginStart
L 03/18/2023 - 10:05:53: [SM] Unable to load plugin "awp_manager.smx": Error detected in plugin startup (see error logs)
L 03/18/2023 - 10:06:14: Error log file session closed.
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
L 03/18/2023 - 10:05:53: SourceMod error session started
L 03/18/2023 - 10:05:53: Info (map "awp_lego_tower_2") (file "/home/server60106/game/csgo/addons/sourcemod/logs/errors_20230318.log")
L 03/18/2023 - 10:05:53: [SM] Error parsing gameconfig file "/home/server60106/game/csgo/addons/sourcemod/gamedata/ammomanager.gamedata.txt":
L 03/18/2023 - 10:05:53: [SM] Error 1 on line 0, col 0: Stream failed to open
L 03/18/2023 - 10:05:53: [SM] Exception reported: Unable to open ammomanager.gamedata: File could not be opened: No such file or directory
L 03/18/2023 - 10:05:53: [SM] Blaming: awp_manager.smx
L 03/18/2023 - 10:05:53: [SM] Call stack trace:
L 03/18/2023 - 10:05:53: [SM] [0] LoadGameConfigFile
L 03/18/2023 - 10:05:53: [SM] [1] Line 30, D:\Desktop\CSGO Compiler\awp_manager.sp::OnPluginStart
L 03/18/2023 - 10:05:53: [SM] Unable to load plugin "awp_manager.smx": Error detected in plugin startup (see error logs)
L 03/18/2023 - 10:06:14: Error log file session closed.
Попробуй залить остальные файлы с плагина что ты выше кидал.
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Сверху Снизу