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

abyss of harmony

Участник
Сообщения
43
Реакции
7
Всем привет,вопрос следующего характера,что это баг или как это понимать?
Есть плагин выдачи денег со 2 раунда вроде бы работает все хорошо,но обнаружилась проблема.
Настройки:
C-подобный:
mp_startmoney "800" // Стартовое кол-во денег игроков
Пример:
Игрок Петя заходит на сервер ему выдается 800$,на сервер следом подключается игрок Вася,ему тоже выдается 800$,далее
игрок Петя убивает игрока Васю, кол-во побед становиться 1:0 обоим выдается 16000$ согласно
C-подобный:
// Устанавливает количество денег, выданных при спавне.
// -
// Default: "16000"
extra_cash_amount "16000"

А вот теперь самое интересное:
Васе не понравилось,что его убил Петя и он выходит с сервера,Подключается Миша,счет побед обнуляется 0:0 и игроку Мише выдает 800$,а Пете выдает 16000$,почему так ведь побед CT=0,T=0
Быть может поспособствует прямая проверка на второй раунд
C-подобный:
if(iRound == 1)
{
    SetEntData(client, g_iAccount, iMoney);
}
 

babka68

Участник
Сообщения
2,124
Реакции
956
Быть может поспособствует прямая проверка на второй раунд
C-подобный:
if(iRound == 1)
{
    SetEntData(client, g_iAccount, iMoney);
}
тоже самое
Сообщения автоматически склеены:

Может, через CS_GetTeamScore · cstrike · SourceMod Scripting API Reference лучше попробовать тогда? Вроде логичнее будет
может не верно пробовал,но нет все так же
 

babka68

Участник
Сообщения
2,124
Реакции
956
Всем привет,есть плагин админ чат,который позволяет администраторам видеть чат:мертвых/наблюдателей/командный чат.
Все работает,но сообщение общего чата дублируется,сначала идёт стандартное сообщение,потом сообщение от плагина,во всех остальных случаях такого не наблюдается,с чем это может быть связано?)
 

abyss of harmony

Участник
Сообщения
43
Реакции
7
Всем привет,есть плагин админ чат,который позволяет администраторам видеть чат:мертвых/наблюдателей/командный чат.
Все работает,но сообщение общего чата дублируется,сначала идёт стандартное сообщение,потом сообщение от плагина,во всех остальных случаях такого не наблюдается,с чем это может быть связано?)
Скорее всего плагин просто берет все выше перечисленные чаты и дублирует сообщение администратору, а так как общий чат вы видите при любом раскладе - идет дубляж. Попробуйте убрать из плагина хук общего чата. (плагин не видел, всего лишь мысля)
 

babka68

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

🟡differend🟢

Что хочу - то и делаю
Сообщения
975
Реакции
661
Привет! Можете, пожалуйста, сделать чтобы такие функции как
!sound
!colorchat
Не сбрасывались после перезахода на сервер.
 

Вложения

  • KZJumpStats.sp
    154.8 КБ · Просмотры: 5

SIRIUS

♿___DejaVu
Сообщения
509
Реакции
253
Здраствуйте. Где-то видел код и потерял. Суть в том, чтобы сделать бинд на двойное нажатие кнопки, например E или F4 и выполнялась команда.
 

DarkerZ

Участник
Сообщения
395
Реакции
175
Здраствуйте. Где-то видел код и потерял. Суть в том, чтобы сделать бинд на двойное нажатие кнопки, например E или F4 и выполнялась команда.
такое
OnPlayerRunCmd:
public Action OnPlayerRunCmd(int iClient, int &iButtons, int &iImpulse, float[3] aVel, float[3] aAngles, int &iWeapon)
{
    if(iButtons & IN_USE)
    {
        ...
    }
}
или такое
AddCommandListener:
public OnPluginStart()
{
    ...
    AddCommandListener(Button_F4_Bind, "rebuy");
    ...
}

public Action Button_F4_Bind(int iClient, char[] command, int args)
{
   ...
   return Plugin_Continue;
}
 

SIRIUS

♿___DejaVu
Сообщения
509
Реакции
253
такое
OnPlayerRunCmd:
public Action OnPlayerRunCmd(int iClient, int &iButtons, int &iImpulse, float[3] aVel, float[3] aAngles, int &iWeapon)
{
    if(iButtons & IN_USE)
    {
        ...
    }
}
или такое
AddCommandListener:
public OnPluginStart()
{
    ...
    AddCommandListener(Button_F4_Bind, "rebuy");
    ...
}

public Action Button_F4_Bind(int iClient, char[] command, int args)
{
   ...
   return Plugin_Continue;
}
Нет, мне надо дважды нажать кнопку, допустим E+E с интервалом.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@SIRIUS, точно так же, только запоминаешь время последнего нажатия, потом проверяешь, чтобы кнопка была отжата перед нажатием и время м/у нажатиями была меньше какого-то значения.
 

tonline_kms65_1

Участник
Сообщения
565
Реакции
225


Мне интересно вот что - это же строковая переменная(тот-же массив), у неё по какой то причине нет длинны, как вообще, интересно, это должно работать?
Всё, что идет после, уже не имеет смысла.
 
Последнее редактирование:

xstage

🏹
Сообщения
726
Реакции
754
Здраствуйте. Где-то видел код и потерял. Суть в том, чтобы сделать бинд на двойное нажатие кнопки, например E или F4 и выполнялась команда.
C-подобный:
#define DELAY 9

public Action OnPlayerRunCmd(int iClient, int& iButtons, int& impulse, float vel[3], float angles[3], int& weapon, int& subtype, int& cmdnum, int& tickcount, int& seed, int mouse[2])
{
    static int iBtn[MAXPLAYERS + 1], iTime[MAXPLAYERS + 1];
    
    if(iButtons & IN_USE && !(iBtn[iClient] & IN_USE))
    {
        if(tickcount <= iTime[iClient] + DELAY)
        {
            //....
        }
        
        iTime[iClient] = tickcount;
    }
    
    iBtn[iClient] = iButtons;
}
 

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
C-подобный:
#define DELAY 9

public Action OnPlayerRunCmd(int iClient, int& iButtons, int& impulse, float vel[3], float angles[3], int& weapon, int& subtype, int& cmdnum, int& tickcount, int& seed, int mouse[2])
{
    static int iBtn[MAXPLAYERS + 1], iTime[MAXPLAYERS + 1];
   
    if(iButtons & IN_USE && !(iBtn[iClient] & IN_USE))
    {
        if(tickcount <= iTime[iClient] + DELAY)
        {
            //....
        }
       
        iTime[iClient] = tickcount;
    }
   
    iBtn[iClient] = iButtons;
}
Кто умный подскажите зачем нужен static
 
Сверху Снизу