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

Temlik

Участник
Сообщения
624
Реакции
144
Если есть несколько плагинов, у которых каждую секунду срабатывает таймер (например, для подсчёта наигранного времени), то есть плагины работают круглосуточно, есть смысл сделать один глобальный таймер, чтобы сэкономить ресурсы?
 

Palonez

Пиши, разберемся
Сообщения
1,276
Реакции
526
Если есть несколько плагинов, у которых каждую секунду срабатывает таймер (например, для подсчёта наигранного времени), то есть плагины работают круглосуточно, есть смысл сделать один глобальный таймер, чтобы сэкономить ресурсы?
Ну если все они делают одно и тоже - почему бы и нет?
 

RudikS

Участник
Сообщения
130
Реакции
61
Если есть несколько плагинов, у которых каждую секунду срабатывает таймер (например, для подсчёта наигранного времени), то есть плагины работают круглосуточно, есть смысл сделать один глобальный таймер, чтобы сэкономить ресурсы?
А чем способ сохранять время коннекта игрока и вычитать из времени дисконнекта плох?
 

Phenom

Джентльмен этиловый
Сообщения
112
Реакции
30
А чем способ сохранять время коннекта игрока и вычитать из времени дисконнекта плох?
Согласен, проще записывать GetTime() в OnClientConnected и OnClientDisconnect, потом уже вычитать либо в самом плагине либо в бд, например.
 

Temlik

Участник
Сообщения
624
Реакции
144
@RudikS @Phenom, во-первых, это был пример, во-вторых, чтобы показывать время игроку, когда он напишет команду, допустим (опять же пример)
 

Phenom

Джентльмен этиловый
Сообщения
112
Реакции
30
@Temlik, Можете взять пример с этого плагина, чел сделал один таймер на каждую сторону игрока (TT, CT, Spec) и потом это время суммирует. При этом используется только один таймер.
Снимок экрана 2022-08-01 170832.png

 

Grey83

не пишу плагины с весны 2022
Сообщения
6,146
Реакции
3,597
@Phenom, вообще и таймер не нужен, если время не нужно куда-нибудь постоянно выводить.
Достаточно ловить событие смены команды и запоминать время.
 

DENZEL519

Участник
Сообщения
139
Реакции
24
Всем здравствуйте, может кто помочь в плагине [ZR] Zombie Class: Smoker убрать утечку памяти.

C-подобный:
L 08/02/2022 - 23:23:21: [SM] Exception reported: Memory leak
L 08/02/2022 - 23:23:21: [SM] Blaming: zr/zr_zclass_smoker.smx
L 08/02/2022 - 23:23:21: [SM] Call stack trace:
L 08/02/2022 - 23:23:21: [SM]   [0] CreateDataPack
L 08/02/2022 - 23:23:21: [SM]   [1] Line 164, C:\Users\thera\OneDrive\ \ \CSS ZM\zr_zclass_smoker.sp::OnPlayerRunCmd
L 08/02/2022 - 23:23:21: [SM] MEMORY LEAK DETECTED IN PLUGIN (file "zr/zr_zclass_smoker.smx")
L 08/02/2022 - 23:23:21: [SM] Unloading plugin to free 30830 handles.
L 08/02/2022 - 23:23:21: [SM] Contact the author(s) of this plugin to correct this error.
L 08/02/2022 - 23:23:21: --------------------------------------------------------------------------
L 08/02/2022 - 23:23:21: Type    DataPack            |    Count    30830
L 08/02/2022 - 23:23:21: -- Approximately 493820 bytes of memory are in use by (30830) Handles.

L 08/02/2022 - 23:23:21: [SM] Exception reported: Memory leak
L 08/02/2022 - 23:23:21: [SM] Blaming: zr/zr_zclass_smoker.smx
L 08/02/2022 - 23:23:21: [SM] Call stack trace:
L 08/02/2022 - 23:23:21: [SM]   [0] CreateDataPack
L 08/02/2022 - 23:23:21: [SM]   [1] Line 164, C:\Users\thera\OneDrive\ \ \CSS ZM\zr_zclass_smoker.sp::OnPlayerRunCmd
 

Palonez

Пиши, разберемся
Сообщения
1,276
Реакции
526
Всем здравствуйте, может кто помочь в плагине [ZR] Zombie Class: Smoker убрать утечку памяти.

C-подобный:
L 08/02/2022 - 23:23:21: [SM] Exception reported: Memory leak
L 08/02/2022 - 23:23:21: [SM] Blaming: zr/zr_zclass_smoker.smx
L 08/02/2022 - 23:23:21: [SM] Call stack trace:
L 08/02/2022 - 23:23:21: [SM]   [0] CreateDataPack
L 08/02/2022 - 23:23:21: [SM]   [1] Line 164, C:\Users\thera\OneDrive\ \ \CSS ZM\zr_zclass_smoker.sp::OnPlayerRunCmd
L 08/02/2022 - 23:23:21: [SM] MEMORY LEAK DETECTED IN PLUGIN (file "zr/zr_zclass_smoker.smx")
L 08/02/2022 - 23:23:21: [SM] Unloading plugin to free 30830 handles.
L 08/02/2022 - 23:23:21: [SM] Contact the author(s) of this plugin to correct this error.
L 08/02/2022 - 23:23:21: --------------------------------------------------------------------------
L 08/02/2022 - 23:23:21: Type    DataPack            |    Count    30830
L 08/02/2022 - 23:23:21: -- Approximately 493820 bytes of memory are in use by (30830) Handles.

L 08/02/2022 - 23:23:21: [SM] Exception reported: Memory leak
L 08/02/2022 - 23:23:21: [SM] Blaming: zr/zr_zclass_smoker.smx
L 08/02/2022 - 23:23:21: [SM] Call stack trace:
L 08/02/2022 - 23:23:21: [SM]   [0] CreateDataPack
L 08/02/2022 - 23:23:21: [SM]   [1] Line 164, C:\Users\thera\OneDrive\ \ \CSS ZM\zr_zclass_smoker.sp::OnPlayerRunCmd
попробуй
 

Вложения

  • zr_zclass_smoker.sp
    8.2 КБ · Просмотры: 6

DENZEL519

Участник
Сообщения
139
Реакции
24
@Ganter1234, Спасибо, но то что у меня, походу нет исходника версия 1.0.2, простите что побеспокоил.
 

Ganter1234

Road to 30 updates
Сообщения
1,074
Реакции
551

Вложения

  • zr_zclass_smoker.sp
    9.3 КБ · Просмотры: 4
  • zr_zclass_smoker.smx
    8.8 КБ · Просмотры: 0

DENZEL519

Участник
Сообщения
139
Реакции
24
@Ganter1234,
Такой вопросик, я правильно понял, что если заменить


C-подобный:
public bool:TraceRayPlayer(entityhit, mask, any:self) {
    if(entityhit > 0 && entityhit <= MaxClients && IsPlayerAlive(entityhit) && entityhit != self)
    {
        return true;
    }

    return false;
}

На

C-подобный:
public bool:TraceRayPlayer(entityhit, mask, any:self) {
    if(entityhit > 0 self != entityhit)
    {
        return true;
    }

    return false;
}

То он не будет хватать сквозь энити объекты
 

Palonez

Пиши, разберемся
Сообщения
1,276
Реакции
526
@Ganter1234,
Такой вопросик, я правильно понял, что если заменить


C-подобный:
public bool:TraceRayPlayer(entityhit, mask, any:self) {
    if(entityhit > 0 && entityhit <= MaxClients && IsPlayerAlive(entityhit) && entityhit != self)
    {
        return true;
    }

    return false;
}

На

C-подобный:
public bool:TraceRayPlayer(entityhit, mask, any:self) {
    if(entityhit > 0 self != entityhit)
    {
        return true;
    }

    return false;
}

То он не будет хватать сквозь энити объекты
Там в самой функции фильтра флаг по моему нужно определенный ставить
 

DENZEL519

Участник
Сообщения
139
Реакции
24
@Palonez, Понял, жаль что нет исходника. Ну всё равно спасибо за помощь.
 

gamebreaker

Участник
Сообщения
10
Реакции
0
Can someone integrate in this plugin [EN & RU] Blocker Passes 1.2.5 - AlliedModders add a new option to add bombsite A or B fences/walls on retakes? For example, round starts retake bombsite B, i want to add fences/walls on dd2 long or short for example. If retake bombsite A, block B tunnels, doors and more but unlock long and short. csgo-retakes/retakes.inc at 762b56548acd103ec3f55db6dc8a25da899174fd · splewis/csgo-retakes i think this can be added in blocker passes plugin but i'm not a scripter, so can make this?
 

Seton

Участник
Сообщения
42
Реакции
41
Вопрос, как сделать проверку на нажатие клавиши, именно двух игроков одновременно в одной команде?
 

Palonez

Пиши, разберемся
Сообщения
1,276
Реакции
526
Вопрос, как сделать проверку на нажатие клавиши, именно двух игроков одновременно в одной команде?
Создать bool на каждого игрока и переключать в нужный момент в зависимости от того, нажата клавиша или нет
C-подобный:
bool bPressed[MAXPLAYERS+1] = {false,...};
...
public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3], float angles[3], int& weapon, int& subtype, int& cmdnum, int& tickcount, int& seed, int mouse[2])
{
    if(buttons & IN_ATTACK || buttons & IN_USE) bPressed[client] = true; //нажата E или ЛКМ
    else bPressed[client] = false;
    return Plugin_Continue;
}
...
...
    if(bPressed[client1] || bPressed[client2] && GetClientTeam(client1) == GetClientTeam(client2))
    {
        ...
    }
 
Последнее редактирование:
Сверху Снизу