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

0-BuTaJIuK-0

Участник
Сообщения
191
Реакции
30
Так, а в чем смысл, ты хочешь их кикать, но не хочешь выключать GOTV из-за того, что они выйдут после этого, в чем логика?
Нужно поставить пароль на сервер для турниров по окончанию.
Как проходит финал для gotv (timer 40 sec). Нужно кикнуть всех и запаролить сервер.
НО! Следующий турнир может быть через несколько минут на том же сервере и той же карте.

Пока вижу вариант кикать всех с ботом через 40 сек после окончания, паролить и после менять карту (что бы бот появился заново)
 

gam19980

Участник
Сообщения
54
Реакции
1
кто нибудь может переписать плагин на новом синтаксисе для CSGO?
 
Последнее редактирование:

google>

oldgamers
Сообщения
257
Реакции
144
Нужно поставить пароль на сервер для турниров по окончанию.
Как проходит финал для gotv (timer 40 sec). Нужно кикнуть всех и запаролить сервер.
НО! Следующий турнир может быть через несколько минут на том же сервере и той же карте.

Пока вижу вариант кикать всех с ботом через 40 сек после окончания, паролить и после менять карту (что бы бот появился заново)
signature:
"Games"
{
    "csgo"
    {
        "Signatures"
        {
            // void SvPasswordChangeCallback( IConVar *pConVar, const char *pOldValue, float flOldValue )
            "SvPasswordChangeCallback"
            {
                "library"    "engine"
                "windows"    "\x55\x8B\xEC\x83\xE4\xF8\x8B\x45\x08\x85\xC0\x8B\x4D\x0C"
                "linux"        "\x55\x89\xE5\x56\x31\xF6\x53\x83\xEC\x20\x8B\x45\x08"
                
                /*
                    Windows
                    Signature for sub_101B7980: 55 8B EC 83 E4 F8 8B 45 08 85 C0 8B 4D 0C

                    Linux
                    Signature for sub_1DA6B0: 55 89 E5 56 31 F6 53 83 EC 20 8B 45 08
                */
            }
        }
    }
}
sv_password:
/*
    [CS:GO] sv_password - bypass players and reserved cookie check
    23.2.2021

    - Works until Valve update breaks signature

    https://forums.alliedmods.net/showthread.php?t=330847
*/

#include <dhooks>


public Plugin myinfo =
{
    name = "[CS:GO] sv_password - bypass players and reserved cookie check",
    author = "Bacardi",
    description = "Allow set server password even players are in game",
    version = "23.2.2021",
    url = "https://forums.alliedmods.net/showthread.php?t=330847"
};



Handle hSvPasswordChangeCallback;

public void OnPluginStart()
{
    GameData temp = new GameData("csgo_sv_password.games");

    if(temp == null) SetFailState("Why you no has csgo_sv_password.games.txt gamedata?");

    // Function - engine
    // void SvPasswordChangeCallback( IConVar *pConVar, const char *pOldValue, float flOldValue )



    // Build DHooks DHookCallback type (go look under typeset DHookCallback)
    // - Can be Address_Null if you want to load the address from gamedata using DHookSetFromConf.
    hSvPasswordChangeCallback = DHookCreateDetour(Address_Null, CallConv_CDECL, ReturnType_Void, ThisPointer_Ignore);

    if (!hSvPasswordChangeCallback)
        SetFailState("Failed to setup detour for SvPasswordChangeCallback DHookCallback"); // You build Dhook callback wrong! Try fix it.


    if (!DHookSetFromConf(hSvPasswordChangeCallback, temp, SDKConf_Signature, "SvPasswordChangeCallback"))
        SetFailState("Failed to load SvPasswordChangeCallback signature from csgo_sv_password.games.txt gamedata"); // Bad gamedata format ?

    delete temp;

    DHookAddParam(hSvPasswordChangeCallback, HookParamType_ObjectPtr);    // IConVar *pConVar
    DHookAddParam(hSvPasswordChangeCallback, HookParamType_StringPtr);    // const char *pOldValue
    DHookAddParam(hSvPasswordChangeCallback, HookParamType_Float);        // float flOldValue

    if (!DHookEnableDetour(hSvPasswordChangeCallback, false, Detour_OnCSWeaponDrop))
        SetFailState("Failed to detour hSvPasswordChangeCallback.");

    // Post callback
    //    if (!DHookEnableDetour(hSvPasswordChangeCallback, true, Detour_OnCSWeaponDrop_Post))
    //    SetFailState("Failed to detour hSvPasswordChangeCallback post.");

    //PrintToServer("hSvPasswordChangeCallback detoured!");
}

public MRESReturn Detour_OnCSWeaponDrop(DHookParam hParams)
{
    //PrintToServer("hSvPasswordChangeCallback Pre");

    // Skip real function. Bypass player and reserved cookie check.
    return MRES_Supercede;
}

// Not in use
public MRESReturn Detour_OnCSWeaponDrop_Post(DHookParam hParams)
{
    //PrintToServer("hSvPasswordChangeCallback Post");
    return MRES_Supercede;
}
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
6,582
Реакции
3,842
@gam19980, а что, новыми версиями SM не компилится?
 

