29.07.2016, 21:20
There are more issues.
- 3 specifiers and 2 arguments in sscanf.
- comparing "params" to a single number. "params" will hold two parameters so the check will fail. Compare integers instead with "doorid".
A better way is to store the states of the doors and apply only to the specified. If it is closed, it will open and vice versa.
- 3 specifiers and 2 arguments in sscanf.
- comparing "params" to a single number. "params" will hold two parameters so the check will fail. Compare integers instead with "doorid".
A better way is to store the states of the doors and apply only to the specified. If it is closed, it will open and vice versa.
PHP код:
CMD:vdoor(playerid, params[])
{
new vehicleid, door;
if (sscanf(params, "ii", vehicleid, door))
{
SendClientMessage(playerid, -1, "Usage: /vdoor <vehicleid> <door>");
SendClientMessage(playerid, -1, "Doors: 0 - driver | 1 - passenger | 2 - back left | 3 - back right");
return 1;
}
if (!GetVehicleModel(vehicleid)) return SendClientMessage(playerid, -1, "This vehicle does not exist.");
if (!(0 <= door <= 3)) return SendClientMessage(playerid, -1, "The value of 'door' parameter should be between 0 and 3");
new driver, passenger, backleft, backright;
GetVehicleParamsCarDoors(vehicleid, driver, passenger, backleft, backright);
switch (door)
{
case 0: SetVehicleParamsCarDoors(vehicleid, !driver, passenger, backleft, backright);
case 1: SetVehicleParamsCarDoors(vehicleid, driver, !passenger, backleft, backright);
case 2: SetVehicleParamsCarDoors(vehicleid, driver, passenger, !backleft, backright);
case 3: SetVehicleParamsCarDoors(vehicleid, driver, passenger, backleft, !backright);
}
return 1;
}

