Иконка ресурса

[Shop] Command Items 2.3

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Меня вовсе необязательно упоминать. :biggrin: Оффтоп И не обошлось без "странностей" нововведений:
C-подобный:
g_iKillTimer[MAXPLAYERS+1]
Жирно память расходуешь, когда нужен именно bool массив. Если не знаешь, как int преобразовать в bool, то так:
PHP:
g_iKillTimer[iClient] = bool:KvGetNum(g_hKv, "close_timer", 1);
C-подобный:
new userid = ReadPackCell(datapack);
new iClient = GetClientOfUserId(userid);
userid нигде больше не используешь, вот и сделаем лучше, и короче:
PHP:
new iClient = GetClientOfUserId(ReadPackCell(datapack));
C-подобный:
decl String:Command[64];
        if(!StrEqual(g_CommandItems[chat_text_timer], ""))    ReadPackString(datapack, Command, sizeof(Command));
        ServerCommand(Command);
    
        decl String:sText[64];
        ReadPackString(datapack, sText, sizeof(sText));
        PrintToChat(iClient, sText);
Command после sText не используется, размер массивов одинаковый (64), так почему бы не использовать ту же самую строку (т.е. дважды)?
 
Последнее редактирование:

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #22
Меня вовсе необязательно упоминать. :biggrin: Оффтоп И не обошлось без "странностей" нововведений:
C-подобный:
g_iKillTimer[MAXPLAYERS+1]
Жирно память расходуешь, когда нужен именно bool массив. Если не знаешь, как int преобразовать в bool, то так:
PHP:
g_iKillTimer[iClient] = bool:KvGetNum(g_hKv, "close_timer", 1);
C-подобный:
new userid = ReadPackCell(datapack);
new iClient = GetClientOfUserId(userid);
userid нигде больше не используешь, вот и сделаем лучше, и короче:
PHP:
new iClient = GetClientOfUserId(ReadPackCell(datapack));
C-подобный:
decl String:Command[64];
        if(!StrEqual(g_CommandItems[chat_text_timer], ""))    ReadPackString(datapack, Command, sizeof(Command));
        ServerCommand(Command);

        decl String:sText[64];
        ReadPackString(datapack, sText, sizeof(sText));
        PrintToChat(iClient, sText);
Command после sText не используется, размер массивов одинаковый (64), так почему бы не использовать ту же самую строку (т.е. дважды)?

Вижу, что вопрос про массив отпал. Эх, опять фиксить.

Преобразование int в bool впервые вижу.

А с "iAlive = KvGetNum(g_hKv, "alive", 1)" такое ведь тоже можно провернуть?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
вопрос про массив отпал
Оффтоп
такое ведь тоже можно провернуть
С чем угодно. Ещё со старых плагинов можно вспомнить извлечение "була" из Handle квара, типа:
C-подобный:
g_bEnable = bool:StringToInt(newValue);
 

Kolya

Участник
Сообщения
75
Реакции
17
Короче, есть баг : жмешь юзать - kill в консоли - жмешь юзать, и теперь ноклип навечно у тебя.
 

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #25
Если купить опьянение, то оно проходит только в след.раунде. Было прикольно, если бы оно было на время)
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #26
Если купить опьянение, то оно проходит только в след.раунде. Было прикольно, если бы оно было на время)
Это уже не от моего плагина зависит.

Может так, не проверял:

В funcommands.sp найди:

PHP:
public Action:Event_RoundEnd(Handle:event,const String:name[],bool:dontBroadcast)
{
    KillAllBeacons( );
    KillAllTimeBombs();
    KillAllFireBombs();
    KillAllFreezes();
    KillAllDrugs();
}

И удали KillAllDrugs();
--- Добавлено позже ---
Короче, есть баг : жмешь юзать - kill в консоли - жмешь юзать, и теперь ноклип навечно у тебя.

Потом проверю
 

ColdWind

