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=111279)



Re: Скриптинг курилка - Richard_Gere - 05.02.2014

Quote:
Originally Posted by XemyL
Посмотреть сообщение
Лимит PVar'ов - 800. Это для одного игрока или общее количество?
800 PVar на одного игрока.


Re: Скриптинг курилка - Stepashka - 05.02.2014

Quote:
Originally Posted by Richard_Gere
Посмотреть сообщение
800 PVar на одного игрока.
нет, 800 пиваров может быть зарегистрировано на сервере, т.е. ограниченно количество ключей.
Так что количество пиваров на человека колеблется в диапазоне от 0 до 800.


Re: Скриптинг курилка - Jon_De - 05.02.2014

а подсчитать можно их как то?


Re: Скриптинг курилка - Stepashka - 05.02.2014

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
а подсчитать можно их как то?
Только если самому отслеживать.


Re: Скриптинг курилка - Makar93 - 05.02.2014

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
а подсчитать можно их как то?
Код:
new PVarsCount;
stock CreatePVar(playerid, varname[], type, value[])
{
	switch(type)
	{
		case 1:
		{
			SetPVarInt(playerid,varname,strval(value));
			break;
		}
		case 2:
		{
			SetPVarString(playerid,varname,value);
			break;
		}
		case 3:
		{
			SetPVarFloat(playerid,varname,floatstr(value));
			break;
		}
	}
	PVarsCount++;
}
stock DeletePVarEx(playerid,varname[])
{
	DeletePVar(playerid,varname[]);
	PVarsCount--;
}
stock GetPVarsCount()
{
	return PVarsCount;
}
Это первое что в голову пришло) По сути надо заморочиться с подключением/отключением игроков и т.п.


Re: Скриптинг курилка - Stepashka - 05.02.2014

Quote:
Originally Posted by Makar93
Посмотреть сообщение
Код:
new PVarsCount;
stock CreatePVar(playerid, varname[], type, value[])
{
	switch(type)
	{
		case 1:
		{
			SetPVarInt(playerid,varname,strval(value));
			break;
		}
		case 2:
		{
			SetPVarString(playerid,varname,value);
			break;
		}
		case 3:
		{
			SetPVarFloat(playerid,varname,floatstr(value));
			break;
		}
	}
	PVarsCount++;
}
stock DeletePVarEx(playerid,varname[])
{
	DeletePVar(playerid,varname[]);
	PVarsCount--;
}
stock GetPVarsCount()
{
	return PVarsCount;
}
Это первое что в голову пришло) По сути надо заморочиться с подключением/отключением игроков и т.п.
совершенно неверно.


Re: Скриптинг курилка - OKStyle - 05.02.2014

Quote:
Originally Posted by Richard_Gere
Посмотреть сообщение
800 PVar на одного игрока.
Ты моё сообщение читал?

По поводу кол-ва PVAR'ов:
https://sampwiki.blast.hk/wiki/GetPVarsUpperIndex


Re: Скриптинг курилка - Makar93 - 05.02.2014

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
совершенно неверно.
Тогда вкратце необходимую суть изложи, если не составит труда.. )


Re: Скриптинг курилка - Makar93 - 05.02.2014

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
нет, 800 пиваров может быть зарегистрировано на сервере, т.е. ограниченно количество ключей.
Так что количество пиваров на человека колеблется в диапазоне от 0 до 800.
Иначе говоря если у 21 игрока по 40 PVar`ов, то это уже превышение лимита?


Re: Скриптинг курилка - Stepashka - 05.02.2014

Quote:
Originally Posted by Makar93
Посмотреть сообщение
Тогда вкратце необходимую суть изложи, если не составит труда.. )
Я уже объяснил, считать надо не сами пивары а их ключи.


Re: Скриптинг курилка - Urukhay - 09.02.2014

Quote:
Originally Posted by Makar007
View Post
Подскажите.. Как правильно запретить садится в транспорт в моем случае это поезд, вот мой код... сообщение вылазит что не достаточно, но игрок оказывается в транспорте.

Code:
if(vehicleid <= 4 && vehicleid >=2)
	{
	    if(PI[playerid][Money] < 5) return SendClientMessage(playerid,COLOR_GREY,"[!] Здесь ошибка: {008000}5$"), SetCameraBehindPlayer(playerid), TogglePlayerControllable(playerid, true), RemovePlayerFromVehicle(playerid);
		else GivePlayerMoneyEx(playerid, -5), SendClientMessage(playerid, COLOR_GREY, "Тут сообщение что успешно заплатили");
	}
Если это OnPlayerEnterVehicle, то она вызывается до того, как игрок сел в авто. Здесь Вам нужно сбить анимацию посадки, предположим другой анимацией.


Re: Скриптинг курилка - lost13 - 09.02.2014

Quote:
Originally Posted by Makar007
View Post
Подскажите.. Как правильно запретить садится в транспорт в моем случае это поезд, вот мой код... сообщение вылазит что не достаточно, но игрок оказывается в транспорте.

Code:
if(vehicleid <= 4 && vehicleid >=2)
	{
	    if(PI[playerid][Money] < 5) return SendClientMessage(playerid,COLOR_GREY,"[!] Здесь ошибка: {008000}5$"), SetCameraBehindPlayer(playerid), TogglePlayerControllable(playerid, true), RemovePlayerFromVehicle(playerid);
		else GivePlayerMoneyEx(playerid, -5), SendClientMessage(playerid, COLOR_GREY, "Тут сообщение что успешно заплатили");
	}
А закрыть его не? https://sampwiki.blast.hk/wiki/SetVehicleParamsForPlayer


Re: Скриптинг курилка - Urukhay - 09.02.2014

В инклюде MySQL от BlueG R36 такие интересные строки:
pawn Code:
// mysql_function_query(conHandle, query[], bool:cache, callback[], format[], {Float,_}:...);
#define mysql_function_query(%0,%1,%2,%3,"%4"%5) mysql_tquery(%0,%1,%3,#%4%5)
Спрашивается, зачем было делать "bool:cache", тобишь параметр %2, если в mysql_tquery он не юзается?


Re: Скриптинг курилка - White_116 - 09.02.2014

Quote:
Originally Posted by Urukhay
View Post
В инклюде MySQL от BlueG R36 такие интересные строки:
pawn Code:
// mysql_function_query(conHandle, query[], bool:cache, callback[], format[], {Float,_}:...);
#define mysql_function_query(%0,%1,%2,%3,"%4"%5) mysql_tquery(%0,%1,%3,#%4%5)
Спрашивается, зачем было делать "bool:cache", тобишь параметр %2, если в mysql_tquery он не юзается?
Посчитай количество аргументов и подумай.
И подумай над тем, что было до этой версии.


Re: Скриптинг курилка - =KempeR= - 09.02.2014

Quote:
Originally Posted by Urukhay
View Post
В инклюде MySQL от BlueG R36 такие интересные строки:
pawn Code:
// mysql_function_query(conHandle, query[], bool:cache, callback[], format[], {Float,_}:...);
#define mysql_function_query(%0,%1,%2,%3,"%4"%5) mysql_tquery(%0,%1,%3,#%4%5)
Спрашивается, зачем было делать "bool:cache", тобишь параметр %2, если в mysql_tquery он не юзается?
Для совместимости.


Re: Скриптинг курилка - Makar007 - 09.02.2014

Quote:
Originally Posted by Urukhay
View Post
Если это OnPlayerEnterVehicle, то она вызывается до того, как игрок сел в авто. Здесь Вам нужно сбить анимацию посадки, предположим другой анимацией.
В моем случае это поезд и анимации при посадке в него нету


Re: Скриптинг курилка - Makar93 - 09.02.2014

Quote:
Originally Posted by Makar007
View Post
В моем случае это поезд и анимации при посадке в него нету
Закрой, что может быть проще?)


Re: Скриптинг курилка - Urukhay - 09.02.2014

Что за нонсенс? После объявления PVar'a не изменяется позиция игрока! Код:
pawn Code:
SpawnPlayer(playerid);
SetPVarInt(playerid,"TestPVar",1);
SetPlayerPos(playerid,179.4230,-88.2387,1002.0234);
Пробовал менять название пваров, все равно.

По плану сначала заспавнить игрока, потом объявить пвар и только потом изменить его позицию.

UPD: Разобрался.


Re: Скриптинг курилка - Makar007 - 09.02.2014

Quote:
Originally Posted by Makar93
View Post
Закрой, что может быть проще?)
Ну вот.. игрок пробует сесть в поезд и у него нет денег поезд закрывается, следом пробует сесть игрок у которого есть деньги... но поезд то закрыт)


Re: Скриптинг курилка - =KempeR= - 09.02.2014

Quote:
Originally Posted by Makar007
View Post
Ну вот.. игрок пробует сесть в поезд и у него нет денег поезд закрывается, следом пробует сесть игрок у которого есть деньги... но поезд то закрыт)
SetVehicleParamsForPlayer