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

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Подскажите, как получить название команд(актуально для CW и турниров) и вывести их в любой из чатов?
Я полагаю через это CS_GetClientClanTag · cstrike · SourceMod Scripting API Reference
C++:
Handle teams[2];
teams[0] = FindConVar("mp_teamname_1");
teams[1] = FindConVar("mp_teamname_2");


char teamnames[2][64];
GetConVarString(teams[0], teamnames[0], sizeof(teamnames[]));
GetConVarString(teams[1], teamnames[1], sizeof(teamnames[]));
 

0-BuTaJIuK-0

Участник
Сообщения
235
Реакции
57
Не могу понять, кто может подсказать?
На сервере стоит JWP и hosties

Живые:
- не слышат мертвых
- не видят чат мертвых

Мертвые:
- слышат живых
- не видят чат живых (Почему??)


C++:
sv_talk_enemy_dead 1
sv_talk_enemy_living 1
sv_alltalk 1
sv_deadtalk 0
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Такой вопрос, при переписывании плагина под другое ядро, увидел данное чудо, вопрос таков, PrintToChatAll("%t", "Test") при переводе как показывает перевод другим игрокам? Если игрок (client) из России, а другие из Украины, то какой перевод покажет Украинцам? Ru или Ua?
C++:
    if (!g_bSupportedMap) return;

    SetGlobalTransTarget(client);
    int gain;

    if (!g_iEventMode && !bonus && g_iAmount[ONCE] > 0)
    {
        gain = Shop_GiveClientCredits(client, g_iAmount[ONCE]);

        if (!g_bAllChat) CGOPrintToChat(client, "%t", "MapFinish_Credits", gain);
        else CGOPrintToChatAll("%t", "MapFinish_Credits_All", client, gain);

        g_bSupportedMap = false;
    }

Может всё-же юзать цикл и каждому игроку показывать через PrintToChat()?

C++:
    if (!g_bSupportedMap) return;

    SetGlobalTransTarget(client);
    int gain;
    
    if (!g_iEventMode && !bonus && g_iAmount[ONCE] > 0)
    {
        gain = Shop_GiveClientCredits(client, g_iAmount[ONCE]);

        CGOPrintToChat(client, "%t", "MapFinish_Once", gain);
        for(int i = 1; i <= MaxClients; i++) if(i != client && IsClientConnected(i) && !IsFakeClient(i) && IsClientInGame(i))
            CGOPrintToChat(i, "%T", "MapFinish_Once_All", i, client, gain);

        g_bSupportedMap = false;
    }
 
Последнее редактирование:

Madness aka null138

Участник
Сообщения
713
Реакции
734
Такой вопрос, при переписывании плагина под другое ядро, увидел данное чудо, вопрос таков, PrintToChatAll("%t", "Test") при переводе как показывает перевод другим игрокам? Если игрок (client) из России, а другие из Украины, то какой перевод покажет Украинцам? Ru или Ua?
C++:
    if (!g_bSupportedMap) return;

    SetGlobalTransTarget(client);
    int gain;

    if (!g_iEventMode && !bonus && g_iAmount[ONCE] > 0)
    {
        gain = Shop_GiveClientCredits(client, g_iAmount[ONCE]);

        if (!g_bAllChat) CGOPrintToChat(client, "%t", "MapFinish_Credits", gain);
        else CGOPrintToChatAll("%t", "MapFinish_Credits_All", client, gain);

        g_bSupportedMap = false;
    }

Может всё-же юзать цикл и каждому игроку показывать через PrintToChat()?

C++:
    if (!g_bSupportedMap) return;

    SetGlobalTransTarget(client);
    int gain;
  
    if (!g_iEventMode && !bonus && g_iAmount[ONCE] > 0)
    {
        gain = Shop_GiveClientCredits(client, g_iAmount[ONCE]);

        CGOPrintToChat(client, "%t", "MapFinish_Once", gain);
        for(int i = 1; i <= MaxClients; i++) if(i != client && IsClientConnected(i) && !IsFakeClient(i) && IsClientInGame(i))
            CGOPrintToChat(i, "%T", "MapFinish_Once_All", i, client, gain);

        g_bSupportedMap = false;
    }

