Биляш
Умник
/admpanel (v0.3)
Здравствуйте, дорогие друзья. Я новичок в Pawno и это моя первая работа. Возможно кому нибудь пригодится.
Всё делал сам, единственное, что взял в команду, так это /weather (Автор: Niko Vincente)
Итак, начнём...
В public OnPlayerCommandText вставляете это
К case'ам вставляете вот это
Вот и всё. Данная команда упрощает роботу администрации сервера заменяя кучу не нужных команд в одну команду.
Примечание для модераторов: ув.Модераторы, в правилах раздела сказано вставлять префикс [C.M.D], но увы, у меня его нету, по этому мне пришлось в названии темы дорисовать его.
Пользуйтесь командой. Спасибо за внимание!! Кому, что не понятно, спрашивайте в теме, либо в мне в Личные сообщения. Если вы взяли команду, у вас возникают ошибки, то пишите в тему ошибки, которые возникают, а также пишите строки из мода в которых вибивают ошибки.
Дополняйте, спрашивайте, комментируйте, оценивайте тему - для меня это очень важно.
Постепенно буду обновлять спойлер "Помощь новичкам". Спасибо за внимание!!
Здравствуйте, дорогие друзья. Я новичок в Pawno и это моя первая работа. Возможно кому нибудь пригодится.
Автор: Биляш
Версия: 0.9
Мод: Делалось под RLS.
Тест: на RLS.
Время работы: Несколько часов
Данная команда заменяет не нужные команды в диалог: /reklama, /payday, /cc, /restart (/gmx), /arace, /apaint, /mrace, /weather, /settime. Кроме как команда /restart, она нужная.
Версия: 0.9
Мод: Делалось под RLS.
Тест: на RLS.
Время работы: Несколько часов
Данная команда заменяет не нужные команды в диалог: /reklama, /payday, /cc, /restart (/gmx), /arace, /apaint, /mrace, /weather, /settime. Кроме как команда /restart, она нужная.
Итак, начнём...
В public OnPlayerCommandText вставляете это
PHP:
else if(strcmp(cmd, "/admpanel", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 2)
{
new listitems[] = "[1] - Подать серверное объявление\n[2] - Преждевременный PayCheck Hour\n[3] - Очистить чат игроков\n[4] - Рестарт сервера\n[5] - Преждевременное начало гонки\n[6] - Преждевременное начало пеинтболла\n[7] - Преждевременное начало вело гонок\n[8] - Установить погоду\n[9] - Установить время суток";
ShowPlayerDialog(playerid, 9500, DIALOG_STYLE_LIST, "Админ панель", listitems, "Выбрать", "Закрыть");
}
return 1;
}
PHP:
case 9500:
{
if(response)
{
switch(listitem)
{
case 0:
{
ReklamaTimer();
}
case 1:
{
PayDay();
}
case 2:
{
for(new i = 0; i < 300; i++)
SendClientMessageToAll(COLOR_GREY," ");
}
case 3:
{
SendClientMessageToAll(COLOR_GREEN,"Происходит рестарт сервера. Рестарт займет меньше 10 секунд. {ffffff}Приносим свои извенения.");
format(string, sizeof(string), "~g~RESTART");
for(new i = 0; i < MAX_PLAYERS; i++)
{
new txtid;
GameTextForPlayer(i, string, 3000, txtid);
}
printr("Происходит рестарт сервера.");
SaveAccounts();
SaveMaterials();
SaveGZ();
OnPropUpdate();
OnPlayerUpdateRL(playerid);
GameModeExitFunc();
format(string, sizeof(string), "~g~RESTART");
}
case 4:
{
format(string, sizeof(string), "Внимание! Начало гонок через 5 минут. Трасса: 'Пыль и Песок'. Регистрация у Аэропорта Лос - Сантос");
OOCOff(COLOR_YELLOW,string);
SetTimer("StartGonkatwo", 300000, 0);
EndingKartRound = 0;
}
case 5:
{
format(string, sizeof(string), "Внимание! Начало Paint Balla через 5 минут. Регистрация на пляже Los Santos");
OOCOff(COLOR_YELLOW,string);
SetTimer("StartPaintball", 300000, 0);
PaintballRound = 0;
}
case 6:
{
format(string, sizeof(string), "Внимание! Начало Вело - Гонок через 5 минут. Трасса: Стадион Лос Сантос. Регистрация на месте");
OOCOff(COLOR_YELLOW,string);
SetTimer("MotoStartGonkatwo", 300000, 0);
EndingmotoRound = 0;
}
case 7:
{
ShowPlayerDialog(playerid,4385,DIALOG_STYLE_LIST, "Список погоды", "[1] - Солнечная погода\n[2] - Очень солнечная погода\n[3] - Гроза\n[4] - Пасмурно и туман\n[5] - Хмурая и дождливая\n[6] - Песчаная буря\n[7] - Туманный и зеленоватый\n[8] - В красках бледного Апельсина\n[9] - Свежая в синих красках\n[10] - Туманно и серо\n[11] - Темный неясный коричневый\n[12] - Розовое небо", "Поставить", "Выйти");
return 1;
}
case 8:
{
ShowPlayerDialog(playerid,4395,DIALOG_STYLE_LIST, "Изменить время суток", "Ночь - 0 часов\nНочь - 1 час\nНочь - 2 часа\nНочь - 3 часа\nНочь - 4 часа\nНочь - 5 часов\nУтро - 6 часов\nУтро - 7 часов\nУтро - 8 часов\nУтро - 9 часов\nУтро - 10 часов\nУтро - 11 часов\nУтро - 12 часов\nДень - 13 часов\nДень - 14 часов\nДень - 15 часов\nДень - 16 часов\nДень - 17 часов\nВечер - 18 часов\nВечер - 19 часов\nВечер - 20 часов\nВечер - 21 час\nНочь - 22 часа\nНочь - 23 часа", "Установить", "Выйти");
return 1;
}
}
}
}
PHP:
case 4385:
{
if(response)
{
switch(listitem)
{
case 0: SetWeather(10);
case 1: SetWeather(11);
case 2: SetWeather(8);
case 3: SetWeather(9);
case 4: SetWeather(14);
case 5: SetWeather(19);
case 6: SetWeather(20);
case 7: SetWeather(23);
case 8: SetWeather(27);
case 9: SetWeather(30);
case 10: SetWeather(33);
case 11: SetWeather(-1337);
}
}
return 1;
}
PHP:
case 4395:
{
if(response)
{
switch(listitem)
{
case 0: SetWorldTime(0);
case 1: SetWorldTime(1);
case 2: SetWorldTime(2);
case 3: SetWorldTime(3);
case 4: SetWorldTime(4);
case 5: SetWorldTime(5);
case 6: SetWorldTime(6);
case 7: SetWorldTime(7);
case 8: SetWorldTime(8);
case 9: SetWorldTime(9);
case 10: SetWorldTime(10);
case 11: SetWorldTime(11);
case 12: SetWorldTime(12);
case 13: SetWorldTime(13);
case 14: SetWorldTime(14);
case 15: SetWorldTime(15);
case 16: SetWorldTime(16);
case 17: SetWorldTime(17);
case 18: SetWorldTime(18);
case 19: SetWorldTime(19);
case 20: SetWorldTime(20);
case 21: SetWorldTime(21);
case 22: SetWorldTime(22);
case 23: SetWorldTime(23);
case 24: SetWorldTime(24);
}
}
return 1;
}
Примечание для модераторов: ув.Модераторы, в правилах раздела сказано вставлять префикс [C.M.D], но увы, у меня его нету, по этому мне пришлось в названии темы дорисовать его.
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Разберу команду с самого начала, так как тему могут читать новички в Pawno и они не поймут что куда.
Если вы желаете чтобы команда вызывалась, не на /admpanel, а на другую команду, то просто измените /admpanel на то, что вы желаете.
Например, на команду /test1
Тогда строка должна выглядеть так
Больше ничего не меняйте, true - значит, будет ли работать команда в вашем моде.
Или же, если вы желаете, чтобы команда вызывалась и на /admpanel и, например, на /test1, то замените строчку
на
----------------------------------------------
Это проверка админ левела. Тоисть, в моей команде изначально указано, что команду можно вызвать, только тем администраторам, у кого админ левел 2 и выше. Вы можете поменять на свой.
Также вы можете изменить так
Это будет значить, что команду могут вызвать непосредственно только администраторы, у которых админ лвл только 2. Если ниже или выше 2, команда вызыватся не будет.
pAdmin - это проверка. Тоисть, это значит, что команду могут вызывать только администраторы.
----------------------------------------------
Без этого не появится меню.
----------------------------------------------
ShowPlayerDialog - Означает, что команда вызывается в диалоге.
9500 - это ид действий.
"Админ панель" - название диалога в самом верху.
----------------------------------------------
Теперь переходим к case'у 9500. От case зависит, что будет делать каждая кнопка в меню.
Это вызов серверного объявления. В RLS моде на вызов серверного объявления должен стоять таймер.
В таймере указано подробно, когда будет вызываться объявление.
1200000 - Указано время в миллисекундах, через которое будет вызываться объявление.
1 - это кол-во объявлений за заданое время.
Таймер никак не влияет на мою команду.
----------------------------------------------
Эта функция вызывает, так называемый PayDay.
В RLS моде стоит таймер на вызов PayDay'я каждый час.
----------------------------------------------
Это функция очистки чата. Через SendClientMessage собственно и происходит очистка чата.
Это значит, что чат будет очищен на 300 строк.
Если вы ещё желаете, чтобы у игроков писалось, что чат очищен, то добавьте
После
Собственно, полностью, все должно выглядеть так
----------------------------------------------
Теперь разберем рестарт сервера.
SendClientMessageToAll - Значит, что при рестарте сервера, в чат будет посылаться сообщение всем игрокам.
COLOR_GREEN - Цвет сообщения которое будет посылатся в чат. Цвет можно сменить.
После COLOR_GREEN, идет само сообщение. Вы можете отредактировать его как пожелаете.
- Это фраза, которая будет посылаться на экраны игроков. Она должна быть всегда написана английскими буквами.
~g~ - Цвет фразы. (~r~ - красный, ~w~ - белый, ~y~ - желтый, ~b~ - синий, ~g~ - зеленый).
RESTART - Сама фраза. Не в зависимости какими буквами вы пишите (большими или маленькими) в игре, она всегда будет большими.
3000 - в миллисекундах как долго будет показана фраза. Время можно изменить на свой вкус.
Это означает, что в консоле сервера (в командной строке) выводится фраза "Происходит рестарт сервера", в случае рестарта.
Это означает, что при рестарте сервера, будут сохранены аккаунты, материалы, ганг зоны. Также можно добавить, сохранение домов, бизнесов и т.д
----------------------------------------------
format(string, sizeof(string) - Означает, что сообщение будет выводится всем игрокам.
COLOR_YELLOW - Цвет сообщения, можно изменить на свой вкус.
Это таймер.
300000 - Это показано в миллисекундах, через сколько начнется гонка. Можно изменить на свой вкус.
StartGonkatwo - Написано, что начнется через 300 секунд. На RLS модах, обычно гонки подписаны как StartGonkatwo.
----------------------------------------------
На этом всё. Пеинтболл и вторые гонки рассписывать не буду. Так как они точно такие же как и первые гонки, только немного другие.
Инструкция создана исключительно для новичков.
PHP:
else if(strcmp(cmd, "/admpanel", true) == 0)
Например, на команду /test1
Тогда строка должна выглядеть так
PHP:
else if(strcmp(cmd, "/test1", true) == 0)
Или же, если вы желаете, чтобы команда вызывалась и на /admpanel и, например, на /test1, то замените строчку
PHP:
else if(strcmp(cmd, "/admpanel", true) == 0)
PHP:
else if(strcmp(cmd, "/admpanel", true) == 0 || strcmp(cmd, "/test1", true)
PHP:
if(PlayerInfo[playerid][pAdmin] >= 2)
Также вы можете изменить так
PHP:
if(PlayerInfo[playerid][pAdmin] == 2)
pAdmin - это проверка. Тоисть, это значит, что команду могут вызывать только администраторы.
----------------------------------------------
PHP:
new listitems[]
----------------------------------------------
PHP:
ShowPlayerDialog(playerid, 9500, DIALOG_STYLE_LIST, "Админ панель", listitems, "Выбрать", "Закрыть");
9500 - это ид действий.
"Админ панель" - название диалога в самом верху.
----------------------------------------------
Теперь переходим к case'у 9500. От case зависит, что будет делать каждая кнопка в меню.
PHP:
ReklamaTimer();
PHP:
reklamatimer = SetTimer("ReklamaTimer",1200000,1);
1200000 - Указано время в миллисекундах, через которое будет вызываться объявление.
1 - это кол-во объявлений за заданое время.
Таймер никак не влияет на мою команду.
----------------------------------------------
PHP:
PayDay();
В RLS моде стоит таймер на вызов PayDay'я каждый час.
----------------------------------------------
PHP:
for(new i = 0; i < 300; i++)
SendClientMessageToAll(COLOR_GREY," ");
PHP:
(new i = 0; i < 300; i++)
Если вы ещё желаете, чтобы у игроков писалось, что чат очищен, то добавьте
PHP:
SendClientMessageToAll(COLOR_LIME,"Чат очищен");
PHP:
SendClientMessageToAll(COLOR_GREY," ");
PHP:
case 2:
{
for(new i = 0; i < 300; i++)
SendClientMessageToAll(COLOR_GREY," ");
SendClientMessageToAll(COLOR_LIME,"Чат очищен");
}
Теперь разберем рестарт сервера.
PHP:
SendClientMessageToAll(COLOR_GREEN,"Происходит рестарт сервера. Рестарт займет меньше 10 секунд. {ffffff}Приносим свои извенения.");
format(string, sizeof(string), "~g~RESTART");
for(new i = 0; i < MAX_PLAYERS; i++)
{
new txtid;
GameTextForPlayer(i, string, 3000, txtid);
}
printr("Происходит рестарт сервера.");
SaveAccounts();
SaveMaterials();
SaveGZ();
OnPropUpdate();
OnPlayerUpdateRL(playerid);
GameModeExitFunc();
format(string, sizeof(string), "~g~RESTART");
PHP:
SendClientMessageToAll(COLOR_GREEN,"Происходит рестарт сервера. Рестарт займет меньше 10 секунд. {ffffff}Приносим свои извенения.");
COLOR_GREEN - Цвет сообщения которое будет посылатся в чат. Цвет можно сменить.
После COLOR_GREEN, идет само сообщение. Вы можете отредактировать его как пожелаете.
PHP:
format(string, sizeof(string), "~g~RESTART");
~g~ - Цвет фразы. (~r~ - красный, ~w~ - белый, ~y~ - желтый, ~b~ - синий, ~g~ - зеленый).
RESTART - Сама фраза. Не в зависимости какими буквами вы пишите (большими или маленькими) в игре, она всегда будет большими.
PHP:
GameTextForPlayer(i, string, 3000, txtid);
PHP:
printr("Происходит рестарт сервера.");
PHP:
SaveAccounts();
SaveMaterials();
SaveGZ();
----------------------------------------------
PHP:
case 4:
{
format(string, sizeof(string), "Внимание! Начало гонок через 5 минут. Трасса: 'Пыль и Песок'. Регистрация у Аэропорта Лос - Сантос");
OOCOff(COLOR_YELLOW,string);
SetTimer("StartGonkatwo", 300000, 0);
EndingKartRound = 0;
}
COLOR_YELLOW - Цвет сообщения, можно изменить на свой вкус.
PHP:
SetTimer("StartGonkatwo", 300000, 0);
300000 - Это показано в миллисекундах, через сколько начнется гонка. Можно изменить на свой вкус.
StartGonkatwo - Написано, что начнется через 300 секунд. На RLS модах, обычно гонки подписаны как StartGonkatwo.
----------------------------------------------
На этом всё. Пеинтболл и вторые гонки рассписывать не буду. Так как они точно такие же как и первые гонки, только немного другие.
Инструкция создана исключительно для новичков.
Если вам понравилась моя работа или же не понравилась, то просьба поставить оценку на сколько вам понравилась моя работа.
Чтобы поставить оценку, над темой нажмите на кнопку "Оценка этой темы" и выбирите балл от 1-го (Ужасно) до 5-ти (Отлично).
Чтобы поставить оценку, над темой нажмите на кнопку "Оценка этой темы" и выбирите балл от 1-го (Ужасно) до 5-ти (Отлично).
Постепенно буду обновлять спойлер "Помощь новичкам". Спасибо за внимание!!
Последнее редактирование:
