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

-=HellFire=-

Kernel panic - not syncing: Fatal exception
Сообщения
1,394
Реакции
585
-=HellFire=-, OMG 🤦‍♂️
Нафейхуа несколько откровенно лишних проверок?
C-подобный:
public void OnPluginStart()
{
    HookEvent("player_spawn", Spawn);
}

public Action Spawn(Event event, const char[] name, bool dontBroadcast)
{
    static int client;
    if ((client = GetClientOfUserId(GetEventInt(event, "userid"))) && IsPlayerAlive(client))
          SetEntProp(client, Prop_Send, "m_ArmorValue", 0, 1);
}
Не профессиональный кодер, не могу всё с первого раза написать, учту.
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Последнее редактирование:

Madness aka null138

Участник
Сообщения
713
Реакции
734
Есть какой-нить хук на подобии евента player_hurt, но только такой, что бы хукал реген хп (прибавление)? Не особо хочется через зацикленный таймер всё мутить или AlliedModders - View Single Post - Hook player netprop change without checking every frame?..
писать расширение. я сам искал очень долго, конечно мне нужно было отловить прибавление брони, но это тоже netprop.
слышал, что можно через send proxy поставить хук на значение netprop'ов.. не проверял сам.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
Loco, через OnPlayerRunCmd то же самое, практически: каждый тик чекается изменение ХП.
Я же вроде писал уже, что вроде нет события на увеличение хп (во всяком случае я не нашёл такого).
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Loco, через OnPlayerRunCmd то же самое, практически: каждый тик чекается изменение ХП.
Я же вроде писал уже, что вроде нет события на увеличение хп (во всяком случае я не нашёл такого).
Решился через таймер, мне не нужна настоль частая проверка. На днях выложу плагин...
Сообщения автоматически склеены:

Такой вопрос, если сохранять инфу в файлик по типу KeyValue, будут ли какие-то проблемы (инфы будет много!, 10-20 строк как максимум, ибо они автоматом будут удалятся для оптимизации)? Ибо я не дружу (пока что) с бд.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
Loco, какую именно инфу ты думаешь хранить и как долго?
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Loco, какую именно инфу ты думаешь хранить и как долго?
Примерно такую. По времени скорее всего будет навсегда... + удалятся будет игрок если давно он не заходил на сервер, либо по истечению времени неюзабельности данного кита.
C-подобный:
"KitsBD"
{
    "kit_name 1" // Идентификатор кита
    {
        "STEAM_ID" // Стим идентификатор игрока
        { 
            "CountUses" "X"    // Количество использованных
            "LastTimeUse"  "время в UNIX"    // Время последнего использования
        }
        // Таких блоков на каждого игрока
    }
    // Таких блоков для каждого кита
}
 
Последнее редактирование:

Drum

Участник
Сообщения
9
Реакции
3
1. !rules (Правила) для CS:GO
2. Когда прописываешь команду в чате !rules то переходит на сайт сервера(портала) и показывает правила игры на портала(сервере). То есть чтобы в плагин можно было вставить ссылку сайта с правилами и при написании игроками данной команды,правила высвечивались.

Заранее спасибо)))
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
1. !rules (Правила) для CS:GO
2. Когда прописываешь команду в чате !rules то переходит на сайт сервера(портала) и показывает правила игры на портала(сервере). То есть чтобы в плагин можно было вставить ссылку сайта с правилами и при написании игроками данной команды,правила высвечивались.

Заранее спасибо)))
2) MOTD в ксго оффнули, нету такой возможности теперь (открывать ссылки в окне браузера)
 
  • Мне нравится
Реакции: Drum

Koder ;D

Участник
Сообщения
55
Реакции
7
А можно ли сделать такой плагин, который будет делать логи сколько зашло на сервер новых человек в день там например.
Думаю было бы годный плагин, да и смотреть за статистикой сервера. Если можно напишите пожалуйста :)
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
При удалении хендла, выскакивает еррор, что делать?
C-подобный:
if(timer) delete timer;
timer = CreateTimer(...);
Screenshot_2.png
 

0-BuTaJIuK-0

Участник
Сообщения
235
Реакции
57
Как можно разрешить заходить за команду КТ, только когда ты зашел за ТТ или SPEC (запретить переходить с 0 команды сразу за КТ)
 

-=HellFire=-

Kernel panic - not syncing: Fatal exception
Сообщения
1,394
Реакции
585
При удалении хендла, выскакивает еррор, что делать?
C-подобный:
if(timer) delete timer;
timer = CreateTimer(...);
Недействительный хэндл закрываешь, либо он уже ранее закрыт у тебя где то, таймер повторяющийся? И почему после удаления таймера ты снова его создаёшь? timer = CreateTimer(...);
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Недействительный хэндл закрываешь, либо он уже ранее закрыт у тебя где то, таймер повторяющийся? И почему после удаления таймера ты снова его создаёшь? timer = CreateTimer(...);
Это таймер на сброс истории работает (делает строку нулевой после истечении времени).
Хендл даже не открыт как бы, сразу из коробки еррорит.
Таймер разовый (без TIMER_REPEAT)
Сообщения автоматически склеены:

И почему после удаления таймера ты снова его создаёшь? timer = CreateTimer(...);
Потому что его нада перезапустить, ибо история обновилась, и её нужно обнулять каждые Х времени после её обновления. Обновляться может в любое время, это как евент
 
Последнее редактирование:

-=HellFire=-

Kernel panic - not syncing: Fatal exception
Сообщения
1,394
Реакции
585
Это таймер на сброс истории работает (делает строку нулевой после истечении времени).
Хендл даже не открыт как бы, сразу из коробки еррорит.
Таймер разовый (без TIMER_REPEAT)
Сообщения автоматически склеены:


Потому что его нада перезапустить, ибо история обновилась, и её нужно обнулятть каждые Х времени после её обновления. Обновляться может в любое время, это как евент
Без кода сложно отписать, лучше пришли его, помогут.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
Как можно ... запретить переходить с 0 команды сразу за КТ
При попытке смены команды проверять текущую команду и блочить переход в команду 3, если текущая команда - 0
Сообщения автоматически склеены:

При удалении хендла, выскакивает еррор, что делать?
при остановке таймера (return Plugin_Stop; или прочие аналоги) приравнивай его хэндл к null
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Как можно разрешить заходить за команду КТ, только когда ты зашел за ТТ или SPEC (запретить переходить с 0 команды сразу за КТ)

C++:
#pragma semicolon 1
#pragma newdecls required

public void OnPluginStart()
{
    AddCommandListener(Command_Team, "jointeam");
}

public Action Command_Team(int client, char[] command, int args)
{
    char arg[5];
    GetCmdArg(1, arg, sizeof(arg));
    int JoinedTeam = StringToInt(arg);

    if(GetClientTeam(client) == 0 && JoinedTeam == 3)
    { 
        ClientCommand(client, "play buttons/button11.wav");
        return Plugin_Handled;
    }

    return Plugin_Continue;
}
Сообщения автоматически склеены:

Почему увеличение модели через m_flModelScale не увеличивает её физбокс? Увеличивал прейн через неё, в итоге плейн увеличился, а физбокс нет, и приходится целится в центр модели, что бы ещё увеличить.
 
Последнее редактирование:

0-BuTaJIuK-0

Участник
Сообщения
235
Реакции
57
C++:
#pragma semicolon 1
#pragma newdecls required

public void OnPluginStart()
{
    AddCommandListener(Command_Team, "jointeam");
}

public Action Command_Team(int client, char[] command, int args)
{
    char arg[5];
    GetCmdArg(1, arg, sizeof(arg));
    int JoinedTeam = StringToInt(arg);

    if(GetClientTeam(client) == 0 && JoinedTeam == 3)
    {
        ClientCommand(client, "play buttons/button11.wav");
        return Plugin_Handled;
    }

    return Plugin_Continue;
}
Спасибо, работает. Но почему-то некоторых игроков автоматически кидает за кт (при смене карты). И что забавно, лично у меня, никогда такого не было.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Живые:
- не слышат мертвых
- не видят чат мертвых

Мертвые:
- слышат живых
- не видят чат живых (Почему??)


C++:
sv_talk_enemy_dead 1
sv_talk_enemy_living 1
sv_alltalk 1
sv_deadtalk 0
 
Сверху Снизу