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

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

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

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

/repair Работа механика

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

Snoopy35

Дебютант
Добрый вечер уважаемые скриптеры! Помогите с проблемой! Речь пойдет о работе автомеханика. При ремонте транспорта игрока когда он нажимает "принять" услугу ремонта механик вылетает с авто.

PHP:
CMD:repair(playerid, params[])
{
	if(PI[playerid][pJob] != JOB_MECHANIC) return 1;
	
	new string[256], Float:X, Float:Y[2], Float:Z, rname[30];
	if(sscanf(params,"uii", params[0], params[1], params[2]) || params[1] < 1 || params[1] > 5)
	{
		SendClientMessage(playerid,COLOR_ISPOLZUY,"Используйте: /repair [ID/Имя] [ID части транспорта] [Цена]");
		SendClientMessage(playerid,COLOR_WHITE,"__________ Список доступных ID's __________");
		SendClientMessage(playerid,COLOR_WHITE,"1. Двигатель");
		SendClientMessage(playerid,COLOR_WHITE,"2. Панель");
		SendClientMessage(playerid,COLOR_WHITE,"3. Двери");
		SendClientMessage(playerid,COLOR_WHITE,"4. Фары");
		SendClientMessage(playerid,COLOR_WHITE,"5. Колеса");
		SendClientMessage(playerid,COLOR_WHITE,"____________________________________________");
		return true;
	}
	switch(params[1])
	{
		case 1: rname = "починить двигатель";
		case 2: rname = "отремонтировать панель";
		case 3: rname = "отремонтировать двери";
		case 4: rname = "отремонтировать фары";
		case 5: rname = "заменить колеса";
	}
	if(RepairOffer[params[0]] != INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_GREY,"Этому игроку уже поступило предложение о починке.");
	if(GetPlayerState(params[0]) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,COLOR_GREY,"Игрок должен сидеть в транспорте.");
	if(params[2] < 1 || params[2] > 200) return SendClientMessage(playerid,COLOR_GREY,"Цена должна быть от $1 до $200");
	new carid = GetPlayerVehicleID(params[0]);
	GetVehicleModelInfo(GetVehicleModel(carid), VEHICLE_MODEL_INFO_SIZE, X, Y[1], Z);
	GetVehicleShiftPos( carid, 0, X, Y[0], Z, Y[1] / 2 );
	format(string,sizeof(string),"{FFFFFF}Механик {10F441}%s {FFFFFF}предлагает вам %s.\nСтоимость: {10F441}$%d",cPN(playerid), rname, params[2]);
	ShowPlayerDialogEx(params[0],75,0,"Починка",string,"Починить","Отмена");
	format(string,sizeof(string),"Вы хотите %s транспорта игроку %s за $%d", rname, cPN(params[0]), params[2]);
	SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
	//RepairOffer[playerid] = params[0];
	RepairOffer[params[0]] = playerid;
	RepairPrice[params[0]] = params[2];
	RepairPart[params[0]] = params[1];
	return true;
}
PHP:
case 75:
	    {
	        new rname[30];
	        new offer = RepairOffer[playerid];
	        if(response)
	        {
				new carid = GetPlayerVehicleID(playerid);
				if(GetPlayerState(playerid) != 2 || GetPlayerState(offer) != 2)
				{
					SendClientMessage(playerid,COLOR_GREY,"Либо вы вне транспорта, либо механик вне транспорта");
					CheckRepair( offer );
					return 1;
				}
				if(PI[playerid][pMoney] < RepairPrice[playerid])
				{
					SendClientMessage(playerid,COLOR_GREY,"У вас нехватает денег");
					CheckRepair( offer );
					return 1;
				}
				switch(RepairPart[playerid])

				{
					case 1:
					{
						new Float:X, Float:Y, Float:Z;
						GetVehicleShiftPos( carid, 0, X, Y, Z, 3.0 );
						rname = "починка двигателя";
						SetBonnetStatus( carid, true );
						SetPlayerFaceToPoint(offer, X, Y);
					}
					case 2:
					{
						rname = "ремонт панели";
						RepairReset[offer] = 15 * 20;
					}
					case 3:
					{
						rname = "ремонт дверей";
						RepairReset[offer] = 15 * 20;
					}
					case 4:
					{
						rname = "ремонт фар";
						RepairReset[offer] = 10 * 20;
					}
					case 5:
					{
						rname = "замена колес";
						RepairReset[offer] = 20 * 20;
					}
					default: return 1;
				}
				format(string,sizeof(string),"Вы воспользовались услугами механика %s ( %s ) за $%d",cPN(offer), rname, RepairPrice[playerid]);
				SendClientMessage(playerid,COLOR_WHITE,string);
				format(string,sizeof(string),"Вы оказываете услугу игроку %s ( %s ) за $%d",cPN(playerid), rname, RepairPrice[playerid]);
				SendClientMessage(offer,COLOR_WHITE,string);
				GiveMoney(playerid,-RepairPrice[playerid],"Repair-");
				GiveMoney(offer,RepairPrice[playerid],"Repair+");
				//SetEngineStatus( carid, false );
				J_RepairVehicle(carid);
				SaveAccount(playerid);
				SaveAccount(offer);
				InJob[offer] = 1;
			}
		    else
			{
			    SendClientMessage(playerid,COLOR_GREY,"Вы отказались ...");
				CheckRepair( offer );
			}
		    return true;
		}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу