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;
}
