Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Загрузка текстур - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ All ]
Загрузка текстур Зависит от пинга игрока
Оценка: -----

#1
Пользователь офлайн   Xegare 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Приветствую. Чем эта загрузка отличается от остальных? Скорость загрузки зависит от пинга игрока.
Начинаем...


ПЕРЕМЕННЫЕ
Вставляем в начало мода:
new Text:Loading_TD[2];
new PlayerText:Loading_PTD[MAX_PLAYERS][2];
new SteepLoading[MAX_PLAYERS char];
new Float:SteepCricleLoading[MAX_PLAYERS];
new TimerLoading[MAX_PLAYERS];


OnGameModeInit
Вставляем этот код:
Loading_TD[0] = TextDrawCreate(-0.2000, -0.3066, !"LD_SPAC:white");
TextDrawTextSize(Loading_TD[0], 640.0000, 448.0000);
TextDrawAlignment(Loading_TD[0], 1);
TextDrawColor(Loading_TD[0], 1296911871);
TextDrawBackgroundColor(Loading_TD[0], 255);
TextDrawFont(Loading_TD[0], 4);
TextDrawSetProportional(Loading_TD[0], 0);
TextDrawSetShadow(Loading_TD[0], 0);


Loading_TD[1] = TextDrawCreate(320.0000, 270.0000, !"LOADING...");
TextDrawLetterSize(Loading_TD[1], 0.4000, 1.6000);
TextDrawAlignment(Loading_TD[1], 2);
TextDrawColor(Loading_TD[1], -1);
TextDrawBackgroundColor(Loading_TD[1], 255);
TextDrawFont(Loading_TD[1], 2);
TextDrawSetProportional(Loading_TD[1], 1);
TextDrawSetShadow(Loading_TD[1], 0);


OnPlayerConnect
В этот паблик соответствующий код:
Loading_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 275.0000, 178.0000, !"LD_POOL:ball");
PlayerTextDrawTextSize(playerid, Loading_PTD[playerid][0], 0.0000, 90.0000);
PlayerTextDrawAlignment(playerid, Loading_PTD[playerid][0], 1);
PlayerTextDrawColor(playerid, Loading_PTD[playerid][0], 1097458175);
PlayerTextDrawBackgroundColor(playerid, Loading_PTD[playerid][0], 255);
PlayerTextDrawFont(playerid, Loading_PTD[playerid][0], 4);
PlayerTextDrawSetProportional(playerid, Loading_PTD[playerid][0], 0);
PlayerTextDrawSetShadow(playerid, Loading_PTD[playerid][0], 0);

Loading_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 320.0000, 210.0000, !"_");
PlayerTextDrawLetterSize(playerid, Loading_PTD[playerid][1], 0.4000, 1.6000);
PlayerTextDrawAlignment(playerid, Loading_PTD[playerid][1], 2);
PlayerTextDrawColor(playerid, Loading_PTD[playerid][1], -1);
PlayerTextDrawBackgroundColor(playerid, Loading_PTD[playerid][1], 255);
PlayerTextDrawFont(playerid, Loading_PTD[playerid][1], 2);
PlayerTextDrawSetProportional(playerid, Loading_PTD[playerid][1], 1);
PlayerTextDrawSetShadow(playerid, Loading_PTD[playerid][1], 0);


STOCK
Будем использовать для старта загрузки. Код в конец мода:
stock StartLoad(playerid) {
    TextDrawShowForPlayer(playerid, Loading_TD[0]);
    TextDrawShowForPlayer(playerid, Loading_TD[1]);
    PlayerTextDrawShow(playerid, Loading_PTD[playerid][0]);
    PlayerTextDrawShow(playerid, Loading_PTD[playerid][1]);
    TimerLoading[playerid] = SetTimerEx(!"@Loading", GetPlayerPing(playerid), true, !"i", playerid);
}


Callback таймера
Вставляем тоже в конец мода:
@Loading(playerid);
@Loading(playerid) {
 	if(SteepLoading{playerid} < 100) {
        SteepLoading{playerid}++;
        new str[8];
        format(str, sizeof str, "%d~n~%", SteepLoading{playerid});
        PlayerTextDrawSetString(playerid, Loading_PTD[playerid][1], str);
        SteepCricleLoading[playerid] += 0.9;
        PlayerTextDrawTextSize(playerid, Loading_PTD[playerid][0], SteepCricleLoading[playerid], 90.0);
        PlayerTextDrawShow(playerid, Loading_PTD[playerid][0]);
    } else {
        SteepLoading{playerid} = 0;
        SteepCricleLoading[playerid] = 0.0;
        TextDrawHideForPlayer(playerid, Loading_TD[0]);
        TextDrawHideForPlayer(playerid, Loading_TD[1]);
        PlayerTextDrawHide(playerid, Loading_PTD[playerid][0]);
        PlayerTextDrawHide(playerid, Loading_PTD[playerid][1]);
        PlayerTextDrawSetString(playerid, Loading_PTD[playerid][1], !"_");
        PlayerTextDrawTextSize(playerid, Loading_PTD[playerid][0], 0.0, 90.0);
        KillTimer(TimerLoading[playerid]);
    }
 	return 1;
}

Прикрепленные файлы


0

#2
Пользователь офлайн   Zombie Attack 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Не очень понятный алгоритм, а если пинг 90, а потом 30, тогда что?
0

#3
Пользователь офлайн   Xegare 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияZombie Attack (25 Август 2018 - 14:20) писал:

Не очень понятный алгоритм, а если пинг 90, а потом 30, тогда что?


Если пинг сначала был 90, то таймер с этим пингом запустится и будет с этим значением работать пока не пройдет загрузка.

Сообщение отредактировал Xegare: 25 Август 2018 - 14:28

0

#4
Пользователь офлайн   Nmakd_Dmasd 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Какую команду использовать , когда я буду входить в интерьер
0

#5
Пользователь офлайн   Riccarda 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Что за ОШИПКА

C:\Users\User\Desktop\ReVation Role Play\gamemodes\new.pwn(87862) : error 010: invalid function or declaration
C:\Users\User\Desktop\ReVation Role Play\gamemodes\new.pwn(87871) : error 010: invalid function or declaration
C:\Users\User\Desktop\ReVation Role Play\gamemodes\new.pwn(87922) : error 010: invalid function or declaration
C:\Users\User\Desktop\ReVation Role Play\gamemodes\new.pwn(87931) : error 010: invalid function or declaration
C:\Users\User\Desktop\ReVation Role Play\gamemodes\new.pwn(167986) : warning 217: loose indentation
Pawn compiler 3.10.2 Copyright © 1997-2006, ITB CompuPhase


4 Errors.
0

#6
Пользователь офлайн   KlareoN 

  • Знаток
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияRiccarda (07 Ноябрь 2018 - 10:30) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


"ОШИПКА" У тебя в тексте.
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей