Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 8
  • 1
  • 2
  • 3
  • 7
  • 8
  • »
Какой добавить урок?
_wS_ Дата: Суббота, 14.01.2012, 08:20:33 | Сообщение # 1
Если нужного вам урока ещё нет на форуме, то вы можете предложить добавить его.
 
Nailain Дата: Воскресенье, 22.01.2012, 00:08:32 | Сообщение # 2
Сообщений: 19
Репутация: 1 [ +/- ]
Code
public OnPluginStart()  
{  
     new Handle:h_Cvar = FindConVar("sv_cheats");  
     SetConVarFlags(h_Cvar, GetConVarFlags(h_Cvar) &~ FCVAR_NOTIFY);  
}  

этот скрипт убирает сообщение на сервере типо: переменная сервера "sv_cheats" изменена на 1 или 0
также в скрипте где строка FindConVar("sv_cheats"); можно вставить sv_gravity, ток как можно сделать так чтобы можно было в 1 скрипт вставить сразу несколько команд которые не будут показывать всем в чате?
 
_wS_ Дата: Воскресенье, 22.01.2012, 02:12:30 | Сообщение # 3
Немного не понял вопрос.
Ну вот как ты делаешь с sv_cheats, так делай и с другими переменными.

Code
public OnPluginStart()
{
     EditVarFlags("sv_cheats");
     EditVarFlags("sv_gravity");
}

EditVarFlags(const String:VarName[])
{
     new Handle:h_Cvar = FindConVar(VarName);
     if (h_Cvar != INVALID_HANDLE)
     {
         SetConVarFlags(h_Cvar, GetConVarFlags(h_Cvar) &~ FCVAR_NOTIFY);
     }
     else LogError("%s INVALID_HANDLE", VarName);
}


Пожалст, старайся писать в нужных разделах, ты же не предлагаешь добавить урок, а просто задаешь вопрос, надо было в разделе [ SM ] Помощь
 
naykon4979 Дата: Понедельник, 06.02.2012, 23:37:17 | Сообщение # 4
Сообщений: 3
Репутация: 0 [ +/- ]
Добавьте урок создания голосования. в качестве примера пусть будет голосование за кик 1 игрока в начале каждого раунда. (По принципу "смены карты в конце карты")
Пример: Начался раунд у игроков голосование "кого кикнуть?"...
Пусть такой плагин не нужен никому но он будет довольно поучителен т.к мы научимся еще и пользоваться отловом события HookEvent =) klas

Добавлено (06.02.2012, 23:37:17)
---------------------------------------------
Личный вопрос.
Меня интересует как вы пишете плагины. Вы пользуетесь некоторыми частями кода уже готовыми (или же написаны вами ранее для других плагинов) или код для каждого плагина сугубо индивидуален? dumaem

 
_wS_ Дата: Вторник, 07.02.2012, 02:30:40 | Сообщение # 5
Quote (naykon4979)
Добавьте урок создания голосования

Вот

Quote (naykon4979)
Меня интересует как вы пишете плагины. Вы пользуетесь некоторыми частями кода уже готовыми (или же написаны вами ранее для других плагинов) или код для каждого плагина сугубо индивидуален?


У меня есть черновики с разными часто-используемыми командами, чтобы не вводить их каждый раз вручную, а просто скопировал и вставил (для удобства) - ну и записываю о том, что узнал, что хочу протестить и тд. Часто использую API на SM сайте (ну и форум, wiki). Т.е. нет никакого начального готового шаблона, чтобы писать новый скрипт - все делается с самого начала и используется только то, что нужно в конкретном скрипте.

Например, если хотим запретить вход на сервер, то нам нужно событие 'вход игрока на сервер', команда 'кик' и больше ничего.. Вот как это выглядит:

Code
#include <sourcemod>

public OnClientPutInServer(i)
{
     KickClient(i, "Входа нет");
}


Если хотим кикать каждого третьего, то поможет переменная:

Code
#include <sourcemod>

new x = 0;

public OnClientPutInServer(i)
{
     x += 1;
     if (x > 2)
     {
         KickClient(i, "Входа нет");
         x = 0;
     }
}


Главное понять синтаксис, научиться правильно использовать условия, понимать/представлять последовательность, т.е как оно будет работать, что будет выполнено сначала, а что потом и тд. Уже много есть готового, события и переменные в них, команды, их синтаксис и примеры использования.
 
naykon4979 Дата: Суббота, 11.02.2012, 13:37:05 | Сообщение # 6
Сообщений: 3
Репутация: 0 [ +/- ]
Добавьте пример выполнения операций над одной из команд.... к примеру голосование только для СТ доступно.

И наоборот чтобы только СТ были участниками голосования (номинантами)
 
_wS_ Дата: Суббота, 11.02.2012, 13:59:34 | Сообщение # 7
Quote (naykon4979)
к примеру голосование только для СТ доступно

