Alex Westbrook
Специалист
Доброго времени суток, уважаемые пользователи Pawno-Info!
Сейчас, мы рассмотрим с вами небольшую системку, так называемую статистику на текстдраве.
Суть ее состоит в том, что она отображает киллы / смерти / и ранг пользователя, выводя через стринг из переменной с аккаунтом
В данном уроке будет несколько пунктов:
1.Переменные
2.Сами текстдравы
3.Настройка и написание самой системы
4.Односекундный таймер
Далее, мы сделаем так, чтобы текстдравы появлялись после авторизации
В паблик авторизации добавляем следующие строки:
P.S У меня паблик авторизации назван OnPlayerLogin
Далее, нам нужно сделать обновление текстдравов(Односекундным таймером)
В односекундный таймер добавляем:
Для тех, у кого нет данного таймера, для вас я его создам снизу системы
Сам односекундный таймер:
Ко всем News:
В OnGameModeInit
Куда-нибудь в конец или середину мода
Сейчас, мы рассмотрим с вами небольшую системку, так называемую статистику на текстдраве.
Суть ее состоит в том, что она отображает киллы / смерти / и ранг пользователя, выводя через стринг из переменной с аккаунтом
В данном уроке будет несколько пунктов:
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]);
Далее, нам нужно сделать обновление текстдравов(Односекундным таймером)
В односекундный таймер добавляем:
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;
PHP:
STimer = SetTimer("TimerSecundes1",100,1);
PHP:
forward TimerSecundes1();
public TimerSecundes1()
{
}
Последнее редактирование:
