Здравствуйте уважаемые пользователи портала.
Сегодня решил сделать для вас систему интернета.
Примечание: у системы интернета, которая будет описана ниже, есть несколько зависимостей от плагинов/инклудов:
MySQL R41-2+
Командный процессор (Pawn.CMD / DC_CMD / etc.)
CRP
Извиняйте за текстдравы, я не Бог в их рисовании(
И так, приступим.
Первоначально, в enum игрока (PlayerInfo, pData, PI...) добавляем pWeb.
pWeb - При создании сайта, игроку присваивается его ID.
Также, создаём таблицу в вашей базе данных:
PHP код:
CREATE TABLE IF NOT EXISTS `sites` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Domain` varchar(14) NOT NULL,
`Owner` varchar(24) NOT NULL,
`Info1` varchar(124) NOT NULL,
`Info2` varchar(124) NOT NULL,
`Info3` varchar(124) NOT NULL,
`Info4` varchar(124) NOT NULL,
`Header` varchar(15) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
1. Ко всем переменным:
PHP код:
new
PlayerText:t_player_WebSite[MAX_PLAYERS][6],
Text:t_WebSite[6];
new
gDomain[MAX_PLAYERS][14],
gFirstString[MAX_PLAYERS][144],
gSecondString[MAX_PLAYERS][144],
gThirdString[MAX_PLAYERS][144],
gFourthString[MAX_PLAYERS][144];
2. Ко всем enum:
PHP код:
enum
{
DLG_SHOW_FUNC_LIST = 1, /*замените на свободный ID диалога*/
DLG_FIND_WEB_SITE,
DLG_CREATE_WEB_SITE,
DLG_CREATE_STRING_1,
DLG_CREATE_STRING_2,
DLG_CREATE_STRING_3,
DLG_CREATE_STRING_4,
DLG_CREATE_HEADER,
DLG_SHOW_SETTINGS,
DLG_EDIT_HEADER,
DLG_EDIT_LINE,
DLG_SHOW_LIST
};
3. В коллбэк OnGameModeInit:
PHP код:
t_WebSite[0] = TextDrawCreate(543.610229, 36.500000, "usebox");
TextDrawLetterSize(t_WebSite[0], 0.000000, 38.292018);
TextDrawTextSize(t_WebSite[0], 86.550506, 0.000000);
TextDrawAlignment(t_WebSite[0], 1);
TextDrawColor(t_WebSite[0], 255);
TextDrawUseBox(t_WebSite[0], true);
TextDrawBoxColor(t_WebSite[0], 255);
TextDrawSetShadow(t_WebSite[0], 0);
TextDrawSetOutline(t_WebSite[0], 0);
TextDrawFont(t_WebSite[0], 1);
TextDrawSetSelectable(t_WebSite[0], true);
t_WebSite[1] = TextDrawCreate(113.508087, 47.583343, "usebox");
TextDrawLetterSize(t_WebSite[1], 0.000000, -0.090189);
TextDrawTextSize(t_WebSite[1], 94.515380, 0.000000);
TextDrawAlignment(t_WebSite[1], 1);
TextDrawColor(t_WebSite[1], 0);
TextDrawUseBox(t_WebSite[1], true);
TextDrawBoxColor(t_WebSite[1], -1);
TextDrawSetShadow(t_WebSite[1], 0);
TextDrawSetOutline(t_WebSite[1], 0);
TextDrawFont(t_WebSite[1], 1);
t_WebSite[2] = TextDrawCreate(113.571044, 55.583343, "usebox");
TextDrawLetterSize(t_WebSite[2], 0.000000, -0.137042);
TextDrawTextSize(t_WebSite[2], 94.515380, 0.000000);
TextDrawAlignment(t_WebSite[2], 1);
TextDrawColor(t_WebSite[2], 0);
TextDrawUseBox(t_WebSite[2], true);
TextDrawBoxColor(t_WebSite[2], -1);
TextDrawSetShadow(t_WebSite[2], 0);
TextDrawSetOutline(t_WebSite[2], 0);
TextDrawFont(t_WebSite[2], 0);
t_WebSite[3] = TextDrawCreate(113.634002, 63.000007, "usebox");
TextDrawLetterSize(t_WebSite[3], 0.000000, -0.137042);
TextDrawTextSize(t_WebSite[3], 94.515380, 0.000000);
TextDrawAlignment(t_WebSite[3], 1);
TextDrawColor(t_WebSite[3], 0);
TextDrawUseBox(t_WebSite[3], true);
TextDrawBoxColor(t_WebSite[3], -1);
TextDrawSetShadow(t_WebSite[3], 0);
TextDrawSetOutline(t_WebSite[3], 0);
TextDrawFont(t_WebSite[3], 0);
t_WebSite[4] = TextDrawCreate(543.610351, 37.083335, "usebox");
TextDrawLetterSize(t_WebSite[4], 0.000000, 1.757407);
TextDrawTextSize(t_WebSite[4], 522.743652, 0.000000);
TextDrawAlignment(t_WebSite[4], 1);
TextDrawColor(t_WebSite[4], 0);
TextDrawUseBox(t_WebSite[4], true);
TextDrawBoxColor(t_WebSite[4], -2147483393);
TextDrawSetShadow(t_WebSite[4], 0);
TextDrawSetOutline(t_WebSite[4], 0);
TextDrawFont(t_WebSite[4], 0);
t_WebSite[5] = TextDrawCreate(528.960510, 36.750000, "X");
TextDrawLetterSize(t_WebSite[5], 0.377847, 1.547499);
TextDrawTextSize(t_WebSite[5], 537.862426, 61.249988);
TextDrawAlignment(t_WebSite[5], 1);
TextDrawColor(t_WebSite[5], -1);
TextDrawUseBox(t_WebSite[5], true);
TextDrawBoxColor(t_WebSite[5], 0);
TextDrawSetShadow(t_WebSite[5], 0);
TextDrawSetOutline(t_WebSite[5], 1);
TextDrawBackgroundColor(t_WebSite[5], 51);
TextDrawFont(t_WebSite[5], 2);
TextDrawSetProportional(t_WebSite[5], 1);
TextDrawSetSelectable(t_WebSite[5], true);
4. В коллбэк OnPlayerClickTextDraw:
PHP код:
if(clickedid == t_WebSite[5])
{
TextDrawHideForPlayer(playerid, t_WebSite[0]);
TextDrawHideForPlayer(playerid, t_WebSite[1]);
TextDrawHideForPlayer(playerid, t_WebSite[2]);
TextDrawHideForPlayer(playerid, t_WebSite[3]);
TextDrawHideForPlayer(playerid, t_WebSite[4]);
TextDrawHideForPlayer(playerid, t_WebSite[5]);
PlayerTextDrawHide(playerid, t_player_WebSite[playerid][0]);
PlayerTextDrawHide(playerid, t_player_WebSite[playerid][1]);
PlayerTextDrawHide(playerid, t_player_WebSite[playerid][2]);
PlayerTextDrawHide(playerid, t_player_WebSite[playerid][3]);
PlayerTextDrawHide(playerid, t_player_WebSite[playerid][4]);
PlayerTextDrawHide(playerid, t_player_WebSite[playerid][5]);
PlayerTextDrawDestroy(playerid, t_player_WebSite[playerid][0]);
PlayerTextDrawDestroy(playerid, t_player_WebSite[playerid][1]);
PlayerTextDrawDestroy(playerid, t_player_WebSite[playerid][2]);
PlayerTextDrawDestroy(playerid, t_player_WebSite[playerid][3]);
PlayerTextDrawDestroy(playerid, t_player_WebSite[playerid][4]);
PlayerTextDrawDestroy(playerid, t_player_WebSite[playerid][5]);
CancelSelectTextDraw(playerid);
cmd::internet(playerid);
}
5. В коллбэк OnDialogResponse:
PHP код:
case DLG_SHOW_FUNC_LIST:
{
if(0 == response)
return true;
switch(listitem)
{
case 0: ShowPlayerDialog(playerid, DLG_FIND_WEB_SITE, DIALOG_STYLE_INPUT, "Найти сайт", "Введите домен сайта", "Далее", "Отмена");
case 1:
{
if(/*PlayerInfo[playerid][pWeb]*/)
return SendClientMessage(playerid, -1, "У вас уже есть свой WEB сайт!");
ShowPlayerDialog(playerid, DLG_CREATE_WEB_SITE, DIALOG_STYLE_INPUT, "ownsite.net", "Хотите создать свой собственный сайт для бизнеса или личного блога?\nТогда вы попали по нужному адресу.\n\nЭто займёт всего пару минут.\nГотовы? Тогда впишите домен вашего сайта в строку!\nПример: pawno-info.ru, vk.com.", "Далее", "Отмена");
}
case 2:
{
if(!/*PlayerInfo[playerid][pWeb]*/)
return SendClientMessage(playerid, -1, "У вас нет своего WEB сайта!");
ShowPlayerDialog(playerid, DLG_SHOW_SETTINGS, DIALOG_STYLE_LIST, "Найстройки сайта", "1. Изменить линию 1\n2. Изменить линию 2\n3. Изменить линию 3\n4. Изменить линию 4\nИзменить заголовок сайта", "Далее", "Отмена");
}
}
}
case DLG_SHOW_SETTINGS:
{
if(0 == response)
return true;
if((0 <= listitem <= 3))
return ShowPlayerDialog(playerid, DLG_EDIT_LINE, DIALOG_STYLE_INPUT, "Новый текст", "Введите новый текст для линии", "Далее", "Отмена"), SetPVarInt(playerid, "listitem", listitem);
ShowPlayerDialog(playerid, DLG_EDIT_HEADER, DIALOG_STYLE_INPUT, "Новый заголовок", "Введите новый заголовок", "Далее", "Отмена");
}
case DLG_EDIT_LINE:
{
if(0 == response)
return true;
if(!(5 <= strlen(inputtext) <= 144))
return SendClientMessage(playerid, -1, !"Не меньше 5 и не больше 144 символов!");
new
query[46+144+11];
format(query, sizeof query, "UPDATE `sites` SET `Info%d` = '%s' WHERE `ID` = '%d'", GetPVarInt(playerid, "listitem")+1, inputtext, /*PlayerInfo[playerid][pWeb]*/);
mysql_query(/*ID подключения к MySQL*/, query, false);
SendClientMessage(playerid, -1, "Линия успешно изменена!");
DeletePVar(playerid, "listitem");
}
case DLG_EDIT_HEADER:
{
if(0 == response)
return true;
if(!(5 <= strlen(inputtext) <= 15))
return SendClientMessage(playerid, -1, !"Не меньше 5 и не больше 15 символов!");
new
query[48+26];
format(query, sizeof query, "UPDATE `sites` SET `Header` = '%s' WHERE `ID` = '%d'", inputtext, /*PlayerInfo[playerid][pWeb]*/);
mysql_query(/*ID подключения к MySQL*/, query, false);
SendClientMessage(playerid, -1, "заголовок успешно измененён!");
}
case DLG_FIND_WEB_SITE:
{
if(0 == response)
return true;
if(!(6 <= strlen(inputtext) <= 14))
return SendClientMessage(playerid, -1, !"Неверно введён домен.");
new
query[56];
format(query, sizeof query, "SELECT * FROM `sites` WHERE `Domain` = '%s'", inputtext);
mysql_tquery(/*ID подключения к MySQL*/, query, "@__FindWebSite", "ds", playerid, inputtext);
}
case DLG_CREATE_WEB_SITE:
{
if(0 == response)
return true;
// if(strfind(inputtext, ".com", true) == -1 || strfind(inputtext, ".ru", true) == -1 || strfind(inputtext, ".net", true) == -1)
// return SendClientMessage(playerid, -1, "Не верно введён домен. (.com, .ru, .net)");
if(!(6 <= strlen(inputtext) <= 14))
return SendClientMessage(playerid, -1, !"Неверно введён домен.");
new
query[42+14];
new
Cache:sql_query;
format(query, sizeof query, "SELECT * FROM `sites` WHERE `Domain` = '%s'", inputtext);
sql_query = mysql_query(/*ID подключения к MySQL*/, query, true);
if(cache_num_rows() > 0)
return SendClientMessage(playerid, -1, !"Данный домен уже занят!");
cache_delete(sql_query);
gDomain[playerid][0] = EOS;
strcat(gDomain[playerid], inputtext, 14);
ShowPlayerDialog(playerid, DLG_CREATE_STRING_1, DIALOG_STYLE_INPUT, "ownsite.net", "Отлично, вы выбрали домен! Теперь надо настроить информацию.\nВсего на сайте можно разместить 4 строки по 128 символов.\nВведите текст первой строки.", "Далее", "Отмена");
}
case DLG_CREATE_STRING_1:
{
if(0 == response)
return true;
if(!(5 <= strlen(inputtext) <= 144))
return SendClientMessage(playerid, -1, !"Не меньше 5 и не больше 144 символов!");
gFirstString[playerid][0] = EOS;
strcat(gFirstString[playerid], inputtext, 144);
ShowPlayerDialog(playerid, DLG_CREATE_STRING_2, DIALOG_STYLE_INPUT, "ownsite.net", "Отлично, вы ввели текст первой строки!\nВведите текст второй строки.", "Далее", "Отмена");
}
case DLG_CREATE_STRING_2:
{
if(0 == response)
return true;
if(!(5 <= strlen(inputtext) <= 144))
return SendClientMessage(playerid, -1, !"Не меньше 5 и не больше 144 символов!");
gSecondString[playerid][0] = EOS;
strcat(gSecondString[playerid], inputtext, 144);
ShowPlayerDialog(playerid, DLG_CREATE_STRING_3, DIALOG_STYLE_INPUT, "ownsite.net", "Отлично, вы ввели текст втророй строки!\nВведите текст третей строки.", "Далее", "Отмена");
}
case DLG_CREATE_STRING_3:
{
if(0 == response)
return true;
if(!(5 <= strlen(inputtext) <= 144))
return SendClientMessage(playerid, -1, !"Не меньше 5 и не больше 144 символов!");
gThirdString[playerid][0] = EOS;
strcat(gThirdString[playerid], inputtext, 144);
ShowPlayerDialog(playerid, DLG_CREATE_STRING_4, DIALOG_STYLE_INPUT, "ownsite.net", "Отлично, вы ввели текст третей строки!\nВведите текст четвёртой строки.", "Далее", "Отмена");
}
case DLG_CREATE_STRING_4:
{
if(0 == response)
return true;
if(!(5 <= strlen(inputtext) <= 144))
return SendClientMessage(playerid, -1, !"Не меньше 5 и не больше 144 символов!");
gFourthString[playerid][0] = EOS;
strcat(gFourthString[playerid], inputtext, 144);
ShowPlayerDialog(playerid, DLG_CREATE_HEADER, DIALOG_STYLE_INPUT, "ownsite.net", "Отлично, вы ввели текст четвёртой строки\nВведите заголовок для сайта", "Далее", "Отмена");
}
case DLG_CREATE_HEADER:
{
if(0 == response)
return true;
ShowPlayerDialog(playerid, DLG_SHOW_LIST, DIALOG_STYLE_MSGBOX, "ownsite.net", "Отлично, ваш сайт полностью готов и оформлен!\nПридётся подождать, пока обновятся DNS записи и сайт станет доступен.", "Далее", "Отмена");
new
query[152+MAX_PLAYER_NAME+144*4];
format(query, sizeof(query), "INSERT INTO `sites` (`Domain`, `Owner`, `Info1`, `Info2`, `Info3`, `Info4`, `Header`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')", gDomain[playerid], /*Перменная, которая хранит NickName игрока*/, gFirstString[playerid], gSecondString[playerid], gThirdString[playerid], gFourthString[playerid], inputtext);
mysql_query(/*ID подключения к MySQL*/, query, false);
new
Cache:sql_query;
format(query, sizeof query, "SELECT * FROM `sites` WHERE `Owner` = '%s'", /*Перменная, которая хранит NickName игрока*/);
sql_query = mysql_query(/*ID подключения к MySQL*/, query, true);
if(cache_num_rows() > 0) cache_get_value_name_int(0, "ID", /*PlayerInfo[playerid][pWeb]*/);
/*тут делаем ваше сохранение ID веб сайта*/
cache_delete(sql_query);
}
case DLG_SHOW_LIST: cmd::internet(playerid);
6. Ко всем коллбэкам:
PHP код:
@__FindWebSite(playerid, site[]);
@__FindWebSite(playerid, site[])
{
new
rows;
cache_get_row_count(rows);
if(!rows)
return SendClientMessage(playerid, -1, !"Данный WEB ресурс не найден!");
new
gHeader[15];
cache_get_value_name(0, "Info1", gFirstString[playerid], 144);
cache_get_value_name(0, "Info2", gSecondString[playerid], 144);
cache_get_value_name(0, "Info3", gThirdString[playerid], 144);
cache_get_value_name(0, "Info4", gFourthString[playerid], 144);
cache_get_value_name(0, "Header", gHeader, 15);
t_player_WebSite[playerid][0] = CreatePlayerTextDraw(playerid, 432.444671, 364.583404, ".");
PlayerTextDrawLetterSize(playerid, t_player_WebSite[playerid][0], 0.331464, 1.168333);
PlayerTextDrawAlignment(playerid, t_player_WebSite[playerid][0], 1);
PlayerTextDrawColor(playerid, t_player_WebSite[playerid][0], -1);
PlayerTextDrawSetShadow(playerid, t_player_WebSite[playerid][0], 0);
PlayerTextDrawSetOutline(playerid, t_player_WebSite[playerid][0], 1);
PlayerTextDrawBackgroundColor(playerid, t_player_WebSite[playerid][0], 51);
PlayerTextDrawFont(playerid, t_player_WebSite[playerid][0], 2);
PlayerTextDrawSetProportional(playerid, t_player_WebSite[playerid][0], 1);
t_player_WebSite[playerid][1] = CreatePlayerTextDraw(playerid, 241.288269, 110.833335, ".");
PlayerTextDrawLetterSize(playerid, t_player_WebSite[playerid][1], 0.409238, 1.535833);
PlayerTextDrawTextSize(playerid, t_player_WebSite[playerid][1], 385.124389, -36.166664);
PlayerTextDrawAlignment(playerid, t_player_WebSite[playerid][1], 1);
PlayerTextDrawColor(playerid, t_player_WebSite[playerid][1], -1);
PlayerTextDrawSetShadow(playerid, t_player_WebSite[playerid][1], 0);
PlayerTextDrawSetOutline(playerid, t_player_WebSite[playerid][1], 1);
PlayerTextDrawBackgroundColor(playerid, t_player_WebSite[playerid][1], 51);
PlayerTextDrawFont(playerid, t_player_WebSite[playerid][1], 2);
PlayerTextDrawSetProportional(playerid, t_player_WebSite[playerid][1], 1);
t_player_WebSite[playerid][2] = CreatePlayerTextDraw(playerid, 211.771560, 167.999969, ".");
PlayerTextDrawLetterSize(playerid, t_player_WebSite[playerid][2], 0.247130, 1.308333);
PlayerTextDrawAlignment(playerid, t_player_WebSite[playerid][2], 1);
PlayerTextDrawColor(playerid, t_player_WebSite[playerid][2], -1);
PlayerTextDrawSetShadow(playerid, t_player_WebSite[playerid][2], 0);
PlayerTextDrawSetOutline(playerid, t_player_WebSite[playerid][2], 1);
PlayerTextDrawBackgroundColor(playerid, t_player_WebSite[playerid][2], 51);
PlayerTextDrawFont(playerid, t_player_WebSite[playerid][2], 1);
PlayerTextDrawSetProportional(playerid, t_player_WebSite[playerid][2], 1);
t_player_WebSite[playerid][3] = CreatePlayerTextDraw(playerid, 211.834518, 209.833297, ".");
PlayerTextDrawLetterSize(playerid, t_player_WebSite[playerid][3], 0.247130, 1.308333);
PlayerTextDrawAlignment(playerid, t_player_WebSite[playerid][3], 1);
PlayerTextDrawColor(playerid, t_player_WebSite[playerid][3], -1);
PlayerTextDrawSetShadow(playerid, t_player_WebSite[playerid][3], 0);
PlayerTextDrawSetOutline(playerid, t_player_WebSite[playerid][3], 1);
PlayerTextDrawBackgroundColor(playerid, t_player_WebSite[playerid][3], 51);
PlayerTextDrawFont(playerid, t_player_WebSite[playerid][3], 1);
PlayerTextDrawSetProportional(playerid, t_player_WebSite[playerid][3], 1);
t_player_WebSite[playerid][4] = CreatePlayerTextDraw(playerid, 212.365997, 253.416625, ".");
PlayerTextDrawLetterSize(playerid, t_player_WebSite[playerid][4], 0.247130, 1.308333);
PlayerTextDrawAlignment(playerid, t_player_WebSite[playerid][4], 1);
PlayerTextDrawColor(playerid, t_player_WebSite[playerid][4], -1);
PlayerTextDrawSetShadow(playerid, t_player_WebSite[playerid][4], 0);
PlayerTextDrawSetOutline(playerid, t_player_WebSite[playerid][4], 1);
PlayerTextDrawBackgroundColor(playerid, t_player_WebSite[playerid][4], 51);
PlayerTextDrawFont(playerid, t_player_WebSite[playerid][4], 1);
PlayerTextDrawSetProportional(playerid, t_player_WebSite[playerid][4], 1);
t_player_WebSite[playerid][5] = CreatePlayerTextDraw(playerid, 212.428955, 299.333282, ".");
PlayerTextDrawLetterSize(playerid, t_player_WebSite[playerid][5], 0.247130, 1.308333);
PlayerTextDrawAlignment(playerid, t_player_WebSite[playerid][5], 1);
PlayerTextDrawColor(playerid, t_player_WebSite[playerid][5], -1);
PlayerTextDrawSetShadow(playerid, t_player_WebSite[playerid][5], 0);
PlayerTextDrawSetOutline(playerid, t_player_WebSite[playerid][5], 1);
PlayerTextDrawBackgroundColor(playerid, t_player_WebSite[playerid][5], 51);
PlayerTextDrawFont(playerid, t_player_WebSite[playerid][5], 1);
PlayerTextDrawSetProportional(playerid, t_player_WebSite[playerid][5], 1);
if(strlen(gFirstString[playerid]) > 50) strins(gFirstString[playerid], "~n~", 51);
if(strlen(gFirstString[playerid]) > 104) strins(gFirstString[playerid], "~n~", 100);
if(strlen(gSecondString[playerid]) > 50) strins(gSecondString[playerid], "~n~", 51);
if(strlen(gSecondString[playerid]) > 104) strins(gSecondString[playerid], "~n~", 100);
if(strlen(gThirdString[playerid]) > 50) strins(gThirdString[playerid], "~n~", 51);
if(strlen(gThirdString[playerid]) > 104) strins(gThirdString[playerid], "~n~", 100);
if(strlen(gFourthString[playerid]) > 50) strins(gFourthString[playerid], "~n~", 51);
if(strlen(gFourthString[playerid]) > 104) strins(gFourthString[playerid], "~n~", 100);
PlayerTextDrawSetString(playerid, t_player_WebSite[playerid][0], site);
PlayerTextDrawSetString(playerid, t_player_WebSite[playerid][1], gHeader);
PlayerTextDrawSetString(playerid, t_player_WebSite[playerid][2], gFirstString[playerid]);
PlayerTextDrawSetString(playerid, t_player_WebSite[playerid][3], gSecondString[playerid]);
PlayerTextDrawSetString(playerid, t_player_WebSite[playerid][4], gThirdString[playerid]);
PlayerTextDrawSetString(playerid, t_player_WebSite[playerid][5], gFourthString[playerid]);
TextDrawShowForPlayer(playerid, t_WebSite[0]);
TextDrawShowForPlayer(playerid, t_WebSite[1]);
TextDrawShowForPlayer(playerid, t_WebSite[2]);
TextDrawShowForPlayer(playerid, t_WebSite[3]);
TextDrawShowForPlayer(playerid, t_WebSite[4]);
TextDrawShowForPlayer(playerid, t_WebSite[5]);
PlayerTextDrawShow(playerid, t_player_WebSite[playerid][0]);
PlayerTextDrawShow(playerid, t_player_WebSite[playerid][1]);
PlayerTextDrawShow(playerid, t_player_WebSite[playerid][2]);
PlayerTextDrawShow(playerid, t_player_WebSite[playerid][3]);
PlayerTextDrawShow(playerid, t_player_WebSite[playerid][4]);
PlayerTextDrawShow(playerid, t_player_WebSite[playerid][5]);
SelectTextDraw(playerid, 0xFFFFFFFF);
return true;
}
7. Ко всем командам:
PHP код:
CMD:internet(playerid) return ShowPlayerDialog(playerid, DLG_SHOW_FUNC_LIST, DIALOG_STYLE_LIST, "Интернет", "1. Найти сайт\n2. Создать сайт\n3. Редактировать сайт", "Далее", "Отмена");
Открыть/закрыть
При размещении на другие порталы, указывайте автора - #Djuga