Доступ к архиву

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

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

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

Система троса [MxINI/MySQL]

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

Vitya_Saveliev

Компетентный
Привет форумчани... Ну что тут объяснять, трос как трос xD

Описание: Чтобы купить трос - вам нужно поехать в 24/7, после сесть в машину и подъехать очень близко и подцепить командой /towncar. Отцепить: /untown. (Полезно для РП ситуации, закончился бензин в машине или еще что-то :) )

В enum pinfo:

PHP:
pTros

в public OnPlayerConnect:

PHP:
PlayerInfo[playerid][pTros] = 0;
Если у вас мод на файлах:

в public OnPlayerRegister(playerid, password[]):

PHP:
ini_setInteger(File,"Tros",PlayerInfo[playerid][pTros]);

в OnPlayerUpdateRL(playerid):

PHP:
ini_setInteger(File,"Tros",PlayerInfo[playerid][pTros]);

в public OnPlayerLogin(playerid,password[]):

PHP:
ini_setInteger(File,"Tros",PlayerInfo[playerid][pTros]);

Если у Вас MySQL мод, то в LoadAccount:

PHP:
PlayerInfo[playerid][pTros],

в SaveAccount:

PHP:
format(src,sizeof(src),"tros='%i',",PlayerInfo[playerid][pTros]);
	strcat(query,src,sizeof(query));

Теперь где выбор товара в 24/7, после последнего товара(У меня это цветы) ставим

PHP:
\nТрость\t\t\t\t{33AAFF}1000 {ffffff}долларов

Теперь в диалог покупки 24/7:

PHP:
case 7:
				{
					if(PlayerInfo[playerid][pCash] < 1000 return SendClientMessage(playerid, COLOR_GREY, "Недостаточно средств!");
					PlayerInfo[playerid][pCash] -= 1000;
					BizzInfo[i][bMoney] += 1000;
					BizzInfo[i][bProduct] -= 50;
					BizzPay[i] += 1000;
					PlayerInfo[playerid][pTros] = 1;
					SendMes(playerid, COLOR_BLUE, "Вы купили трость (( /towncar ))");
					SetBizzInt(i, "money", BizzInfo[i][bMoney]);
					SetBizzInt(i, "product", BizzInfo[i][bProduct]);
				}
Теперь в команды:

PHP:
if(strcmp(cmd, "/untown", true) == 0)
	{
		if(IsPlayerConnected(playerid))
	    {
			new vehplid=GetPlayerVehicleID(playerid);
			DetachTrailerFromVehicle(vehplid);
			SendClientMessage(playerid, COLOR_GRAD1, " * Отцеплено.");
			return 1;
		}
	}
	if(strcmp(cmd, "/towncar", true) == 0)
	{
        //DebugPlayerLog(playerid,"/tow");
		if(IsPlayerConnected(playerid))
	    {
			if(PlayerInfo[playerid][pTros] == 0) 
			{
				SendClientMessage(playerid, COLOR_GRAD1, "У Вас нет троса. Его можно купить в магазине(24/7).");
				return 1;
			}
                                  if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 510 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 481 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 522) return SendClientMessage(playerid, COLOR_GREY, "На это транспортное средство нельзя установить трос!");
			new vehplid=GetPlayerVehicleID(playerid);
			new Float:plAngle;	GetVehicleZAngle(vehplid, plAngle);
			new Float:crAngle,Float:Angle,Float:Angle2;
			//====================
			new Float:posx, Float:posy, Float:posz;
			new Float:oldposx, Float:oldposy, Float:oldposz;
			new Float:tempposx, Float:tempposy, Float:tempposz;
			new Float:Radi=6.0;        //Расстояние от тачки
			new Float:AngRange=90.0;    //максимальный радиус
			//======================
			for(new i = 0; i < MAX_VEHICLES; i++)   //700
			{
				if(i == vehplid) continue;    //себя цеплять ненадо
				//======
				GetVehiclePos(vehplid, posx, posy, posz); //координаты тачки
				GetVehiclePos(i, oldposx, oldposy, oldposz); //координаты ближайшей
				tempposx = (oldposx -posx);
				tempposy = (oldposy -posy);
				tempposz = (oldposz -posz);
				if (((tempposx < Radi) && (tempposx > -Radi)) && ((tempposy < Radi) && (tempposy > -Radi)) && ((tempposz < Radi) && (tempposz > -Radi)))
				{
					GetVehicleZAngle(i, crAngle); 
					Angle = (plAngle -crAngle);    
					Angle2= (Angle-180.0);     
					if (( ((Angle < AngRange) && (Angle > -AngRange)) || ((Angle2 < AngRange) && (Angle2 > -AngRange)) ))
					{
						AttachTrailerToVehicle(i, vehplid);
						format(string,sizeof(string),"Автомобиль подцеплен. Отцепить: /untown");
						SendClientMessage(playerid, COLOR_GRAD1, string);
						return 1;
					}   
				}
			}
			//======
			SendClientMessage(playerid, COLOR_GRAD1, " * Подъедьте поближе к автомобилю.");
			return 1;

  		}
		return 1;
	}


PHP:
CMD:untown(playerid, params[])
{
	if(IsPlayerConnected(playerid))
	DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
	SendClientMessage(playerid, COLOR_GRAD1, "Отцеплено.");
	return 1;
}
CMD:towncar(playerid, params[])
{
	if(IsPlayerConnected(playerid))
	if(PlayerInfo[playerid][pTros] == 0)
	{
		SendClientMessage(playerid, COLOR_GRAD1, "У Вас нет троса. Его можно купить в магазине(24/7).");
		return 1;
	}
           if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 510 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 481 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 522) return SendClientMessage(playerid, COLOR_GREY, "На это транспортное средство нельзя установить трос!");
	new Float:plAngle;	GetVehicleZAngle(GetPlayerVehicleID(playerid), plAngle);
	new Float:crAngle,Float:Angle,Float:Angle2;
	new Float:posx, Float:posy, Float:posz;
	new Float:oldposx, Float:oldposy, Float:oldposz;
	new Float:tempposx, Float:tempposy, Float:tempposz;
	new Float:Radi=6.0;        //Расстояние от тачки
	new Float:AngRange=90.0;    //максимальный радиус
	for(new i = 0; i < MAX_VEHICLES; i++)   //700
	{
		if(i == GetPlayerVehicleID(playerid)) continue;    //себя цеплять ненадо
		GetVehiclePos(GetPlayerVehicleID(playerid), posx, posy, posz); //координаты тачки
		GetVehiclePos(i, oldposx, oldposy, oldposz); //координаты ближайшей
		tempposx = (oldposx -posx);
		tempposy = (oldposy -posy);
		tempposz = (oldposz -posz);
		if (((tempposx < Radi) && (tempposx > -Radi)) && ((tempposy < Radi) && (tempposy > -Radi)) && ((tempposz < Radi) && (tempposz > -Radi)))
		{
			GetVehicleZAngle(i, crAngle);
			Angle = (plAngle -crAngle);
			Angle2= (Angle-180.0);
			if (( ((Angle < AngRange) && (Angle > -AngRange)) || ((Angle2 < AngRange) && (Angle2 > -AngRange)) ))
			{
				AttachTrailerToVehicle(i, GetPlayerVehicleID(playerid));
				format(string,sizeof(string),"Автомобиль подцеплен. Отцепить: /untown");
				SendClientMessage(playerid, COLOR_GRAD1, string);
				return 1;
			}
		}
	}
	SendClientMessage(playerid, COLOR_GRAD1, "Подъедьте поближе к автомобилю.");
	return 1;
}

Вырезал из мода: Ukraine RP







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