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

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

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

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

Мануал Киллы / Смерти / Ранги на TextDraw

Статус
В этой теме нельзя размещать новые ответы.

Alex Westbrook

Специалист
Доброго времени суток, уважаемые пользователи Pawno-Info!
Сейчас, мы рассмотрим с вами небольшую системку, так называемую статистику на текстдраве.
Суть ее состоит в том, что она отображает киллы / смерти / и ранг пользователя, выводя через стринг из переменной с аккаунтом

В данном уроке будет несколько пунктов:
1.Переменные
2.Сами текстдравы
3.Настройка и написание самой системы
4.Односекундный таймер


Пункт номер первый: Переменные​
Данная система использует одну переменную. У меня эта переменная названа:
PHP:
new Text: LoadTDSR[MAX_PLAYERS][7];
/*
Сейчас я объясню , что делает данная переменная:
1.Мы задаем новую переменную для TextDraw с названием LoadTDSR
2.Обозначение MAX_PLAYERS определяет значение игроков, которые смогут зайти на сервер(Это отдельная переменная от переменной кол-ва игроков)
3.7 - кол-во TextDraw, исп. нами
*/
Пункт номер второй: TextDraw's​
Для того, чтбы наши TextDraw начали работать, нам необходимо подключить их, засунув сам код текстдравов в OnGameModeInit(Паблик загрузки мода, если я не ошибаюсь)
PHP:
LoadTDSR[i][0] = TextDrawCreate(630.000000, 107.028892, "_");
		TextDrawLetterSize(LoadTDSR[i][0], 0.000000, 5.767282);
		TextDrawTextSize(LoadTDSR[i][0], 500.000000, 0.000000);
		TextDrawAlignment(LoadTDSR[i][0], 1);
		TextDrawColor(LoadTDSR[i][0], 0);
		TextDrawUseBox(LoadTDSR[i][0], true);
		TextDrawBoxColor(LoadTDSR[i][0], 102);
		TextDrawSetShadow(LoadTDSR[i][0], 0);
		TextDrawSetOutline(LoadTDSR[i][0], 0);
		TextDrawFont(LoadTDSR[i][0], 0);

		LoadTDSR[i][1] = TextDrawCreate(506.399963, 105.031120, "Rang:");
		TextDrawLetterSize(LoadTDSR[i][1], 0.449999, 1.600000);
		TextDrawAlignment(LoadTDSR[i][1], 1);
		TextDrawColor(LoadTDSR[i][1], -1061109505);
		TextDrawSetShadow(LoadTDSR[i][1], 0);
		TextDrawSetOutline(LoadTDSR[i][1], 1);
		TextDrawBackgroundColor(LoadTDSR[i][1], 51);
		TextDrawFont(LoadTDSR[i][1], 3);
		TextDrawSetProportional(LoadTDSR[i][1], 1);

		LoadTDSR[i][2] = TextDrawCreate(506.399963, 122.951110, "KILLS:");
		TextDrawLetterSize(LoadTDSR[i][2], 0.449999, 1.600000);
		TextDrawAlignment(LoadTDSR[i][2], 1);
		TextDrawColor(LoadTDSR[i][2], -1061109505);
		TextDrawSetShadow(LoadTDSR[i][2], 0);
		TextDrawSetOutline(LoadTDSR[i][2], 1);
		TextDrawBackgroundColor(LoadTDSR[i][2], 51);
		TextDrawFont(LoadTDSR[i][2], 3);
		TextDrawSetProportional(LoadTDSR[i][2], 1);

		LoadTDSR[i][3] = TextDrawCreate(505.599822, 142.364517, "Deaths:");
		TextDrawLetterSize(LoadTDSR[i][3], 0.449999, 1.600000);
		TextDrawAlignment(LoadTDSR[i][3], 1);
		TextDrawColor(LoadTDSR[i][3], -1061109505);
		TextDrawSetShadow(LoadTDSR[i][3], 0);
		TextDrawSetOutline(LoadTDSR[i][3], 1);
		TextDrawBackgroundColor(LoadTDSR[i][3], 51);
		TextDrawFont(LoadTDSR[i][3], 3);
		TextDrawSetProportional(LoadTDSR[i][3], 1);

		LoadTDSR[i][4] = TextDrawCreate(552.799804, 105.031097, "_");
		TextDrawLetterSize(LoadTDSR[i][4], 0.449999, 1.600000);
		TextDrawAlignment(LoadTDSR[i][4], 1);
		TextDrawColor(LoadTDSR[i][4], -2147450625);
		TextDrawSetShadow(LoadTDSR[i][4], 0);
		TextDrawSetOutline(LoadTDSR[i][4], 1);
		TextDrawBackgroundColor(LoadTDSR[i][4], 51);
		TextDrawFont(LoadTDSR[i][4], 3);
		TextDrawSetProportional(LoadTDSR[i][4], 1);

		LoadTDSR[i][5] = TextDrawCreate(554.399963, 122.951110, "0");
		TextDrawLetterSize(LoadTDSR[i][5], 0.449999, 1.600000);
		TextDrawAlignment(LoadTDSR[i][5], 1);
		TextDrawColor(LoadTDSR[i][5], -2147450625);
		TextDrawSetShadow(LoadTDSR[i][5], 0);
		TextDrawSetOutline(LoadTDSR[i][5], 1);
		TextDrawBackgroundColor(LoadTDSR[i][5], 51);
		TextDrawFont(LoadTDSR[i][5], 3);
		TextDrawSetProportional(LoadTDSR[i][5], 1);

		LoadTDSR[i][6] = TextDrawCreate(570.000061, 142.364440, "0");
		TextDrawLetterSize(LoadTDSR[i][6], 0.449999, 1.600000);
		TextDrawAlignment(LoadTDSR[i][6], 1);
		TextDrawColor(LoadTDSR[i][6], -2147450625);
		TextDrawSetShadow(LoadTDSR[i][6], 0);
		TextDrawSetOutline(LoadTDSR[i][6], 1);
		TextDrawBackgroundColor(LoadTDSR[i][6], 51);
		TextDrawFont(LoadTDSR[i][6], 3);
		TextDrawSetProportional(LoadTDSR[i][6], 1);
Далее, мы сделаем так, чтобы текстдравы появлялись после авторизации
В паблик авторизации добавляем следующие строки:
PHP:
TextDrawShowForPlayer(playerid, LoadTDSR[playerid][0]);
TextDrawShowForPlayer(playerid, LoadTDSR[playerid][1]);
TextDrawShowForPlayer(playerid, LoadTDSR[playerid][2]);
TextDrawShowForPlayer(playerid, LoadTDSR[playerid][3]);
TextDrawShowForPlayer(playerid, LoadTDSR[playerid][4]);
TextDrawShowForPlayer(playerid, LoadTDSR[playerid][5]);
TextDrawShowForPlayer(playerid, LoadTDSR[playerid][6]);
P.S У меня паблик авторизации назван OnPlayerLogin

Далее, нам нужно сделать обновление текстдравов(Односекундным таймером)
В односекундный таймер добавляем:
PHP:
        //Сделаем все циклом:
        new string[156];
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(PlayerInfo[i][pKills] <= 10) TextDrawSetString(LoadTDSR[i][4],"Private");
		if(PlayerInfo[i][pKills] >= 30)	TextDrawSetString(LoadTDSR[i][4],"Corporal");
		if(PlayerInfo[i][pKills] >= 300) TextDrawSetString(LoadTDSR[i][4],"Sergeant");
		if(PlayerInfo[i][pKills] >= 500) TextDrawSetString(LoadTDSR[i][4],"St.Sergeant");
		if(PlayerInfo[i][pKills] >= 1000) TextDrawSetString(LoadTDSR[i][4],"Major");
		if(PlayerInfo[i][pKills] >= 1600) TextDrawSetString(LoadTDSR[i][4],"Ensign");
		if(PlayerInfo[i][pKills] >= 2500) TextDrawSetString(LoadTDSR[i][4],"St.Ensign");
		if(PlayerInfo[i][pKills] >= 4000) TextDrawSetString(LoadTDSR[i][4],"Lieutenant");
		if(PlayerInfo[i][pKills] >= 6000) TextDrawSetString(LoadTDSR[i][4],"Captain");
		if(PlayerInfo[i][pKills] >= 10000) TextDrawSetString(LoadTDSR[i][4],"M.General");
		if(PlayerInfo[i][pKills] >= 15000) TextDrawSetString(LoadTDSR[i][4],"Marshal");
		format(string,sizeof(string),"%d", PlayerInfo[i][pKills]);
		TextDrawSetString(LoadTDSR[i][5], string);
		format(string,sizeof(string),"%d",PlayerInfo[i][pDeaths]);
		TextDrawSetString(LoadTDSR[i][6], string);
       }
Для тех, у кого нет данного таймера, для вас я его создам снизу системы


Сам односекундный таймер:

Ко всем News:
PHP:
new SerTimer;
В OnGameModeInit
PHP:
STimer = SetTimer("TimerSecundes1",100,1);
Куда-нибудь в конец или середину мода

PHP:
forward TimerSecundes1();
public TimerSecundes1()
{
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу