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

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Kruzya,
PHP:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools>

// int flash_client;
Handle g_hFlashers;

public Plugin myinfo =
{
    version = "1.2"
};

public void OnPluginStart()
{
    HookEvent("flashbang_detonate", flashbang_detonate);
    HookEvent("player_blind", player_blind);
    g_hFlashers = CreateArray(ByteCountToCells(4));
}

public void flashbang_detonate(Event event, const char[] name, bool silent)
{
    PushArrayCell(g_hFlashers, GetClientOfUserId(event.GetInt("userid")));    // для чего нам вообще информация о том, кто бросил гранату?
}

public void player_blind(Event event, const char[] name, bool silent)
{
    RequestFrame(OnBlindedPlayer, event.GetInt("userid"));
}

public void OnBlindedPlayer(int client)
{
    client = GetClientOfUserId(client);
    if (iClient && FindValueInArray(g_hFlashers, client) != -1 && IsClientInGame(client) && GetClientTeam(client) < 2)    // откуда взялся iClient и для чего нам информация о бросившем гранату?
    {
        SetEntPropFloat(client, Prop_Send, "m_flFlashDuration", 0.0);
        SetEntPropFloat(client, Prop_Send, "m_flFlashMaxAlpha", 0.0);
        ClientCommand(client, "dsp_player 0.0");
    }
}
 

Allen

love society
Сообщения
352
Реакции
274
@.SN., на кой чёрт тут таймер?
RequestFrame · functions · SourceMod Scripting API Reference
Выполнит переданную функцию с переданным аргументом в следующем серверном тике. Куда быстрее, чем таймер на 0.1, и куда точнее.

Далее я уже молчу, что в одном тике может взорваться сразу две гранаты, и, соответственно, одна проигнорируется. Лучше в массив сохранять игроков, которые взрывают гранаты, до выполнения следующего тика.
Я даже не вникал, просто поправил ошибку в компиляторе.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
для чего нам вообще информация о том, кто бросил гранату?
Рекомендую перечитать код. По его задумке, бросивший гранату не должен сам слепиться.

откуда взялся iClient
С телефона набирал. На автомате всегда пишу iClient вместо client.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
бросивший гранату не должен сам слепиться
фигня для любителей читов
как бы не говорил он такого:
пытаюсь сделать плагин, который не слепит только мертвых и спектаров.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Grey83, тот код на проверку самого себя был в коде, который скинули до меня. Я его, естественно, трогать уже не стал.
 

HESOYAM

Участник
Сообщения
11
Реакции
0
@Kruzya Не работает, теперь он слепит и мертвых и спектаров.
 
Последнее редактирование:

GiViS6996

Участник
Сообщения
9
Реакции
0
Привет всем! Ребят, а можете переделать плагин Kill-Streak Tracker для css, а именно (Плагин отслеживает и сохраняет максимальное количество убийств игрока без единой смерти.) или есть аналоги его?
 
Последнее редактирование:

Someone

Участник
Сообщения
1,933
Реакции
1,653
Привет всем! Ребят, а можете переделать плагин Kill-Streak Tracker для css, а именно (Плагин отслеживает и сохраняет максимальное количество убийств игрока без единой смерти.) или есть аналоги его?
Есть в HUD. Не знаю, работает ли в CSS. [CS:GO] КДА, Килл-стрики на экране
 

Junkie

Участник
Сообщения
18
Реакции
0
Ребят, нужен очень простой плагин для csgo:
если бомбу разминировали - убить всех террористов
если бомба взорвалась - убить всех КТ
Поможет кто?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Junkie,
PHP:
#include <sdktools_functions>
#include <cstrike>

#pragma newdecls required

public Action CS_OnTerminateRound(float &fDelay, CSRoundEndReason &eReason) {
    switch (eReason) {
        case CSRoundEnd_TargetBombed:   UTIL_KillAllPlayersInTeam(CS_TEAM_CT);
        case CSRoundEnd_BombDefused:    UTIL_KillAllPlayersInTeam(CS_TEAM_T);
    }
}

void UTIL_KillAllPlayersInTeam(int iTeam) {
    for (int i; ++i <= MaxClients;) {
        if (!IsClientInGame(i) || !IsPlayerAlive(i) || GetClientTeam(i) != iTeam)
            continue;

        ForcePlayerSuicide(i);
    }
}
 

Junkie

Участник
Сообщения
18
Реакции
0
@Junkie,
PHP:
#include <sdktools_functions>
#include <cstrike>

#pragma newdecls required

public Action CS_OnTerminateRound(float &fDelay, CSRoundEndReason &eReason) {
    switch (eReason) {
        case CSRoundEnd_TargetBombed:   UTIL_KillAllPlayersInTeam(CS_TEAM_CT);
        case CSRoundEnd_BombDefused:    UTIL_KillAllPlayersInTeam(CS_TEAM_T);
    }
}

void UTIL_KillAllPlayersInTeam(int iTeam) {
    for (int i; ++i <= MaxClients;) {
        if (!IsClientInGame(i) || !IsPlayerAlive(i) || GetClientTeam(i) != iTeam)
            continue;

        ForcePlayerSuicide(i);
    }
}
Большое спасибо! Я протестировал, и понял что еще нужно чтобы во втором случае плагин убивал бы только тех КТ, которые не умерли от бомбы, ну т.е. убивать их чуть позже после взрыва. Можно так?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Junkie,
PHP:
#include <sdktools_functions>
#include <cstrike>

public Action CS_OnTerminateRound(float &fDelay, CSRoundEndReason &eReason) {
    switch (eReason) {
        case CSRoundEnd_TargetBombed:   CreateTimer(5.0, OnNeedKillTeam, CS_TEAM_CT, TIMER_FLAG_NO_MAPCHANGE); // где 5.0 - необходимое кол-во секунд после окончания раунда
        case CSRoundEnd_BombDefused:    UTIL_KillAllPlayersInTeam(CS_TEAM_T);
    }
}

public Action OnNeedKillTeam(Handle hTimer, int iTeam) {
    UTIL_KillAllPlayersInTeam(iTeam);
}

void UTIL_KillAllPlayersInTeam(int iTeam) {
    for (int i; ++i <= MaxClients;) {
        if (!IsClientInGame(i) || !IsPlayerAlive(i) || GetClientTeam(i) != iTeam)
            continue;

        ForcePlayerSuicide(i);
    }
}
 

Mexonice

Участник
Сообщения
31
Реакции
2
Всем привет кто может переделать плагин Color_Team (Плагин показывает кто заходит и кто выходит и всё это в цвете, а именно изменить префикс родной {Css-rus.ru} ) На него не могу найти исходник.
И кто может написать плагин для CSS а именно для VIP Core что бы игрокам имеющие привилегие VIP можно было добовлять модефицированное оружие как это было в CS 1.6 скрин примера приложил кто может напишите тут или в вк Purple Man 3o_775uBqms.jpg 3tTJn2Ff9js.jpg 4nElbC0htTc.jpg
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
кто может переделать плагин Color_Team (Плагин показывает кто заходит и кто выходит и всё это в цвете, а именно изменить префикс родной {Css-rus.ru} ) На него не могу найти исходник.
Компил хотя бы приложи.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Kruzya, вот скомпиленый
Нашёл вот здесь
--- Добавлено позже ---
@C.C.Kira, вот переписал, попробуй
 

Вложения

  • Color_Team 2.0.smx
    5.4 КБ · Просмотры: 10
  • Color_Team.sp
    3 КБ · Просмотры: 27
Последнее редактирование:

Mexonice

Участник
Сообщения
31
Реакции
2
Новое
@Kruzya, вот скомпиленый
Нашёл вот здесь
--- Добавлено позже ---
@C.C.Kira, вот переписал, попробу

Спасибо огромное, даволен очень, благодарны тебе всем сервером)
--- Добавлено позже ---
Кто может выложить если у кого есть плагин который добавляет костомные оружия на сервер, а то найти не как не могу нашёл один но он на кс го. Если у кого есть скиньте плиз.
 
Последнее редактирование:

KarllsOnCHIk

Участник
Сообщения
7
Реакции
0
Приветствую. хотел узнать есть ли возможность написания плагина, который кикал бы с сервера игроков с нулевыми аккаунтами. игра TF2
 
Сверху Снизу