CTe6eJIeK_vRn

Участник
Сообщения
2,113
Реакции
1,858
кто нибудь может переписать плагин на новом синтаксисе для CSGO?
1669009127881.png

1669009714100.png
 
Последнее редактирование:

gam19980

Участник
Сообщения
54
Реакции
1
на csgo не работает, ошибок в логах нет, файлы скинов качает, но не меняет ни у кого... отключал все плагины, конфликтов с другими плагинами не оказалось. Пришли пожалуйста твой исходник, который без ошибок компилится под последний билд SM
Сообщения автоматически склеены:

@gam19980, а что, новыми версиями SM не компилится?
с ошибками, я исправил их, скомпилировал, все равно не заменяет скины
 

magis1337

Участник
Сообщения
245
Реакции
22
Нужен плагин ночной дм, с отключением некоторых плагинов в ночное время и автоматическим включением подробности в лс
Писать в лс, цена до 1500
 

releez-

Участник
Сообщения
41
Реакции
1
Приветик! Срочно нужен плагин !rtv для стандартного голосования. Есть идея как реализовать, можно сделать чтобы после того как n-колво людей написали !rtv, игра завершалась и начиналось стандартное (от Valve) голосование за карту!
 

jackn1ke.

Участник
Сообщения
76
Реакции
6
Нужен плагин, который при Победе террористов перекидывает всех игроков на сервере в наблюдатели. Может кто написать?
 

Palonez

Пиши, разберемся
Сообщения
1,761
Реакции
819
Нужен плагин, который при Победе террористов перекидывает всех игроков на сервере в наблюдатели. Может кто написать?
C-подобный:
#include <cstrike>
public void OnPluginStart() { HookEvent("round_end", EventEnd, EventHookMode_Post); }

public void EventEnd(Event hEvent, const char[] sEvent, bool bdb)
{
    if(view_as<CSRoundEndReason>(hEvent.GetInt("reason")) == CSRoundEnd_TerroristWin)
        for(int i = 0; i <= MaxClients; i++)
            if(IsClientInGame(i) && !IsFakeClient(i) && GetClientTeam(i) != 1) CS_SwitchTeam(i, 1);
}
 

0-BuTaJIuK-0

Участник
Сообщения
191
Реакции
30
Не знаю в какую тему такой вопрос задавать.
У меня VDS. Сервера запускаю через screen с параметром +sm_basepath (сделал разные папки, а в ~/servers/csgo-dedicated/csgo/addons запихнул ссылки)
Есть множество плагинов, которые создают/подгружают конфиги по пути ~/servers/csgo-dedicated/csgo/cfg/sourcemod.
К примеру:
C-подобный:
AutoExecConfig(true, "autodemo_simpleuploader");
Не хотелось бы все плагины переписывать) ради одной строчки. Есть ли параметр запуска, который отвечает за папку с конфигами sourcemod или же есть настройка в каждом sourcemod для изменения пути
 

Zeit

Участник
Сообщения
82
Реакции
8
Как запретить выкидывать снежки? Нашёл такой вот код, но всё равно позволяет выкидывать. Заодно подскажите пожалуйста. Как убрать выпадения снежков из кучи? Если у игрока нет возможности брать любое оружие кроме ножа
C-подобный:
public void OnPluginStart() { AddCommandListener(Event_Drop, "drop"); }

public Action Event_Drop(int client, const char[] command, int args)
{
    int weapon = GetEntPropEnt(client, Prop_Data, "m_hActiveWeapon");
    if(IsValidEntity(weapon))
    {
        char szbuffer[15];
        GetEdictClassname(weapon, szbuffer, sizeof(szbuffer));
        if(StrEqual(szbuffer, "weapon_snowball", false))
            return Plugin_Handled;
    }
 
    return Plugin_Continue;
}
 

BossKotoriiNeSmok

Голос из армии
Сообщения
755
Реакции
131
Я видимо не так понял, я думал ему вообще выключить нужно скорость. А ему получается просто с его повышенной скорости - нужно поставить дефолтную
Сообщения автоматически склеены:


!mycommand ставит тшнику стандартную скорость - может поставить только он сам себе
Работать то работает, но теперь не работает баланс и не пишет, что Т прожал кнопку.
 

Seton

Участник
Сообщения
43
Реакции
41
как скрыть победное сообщение команды "Террористы одержали победу!", для определенного игрока? а не как в общем методе ниже для всех:

PHP:
public OnPluginStart()
{
    HookEvent("round_end", Event_RoundEnd, EventHookMode_Pre);
}

public Action:Event_RoundEnd(Handle:hEvent, const String:sEvName[], bool:bDontBroadcast)
{
    if(!bDontBroadcast)
    {
        return Plugin_Handled;
    }
    
    return Plugin_Continue;
}
 

0-BuTaJIuK-0

Участник
Сообщения
191
Реакции
30
Имею 16 серверов для турниров.
Было всё ок, но потом встретил на 2 серверах такую штуку:
Screenshot_23.png

Игроки не могут двигаться. Плагины работают. Перезапустил - всё ок)))
Использую get5.
Кто-то с подобным встречался?
 
Последнее редактирование:
Сверху Снизу