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

Envy

Участник
Сообщения
49
Реакции
2
Может кто написать/переделать такой плагин для CSS V34?
 

babka68

Участник
Сообщения
2,124
Реакции
956
Всем привет,направьте в нужное русло, у меня есть плагин воскрешения,когда игрока убивают,то на месте его смерь остаётся сфера(спрайт луча стандартный) у Террористов красный,у кт синий,так вот у меня есть модельки маленькие (модель смерти с косой) в ней имеется 2 анимации,не подскажешь,как реализовать,что бы за место сфер стояла анимированная моделька
 

Мотыга

сила в силе духа ☠️☠️☠️
Сообщения
84
Реакции
49
Нужна помощь переписать модуль для vip core,на vip ws.
 

DarkerZ

Участник
Сообщения
395
Реакции
175
Всем привет,направьте в нужное русло, у меня есть плагин воскрешения,когда игрока убивают,то на месте его смерь остаётся сфера(спрайт луча стандартный) у Террористов красный,у кт синий,так вот у меня есть модельки маленькие (модель смерти с косой) в ней имеется 2 анимации,не подскажешь,как реализовать,что бы за место сфер стояла анимированная моделька
заменить спавн env_sprite на prop_dynamic. ну и указать нужные параметры
добавление модельки и возврат индекса:
int SpawnModel(float[3] fPosition, char[] sModelPath, char[] sDefaultAnimation, int iSkin)
{
    int iEntity = CreateEntityByName("prop_dynamic");
    if (iEntity < 1)
    {
        LogError("prop_dynamic create error!");
        return INVALID_ENT_REFERENCE;
    }
    DispatchKeyValueVector(iEntity, "origin", fPosition);
    DispatchKeyValue(iEntity, "spawnflags", "256");
    DispatchKeyValue(iEntity, "solid", "0");
    DispatchKeyValue(iEntity, "DisableShadows", "1");
    DispatchKeyValue(iEntity, "model", sModelPath);
    DispatchKeyValue(iEntity, "rendermode", "2");
    DispatchKeyValue(iEntity, "DefaultAnim", sDefaultAnimation);
    DispatchKeyValue(iEntity, "rendercolor", "255 255 255");
    DispatchKeyValue(iEntity, "renderamt", "254");
    char sBuffer[32];
    IntToString(iSkin, sBuffer, sizeof(sBuffer));
    DispatchKeyValue(iEntity, "skin", sBuffer);
    DispatchSpawn(iEntity);
    SetEntProp(iEntity, Prop_Send, "m_usSolidFlags", 8);
    SetEntProp(iEntity, Prop_Send, "m_CollisionGroup", 1);
    return EntIndexToEntRef(iEntity);
}
 

babka68

Участник
Сообщения
2,124
Реакции
956
заменить спавн env_sprite на prop_dynamic. ну и указать нужные параметры
добавление модельки и возврат индекса:
int SpawnModel(float[3] fPosition, char[] sModelPath, char[] sDefaultAnimation, int iSkin)
{
    int iEntity = CreateEntityByName("prop_dynamic");
    if (iEntity < 1)
    {
        LogError("prop_dynamic create error!");
        return INVALID_ENT_REFERENCE;
    }
    DispatchKeyValueVector(iEntity, "origin", fPosition);
    DispatchKeyValue(iEntity, "spawnflags", "256");
    DispatchKeyValue(iEntity, "solid", "0");
    DispatchKeyValue(iEntity, "DisableShadows", "1");
    DispatchKeyValue(iEntity, "model", sModelPath);
    DispatchKeyValue(iEntity, "rendermode", "2");
    DispatchKeyValue(iEntity, "DefaultAnim", sDefaultAnimation);
    DispatchKeyValue(iEntity, "rendercolor", "255 255 255");
    DispatchKeyValue(iEntity, "renderamt", "254");
    char sBuffer[32];
    IntToString(iSkin, sBuffer, sizeof(sBuffer));
    DispatchKeyValue(iEntity, "skin", sBuffer);
    DispatchSpawn(iEntity);
    SetEntProp(iEntity, Prop_Send, "m_usSolidFlags", 8);
    SetEntProp(iEntity, Prop_Send, "m_CollisionGroup", 1);
    return EntIndexToEntRef(iEntity);
}
Спасибо за пример,попробую разобраться
 

msl1

Участник
Сообщения
162
Реакции
20
Дайте пример создания забора с помощью цикла чтоб не нужно было прописывать каждую точку по отдельности
 

Вложения

  • Безымянный.png
    Безымянный.png
    801.9 КБ · Просмотры: 59

msl1

