[Include] Compatibilidad de componentes con vehнculos.
#8

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.

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(playeridGetVehicleModel(GetPlayerVehicleID(playerid)), ((params[0] == -1) ? (false) : (true)), params[0]);
    return 
1;
}
stock PlayerShowMenuFrom(playeridvehiclemodelspecific falsecomponent_type 0)
{
    if (
vehiclemodel 400 || vehiclemodel 611)
        return 
0;
    new
        
str[1024];
    new
        
component,
        
count 1,
        
conteo 0;
    while(
IsModelComponentCompatibleEx(vehiclemodelcountcomponent))
    {
        if(
specific)
        {
            if(
GetVehicleComponentType(component) != component_type)
            {
                
count ++;
                continue;
            }
        }
        if(
component != 0)
        {
            
format(strsizeof str"%s%s [%d]\n"strGetComponentName(component), component);
            
PlayerTuningShow[playerid][conteo] = component;
            
conteo++;
        }
        
count ++;
    }
    
    if(
isnull(str))
        return 
SendClientMessage(playerid, -1"Este vehiculo no admite dichos componentes.");
        
    
Dialog_Show(playeridDialogoTuneoDIALOG_STYLE_LIST"Componentes"str"Aceptar""Cancelar");
    return 
1;
}
Dialog:DialogoTuneo(playeridresponselistiteminputtext[])
{
    if(!
response)
        return 
0;
    new
        
componentid PlayerTuningShow[playerid][listitem],
        
vehicleid Vehicle_GetID(GetPlayerVehicleID(playerid));
        
    
AddVehicleComponent(vehicleidcomponentid);
    
SendClientMessageEx(playerid, -1"%s - %d"GetComponentName(componentid), componentid);
     return 
1;

En el comando se utiliza /tuning 0 - 13, el parбmetro depende el slot que quieran tocar con los componentes del vehнculos

PHP код:
CARMODTYPE_SPOILER
CARMODTYPE_HOOD
CARMODTYPE_ROOF
CARMODTYPE_SIDESKIRT
CARMODTYPE_LAMPS
CARMODTYPE_NITRO
CARMODTYPE_EXHAUST
CARMODTYPE_WHEELS
CARMODTYPE_STEREO
CARMODTYPE_HYDRAULICS
10 
CARMODTYPE_FRONT_BUMPER
11 
CARMODTYPE_REAR_BUMPER
12 
CARMODTYPE_VENT_RIGHT
13 
CARMODTYPE_VENT_LEFT 
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
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)