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

noBap

Участник
Сообщения
395
Реакции
169
Вообщем есть идея для плагина. Есть сервер DM FFA и сервер 1 на 1 на миникартах под паролем. Играя на DMFFA ты захотел вызвать кого то на дуэль то пишешь в чат команду и ник игрока. У твоего будущего соперника появляется окно в котором написано что его вызывают и два варианта 1 согласиться 2 отклонить. При нажатии 1 обоих игроков перекидывает на сервер 1 на 1 и они играют по окончанию появляется предложение о возврате на DMFFA.
 

d4Ck

Урегулированный
Сообщения
730
Реакции
562
Вообщем есть идея для плагина. Есть сервер DM FFA и сервер 1 на 1 на миникартах под паролем. Играя на DMFFA ты захотел вызвать кого то на дуэль то пишешь в чат команду и ник игрока. У твоего будущего соперника появляется окно в котором написано что его вызывают и два варианта 1 согласиться 2 отклонить. При нажатии 1 обоих игроков перекидывает на сервер 1 на 1 и они играют по окончанию появляется предложение о возврате на DMFFA.
Если игра CS:GO, то там нельзя перенаправить игрока на другой сервер.
 

Junkie

Участник
Сообщения
18
Реакции
0
Господа скриптеры, а можете написать маленький плагинчик, который будет в лог-файл писать в конце каждой карты сколько раундов выиграли КТ и Т? Типа <дата, время, карта, раунды за КТ, раунды за Т>. Спасибо заранее!
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Junkie, пробуй.
Лог сохраняется в файл \addons\sourcemod\logs\team_wins.txt
 

Вложения

  • team_wins_log.sp
    584 байт · Просмотры: 9
  • team_wins_log.smx
    4 КБ · Просмотры: 3

Oter Bro

Участник
Сообщения
20
Реакции
0
Всем привет, прошу написать скрипт который генерирует рандомное число от 1 до 10 и проверяет было ли число сгенерированно ранее, если да, то пропускает дальнейший скрипт, если нет то пишет его в чат. Спасибо заранее :3
 
Последнее редактирование:

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Всем привет, прошу написать скрипт который генерирует рандомное число от 1 до 10 и проверяет было ли число сгенерированно ранее, если да, то пропускает дальнейший скрипт, если нет то пишет его в чат. Спасибо заранее :3
C-подобный:
new bool:b;

{
    new z = GetRandomInt(1, 10)
    if(b == false)
    {
        PrintToChatAll("[%d]", z);
        ...
    }  
    b = true;
}
 
Последнее редактирование:

Oter Bro

Участник
Сообщения
20
Реакции
0
Всем привет. нужен плагин который после каждого раунда спавнет в небе феерверки с характерным звуком. Плагин на cs go сервер, заранее спасибо )
--- Добавлено позже ---
C-подобный:
new bool:b;

{
    new z = GetRandomInt(1, 10)
    if(b == false)
    {
        PrintToChatAll("[%d]", z);
        ...
    } 
    b = true;
}
и где здесь проверка на то что число уже было сгенерированно
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
и проверяет было ли число сгенерированно ранее
Т.е. при совпадении нового числа и того, которое генерировалось предыдущий раз?
Или тебе нужно перебрать всю последовательность чисел так, чтобы ни одно число не повторилось?
и где здесь проверка на то что число уже было сгенерированно
он проверяет генерировалось ли случайное число ранее, но не проверяет каким оно было
 

Oter Bro

Участник
Сообщения
20
Реакции
0
Т.е. при совпадении нового числа и того, которое генерировалось предыдущий раз?
Или тебе нужно перебрать всю последовательность чисел так, чтобы ни одно число не повторилось?
--- Добавлено позже ---
2. Нужно перебрать всю последовательность чисел так, чтобы ни одно число не повторилось
--- Добавлено позже ---
Т.е. при совпадении нового числа и того, которое генерировалось предыдущий раз?
Или тебе нужно перебрать всю последовательность чисел так, чтобы ни одно число не повторилось?
он проверяет генерировалось ли случайное число ранее, но не проверяет каким оно было
Я уже написал скрипт
PHP:
int rng[MAXPLAYERS+1];
    int Rand;
    
    for(int mix; mix++ <= MaxClients;)
    {
        Rand = GetRandomInt(1, MaxClients);
        
        for(int mix1; mix1++ <= MaxClients;)
        {
            if(rng[mix1] == Rand) continue;
            if(rng[mix1] == 0)
            {
                rng[mix1] = Rand;
                continue
            }
            
            PrintToChatAll( "рандомное число = %i", Rand);
        }
        
    }
Но интересно, как ещё можно это сделать
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Oter Bro, я когда-то кидал сюда код автобаланса команд кому-то. Там был такой кусок.
Последовательность чисел фиксированного размера?
Какие минимальные и максимальные значения могут принимать числа в этой последовательности?

Или тебе просто нужно перебрать игроков в случайном порядке?
--- Добавлено позже ---
Но интересно, как ещё можно это сделать
это зависит от того, что тебе нужно получить в результате
 

Oter Bro

Участник
Сообщения
20
Реакции
0
@Oter Bro, я когда-то кидал сюда код автобаланса команд кому-то. Там был такой кусок.
Последовательность чисел фиксированного размера?
Какие минимальные и максимальные значения могут принимать числа в этой последовательности?

Или тебе просто нужно перебрать игроков в случайном порядке?
Мне как рас для баланса.
Последовательность от 1 до MaxClients)
Но на данный момент мне нужен плагин который при завершении раунда спавнит в небе летящие фейерверки с характерным звуком, желательно что бы взрывались
 

Jugheadbomb

CTFPlayer
Сообщения
168
Реакции
24
@Oter Bro, Нужны ведь партиклы, а где ты их возьмешь? Не знаю, может можно как то без них а текстурами или вообще какими то моделями(но это не точно)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Мне как раз для баланса.
балансирование должно по какому принципу производиться?
или тебе тупо переместить лишних игроков (каких именно должен выбрать генератор случайных чисел)? У меня там именно это и было. Правда как найти как тот коммент, который был написан ещё летом я хз. Разве что тупым перебором из списка сообщений
--- Добавлено позже ---
Раз уже написал плагин, то выложу здесь (тема, где такой спрашивали почему-то удалена).

Плагин в CS:GO включает TeamNoBlock в начале раунда на время указанное в переменной sm_temp_noblock_time (параметр указывается в секундах, при -1 выключается, при 0 - действует до конца раунда).
Для этого используется серверная переменная mp_solid_teammates (поэтому только для CS:GO).
Если во время раунда изменять значение переменной sm_temp_noblock_time, то при значении -1 переменная mp_solid_teammates изменит значение на 1, а 0 при значении 0, соответственно.
При прочих значениях плагин будет действовать в зависимости от разницы м/у значением переменной sm_temp_noblock_time и временем прошедшим с начала раунда (если с начала раунда прошло меньше секунд, чем установили в переменной, то включается TeamNoBlock на оставшееся время, иначе - выключается).
 

Вложения

  • csgo_temp_noblock.sp
    2.3 КБ · Просмотры: 3
  • csgo_temp_noblock.smx
    4.8 КБ · Просмотры: 2
Последнее редактирование:

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Т.е. при совпадении нового числа и того, которое генерировалось предыдущий раз?
Или тебе нужно перебрать всю последовательность чисел так, чтобы ни одно число не повторилось?
он проверяет генерировалось ли случайное число ранее, но не проверяет каким оно было
Я написал так как было задано в задаче от пользователя, я догадывался что он не умеет выражать свои мысли
 
  • Мне нравится
Реакции: d4Ck

cors

Участник
Сообщения
58
Реакции
2
Всем доброго времени суток,кто нибудь может написать плагин который будет накладывать оверлей и если раунд закончился,то оверлей удаляется.
 

leshaJEY

Участник
Сообщения
175
Реакции
16
Ребят, подскажите где найти плагин, чтобы он включал тем блок,
(чтобы тиммейты не проходили сквозь своих тиммейтов)
 
Сверху Снизу