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

xfaktor20

Участник
Сообщения
44
Реакции
15
Приветики. Может кто-то написать плагин, банихоп с задержкой, для вип игроков.
В groups, прописывается "cdb" "10" - Количество прыжков за раунд, ну и всё думаю, также с обходом одного античита, а то быстро все вип отлетят *тык*
 

Paranoiiik

хачю клиентмод
Сообщения
1,461
Реакции
907
Подскажите пожалуйста, как проверить какое оружие в руках но не по имени а по айди оружия, так как плагин new weapons каждому скину свое название дает.
У того плагина должно быть API на подобные случаи
 

KiKiEEKi

Меценат
Сообщения
94
Реакции
48
@Paranoiiik, Мне для своего. Хочу сделать проверку какое оружие в руки. Такой способ
GetClientWeapon(client, nameweapon, 32);
if(StrEqual(nameweapon, "weapon_ak47", true))
не подойдет. Как проверить по айди?
 

Grey83

Ленивая и невнимательная жопа
Сообщения
4,828
Реакции
2,837
@KiKiEEKi, GetEntProp(entity, Prop_Send, "m_iItemDefinitionIndex") должен возвращать CSWeaponID, который можно глянуть в инклюде cstrike.inc самого SM.
Но что он буде возвращать для кастомных стволов я хз.
cstrike.inc:
enum CSWeaponID
{
    CSWeapon_NONE = 0,
    CSWeapon_P228,
    CSWeapon_GLOCK,
    CSWeapon_SCOUT,
    CSWeapon_HEGRENADE,
    CSWeapon_XM1014,
    CSWeapon_C4,
    CSWeapon_MAC10,
    CSWeapon_AUG,
    CSWeapon_SMOKEGRENADE,
    CSWeapon_ELITE,
    CSWeapon_FIVESEVEN,
    CSWeapon_UMP45,
    CSWeapon_SG550,
    CSWeapon_GALIL,
    CSWeapon_FAMAS,
    CSWeapon_USP,
    CSWeapon_AWP,
    CSWeapon_MP5NAVY,
    CSWeapon_M249,
    CSWeapon_M3,
    CSWeapon_M4A1,
    CSWeapon_TMP,
    CSWeapon_G3SG1,
    CSWeapon_FLASHBANG,
    CSWeapon_DEAGLE,
    CSWeapon_SG552,
    CSWeapon_AK47,
    CSWeapon_KNIFE,
    CSWeapon_P90,
    CSWeapon_SHIELD,
    CSWeapon_KEVLAR,
    CSWeapon_ASSAULTSUIT,
    CSWeapon_NIGHTVISION, //Anything below is CS:GO ONLY
    CSWeapon_GALILAR,
    CSWeapon_BIZON,
    CSWeapon_MAG7,
    CSWeapon_NEGEV,
    CSWeapon_SAWEDOFF,
    CSWeapon_TEC9,
    CSWeapon_TASER,
    CSWeapon_HKP2000,
    CSWeapon_MP7,
    CSWeapon_MP9,
    CSWeapon_NOVA,
    CSWeapon_P250,
    CSWeapon_SCAR17,
    CSWeapon_SCAR20,
    CSWeapon_SG556,
    CSWeapon_SSG08,
    CSWeapon_KNIFE_GG,
    CSWeapon_MOLOTOV,
    CSWeapon_DECOY,
    CSWeapon_INCGRENADE,
    CSWeapon_DEFUSER,
    CSWeapon_HEAVYASSAULTSUIT,
    //The rest are actual item definition indexes for CS:GO
    CSWeapon_CUTTERS = 56,
    CSWeapon_HEALTHSHOT = 57,
    CSWeapon_KNIFE_T = 59,
    CSWeapon_M4A1_SILENCER = 60,
    CSWeapon_USP_SILENCER = 61,
    CSWeapon_CZ75A = 63,
    CSWeapon_REVOLVER = 64,
    CSWeapon_TAGGRENADE = 68,
    CSWeapon_FISTS = 69,
    CSWeapon_BREACHCHARGE = 70,
    CSWeapon_TABLET = 72,
    CSWeapon_MELEE = 74,
    CSWeapon_AXE = 75,
    CSWeapon_HAMMER = 76,
    CSWeapon_SPANNER = 78,
    CSWeapon_KNIFE_GHOST = 80,
    CSWeapon_FIREBOMB = 81,
    CSWeapon_DIVERSION = 82,
    CSWeapon_FRAGGRENADE = 83,
    CSWeapon_SNOWBALL = 84,
    CSWeapon_BUMPMINE = 85,
    CSWeapon_MAX_WEAPONS_NO_KNIFES, // Max without the knife item defs, useful when treating all knives as a regular knife.
    CSWeapon_BAYONET = 500,
    CSWeapon_KNIFE_CLASSIC = 503,
    CSWeapon_KNIFE_FLIP = 505,
    CSWeapon_KNIFE_GUT = 506,
    CSWeapon_KNIFE_KARAMBIT = 507,
    CSWeapon_KNIFE_M9_BAYONET = 508,
    CSWeapon_KNIFE_TATICAL = 509,
    CSWeapon_KNIFE_FALCHION = 512,
    CSWeapon_KNIFE_SURVIVAL_BOWIE = 514,
    CSWeapon_KNIFE_BUTTERFLY = 515,
    CSWeapon_KNIFE_PUSH = 516,
    CSWeapon_KNIFE_CORD = 517,
    CSWeapon_KNIFE_CANIS = 518,
    CSWeapon_KNIFE_URSUS = 519,
    CSWeapon_KNIFE_GYPSY_JACKKNIFE = 520,
    CSWeapon_KNIFE_OUTDOOR = 521,
    CSWeapon_KNIFE_STILETTO = 522,
    CSWeapon_KNIFE_WIDOWMAKER = 523,
    CSWeapon_KNIFE_SKELETON = 525,
    CSWeapon_MAX_WEAPONS //THIS MUST BE LAST, EASY WAY TO CREATE LOOPS. When looping, do CS_IsValidWeaponID(i), to check.
};
 