Участник
Сообщения
162
Реакции
20
А это как? Поподробнее пожалуйста
Я создаю прописывая каждую точку а хотел бы с помощью цикла чтоб уменьшить код
часть кода:
float fPos[3], fAng[3], angles[3];
    fPos = fInitPos;
    fPos[1] += 255.0;
    CreateFence(fPos, fAng);
    fPos[1] -= 125.0;
    CreateFence(fPos, fAng);
    fPos[0] += 355.0;
    fPos[1] += 125.0;
    CreateFence(fPos, fAng);
    fPos[1] -= 125.0;
    CreateFence(fPos, fAng);
fAng[1] = 90.0;
   fPos = fInitPos;
   fPos[0] +=  135.0;
   fPos[1] -= 0.0;
   CreateFence(fPos, fAng);
   fPos[0] +=  90.0;
   CreateFence(fPos, fAng);
   fPos[1] += 385.0;
   CreateFence(fPos, fAng);
   fPos[0] -=  90.0;
   CreateFence(fPos, fAng);
 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
@msl1, ну вот надо включить логику и найти что-то схожее. А затем это что-то схожее перевести в цикл. Два.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@msl1, я бы просто создал массив с координатами и циклом по нему прогонял функцию CreateFence(fPos, fAng)
Какой смысл каждый раз вычислять координаты? Разве что смещение, если зона передвижная (т.е. создаётся не в одной и той же точке карты).
Если передвижная, то можно сделать массив с параметрами смещения (точнее 2: в одном ось или тип смещения, во втором - смещение).

А строка fPos[1] -= 0.0; вообще смысла никакого не имеет, т.к. она не делает ничего, кроме траты машинного времени (если конечно компилятор это не исправляет)
 

msl1

Участник
Сообщения
162
Реакции
20
@msl1, я бы просто создал массив с координатами и циклом по нему прогонял функцию CreateFence(fPos, fAng)
Какой смысл каждый раз вычислять координаты? Разве что смещение, если зона передвижная (т.е. создаётся не в одной и той же точке карты).
Если передвижная, то можно сделать массив с параметрами смещения (точнее 2: в одном ось или тип смещения, во втором - смещение).

А строка fPos[1] -= 0.0; вообще смысла никакого не имеет, т.к. она не делает ничего, кроме траты машинного времени (если конечно компилятор это не исправляет)
Смещения нету . fPos[1] -= 0.0; забыл удалить , Дайте пример .
@msl1, ну вот надо включить логику и найти что-то схожее. А затем это что-то схожее перевести в цикл. Два.
Дайте пример .
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@msl1, примерно так
C-подобный:
static const float POS[][] =    // координаты точек для спавна каждой из сеток
{
    {100500.0, 100500.0, 100500.0},
    {, , },
    {, , },
    {, , },
    {, , },
    {, , },
    {, , },
    {, , }
};

stock void SpawnCage()
{
    int i;
    float ang[3];
    for(; i < 4; i++) CreateFence(POS[i], ang);

    fAng[1] = 90.0;
    for(; i < 8; i++) CreateFence(POS[i], ang);
}
 
  • Мне нравится
Реакции: msl1

msl1

Участник
Сообщения
162
Реакции
20
@msl1, примерно так
C-подобный:
static const float POS[][] =    // координаты точек для спавна каждой из сеток
{
    {100500.0, 100500.0, 100500.0},
    {, , },
    {, , },
    {, , },
    {, , },
    {, , },
    {, , },
    {, , }
};

stock void SpawnCage()
{
    int i;
    float ang[3];
    for(; i < 4; i++) CreateFence(POS[i], ang);

    fAng[1] = 90.0;
    for(; i < 8; i++) CreateFence(POS[i], ang);
}
Спасибо. Ели можно еще пример со смещением.
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@msl1, смещением всей конструкции?
 

msl1

Участник
Сообщения
162
Реакции
20
@msl1, смещением всей конструкции?
Да если можно.
код:
fInitPos// Координаты в пространстве центр забора

float fPos[3], fAng[3];
    fPos = fInitPos;
    fPos[1] += 255.0;
    CreateFence(fPos, fAng);
    fPos[1] -= 125.0;
    CreateFence(fPos, fAng);
    fPos[0] += 355.0;
    fPos[1] += 125.0;
    CreateFence(fPos, fAng);
    fPos[1] -= 125.0;
    CreateFence(fPos, fAng);
    fAng[1] = 90.0;
    fPos = fInitPos;
    fPos[0] +=  135.0;
    CreateFence(fPos, fAng);
    fPos[0] +=  90.0;
    CreateFence(fPos, fAng);
    fPos[1] += 385.0;
    CreateFence(fPos, fAng);
    fPos[0] -=  90.0;
    CreateFence(fPos, fAng);


// Пробывал так
float fPos[3], fAng[3];
    fPos = fInitPos;
for (new i=0;i<=4;i++)
{
    fPos[1] += 255.0;
    CreateFence(fPos, fAng);
    fPos[1] -= 125.0;
    if (i)
    {
        if (i == 1)
        {
            fAng[1] = 90.0;
            fPos[0] +=  135.0;
        }
    }
}
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@msl1, ну смещение по осям делается вообще просто:
C-подобный:
static const float
    fPos[][3] = {{123.0, 456.0, 789.0}, {x, y, z}, ...},
    fDisplacement[][3] = {{100.0, -100.0, 0.0}, {x, y, z}, ...};
   
stock void SpawnCages()
{
    float pos[3];
    for(int i, j; i < sizeof(fDisplacement); i++) for(j = 0; j < sizeof(fPos); j++)
    {
        AddVectors(fDisplacement[i], fPos[j], pos);
        CreateFence(pos, fAng);
    }
}
Этот код будет спавнить одинаковые клетки по карте (один массив отвечает за положение отдельной сетки в клетке, а второй - за смещение группы клеток по карте). Разве что не учитывается поворот.
Но поворот клеток с параллельными стенками лучше делать разбиением цикла на 2 (или 3, если есть ещё крыша) части, как я выше делал.
Для клеток сложных форм (не прямоугольник или ромб) лучше запилить ещё один массив с углами поворота для каждой. Тогда спавн в цикле будет выглядеть так: CreateFence(pos, fAng[j]);
 
  • Мне нравится
Реакции: msl1

babka68

Участник
Сообщения
2,124
Реакции
956
Всем привет,может кто написать плагин за деньги или за мое огромное спасибо)
Суть плагина должна быть следующая:
Плагин должен отслеживать банихоп на сервер,выдавать сначала предупреждение,потом кик/бан.
Пример:
Игрок Петя играет и банихопит по беспределу,игроку Пети выводиться информация в чат,"На сервере запрещен банихоп,вам выдано 1/3 предупреждение"(сделать,что бы фразы можно было редактировать из перевода),так же что бы можно было выводить звук.
Игрок Петя продолжил банихопить и его кикнуло с сервера.
Игрок Петя на** видел правила и продолжает банихопить и вот ему выдает 3/3 предупреждений и отправляет его в бан(Нужно сделать,что бы бан заносился в SB/MA).

Cvars:
1. Вкл/Выключить информацию о предупреждениях
2. Вкл/Выключить значение 0 - отключено,1 - Игрок будет кикнут,2- Игрок будет забанен.
3. Иммунитет админу
4. Вкл/Выключить воспроизведение mp3 звука игроку.

Игра CSS OB
 
Последнее редактирование:

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

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Всем привет,может кто написать плагин за деньги или за мое огромное спасибо)
Суть плагина должна быть следующая:
Плагин должен отслеживать банихоп на сервер,выдавать сначала предупреждение,потом кик/бан.
Пример:
Игрок Петя играет и банихопит по беспределу,игроку Пети выводиться информация в чат,"На сервере запрещен банихоп,вам выдано 1/3 предупреждение"(сделать,что бы фразы можно было редактировать из перевода),так же что бы можно было выводить звук.
Игрок Петя продолжил банихопить и его кикнуло с сервера.
Игрок Петя на** видел правила и продолжает банихопить и вот ему выдает 3/3 предупреждений и отправляет его в бан(Нужно сделать,что бы бан заносился в SB/MA).

Cvars:
1. Вкл/Выключить информацию о предупреждениях
2. Вкл/Выключить значение 0 - отключено,1 - Игрок будет кикнут,2- Игрок будет забанен.
3. Иммунитет админу
4. Вкл/Выключить воспроизведение mp3 звука игроку.

Игра CSS OB
видел подобное на одном серваке,на 34 версии
почти все тоже самое как в твоем описании
игрок делал три прыжка и его кикало с причиной
игрок если сделал 2 прыжка,то в чате просто писало,банихоп запрещен,на 3 прыжок вы будете кикнуты с сервера.
Тоже готов поддержать за такой плагин
 

Doker0909

