Урок №54. [Бан чата игроку.] DM/TDM.
MaXMuT Дата: Четверг, 21.07.2011, 15:45:38 | Сообщение # 1
Группа: Пользователи
Сообщений: 90
Приветствую всех пользователей Сайта samp-pawno.ru . В этот раз Я покажу,как создать команду для бана чата игроку. В начале мода ставим: Code
enum pInfo { pBanchat }; new PlayerInfo[MAX_PLAYERS][pInfo]; //
Итак,дальше мы идём в паблик подключения,а точнее public OnPlayerConnect(playerid). И ставим Code
PlayerInfo[playerid][pBanchat] = 0;
После того,как у игрока установлен Бан чата,то он не может писать в чат,значит теперь идём в паблик OnPlayerText и ставим туда: Code
if(PlayerInfo[playerid][pBanchat] == 1) { SendClientMessage(playerid,0xAA3333AA,"Ban чата!"); return 0; }
Тоесть,игрок несможет писать в чат... Далее создаём команду "/banchat" Переходим в паблик OnPlayerCommandText(playerid, cmdtext[]) И туда ставим саму команду: Code
if (strcmp("/banchat", cmd, true) == 0 && PlayerInfo[playerid][pAdmin] >= 1)//Проверка на администратора { new giveplayerid, string[128]; tmp = strtok(cmdtext, idx); giveplayerid = strval(tmp); if(!strlen(tmp)) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: /banchat [ID]"); return 1; } if(!IsPlayerConnected(giveplayerid)) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Игрок Offline"); return 1; } if(PlayerInfo[giveplayerid][pAdmin] > PlayerInfo[playerid][pAdmin]) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Игрок имеет высший статус!"); return 1; } if(PlayerInfo[giveplayerid][pBanchat] == 1) { SendClientMessage(playerid, 0xFF0000AA, "Игрок уже заткнут!"); return 1; } format(string, sizeof(string), "%s выдал бан чата игроку %s .",GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid)); SendClientMessageToAll(0xFFFF00AA,string); PlayerInfo[giveplayerid][pBanchat] = 1; return 1; }
Естественно пригодится команда для разбана чата. Опять же в этом паблике ставим команду: Code
if (strcmp("/unbanchat", cmd, true) == 0 && PlayerInfo[playerid][pAdmin] >= 1) { new giveplayerid, string[128]; tmp = strtok(cmdtext, idx); giveplayerid = strval(tmp); if(!strlen(tmp)) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: /unbanchat [ID]"); return 1; } if(!IsPlayerConnected(giveplayerid)) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Игрок Offline"); return 1; } if(PlayerInfo[giveplayerid][pAdmin] > PlayerInfo[playerid][pAdmin]) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Игрок имеет высший статус!"); return 1; } if(PlayerInfo[giveplayerid][pBanchat] == 0) { SendClientMessage(playerid, 0xFF0000AA, "Игрок не заткнут!"); return 1; } format(string, sizeof(string), "%s снял бан чата у %s .",GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid)); SendClientMessageToAll(0xFFFF00AA,string); PlayerInfo[giveplayerid][pBanchat] = 0; return 1; }
в паблик OnPlayerRegister ставим: Code
ini_setInteger(pFile,"Banchat",0);
в паблик OnPlayerLogin ставим: Code
ini_getInteger(pFile,"Banchat",PlayerInfo[playerid][pBanchat]);
в Stock "stock LoadAccount(playerid) " Если он у вас имеется,ставим Code
ini_getInteger(pFile,"Banchat",PlayerInfo[playerid][pBanchat]);
и в ещё один Stock "stock SaveAccount(playerid) " - Сохранение аккаунт,ставим: Code
ini_setInteger(pFile,"Banchat",PlayerInfo[playerid][pBanchat]);
На этом наш урок оканчивается,задавайте вопросы в теме,если возникнут. Автор урока:Я Если был такой урок,прошу удалить его немедленно!
Вернулся на форум.Пишите в личу,если кому надо помочь по скриптенгу( только на форуме,в скайпе не помогаю )
Сообщение отредактировал MaXMuT - Четверг, 21.07.2011, 15:58:23
Сообщение Приветствую всех пользователей Сайта samp-pawno.ru . В этот раз Я покажу,как создать команду для бана чата игроку. В начале мода ставим: Code
enum pInfo { pBanchat }; new PlayerInfo[MAX_PLAYERS][pInfo]; //
Итак,дальше мы идём в паблик подключения,а точнее public OnPlayerConnect(playerid). И ставим Code
PlayerInfo[playerid][pBanchat] = 0;
После того,как у игрока установлен Бан чата,то он не может писать в чат,значит теперь идём в паблик OnPlayerText и ставим туда: Code
if(PlayerInfo[playerid][pBanchat] == 1) { SendClientMessage(playerid,0xAA3333AA,"Ban чата!"); return 0; }
Тоесть,игрок несможет писать в чат... Далее создаём команду "/banchat" Переходим в паблик OnPlayerCommandText(playerid, cmdtext[]) И туда ставим саму команду: Code
if (strcmp("/banchat", cmd, true) == 0 && PlayerInfo[playerid][pAdmin] >= 1)//Проверка на администратора { new giveplayerid, string[128]; tmp = strtok(cmdtext, idx); giveplayerid = strval(tmp); if(!strlen(tmp)) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: /banchat [ID]"); return 1; } if(!IsPlayerConnected(giveplayerid)) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Игрок Offline"); return 1; } if(PlayerInfo[giveplayerid][pAdmin] > PlayerInfo[playerid][pAdmin]) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Игрок имеет высший статус!"); return 1; } if(PlayerInfo[giveplayerid][pBanchat] == 1) { SendClientMessage(playerid, 0xFF0000AA, "Игрок уже заткнут!"); return 1; } format(string, sizeof(string), "%s выдал бан чата игроку %s .",GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid)); SendClientMessageToAll(0xFFFF00AA,string); PlayerInfo[giveplayerid][pBanchat] = 1; return 1; }
Естественно пригодится команда для разбана чата. Опять же в этом паблике ставим команду: Code
if (strcmp("/unbanchat", cmd, true) == 0 && PlayerInfo[playerid][pAdmin] >= 1) { new giveplayerid, string[128]; tmp = strtok(cmdtext, idx); giveplayerid = strval(tmp); if(!strlen(tmp)) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: /unbanchat [ID]"); return 1; } if(!IsPlayerConnected(giveplayerid)) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Игрок Offline"); return 1; } if(PlayerInfo[giveplayerid][pAdmin] > PlayerInfo[playerid][pAdmin]) { SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Игрок имеет высший статус!"); return 1; } if(PlayerInfo[giveplayerid][pBanchat] == 0) { SendClientMessage(playerid, 0xFF0000AA, "Игрок не заткнут!"); return 1; } format(string, sizeof(string), "%s снял бан чата у %s .",GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid)); SendClientMessageToAll(0xFFFF00AA,string); PlayerInfo[giveplayerid][pBanchat] = 0; return 1; }
в паблик OnPlayerRegister ставим: Code
ini_setInteger(pFile,"Banchat",0);
в паблик OnPlayerLogin ставим: Code
ini_getInteger(pFile,"Banchat",PlayerInfo[playerid][pBanchat]);
в Stock "stock LoadAccount(playerid) " Если он у вас имеется,ставим Code
ini_getInteger(pFile,"Banchat",PlayerInfo[playerid][pBanchat]);
и в ещё один Stock "stock SaveAccount(playerid) " - Сохранение аккаунт,ставим: Code
ini_setInteger(pFile,"Banchat",PlayerInfo[playerid][pBanchat]);
На этом наш урок оканчивается,задавайте вопросы в теме,если возникнут. Автор урока:Я Если был такой урок,прошу удалить его немедленно! Автор - MaXMuT Дата добавления - 21.07.2011 в 15:45:38
[MTA]MaPeR5518 Дата: Суббота, 13.08.2011, 13:57:27 | Сообщение # 2
Группа: Пользователи
Сообщений: 181
По моему это лишняя нагрузка на сервер Code
enum pInfo { pBanchat }; new PlayerInfo[MAX_PLAYERS][pInfo];
+ удобнее так Code
if(strcmp(cmd, "/mute", true) == 0) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level"); PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level"); tmp = strtok(cmdtext, idx); if(IsStringAName(tmp)) { giveplayerid = GetPlayerID(tmp); } else { giveplayerid = strval(tmp); } if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1) { SendClientMessage(playerid, COLOR_DBLUE, "SERVER: /mute [ID]"); return 1; } if(IsStringAName(tmp)) { giveplayerid = GetPlayerID(tmp); } else { giveplayerid = strval(tmp); } GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); if(PlayerInfo[playerid][pAdmin] >= 1) { if(IsPlayerConnected(giveplayerid)) { if(Mute[giveplayerid] == 0) { Mute[giveplayerid] = 1; } else { Mute[giveplayerid] = 0; SendClientMessageToAll(COLOR_BLUE, string); new PlayerName[30]; GetPlayerName(playerid, PlayerName, 30); } } else { format(string, sizeof(string), "Нет такого игрока!", giveplayerid); SendClientMessage(playerid, COLOR_RED, string); } } else { SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать эту команду!"); return 1; } return 1; }
Ничто не останавливает полет мысли программиста , как компилятор! + не помешает
Сообщение По моему это лишняя нагрузка на сервер Code
enum pInfo { pBanchat }; new PlayerInfo[MAX_PLAYERS][pInfo];
+ удобнее так Code
if(strcmp(cmd, "/mute", true) == 0) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level"); PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level"); tmp = strtok(cmdtext, idx); if(IsStringAName(tmp)) { giveplayerid = GetPlayerID(tmp); } else { giveplayerid = strval(tmp); } if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1) { SendClientMessage(playerid, COLOR_DBLUE, "SERVER: /mute [ID]"); return 1; } if(IsStringAName(tmp)) { giveplayerid = GetPlayerID(tmp); } else { giveplayerid = strval(tmp); } GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); if(PlayerInfo[playerid][pAdmin] >= 1) { if(IsPlayerConnected(giveplayerid)) { if(Mute[giveplayerid] == 0) { Mute[giveplayerid] = 1; } else { Mute[giveplayerid] = 0; SendClientMessageToAll(COLOR_BLUE, string); new PlayerName[30]; GetPlayerName(playerid, PlayerName, 30); } } else { format(string, sizeof(string), "Нет такого игрока!", giveplayerid); SendClientMessage(playerid, COLOR_RED, string); } } else { SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать эту команду!"); return 1; } return 1; }
Автор - [MTA]MaPeR5518 Дата добавления - 13.08.2011 в 13:57:27
Загрузка страницы, займет меньше минуты...
Статистика Форума
Последнии темы
Читаемые темы
Лучшие пользователи
Новые пользователи