Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Система Клубных Наркотиков

Статус
В этой теме нельзя размещать новые ответы.

Vice

Умник
Всем привет! И мои роботы не перестают удивлять)). В этом мануале я научу вас сделать системку клубных наркотиков, аналогов этой работы вы не увидите негде!

У кого нету инклуда форич, ссылка на скачивание и ВТ к ней находятся внизу темы.
Ко всем инклудам(Еще раз напоминаю у кого его нету!)
PHP:
#include <foreach>
Ко всем переменным
PHP:
new bool:Amfik[MAX_PLAYERS];
new bool:Extaz[MAX_PLAYERS];
new bool:OneMore[MAX_PLAYERS];
new ClubDrug;
Где-то снизу мода или ко всем пабликам добавить вот эти два
PHP:
forward LapDance(playerid);
public LapDance(playerid)
{
    ApplyAnimation(playerid, "DANCING", "DAN_Loop_A", 4.0999, 0, 1, 1, 1, 1, 0);
    Extaz[playerid] = true;
}
forward EndStone(playerid);
public EndStone(playerid)
{
	Extaz[playerid] = false;
	ClearAnimations(playerid);
    StopAudioStreamForPlayer(playerid);
    SetPlayerWeather(playerid, 10);
    SetPlayerDrunkLevel(playerid, 0);
    new hours,minutes,seconds;
    gettime(hours, minutes, seconds);
    SetPlayerTime(playerid, hours, minutes);
	if(Amfik[playerid] == true)
	{
	    PlayerInfo[playerid][pSatiety] = 0;
	}
	KillTimer(sided);
	return true;
}
В public OnPlayerConnect
PHP:
 Amfik[playerid] = false;
	Extaz[playerid] = false;
В public OnPlayerUpdate(playerid)
PHP:
foreach(new i : Player)
	{
		new Float:angle;
		new giveplayerid = GetClosestPlayer(1);
		if(ProxDetectorS(2.0, playerid, giveplayerid) && Extaz[playerid] == true)
 		{
	 		GetPlayerFacingAngle(playerid, angle);
	  		SetPlayerFacingAngle(giveplayerid, angle + 180);
	   		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
	   		GetPlayerName(playerid, plname, sizeof(plname));
	   		Extaz[playerid] = false;
	    	format(string, sizeof(string), "%s страстно обнимает %s", plname ,giveplayer);
	    	ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPL  E,COLOR_PURPLE);
	    	ApplyAnimation(playerid, "GANGS", "hndshkfa",4.0,0,0,0,0,0,1);
			ApplyAnimation(giveplayerid, "GANGS", "hndshkfa",4.0,0,0,0,0,0,1);
			return true;
		}
	}
В public OnGameModeInit или в сток CreatePickups или другой ваш аналог
PHP:
ClubDrug = CreatePickup(2709,23,-2645.9399,1394.2272,912.4063);
В public OnPlayerPickUpPickup(playerid, pickupid)
PHP:
else if(pickupid == ClubDrug)
 	{
 	    if(OneMore[playerid] == false)
 	    {
 	    	ShowPlayerDialog(playerid,1294,DIALOG_STYLE_MSGBOX  , "Разговор с барыгой", "Привет братка, меня зовут Colin! Я смотрю ты кое что ищешь. Думаю я смогу найти для тебя немножко!","Например","Досвидание");
		}
	}
В public OnDialogResponce
PHP:
case 1294:
		{
		    if(response)
			{
			    ShowPlayerDialog(playerid, 2349, DIALOG_STYLE_LIST, "Не беспокойся, весь товар качественный!","[150$]?Ёшки Экстази\n[100$]Спиды\n[200$]Мескалин","Выбрать","Досвидание");
				OneMore[playerid] = true;
			}
		}
		case 2349:
		{
		    if(response)
		    {
				if(listitem == 0)
				{
				    new stringx[56];
				    SendClientMessage(playerid, COLOR_PURPLE,"Парень, да ты прям со всем на одной волне!");
				    SetPlayerTime(playerid, 23, 0);
				    PlayerInfo[playerid][pCash] -= 150;
				    SetPlayerWeather(playerid, -75);
					ApplyAnimation(playerid,"SMOKING","M_smk_drag",4.1,0,0,0,0,0,1);
					sided = SetTimer("LapDance", 10000, true);
					SetTimer("EndStone", 300000, false);
					Extaz[playerid] = true;
					format(stringx,sizeof(stringx), "Проглотил(a) какуе-то таблетку");
					ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPL  E,COLOR_PURPLE);
				}
				if(listitem == 1)
				{
				    new stringx[56];
				    SendClientMessage(playerid, COLOR_PURPLE,"Ухухух, прихооод! Забудь сегодня за сон и апетит!");
				    SetPlayerTime(playerid, 23, 0);
				    PlayerInfo[playerid][pCash] -= 100;
				    SetPlayerWeather(playerid, -70);
					SetPlayerHealthAC(playerid, 120);
					Amfik[playerid] = true;
					SetTimer("EndStone", 1200000, false);
					PlayerInfo[playerid][pSatiety] = 100;
					ApplyAnimation(playerid,"SMOKING","M_smk_drag",4.1,0,0,0,0,0,1);
					format(stringx,sizeof(stringx), "Занюхал(a) какой-то порошок");
					ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPL  E,COLOR_PURPLE);
				}
				if(listitem == 2)
				{
				    new stringx[56];
				    SendClientMessage(playerid, COLOR_PURPLE,"ААаааАа, где я!? Что со мной!!");
				    SetTimer("EndStone", 75000, false);
				    SetPlayerTime(playerid, 23, 0);
				    PlayerInfo[playerid][pCash] -= 300;
				    SetPlayerWeather(playerid, -13);
					SetPlayerDrunkLevel(playerid, 5000);
					PlayerInfo[playerid][pХП] -= 10; // зХП замените на pHP просто в PHP не заливает так
					PlayAudioStreamForPlayer(playerid, "http://hallutination.ucoz.ua/obrezka.mp3");
					ApplyAnimation(playerid, "KNIFE", "knife_hit_3",4.1,0,0,0,0,0,1);
					format(stringx,sizeof(stringx), "Вколол(а) себе какуе-то жидкость в шприце");
					ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPL  E,COLOR_PURPLE);
				}
			}
			
		}
Теперь находим место вашего антибаннихоупа, в поиск вбейте
PHP:
if(newkeys & KEY_SPRINT && newkeys & KEY_JUMP)
В основном у всех так, если у вас отличается то уже в свое место пихайте код.
Теперь заменяем анти-бх код на мой
PHP:
if(newkeys & KEY_SPRINT && newkeys & KEY_JUMP)
	{
	    if(!IsPlayerInAnyVehicle(playerid) && Amfik[playerid] == false)
	    {
	        if(times[playerid] == true)
			{
				SetTimerEx("AntiBunny", 850,false, "i",playerid);
	        }
	    }
	}
Можете просто заменить проверку на мою, именно вот эту
PHP:
 if(!IsPlayerInAnyVehicle(playerid) && Amfik[playerid] == false)
Ну теперь нужно обнулять переменную чтобы еще раз взять наркоту, ко входу или выходу джиззи, например у меня переменная отвечающая за выход с джизии
PHP:
new jizzy;
В public OnPlayerPickUpPickup находим её, вот пример моей, заменяем свой код на мой.
PHP:
else if(pickupid == jizzy)
	{
		SetPlayerInterior(playerid, 0);
		SetPlayerPos(playerid,-2623.5752,1410.0554,7.0938);
		SetPlayerFacingAngle(playerid, 210.1440);
		OneMore[playerid] = false;
	}
Вот OneMore[playerid] = false; и добавьте у свой код входа джиззи. Выходит чтобы обратно открыть диалог с покупкой нарко нужно перезайти в него.
Дальше находим public SatietyCheck или ваш аналог, там находим такую строку
PHP:
if(PlayerInfo[i][pSatiety] > 0)
Заменяем на вот эту
PHP:
if(PlayerInfo[i][pSatiety] > 0 && Amfik[i] == false)
Ну собственно вот и всё. Пикап у виду пузырька от таблеток находится в джиззи на втором этаже.
Экстази прет 5 минут, за это время у вас усилятся цвета, каждые 10 сек вы будете начинать самовольно подтанцовывать, иногда находясь в близи игрока, вы будете произвольно обниматься с ним. Я прям сделал реальные эффекты)). Спиды же держут 20 минут, позволяют без препятственно банихопить, что значительно вас ускорит. Так же меняет цвета на тусклые, пополняет голод на 100 и у вас не будет отниматься он пока не спадет эффект.(Взято реальное бодровстванние.) Система пока на бете, сырая даже но довольно не плохо продумана, в следущих версиях улучшу код и до оптимизирую. Мескалин вообще самое крутое, после него вас ждет сюрприз!)).

foreach.inc
ВТ:
Скачать:

Все права защищены! Запрещается копирование на посторонние ресурсы без указания автора! (c) Vice
Skype: vicehacker

 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу