Вопросы

sidoren.00@mail.ru
Новичок
SetPVarInt(i, "SatietyTime", GetPVarInt(i, "SatietyTime") + 1);
		if(GetPVarInt(i, "SatietyTime") == 300)
		{
			SetPVarInt(i, "SatietyTime", 0);
			PlayerInfo[i][pSatiety]--;
			if(PlayerInfo[i][pSatiety] <= 0)
			{
				PlayerInfo[i][pSatiety] = 0;
			}
			if(PlayerInfo[i][pSatiety] == 1 || PlayerInfo[i][pSatiety] == 15)
			{
				new Float:h;
				GetPlayerHealth(i,h);
				SetHealth(i,h-1);
     			SendClientMessage(i, COLOR_GREEN,"вы голодны !");
			}
		}

когда допустим голод снижается до 15 процентов в чат должно вывести   " вы голодны "  но не работает ((

Отредактировано пользователем sidoren.00@mail.ru

Поделиться сообщением


Ссылка на сообщение

29 ответов на этот вопрос

  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev
SetPVarInt(i, "SatietyTime", GetPVarInt(i, "SatietyTime") + 1);
if(GetPVarInt(i, "SatietyTime") == 300)
{
	SetPVarInt(i, "SatietyTime", 0);
	PlayerInfo[i][pSatiety]--;
	if(PlayerInfo[i][pSatiety] <= 0) PlayerInfo[i][pSatiety] = 0;
	if(PlayerInfo[i][pSatiety] <= 1 || PlayerInfo[i][pSatiety] <= 15)
	{
		new Float:h;
		GetPlayerHealth(i,h);
		SetHealth(i,h-1);
		SendClientMessage(i, COLOR_GREEN, "вы голодны !");
	}
}

 

 

Отредактировано пользователем GLADE

Поделиться сообщением


Ссылка на сообщение
  • 0
keyl
Великий Гуру
if(PlayerInfo[i][pSatiety] <= 0) PlayerInfo[i][pSatiety] = 0;
else if(PlayerInfo[i][pSatiety] <= 1 || PlayerInfo[i][pSatiety] <= 15)

 Попробуй

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок
  В 8/2/2020 в 09:45, GLADE сказал:

@sidoren.00@mail.ru, сытость вообще уменьшается?

Читать далее...  

да она уменьшается , но когда наступает 0 % не что не пишет ,  типа ты голоден , и не отнимает хп ну типа от голода 

 

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок

вот все что связанно с pSatiety

 


enum pInfo {
	pSatiety,
}



public OnPlayerUpdate(playerid)
{
	SetProgressBarValue(Satiety, PlayerInfo[playerid][pSatiety]);// голод сброс
	UpdateProgressBar(Satiety, playerid); // обнавления голод бара														
	return 1;
}


public OnPlayerSpawn(playerid)
}
	Satiety = CreateProgressBar(548.00, 35.00, 57.50, 6.19, 3407871, 100.0);
	SetProgressBarValue(Satiety, PlayerInfo[playerid][pSatiety]);
	UpdateProgressBar(Satiety, playerid);
}

CMD:setsatiety(playerid, params[])
{
	if(PlayerLogged[playerid] == 0) return true;
	if(PlayerInfo[playerid][pAdmin] < 4 || AdminLogged[playerid] == false) return true;
	if(PlayerInfo[playerid][pAdminLogin] == 0) return SendClientMessage(playerid, CGREEN, YouCanNotAdminLogin);
	if(sscanf(params, "ud", params[0],params[1])) return SendClientMessage(playerid, CGREEN, "Введите: /setsatiety [id игрока] [кол-во сытости]");
	if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, CGREEN, TPLAYEROFFLINE);
	if(PlayerLogged[params[0]] == 0) return SendClientMessage(playerid, CGREEN, TPLAYERNLOGGED);
	if(params[1] > 10000 || params[1] < 0) return SendClientMessage(playerid, CGREEN, "Кол-во сытости от 0 до 100!");
	PlayerInfo[params[0]][pSatiety] = params[1];

	SendMes(playerid, COLOR_WHITE, "Вы установили сытость игроку: {00FF00}%s", sendername(params[0]));
	return true;
}
                                          
stock PlayerTimer()
{
	new string[128];
	foreach(new i:Player)
	{
      	SetPVarInt(i, "SatietyTime", GetPVarInt(i, "SatietyTime") + 1);
		if(GetPVarInt(i, "SatietyTime") == 300)
		{
			SetPVarInt(i, "SatietyTime", 0);
			PlayerInfo[i][pSatiety]--;
			if(PlayerInfo[i][pSatiety] <= 0) PlayerInfo[i][pSatiety] = 0;
			if(PlayerInfo[i][pSatiety] <= 1 || PlayerInfo[i][pSatiety] <= 15)
			{
				new Float:h;
				GetPlayerHealth(i,h);
				SetHealth(i,h-1);
				SendClientMessage(i, COLOR_GREEN, "Вы проголодались! Сходите в закусочную!");
			}
		}
		SetPVarInt(i, "HealthTime", GetPVarInt(i, "HealthTime") + 1);
		if(GetPVarInt(i, "HealthTime") == 60)
		{
			SetPVarInt(i, "HealthTime", 0);
			if(PlayerInfo[i][pSatiety] <= 0)
			{
				GetPlayerHealth(i,shealth);
				SetHealth(i,shealth-2.000);
			}
		}
stock LoadAccount(playerid)
 }
	PlayerInfo[playerid][pSatiety],
 }
 stock SaveAccount(playerid)
 {
 	format(src,sizeof(src),"satiety='%i',",PlayerInfo[playerid][pSatiety]);
	strcat(query,src,sizeof(query));
 }
 stock ResetStats(playerid)
	{
    PlayerInfo[playerid][pSatiety] = 0;
                                         конец

 

Поделиться сообщением


Ссылка на сообщение
  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev

@sidoren.00@mail.ru, устанавливай себе голод от 0 до 15 и через тестовую команду проверяй условие.
 

CMD:tests(playerid) {
	if(PlayerInfo[playerid][pSatiety] <= 15) SendClientMessage(playerid, COLOR_GREY, "* Вы проголодались"); 
	return 1;
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок
  В 8/2/2020 в 11:18, GLADE сказал:

@sidoren.00@mail.ru, устанавливай себе голод от 0 до 15 и через тестовую команду проверяй условие.
 

CMD:tests(playerid) {
	if(PlayerInfo[playerid][pSatiety] <= 15) SendClientMessage(playerid, COLOR_GREY, "* Вы проголодались"); 
	return 1;
}

 

Читать далее...  

что должно произойти ?

 

Поделиться сообщением


Ссылка на сообщение
  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev

@sidoren.00@mail.ru, если переменная pSatiety меньше либо равна 15, ты вылезет сообщение "* Вы проголодались". Тем самым мы проверяем условия, которые используем в таймере.

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок
  В 8/2/2020 в 11:35, GLADE сказал:

@sidoren.00@mail.ru, если переменная pSatiety меньше либо равна 15, ты вылезет сообщение "* Вы проголодались". Тем самым мы проверяем условия, которые используем в таймере.

Читать далее...  

а когда я через команду выдаю setsatiety - и пытаюсь снять через тестовую не чего не происходит 

Отредактировано пользователем sidoren.00@mail.ru

Поделиться сообщением


Ссылка на сообщение
  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev

@sidoren.00@mail.ru, попробуй заменить на это:

SetPVarInt(i, "SatietyTime", GetPVarInt(i, "SatietyTime") + 1);
if(GetPVarInt(i, "SatietyTime") == 300)
{
	SetPVarInt(i, "SatietyTime", 0);
	if(PlayerInfo[i][pSatiety] != 0) PlayerInfo[i][pSatiety]--;
	if(PlayerInfo[i][pSatiety] <= 15)
	{
		new Float:h;
		GetPlayerHealth(i,h);
		SetHealth(i,h-1);
		SendClientMessage(i, COLOR_GREEN, "Вы проголодались! Сходите в закусочную!");
	}
}

 

Отредактировано пользователем GLADE
Причина: Немного заменил.

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок
  В 8/2/2020 в 11:48, GLADE сказал:

@sidoren.00@mail.ru, попробуй заменить на это:

SetPVarInt(i, "SatietyTime", GetPVarInt(i, "SatietyTime") + 1);
if(GetPVarInt(i, "SatietyTime") == 300)
{
	SetPVarInt(i, "SatietyTime", 0);
	PlayerInfo[i][pSatiety]--;
	if(PlayerInfo[i][pSatiety] <= 0) PlayerInfo[i][pSatiety] = 0;
	else if(PlayerInfo[i][pSatiety] <= 15)
	{
		new Float:h;
		GetPlayerHealth(i,h);
		SetHealth(i,h-1);
		SendClientMessage(i, COLOR_GREEN, "Вы проголодались! Сходите в закусочную!");
	}
}

 

Читать далее...  

не чего не происходит 

Поделиться сообщением


Ссылка на сообщение
  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev

@sidoren.00@mail.ru, если не выводит сообщение, значит не проходит условие. Попробуй так, чтобы удостовериться, что условие не проходит.

SetPVarInt(i, "SatietyTime", GetPVarInt(i, "SatietyTime") + 1);
if(GetPVarInt(i, "SatietyTime") == 300)
{
	SetPVarInt(i, "SatietyTime", 0);
	if(PlayerInfo[i][pSatiety] != 0) PlayerInfo[i][pSatiety]--;
	if(PlayerInfo[i][pSatiety] <= 15) SendClientMessage(i, COLOR_GREEN, "Вы проголодались! Сходите в закусочную!");
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок
  В 8/2/2020 в 12:03, GLADE сказал:

@sidoren.00@mail.ru, если не выводит сообщение, значит не проходит условие. Попробуй так, чтобы удостовериться, что условие не проходит.

SetPVarInt(i, "SatietyTime", GetPVarInt(i, "SatietyTime") + 1);
if(GetPVarInt(i, "SatietyTime") == 300)
{
	SetPVarInt(i, "SatietyTime", 0);
	if(PlayerInfo[i][pSatiety] != 0) PlayerInfo[i][pSatiety]--;
	if(PlayerInfo[i][pSatiety] <= 15) SendClientMessage(i, COLOR_GREEN, "Вы проголодались! Сходите в закусочную!");
}

 

Читать далее...  

не приходит 

Поделиться сообщением


Ссылка на сообщение
  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev

@sidoren.00@mail.ru, тобишь, Вы изменяете сытость через /setsatiety и сообщение не приходит? У Вас условие, если GetPVarInt будет равен 5 минутам, то сообщение должно прийти. Попробуйте изменить на 15 и подождать 5 минут.

Отредактировано пользователем GLADE

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок
  В 8/2/2020 в 12:11, GLADE сказал:

@sidoren.00@mail.ru, тобишь, Вы изменяете сытость через /setsatiety и сообщение не приходит? У Вас условие, если GetPVarInt будет равен 5 минутам, то сообщение должно прийти. Попробуйте изменить на 15 и подождать 5 минут.

Читать далее...  

теперь сытость не отнимается 

Отредактировано пользователем sidoren.00@mail.ru

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок

у меня еще есть вариант

, но там он мне бесконечно спамит вы голодны , после того как я сброшу голод до 15 

 

Отредактировано пользователем sidoren.00@mail.ru

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок
  В 8/2/2020 в 12:29, GLADE сказал:

@sidoren.00@mail.ru, скиньте сюда этот вариант.

 

Читать далее...  

вот там я использовал таймер а тут 

public OnPlayerUpdate(playerid)
{
	if(PlayerInfo[playerid][pSatiety] > 100)
	{
		PlayerInfo[playerid][pSatiety] = 100;
	}
	else if(PlayerInfo[playerid][pSatiety] == 0)
	{
  		new Float:health;
 		GetPlayerHealth(playerid, health);
		PlayerInfo[playerid][pSatiety] = -1;
	  	SendClientMessage(playerid,COLOR_RED,"Вы проголодались! Сходите в закусочную!");
	  	return true;
	}

public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)

	PlayerInfo[playerid][pSatiety] -=1;
	new Float:health;
	if(PlayerInfo[playerid][pSatiety] <= 50)
	{
		GetPlayerHealth(playerid, health);
		SetPlayerHealth(playerid, health - 1.0);
	}
	if(PlayerInfo[playerid][pSatiety] <= 30)
	{
		GetPlayerHealth(playerid, health);
		SetPlayerHealth(playerid, health - 1.0);
	}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev
  В 8/2/2020 в 12:27, sidoren.00@mail.ru сказал:

у меня еще есть вариант

, но там он мне бесконечно спамит вы голодны

Читать далее...  


В этом варианте спамит постоянно?

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок
  В 8/2/2020 в 12:34, GLADE сказал:


В этом варианте спамит постоянно?

Читать далее...  

нет  он начинает спамить после того как  моя сытось упадет до 15 ,но я понял как он работает , то есть 

else if(PlayerInfo[playerid][pSatiety] == 0) // если сделаю < 0 ) 
	{
  		new Float:health;
 		GetPlayerHealth(playerid, health);
		PlayerInfo[playerid][pSatiety] = -1; // тот я не могу поставить 0 иначе начтет спамить , вы голоды 

Отредактировано пользователем sidoren.00@mail.ru

Поделиться сообщением


Ссылка на сообщение
  • 0
sidoren.00@mail.ru
Новичок
  В 8/2/2020 в 12:38, GLADE сказал:


Вы тот таймер убрали?

Читать далее...  

нет , но щас попробую без него , хочешь сказать конфликтит 

PlayerInfo[playerid][pSatiety] = -1;
else if(PlayerInfo[playerid][pSatiety] == 0) с теми 

 

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Jasper231
      От Jasper231
      Идет набор в команду для создания CRMP MOBILE проекта. Нам нужны
      1) Кодеры
      2) Мапперы
      3) Люди которые вообще разбираются в создании серверов
       
      об зарпалте договоримся и об остальном поговорим в вк: @haslyyyim
    • otec
      От otec
      Копия радмира
      ║☑️Название CORVUS CRMP
      ║☑️Сервер у которого есть будущее и будет
      ║☑️Адекватная администрация
      ║☑️Идут наборы в Лидеры, Админы.
      ║☑️Вступайте в Telegram: t.me/corvusgta « Вступай!
      ║☑️Вступайте в ВКонтакте: vk.com/corvus_crmp « Вступай!
      ║☑️Постоянные ПРИЗЫ - МП | Интересный Мод
      ║☑️Все новости - обновления в Telegram и ВКонтакте
      ║☑️Сайт - corvus-crmp.ru
      ║☑️Форум - forum.corvus-crmp.ru
      ║☑️Скачать лаунчер - corvus-crmp.ru
      ║☑️Заходи мы ждем тебя
      ║☑️В случае возможных ошибок пишите сюда:@corvus_help_bot
    • vicegame
      От vicegame
      Доброго времени суток уважаемые форумчане
      Хочу представить наши услуги и цены:
      GTA SAMP от 75руб
      GTA CRMP от 75 руб
      GTA MTA от 120 руб
      Для каждого тарифа неограниченные слоты, оплата только за ресурсы 
      Удобная панель управления и широкий функционал 
      Работаем с 2023 года!
       
      Также имеются БЕСПЛАТНЫЕ тарифы для (ознакомительных целей)
       
      Мощные процессоры Ryzen 5950X (Германия)
       
      Платежная система YooKassa на борту:
      Банковские карты
      SberPay
      TinkoffPay
      Yoomoney

      Ссылка на хостинг: ТЫК
    • hatriyikko
      От hatriyikko
      Требуется мобильная сборка мод + клиент + лаунчер

      Копия Радмира, Блэк Раши или что-то другое с аналогичным функционалом. Основной упор на бизнесы, чтобы всё исправно работало
       
      Напишите сколько это будет стоить?

      В дальнейшем также могут понадобиться какие то доработки мода, если всё ок рассматриваю долгосрочное сотрудничество

      Связь тут или в тг @kovart7