Ну это легко совсем, нужно просто узнать команду игрока GetClientTeam(), и если она равна 3 (ct), то показываем ему меню и когда он выбирает опцию, опять можно проверить его команду (так как он мог успеть сменить ее).

Code
// был такой код  
for (new i = 1; i <= MaxClients; i++)  
{  
     if (IsClientInGame(i)) DisplayMenu(h_Menu, i, 10);  
}

// меняем на этот
for (new i = 1; i <= MaxClients; i++)  
{  
     if (IsClientInGame(i) && GetClientTeam(i) == 3) DisplayMenu(h_Menu, i, 10);  
}
 
Naykon Дата: Вторник, 28.02.2012, 16:59:53 | Сообщение # 8
Сообщений: 439
Репутация: -4 [ +/- ]
Думаю был бы стоящий урок по проигрыванию звука при как-то событии к примеру say zvuk

---
Добавлен

Добавлено (28.02.2012, 15:18:31)
---------------------------------------------
Урок зависимости карты от чего либо.

К прмеру на de_dust2 команды будут одеты в определенные скины а на de_inferno в другие скины... или же на д2 будет такая музыка при раундстарте а на инферно будет другая...
.
В общем зависимость событий от карты..... Урок возможно будет сложным но интересным

---
Добавлен

Добавлено (28.02.2012, 16:59:53)
---------------------------------------------
Стандартные сообщения сервера и их замена...
К примеру:
Player join in server (чет в этом роде) - когда игрок подключился заменить на Name XXXXX,
Name is joining the Terrorist - Name YYYYYYY
Name is joining the CT - Name ZZZZZ

И мне всегда было очень интересно как делали плагины которые пишут откуда игрок подключился?

 
_wS_ Дата: Вторник, 28.02.2012, 17:12:53 | Сообщение # 9
Quote (Naykon)
Стандартные сообщения сервера и их замена...

Смотри ЭТОТ скрипт. Надо сделать pre hook нужному событию, отправить нужное сообщение PrintToChatAll и заблокировать событие return Plugin_Handled;

Quote (Naykon)
И мне всегда было очень интересно как делали плагины которые пишут откуда игрок подключился?

Посмотри исходник..
 
Naykon Дата: Пятница, 02.03.2012, 13:40:30 | Сообщение # 10
Сообщений: 439
Репутация: -4 [ +/- ]
МНОГОУРОВНЕВОЕ МЕНЮ.
К прмеру:

Как дела?
{
1.Нормально
2.Плохо
{
2.1.Что случилось?
{
2.1.1.Уволили
}
}
3.Отлично
}
Куда пойдем?
{
1.Никуда
}
Что будешь?
Зачем?

И при выборе любого меню в чате чтоб писало что-то... так "ученики" смогут понять что откуда и куда...

Добавлено (02.03.2012, 13:40:30)
---------------------------------------------
МНОГОУРОВНЕВОЕ МЕНЮ.
К прмеру:

Code

Как дела?
    {
       1.Нормально
       2.Плохо
       {
            2.1.Что случилось?
        }
                 {
                 2.1.1.Уволили
                 }
        3.Отлично
     {
Куда пойдем?
     {
         1.Никуда
     }
Что будешь?
Зачем?


И при выборе любого меню в чате чтоб писало что-то... так "ученики" смогут понять что откуда и куда...
 
_wS_ Дата: Пятница, 02.03.2012, 15:41:39 | Сообщение # 11
В подобном меню нет ничего особенного. Просто в первом меню проверяется выбранная опция, и в зависимости от того, чему она равна, отправляем новое меню, и в этом новом меню то же самое.
 
Naykon Дата: Пятница, 02.03.2012, 17:29:39 | Сообщение # 12
Сообщений: 439
Репутация: -4 [ +/- ]
Статистика. Простенький пример по какому нибудь оружию.
считаю важным) а там решать вам
 
max--2 Дата: Воскресенье, 04.03.2012, 15:36:25 | Сообщение # 13
Сообщений: 4
Репутация: 0 [ +/- ]
Как сделать выполнение какой либо команды в плагине? Например отключить плагин
 
_wS_ Дата: Воскресенье, 04.03.2012, 15:49:37 | Сообщение # 14
ServerCommand("sm plugins unload x") - x - имя скрипта.
Ты не в той теме пишешь.
 
max--2 Дата: Воскресенье, 04.03.2012, 18:00:35 | Сообщение # 15
Сообщений: 4
Репутация: 0 [ +/- ]
Извеняюсь, спасибо, очень помогли

Добавлено (04.03.2012, 18:00:35)
---------------------------------------------
А если сделать плагин который отключает другой плагин, но там поставить #define ADMFLAG_CUSTOM3 То плагин будет отключать именно для админа? Или на всем сервере? Я то сделал, но вроде он отключает на всем сервере, всем игрокам

 
  • Страница 1 из 8
  • 1
  • 2
  • 3
  • 7
  • 8
  • »
Поиск: