PDA

Просмотр полной версии : [Вопрос] Команда /veh



kala4iks
21.08.2015, 16:45
Добрый день помогите пожалуйста как записать id и название транспорта. Чтоб в команде /vehd при удалении писало carid который создался в /veh и его название.. А то у меня при удалении не пишется какой транспорт был создан и id его.


CMD:veh(playerid,params[])
{
if(Player[playerid][pAdmin] == 0 || AdminDuty[playerid] == 0)return NoRights;
if(sscanf(params,"d",params[0]))return send(playerid,COLOR_COMAND,"[КОМАНДЫ] {FFFFFF}/veh [id транспорта].");
if(params[0] > 611 || params[0] < 400)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Доступное значение транспорта от 400 до 611.");
new Float:X,Float:Y,Float:Z,Float:A,lights,alarm,doors,bonnet,boot,objective,string[80];
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,A);
if(CreateCar[playerid] != 0)DestroyVehicle(CreateCar[playerid]);
CreateCar[playerid] = CreateVehicle(params[0],X,Y,Z,A,-1,-1,1800000);
SetVehicleParamsEx(CreateCar[playerid],1,lights,alarm,doors,bonnet,boot,objective);
Engine[CreateCar[playerid]] = 1;
PutPlayerInVehicle(playerid,CreateCar[playerid],0);
new carid = GetPlayerVehicleID(playerid);
f(string,"Ты создал(а) %s (ID:%d). Удалить транспорт: /vehd.",VehiclesName[GetVehicleModel(CreateCar[playerid])-400],carid);
send(playerid,COLOR_WHITE,string);
strmid(VenicleInfo[CreateCar[playerid]][NameAcar],VehiclesName[GetVehicleModel(CreateCar[playerid])-400],0,strlen(VehiclesName[GetVehicleModel(CreateCar[playerid])-400]),999);
return 1;
}


CMD:vehd(playerid,params[])
{
if(Player[playerid][pAdmin] == 0 || AdminDuty[playerid] == 0)return NoRights;
if(CreateCar[playerid] == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Ты не создовал(а) транспорт.");
new string[128];
f(string,"Ты удалил(а) транспорт %s (ID:%d).",VenicleInfo[GetPlayerVehicleID(playerid)][NameAcar]);
send(playerid,COLOR_WHITE,string);
DestroyVehicle(CreateCar[playerid]);
CreateCar[playerid] = 0;
return 1;
}

Daniel_Cortez
21.08.2015, 18:16
Добрый день помогите пожалуйста как записать id и название транспорта. Чтоб в команде /vehd при удалении писало carid который создался в /veh и его название.. А то у меня при удалении не пишется какой транспорт был создан и id его.
Разобраться, откуда берётся название транспорта в команде /veh и точно так же получить его в /vehd ? Тут работы на 10 секунд.

kala4iks
21.08.2015, 19:17
Разобраться, откуда берётся название транспорта в команде /veh и точно так же получить его в /vehd ? Тут работы на 10 секунд.

Да у меня работало но я чуть переделал так как у меня сробатывало ток когда в транспорте сидел.

$continue$
21.08.2015, 19:22
Лол? А как вы хотите? Что бы игрок не в транспорте был?

Daniel_Cortez
21.08.2015, 19:25
Да у меня работало но я чуть переделал так как у меня сробатывало ток когда в транспорте сидел.
Ну так правильно: GetPlayerVehicleID вернёт 0 --> GetVehicleModel из-за неправильного ID транспорта тоже вернёт 0 --> вы попытаетесь получить название транспорта в массиве VehiclesName из ячейки 0-400 (= -400) --> словите выход за перделы массива и дальше код не будет выполняться.

Вместо того, чтобы получать ID транспорта через GetVehicleID, смотрите, куда он сохраняется в команде /veh и откуда берётся при удалении (DestroyVehicle в /vehd).