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

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
То есть если для ROOT делать,то так?
if(GetUserAdmin(client) == ADMFLAG_ROOT
Нет, это проверка наличие админки, неважно какой
Сообщения автоматически склеены:

А в этой уже можно указать флаги
C++:
public Action CS_OnBuyCommand(int client, const char[] item)
{
    if(GetUserFlagBits(client) & ReadFlagString("z") && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))
    {
        PrintToChat(client, "Скорострелки запрещены!");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}
 

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

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Нет, это проверка наличие админки, неважно какой
Сообщения автоматически склеены:

А в этой уже можно указать флаги
C++:
public Action CS_OnBuyCommand(int client, const char[] item)
{
    if(GetUserFlagBits(client) & ReadFlagString("z") && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))
    {
        PrintToChat(client, "Скорострелки запрещены!");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}
Ооо,другой разговор) а то через веапон рестрикт,могли все админы брать
Сообщения автоматически склеены:

Нет, это проверка наличие админки, неважно какой
Сообщения автоматически склеены:

А в этой уже можно указать флаги
C++:
public Action CS_OnBuyCommand(int client, const char[] item)
{
    if(GetUserFlagBits(client) & ReadFlagString("z") && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))
    {
        PrintToChat(client, "Скорострелки запрещены!");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}

Покупают серавно)
Сообщения автоматически склеены:

Владимир96
, можно:
C-подобный:
public Action CS_OnBuyCommand(int client, const char[] item)
{
    if(GetUserAdmin(client) == INVALID_ADMIN_ID
    && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))
    {
        PrintToChat(client, "Скорострелки запрещены!");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}
Твой вариант работает,ну хотелось бы флаг выставить.

public Action CS_OnBuyCommand(int client, const char[] item)
{
if(GetUserFlagBits(client) & ReadFlagString("z") && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))
{
PrintToChat(client, "Скорострелки запрещены!");
return Plugin_Handled;
}
return Plugin_Continue;
}
Этот вариант пробовал,ну серавно покупают
Сообщения автоматически склеены:

Ооо,другой разговор) а то через веапон рестрикт,могли все админы брать
Сообщения автоматически склеены:



Покупают серавно)
Сообщения автоматически склеены:


Твой вариант работает,ну хотелось бы флаг выставить.

public Action CS_OnBuyCommand(int client, const char[] item)
{
if(GetUserFlagBits(client) & ReadFlagString("z") && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))
{
PrintToChat(client, "Скорострелки запрещены!");
return Plugin_Handled;
}
return Plugin_Continue;
}
Этот вариант пробовал,ну серавно покупают
эх)
 
Последнее редактирование:

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Как сделать парент ент - игрока, так что бы ент не вращался за камерой (или аттачменотом) игрока, а просто двигался за игроком?
Обычный парент:
        SetVariantString("!activator");
        AcceptEntityInput(iPatricle[client], "SetParent", client);
 

Svyatoy

Участник
Сообщения
335
Реакции
137
Ребят, есть решение такой задачи? CS:GO
Допустим у меня время раунда 10 минут, но в определённый момент, например на 8:30 я активирую команду и мне нужно, чтобы до конца раунда осталось 5 минут, не перезапуская его.

P.S. Команда чисто для понимания. Мне нужен кусок кода изменяющий время раунда

Заранее спасибо знающим за помощь!
 

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

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Ооо,другой разговор) а то через веапон рестрикт,могли все админы брать
Сообщения автоматически склеены:



Покупают серавно)
Сообщения автоматически склеены:


Твой вариант работает,ну хотелось бы флаг выставить.

public Action CS_OnBuyCommand(int client, const char[] item)
{
if(GetUserFlagBits(client) & ReadFlagString("z") && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))
{
PrintToChat(client, "Скорострелки запрещены!");
return Plugin_Handled;
}
return Plugin_Continue;
}
Этот вариант пробовал,ну серавно покупают
Сообщения автоматически склеены:


