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

0-BuTaJIuK-0

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

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

gam19980

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

google>

oldgamers
Сообщения
373
Реакции
210
Нужно поставить пароль на сервер для турниров по окончанию.
Как проходит финал для 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
Сообщения
8,519
Реакции
4,979
@gam19980, а что, новыми версиями SM не компилится?
 

CTe6eJIeK_vRn

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

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

gam19980

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

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

magis1337

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

releez-

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

jackn1ke.

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

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Нужен плагин, который при Победе террористов перекидывает всех игроков на сервере в наблюдатели. Может кто написать?
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

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

Zeit

Участник
Сообщения
180
Реакции
34
Как запретить выкидывать снежки? Нашёл такой вот код, но всё равно позволяет выкидывать. Заодно подскажите пожалуйста. Как убрать выпадения снежков из кучи? Если у игрока нет возможности брать любое оружие кроме ножа
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

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


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

Seton

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

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

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