Help using enums - [L3th4l] - 27.02.2011
I've saw how the enum was used in other ways, so i tried this:
pawn Код:
enum enum_vParams
{
vBonnet,
vObjective,
vAlarm,
vDoors,
vEngine,
vBoot,
vLights
};
stock SetVehParams(vehicleid, param, status)
{
new
VehParams[7];
GetVehicleParamsEx(vehicleid, VehParams[0], VehParams[1], VehParams[2], VehParams[3], VehParams[4], VehParams[5], VehParams[6]);
switch(enum_vParams:param)
{
case vBonnet: VehParams[0] = status;
case vObjective: VehParams[1] = status;
case vAlarm: VehParams[2] = status;
case vDoors: VehParams[3] = status;
case vEngine: VehParams[4] = status;
case vBoot: VehParams[5] = status;
case vLights: VehParams[6] = status;
}
return SetVehicleParamsEx(vehicleid, VehParams[0], VehParams[1], VehParams[2], VehParams[3], VehParams[4], VehParams[5], VehParams[6]);
}
Compiles fine, but doesn't seem to work. Any help will be appreciated
EDIT:
If you want to use this code, I tweaked it a little:
pawn Код:
enum enum_vParams
{
Engine,
Lights,
Alarm,
Doors,
Bonnet,
Boot,
Objective
};
stock SetVehParams(vehicleid, params, status)
{
new
VehParams[7];
GetVehicleParamsEx(vehicleid, VehParams[0], VehParams[1], VehParams[2], VehParams[3], VehParams[4], VehParams[5], VehParams[6]);
VehParams[enum_vParams:params] = status ? (1):(0);
return SetVehicleParamsEx(vehicleid, VehParams[0], VehParams[1], VehParams[2], VehParams[3], VehParams[4], VehParams[5], VehParams[6]);
}
Usage:
pawn Код:
SetVehParams(GetPlayerVehicleID(playerid), Engine, VEHICLE_PARAMS_ON);
Turns the engine on.
Re: Help using enums -
Antonio [G-RP] - 27.02.2011
Shouldn't you use
pawn Код:
switch(enum_vParams[param])
Instead of
pawn Код:
switch(enum_vParams:param)
? Not 100% sure, just an idea.
Re: Help using enums -
Backwardsman97 - 27.02.2011
You use enums like this.
pawn Код:
enum Stuff
{
Thing1,
Thing2,
Thing3
};
new Items[Stuff];
//Then you can do something like...
Items[Thing2] = 1337;
At least that's how I've always used them.
Respuesta: Help using enums -
TheChaoz - 27.02.2011
try this code. no enum needed.
pawn Код:
stock SetVehParams(vehicleid, param, bool:status)
{
if(param < 0 || param > 6)return -1;
new vp[7];
GetVehicleParamsEx(vehicleid, vp[0], vp[1], vp[2], vp[3], vp[4], vp[5], vp[6]);
vp[param] = status;
return SetVehicleParamsEx(vehicleid, vp[0], vp[1], vp[2], vp[3], vp[4], vp[5], vp[6]);
}
didn't test, but i guess it work fine.
Re: Help using enums - [L3th4l] - 27.02.2011
Well this fixed it:
pawn Код:
stock SetVehParams(vehicleid, param, status)
{
new
VehParams[7];
GetVehicleParamsEx(vehicleid, VehParams[0], VehParams[1], VehParams[2], VehParams[3], VehParams[4], VehParams[5], VehParams[6]);
switch(enum_vParams:param)
{
case vBonnet: VehParams[0] = status ? (1):(0);
case vObjective: VehParams[1] = status ? (1):(0);
case vAlarm: VehParams[2] = status ? (1):(0);
case vDoors: VehParams[3] = status ? (1):(0);
case vEngine: VehParams[4] = status ? (1):(0);
case vBoot: VehParams[5] = status ? (1):(0);
case vLights: VehParams[6] = status ? (1):(0);
}
return SetVehicleParamsEx(vehicleid, VehParams[0], VehParams[1], VehParams[2], VehParams[3], VehParams[4], VehParams[5], VehParams[6]);
}
Thanks for the feedback tho!
EDIT:
If you want to use this code, I tweaked it a little:
pawn Код:
enum enum_vParams
{
Engine,
Lights,
Alarm,
Doors,
Bonnet,
Boot,
Objective
};
stock SetVehParams(vehicleid, params, status)
{
new
VehParams[7];
GetVehicleParamsEx(vehicleid, VehParams[0], VehParams[1], VehParams[2], VehParams[3], VehParams[4], VehParams[5], VehParams[6]);
VehParams[enum_vParams:params] = status ? (1):(0);
return SetVehicleParamsEx(vehicleid, VehParams[0], VehParams[1], VehParams[2], VehParams[3], VehParams[4], VehParams[5], VehParams[6]);
}
Usage:
pawn Код:
SetVehParams(GetPlayerVehicleID(playerid), Engine, VEHICLE_PARAMS_ON);
Turns the engine on.