эх)

Привет всем.
Нет не кого кто подскажет код что ли?)
А то я уже всяко перетыкал)

if (strcmp(item, "g3sg1", false) == 0 || strcmp(item, "sg550", false) == 0)
Запрещает полностью


if(GetUserAdmin(client) == INVALID_ADMIN_ID
&& (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))

А так берут все админы
 

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

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Какой код подсказать?
ДА чтоб можно было только один флаг выставить,допустим ROOT,а не все чтоб могли покупать.
Так пробовал
if(GetUserFlagBits(client) & ReadFlagString("z") && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))

Ну серавно покупают скорострелки.
Ставил твой вариант,покупают все админы.
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
ДА чтоб можно было только один флаг выставить,допустим ROOT,а не все чтоб могли покупать.
Так пробовал
if(GetUserFlagBits(client) & ReadFlagString("z") && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))

Ну серавно покупают скорострелки.
Ставил твой вариант,покупают все админы.
C-подобный:
if(!(GetUserFlagBits(client) & ReadFlagString("z")) && (strcmp(item, "g3sg1") == 0 || strcmp(item, "sg550") == 0))
Вот так корректнее проверку сделать.
Для всех кроме админа с рут флагом запрещено.
 

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

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
C-подобный:
if(!(GetUserFlagBits(client) & ReadFlagString("z")) && (strcmp(item, "g3sg1") == 0 || strcmp(item, "sg550") == 0))
Вот так корректнее проверку сделать.
Для всех кроме админа с рут флагом запрещено.
Проверил,все работает
 

xtance

Участник
Сообщения
513
Реакции
743
Подскажите пожалуйста, какую TempEntity можно использовать, чтобы её было видно сквозь стены.
Нужно чем-то выделить точку на карте.
Сейчас использую это:
C-подобный:
TE_SetupBeamRingPoint(fOrigin, 40.0, 50.0, iLaserSprite, -1, 0, 1, 10.0, 5.0, 0.0, {255,0,0,255}, 5, 0);
На некоторых картах результат этой функции виден сквозь стенки, на некоторых не виден. Вот здесь виден:
20200408014545_1.jpg

upd: судя по всему дело в pvs


И возможно ли как-нибудь отслеживать, в кого попал топорик из dangerzone (weapon_axe) в результате броска?
Хотел проверить к чему он прикасается, оказалось, к тому же, кто его и бросил
C-подобный:
int iAxe = GivePlayerItem(iClient, "weapon_axe");
EquipPlayerWeapon(iClient, iAxe);
SDKHook(iAxe, SDKHook_StartTouch, Axe);

...

public Axe(iAxe, iEntity){
    PrintToChatAll("Axe: %i, ent: %i", iAxe, iEntity);
}
Пытаюсь найти событие, когда топор "вылетает из инвентаря"..
Также если выдать топор, нельзя будет переключаться между ним и ножом, если есть фикс прошу поделиться
 

iSe7en

Участник
Сообщения
209
Реакции
111
Подскажите пожалуйста, какую TempEntity можно использовать, чтобы её было видно сквозь стены.
Нужно чем-то выделить точку на карте.
Сейчас использую это:
C-подобный:
TE_SetupBeamRingPoint(fOrigin, 40.0, 50.0, iLaserSprite, -1, 0, 1, 10.0, 5.0, 0.0, {255,0,0,255}, 5, 0);
На некоторых картах результат этой функции виден сквозь стенки, на некоторых не виден. Вот здесь виден:
Посмотреть вложение 55525

upd: судя по всему дело в pvs


И возможно ли как-нибудь отслеживать, в кого попал топорик из dangerzone (weapon_axe) в результате броска?
Хотел проверить к чему он прикасается, оказалось, к тому же, кто его и бросил
C-подобный:
int iAxe = GivePlayerItem(iClient, "weapon_axe");
EquipPlayerWeapon(iClient, iAxe);
SDKHook(iAxe, SDKHook_StartTouch, Axe);

