Anteik
Умник
Здравствуйте!Недавно я делал себе сис-му голода,жажды и тд. Решил сделать всё это при помощи progress bara, а вот урока не нашел...Вот думаю это кому нибудь будет полезно:
Давайте рассмотрим функции:
Пример как создавать бары:
Сис-ма голода для теста:
Термины:
Сис-ма - Система
Бар - progress bar
Давайте рассмотрим функции:
CreateProgressBar(x, y, width, height, color, max)//создаём
DestroyProgressBar(barid)//Удаляем
ShowProgressBarForPlayer(playerid, barid)//Показываем игроку
HideProgressBarForPlayer(playerid, barid)//Прячем игроку
ShowProgressBarForAll(barid)//Показываем всем
HideProgressBarForAll(barid)//Прячем для всех
SetProgressBarValue(barid, value)//Задаём значение
GetProgressBarValue(barid)//Узнаём значение
SetProgressBarMaxValue(barid, max)//Максимальное значение
SetProgressBarColor(barid, color)//Меняем цвет
UpdateProgressBar(barid, playerid=INVALID_PLAYER_ID)//Обновляем
DestroyProgressBar(barid)//Удаляем
ShowProgressBarForPlayer(playerid, barid)//Показываем игроку
HideProgressBarForPlayer(playerid, barid)//Прячем игроку
ShowProgressBarForAll(barid)//Показываем всем
HideProgressBarForAll(barid)//Прячем для всех
SetProgressBarValue(barid, value)//Задаём значение
GetProgressBarValue(barid)//Узнаём значение
SetProgressBarMaxValue(barid, max)//Максимальное значение
SetProgressBarColor(barid, color)//Меняем цвет
UpdateProgressBar(barid, playerid=INVALID_PLAYER_ID)//Обновляем
Допустим у нас есть сис-ма голода и отвечает за неё "pEda"
Мы добавили include:
Создадим new:
Создаём бар:
Допустим в public OnPlayerConnect(playerid)
Показываем его:
В ежесекундный таймер:
(Если у вас есть колбэк OnPlayerUpdate, то вам сюда: Тык)
Готово!Мы создали наш бар!Теперь он будет показывать нашу сытость!
Мы добавили include:
PHP:
#include <progress>
PHP:
new Bar:EdaBar[MAX_PLAYERS];
Допустим в public OnPlayerConnect(playerid)
PHP:
EdaBar[playerid] = CreateProgressBar(548.00, 27.00, 58.50, 3.50, -1048321, 100.0);//корды ̶с̶п̶и̶з̶д̶и̶л̶ позаимствовал
PHP:
ShowProgressBarForPlayer(playerid, EdaBar[playerid]);
(Если у вас есть колбэк OnPlayerUpdate, то вам сюда: Тык)
PHP:
SetProgressBarValue(EdaBar[playerid], PlayerInfo[playerid][pEda]);
UpdateProgressBar(EdaBar[playerid], playerid);
В enum pInfo:
В public OnPlayerConnect:
Засовываем в команду/регистрацию/паблик входа:
Когда купил хот-дог/ввёл команду:
В public OnPlayerDeath:
В ежесекундный таймер:
К forward:
Создадим new:
В OnPlayerConnect:
Вконец мода:
Теперь можно тестить!Вы можете сделать сохранения и довести до ума данную сис-му(Если вам надо).
PHP:
pEda,
PHP:
PlayerInfo[playerid][pEda] = 0;
PHP:
PlayerInfo[playerid][pEda] = 100;
PHP:
PlayerInfo[playerid][pEda] += 7;
PHP:
PlayerInfo[playerid][pEda] = 50;
PHP:
if(PlayerInfo[playerid][pEda] > 100) PlayerInfo[playerid][pEda] = 100;
PHP:
forward PlEda(playerid);
PHP:
new Eda[MAX_PLAYERS];
PHP:
Eda[playerid] = SetTimerEx("PlEda", 180000, 1, "d", playerid);
PHP:
public PlEda(playerid){ PlayerInfo[playerid][pEda] -= 1; return 1;}
Сис-ма - Система
Бар - progress bar
Последнее редактирование:
