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

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Уже получил то что хотел, спасибо за помощь
если я правильно понял, то нужно было вот так сделать:
C-подобный:
public Action:GAP_TimerTell(Handle:timer)
{
    TT = CT = 0;
    new i = 1;
    for(new t; i <= MaxClients; i++) if (IsClientInGame(i) && (t = GetClientTeam(i)) > 1 && IsPlayerAlive(i))
    {
        if(t == 2)
            TT++;
        else
            CT++;
    }
    if(!TT && !CT)
        return Plugin_Continue;

    char sMessage[MAX_HUD_MESSAGE_LENGTH*2];
    CFormatHudText(sMessage, sizeof(sMessage), "{gold}T{pink}: {orange}%d {aqua}| {blue}CT: {fullblue}%d", TT, CT);

    for(i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && !IsFakeClient(i))
    {
        if(CM_IsClientModUser(iClient))
        {
            Handle hBuffer = StartMessageOne("HudMsg", iClient);
            if(!hBuffer) continue;

            BfWriteByte(hBuffer, 1);    //channel
            BfWriteFloat(hBuffer, -1.0);//x
            BfWriteFloat(hBuffer, 0.80);//y

            BfWriteByte(hBuffer, 255);    //r
            BfWriteByte(hBuffer, 0);    //g
            BfWriteByte(hBuffer, 0);    //b
            BfWriteByte(hBuffer, 255);    //a

            BfWriteByte(hBuffer, 0);    //r
            BfWriteByte(hBuffer, 255);    //g
            BfWriteByte(hBuffer, 0);    //b
            BfWriteByte(hBuffer, 255);    //a

            BfWriteByte(hBuffer, 0);    //effect

            BfWriteFloat(hBuffer, 0.0);    //fadein
            BfWriteFloat(hBuffer, 2.0);    //fadeout

            BfWriteFloat(hBuffer, 3.0);    //holdtime
            BfWriteFloat(hBuffer, 0.0);    //fxtime

            BfWriteString(hBuffer, sMessage);
            EndMessage();
        }
        else PrintHintText(i, "T: %d | CT: %d", TT, CT);
    }

    return Plugin_Continue;
}
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
если я правильно понял, то нужно было вот так сделать:
C-подобный:
public Action:GAP_TimerTell(Handle:timer)
{
    TT = CT = 0;
    new i = 1;
    for(new t; i <= MaxClients; i++) if (IsClientInGame(i) && (t = GetClientTeam(i)) > 1 && IsPlayerAlive(i))
    {
        if(t == 2)
            TT++;
        else
            CT++;
    }
    if(!TT && !CT)
        return Plugin_Continue;

    char sMessage[MAX_HUD_MESSAGE_LENGTH*2];
    CFormatHudText(sMessage, sizeof(sMessage), "{gold}T{pink}: {orange}%d {aqua}| {blue}CT: {fullblue}%d", TT, CT);

    for(i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && !IsFakeClient(i))
    {
        if(CM_IsClientModUser(iClient))
        {
            Handle hBuffer = StartMessageOne("HudMsg", iClient);
            if(!hBuffer) continue;

            BfWriteByte(hBuffer, 1);    //channel
            BfWriteFloat(hBuffer, -1.0);//x
            BfWriteFloat(hBuffer, 0.80);//y

            BfWriteByte(hBuffer, 255);    //r
            BfWriteByte(hBuffer, 0);    //g
            BfWriteByte(hBuffer, 0);    //b
            BfWriteByte(hBuffer, 255);    //a

            BfWriteByte(hBuffer, 0);    //r
            BfWriteByte(hBuffer, 255);    //g
            BfWriteByte(hBuffer, 0);    //b
            BfWriteByte(hBuffer, 255);    //a

            BfWriteByte(hBuffer, 0);    //effect

            BfWriteFloat(hBuffer, 0.0);    //fadein
            BfWriteFloat(hBuffer, 2.0);    //fadeout

            BfWriteFloat(hBuffer, 3.0);    //holdtime
            BfWriteFloat(hBuffer, 0.0);    //fxtime

            BfWriteString(hBuffer, sMessage);
            EndMessage();
        }
        else PrintHintText(i, "T: %d | CT: %d", TT, CT);
    }

    return Plugin_Continue;
}
Да, именно это у меня и вышло, нашел в другом плагине, но все-равно спасибо за помощь
 
Последнее редактирование:

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
Помогите пожалуйста сделать, много кто этот плагин использует, а там при поднятии гаранты выдаются и игарть проблемно
 

khood

Участник
Сообщения
214
Реакции
51
Помогите решить, проблему когда дуэль начинается начинает играть музыка дуэль заканчивается музыка до сих пор играет, сурс мод (1.11)
 

Вложения

  • weaponfight.sp
    77.1 КБ · Просмотры: 8

Туник

Участник
Сообщения
1,281
Реакции
263
Помогите решить, проблему когда дуэль начинается начинает играть музыка дуэль заканчивается музыка до сих пор играет, сурс мод (1.11)
В конфиге смотри есть пункт отключения музыки.
 

khood

Участник
Сообщения
214
Реакции
51
нужно дописать плагин чтобы нельзя было поднять когда челы остаються 1x1
 

Вложения

  • sm_revival_1.1.6_29.10.2022.sp
    61.3 КБ · Просмотры: 5

babka68

Участник
Сообщения
2,124
Реакции
956
нужно дописать плагин чтобы нельзя было поднять когда челы остаються 1x1
Так есть же
C-подобный:
sm_revival_last_man - Отключение возрождения при одному оставшемся живым в одной из команд
sm_revival_duel - Отключение возрождения при по одному оставшемся живым в каждой из команд[/I]
 

khood

Участник
Сообщения
214
Реакции
51
bool bUntilDate(int tDay, int tMonth, int tYear) // address: 3800
{
char __buf[12], date[3][8];
FormatTime(__buf, 11, "%d.%m.%Y", GetTime(_));
ExplodeString(__buf, ".", date, 3, 5, false);
int day = StringToInt(date[0], 10); // Array
int month = StringToInt(date[1], 10); // Array
int year = StringToInt(date[2], 10); // Array
if (year < tYear)
{
return true;
}
if (year == tYear)
{
if (month < tMonth)
{
return true;
}
if (month == tMonth)
{
if (day < tDay)
{
return true;
}
}
}
return false;
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
как тут выставить 15 дней?
Какие 15 дней?

Если чтобы возвращало true на 15 дней раньше указанной в параметрах даты, то нужно FormatTime(__buf, 11, "%d.%m.%Y", GetTime()); поменять на FormatTime(__buf, 11, "%d.%m.%Y", GetTime() + 1296000);
Вот так:
C-подобный:
bool bUntilDate(int tDay, int tMonth, int tYear)
{
    char buf[12], date[3][8];
    FormatTime(buf, 11, "%d.%m.%Y", GetTime() + 1296000);   // 60 * 60 *24 * 15 = 1296000
    ExplodeString(buf, ".", date, sizeof(date), sizeof(date[]));
    int month = StringToInt(date[1]), year = StringToInt(date[2]);

    return year < tYear || year == tYear && (month < tMonth || month == tMonth && StringToInt(date[0]) < tDay);
}
Если, позже, то вместо + в представленном коде просто поставить -.
 

fantezie192

Участник
Сообщения
3
Реакции
2
Hello, can someone make this work? After some time when I drop the knife, the server crashes
 

Вложения

  • KnivesDrop.sp
    12.1 КБ · Просмотры: 8
Сверху Снизу