...

public Axe(iAxe, iEntity){
    PrintToChatAll("Axe: %i, ent: %i", iAxe, iEntity);
}
Пытаюсь найти событие, когда топор "вылетает из инвентаря"..
Также если выдать топор, нельзя будет переключаться между ним и ножом, если есть фикс прошу поделиться
Попробуй ловить в OnTakeDamage
 

msl1

Участник
Сообщения
162
Реакции
20
Может кто взяться переписать плагин , вырезать лишние , оставить только
1. Включает / отключает все функции плагина
2.Количество секунд, после которого игроку пишется анонс в чат
3.Состояние по умолчанию трассеров для новых игроков.
4.Включает / отключает видимость своих трассеров
Сделать так чтоб по умолчанию следы от трассирующих пуль у КТ был цвет синий а у Т был красный
Трассеры видел только сам игрок
Плагин
 

Вложения

  • css_tracer_effects.sp
    47.2 КБ · Просмотры: 6

xtance

Участник
Сообщения
513
Реакции
743
Возможно ли убрать поворот гранат в кс:го? Когда игрок бросает гранату, она крутится вокруг своей оси. Хочется чтобы летела без этого.
Пока что вариант один:
TeleportEntity(граната, NULL_VECTOR, view_as<float>({0.0,90.0,0.0}), NULL_VECTOR);
И это надо вызывать каждый кадр, пока летит граната. Поэтому он мне не нравится.
Может можно один раз задать что-нибудь чтобы она так не делала.
 

iceman

Участник
Сообщения
48
Реакции
1
Нужен плагин для cs source отключающий гибернацию.
Можно как нибудь добавить одного игрока в спектраторах и сделать так, что бы он отключался, если на сервере больше 2-3 реальных игроков и обратно подключался если меньше 2-ух (боты не считаются за игроков).
Или сделать так, что бы сюрс тв занимал один слот на сервере.
Спасибо.
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
Нужен плагин для cs source отключающий гибернацию.
Можно как нибудь добавить одного игрока в спектраторах и сделать так, что бы он отключался, если на сервере больше 2-3 реальных игроков и обратно подключался если меньше 2-ух (боты не считаются за игроков).
Или сделать так, что бы сюрс тв занимал один слот на сервере.
Спасибо.
sv_hibernation_when_empty 0
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
я просто оставлю это здесь
 

Doker0909

Участник
Сообщения
105
Реакции
3
Помогите, спасите, пожалуйста. Я, вроде бы, понимаю и одновременно не понимаю:
как я понял, строки 227,228,229 отвечают за путь моделек парашюта, но если я хочу другую папку или папку с другим именем, то после, того как я прописываю другой путь и выполняю компиляцию плагина, у меня не отображается модель парашюта.
в плагине вот так:
Format(path_model,255,"models/parachute/%s",PARACHUTE_MODEL);
Format(path_pack,255,"materials/models/parachute/%s",PARACHUTE_PACK);
Format(path_texture,255,"materials/models/parachute/%s",PARACHUTE_TEXTURE);
я меняю, например, на вот так:
Format(path_model,255,"models/parachute_myserverfolder/%s",PARACHUTE_MODEL);
Format(path_pack,255,"materials/models/parachute_myserverfolder/%s",PARACHUTE_PACK);
Format(path_texture,255,"materials/models/parachute_myserverfolder/%s",PARACHUTE_TEXTURE);
и больше нет модельки парашюта...
что и на что нужно поменять, чтоб всё работало.
CSS v34 (sm 1.8)
все необходимые манипуляции с папками совершаю, все модельки загружаются на "клиет"
в логах ошибок нет.
Заранее спасибо!
 

Вложения

  • sm_parachute.sp
    19.5 КБ · Просмотры: 5
Сверху Снизу