SA-MP Forums Archive
Использование команды один раз - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Использование команды один раз (/showthread.php?tid=219054)



Использование команды один раз - YellowCloud - 31.01.2011

И вот я снова здесь с моими вопросами. Хотелось бы что бы введя команду на восстановление здоровья

Вот эта команда в

public OnPlayerCommandText(playerid, cmdtext[])

Код:
    if (strcmp("/heal", cmdtext, true, 10) == 0)
    {
		if(GetPlayerMoney(playerid) < 1000)
	    	{
	    		SendClientMessage(playerid, 0x00FF00AA, " Не достаточно денег. Нужно $1.000 ");
	    		return 1;
	    	}
	    	SetPlayerHealth(playerid,100.0);
	    	SetPlayerArmour(playerid, 100);
	    	PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
	    	GivePlayerMoney(playerid,-1000);
	    	SendClientMessage(playerid, 0x00FF00AA, " Вы восстановили здоровье ");
	    	new PlayerName[30];
	    	GetPlayerName(playerid, PlayerName, 30);
		return 1;
   	}
Так как некоторые игроки используют эту команду для спасения. Хотелось бы что бы её можно было использовать только один раз, но после того как ты умираешь ты снова можешь ввести команду один раз!

Не могли бы вы помочь с реализацией?


Re: Использование команды один раз - -Stranger- - 31.01.2011

Создаёшь переменную в начале кода, типа new UseHeal[MAX_PLAYERS];
При вводе команды, присваивай значение этой переменной "1" для playerid. При смерти - присваивай "0" =)

PS> Ну и естественно делай проверку в команде, на значение переменной.


Re: Использование команды один раз - YellowCloud - 31.01.2011

А как присвоить значение к playerid?


Re: Использование команды один раз - -Stranger- - 31.01.2011

Не так выразился...

new UseHeal[MAX_PLAYERS];

UseHeal[playerid] = 1; // При вводе команды (в конце).
UseHeal[playerid] = 0; // При смерти.

if(UseHeal[playerid] == 1)
{
SendClientMessage(playerid, 0x00FF00AA, " Заюзал один раз, и хватит, теперь иди в бой! ");
return 1;
}

Это поможет...


Re: Использование команды один раз - MX_Master - 31.01.2011

PVar'ы тут лучшее решение, т.к. нам чисто эти данные нужны, когда игрок на сервере


Re: Использование команды один раз - azen - 31.01.2011

Кстати, и романиус мне тоже про PVar трет... Может кто-то нубу (тобишь мне ^_^) объяснить. что это за зверь такой - PVar?


Re: Использование команды один раз - Stepashka - 31.01.2011

Quote:
Originally Posted by azen
Посмотреть сообщение
Кстати, и романиус мне тоже про PVar трет... Может кто-то нубу (тобишь мне ^_^) объяснить. что это за зверь такой - PVar?
попробуй сам изучить, тогда ты точно разберешься.


Re: Использование команды один раз - azen - 31.01.2011

Можно где-либо статейку по ним? (только на русском. С буржуйским у меня туго)


Re: Использование команды один раз - MX_Master - 31.01.2011

у нас же тут была темка про "пивары и с чем их едят"..


Re: Использование команды один раз - YellowCloud - 31.01.2011

Quote:
Originally Posted by -Stranger-
Посмотреть сообщение
Не так выразился...

new UseHeal[MAX_PLAYERS];

UseHeal[playerid] = 1; // При вводе команды (в конце).
UseHeal[playerid] = 0; // При смерти.

if(UseHeal[playerid] == 1)
{
SendClientMessage(playerid, 0x00FF00AA, " Заюзал один раз, и хватит, теперь иди в бой! ");
return 1;
}

Это поможет...
Спасибо за помощь