KiKiEEKi

Меценат
Сообщения
94
Реакции
48
Подскажите пожалуйста как скрыть ошибку в консоле?
Ошибка: Failed to load sound ".wav", file probably missing from disk/repository
 

✖ FokS ✖

Участник
Сообщения
313
Реакции
38
Всем привет. Может кто написать плагин, когда КТ разминировал бомбу, то чтобы воспроизводился свой звук ?
 

Grey83

Ленивая и невнимательная жопа
Сообщения
4,828
Реакции
2,837
@✖ FokS ✖, примерно так:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_sound>
#include <sdktools_stringtables>

bool
    bCSGO;
float
    fPos[3];
char
    sCvarPath[PLATFORM_MAX_PATH],
    sSound[PLATFORM_MAX_PATH];

public void OnPluginStart()
{
    bCSGO = GetEngineVersion() == Engine_CSGO;

    ConVar cvar = CreateConVar("sm_defused_sound", "ui/achievement_earned.wav", "", FCVAR_PRINTABLEONLY);
    cvar.AddChangeHook(CVarChanged_Sound);
    cvar.GetString(sCvarPath, sizeof(sCvarPath));

    HookEvent("bomb_begindefuse", Event_Defuse);
    HookEvent("bomb_defused", Event_Defused, EventHookMode_PostNoCopy);
}

public void CVarChanged_Sound(ConVar cvar, const char[] oldVal, const char[] newVal)
{
    cvar.GetString(sCvarPath, sizeof(sCvarPath));

    int len = strlen(sCvarPath) - 4;
    if(len < 1 || strcmp(sCvarPath[len], ".mp3", false) && strcmp(sCvarPath[len], ".wav", false))
        sCvarPath[0] = sSound[0] = 0;
    else AddSound();
}

public void OnMapStart()
{
    if(sCvarPath[0]) AddSound();
}

stock void AddSound()
{
    FormatEx(sSound, sizeof(sSound), "sound/%s", sCvarPath);
    AddFileToDownloadsTable(sSound);

    if(bCSGO)
    {
        FormatEx(sSound, sizeof(sSound), "*%s", sCvarPath);
        AddToStringTable(FindStringTable("soundprecache"), sSound);
        return;
    }

    FormatEx(sSound, sizeof(sSound), "%s", sCvarPath);
    PrecacheSound(sSound, true);
}

public void Event_Defuse(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    if(client && IsClientInGame(client)) GetClientAbsOrigin(client, fPos);
}

public void Event_Defused(Event event, const char[] name, bool dontBroadcast)
{
    if(sSound[0]) EmitAmbientSound(sSound, fPos);
}
 

✖ FokS ✖

Участник
Сообщения
313
Реакции
38
@✖ FokS ✖, примерно так:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_sound>
#include <sdktools_stringtables>

bool
    bCSGO;
float
    fPos[3];
char
    sCvarPath[PLATFORM_MAX_PATH],
    sSound[PLATFORM_MAX_PATH];

public void OnPluginStart()
{
    bCSGO = GetEngineVersion() == Engine_CSGO;

    ConVar cvar = CreateConVar("sm_defused_sound", "ui/achievement_earned.wav", "", FCVAR_PRINTABLEONLY);
    cvar.AddChangeHook(CVarChanged_Sound);
    cvar.GetString(sCvarPath, sizeof(sCvarPath));

    HookEvent("bomb_begindefuse", Event_Defuse);
    HookEvent("bomb_defused", Event_Defused, EventHookMode_PostNoCopy);
}

public void CVarChanged_Sound(ConVar cvar, const char[] oldVal, const char[] newVal)
{
    cvar.GetString(sCvarPath, sizeof(sCvarPath));

    int len = strlen(sCvarPath) - 4;
    if(len < 1 || strcmp(sCvarPath[len], ".mp3", false) && strcmp(sCvarPath[len], ".wav", false))
        sCvarPath[0] = sSound[0] = 0;
    else AddSound();
}

public void OnMapStart()
{
    if(sCvarPath[0]) AddSound();
}