сток PrintToChatAll это PrintToChat в цикле, следовательно каждому на своем языке будет писать.
 

🟡differend🟢

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

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Есть ядро плагина, где есть меню (меню предварительно сгенерированное), есть модули, которые в это меню добавляют свои пункты, как сделать так, что бы эти пункты были с переводом из указанного файла в модуле (файл переводов, который указывается в модуле, а не в ядре)?

Или же лучше сделать форвард, когда это меню открывается, что бы модули могли прибавить туда свои пункты уже с переводом?
 

ZizionarD

Участник
Сообщения
596
Реакции
66
Плагин не знаю как назвать)
Задача такая: Когда игрок достигает звание не ниже "1 звезды", то гл. администраторы предлагают развлекательный конкурс. Суть игры такова, первоначально у админа и игрока сбрасываются значения У/С, далее убить гл. администратора н-ое кол-во раз и при этом не умереть от пуль админа, если игрок убивает админа н-ое кол-во раз, то ему выдают ВИП-статус от 1 до 3 месяцев.
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
Есть ядро плагина, где есть меню (меню предварительно сгенерированное), есть модули, которые в это меню добавляют свои пункты, как сделать так, что бы эти пункты были с переводом из указанного файла в модуле (файл переводов, который указывается в модуле, а не в ядре)?

 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Как расчитать координаты для квадрата из beam? В наличии есть координата А и координата С
1580247146715.png
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
Loco, там всё элементарно.

Дано: A(x1, y1, z1), C(x2, y2, z2)
В зависимости от того в какой плоскости расположен прямоугольник получаем координаты точек B и D (расположение точек относительно A и C не критично, но составляет вершины прямоугольника).
Если в горизонтальной (z1 = z2): B(x1, y2, z1), D(x2, y1, z1)

С остальными вариантами аналогично.
 

lesha

Участник
Сообщения
84
Реакции
7
Скомпилируйте Пожалуйста плагин на css v91
 

Вложения

  • svinorez.sp
    2.3 КБ · Просмотры: 3

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Как будет данный код на новом синтксисе? (Он компилится на новом в таком виде тоже)
C++:
enum iList
{
    String:iName[64],                 // Имя
    bool:iThis[MAXPLAYERS+1],        // Кто в ней
    Float:posA[3],                    // Координата А
    Float:posB[3],                    // Координата B
    Float:posM[3],                    // Координата центра
    int:iVis,                        // Кому видна
    int:iTeam                        // Какую команду триггерит
};

int g_iZones[MAX_ZONES][iList];
 

wightjeck

Костыли заказывали?
Сообщения
472
Реакции
154
Как будет данный код на новом синтксисе? (Он компилится на новом в таком виде тоже)
C++:
enum iList
{
    String:iName[64],                 // Имя
    bool:iThis[MAXPLAYERS+1],        // Кто в ней
    Float:posA[3],                    // Координата А
    Float:posB[3],                    // Координата B
    Float:posM[3],                    // Координата центра
    int:iVis,                        // Кому видна
    int:iTeam                        // Какую команду триггерит
};

int g_iZones[MAX_ZONES][iList];
Скорее всего так
C++:
enum iList
{
    char iName[64],                   // Имя
    bool iThis[MAXPLAYERS+1],         // Кто в ней
    float posA[3],                    // Координата А
    float posB[3],                    // Координата B
    float posM[3],                    // Координата центра
    int iVis,                         // Кому видна
    int iTeam                         // Какую команду триггерит
};

int g_iZones[MAX_ZONES][iList];
 
Сверху Снизу