Какой добавить урок?
|
|
_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 ] Помощь
|
|
| |
|
_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 То плагин будет отключать именно для админа? Или на всем сервере? Я то сделал, но вроде он отключает на всем сервере, всем игрокам
|
|
| |