chogovadze
Компетентный
Осмотр важных мест сервера
Приветствую, Создал новую систему и интересно ваше мнение на счёт кода, дайте советы что изменить что можно улучшить и так далее а так же я думаю хороший урок для начинающих скриптеров.
__________________________________________________ _
Видео:
__________________________________________________ _
И так начнём:
Для начала создаём новые переменные
__________________________________________________ _
Далее создаём пикап
Далее добавляем к нему функционал, то есть когда берем этот пикап появлялся диалоговое окно
Что бы найти куда добавить диалог нажимаем на: CTRL + F и пишем туда if(pickupid == далее туда вставляем наш диалог
P.s: 677 это номер диалога вы должны найти свободный диалог. Нажимаете CTRL + F далее case любой номер если не нашел то свободен если нашел то занят.
__________________________________________________ __
Дальше добавляем текстдрав
__________________________________________________ ___
Далее добавим функцию если игрок в диалоговом окне нажал на кнопку "ДА" либо "НЕТ"
_______________________________________________
Далее добавляем функционал кнопки NEXT:
Вот и весь код.
Текст писал что пришло сразу в голову так что можете редактировать.
P.s не русский так что могут быть грамматические ошибки.
Приветствую, Создал новую систему и интересно ваше мнение на счёт кода, дайте советы что изменить что можно улучшить и так далее а так же я думаю хороший урок для начинающих скриптеров.
__________________________________________________ _
Видео:
И так начнём:
Для начала создаём новые переменные
PHP:
new pichelp; // Пикап диалога для предложение обучения
new Text:TDn[3]; // Текстдрав
new helpstr[MAX_PLAYERS] = 1; // Страницы когда нажимаем кнопку ("NEXT")
Далее создаём пикап
PHP:
pichelp = CreateDynamicPickup(18631, 3, 1773.1788,-1898.2480,13.5514);
Что бы найти куда добавить диалог нажимаем на: CTRL + F и пишем туда if(pickupid == далее туда вставляем наш диалог
PHP:
if(pickupid == pichelp)
{
ShowPlayerDialog(playerid, 677, 0, "{FFCC00}Обзор сервера", "{FFFFFF}Вы желаете осмотреть все важные места штата?", "Да", "Нет");
}
__________________________________________________ __
Дальше добавляем текстдрав
PHP:
TDn[0] = TextDrawCreate(381.500000, 386.062500, "usebox");
TextDrawLetterSize(TDn[0], 0.000000, 4.058333);
TextDrawTextSize(TDn[0], 250.500000, 0.000000);
TextDrawAlignment(TDn[0], 1);
TextDrawColor(TDn[0], 0);
TextDrawUseBox(TDn[0], true);
TextDrawBoxColor(TDn[0], 741092607);
TextDrawSetShadow(TDn[0], 0);
TextDrawSetOutline(TDn[0], 0);
TextDrawFont(TDn[0], 0);
TDn[1] = TextDrawCreate(379.000000, 388.250000, "usebox");
TextDrawLetterSize(TDn[1], 0.000000, 3.570833);
TextDrawTextSize(TDn[1], 253.000000, 0.000000);
TextDrawAlignment(TDn[1], 1);
TextDrawColor(TDn[1], 0);
TextDrawUseBox(TDn[1], true);
TextDrawBoxColor(TDn[1], 102);
TextDrawSetShadow(TDn[1], 0);
TextDrawSetOutline(TDn[1], 0);
TextDrawFont(TDn[1], 0);
TDn[2] = TextDrawCreate(278.500000, 396.375000, "NEXT_>>");
TextDrawLetterSize(TDn[2], 0.449999, 1.600000);
TextDrawTextSize(TDn[2], 357.500000, 15.750000);
TextDrawAlignment(TDn[2], 1);
TextDrawColor(TDn[2], -1);
TextDrawUseBox(TDn[2], true);
TextDrawBoxColor(TDn[2], 520093696);
TextDrawSetShadow(TDn[2], 0);
TextDrawSetOutline(TDn[2], 1);
TextDrawBackgroundColor(TDn[2], 520093696);
TextDrawFont(TDn[2], 2);
TextDrawSetProportional(TDn[2], 1);
TextDrawSetSelectable(TDn[2], true);
Далее добавим функцию если игрок в диалоговом окне нажал на кнопку "ДА" либо "НЕТ"
PHP:
case 677:
{
if(!response) return 1;
TogglePlayerSpectating(playerid, 1);
SendClientMessage(playerid, COLOR_RED, "Автовокзал: {FFFFFF}На автовокзале находятся игроки у которых нет жилья а так же тут остановка автобусов.");
InterpolateCameraPos(playerid, 1822.485717, -1969.601074, 49.039348, 1822.381835, -1969.489135, 48.956157, 1000); // камера
InterpolateCameraLookAt(playerid, 1819.504150, -1966.376586, 46.649082, 1819.400268, -1966.264648, 46.565891, 1000); //камера
for(new i; i < 3; i++) TextDrawShowForPlayer(playerid, TDn[i]); // Включаем все текстдравы
SelectTextDraw(playerid, 0xFF4040AA); // Включаем кликабельность текстдрава
helpstr[playerid] = 2; // указываем страницу №2
return 1;
}
Далее добавляем функционал кнопки NEXT:
PHP:
if(clickedid == TDn[2])
{
if(helpstr[playerid] == 2)
{
InterpolateCameraPos(playerid, 1822.381835, -1969.489135, 48.956157, 1474.817260, -1652.779663, 102.970008, 3000);
InterpolateCameraLookAt(playerid, 1819.400268, -1966.264648, 46.565891, 1474.933227, -1657.018066, 100.320037, 3000);
helpstr[playerid] = 3;
SendClientMessage(playerid, COLOR_RED, "Мэрия: {FFFFFF}В мэрии вы сможете устроится на работу либо узнать любую информацию.");
return true;
}
if(helpstr[playerid] == 3)
{
InterpolateCameraPos(playerid, 1474.817260, -1652.779663, 102.970008, 1447.903320, -1726.964477, 32.496509, 3000);
InterpolateCameraLookAt(playerid, 1474.933227, -1657.018066, 100.320037, 1444.232910, -1723.776733, 31.327733, 3000);
SendClientMessage(playerid, COLOR_RED, "Банк: {FFFFFF}В банке вы сможете хранить свой деньги либо перевести на другой счёт.");
helpstr[playerid] = 4;
return true;
}
if(helpstr[playerid] == 4)
{
InterpolateCameraPos(playerid, 1447.903320, -1726.964477, 32.496509, 1469.320922, -1675.127197, 87.748100, 3000);
InterpolateCameraLookAt(playerid, 1444.232910, -1723.776733, 31.327733, 1473.479614, -1675.337280, 84.980209, 3000);
SendClientMessage(playerid, COLOR_RED, "Полиция: {FFFFFF}В полиции арестованы преступники, а так же вы сможете внести залог.");
helpstr[playerid] = 5;
return true;
}
if(helpstr[playerid] == 5)
{
InterpolateCameraPos(playerid, 1469.320922, -1675.127197, 87.748100, 528.857116, -1248.191528, 50.745262, 2000);
InterpolateCameraLookAt(playerid, 1473.479614, -1675.337280, 84.980209, 530.423950, -1251.845458, 47.713111, 2000);
SendClientMessage(playerid, COLOR_RED, "Автосалон: {FFFFFF}В автосалоне продаются машины, Как только соберете деньги вы сможете купить автомобиль.");
helpstr[playerid] = 6;
return true;
}
if(helpstr[playerid] == 6)
{
InterpolateCameraPos(playerid, 528.857116, -1248.191528, 50.745262, -250.773406, -1332.337646, 56.878238, 2000);
InterpolateCameraLookAt(playerid, 530.423950, -1251.845458, 47.713111, -254.956741, -1334.894165, 55.896381, 2000);
SendClientMessage(playerid, COLOR_RED, "Ферма: {FFFFFF}На ферме вы сможете заработать свой первые деньги.");
helpstr[playerid] = 7;
return true;
}
if(helpstr[playerid] == 7)
{
InterpolateCameraPos(playerid, -250.773406, -1332.337646, 56.878238, -183.255798, -450.983062, 84.151458, 3000);
InterpolateCameraLookAt(playerid, -254.956741, -1334.894165, 55.896381, -180.627975, -447.175506, 82.254852, 3000);
SendClientMessage(playerid, COLOR_RED, "Завод: {FFFFFF}На заводе вы сможете заработать свой первые деньги.");
helpstr[playerid] = 8;
return true;
}
if(helpstr[playerid] == 8)
{
InterpolateCameraPos(playerid, -183.255798, -450.983062, 84.151458, -1720.713012, -1719.199707, 104.517898, 2000);
InterpolateCameraLookAt(playerid, -180.627975, -447.175506, 82.254852, -1724.755737, -1717.829101, 101.914459, 2000);
SendClientMessage(playerid, COLOR_RED, "Шахта: {FFFFFF}На шахте вы сможете заработать свой первые деньги.");
helpstr[playerid] = 9;
return true;
}
if(helpstr[playerid] == 9)
{
SendClientMessage(playerid, COLOR_GREEN, "Вы посмотрели все важные места.");
helpstr[playerid] = 1;
for(new i; i < 3; i++) TextDrawHideForPlayer(playerid, TDn[i]);
TogglePlayerSpectating(playerid, 0);
SetCameraBehindPlayer(playerid);
CancelSelectTextDraw(playerid);
return true;
}
}
Вот и весь код.
Текст писал что пришло сразу в голову так что можете редактировать.
P.s не русский так что могут быть грамматические ошибки.
Последнее редактирование:
