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

BossKotoriiNeSmok

Участник
Сообщения
976
Реакции
189
@BossKotoriiNeSmok, там у тебя ещё должна быть папка rankme с файлами инклюдов
потому что cannot read from file: "rankme/cmds"
--- Добавлено позже ---
@alex123pavlov, ты бы на сам плагин ссыль дал, а то у тебя в комменте меньше половины кода представлено, судя по твоему описанию функционала
 

Вложения

  • Архив WinRAR.rar
    7.2 КБ · Просмотры: 7

Amirsz

Релаксируем... Ну хотя бы пытаемся
Сообщения
261
Реакции
81
У меня при покупке VIP, выдаются некоторые флаги. Очень нужен плагин, который бы проверял бы игроков и заносил людей с флагами в таблицу админов MA и после убирал.
 

R1w3d

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

AlexPa1

Участник
Сообщения
292
Реакции
54
Всем помощничкам привет, нужен плагин который биндит команды от лица игрока, допустим нажал f4 открылось меню
1 вариант
C-подобный:
new Float:g_fLastTime[MAXPLAYERS + 1];
public OnClientDisconnect(client) g_fLastTime[client] = 0.0;

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
   if (impulse == 100)
   {
      decl Float:fTime;
      if (((fTime = GetGameTime()) - g_fLastTime[client]) > 0.05)
      {
         g_fLastTime[client] = fTime;
         FakeClientCommand(client, "MyCmd");
      }
   }
   return Plugin_Continue;
}
2 вариант
C-подобный:
public Action OnPlayerRunCmd(int iClient, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon)
{
    static iPrevButtons[MAXPLAYERS+1];
    if(!IsFakeClient(iClient) && (buttons & IN_USE) && !(iPrevButtons[iClient] & IN_USE))
    {
        FakeClientCommand(iClient, "say !ztele");
    }
    iPrevButtons[iClient] = buttons;
    return Plugin_Continue;
}
3 вариант
C-подобный:
public void OnPluginStart()
{
    RegConsoleCmd("drop", button);
}

public Action button(iClient, args)
{
    FakeClientCommand(iClient, "sm_osmotr");
 

R1w3d

Участник
Сообщения
153
Реакции
31
1 вариант
C-подобный:
new Float:g_fLastTime[MAXPLAYERS + 1];
public OnClientDisconnect(client) g_fLastTime[client] = 0.0;

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
   if (impulse == 100)
   {
      decl Float:fTime;
      if (((fTime = GetGameTime()) - g_fLastTime[client]) > 0.05)
      {
         g_fLastTime[client] = fTime;
         FakeClientCommand(client, "MyCmd");
      }
   }
   return Plugin_Continue;
}
2 вариант
C-подобный:
public Action OnPlayerRunCmd(int iClient, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon)
{
    static iPrevButtons[MAXPLAYERS+1];
    if(!IsFakeClient(iClient) && (buttons & IN_USE) && !(iPrevButtons[iClient] & IN_USE))
    {
        FakeClientCommand(iClient, "say !ztele");
    }
    iPrevButtons[iClient] = buttons;
    return Plugin_Continue;
}
3 вариант
C-подобный:
public void OnPluginStart()
{
    RegConsoleCmd("drop", button);
}

public Action button(iClient, args)
{
    FakeClientCommand(iClient, "sm_osmotr");



Где в 1 варианте вставлять кнопку? что-то не вижу
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
@alex123pavlov, 3-й вариант отпадает, вообще не то. В 1-м не задействуются клавиши. Только 2-й, и то, у тебя стоит сейчас на клавишу E (англ. раскладка), т.е. клавиша использовать, если по дефолту Е стоит.
--- Добавлено позже ---
(buttons & IN_USE) && !(iPrevButtons[iClient] & IN_USE))
Менять тут.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@R1w3d,
PHP:
buttons & IN_USE
Все кнопки с префиксом IN и описанием найдете в апи, файл entity.inc
@Rabb1t, в первом стоит. Просто не совсем понятным образом записано. Число 100.
 

R1w3d

Участник
Сообщения
153
Реакции
31
@alex123pavlov, 3-й вариант отпадает, вообще не то. В 1-м не задействуются клавиши. Только 2-й, и то, у тебя стоит сейчас на клавишу E (англ. раскладка), т.е. клавиша использовать, если по дефолту Е стоит.
--- Добавлено позже ---

Менять тут.
Оффтоп
--- Добавлено позже ---
@R1w3d,
PHP:
buttons & IN_USE
Все кнопки с префиксом IN и описанием найдете в апи, файл entity.inc
@Rabb1t, в первом стоит. Просто не совсем понятным образом записано. Число 100.


Не вижу :help:
 

Вложения

  • entity.inc
    27.4 КБ · Просмотры: 8
Последнее редактирование:

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
@R1w3d, ну если их прописали, как ты думаешь? Это ж не декор.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@R1w3d, через 3 вариант. Посмотрите, какая команда висит на нужной кнопке (bind клавиша; следует учитывать, что если на этой кнопке у игроков висит что-то другое, то у них это работать не будет), и вставляете в RegConsoleCmd в кавычки.
 

R1w3d

Участник
Сообщения
153
Реакции
31
@R1w3d, через 3 вариант. Посмотрите, какая команда висит на нужной кнопке (bind клавиша; следует учитывать, что если на этой кнопке у игроков висит что-то другое, то у них это работать не будет), и вставляете в RegConsoleCmd в кавычки.
PHP:
public void OnPluginStart()
 {
    RegConsoleCmd("bind F5", button);
 }
public Action button(iClient, args)
 {
    FakeClientCommand(iClient, "sm_menu");
 }
скомпилил, залил на сервер, рестартнул, нажимаю F5 ничего не происходит, в см плагин лист отображается, кодировка ютф без бум, sm_menu просто в консоль ставил работает, думал что F5 не работает, биндил у себя, работает, что делать?
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
@R1w3d, потому что ты не посмотрел, что написано был в том 3-м варианте. drop - команда заложенная в игре уже. Стоит тебе прописать в своем коде вместо bind f5 -> drop и нажать G (если у тебя на нее выкидывать оружие), увидишь сюрприз в виде меню.
 

AlexPa1

Участник
Сообщения
292
Реакции
54
Люди помогите мне, почему провод выбираешь правильный а бомба взрывается?
Вот что пишит плагин в чат:
[QuickDefuse] Вы выбрали Зеленый провод.
[QuickDefuse] Killer неудачно вырвал верный Зеленый провод, что привело к детонации!
 

Вложения

  • QuickDefuse.sp
    11.8 КБ · Просмотры: 6

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Люди помогите мне, почему провод выбираешь правильный а бомба взрывается?
Вот что пишит плагин в чат:
[QuickDefuse] Вы выбрали Зеленый провод.
[QuickDefuse] Killer неудачно вырвал верный Зеленый провод, что привело к детонации!
Отсутствие дифузов - 50% успешно вырвать
 
Сверху Снизу