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

Grey83

не пишу плагины с весны 2022
Сообщения
8,645
Реакции
5,115
Волшебник, сомневаюсь: у паутинки нативов нет, емнип, так как таймер отловить её использование сможет?
 

Kruzya

Участник
Сообщения
12,973
Реакции
10,927
Там не нужно #include <sourcemod> (компилятор сам добавит)
Нужно, если компилятор был пересобран вручную. Оффтоп

и #include <sdktools> (не используется же)
Не проверял уже, что используется, а что нет.
По быстрому с телефона перепилил, проверил на собираемость и скинул.

Ну и проверку класса оружия можно ещё проще и быстрей сделать
Кое-кто в кое-каком плагине делал подобное, а потом об... Кхм, плагин неправильно определял ножи, и некоторые огнестрелки именно за ножи считал.
Так что лучше явно указать в явном виде части класснеймов, чем пытаться по символам отлавливать.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,645
Реакции
5,115
Кое-кто в кое-каком плагине делал подобное, а потом об... Кхм, плагин неправильно определял ножи, и некоторые огнестрелки именно за ножи считал.
Так что лучше явно указать в явном виде части класснеймов, чем пытаться по символам отлавливать.
Ну как бы я предварительно со списком оружия сверился: на 'k' - только ножи, а на 'ba' - только 1 нож.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,645
Реакции
5,115
will_rock, в принципе он и под свежими версиями SM должен компилиться и работать
разве что вывод цвета м/б нужно немного пофиксить

а так я себе делал аналогичное
 

skywalker

Участник
Сообщения
1,154
Реакции
263
Ну что никто не сможет сделать такой плагин, мб за денежку?
 

will_rock

Участник
Сообщения
1,074
Реакции
363
will_rock, в принципе он и под свежими версиями SM должен компилиться и работать
разве что вывод цвета м/б нужно немного пофиксить

а так я себе делал аналогичное
Я компилировал и под свой см) Ошибки

L 10/18/2019 - 14:51:42: [SM] Exception reported: Native is not bound
L 10/18/2019 - 14:51:42: [SM] Blaming: mdest.smx
L 10/18/2019 - 14:51:42: [SM] Call stack trace:
L 10/18/2019 - 14:51:42: [SM] [1] BfWriteByte
L 10/18/2019 - 14:51:42: [SM] [2] Line 53, C:\SM 1.9.0\mdest.sp::SayText2
L 10/18/2019 - 14:51:42: [SM] [3] Line 124, C:\SM 1.9.0\mdest.sp::Round_End

А без компила под новый SM было

[SM] Unable to load plugin "mdest.smx": Native "BfWriteByte" was not found
 

Madness aka null138

Участник
Сообщения
721
Реакции
781
Последнее редактирование:

Madness aka null138

Участник
Сообщения
721
Реакции
781
Ядро вип последнее, команда стандартная hook


C++:
#include <sdktools>
#include <timer>
#include <vip_core>

public void OnPluginStart() {
    AddCommandListener(callback, "+hook");
    AddCommandListener(callback, "-hook");
}

public Action callback(int client, const char[] command, int args) {
    if(IsClientInGame(client) && IsPlayerAlive(client) && VIP_IsClientVIP(client) && Timer_GetStatus(client)) {
        Timer_Stop(client, false);
        PrintToChat(client, "Таймер была остановлена за использование паутинки!");
    }
    return Plugin_Continue;
}
 
Последнее редактирование:

September

Участник
Сообщения
5,238
Реакции
2,742
C++:
#include <sdktools>
#include <timer>
#include <vip_core>

public void OnPluginStart() {
    AddCommandListener(callback, "+hook");
    AddCommandListener(callback, "-hook");
}

public Action callback(int client, const char[] command, int args) {
    if(IsClientInGame(client) && IsPlayerAlive(client) && VIP_IsClientVIP(client) && Timer_GetStatus(client)) {
        Timer_Stop(client, false);
        PrintToChat(client, "Таймер была остановлена за использование паутинки!");
    }
    return Plugin_Continue;
}

это для какого таймера?
 

Madness aka null138

Участник
Сообщения
721
Реакции
781
Поправили бы ещё для shavit


насколько помню, он уже не рабочий
C++:
#include <sdktools>
#include <shavit>
#include <vip_core>

public void OnPluginStart() {
    AddCommandListener(callback, "+hook");
    AddCommandListener(callback, "-hook");
}

public Action callback(int client, const char[] command, int args) {
    if(IsClientInGame(client) && IsPlayerAlive(client) && VIP_IsClientVIP(client) && Shavit_GetTimerStatus(client) != Timer_Stopped) {
        Shavit_StopTimer(client);
        PrintToChat(client, "Таймер была остановлена за использование паутинки!");
    }
    return Plugin_Continue;
}
 
Сверху Снизу