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

yallstpd

Участник
Сообщения
1,023
Реакции
316
Есть плагин: [ANY] Poof - AlliedModders
делает админа инвиз по команде sm_poof, и если игрок с вх, то админ всё равно не виден ему, даже с вх, возможно ли сделать так, что бы для всех игроков админ был инвиз, а для тех у кого вх включен в чите, админ не был инвизом, хотя бы обводка glow, чтоб была видна вокруг, а тело прозрачное.
 

0-BuTaJIuK-0

Участник
Сообщения
235
Реакции
57
Есть плагин: [ANY] Poof - AlliedModders
делает админа инвиз по команде sm_poof, и если игрок с вх, то админ всё равно не виден ему, даже с вх, возможно ли сделать так, что бы для всех игроков админ был инвиз, а для тех у кого вх включен в чите, админ не был инвизом, хотя бы обводка glow, чтоб была видна вокруг, а тело прозрачное.
Что значит игрок с вх? Реальные читы?
 

google>

oldgamers
Сообщения
373
Реакции
210
Как запретить выкидывать снежки? Нашёл такой вот код, но всё равно позволяет выкидывать. Заодно подскажите пожалуйста. Как убрать выпадения снежков из кучи? Если у игрока нет возможности брать любое оружие кроме ножа
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, "item_snowball", false))
            return Plugin_Handled;
    }
 
    return Plugin_Continue;
}

CS_OnCSWeaponDrop:
#include <sdktools_entinput>
#define SZF(%0) %0, sizeof(%0)

public Action CS_OnCSWeaponDrop(int iClient, int iWeapon)
{
    char sWeapon[32]; GetEdictClassname(iWeapon, SZF(sWeapon));
    if(StrEqual(sWeapon, "weapon_snowball"))
    {
        AcceptEntityInput(iWeapon, "Kill"); // или return Plugin_Handled; // чтоб вообще не выкидывались
    }
 
 
    return Plugin_Continue;
}

Это при условии что у тебя нет никаких там, дуэлей, нестандартных раундов, а так еще шаманить надо будет.

Тебе как вариант еще удалять каждые N секунд разбросанные(дропнутые) снежки по карте. Из 3 в запасе, один сцука дропается. "3" это у меня максимум снежков, может у тебя 99, хз что там будет вообще.

timer:
#include <sdktools_entinput>
#define SZF(%0) %0, sizeof(%0)

Handle hTimer;
int iWeapon;

public void OnPluginStart()
{
    iWeapon = FindSendPropInfo("CBaseCombatWeapon", "m_hOwnerEntity");
}
public void OnMapStart()
{
    hTimer = CreateTimer(30.0, timer_del_snow, _, TIMER_REPEAT);
}

public void OnMapEnd()
{
    delete hTimer;
}


Action timer_del_snow(Handle timer)
{
    int iMaxEntities = GetMaxEntities();
    char sWeapon[64];

    for(int i = MaxClients; i < iMaxEntities; i++)
    {
        if(IsValidEdict(i) && IsValidEntity(i))
        {
            GetEdictClassname(i, sWeapon, sizeof sWeapon);
            if((StrContains(sWeapon, "weapon_snowball") != -1) && GetEntDataEnt2(i, iWeapon) == -1)
            {
                RemoveEdict(i);
            }
        }
    }
     return Plugin_Continue;
}

public Action CS_OnCSWeaponDrop(int iClient, int iWeapon)
{
    char sWeapon[32]; GetEdictClassname(iWeapon, SZF(sWeapon));
    if(StrEqual(sWeapon, "weapon_snowball"))
    {
        AcceptEntityInput(iWeapon, "Kill");
    }
    return Plugin_Continue;
}
 
Последнее редактирование:

HenryTownshand

Чел ты
Сообщения
255
Реакции
140
Ребзи, есть у вас простой пример плагина как получить список игроков с их счётом с другого(моего) сервера csgo
 
Последнее редактирование:

HenryTownshand

Чел ты
Сообщения
255
Реакции
140
Поподробнее можно?
Ну допустим у меня есть сервер №1 на котором играют люди. И есть сервер №2 так же с людьми
И чтобы играя на сервере №1 я мог видеть по команде(допустим sm_players) кто играет и с каким счётом на сервере №2.
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Ну допустим у меня есть сервер №1 на котором играют люди. И есть сервер №2 так же с людьми
И чтобы играя на сервере №1 я мог видеть по команде(допустим sm_players) кто играет и с каким счётом на сервере №2.
Через какой-нибудь socket можно попробовать
 

0-BuTaJIuK-0

Участник
Сообщения
235
Реакции
57

HenryTownshand

Чел ты
Сообщения
255
Реакции
140
@0-BuTaJIuK-0, а он разве показывает кто играет на сервере?
Сообщения автоматически склеены:

@Palonez, пасиб, попробую глянуть
 

0-BuTaJIuK-0

Участник
Сообщения
235
Реакции
57
@0-BuTaJIuK-0, а он разве показывает кто играет на сервере?
Ну как образец, дальше уже экспериментировать)
Сообщения автоматически склеены:

Подскажите, как сделать срабатывание привязанное к числу и времени на сервере?
P.S. Раз в месяц нужно очищать одну бд.

Думаю через GetTime · sourcemod · SourceMod Scripting API Reference
 
Последнее редактирование:

₮αй₮оβый

Участник
Сообщения
317
Реакции
35
Такая ситуация при зажатом пробеле второй прыжок автоматически срабатывается, а нужно чтобы игрок повторно нажимал пробел для второго прыжка, как это исправить?
C-подобный:
  if ((buttons & IN_JUMP) == IN_JUMP && iGroundEntity == -1)
    {
        float fVelocity[3];
        GetEntPropVector(client, Prop_Data, "m_vecAbsVelocity", fVelocity);
                    
        if (fVelocity[2] < 0.0)
            DoubleJump(client);
    }
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@₮αй₮оβый, вот примерно так:
C-подобный:
    static int old_btn[MAXPLAYERS+1];
    if(buttons & IN_JUMP && !(old_btn[client] & IN_JUMP) && iGroundEntity == -1)
    {
        float fVelocity[3];
        GetEntPropVector(client, Prop_Data, "m_vecAbsVelocity", fVelocity);
        if(fVelocity[2] < 0.0) DoubleJump(client);
    }
    old_btn[client] = buttons;
 

releez-

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

Zeit

Участник
Сообщения
180
Реакции
34
Нужен плагин !rtv для стандартного голосования. Есть идея как реализовать, можно сделать чтобы после того как n-колво людей написали !rtv, игра завершалась и начиналось стандартное (от Valve) голосование за карту!
P.S. Вот бы ещё nominate был бы
 

releez-

Участник
Сообщения
101
Реакции
19
P.S. Вот бы ещё nominate был бы
А если карты не из мастерской, а просто в директории на сервере?
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Ну как образец, дальше уже экспериментировать)
Сообщения автоматически склеены:

Подскажите, как сделать срабатывание привязанное к числу и времени на сервере?
P.S. Раз в месяц нужно очищать одну бд.

Думаю через GetTime · sourcemod · SourceMod Scripting API Reference
Получаешь юникс время через геттайм, прибавляешь к нему 2592000 и проверяешь через указанный период, больше или нет это число. Если больше - обнуляешь базу и получаешь текущее значение, к нему прибавляешь также 2592000 и тд
Сообщения автоматически склеены:

Есть плагин: [ANY] Poof - AlliedModders
делает админа инвиз по команде sm_poof, и если игрок с вх, то админ всё равно не виден ему, даже с вх, возможно ли сделать так, что бы для всех игроков админ был инвиз, а для тех у кого вх включен в чите, админ не был инвизом, хотя бы обводка glow, чтоб была видна вокруг, а тело прозрачное.
Скрыть для всех можно, даже для вх, но конкретно определить у кого вх и скрыть - сам подумай - это бред
Сообщения автоматически склеены:

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