Narc56
Дебютант
Всем привет! Ребят не как не могу сделать полосу с голодом, точнее я сделал работает но не большой баг, например пополнил я сытность на 100% полоса заполнена выхожу из игры и захожу снова полоса становится половина а запасы сытности на 100% съем ченибуть полоса опять становится полной че делать как изменить чтоб при выходи полоса сохранялось на столько сколька у тебя сытности? в общем я не знаю как еще понятней объяснить вот уроки сытности:
а вот моя полоса
Код:
В pInfo добавляем:
PHP код:
pSitosti,
Ко всем new добавляем:
PHP код:
new timesitosti;
#define timesit 60 // секунд для отнятия единицы сытости
В ежесекундный таймер ( в RLS обычно public fresh )
PHP код:
timesitosti ++;
if(timesitosti > timesit)
{
timesitosti = 0;
for(new g = 0; g < GetMaxPlayers(); g++)
{
if(PlayerInfo[g][pSitosti])PlayerInfo[g][pSitosti] --;
if(PlayerInfo[g][pSitosti] < 30)
{
new Float:health;
GetPlayerHealth(g,health);
SetPlayerHealth(g, health-0.3);//если у вас античит, заменяйте SetPlayerHealth!!!
}
if(PlayerInfo[g][pSitosti] == 29)SendClientMessage(g,0x9ACD32AA, "Вы проголодались! Посетите бар, закусочную или купите ХотДог. Узнать свою «Сытость» можно командой /satiety");
}
}
В функциию регистрации ( в RLS обычно public OnPlayerRegister )
PHP код:
ini_setInteger(File,"pSitosti",PlayerInfo[playerid][pSitosti]);
В функциию авторизации ( в RLS обычно public OnPlayerLogin )
PHP код:
ini_getInteger(File,"pSitosti",PlayerInfo[playerid][pSitosti]);
В функциию сохранения ( в RLS обычно public OnPlayerUpdateRL )
PHP код:
ini_setInteger(File,"pSitosti",PlayerInfo[playerid][pSitosti]);
Если у вас мод на MySQL, делайте по примеру других переменных и не забываем добавлять переменную в таблицу
Ко всем командам:
PHP код:
if(strcmp(cmd,"/satiety",true) == 0)
{
if(PlayerInfo[playerid][pSitosti] > 100)PlayerInfo[playerid][pSitosti] = 100;
new
satietystr[43];
format(satietystr, sizeof(satietystr), "Ваша «Сытость» : %d / 100", PlayerInfo[playerid][pSitosti]);
return SendClientMessage(playerid,0x33AAFFFF,satietystr);
}
В конец мода:
PHP код:
stock poel(playerid, sitost)
{
PlayerInfo[playerid][pSitosti] +=sitost;
if(PlayerInfo[playerid][pSitosti] > 100)PlayerInfo[playerid][pSitosti] = 100;
new
satietystr[52];
format(satietystr, sizeof(satietystr), "Сытость пополнена до: %d / 100", PlayerInfo[playerid][pSitosti]);
return SendClientMessage(playerid,0xFFFFFFFF,satietystr);
}
Для пополнения сытости во всех магазинах, или где там у вас еда , ставим вот такое:
PHP код:
poel(playerid, кол-о сытости);
Код:
in_t = pPoel3[playerid] = CreatePlayerTextDraw(playerid, 87 + 1.2, 291 + 2.15, "_");
PlayerTextDrawUseBox (playerid, in_t, 1);
PlayerTextDrawTextSize (playerid, in_t, 83.0 + 50*50/100, 0.0);
PlayerTextDrawLetterSize (playerid, in_t, 1.0, 3.2 / 10 - 0.35);
PlayerTextDrawBoxColor (playerid, in_t, 6064810);
