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

Александр33333

Участник
Сообщения
46
Реакции
1
Всем привет может кто помочь сделать плагин для цветного чата как в [-ARMY-] Ranks
чтобы он работал на обычных игроков
 

Вложения

  • 1111.png
    1111.png
    2.3 КБ · Просмотры: 28
  • army_ranks_chat.sp
    4.2 КБ · Просмотры: 16

Александр33333

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

Вложения

  • 11111.png
    11111.png
    14.9 КБ · Просмотры: 52

Virus

Участник
Сообщения
715
Реакции
873
Плагин для чата чтобы работал цветной
Без плагина Army Ranks
На фото пример

 

Александр33333

Участник
Сообщения
46
Реакции
1
Привет всем...помогите сделать так чтобы плагин работал без ранга
чат цветной сделать таких слов *УБИТ*
 

Вложения

  • army_ranks_chat.sp
    4.1 КБ · Просмотры: 18
  • Безымянный.png
    Безымянный.png
    11.3 КБ · Просмотры: 50
Последнее редактирование:

D1fox

Просто люблю чай
Сообщения
902
Реакции
212
Привет всем...помогите сделать так чтобы плагин работал без ранга
чат цветной сделать таких слов *УБИТ*
Такие слова в чате как "*SPEC*" "*DEAD*" меняются в scp.ваша игра.phrases.txt
Сообщения автоматически склеены:

Привет всем...помогите сделать так чтобы плагин работал без ранга
чат цветной сделать таких слов *УБИТ*
Свои цвета можно поставить, взяв их от сюда - Как поставить непонятные цвета?
 

🟡differend🟢

Что хочу - то и делаю
Сообщения
975
Реакции
661
Хай! Можете сделать чтобы было доступно только ct стороне.
 

Вложения

  • whistle.sp
    1.9 КБ · Просмотры: 19

manhattan

Участник
Сообщения
169
Реакции
45
.sp:
void BanPlayer(int iClient)
{
    if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "MABanPlayer") == FeatureStatus_Available)
    {
        MABanPlayer(0, iClient, MA_BAN_STEAM, BANTIME, "hlmod.ru.");
    }
    else if (CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "SBPP_BanPlayer") == FeatureStatus_Available)
    {
        SBPP_BanPlayer(0, iClient, BANTIME, "hlmod.ru.");
    }
    else if (CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "SBBanPlayer") == FeatureStatus_Available)
    {
        SBBanPlayer(0, iClient, BANTIME, "hlmod.ru.");
    }
    else
    {
        BanClient(iClient, BANTIME, BANFLAG_AUTHID, "hlmod.ru.");
    }
}

Немного не понимаю как сделать так, что когда вызывается эта функция, то игрока банило от имени администратора, а не от консоли как сейчас.
 

Svyatoy

Участник
Сообщения
335
Реакции
137
Угу, но звук не проигрывается. Может кто-нибудь исправить? 🙏
В оригинальном плагине за Т звук работал?
Сообщения автоматически склеены:

.sp:
void BanPlayer(int iClient)
{
    if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "MABanPlayer") == FeatureStatus_Available)
    {
        MABanPlayer(0, iClient, MA_BAN_STEAM, BANTIME, "hlmod.ru.");
    }
    else if (CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "SBPP_BanPlayer") == FeatureStatus_Available)
    {
        SBPP_BanPlayer(0, iClient, BANTIME, "hlmod.ru.");
    }
    else if (CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "SBBanPlayer") == FeatureStatus_Available)
    {
        SBBanPlayer(0, iClient, BANTIME, "hlmod.ru.");
    }
    else
    {
        BanClient(iClient, BANTIME, BANFLAG_AUTHID, "hlmod.ru.");
    }
}

Немного не понимаю как сделать так, что когда вызывается эта функция, то игрока банило от имени администратора, а не от консоли как сейчас.
В данном отрезке кода - нет. Нужно полностью смотреть
 

lexa я

Участник
Сообщения
1
Реакции
0
всем привет, ребят чайник совсем, поэтому без обид. Нужен плагин, сервер в основном awp. ну так вот распрыгивающие чудовище надоели. Нужен плагин, видел на каком то сервере . два прыжка на третий он сгорает. Ну ли прыжки сброшены . можеткто может заняться напишите
 

FokS

Участник
Сообщения
428
Реакции
59
всем привет, ребят чайник совсем, поэтому без обид. Нужен плагин, сервер в основном awp. ну так вот распрыгивающие чудовище надоели. Нужен плагин, видел на каком то сервере . два прыжка на третий он сгорает. Ну ли прыжки сброшены . можеткто может заняться напишите
Вот можно такой поставить, будет блокировать распрыжку, стоит на css v91, в других играх не проверял.
 

Вложения

  • anti_bhop.smx
    4.7 КБ · Просмотры: 21
  • anti_bhop.sp
    1.4 КБ · Просмотры: 34

🟡differend🟢

Что хочу - то и делаю
Сообщения
975
Реакции
661
В оригинальном плагине за Т звук работал?
Сообщения автоматически склеены:


В данном отрезке кода - нет. Нужно полностью смотреть
Нет, в оригинале звук тоже не работал. Я думал это из-за стороны Т, думал за КТ будет работать (видел на некоторых серверах) но все оказалось печально. ПАмагите сплагином пжалста. 🙃
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,805
Реакции
5,254
@levi, проверяй.

Добавил 2 квара:
sm_whistle_team - свист доступен: 0 - никому, 1 - обеим командам, 2 - террористам, 3 - спецназу.
sm_whistle_timeout - промежуток между использованиями в секундах (дефолт - 10.0).
Плагин создаёт файл конфига с именем whistle.cfg.
Также сделал чтобы работало как в КСС, так и в КСГО.
Сообщения автоматически склеены:

в оригинале звук тоже не работал
КСС?
 

Вложения

  • whistle 1.1.0.sp
    2.5 КБ · Просмотры: 26

🟡differend🟢

Что хочу - то и делаю
Сообщения
975
Реакции
661
@levi, проверяй.

Добавил 2 квара:
sm_whistle_team - свист доступен: 0 - никому, 1 - обеим командам, 2 - террористам, 3 - спецназу.
sm_whistle_timeout - промежуток между использованиями в секундах (дефолт - 10.0).
Плагин создаёт файл конфига с именем whistle.cfg.
Также сделал чтобы работало как в КСС, так и в КСГО.
Сообщения автоматически склеены:


КСС?
Работает, спасибули 😘
Сообщения автоматически склеены:

@levi, проверяй.

Добавил 2 квара:
sm_whistle_team - свист доступен: 0 - никому, 1 - обеим командам, 2 - террористам, 3 - спецназу.
sm_whistle_timeout - промежуток между использованиями в секундах (дефолт - 10.0).
Плагин создаёт файл конфига с именем whistle.cfg.
Также сделал чтобы работало как в КСС, так и в КСГО.
Сообщения автоматически склеены:


КСС?
А можно заменить клавишу E на G? Просто когда игроки открывают двери или еще что-то то у них проигрывается звук.
 
Последнее редактирование:

babka68

Участник
Сообщения
2,137
Реакции
978
Всем привет,есть задумка написать модуль для DeathMatch,который будет пополнять боеприпасы в зависимости от разных событий,но что то не очень получается мало знаний в этой сфере и опыта.

Помогите сделать так,что бы при убийстве в голову автоматический пополнялась обойма у игрока.
Сейчас плагин работает следующим образом,как только патроны = 0 в запасе и обойме,то игроку выдается 300 патронов и далее при каждой перезарядке пополняется в запасе.

Собственно сам говно код:
#pragma semicolon 1

#pragma newdecls required

public Plugin myinfo =
{
    name = "Death Match -- Weapon Reload",
    author = "babka68",
    description = "Пополнение патронов",
    version = "1.0",
    url = ""
};

int g_ActiveWepOffs;


public void OnPluginStart()
{
    HookEvent("weapon_reload", Event_CheckDepleted);
    HookEvent("weapon_fire_on_empty", Event_CheckDepleted);

    g_ActiveWepOffs = FindSendPropInfo("CCSPlayer", "m_hActiveWeapon");
}

public void Event_CheckDepleted(Handle event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(GetEventInt(event, "userid"));
    if (!client || !IsClientInGame(client))
    {
        return;
    }

    int weapon = GetEntDataEnt2(client, g_ActiveWepOffs);
    if (weapon < 1)
    {
        return;
    }

    int m_iPrimaryAmmoType = GetEntProp(weapon, Prop_Send, "m_iPrimaryAmmoType");
    SetEntProp(client, Prop_Send, "m_iAmmo", 300, _, m_iPrimaryAmmoType);
}
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,805
Реакции
5,254
@babka68, вроде как-то так:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

int
    m_hActiveWeapon,
    m_iPrimaryAmmoType,
    m_iAmmo,
    iMaxType;

public Plugin myinfo =
{
    name        = "Death Match -- Weapon Reload",
    version        = "1.0",
    description    = "Пополнение патронов",
    author        = "babka68"
}

public void OnPluginStart()
{
    if((m_hActiveWeapon = FindSendPropInfo("CBasePlayer", "m_hActiveWeapon")) < 1)
        SetFailState("Unable to find offset CBasePlayer::m_hActiveWeapon!");
    if((m_iPrimaryAmmoType = FindSendPropInfo("CBaseCombatWeapon", "m_iPrimaryAmmoType")) < 1)
        SetFailState("Unable to find offset CBaseCombatWeapon::m_iPrimaryAmmoType!");
    if((m_iAmmo = FindSendPropInfo("CCSPlayer", "m_iAmmo")) < 1)
        SetFailState("Unable to find offset CCSPlayer::m_iAmmo!");

    iMaxType = GetEngineVersion() == Engine_CSGO ? 14 : 11;    // блочим пополнение гранат

    HookEvent("weapon_reload", Event_CheckDepleted);
    HookEvent("weapon_fire_on_empty", Event_CheckDepleted);
    HookEvent("player_death", Event_Death);
}

public void Event_CheckDepleted(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    if(!client || !IsClientInGame(client)) return;

    int wpn = GetEntDataEnt2(client, m_hActiveWeapon);
    if(wpn < 1) return;

    int type = GetEntData(wpn, m_iPrimaryAmmoType);
    if(type < iMaxType) SetEntData(client, (m_iAmmo + type * 4), 300, 4, true);
}

public void Event_Death(Event event, const char[] name, bool dontBroadcast)
{
    if(!event.GetBool("headshot")) return;

    int client = GetClientOfUserId(event.GetInt("attacker"));
    if(!client || !IsClientInGame(client)) return;

    int wpn = GetEntDataEnt2(client, m_hActiveWeapon);
    if(wpn < 1) return;

    int type = GetEntData(wpn, m_iPrimaryAmmoType);
    if(type < iMaxType) SetEntProp(wpn, Prop_Data, "m_iClip1", 30);    // 30 патронов в магазине
}
 
Последнее редактирование:
Сверху Снизу