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

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

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

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

Мануал Загрузка текстур

AndreY.eXe

Специалист
Загрузка текстур [ALL]

Всем привет! Не нашел мануала такого типа и решил написать сам. Вообщем, приступип:

Для начала добавим сами TextDraw
PHP:
new Text: loadtext[6]; // В начало мода
new PlayerText: loadtextplayer[MAX_PLAYERS];

	// В ongamemodeinit
	loadtext[0] = TextDrawCreate(641.531494, 1.500000, "usebox");
	TextDrawLetterSize(loadtext[0], 0.000000, 49.396297);
	TextDrawTextSize(loadtext[0], -2.000000, 0.000000);
	TextDrawAlignment(loadtext[0], 1);
	TextDrawColor(loadtext[0], 0);
	TextDrawUseBox(loadtext[0], true);
	TextDrawBoxColor(loadtext[0], 255);
	TextDrawSetShadow(loadtext[0], 0);
	TextDrawSetOutline(loadtext[0], 0);
	TextDrawFont(loadtext[0], 0);

	loadtext[1] = TextDrawCreate(397.900665, 184.666580, "usebox");
	TextDrawLetterSize(loadtext[1], 0.000000, 2.093318);
	TextDrawTextSize(loadtext[1], 229.449493, 0.000000);
	TextDrawAlignment(loadtext[1], 1);
	TextDrawColor(loadtext[1], 0);
	TextDrawUseBox(loadtext[1], true);
	TextDrawBoxColor(loadtext[1], 3289855);
	TextDrawSetShadow(loadtext[1], 0);
	TextDrawSetOutline(loadtext[1], 0);
	TextDrawFont(loadtext[1], 0);

	loadtext[2] = TextDrawCreate(397.963562, 210.749969, "usebox");
	TextDrawLetterSize(loadtext[2], 0.000000, 14.509128);
	TextDrawTextSize(loadtext[2], 229.449493, 0.000000);
	TextDrawAlignment(loadtext[2], 1);
	TextDrawColor(loadtext[2], 0);
	TextDrawUseBox(loadtext[2], true);
	TextDrawBoxColor(loadtext[2], 3289855);
	TextDrawSetShadow(loadtext[2], 0);
	TextDrawSetOutline(loadtext[2], 0);
	TextDrawFont(loadtext[2], 0);

	loadtext[3] = TextDrawCreate(395.089294, 213.250000, "usebox");
	TextDrawLetterSize(loadtext[3], 0.000000, 2.016666);
	TextDrawTextSize(loadtext[3], 231.792098, 0.000000);
	TextDrawAlignment(loadtext[3], 1);
	TextDrawColor(loadtext[3], 0);
	TextDrawUseBox(loadtext[3], true);
	TextDrawBoxColor(loadtext[3], 190);
	TextDrawSetShadow(loadtext[3], 0);
	TextDrawSetOutline(loadtext[3], 0);
	TextDrawFont(loadtext[3], 0);

	loadtext[4] = TextDrawCreate(244.099395, 186.666641, "Load Textures");
	TextDrawLetterSize(loadtext[4], 0.449999, 1.600000);
	TextDrawAlignment(loadtext[4], 1);
	TextDrawColor(loadtext[4], -1061109505);
	TextDrawSetShadow(loadtext[4], 0);
	TextDrawSetOutline(loadtext[4], 0);
	TextDrawBackgroundColor(loadtext[4], 51);
	TextDrawFont(loadtext[4], 3);
	TextDrawSetProportional(loadtext[4], 1);

	loadtext[5] = TextDrawCreate(234.260620, 237.416641, "loadsuk:loadsc6");
	TextDrawLetterSize(loadtext[5], 0.000000, 0.000000);
	TextDrawTextSize(loadtext[5], 159.297210, 102.083305);
	TextDrawAlignment(loadtext[5], 1);
	TextDrawColor(loadtext[5], -1);
	TextDrawSetShadow(loadtext[5], 0);
	TextDrawSetOutline(loadtext[5], 0);
	TextDrawFont(loadtext[5], 4);

	// В onplayerconnect
	loadtextplayer[playerid] = CreatePlayerTextDraw(playerid, 236.603088, 214.666702, "_");
	PlayerTextDrawLetterSize(playerid, loadtextplayer[playerid], 0.308975, 2.060834);
	PlayerTextDrawAlignment(playerid, loadtextplayer[playerid], 1);
	PlayerTextDrawColor(playerid, loadtextplayer[playerid], 8663807);
	PlayerTextDrawUseBox(playerid, loadtextplayer[playerid], true);
	PlayerTextDrawBoxColor(playerid, loadtextplayer[playerid], 0);
	PlayerTextDrawSetShadow(playerid, loadtextplayer[playerid], 0);
	PlayerTextDrawBackgroundColor(playerid, loadtextplayer[playerid], 51);
	PlayerTextDrawFont(playerid, loadtextplayer[playerid], 2);
	PlayerTextDrawSetProportional(playerid, loadtextplayer[playerid], 1);
В начало мода:
PHP:
new LoadTime[MAX_PLAYERS]; // Таймер загрузки текстур.
new LoadTimer[MAX_PLAYERS]; // Тоже для таймера, дальше поймете для чего
new loadstring[MAX_PLAYERS][20]; // String который позволит нам показать так называемые "Палочки" (TextDraw)
В OnPlayerConnect:
PHP:
	KillTimer(LoadTime[playerid]); // Удаление таймера при заходе игрока
Куда нибудь в конец мода:
PHP:
forward LoadingTexture(playerid);
public LoadingTexture(playerid)
{
	LoadTimer[playerid]++; // Считываем, сколько секунд прошло
	format(loadstring[playerid], 20, "%s||", loadstring[playerid]); // Показываем игроку "Палочки" (Загрузку)
	PlayerTextDrawSetString(playerid, loadtextplayer[playerid], loadstring[playerid]); // Изменяем TextDraw
	if(LoadTimer[playerid] >= 9) // Проверка
	{
	    PlayerTextDrawSetString(playerid, loadtextplayer[playerid], ""); // Очищаем TextDraw
	    for(new i; i < 6; i ++) TextDrawHideForPlayer(playerid, loadtext[i]); // Закрываем TextDraw'ы
	    PlayerTextDrawHide(playerid, loadtextplayer[playerid]);
	    TogglePlayerControllable(playerid, true); // Размораживаем игрока
	    KillTimer(LoadTime[playerid]); // Удаляем таймер
	    LoadTimer[playerid] = 0; // Обнуляем
	    loadstring[playerid] = ""; // Обнуляем
	}
}
stock LoadTexture(playerid)
{
	if(GetPVarInt(playerid, "timeloadtext") > gettime())return true; // Если время после которого запустилась загрузка текстур не прошло, то не показываем новую. (Сделано, чтобы не было багов с Таймером)
	for(new i; i < 6; i ++) TextDrawShowForPlayer(playerid, loadtext[i]); // Показываем TextDraw'ы
	PlayerTextDrawShow(playerid, loadtextplayer[playerid]);
	TogglePlayerControllable(playerid, false); // Замораживаем игрока
	LoadTime[playerid] = SetTimerEx("LoadingTexture", 500, true, "i", playerid); // Запускаем таймер
	SetPVarInt(playerid, "timeloadtext", gettime()+4); // Выше
	return true;
}
Вот что получится:
Теперь когда Вы захотите показать игроку загрузку текстур вставьте LoadTexture(playerid);

Вот и все! Это мой первый Мануал для паблика, так что могут быть не значительные ошибки. Систему тестил сам и все прекрасно работает.

Автор: Я
 
Последнее редактирование:
Сверху Снизу