Участник
Сообщения
68
Реакции
29
Можно сделать так что-бы совершались одновременно 2 действия? Например sm_drug и sv_gravity?
 

nick_name

Участник
Сообщения
49
Реакции
30
Оффтоп
Оффтоп
 

turka

Участник
Сообщения
31
Реакции
1
Ребят, нужно чтобы после истечения таймера использовалась другая команда: вначале sm_gravity 200, после таймера sm_gravity 800. Вероятно, дописывать много, но может кто-то сможет помочь? :D
 
Последнее редактирование:

DespairFactory

Участник
Сообщения
68
Реакции
12
Мне бы хотелось увидеть в плагине ограничение на покупку команды за карту или за определённый промежуток времени, для каждого игрока или для всех игроков. Например написано: "Ещё доступно N-ое кол-во покупок"
--- Добавлено позже ---
Иначе приходится отказываться от большого кол-ва идей, которые можно реализовать посредством этого плагина.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #32
Пользователь Someone обновил ресурс [Shop] Command Items новой записью:

Большое обновление

Обновление:
  1. Теперь доступна более гибкая настройка команд.
  2. Новый синтаксис.
Квары:

  • sm_shop_commanditems_round_max переименован в sm_shop_command_items_round_max.
  • Добавлен sm_shop_command_items_map_max для ограничения использования команд для одной карты.

Конфиг:

  • close_timer_death Вкл/Выкл отключение таймера после смерти;
  • timer_command —...

Узнать больше об этом обновлении...
--- Добавлено позже ---
Ребят, нужно чтобы после истечения таймера использовалась другая команда: вначале sm_gravity 200, после таймера sm_gravity 800. Вероятно, дописывать много, но может кто-то сможет помочь? :D

Мне бы хотелось увидеть в плагине ограничение на покупку команды за карту или за определённый промежуток времени, для каждого игрока или для всех игроков. Например написано: "Ещё доступно N-ое кол-во покупок"
--- Добавлено позже ---
Иначе приходится отказываться от большого кол-ва идей, которые можно реализовать посредством этого плагина.

Сделано.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #33

All

Random
Сообщения
553
Реакции
228
Я так понял в плагине нельзя сделать покупку того же sm_kill для другого игрока? Только для себя верно? Было бы замечательно добавить такую функцию.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #35
Я так понял в плагине нельзя сделать покупку того же sm_kill для другого игрока? Только для себя верно? Было бы замечательно добавить такую функцию.
Force Cmd в помощь.
 

All

Random
Сообщения
553
Реакции
228
немного недопонимаю как сделать выбор игрока на которого наложится эффект после покупки через force cmd.
В оригинале саму команду можно использовать по флагу z. Сможет ли обычный игрок выполнить? Или таким образом команда пойдет через консоль, а не через игрока?
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #37
немного недопонимаю как сделать выбор игрока на которого наложится эффект после покупки через force cmd.
В оригинале саму команду можно использовать по флагу z. Сможет ли обычный игрок выполнить? Или таким образом команда пойдет через консоль, а не через игрока?

Честно говоря ничего не понял, но это наверно должно сработать "force_cmd {clientUser} sm_kill". Уже не помню как force cmd работает.
 
Последнее редактирование:

All

Random
Сообщения
553
Реакции
228
Честно говоря ничего не понял, но это наверно должно сработать "force_cmd {clientUser} sm_kill". Уже не помню как force cmd работает.
вопрос главный как реализовать вывод списка игроков на сервере на которых применить команду.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #40
Пользователь Someone обновил ресурс [Shop] Command Items новой записью:

Команда на стороне игрока

Теперь можно воспроизводить команды на стороне игрока.

Пример:

C-подобный:
"kill"
    {
        "name"                     "Умереть"
        "price"                    "500"
        "sell_price"            "100"
        "alive"                    "1"
        "command"                "kill"
        "type"                    "1"                                            // Если type 1, то команда воспроизведется на стороне клиента
    }

Узнать больше об этом обновлении...
 
Сверху Снизу