Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Помощь новичкам (Осмотр важных мест)

chogovadze

Компетентный
Осмотр важных мест сервера

Приветствую, Создал новую систему и интересно ваше мнение на счёт кода, дайте советы что изменить что можно улучшить и так далее а так же я думаю хороший урок для начинающих скриптеров.

__________________________________________________ _
Видео:
__________________________________________________ _
И так начнём:
Для начала создаём новые переменные
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}Вы желаете осмотреть все важные места штата?", "Да", "Нет");
	}
P.s: 677 это номер диалога вы должны найти свободный диалог. Нажимаете CTRL + F далее case любой номер если не нашел то свободен если нашел то занят.
__________________________________________________ __
Дальше добавляем текстдрав
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 не русский так что могут быть грамматические ошибки.
 
Последнее редактирование:
Сверху Снизу