Рекомендованные сообщения



Не найдено.

30 posts in this topic

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 процентов в чат должно вывести   " вы голодны "  но не работает ((

Edited by sidoren.00@mail.ru

Share this post


Link to post
Share on other sites
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, "вы голодны !");
	}
}

 

 

Edited by GLADE

Share this post


Link to post
Share on other sites
if(PlayerInfo[i][pSatiety] <= 0) PlayerInfo[i][pSatiety] = 0;
else if(PlayerInfo[i][pSatiety] <= 1 || PlayerInfo[i][pSatiety] <= 15)

 Попробуй

Share this post


Link to post
Share on other sites

тоже самое не помогает 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
40 минут назад, GLADE сказал:

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

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

 

Share this post


Link to post
Share on other sites

@sidoren.00@mail.ru, покажи мне как у тебя объявлена pSatiety.

Share this post


Link to post
Share on other sites

вот все что связанно с 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;
                                         конец

 

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites
14 минут назад, GLADE сказал:

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


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

 

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
16 минут назад, GLADE сказал:

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

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

Edited by sidoren.00@mail.ru

Share this post


Link to post
Share on other sites

@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, "Вы проголодались! Сходите в закусочную!");
	}
}

 

Edited by GLADE
Причина: Немного заменил.

Share this post


Link to post
Share on other sites
7 минут назад, 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, "Вы проголодались! Сходите в закусочную!");
	}
}

 

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

Share this post


Link to post
Share on other sites

@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, "Вы проголодались! Сходите в закусочную!");
}

 

Share this post


Link to post
Share on other sites
3 минуты назад, 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, "Вы проголодались! Сходите в закусочную!");
}

 

не приходит 

Share this post


Link to post
Share on other sites

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

Edited by GLADE

Share this post


Link to post
Share on other sites
9 минут назад, GLADE сказал:

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

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

Edited by sidoren.00@mail.ru

Share this post


Link to post
Share on other sites

@sidoren.00@mail.ru, у Вас оба условия не проходят. Впервые с таким сталкиваюсь.

Share this post


Link to post
Share on other sites

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

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

 

Edited by sidoren.00@mail.ru

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
Только что, 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);
	}

 

Share this post


Link to post
Share on other sites
5 минут назад, sidoren.00@mail.ru сказал:

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

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


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

Share this post


Link to post
Share on other sites
3 минуты назад, GLADE сказал:


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

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

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

Edited by sidoren.00@mail.ru

Share this post


Link to post
Share on other sites
Только что, sidoren.00@mail.ru сказал:

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


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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Романтик228
      By Романтик228
      можно играть как и в мобаил так и на пк.Есть охота, семейный отель, рейтинг семьи, крафты,бд идёт вместе с модом,фракции и банды все присутствует в моде. 
    • Романтик228
      By Романтик228


      Просмотр файла Мод samp
      можно играть как и в мобаил так и на пк.Есть охота, семейный отель, рейтинг семьи, крафты,бд идёт вместе с модом,фракции и банды все присутствует в моде. 
      Добавил Романтик228 Добавлено 20.10.2021 Категория Моды Автор Roman  
    • danko
      By danko
      Выдает вот такую ошибку и всё по нулям, базу нормально установил