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

Grey83

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

Kruzya

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

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

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

Grey83

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

Grey83

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

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

skywalker

Участник
Сообщения
1,153
Реакции
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

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

Madness aka null138

Участник
Сообщения
713
Реакции
734
Ядро вип последнее, команда стандартная 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;
}

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

September

Участник
Сообщения
5,238
Реакции
2,742
zipcore, который он указал сверху

Поправили бы ещё для shavit


насколько помню, он уже не рабочий
 

Madness aka null138

Участник
Сообщения
713
Реакции
734
Поправили бы ещё для 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;
}
 
Сверху Снизу