18.09.2015, 18:29
El primer dнa que lo publiquй el cуdigo contenнa un error, por lo que si lo descargaron remplacen por el actual.
Aquн hay un ejemplo de un sistema de tuneo.
En el comando se utiliza /tuning 0 - 13, el parбmetro depende el slot que quieran tocar con los componentes del vehнculos
Con esto es posible aсadir los componentes a cualquier vehнculo que los permita, de lo contrario dirб que no, ejemplo, la mayorнa aceptan nitro (5) y otros no toleran el bumper (un Savanna, o Remington, o sultan) por lo que si utilizan /tuning 0 y no se aceptan los componentes es porque no los permite, no porque no funcione.
--
Cuando el while no encuentra un componente, retorna 0 y se detiene el loop, cuando encuentra todos al llegar al valor mбximo del array (que contiene los componentes compatibles, se detiene).
Si en el comando quieren ver todos los componentes que permite un coche para aсadнrselo, y no verlo por slot es /tuning -1
Aquн hay un ejemplo de un sistema de tuneo.
PHP код:
new
PlayerTuningShow[MAX_PLAYERS][TOTAL_MODS];
COMMAND:tuning(playerid,params[])
{
if(sscanf(params, "d", params[0]))
return SendClientMessage(playerid, -1, "/tuning [0 - 13]");
PlayerShowMenuFrom(playerid, GetVehicleModel(GetPlayerVehicleID(playerid)), ((params[0] == -1) ? (false) : (true)), params[0]);
return 1;
}
stock PlayerShowMenuFrom(playerid, vehiclemodel, specific = false, component_type = 0)
{
if (vehiclemodel < 400 || vehiclemodel > 611)
return 0;
new
str[1024];
new
component,
count = 1,
conteo = 0;
while(IsModelComponentCompatibleEx(vehiclemodel, count, component))
{
if(specific)
{
if(GetVehicleComponentType(component) != component_type)
{
count ++;
continue;
}
}
if(component != 0)
{
format(str, sizeof str, "%s%s [%d]\n", str, GetComponentName(component), component);
PlayerTuningShow[playerid][conteo] = component;
conteo++;
}
count ++;
}
if(isnull(str))
return SendClientMessage(playerid, -1, "Este vehiculo no admite dichos componentes.");
Dialog_Show(playerid, DialogoTuneo, DIALOG_STYLE_LIST, "Componentes", str, "Aceptar", "Cancelar");
return 1;
}
Dialog:DialogoTuneo(playerid, response, listitem, inputtext[])
{
if(!response)
return 0;
new
componentid = PlayerTuningShow[playerid][listitem],
vehicleid = Vehicle_GetID(GetPlayerVehicleID(playerid));
AddVehicleComponent(vehicleid, componentid);
SendClientMessageEx(playerid, -1, "%s - %d", GetComponentName(componentid), componentid);
return 1;
}
PHP код:
0 - CARMODTYPE_SPOILER
1 - CARMODTYPE_HOOD
2 - CARMODTYPE_ROOF
3 - CARMODTYPE_SIDESKIRT
4 - CARMODTYPE_LAMPS
5 - CARMODTYPE_NITRO
6 - CARMODTYPE_EXHAUST
7 - CARMODTYPE_WHEELS
8 - CARMODTYPE_STEREO
9 - CARMODTYPE_HYDRAULICS
10 - CARMODTYPE_FRONT_BUMPER
11 - CARMODTYPE_REAR_BUMPER
12 - CARMODTYPE_VENT_RIGHT
13 - CARMODTYPE_VENT_LEFT
--
Cuando el while no encuentra un componente, retorna 0 y se detiene el loop, cuando encuentra todos al llegar al valor mбximo del array (que contiene los componentes compatibles, se detiene).
Si en el comando quieren ver todos los componentes que permite un coche para aсadнrselo, y no verlo por slot es /tuning -1