Описание в самом конце.
В начало мода:
PHP код:
enum srInfo
{
srName[32],
srSite[32],
srAdmin[24]
}
new ServerInfo[srInfo];
в конец мода или в любое свободное место
PHP код:
forward LoadServerInfo();
public LoadServerInfo()
{
cache_get_field_content(0, "Name",CarsInfo[srName],connects,32);
cache_get_field_content(0, "Site",CarsInfo[srSite],connects,32);
cache_get_field_content(0, "Admin",CarsInfo[srAdmin],connects,24);
printf("[ Загрузка ... ] Данные о сервере успешно загружены.");
return true;
}
в OnGameModeInit
PHP код:
mysql_function_query(connects,"SELECT * FROM `serverinfo`",true,"LoadServerInfo","");
к Командам
PHP код:
CMD:sredit(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 6) return SendClientMessage(playerid, COLOR_WHITE, "[!] Вы не администратор."); // меняете на свою проверку
return ShowPlayerDialog(playerid,8001,DIALOG_STYLE_LIST,"{FFCC00}Редактирование сервера","Изменить название сервера\nИзменить название сайта\nИзменить администратора", "Далее", "Закрыть");
}
к Диалогам
PHP код:
case 8001:
{
if(!response) return true;
switch(listitem)
{
case 0:
{
ShowPlayerDialog(playerid, 8002, DIALOG_STYLE_INPUT, "{FFCC00}Изменить название сервера", "Введите новое название сервера", "Сменить", "Закрыть");
}
case 1:
{
ShowPlayerDialog(playerid, 8003, DIALOG_STYLE_INPUT, "{FFCC00}Изменить название сайта", "Введите новое сайта сервера", "Сменить", "Закрыть");
}
case 2:
{
ShowPlayerDialog(playerid, 8004, DIALOG_STYLE_INPUT, "{FFCC00}Изменить администратора", "Введите имя нового Гл.администратора", "Сменить", "Закрыть");
}
}
}
case 8002:
{
if(!response) return true;
SetString(ServerInfo[srName],inputtext);
format(string, 81, "UPDATE `serverinfo` SET `Name` = '%s'", inputtext);
mysql_function_query(connects, string, false, "", "");
}
case 8003:
{
if(!response) return true;
SetString(ServerInfo[srSite],inputtext);
format(string, 81, "UPDATE `serverinfo` SET `Site` = '%s'", inputtext);
mysql_function_query(connects, string, false, "", "");
}
case 8004:
{
if(!response) return true;
SetString(ServerInfo[srAdmin],inputtext);
format(string, MAX_PLAYER_NAME+32, "UPDATE `serverinfo` SET `Admin` = '%s'", inputtext);
mysql_function_query(connects, string, false, "", "");
}
SQL запрос
PHP код:
CREATE TABLE IF NOT EXISTS `serverinfo` (
`Name` varchar(32) NOT NULL,
`Site` varchar(32) NOT NULL,
`Admin` varchar(24) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
INSERT INTO `serverinfo` (`Name`, `Site`, `Admin`) VALUES
('Server Role Play', 'www.sitename.ru', 'Jason_Carter');
В конец мода или в любое другое место.
PHP код:
stock SetName()
{
new chName, string[64];
switch(chName)
{
case 0:
{
format(string,44,"hostname %s | Client: 0.3.7",ServerInfo[srName]);
SendRconCommand(string);
chName++;
}
case 1:
{
format(string,46,"hostname Форум/сайт сервера: %s",ServerInfo[srSite]); //уже на свое усмотрение пишите.
SendRconCommand(string);
chName=0;
}
}
}
К таймерам добавьте следующее чтобы обновлять название.
Пример использования:
PHP код:
SendClientMessageToAll(COLOR_LIGHTBLUE,"_________________________________________________________________");
SendClientMessageToAll(COLOR_WHITE,"Используйте {FF9900}/report{FFFFFF} для связи с администрацией");
SendClientMessageToAll(COLOR_WHITE,"Список свободных/занятых лидерок: {FF9900}/leaders");
SendClientMessageToAll(COLOR_WHITE,"Ваш верный путеводитель по серверу: {FF9900}/mm");
format(string,72,"Сайт нашего сервера: {FF0000}%s",ServerInfo[srSite]);
SendClientMessageToAll(COLOR_WHITE,string);
format(string,64,"Главный администратор: {FF0000}%s",ServerInfo[srAdmin]);
SendClientMessageToAll(COLOR_WHITE,string);
SendClientMessageToAll(COLOR_LIGHTBLUE,"_________________________________________________________________");
Если у кого то будут ошибки на SetString вставьте то что ниже в начало мода, у кого нету ошибок на эту функцию, значит данная функция уже есть в вашем моде.
PHP код:
#define SetString(%0,%1) (strmid(%0,%1,0,strlen(%1),255))
Вам только осталось изменить название вашего Сервера на переменную ServerInfo[srName], так как теперь она будет содержать название сервера и в любой момент вы сможете изменить это. Надеюсь вы поняли в чем суть системы, вам больше не придется изменять название сервера через pwn.
Автор: #Jason