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

Truyn

King of clowns
Сообщения
1,591
Реакции
749
Был бы рад плагину включаещему подсветку сквозь стены на игрока.
К примеру игрок пишет !b и на нем включается подсветка сквозь стену (видно через всю карту)
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Не работает, если выключил радар, то с концами.
Ну все, че делать будем?

AlliedModders - View Single Post - [CSS/CS:GO] Disable Radar
Почему то мне думается, что именно в CS:GO это не работает :fuck:

Включаем мозг и вспоминаем что есть у нас такой квар как 'sv_disable_radar'.
Скрыть/показать радар можно еще таким образом:
PHP:
ConVar g_hCvar;

public void OnPluginStart()
{
    if((g_hCvar = FindConVar("sv_disable_radar")) == null)
        SetFailState("No found cvar: sv_disable_radar");
}

g_hCvar.SetInt(!g_hCvar.IntValue); // Включить/выключить радар для всех
g_hCvar.ReplicateToClient(%0, "1"); // Выключить радар для игрока
g_hCvar.ReplicateToClient(%0, "0"); // Включить радар для игрока

Дальше сам разберешься...
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Это помогло.
Screenshot_2.png Screenshot_1.png (когда открываешь таб, радар исчезает и появляется инфа о тебе от плагинов)
 

kleuser

Участник
Сообщения
1,838
Реакции
732
Может кто исправить таймер. В конфиге указано 30 сек, но при подключении показывает всегда рандомные числа, то 6 сек, то 15 и т.д.
Под CS:GO
 

Вложения

  • antireconnect_edition.sp
    3.6 КБ · Просмотры: 11

alexmy

Участник
Сообщения
284
Реакции
13
Всем привет. Почему я только себя проверяю и всё? Цикл меня только проверяет и видимо останавливается не проверяя остальных игроков.
PHP:
public Action sm_hp(int client, int args)
{
    if(client && IsPlayerAlive(client) && GetClientTeam(client) == 2)
    {
        for (int x = 1; x <= MaxClients; x++)
        {
            if (IsClientInGame(x) && GetClientTeam(x) == 2 && IsPlayerAlive(x))
            {
                PrintToChat(x, "\x04%N: \x05Health\x01 - %i. \x05Health Buffer \x01- %.1f", x, IsGameHealth(x), GetEntPropFloat(x, Prop_Send, "m_healthBuffer"));
            }
        }
    }
//    return Plugin_Handled;
}
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
Всем привет. Почему я только себя проверяю и всё? Цикл меня только проверяет и видимо останавливается не проверяя остальных игроков.
PHP:
public Action sm_hp(int client, int args)
{
    if(client && IsPlayerAlive(client) && GetClientTeam(client) == 2)
    {
        for (int x = 1; x <= MaxClients; x++)
        {
            if (IsClientInGame(x) && GetClientTeam(x) == 2 && IsPlayerAlive(x))
            {
                PrintToChat(x, "\x04%N: \x05Health\x01 - %i. \x05Health Buffer \x01- %.1f", x, IsGameHealth(x), GetEntPropFloat(x, Prop_Send, "m_healthBuffer"));
            }
        }
    }
//    return Plugin_Handled;
}

PHP:
PrintToChat(x /* <= Вероятно поэтому */, "\x04%N: \x05Health\x01 - %i. \x05Health Buffer \x01- %.1f", x, IsGameHealth(x), GetEntPropFloat(x, Prop_Send, "m_healthBuffer"));
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@kleuser, ошибок не нашёл
Интересно, при редкой смене карт, большом онлайне и частом входе/выходе игроков плагин сильно память отжирает?
 

kleuser

Участник
Сообщения
1,838
Реакции
732
но таймер не работает корректно. если человек выходит, то при подключении ему может высветится 6 сек, 10, 12, любое рандомное, но не то что в конфиге указано.
Интересно, при редкой смене карт, большом онлайне и частом входе/выходе игроков плагин сильно память отжирает?
вроде не заметно, а можно оптимизировать ?
 

kleuser

Участник
Сообщения
1,838
Реакции
732
C-подобный:
L 06/25/2019 - 00:00:41: [SM] Exception reported: Invalid data pack handle 0 (error 4)
L 06/25/2019 - 00:00:41: [SM] Blaming: antireconnect_edition.smx
L 06/25/2019 - 00:00:41: [SM] Call stack trace:
L 06/25/2019 - 00:00:41: [SM]   [0] DataPack.WriteString
L 06/25/2019 - 00:00:41: [SM]   [1] Line 117, D:\Dev\sm19\scripting\antireconnect_edition.sp::Event_PlayerDisconnect
L 06/25/2019 - 00:01:11: [SM] Exception reported: Invalid data pack handle 0 (error 4)
L 06/25/2019 - 00:01:11: [SM] Blaming: antireconnect_edition.smx
L 06/25/2019 - 00:01:11: [SM] Call stack trace:
L 06/25/2019 - 00:01:11: [SM]   [0] DataPack.Reset
L 06/25/2019 - 00:01:11: [SM]   [1] Line 122, D:\Dev\sm19\scripting\antireconnect_edition.sp::Timer_Clear
L 06/25/2019 - 00:01:11: [SM] Exception reported: Invalid data pack handle 0 (error 4)
L 06/25/2019 - 00:01:11: [SM] Blaming: antireconnect_edition.smx
L 06/25/2019 - 00:01:11: [SM] Call stack trace:
L 06/25/2019 - 00:01:11: [SM]   [0] DataPack.ReadString
L 06/25/2019 - 00:01:11: [SM]   [1] Line 124, D:\Dev\sm19\scripting\antireconnect_edition.sp::Timer_Clear
L 06/25/2019 - 00:01:11: [SM] Plugin "antireconnect_edition.smx" encountered error 23: Native detected error
L 06/25/2019 - 00:01:11: [SM] Invalid data handle 0 (error 4) passed during timer end with TIMER_DATA_HNDL_CLOSE
L 06/25/2019 - 00:01:11: [SM] Unable to call function "Timer_Clear" due to above error(s).
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979

Вложения

  • antireconnect_edition.sp
    3.8 КБ · Просмотры: 11

Truyn

King of clowns
Сообщения
1,591
Реакции
749
Ну все, че делать будем?

AlliedModders - View Single Post - [CSS/CS:GO] Disable Radar
Почему то мне думается, что именно в CS:GO это не работает :fuck:

Включаем мозг и вспоминаем что есть у нас такой квар как 'sv_disable_radar'.
Скрыть/показать радар можно еще таким образом:
PHP:
ConVar g_hCvar;

public void OnPluginStart()
{
    if((g_hCvar = FindConVar("sv_disable_radar")) == null)
        SetFailState("No found cvar: sv_disable_radar");
}

g_hCvar.SetInt(!g_hCvar.IntValue); // Включить/выключить радар для всех
g_hCvar.ReplicateToClient(%0, "1"); // Выключить радар для игрока
g_hCvar.ReplicateToClient(%0, "0"); // Включить радар для игрока

Дальше сам разберешься...
@Drumanid в скриптах не силен,но можно ли сделать автоотключение игроку радара когда он умирает?Очень мешает,почему то после смерти на радаре видно всех.


p.s Если кто то может помочь с этим буду благодарен.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
@Drumanid в скриптах не силен,но можно ли сделать автоотключение игроку радара когда он умирает?Очень мешает,почему то после смерти на радаре видно всех.


p.s Если кто то может помочь с этим буду благодарен.
ezgif-1-6b0a5b11f782.gif


PHP:
#include <sourcemod>

public Plugin myinfo =
{
    name = "Hide radar the dead player",
    author = "Drumanid",
    version = "1.0.0",
    url = "Discord: Drumanid#9108"
};

ConVar g_hCvar;

public void OnPluginStart()
{
    if((g_hCvar = FindConVar("sv_disable_radar")) == null)
        SetFailState("No found cvar: sv_disable_radar");

    #define HOOKEVENT(%0) HookEvent(%0, view_as<EventHook>(Events))
    HOOKEVENT("player_spawn");
    HOOKEVENT("player_death");
}

void Events(Event hEvent, const char[] sName)
{
    int iClient = GetClientOfUserId(hEvent.GetInt("userid"));

    if(!IsFakeClient(iClient))
        g_hCvar.ReplicateToClient(iClient, sName[7] == 'd' ? "1":"0");
}
 

Вложения

  • HRTDP.smx
    3.9 КБ · Просмотры: 8
  • HRTDP.sp
    672 байт · Просмотры: 9

kleuser

Участник
Сообщения
1,838
Реакции
732
@Grey83, всё норм. спасибо
--- Добавлено позже ---
@Drumanid, Очень к стати. Но можно ли сделать что бы ещё спекторам тоже отключало радар, а не только в момент смерти?
 
Последнее редактирование:

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
@Drumanid, Очень к стати. Но можно ли сделать что бы ещё спекторам тоже отключало радар, а не только в момент смерти?
PHP:
#pragma semicolon 1
#pragma newdecls required

#include <sourcemod>

public Plugin myinfo =
{
    name = "Hide radar the dead player",
    author = "Drumanid",
    version = "1.0.1",
    url = "Discord: Drumanid#9108"
};

ConVar g_hCvar;

public void OnPluginStart()
{
    if(!(g_hCvar = FindConVar("sv_disable_radar")))
        SetFailState("No found cvar: sv_disable_radar");

    #define HOOKEVENT(%0,%1) HookEvent(%0, view_as<EventHook>(%1));
    HOOKEVENT("player_spawn", Event_PlayerSpawn)
    HOOKEVENT("player_death", Event_PlayerDeath)
    HOOKEVENT("player_team", Event_PlayerTeam)
}

#define ON "0"
#define OFF "1"

#define HIDERADAR(%0) \
{ int iClient = GetClientOfUserId(hEvent.GetInt("userid")); \
if(!IsFakeClient(iClient)) g_hCvar.ReplicateToClient(iClient, %0); }

void Event_PlayerSpawn(Event hEvent)
    HIDERADAR(ON)

void Event_PlayerDeath(Event hEvent)
    HIDERADAR(OFF)

void Event_PlayerTeam(Event hEvent)
{
    if(hEvent.GetInt("team") < 2)
        HIDERADAR(OFF)
}
 

Вложения

  • HRTDP.sp
    987 байт · Просмотры: 7
  • HRTDP.smx
    4.1 КБ · Просмотры: 8
Последнее редактирование:

andrey19992

Участник
Сообщения
487
Реакции
101
1.vote_Change_team
2.Плагин для создания автоголосования, за смену команд местами Т->CT CT->T. Создает голосование на смену сторон в середине карты. Пример, кол-во раундов на карту 24, голосование создается на 12 раунде. Ответы на вопрос, "Меняемся местами?" должен стоять на кнопка 6 7, что бы не было мискликов. Голосование стартует в начале 12 раунда. Если ответ ДА, смена команд на 13 раунде, ответ НЕТ, ничего не делать
Квары, либо сделать квар, на каком раунде голосование, либо вообще без кваров, если кол-во раундов само будет подтягиваться из cfg сервера и делиться на 2, для выбора раунда старта голосования. Плагин будет использоваться только с четным кол-вом раундов, 20 22 24 и тд.
Есть вариант написать такое?)
 
Сверху Снизу