stock void AddSound()
{
    FormatEx(sSound, sizeof(sSound), "sound/%s", sCvarPath);
    AddFileToDownloadsTable(sSound);

    if(bCSGO)
    {
        FormatEx(sSound, sizeof(sSound), "*%s", sCvarPath);
        AddToStringTable(FindStringTable("soundprecache"), sSound);
        return;
    }

    FormatEx(sSound, sizeof(sSound), "%s", sCvarPath);
    PrecacheSound(sSound, true);
}

public void Event_Defuse(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    if(client && IsClientInGame(client)) GetClientAbsOrigin(client, fPos);
}

public void Event_Defused(Event event, const char[] name, bool dontBroadcast)
{
    if(sSound[0]) EmitAmbientSound(sSound, fPos);
}
Соррян, забыл указать игру. У меня css v91. Для неё сработает?
 

✖ FokS ✖

Участник
Сообщения
313
Реакции
38
Сработает, просто в GO немного по-другому делается, потому так такой код
Да уже проверил, работает.
Сообщения автоматически склеены:

@Grey83, Стандартный звук от игры когда разминировал бомбу не получится отключить ?
 

Grey83

Ленивая и невнимательная жопа
Сообщения
4,828
Реакции
2,837
@✖ FokS ✖, хз. Если он отлавливается.
Это в ксго, что ли есть стандартный?
 

✖ FokS ✖

Участник
Сообщения
313
Реакции
38
Это в ксго, что ли есть стандартный?
Насчёт кс:го не знаю, у меня нет сервера в этой игре, в css v91 есть, получается воспроизводится сразу 2 звука, мой который добавляю через твой код и стандартный, ну или если можно сделать звук воспроизведение чуть раньше до стандартного, то есть секунды за 3 до разминирования, таймер бомбы стоит 35сек.
 

-=|УЧЕНИК|=-

Участник
Сообщения
263
Реакции
32
Привет всем!
Можно написать простенький плагин,на звук убийств?
Где то видел такой,не нашел.
Чтоб не важно в какую часть тела убьешь,воспроизводился один звук.
Заранее благодарю
версия игры 34
 

Paranoiiik

хачю клиентмод
Сообщения
1,461
Реакции
907
Привет всем!
Можно написать простенький плагин,на звук убийств?
Где то видел такой,не нашел.
Чтоб не важно в какую часть тела убьешь,воспроизводился один звук.
Заранее благодарю
версия игры 34
C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_stringtables>
#include <sdktools_sound>

#define SOUND_LOAD    "sound/my_server/play.mp3"
#define SOUND_PLAY    "/my_server/play.mp3"

public void OnPluginStart()
{
    HookEvent("player_death", ePlayerDeath);
}

public void OnMapStart()
{
    PrecacheSound(SOUND_PLAY, true);
    AddFileToDownloadsTable(SOUND_LOAD);
}

public void ePlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
    int iAttacker = GetClientOfUserId(event.GetInt("attacker"));
    EmitSoundToClient(iAttacker, SOUND_PLAY, SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NORMAL);
}
 

KiKiEEKi

Меценат
Сообщения
94
Реакции
48
Здравствуйте, как воспроизвести звук всем кроме того игрока кто его воспроизводит(нажал команду в чат допустим) ?
 

ironman

Участник
Сообщения
359
Реакции
229
C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_stringtables>
#include <sdktools_sound>

#define SOUND_LOAD    "sound/my_server/play.mp3"
#define SOUND_PLAY    "/my_server/play.mp3"

public void OnPluginStart()
{
    HookEvent("player_death", ePlayerDeath);
}

public void OnMapStart()
{
    PrecacheSound(SOUND_PLAY, true);
    AddFileToDownloadsTable(SOUND_LOAD);
}

public void ePlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
    int iAttacker = GetClientOfUserId(event.GetInt("attacker"));
    EmitSoundToClient(iAttacker, SOUND_PLAY, SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NORMAL);
}
attacker > 0 && attacker <= MaxClients && IsClientInGame(attacker)
 

Nekro

Терра инкогнита
Сообщения
1,873
Реакции
667
Пример не напишите пожалуйста
Что то типо того

C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_stringtables>
#include <sdktools_sound>

#define SOUND_LOAD    "sound/my_server/play.mp3"
#define SOUND_PLAY    "/my_server/play.mp3"

public void OnPluginStart()
{
    HookEvent("player_death", ePlayerDeath);
}

public void OnMapStart()
{
    PrecacheSound(SOUND_PLAY, true);
    AddFileToDownloadsTable(SOUND_LOAD);
}

public void ePlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
    int iAttacker = GetClientOfUserId(event.GetInt("attacker"));
    for(int i = 1; i >= MaxClients; i++) if(i != iAttacker)
        EmitSoundToClient(i, SOUND_PLAY, SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NORMAL);
}
 

-=|УЧЕНИК|=-

Участник
Сообщения
263
Реакции
32
Люди добрые,можно дописать код тут?
Или что нужно сделать,что открывалась меню,при заходе на сервер?
Ну как мне сказали,не хватает якобы,какого-то когда)
Чтоб открывалось меню при заходе на сервер.
 

Вложения

  • menu_creator.sp
    20.7 КБ · Просмотры: 3
Сверху