Участник
Сообщения
105
Реакции
3
Всем привет,может кто написать плагин за деньги или за мое огромное спасибо)
Суть плагина должна быть следующая:
Плагин должен отслеживать банихоп на сервер,выдавать сначала предупреждение,потом кик/бан.
Пример:
Игрок Петя играет и банихопит по беспределу,игроку Пети выводиться информация в чат,"На сервере запрещен банихоп,вам выдано 1/3 предупреждение"(сделать,что бы фразы можно было редактировать из перевода),так же что бы можно было выводить звук.
Игрок Петя продолжил банихопить и его кикнуло с сервера.
Игрок Петя на** видел правила и продолжает банихопить и вот ему выдает 3/3 предупреждений и отправляет его в бан(Нужно сделать,что бы бан заносился в SB/MA).

Cvars:
1. Вкл/Выключить информацию о предупреждениях
2. Вкл/Выключить значение 0 - отключено,1 - Игрок будет кикнут,2- Игрок будет забанен.
3. Иммунитет админу
4. Вкл/Выключить воспроизведение mp3 звука игроку.

Игра CSS OB
отличная идея! я готов поддержать и подкинуть рублей 300-400, за хорошую идею 👍 хотелось бы еще Cvar, который регулирует разрешенное количество прыжков, чтоб можно было ставить не максимум 3, а 4, 5 и т.д. , и Cvar из пункта "2", чтоб игроку наносился урон, при достижении максимального количества прыжков.
но у меня игра CSS v34 , на SM 1.9+.
а если есть смысл, то я вот накидал ТЗ, как это вижу я 😇
0. Получить исходник от исполнителя;
1. Совместимость с CSS v34, CSS OB , SM 1.9+;
2. Вкл/Выкл сообщение о предупреждении игрока, на прыжке, перед прыжком, за которым следует наказание (не выводить сообщение при значении "0" в пункте 3);
3. "-1" - нанести урон игроку, при достижении максимального количества прыжков, "0" - отключено, "1" - Игрок будет кикнут, при достижении максимального количества прыжков, "2"- Игрок будет забанен, при достижении максимального количества прыжков;
4. Количество наносимого урона, при включенном значении "-1" в пункте 3 ("1" - минимальное значение).;
5. Время, в минутах, на которое будет забанен игрок при включенном значении "2", в пункте 3 ("0" - навсегда).;
6. Иммунитет админам ("1" - иммунитет включён, "0" - иммунитет отключён);
7. Воспроизведение mp3 звука игроку, при появлении сообщения о предупреждении (оставить пустым, чтоб Cvar был отключен);
8. Бан заносится в SB/MA.
9. Отключение плагина после окончания раунда и включение в новом раунде, чтоб не было конфликтов с плагинами, которые дают ускорение и всякую подобную хрень, после конца раунда.

P.S. поправьте, если я не прав:
мне кажется, что пункт 2 должен выполняться на каждом прыжке, когда игрок прыгает, то есть, когда превысил максимально допустимую скорость, то ему должно высвечиваться это сообщение. Хотя, с другой стороны, каждое ложное срабатывание будет преследоваться этим сообщением, например, летел игрок с парашюта и неумышленно прыгнул, по приземлению, с горочки и ускорился, но это срабатывание ж будет считаться как бхоп... и пункт 7, тогда ломается............. сложнА)))
P.S.S. а вообще, я хз зачем мне такое надо, у меня стоит "nac" , он просто блочит второй прыжок бхопа. Может достаточно будет просто, сделать плагин, который блочит второй прыжок и выдает иммунитет админам и всё, без лишних заморочек? думаю на такую простяцкую вещь хватит 400р. , я оплатил бы, та и поделился со всеми желающими😉
 

DarkerZ

Участник
Сообщения
395
Реакции
175
Всем привет,может кто написать плагин за деньги или за мое огромное спасибо)
Суть плагина должна быть следующая:
Плагин должен отслеживать банихоп на сервер,выдавать сначала предупреждение,потом кик/бан.
Пример:
Игрок Петя играет и банихопит по беспределу,игроку Пети выводиться информация в чат,"На сервере запрещен банихоп,вам выдано 1/3 предупреждение"(сделать,что бы фразы можно было редактировать из перевода),так же что бы можно было выводить звук.
Игрок Петя продолжил банихопить и его кикнуло с сервера.
Игрок Петя на** видел правила и продолжает банихопить и вот ему выдает 3/3 предупреждений и отправляет его в бан(Нужно сделать,что бы бан заносился в SB/MA).

Cvars:
1. Вкл/Выключить информацию о предупреждениях
2. Вкл/Выключить значение 0 - отключено,1 - Игрок будет кикнут,2- Игрок будет забанен.
3. Иммунитет админу
4. Вкл/Выключить воспроизведение mp3 звука игроку.

Игра CSS OB
подобный хороший плагин был от Botox, там админу выводилось сообщение о прэфе и хиперскроле, это можно автоматизировать и при помощи API банить игрока в другом плагине
 
Сверху Снизу